ARP-Address Resolution Protocol-地址解析协议
主要內(nèi)容摘自:圖解TCP/IP
ARP是一種解決地址問(wèn)題的協(xié)議。以目標(biāo)IP地址為線索,用來(lái)定位下一個(gè)應(yīng)該接受數(shù)據(jù)分包的網(wǎng)絡(luò)設(shè)備的mac地址。
如果目標(biāo)主機(jī)不在同一個(gè)鏈路上時(shí),可以通過(guò)ARP查找下一跳路由器的MAC地址。
不過(guò)ARP只適用于IPv4,不能用于IPv6。IPv6可以用ICMPv6替代ARP發(fā)送鄰居探索消息。
ARP的工作機(jī)制
ARP是如何知道MAC地址的呢?簡(jiǎn)單地說(shuō),ARP是借助ARP請(qǐng)求與ARP響應(yīng)兩種類(lèi)型的包確定MAC地址的。
從一個(gè)IP地址發(fā)送ARP請(qǐng)求包以了解其MAC地址(同時(shí)ARP請(qǐng)求包也將自己的MAC地址告訴了對(duì)方),目標(biāo)地址將自己的MAC地址填入其中的ARP響應(yīng)包返回到IP地址。由此,可以通過(guò)ARP從IP地址獲得MAC地址,實(shí)現(xiàn)鏈路內(nèi)的IP通信。
不是每次發(fā)送一個(gè)IP數(shù)據(jù)報(bào)都要進(jìn)行一次ARP請(qǐng)求,接收端主機(jī)緩存MAC地址,提高效率,避免不必要的網(wǎng)絡(luò)流量。
記錄IP地址與MAC地址對(duì)應(yīng)關(guān)系的數(shù)據(jù)庫(kù)叫做ARP表。在UNIX或windows中可以通過(guò)“arp -a”命令獲取該表信息。每執(zhí)行一次ARP,其對(duì)應(yīng)的緩存內(nèi)容都會(huì)被清除。此外,MAC地址的緩存是有一定期限的。超過(guò)這個(gè)期限,緩存的內(nèi)容將被清除。
ARP包格式
RARP
RARP (Reverse Address Resolution Protocol)是將ARP反過(guò)來(lái),從MAC地址定位IP地址的一種協(xié)議。
一般用于向RARP服務(wù)器獲取IP地址。
代理ARP
通常ARP包會(huì)被路由器隔離,但是采用代理ARP(proxy ARP)的路由器可以將ARP請(qǐng)求轉(zhuǎn)發(fā)給鄰近的網(wǎng)段。由此,兩個(gè)以上的網(wǎng)段的節(jié)點(diǎn)之間可以像在同一個(gè)網(wǎng)段中一樣進(jìn)行通信。
在目前的TCP/IP網(wǎng)絡(luò)中,一般情況下用路由器連接多個(gè)網(wǎng)絡(luò)時(shí),會(huì)在每個(gè)網(wǎng)段上定義各自的子網(wǎng),從而進(jìn)行路由控制。然而,對(duì)于那些不支持設(shè)定子網(wǎng)掩碼的老設(shè)備來(lái)說(shuō),不適用代理ARP,有時(shí)就無(wú)法更好地適用網(wǎng)絡(luò)。
ARP命令
一般執(zhí)行arp -a即可顯示所有網(wǎng)口mac。windows mac如下,-s添加,-d刪除,-a顯示。
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]
ARP包解析
通過(guò)wireshark抓取arp包。
arp請(qǐng)求包
arp響應(yīng)包
?
總結(jié)
以上是生活随笔為你收集整理的ARP-Address Resolution Protocol-地址解析协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: Codeigniter中创建LeanCl
 - 下一篇: #51CTO学院四周年# 还好没放弃,终