ARP协议格式和实例分析
ARP協議是一個網絡層協議,它的出現是為了完成網絡層的ip和數據鏈路層的MAC地址之間的對應關系。
一、ARP協議的報文格式
arp的報文格式如下:
1.硬件地址類型:該字段表示物理網絡類型,即標識數據鏈路層使用的是那一種協議,其中0x0001為以太網。
2.協議地址類型:該字段表示網絡地址類型,即標識網絡層使用的是那一種協議,其中0x0800表示為ip。
3.硬件地址長度:表示源和目的物理地址的長度,單位是字節。
4.協議地址長度:表示源和目的的協議地址的長度,單位是字節。
5.操作:記錄該報文的類型,其中1表示ARP請求報文,2表示ARP響應報文。
6.源站的物理地址和目的地址為發送請求報文的主機填寫。
7.目的站物理地址在請求報文中為空,目的ip為需要進行轉換的ip。在回應報文中,目的地址為,arp請求者的地址。目的ip為請求者的ip.
注意:arp報文是直接封裝在MAC幀的數據部分,在MAC地址的標識當中注明為0806,具體的幀為下圖所示:
二、ARP協議的工作過程
? ? 當需要ip地址和mac地址進行轉換的時候,首先,主機會查詢自己的arp緩存表,如果自己的arp緩存表中有相應的對應關系,會直接取出對應的MAC地址,填寫到MAC幀里面。
? ? ?如果arp緩存表中沒有該地址映射,主機會在局域網內發MAC地址廣播,MAC幀的源MAC為自己,目的MAC為ff-ff-ff-ff-ff-ff。發送的arp報文的的源ip為自己的ip,目的ip為需要進行轉換的ip地址,源MAC是自己的mac地址,目的地址為空。當其它主機發現自己的ip地址和arp報文中的目的ip地址相同時,會用單播進行回應,源ip為自己的ip,源MAC為自己的MAC,目的ip和目的MAC為剛才請求arp的MAC。例如:主機a的ip地址為192.168.10.14,MAC地址為00-1e-90-7c-b6-fe,它需要知道192.168.10.15的MAC地址。在ARP請求報文中,源ip,MAC為a主機的ip和mac。目的ip為192.168.10.15,目的MAC為空。該幀為廣播幀。在回應報文中,源ip為192.168.10.15,源MAC為192.168.10.15的MAC地址。目的ip,目的MAC為a主機的ip和MAC。該幀為單播幀。同時將a主機的ip和mac記錄在自己的ARP緩存當中。
? ? 如果請求的MAC地址不再同一個網段內,那么該請求報文需要跨網端進行查找,這時候,MAC幀的源ip和源mac都是網管的相應地址。通過,網關進行跨網段的查找。arp報文和上面一樣。
三、ARP協議的具體報文分析
下面我們通過一個具體的ARP報文來進行分析,幫助我們更深一步掌握ARP報文。
下面是一個ARP請求報文的格式:
可以看到MAC幀的目的MAC為廣播地址,源MAC為請求者的MAC地址,協議的類型是0x0806.
在ARP請求報文中,Hardware type 位0x0001位以太幀。Protocal type 為0x0800位i。 Hard size 為6字節 Protocal size 為4 字節。請求類型為 0x0001,為ARP請求報文。
源地址,源ip,目的ip如上所示,可以看見在請求報文中,目的MAC為空。
下面是ARP的響應報文的格式:
前面的都一樣,在這里就不說了。MAC幀的地址,變成了單播的地址。同樣可以看到源MAC換成了剛才請求的ip的MAC,源ip為剛才請求的ip。目的ip,MAC為剛在請求者的ip和MAC。請求類型變成了0x0002,位ARP響應報文。
以上是我對ARP報文的分析。
總結
以上是生活随笔為你收集整理的ARP协议格式和实例分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于ireport中文不显示问题
- 下一篇: PowerBI-日期和时间函数-YEAR