學習:ARP協議/數據包分析


ARP(Address Resolution Protocol)即地址解析協議, 用於實現從IP地址MAC地址的映射,即實現通過目標IP找到對應的MAC地址

在網絡通信中,主機和主機通信的數據包需要依據OSI模型從上到下進行數據封裝,當數據封裝完整后,再向外發出。所以在局域網的通信中,不僅需要源目IP地址的封裝,也需要源/目MAC的封裝

上層應用程序更多關心IP地址而不關心MAC地址,所以需要通過ARP協議來獲知目的主機的MAC地址,完成數據封裝


問題:內網中當 主機A 發送消息給 主機B 之間的通信是怎么樣的?

ARP請求過程:

1、主機A先在ARP緩存表中查找主機B的MAC地址

2、如果在A的ARP緩存表中找到了,那么就繼續數據封裝通信。如果沒有找到主機A會先發送ARP的廣播包(里面包括了A的IP地址和MAC地址、主機B的IP地址)

3、既然是廣播幀那么內網中的所有存活主機都會收到該ARP的廣播包

4、存活主機會進行檢查自身IP地址是否與廣播包中的目的IP地址一致,如果不一致的話進行丟棄。如果一致那么就會將主機A的IP和MAC地址添加到自己的ARP緩存表里面,然后再將自己的MAC地址和ARP響應包通過單播方式發送給主機A

5、然后主機A就可以給主機B發送消息

ARP數據包分析:

**win10: **192.168.1.104

win2008: 192.168.1.101

1、ARP請求包:

以太網目的地址: 目的主機的硬件地址,目的地址為ff:ff:ff:ff:ff:ff,則是一個廣播地址

以太網源地址:源主機的硬件地址

幀類型:ARP:0x0806、 RARP:0x8035

Hardware type :硬件類型,標識鏈路層協議

Protocol type: 協議類型,標識網絡層協議

Hardware size :硬件地址大小,標識MAC地址長度,這里是6個字節(48bti)

Protocol size: 協議地址大小,標識IP地址長度,這里是4個字節(32bit)

Opcode: 操作代碼,標識ARP數據包類型,1表示請求,2表示回應

Sender MAC address :發送者MAC

Sender IP address :發送者IP

Target MAC address :`目標MAC,此處全0表示在請求

Target IP address: 目標IP


2、ARP響應包:

響應包與請求包大致相同,不同地方為Opcode為2,源/目IP和MAC地址相反,Target MAC address被補充


小知識:關於ARP協議屬於哪層協議?

協議到底所屬哪一層,可以從應用/功能來考慮,也可以從層次/封裝來考慮。

從功能來看,它的功能最終是獲取到MAC信息,服務於鏈路層,從這點考慮,ARP是鏈路層協議;

但是從層次來看,ARP基於Ethernet協議,IP協議基於Ethernet協議,它們在Ethernet協議里面有獨立的Type類型,前者是0x0806,后者是0x0800,那么同樣屬於網絡層協議

參考文章:https://www.cnblogs.com/csguo/p/7527303.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM