ARP協議原理學習
一、ARP的作用。
首先在window 的命令行中輸入arp -a即可查看本機的arp緩存表。主機要發送數據包時,需要填充目的IP及其IP地址對應的MAC。當我們只有目的IP地址時,如何得到其對應的MAC地址?
此時ARP的作用就體現出來了。ARP就是通過IP來獲取其對應的MAC地址。接下來闡述具體的過程。
二、同網段下ARP工作原理。
圖 1
如圖1所示,h1與h2是處於同一網段並通過交換機s1連接。在h1上執行ping 10.0.0.3時,具體流程如下:
1、h1在arp緩存表中h2 IP地址對應的mac,若未查詢到進入第2步;
2、h1將目的mac改為全F(即廣播),目的IP為h2,發送除自己以外的s1端口中,詢問“誰是10.0.0.3”,進入第3步;
3、h3收到廣播消息後,發現目的IP與自己不匹配,將其丟棄;而h2收到廣播消息後,發現查找的是自己,就會發送一個單播幀給h1,
單播幀中包含h2的mac地址。同時h2也會在自身的arp表中記錄h1的mac;
4、h1收到h2的arp回應後,更新arp表,並發送數據給h2,實現h1與h2的ICMP可達;
三、不同網段下ARP工作原理
圖 2
如圖2所示,主機h1與h2連接在路由器r2。h1與h2處於不同網段。在h1上執行ping 11.0.0.4,具體流程如下:
1、h1查詢本機的arp緩存表,發現目的IP與自身不在同一網段,則通過需要通過默認網關來查詢h2的mac;
2、h1需要先arp到網關10.0.0.1的mac地址,網關單播返回給h1,h1將數據包的目的mac改為f0的mac地址,目的IP為h2的IP 11.0.0.4
3、r2收到數據包之後,r2解包後,發現目的IP不是自己,然後查看路由表,將數據包轉發到相應的接口f1;
4、此時不知道h2的mac地址,所以r2的f1接口中發送arp請求報文,源IP與源mac都是f1,目的IP為h2,目的mac全F,即廣播查找h2的mac;
5、h2返回自身的mac給r2,r2更新路由表,而後r2將h1的包修改為源IP與源mac為h1,目的IP與母的mac為h2,從端口f1發送出去。
6、h2接收到數據包後,更新arp表,同樣返回ICMP應答報文給h1,過程可跟1~5類似。
四、新接入網絡的主機是否會自動學習其他主機mac,建立arp緩存表?
答案:不會,按照以上過程,只有雙方有通信時,對方才會將其mac記錄在arp緩存表中。
ARP協議原理學習