ARP協議詳解

2022-07-12 16:30:21 字數 2177 閱讀 7610

ip位址屬於網路層,但ip位址在傳輸的時候需要跨越不同的物理網路進行交換,此時如果一台主機要將乙個幀傳送到另一台主機,光知道其ip位址是不夠的,還需要知道其有效的「硬體位址」。

arp(位址解析協議)就提供了一種在32位ipv4位址和乙太網的48位mac位址(硬體位址)之間的對映。

arp提供的是網路層位址到相關硬體位址的「動態對映」,即:會自動執行和隨時間變化,而不需要系統管理員的配置。(如一台一台主機改變了它的網絡卡後(mac位址改變),arp可以在一定延時後繼續正常工作)

當本地計算機在瀏覽器中瀏覽乙個網頁時:

本地計算機先是判斷該服務是位於本地(看ip位址是否位於同一子網)還是遠端。

如果是遠端,且傳送端與遠端接收端之間是「直接交付」(擁有相同的ip位址字首)的形式,

整體流程如下圖:

(1)瀏覽器呼叫乙個特殊的函式來解析url,看其是否包含網域名稱(主機名)。(此例子使用的是ipv4位址)

(2)應用程式要求tcp協議建立一條到10.0.0.1的連線。

(3)tcp嘗試向遠端主機傳送乙個連線請求(此時由於假定的是直接交付,所以中途不經過任何路由器)。

(4)、(5)檢視本地主機的「arp快取(或表)」中是否已經快取了ip位址與mac位址之間的對映,如果沒有快取,則進入下面的步驟。

(6)在乙個共享的鏈路層網段上(arp協議多用於區域網內的直接交付),arp向「所有主機」傳送乙個稱為「arp請求」的乙太網幀。這種行為被稱為「乙太網廣播」(也叫鏈路層廣播)。而「arp請求」的目的是:如果某主機接收了該arp請求,且該主機ipv4位址也與10.0.0.1一致,那麼這台主機請返回給我你的mac位址。(arp協議就是用這種方式,知道了10.0.0.1位址所對應的mac位址)。(ip位址不匹配的主機會主動丟棄掉arp請求)

(7)假設找到了「使用10.0.0.1作為ipv4位址」的主機,那麼該主機的arp協議需要響應乙個「arp應答」。該應答包含該主機的ipv4位址和mac位址。該應答會直接傳送給請求的傳送方。

(8)「arp應答」被原始請求的傳送方接收。

(9)傳送方將資料報封裝在乙太網幀中,使用通過arp協議獲取到的接收方的mac位址,直接將乙太網幀傳送給接收方。

由此該乙太網幀僅指向正確的目的主機,其他主機或路由不會接收到這個資料報。

通過這個流程,我們也能明白:當僅使用直接交付時,並不需要經過路由器。

為了使arp高效執行,每個主機或路由器上都維護有一張「arp快取表」。

該快取儲存了每個介面從網路層位址(ip位址)到硬體位址(mac位址)的最新對映關係。

快取正常的到期時間為:條目建立開始後的20分鐘。(管理員也可設定快取條目永不超時)

每個對映的快取條目包含5個元素:

主機名(對應乙個ip位址)、硬體位址型別、硬體位址、標誌、本地網路介面。

其中「標誌」包含了乙個符號:c、m或p.

c表示,該快取條目是由arp協議自己「動態學習」得來的。

m表示,該快取條目是手工輸入的。

p表示,該快取條目是「發布的」。對於任何p類的快取條目,主機對輸入的arp請求都返回乙個arp相應。該選項用於配置**arp。

前14個位元組(mac頭部)是乙個標準的乙太網幀頭部,dst表示目的mac位址,src表示源mac位址,長度或型別用於確定頭部後面的資料型別,常見的值包括:0x0800(ipv4)、0x86dd(ipv6)、0x0806(arp)

前14個位元組之後,由arp協議來定義,arp幀的前8個位元組時通用的:

硬體型別字段指出硬體位址型別,對於乙太網,該值為1.

協議型別字段指出對映的協議位址型別,對於ipv4位址,該值為0x0800。(當乙太網幀包含「ipv4資料報」時,長度或型別欄位與協議字段可能一樣,即都是0x0800)

硬體大小和協議大小分別指出硬體位址和協議位址的位元組數。(對於乙太網中使用ipv4位址的arp應答,其值為6和4)

op欄位指出該操作是:arp請求(值為1)、arp應答(2)、rarp請求(3)、rarp應答(4)

**arp是乙個系統(通常是乙個路由器)可回應不同主機的arp請求(簡單的說就是不管你找的是不是我,我都響應你,把我的mac位址告訴你,這樣你下次再訪問該ip時,通過arp快取表,自動就訪問到我這台冒名的主機上了)。

ARP協議詳解

arp addressresolutionprotocol 位址解析協議用於將計算機的網路位址 ip位址32位 轉化為實體地址 mac位址 48位 rfc826 arp協議是屬於鏈路層的協議,在乙太網中的資料幀從乙個主機到達網內的另一台主機是根據48位的乙太網位址 硬體位址 來確 定介面的,而不是根...

ARP協議詳解

arp addressresolutionprotocol 位址解析協議用於將計算機的網路位址 ip位址32位 轉化為實體地址 mac位址48位 rfc826 arp協議是屬於鏈路層的協議,在乙太網中的資料幀從乙個主機到達網內的另一台主機是根據48位的乙太網位址 硬體位址 來確定介面的,而不是根據3...

ARP協議詳解

arp address resolution protocol 位址解析協議用 於將計算機的網路位址 ip位址32位 轉化為實體地址 mac位址48位 rfc826 arp協議是屬於鏈路層的協議,在乙太網中的資料幀從乙個 主機到達網內的另一台主機是根據48位的乙太網位址 硬體位址 來確定介面的,而不...