Wireshark實戰分析之ARP協議

ARP(Address Resolution Protocol)協議,地址解析協議。該協議的功能是將IP地址轉化爲物理地址。

可能有人就會問了? 爲什麼ARP的功能是將IP地址轉化爲物理地址?

對於上面這個問題,我們就不得不說OSI七層模型了,關於OSI七層模型的詳細我這了不做過多介紹。其中IP地址是在第三層即網絡層,MAC地址是在第二層即數據鏈路層,他們彼此是不能通信的。在通過以太網發送IP數據包時,需要先封裝IP地址和MAC地址報頭的。但是由於發送數據包時知道目標的IP地址,而是不知道目標的MAC地址的,而彼此通信就必須知道對方的MAC地址,所以需要使用ARP地址解析協議。

既然知道ARP協議的作用,那接着說ARP的工作流程,它到底是如何工作的?

如上圖所示,ARP工作分爲2個階段,第一階段ARP請求,第二階段ARP響應。

假設PC1的IP爲192.168.1.1, PC2的IP爲192.168.1.2。此時PC1想給PC2發送數據

(1)PC1會在自己的本地的ARP緩存表中通過PC2的IP地址檢查與之對應的MAC地址

(2)如果在自己本地的ARP緩存表中沒有找到與之匹配的MAC地址,PC1就會將ARP的請求幀廣播到本地網絡的所有主機。當本地網絡上所有主機都接收到ARP請求後,並且檢查是否與自己的IP地址相匹配,如果補匹配則會丟棄。

(3)此時PC2也會收到ARP請求報,PC2確定ARP請求中的IP地址與自己的IP地址相匹配,則會將PC1的地址和MAC地址加入到自己的本地ARP緩存表中

(4)此時PC2會將包含自己的MAC地址的ARP響應包回覆到PC1,此時是單播

(5)當PC1收到主機PC2發來的ARP響應包後,會將PC2的IP地址和MAC地址一同加入到自己的本地ARP緩存表中。當然這不是永久性的,默認有效期是120s,當時間超時後,將會刪除該條目,然後重新上述的過程。


可能有人就會問, 什麼是ARP緩存表? 有什麼作用?

ARP緩存表就是記錄IP地址和經過解析後的MAC地址對應的條目的一張表。因爲一個局域網中的電腦少則幾臺,多則幾百臺。這麼多電腦之間通信,不可能每次都去獲取MAC地址,所以就有了ARP緩存表。

當然可以通過Window中的運行,查看ARP命令

當然可以通過arp -a 顯示ARP表


本節學習如何獲取ARP協議包,以及分析ARP數據。

分析之前,先看看ARP的報文格式

上圖是ARP請求、應答報文的格式,下面做詳細解釋

對以太網首部來說:

如果是請求ARP報文的話,以太網目的地址: 是(全1)的,是廣播報,目的是讓局域網上所有主機都收到ARP請求包

以太網源地址: 就是發送端地址。

幀類型: 如果是ARP報文,值爲0x0806

硬件類型: 表明ARP協議實現在那種類型的網絡上,它的值爲1,即表示以太網地址

協議類型:表示解析協議(上層協議),這裏一般是0800,即IP

硬件地址長度:也就是MAC地址長度,即6個字節

協議地址長度:也就是IP地址長度,即4個字節

操作類型:表示ARP協議數據報類型。1表示請求報文,2表示應答報文

發送端以太網地址:也就是源MAC地址

發送端IP地址:也就是源IP地址

目的端以太網地址:目標端MAC地址(如果是請求報文,是全0)

目地端IP地址:也就是目地端的IP地址


既然瞭解了ARP的詳細格式,就嘗試獲取ARP報文。

實例:

如上圖所示,pc1給pc2發送ARP請求,此時使用Wireshark獲取ARP抓包數據


既然都獲取到ARP的數據,那就分析ARP的數據。

先分析ARP請求數據報文:

選中57幀,可以在wireshark中查看報的詳細信息:


當PC1發送的ARP請求報文,以廣播報的形式發送到局域網後,當pc2檢測到IP地址與自己的IP相同,就會發送給PC1響應報文,也就是58幀

對於ARP響應包來說,源IP,目地IP,源MAC,目地MAC都是知道了的。


關於分析ARP響報文,就分析到這裏


發佈了93 篇原創文章 · 獲贊 16 · 訪問量 151萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章