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