地址解析协议 (ARP) 是什么
地址解析協(xié)議?(ARP) 是通過(guò)解析網(wǎng)路層地址來(lái)找尋數(shù)據(jù)鏈路層地址的一個(gè)在網(wǎng)絡(luò)協(xié)議包中極其重要的網(wǎng)絡(luò)傳輸協(xié)議。?
ARP是通過(guò)網(wǎng)絡(luò)地址(例:IPv4)來(lái)定位MAC地址?(也稱為乙太地址)。?
ARP已經(jīng)在很多網(wǎng)路層和數(shù)據(jù)鏈接層之間得以實(shí)現(xiàn),包括IPv4,Chaosnet,?DECnet和Xerox?PARC Universal Packet?(PUP) 使用IEEE 802標(biāo)準(zhǔn),?光纖分布式數(shù)據(jù)接口,?X.25,?幀中繼和異步傳輸模式?(ATM),?IEEE 802.3和IEEE 802.11標(biāo)準(zhǔn)上IPv4占了多數(shù)流量。
在IPv6中鄰居發(fā)現(xiàn)協(xié)議?(NDP)用于代替地址解析協(xié)議。
在以太網(wǎng)協(xié)議中規(guī)定,同一局域網(wǎng)中的一臺(tái)主機(jī)要和另一臺(tái)主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。而在TCP/IP協(xié)議中,網(wǎng)絡(luò)層和傳輸層只關(guān)心目標(biāo)主機(jī)的IP地址。這就導(dǎo)致在以太網(wǎng)中使用IP協(xié)議時(shí),數(shù)據(jù)鏈路層的以太網(wǎng)協(xié)議接到上層IP協(xié)議提供的數(shù)據(jù)中,只包含目的主機(jī)的IP地址。于是需要一種方法,根據(jù)目的主機(jī)的IP地址,獲得其MAC地址。這就是ARP協(xié)議要做的事情。所謂地址解析(address resolution)就是主機(jī)在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過(guò)程。
另外,當(dāng)發(fā)送主機(jī)和目的主機(jī)不在同一個(gè)局域網(wǎng)中時(shí),即便知道目的主機(jī)的MAC地址,兩者也不能直接通信,必須經(jīng)過(guò)路由轉(zhuǎn)發(fā)才可以。所以此時(shí),發(fā)送主機(jī)通過(guò)ARP協(xié)議獲得的將不是目的主機(jī)的真實(shí)MAC地址,而是一臺(tái)可以通往局域網(wǎng)外的路由器的MAC地址。于是此后發(fā)送主機(jī)發(fā)往目的主機(jī)的所有幀,都將發(fā)往該路由器,通過(guò)它向外發(fā)送。這種情況稱為委托ARP或ARP代理(ARP Proxy)。
在點(diǎn)對(duì)點(diǎn)鏈路中不使用ARP,實(shí)際上在點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中也不使用MAC地址,因?yàn)樵诖祟惥W(wǎng)絡(luò)中分別已經(jīng)獲取了對(duì)端的IP地址。
數(shù)據(jù)包結(jié)構(gòu)
地址解析協(xié)議的消息格式很簡(jiǎn)單,僅包含單一的地址解析請(qǐng)求或響應(yīng)。ARP 消息的長(zhǎng)度取決于上下兩層地址的大小,上層地址由所使用的網(wǎng)絡(luò)協(xié)議類型(通常是?IPv4)決定,下層地址則由上層協(xié)議所使用的硬件或虛擬鏈路層的類型決定。消息的報(bào)頭中包含了這些類型以及對(duì)應(yīng)的地址長(zhǎng)度信息,此外還包含了表示請(qǐng)求(1)和應(yīng)答(2)的操作碼。數(shù)據(jù)包的有效負(fù)載為收發(fā)雙方的硬件地址、協(xié)議地址,總計(jì)四個(gè)地址。
為了把IP地址映射到48位以太網(wǎng)地址用于傳輸,需要一個(gè)體現(xiàn)地址轉(zhuǎn)換協(xié)議的包格式。
以太網(wǎng)傳輸層
- 目標(biāo)以太網(wǎng)地址:目標(biāo)MAC地址。FF:FF:FF:FF:FF:FF (二進(jìn)制全1)為廣播地址。
- 源以太網(wǎng)地址:發(fā)送方MAC地址。
- 幀類型:以太類型,ARP為0x0806。
以太網(wǎng)報(bào)文數(shù)據(jù)
- 硬件類型:如以太網(wǎng)(0x0001)、分組無(wú)線網(wǎng)。
- 協(xié)議類型:如IP網(wǎng)際協(xié)議(0x0800)、IPv6(0x86DD)。
- 硬件地址長(zhǎng)度:每種硬件地址的字節(jié)長(zhǎng)度,一般為6(以太網(wǎng))。
- 協(xié)議地址長(zhǎng)度:每種協(xié)議地址的字節(jié)長(zhǎng)度,一般為4(IPv4)。
- 操作碼:1為ARP請(qǐng)求,2為ARP回顯,3為RARP請(qǐng)求,4為RARP應(yīng)答。
- 源硬件地址:n個(gè)字節(jié),n由硬件地址長(zhǎng)度得到,一般為發(fā)送方MAC地址。
- 源協(xié)議地址:m個(gè)字節(jié),m由協(xié)議地址長(zhǎng)度得到,一般為發(fā)送方IP地址。
- 目標(biāo)硬件地址:n個(gè)字節(jié),n由硬件地址長(zhǎng)度得到,一般為目標(biāo)MAC地址。
- 目標(biāo)協(xié)議地址:m個(gè)字節(jié),m由協(xié)議地址長(zhǎng)度得到,一般為目標(biāo)IP地址。
報(bào)文格式
| 數(shù)據(jù)類型 | 目標(biāo)以太網(wǎng)地址 | 源以太網(wǎng)地址 | 幀類型 | 硬件類型 | 協(xié)議類型 | 硬件地址長(zhǎng)度 | 協(xié)議地址長(zhǎng)度 | 操作碼 | 源硬件地址 | 源協(xié)議地址 | 目標(biāo)硬件地址 | 目標(biāo)協(xié)議地址 |
| 組成 | 14字節(jié) 以太網(wǎng)首部 | 28字節(jié) ARP請(qǐng)求/應(yīng)答 | ||||||||||
原理
在Windows命令行查看ARP緩存表在每臺(tái)安裝有TCP/IP協(xié)議的電腦或路由器里都有一個(gè)ARP緩存表,表里的IP地址與MAC地址是一對(duì)應(yīng)的,如下表所示。
| A | 192.168.38.10 | 00-AA-00-62-D2-02 |
| B | 192.168.38.11 | 00-BB-00-62-C2-02 |
| C | 192.168.38.12 | 00-CC-00-62-C2-02 |
| D | 192.168.38.13 | 00-DD-00-62-C2-02 |
| E | 192.168.38.14 | 00-EE-00-62-C2-02 |
| ... | ... | ... |
以主機(jī)A(192.168.38.10)向主機(jī)B(192.168.38.11)發(fā)送數(shù)據(jù)為例。
1.當(dāng)發(fā)送數(shù)據(jù)時(shí),主機(jī)A會(huì)在自己的ARP緩存表中尋找是否有目標(biāo)IP地址。如果找到就知道目標(biāo)MAC地址為(00-BB-00-62-C2-02),直接把目標(biāo)MAC地址寫(xiě)入幀里面發(fā)送就可。
2.如果在ARP緩存表中沒(méi)有找到相對(duì)應(yīng)的IP地址,主機(jī)A就會(huì)在網(wǎng)絡(luò)上發(fā)送一個(gè)廣播(ARP request),目標(biāo)MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內(nèi)的所有主機(jī)發(fā)出這樣的詢問(wèn):“192.168.38.11的MAC地址是什么?”
3.網(wǎng)絡(luò)上其他主機(jī)并不響應(yīng)ARP詢問(wèn),只有主機(jī)B接收到這個(gè)幀時(shí),才向主機(jī)A做出這樣的回應(yīng)(ARP response):“192.168.38.11的MAC地址是00-BB-00-62-C2-02”,此回應(yīng)以單播方式。這樣,主機(jī)A就知道主機(jī)B的MAC地址,它就可以向主機(jī)B發(fā)送信息。同時(shí)它還更新自己的ARP高速緩存(ARP cache),下次再向主機(jī)B發(fā)送信息時(shí),直接從ARP緩存表里查找就可。
轉(zhuǎn)自**百科。
總結(jié)
以上是生活随笔為你收集整理的地址解析协议 (ARP) 是什么的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: T-sql检测文件夹是否存在
- 下一篇: Oops! the requested