天天看點

tcp ip協定筆記(4)——arp



一.ARP和RARP

網絡傳輸中,根據目的ip位址通過路由選擇可以在網際網路中傳輸,但是如果不知道目的接口,那麼也就不知道包該傳輸到某個網絡或某個子網中哪台主機。arp(位址解析協定)即可根據目的ip來擷取目的接口進而使倆台主機正常通信。RARP與ARP相反,逆位址解析協定。arp為不同的網絡層提供位址解析服務。

二.ARP傳輸過程

主機要與目的主機進行通信,那麼首先得進行tcp連接配接,發tcp連接配接請求,tcp請求包根據路由選擇到達目的網絡或區域網路,但是目的接口未知,不能進一步把tcp包送達主機,這時就得利用arp解析協定來

擷取目的接口位址:

1.主機發出ARP請求包,目的ip位址廣播

2.網絡中所有主機都接受到arp請求包,網絡中的所有主機ip與arp請求包中的ip位址不同則丢棄arp包,找到相同則給發出arp請求包的主機回應一個arp回應包,包裡包含主機的接口位址

3.源主機收到目的主機的arp回應包,擷取到目的接口位址,和目的主機進行tcp三次握手,連結通信

如圖:

tcp ip協定筆記(4)——arp

三.ARP格式

arp請求包格式如圖:

tcp ip協定筆記(4)——arp

Destination: Broadcast (ff:ff:ff:ff:ff:ff)   目的接口位址 全1 廣播位址

Source: HuaweiTe_d8:80:02 (9c:c1:72:d8:80:02)   源接口位址

Type: ARP (0x0806)      協定類型

Padding: 000000000000000000000000000000000000   因為arp以太網頭18位元組,arp段28位元組,總共位元組才46,因為以太網幀最小長度是60,是以得填充字元達到最小長度

Hardware type: Ethernet (1)     硬體類型 表示硬體位址的類型,1表示以太網位址

Protocol type: IP (0x0800)     協定 表示要映射的協定位址類型       和硬體類型來确定arp包的類型 例如硬體類型1表示要擷取硬體位址 協定ip指要映射的是ip位址 指經過ip來映射出接口位址

Hardware size: 6      硬體位址的長度

Protocol size: 4      協定位址的長度

Opcode: request (1)      arp包操作類型 1為arp請求包 2為arp回應包

Sender MAC address: AsustekC_c0:5d:04 (78:24:af:c0:5d:04) 源mac位址

Sender IP address: 192.168.10.145 (192.168.10.145)  源ip位址

Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00) 目的mac位址

Target IP address: 192.168.10.126 (192.168.10.126)  目的ip位址

四.ARP高速緩存

       主機與目的主機通信那麼每次都得發arp來擷取目的主機的硬體位址,不僅會增加帶寬的擁堵,也會降低主機與目的主機的連接配接速度。arp高速緩存就是用來解決此種情況的,每台主機都有一個arp高速緩存,類似于一張ip與硬體位址的映射表,主機可以通過arp高速緩存查詢目的位址是否在其中,有則可以擷取到ip對應的接口位址,沒有發送arp擷取,高速緩存中的資料不會永遠存在,隻存在于一段時間内,時間一過便從緩存中删除,使用者可以設定主機高速緩存的生存周期

五.arp代理

有些路由器可以代替主機回應arp請求包,讓主機以為是目的主機回應的。

1.主機發出arp請求包來擷取目的主機的接口位址

2.當arp包傳送到目的主機上接的路由器時,路由器中有張路由表,把目的主機ip位址對應的接口位址組arp包回應給源主機

3.源主機收到arp回應包,以為是目的主機發來的,使用回應包裡的目的接口位址與目的主機進行通信

六.免費arp

有一種比較特殊的arp,即免費arp,它是主機對自己本身ip位址來發送arp請求包。它的作用主要有兩點:

1.來查詢所屬的網絡或區域網路中是否有相同ip位址的主機

2.來更新其他主機的arp緩存,當主機硬體位址變了,主機發出一個免費arp,其他主機擷取到arp封包更新arp高速緩存

七.RARP

逆位址解析協定

繼續閱讀