網(wǎng)絡(luò)層的ARP協(xié)議
通過ARP協(xié)議知道對方的mac地址,已經(jīng)知道對方ip地址的情況下,不知道m(xù)ac地址。定義了一個ARP協(xié)議來解決這個問題。
因為在數(shù)據(jù)鏈路層的時候需要知道一個mac地址,然后才能進(jìn)行數(shù)據(jù)鏈路層的封裝。所以需要通過網(wǎng)絡(luò)層的ARP協(xié)議來獲取mac地址。
打開控制面板-網(wǎng)絡(luò)連接-連接詳細(xì)信息
物理地址:是這臺電腦的mac地址。
IPv4地址:是這臺電腦的ip地址。
通過ip對應(yīng)成域名。mac地址不方便記憶,所以最先記住的是ip地址或域名。
要進(jìn)行數(shù)據(jù)鏈路層的封裝又必須要知道它的mac地址。所以用ARP協(xié)議,通過ip地址獲取對方的mac地址。
1.ARP協(xié)議的目的
ARP-地址解析協(xié)議,實(shí)現(xiàn)通過對方的ip地址(域名)尋找對方的mac地址。
2.ARP協(xié)議通訊過程
舉個例子:
圖片來自網(wǎng)絡(luò)
目的:老師想給班級里一個學(xué)生a發(fā)消息催作業(yè),用微信。
「老師」 :
1.先去微信通訊錄查找有沒有同學(xué)a的微信,如果有,直接給同學(xué)a發(fā)消息,讓她交作業(yè)。
2.沒有同學(xué)a的微信。去班級群發(fā)消息:“同學(xué)a的微信,給我一下,我是某某老師?!?/p>
同學(xué)a看到群里消息,她把微信單獨(dú)發(fā)給老師。老師收到同學(xué)a回復(fù)的微信消息。
3.老師加好友,可以在微信通訊錄找到同學(xué)a,可以直接發(fā)消息了。
給同學(xué)a單獨(dú)發(fā)了一條消息:"同學(xué)a,我們要交作業(yè)了。"
同學(xué)a單獨(dú)回復(fù):"我馬上交作業(yè)。""
「同學(xué)a」 :
1.添加老師的微信到微信通訊錄。
2.私聊發(fā)消息。
這個過程就是ARP協(xié)議實(shí)現(xiàn)的過程。
同上:
圖片來自網(wǎng)絡(luò)
主機(jī)a給主機(jī)b發(fā)消息進(jìn)行通信。
1.主機(jī)a找主機(jī)b的mac地址。
知道主機(jī)b的ip地址:192.168.1.2
主機(jī)a的ip地址:192.168.1.1
現(xiàn)在主機(jī)a要發(fā)消息,找主機(jī)b的mac地址。ARP表和微信通訊錄很相似(ip地址和mac地址的對應(yīng)表)。
如果找到了mac地址,去數(shù)據(jù)鏈路層封裝mac地址,進(jìn)行數(shù)據(jù)包的發(fā)送。如果在arp表里沒有找到ip地址對應(yīng)的mac地址,主機(jī)a發(fā)消息給主機(jī)b所在的主機(jī)群組。
主機(jī)a發(fā)廣播消息:“誰有主機(jī)b(192.168.1.2)的mac地址,我是主機(jī)a(192.169.1.1)?!?/p>
主機(jī)b回復(fù)主機(jī)a一條單播消息:“我就是192.168.1.2,我的mac地址是xxxxx?!?/p>
2.主機(jī)b收到主機(jī)a的廣播消息后,在回復(fù)消息之前。主機(jī)b保存主機(jī)a的mac地址和ip地址到自己的ARP表里面。
再找主機(jī)a通信的時候,就直接在ARP表里面找到主機(jī)a的ip地址和mac地址的對應(yīng)關(guān)系,直接發(fā)送單播消息。
3.主機(jī)a收到主機(jī)b的單播消息,同樣把主機(jī)b的ip地址和mac地址保存到ARP表里。
3.總結(jié)
1.主機(jī)a首先查看自己的ARP表,如果找到了主機(jī)b的mac地址,則直接對ip數(shù)據(jù)包進(jìn)行幀封裝,發(fā)送給主機(jī)b。
2.如果主機(jī)a在ARP表中找不到主機(jī)b的mac地址,則將緩存該數(shù)據(jù)報文,然后以 「廣播方式」 發(fā)送一個arp請求報文。
ARP請求報文中帶上 「源ip地址和源mac地址(主機(jī)a)」 ,目標(biāo)ip地址和目標(biāo)mac地址為主機(jī)b的ip地址和 「全0的mac地址」 。
廣播,該網(wǎng)段上的所有主機(jī)都可以接收到該請求。但只有被請求的主機(jī)(即主機(jī)b)會對該請求進(jìn)行處理。
3.主機(jī)b比較自己的ip地址和ARP請求報文中的目標(biāo)ip地址,當(dāng)兩者相同時進(jìn)行如下處理:將arp請求報文中的發(fā)送端(即主機(jī)a)的ip地址和mac地址存入自己的ARP表中。
之后以 「單播方式」 發(fā)送arp響應(yīng)報文給主機(jī)a,其中包含了自己的 「mac地址」 。
4.主機(jī)a收到ARP響應(yīng)報文后,將主機(jī)b的mac地址加入到自己的ARP表中以用于后續(xù)報文的轉(zhuǎn)發(fā),同時將ip數(shù)據(jù)包進(jìn)行封裝后發(fā)送出去。
-
ARP協(xié)議
+關(guān)注
關(guān)注
0文章
10瀏覽量
6884
發(fā)布評論請先 登錄
相關(guān)推薦
評論