【计算机网络学习笔记09】ARP地址解析协议
【計算機網絡學習筆記09】ARP地址解析協議
ARP地址解析協議
在實際應用中,我們常會遇見這樣的問題:已知一個機器(主機或路由器)的IP地址,需要找出其相應的硬件,這時就需要使用到地址地址解析協議(Address Resolution Protcol,ARP)。
1 ARP數據包格式
圖1 ARP數據包格式
下面介紹 ARP報文中各字段的含義。
(1)硬件地址類型。指明硬件的類型,一般是以太網,值為1。
(2)協議類型。指明發送者映射到數據鏈路標識的網絡層協議類型,一般為P協議,對應值為0x0800。
(3)硬件地址長度。也就是MAC地址的長度,單位是字節。
(4)協議地址長度。網絡層地址即IP地址的長度,單位是字節
(5)操作代碼。指定了ARP報文的類型,包括ARP Request和 ARP Reply。
(6)源MAC地址和源IP地址。指的是發送ARP報文的設備的MAC地址和IP地址。
(7)目的 MAC地址和目的IP地址。目的MAC地址指的是接收者MAC地址,在ARP Request報文中,該字段值為0;目的IP地址指的是指接收者的IP地址。
2 ARP協議的要點
眾所周知,網絡層使用的是IP地址,但實際網絡的鏈路上傳送數據幀時,最終還是必須使用該網絡的硬件地址。但IP地址和下面的網絡的硬件地址之間由于格式不同而不存在簡單的映射關系。此外,為了解決在一個網絡上可能經常會有新的主機加入、撤走,或更換網絡適配器也會使主機的硬件地址改變的問題,在主機ARP高速緩存中設有一個從IP地址到硬件地址的映射表,并且這個映射表還經常動態更新。
ARP高速緩存映射表的建立采用的是自學習的方法,學習到的IP地址和MAC地址的映射關系會被放入ARP緩存表中,一般ARP表項的默認存放時間為180s。
3 ARP工作過程
① 源主機和目的主機處在同一局域網絡中的情況,如圖2所示。
圖2 ARP的工作過程
假設PC2為剛接入的主機,PC1的ARP緩存表中沒有PC2的MAC地址。在這種情況下,主機 PC1就自動運行 ARP,然后按以下步驟找出主機PC2的硬件地址。
(1) ARP進程在本局域網上廣播發送一個ARP Request幀進行請求。如圖3所示為被封裝的ARP Request幀的具體內容,此時該報文會在整個網絡上傳播,包括所有主機和網關都會收到此報文。
圖3 被封裝的ARP Request幀的具體內容
(2)網關會阻止該報文發送ARP Request 報文到其他局域網中去,其他主機會檢查所接收的報文目的協議地址字段與自身的IP地址是否匹配,如果不匹配,則直接丟棄。如果匹配,如 PC2,則首先將ARP報文中的源MAC地址和源IP地址信息寫入到自己的ARP緩存映射表中,然后通過ARP Reply報文進行響應。ARP Reply被封裝成幀的內容如圖4所示,封裝后的幀和ARP Reply 報文的源地址信息是PC2的,而目的地址信息是 PC1的,同時ARP Reply報文中的操作代碼被設置為Reply。ARP Reply報文通過單播傳送。
圖4 被封裝的ARP Reply幀的具體內容
PC1收到ARP Reply后,會檢查ARP報文中的目的MAC地址是否和自己的MAC地址匹配,如果匹配,則首先將源MAC地址和源IP地址寫入自己的ARP緩存映射表中。
② 源主機和目的主機處在不同局域網絡中的情況,如圖5所示
圖5
(1)發送方是主機PC1,要把IP數據報發送到另一個網絡上的一臺主機PC2。這時PC1發送ARP請求分組(在網1上廣播),找到網1上的一個路由器R1的硬件地址。剩下的工作由路由器R1來完成。
(2)發送方是路由器R1,要把IP數據報轉發到與R1連接在同一個網絡(網2)上的主機PC2。這時R1發送ARP請求分組(在網2上廣播),找到目的主機PC2的硬件地址。
雖然在網絡鏈路上傳送的幀最終是按照硬件地址來找到目的主機的,但是我們仍然要用到抽象的IP地址,而不是直接使用硬件地址進行通信。其原因就是在全世界上存在各式各樣的網絡,它們使用不同硬件地址,要使這些異構網絡能夠互相通信就必須進行非常復雜的硬件地址轉換工作,因此由用戶或用戶主機來完成這項工作幾乎是不可能的事。但IP編址把這個復雜問題解決了。
4 免費ARP和代理ARP
免費ARP
當網絡上的一個設備被分配了IP地址或者IP地址發生變更后,可以通過免費ARP來檢查其所分配的IP地址在網絡上是否唯一,以避免地址沖突。
代理ARP
代理ARP是ARP協議的一個變種。 對于沒有配置缺省網關的計算機要和其他網絡中的計算機實現通信,網關收到源計算機的 ARP 請求會使用自己的 MAC 地址與目標計算機的 IP地址對源計算機進行應答。
作者: 鄭偉欽
排版: 胖虎
初審: 正山小種
復審: 二月二
更多視頻課程請訪問 “CSDN 正月十六工作室講師學院首頁”
總結
以上是生活随笔為你收集整理的【计算机网络学习笔记09】ARP地址解析协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个人如何做好量化投资管理?
- 下一篇: java pv实现_java实现UV.P