ARP 位址解析協議

2022-05-06 02:30:06 字數 3618 閱讀 2296

ip協議的設計目標是為跨越不同型別的物理網路的分組交換提供互操作,這就需要網路層軟體使用的位址(ip)和底層硬體使用的位址之間進行轉換,網路介面硬體通常有乙個主要的硬體位址(例如乙太網的802.11無線介面的48位位址)。由硬體交換的資料幀必須通過正確的硬體介面,否則將無法進行資料傳輸。

此外,網路位址(ipv4  32bit  |  ipv6  128bit)和硬體位址(mac位址  48位)由不同的管理部門分配,就硬體位址而言,其嚴格遵循裝置硬體介面位址的唯一性,由裝置製造商在icann(網際網路名稱與數字位址分配機構)的規定下分配,其儲存在裝置的永久性記憶體中,所以他不會改變。就網路位址而言,隨著ipv4網路位址的有限性,更多的是網路服務商(isp)從ieee的註冊管理機構ra得到ip網段,並按需分配,例如wifi,其ip就是從網路連線點的網路池中動態租用的,具有一定的時效性,所以ip位址可能改變。

arp僅用於ipv4,ipv6使用鄰居發現協議,他被合併到icmpv6協議中。

arp便是發現兩個位址之間對映關係的過程。並且總是用於32位ipv4位址和乙太網的48位mac位址之間的動態對映。

之所以說arp是動態的,是因為它會自動執行和隨時間變化,當一台主機改變了他的網路介面卡,從而改變了他的硬體位址(但保留著臨時或永久分配的ip位址),arp是可以在較短的時間內動態發現並作出修改的。

提供arp的反向對映協議稱為rarp,它用於缺少磁碟驅動器的系統,目前用處很少。

1. 乙太網。乙太網是當今現有區域網採用的最通用的通訊協議標準,關注於osi的末兩層(資料鏈路層和物理層), 其次, 無論是區域網,還是廣域網中的計算機之間的通訊,最終都表現為將資料報從某種形式的鏈路上的初始節點出發,從乙個節點傳遞到另乙個節點,最終傳送到目的節點,  

2. 網段(鏈路)。用來區分網路上的主機是否在同一網路區段內,在區域網中,每台電腦只能和自己同一網段

的電腦互相通訊,假設有乙個ipv4位址為192.168.123.250, 說明它處於192.168.123.x(暫不考慮子網掩碼)的網段(x代表1-255之間的任意值).若您的路由器的ip位址是192.168.1.x或是其他位址,說明二者不處於同一網段,則它們之間無法相互連線。

3. arp協議規定arp請求只能在同一網段(相同網路字首)內傳遞,否則將**給網段內的預設閘道器(或者其他路由),例如a(192.168.123.250)發出arp請求,請求連線b(192.168.3.0),但不在同一網段(192.168.123.x)內則請求其預設閘道器c(如192.168.12,123 ) , 假設a閘道器恰好位於192.168.x.x網段內,a發現能夠直連b,b收到a**c的arp請求並響應,c再將響應回傳給a,即完成一次跨網段arp請求過程

假設主機a和b在同乙個網段(相同ip網路字首),主機a要向主機b傳送資訊,具體的位址解析過程如下:

(1) 主機a首先檢視自己的arp快取表,確定其中是否包含有主機b對應的arp表項。如果找到了對應的mac位址,則主機a直接利用arp表中的mac位址,對ip資料報進行幀封裝,並將資料報傳送給主機b。

(2) 如果主機a在arp快取表中找不到對應的mac位址,則將快取該資料報文,然後以廣播方式傳送乙個arp請求報文。arp請求報文中的傳送端ip位址傳送端mac位址為主機a的ip位址和mac位址,目標ip位址目標mac位址為主機b的ip位址和全0的mac位址。由於arp請求報文以廣播方式傳送,該網段上的所有主機都可以接收到該請求,但只有被請求的主機(即主機b)會對該請求進行處理。

(3) 主機b比較自己的ip位址和arp請求報文中的目標ip位址,當兩者相同時進行如下處理:將arp請求報文中的傳送端(即主機a)的ip位址和mac位址存入自己的arp表中。之後以單播方式傳送arp響應報文給主機a,其中包含了自己的mac位址。

