1. 程式人生 > >網絡協議筆記-網絡層-ARP協議

網絡協議筆記-網絡層-ARP協議

過期 響應 ip地址 保存 2.4 筆記 網上 數據鏈路 color

【2-地址解析協議ARP】

【2.1-基本概念】

  地址解析協議ARP的作用是根據主機的IP地址,找出該主機的硬件地址。

【2.2-為什麽要使用ARP】

  在數據傳輸過程中,網絡層使用的IP地址,但是在實際傳輸的時候,數據是從網絡的數據鏈路上傳送數據幀的(就是數據鏈路層所做的工作,七層網絡結構中,數據從上往下移動),所以最終還是需要使用網絡的硬件地址。因為七層網絡結構中每一層都是黑盒的,所以在討論數據在網絡層傳輸的時候,就忽略了對數據鏈路層的討論。

【2.3-ARP的簡要工作原理】

  每一臺主機都有一個ARP高速緩存表,用來存儲主機所在局域網上所有主機和路由器的IP地址到硬件地址的映射表。當網絡層傳輸數據時,指明數據的目的IP地址,然後通過目的IP地址在ARP高速緩存表中找到該主機的硬件地址,即目的主機的硬件地址,然後把網絡層的IP數據報加上源硬件地址和目的硬件地址,封裝成MAC幀(數據鏈路層的數據傳輸單位)在數據鏈路上進行數據傳輸。

2.4-ARP怎麽獲取本網絡其他主機的IP地址硬件地址的映射關系

  假設主機A要向本網絡中的主機B發送IP數據報,首先主機A在自己的ARP高速緩存表中根據主機B的IP地址找對應的硬件地址,如果找到了,就這個硬件地址寫到MAC幀,然後通過局域網把這個MAC幀發送到這個硬件地址。如果沒有找到,主機A就向自己所在的局域網廣播ARP請求分組,這個請求分組中的信息是這樣的,“主機A的IP的地址,主機A的硬件地址,目的主機B的IP地址”;接著這個網絡上的所有主機都收到這個請求,都各自檢查請求中目的主機的IP地址是不是自己,如果不是,就不做任何響應,如果是,就先把主機A的IP地址和硬件地址的映射關系在自己的ARP高速緩存表中保存一下,然後向主機A發送單播響應信息,信息內容是這樣的,“主機B(自己)的IP地址,主機B(自己)的硬件地址”;主機A收到主機B的單播響應信息之後,就把映射關系緩存在自己的ARP高速緩存表中,最後把主機B的硬件地址寫到MAC幀中,通過局域網把MAC幀發送到主機B的硬件地址。

  假設主機B的硬件地址換了,主機A中保存的映射關系不就變成錯誤的了嗎? 解決辦法就是,本機的ARP高速緩存表有個過期時間,一定時間內容會清空,重新更新這個高速緩存表。

  當目的主機B和主機A不在同一個網絡中怎麽辦?如果是這樣,那麽主機A的ARP高速緩存表中保存的就是兩個網絡之間的路由器的硬件地址,主機A根據路由器地址解析出路由器的硬件地址,然後把MAC幀發送給路由器,然後就不管了,由路由器再做ARP的解析去把數據最終發送到目的主機B的硬件地址去。個人理解也可以把這個路由器當成一個主機。

網絡協議筆記-網絡層-ARP協議