ARP報文詳解


ARP(Address Resolution Protocol)地址解析協議,根據IP地址獲取物理地址的一個TCP/IP協議。

  由於OSI模型把網絡分為七層,IP地址在OSI模型第三層,MAC地址在第二層,彼此不直接通信。在通過以太網發送IP數據包時,需要封裝第三層(32位IP地址)和第二層(48位MAC地址)的報頭,由於發送數據包時,只知道目標IP地址,不知道其MAC地址,而又不能跨越第二、三層,所有需要使用地址解析協議。

 

ARP報文格式

字段1:ARP請求的目的以太網地址,全1時,代表廣播地址。

    字段2:發送ARP請求的以太網地址。

    字段3:以太網幀類型表示后面的數據類型,ARP請求和ARP應答此字段為:0x0806。

    字段4:硬件地址類型,硬件地址不止以太網一種,是以太網類型時,值為1。

    字段5:表示要映射的協議地址的類型,要對IPv4地址進行映射,此值為0x0800。

    字段6和7:表示硬件地址長度和協議地址長度,MAC地址占6字節,IP地址占4字節。

    字段8:是操作類型字段,值為1,表示進行ARP請求;值為2,表示進行ARP應答;值為3,表示進行RARP請求;值為4,表示進行RARP應答。

    字段9:是發送端ARP請求或應答的硬件地址,這里是以太網地址,和字段2相同。

    字段10:是發送ARP請求或應答的IP地址。

    字段11和12:是目的端的硬件地址和IP地址。
ARP解析過程

    (1)當PC1想發送數據給PC2,首先在自己的本地ARP緩存表中檢查主機PC2匹配的MAC地址

    (2)如果PC1緩存中沒有找到響應的條目,它將詢問主機PC2的MAC地址,從而將ARP請求幀廣播到本地網絡的所有主機。該幀中包括源主機PC1的IP、MAC地址,本地網絡中的所有主機都接收到ARP請求,並且檢查是否與自己的IP地址相匹配。如果發現請求中IP地址與自己IP不匹配,則丟棄ARP請求。

    (3)主機PC2確定ARP請求中得IP地址與自己的IP地址匹配,則將主機PC1的地址和MAC地址添加到本地緩存表中。

    (4)主機PC2將包含其MAC地址的ARP回復消息直接發送回主機PC1(數據幀為單播)。

    (5)主機PC1收到PC2發揮的ARP回復消息,將PC2的IP和MAC地址添加至自己ARP緩存表中,本機緩存是有生存期的,默認ARP緩存表有效期120s。當超過該有效期后,則將重復上面過程。主機PC2的MAC地址一旦確定,主機PC1就能向主機PC2發送IP信息

arp報文總共42 bytes。其中以太網首部14 bytes,arp字段28字節

 

 ARP返回報文

硬件類型:表示硬件地址的類型(其中,值為1表示以太網地址,其他還可能表示令牌環地址)。

協議類型:表示要映射的協議地址類型(其中,0x0800表示IP地址,其他還可能是ICMP/IGMP)。

硬件地址長度:指出該報文中硬件地址的長度(ARP報文中,它的值為6)。

協議地址長度:指出該報文中協議地址的長度(ARP報文中,它的值為4)。

op:操作字段,共有4種類型(1.ARP請求,2.ARP應答,3.RARP請求,4.RARP應答)。

發送者mac地址:發送方設備的硬件地址。

發送者ip地址:發送方設備的IP地址。

目的mac地址:接收方設備的硬件地址。

目的ip地址:接收方設備的IP地址。

 


免責聲明!

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



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