(4) 主機a收到arp響應報文後,將主機b的mac位址加入到自己的arp快取表(到期時間20min)中以用於後續報文的**,同時將ip資料報進行封裝後傳送出去。

欄位1是arp請求的目的乙太網位址,全1時代表廣播位址。

欄位2是傳送arp請求的乙太網位址。

欄位3乙太網幀型別表示的是後面的資料型別,arp請求和arp應答這個值為0x0806。

欄位4表示硬體位址的型別,硬體位址不只乙太網一種,是乙太網型別時此值為1。

欄位5表示要對映的協議位址的型別,要對ipv4位址進行對映,此值為0x0800。

欄位6和7表示硬體位址長度和協議位址長度,mac位址佔6位元組,ip位址佔4位元組。

欄位8是操作型別字段,值為1,表示進行arp請求;值為2,表示進行arp應答;值為3,表示進行rarp請求;值為4,表示進行rarp應答。

欄位9是傳送端arp請求或應答的硬體位址,這裡是乙太網位址,和字段2相同。

欄位10是傳送arp請求或應答的ip位址。

欄位11和12是目的端的硬體位址和協議位址

arp之所以能夠高效執行,是因為在每個主機或者路由器上維護了乙個arp快取,該快取使用位址解析為每個介面維護網路層到硬體位址的最新對映,當產生乙個arp快取條目時,其正常到期時間是20min

使用arp命令檢視本機arp快取(windows system)

顯示了硬體介面位址的arp快取條目。

動態條目隨時間推移自動新增和刪除(arp學習)。

靜態條目是不會更改的。

超時通常與每乙個arp快取條目相關,在大多數實現中,完整條目的超時為20min, 不完整條目的超時時間為3min(不完整條目,例如強迫主機請求乙個不存在的主機位址),這些實現通常在每次使用乙個條目後為他重新啟動20min的超時。

**arp使乙個系統可回答不同主機的arp請求。它使arp傳送者認為作出響應的系統就是目的位址,這和http反向**的效果類似,但實際上目的主機不存在或在其他網段,通常應該盡量避免使用他。

**arp也稱為arp混雜arp和arp黑客。這些名稱來自arp**的歷史用途: 兩個物理網路相互隱藏自己。在這種情況下,兩個物理網路可使用相同的ip字首,只要將中間的路由器配置為乙個**arp,在乙個網路中由**響應對其他網路主機的arp請求。這種技術可用不向一組主機隱藏另一組主機。從前,這樣做有兩個常見原因:有些系統無法進行子網劃分,有些系統使用比較舊的廣播位址(全0而不是全1)

linux支援一種自動**arp的功能。他可以通過在檔案/proc/sys/net/ipv4/conf/*/proxy_arp中寫入字元1,或使用sysctl命令來啟動, 並且不需要手動輸入arp條目,而是選擇乙個**位址範圍。

ARP協議 位址解析協議

網路層使用的是ip位址,但實際網路的鏈路上傳送資料幀時,最終還是必須使用該網路的硬體位址。arp快取記憶體 ip位址到硬體位址的對映表 那麼一台主機 a 是如何獲知本區域網內其他主機或路由的硬體位址的?主機a廣播arp請求分組 我的ip是 硬體位址是 請告知我ip位址為 主機的硬體位址。本區域網內的...

位址解析協議 ARP

1.什麼是arp?英文原義 address resolution protocol 中文釋義 是乙個位於tcp ip協議棧中的低層協議,負責將某個ip位址解析成對應的mac位址。區域網中,網路中實際傳輸的是 幀 幀裡面是有目標主機的mac位址的。所謂 位址解析 就是主機在傳送幀前將目標ip位址轉換成...

位址解析協議(ARP)

位址解析協議 arp 作用是將邏輯位址對映為實體地址,即將ip位址和實體地址關聯起來。當主機或路由器想要知道網路上另一台主機或者路由器的實體地址的時候,它就會傳送arp查詢分組。這個分組包括傳送端的實體地址和ip位址,以及接收端的ip位址。因為傳送端不知道接收端的實體地址,所以查詢就在網路上廣播。a...