协议簇:Ethernet Address Resolution Protocol (ARP) 解析
簡介
前面的文章中,我們介紹了 MAC Frame 的幀格式。我們知道,在每個 Ethernet Frame 中都分別包含一個 48 bit 的源物理地址和目的物理地址. 對于源地址很容易理解,該地址可以直接從硬件上讀取. 但是對于一個網絡節點,他怎么知道一個 Frame 的目的物理地址呢? 本文我們將學習 ARP 協議來解答這個問題.
ARP 協議主要用來完成將網絡層協議的地址(比如,IP 地址)解析為物理地址的工作.
為什么需要將網絡層協議的地址轉換為物理地址呢?
對于物理層來說,他僅僅能處理 48 bit 的物理地址,而網絡層協議往往有自己協議中定義的協議地址,而這些協議的地址往往都不一樣. 比如, IP 地址的長度為 32 bit,CHAOS 地址的長度為 16 bit, Xerox PUP 地址的長度為 8 bit.
反過來說,ARP 協議的存在也是必須的. 因為如果一個物理層想要同時支持上述的這些協議,他就不應該依賴于這些協議的實現,而是定義自己的地址格式,再通過一種方式將網絡層協議的地址轉化為物理地址. 這個方式就是 ARP 協議要實現的功能.
說明一點,接下來的描述將傾向于網絡層協議是 IP 來進行描述.
ARP 包格式
ARP 協議的包結構比較簡單,我們直接看一個例子. 通過這個例子來解析每個字段的含義:
首先,我們注意到 ARP 包中 ar$op 字段可能的值有兩個 REQUEST 和 REPLY。也就是說 ARP 協議的包大體分為兩類,我們一一來看.
REQUEST
這個包對應的二進制數據為:
00 01 08 00 06 04 00 01 dc a3 33 c4 1e 5a c0 a8
01 01 00 00 00 00 00 00 c0 a8 01 65
10.Target IP Address: 該字段對應于 ar$tpa, 表明想要將該IP地址解析為物理層地址.
總結:
REPLY
這個包對應的二進制數據為:
00 01 08 00 06 04 00 02 98 fa 9b 17 a8 f8 c0 a8
01 65 dc a3 33 c4 1e 5a c0 a8 01 01
END!
總結
以上是生活随笔為你收集整理的协议簇:Ethernet Address Resolution Protocol (ARP) 解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cuda tensorflow版本对应_
- 下一篇: qt在visual studio 201