TCP/IP ARP

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

當在同一網絡段內或同一子網內,主機發送信息時將包含目標IP地址的ARP請求廣播發送到網絡上的全部主機,並接收返回消息,以肯定目標主機的物理地址;收到返回消息後將該IP地址和物理地址存入本機ARP緩存中並保留必定時間,下次請求時直接查詢ARP緩存以節約資源。網絡

ARP提供的功能是32bit的IP地址與48bit的MAC接口地址之間的動態映射。測試

 

ARP工做過程優化

  

  主機A的IP地址爲172.16.1.1,MAC地址爲78-51-7b-21-0f-05;主機B的IP地址爲172.16.1.2,MAC地址爲78-51-84-11-10-05。spa

  當主機A要與主機B通訊時,ARP地址解析協議將主機B的IP地址172.16.1.2解析成主機B的MAC地址,如下爲工做流程:blog

  一、根據主機A上的路由表,肯定訪問主機B的轉發接口地址。A主機在本機ARP緩存中查詢主機B IP地址對應的MAC地址。接口

  二、若是主機A在ARP緩存中沒有找到映射,它將詢問172.16.1.2對應的MAC地址,並將ARP請求幀廣播到本地網絡上的全部主機。源主機A的IP地址和MAC地址都包含在ARP請求幀中。本地網絡上的每臺主機都會收到ARP請求並檢查是否與本身的IP地址匹配,若是主機發現請求的IP地址與本身的IP地址不匹配,則丟棄ARP請求包。資源

  三、主機B肯定ARP請求中的IP地址與本身的IP地址匹配,則將主機A的IP地址和MAC地址映射添加到本機ARP緩存中。路由

  四、主機B將包含其MAC地址的ARP回覆消息直接發送回主機A。工作流

  五、當主機A收到從主機B發來的ARP回覆消息時,會用主機B的IP和MAC地址映射更新ARP緩存。

  本機緩存是有生存期的,生存期結束後,將再次重複上面的過程,主機B的MAC地址一旦肯定,主機A就能向主機B發送IP通訊了。

  

ARP緩存

  ARP緩存是儲存IP地址和MAC地址的緩衝區,其本質是一個IP地址與MAC地址的對應表,表中記錄了網絡上主機的IP地址與對應的MAC地址。當地址解析協議被詢問一個已知IP地址對應的MAC地址時,先在ARP緩存中查看,若存在,就直接返回與之對應的MAC地址,若不存在,才發送ARP請求向局域網查詢。

    

ARP報文格式

  

  一、目的地址(6bit):ARP請求的目的地址,全F表明廣播地址。

  二、源地址(6bit):發送ARP請求的以太網地址。

  三、幀類型(2bit):表示後面的數據類型,ARP請求和ARP應答這個值爲0x0806。

  四、硬件類型(2bit):硬件地址的類型,是以太網類型時此值爲1。

  五、協議類型(2bit):要映射的協議地址的類型,要對IPv4地址進行映射,此值爲0x0800。

  六、硬件地址長度(1bit):MAC地址佔用的長度,6字節。

  七、協議地址長度(1bit):IP地址佔用的長度,4字節。

  八、操做類型OP(2bit):ARP請求(值爲1)、ARP應答(值爲2)、RARP請求(值爲3)、RARP應答(值爲4)。

  九、發送端以太網地址(6bit):發送ARP請求地址(MAC)。

  十、發送端IP地址(4bit):發送ARP請求的IP地址(IP)。

  十一、目的以太網地址(6bit):接收ARP請求地址(MAC)。

  十二、目的IP地址(4bit):接收ARP請求的IP地址(IP)。

 

ARP實例(分析):

  一、這次測試環境,我選擇在咱們的局域網中用真機進行的測試,爲了能還原ARP協議在真實的網絡環境中,整個請求與應答的全過程。

   二、爲了測試ARP協議,請求的主機IP是243,應籤主機IP是1,當IP是243的主機向局域網發ARP Request請求時:

  

  三、當IP是1的主機迴應IP是243的主機發ARP Response迴應時:

  

  總結:在window 7環境下,發ARP Request請求時,發送的數據包長是42字節,發ARP Response迴應時,發送的數據包長是60字節。爲什麼不是TCP/IP模塊中對以太網最小幀64字節的定義呢?

  一、發送時是42字節,並未補18個字節的空值,也沒有4字節的FCS值。

  二、回覆時是60字節,有18個字節的空值,沒有4字節的FCS值。

  猜測,當數據包發送與回覆時,抓包軟件抓取的數據包幀長度並未與以太網最小幀長64字節匹配,是網卡作了優化?

相關文章
相關標籤/搜索