1. 程式人生 > >ARP廣播應答

ARP廣播應答

        之前對ARP的理解是,request為廣播,而reply為單播。但是今天在做專案解析arp資料包時,老大(ps:神一般的存在)給我說arp響應也有廣播這種情況,於是去google,查到在知乎上也有人問到同樣的問題,並且還貼出了抓取的資料包,剛好省去我抓包的工作,他抓取的資料包如下:

我們可以看到第14個數據包的op欄位值為2,即為arp響應,target mac為ff:ff:ff:ff:ff:ff。確實存在arp廣播應答包,為什麼會出現這種情況呢?

大家看第14個Packet,其IP=140.138.17.193,再看看前面13個Packet,沒有一個是ARP請求IP= 140.138.17.193 的MAC地址的,所以第14個Packet是主機主動(Gratuitous ARP)

發出來的,其目的是:主動告訴廣播域裡的其它主機,IP= 140.138.17.193 對應的MAC = 90.e7.c4.15.40.fe,其它主機都會將這個對應關係快取(Cache)下來,即ARP Table Cache,這樣可以避免別的主機和140.138.17.193 通訊時,事先還需要先ARP廣播請求,大大減少ARP廣播。

在《TCP/IP》講解了免費ARP:1、定義:

它是指主機發送ARP查詢自己的IP地址。通常發生在系統引導期間進行介面配置的時候。

2、作用:

a、一個主機可以通過它來確定另一個主機是否設定了相同的IP地址。 b、如果傳送免費ARP的主機正好改變了硬體地址(很可能是主機關機了,並換了一塊介面卡,然後重啟),那麼這個分組就可以使其他主機快取記憶體中舊的硬體地址進行相應更新。