1.ARP
提起 ARP 表必然先想起 ARP(address resolution protocol)協(xié)議,地址解析協(xié)議。
在實(shí)際應(yīng)用中,我們經(jīng)常遇到這樣的問題:已知一個(gè)機(jī)器的 IP 地址,但在實(shí)際網(wǎng)絡(luò)的鏈路上傳送數(shù)據(jù)幀時(shí),最終還是必須使用該網(wǎng)絡(luò)的硬件地址,需要知道其 MAC 地址。如果兩個(gè)都需要去記憶或輸入,大大增加了其繁瑣程度。地址解析協(xié)議 ARP 就是用來解決這樣的問題的。
由于 IP 協(xié)議使用了 ARP 協(xié)議,因此通常把 ARP 協(xié)議劃歸到網(wǎng)絡(luò)層。但 ARP 協(xié)議的用途是為了從網(wǎng)絡(luò)層使用 IP 地址,解析出在鏈路層使用的硬件地址。
每一臺主機(jī)都設(shè)有一個(gè) ARP 高速緩存,里面有本局域網(wǎng)上的各種主機(jī)和路由器的 IP 地址到硬件地址的映射表,表里面的內(nèi)容由 ARP 協(xié)議進(jìn)行動(dòng)態(tài)更新。表內(nèi)的數(shù)據(jù)會老化,達(dá)到老化時(shí)間會自動(dòng)刪除,在此通信時(shí),由 ARP 協(xié)議重新添加。
通信過程
有 PC0,PC1 兩臺主機(jī) , 使用思科的仿真模擬器能直觀的看出通信過程
PC0 向 PC1 發(fā)送一個(gè) ping 報(bào)文,向 PC0 輸入 1.1.1.3 然后開始發(fā)送,PC0 先查詢本地 APR 表查詢 1.1.1.3 對應(yīng) MAC 地址,但并沒查到,這種情況 PC0 在本局域網(wǎng)上廣播發(fā)送一個(gè) ARP 請求分組。ARP 請求分組的主要內(nèi)容是:
我的 IP 地址是 1.1.1.2,硬件地址是 xx-xx-xx-xx-xx-xx。我想知道 IP 地址為 1.1.1.3 的主機(jī)的硬件地址。
在本局域網(wǎng)上的所有主機(jī)上運(yùn)行的 ARP 進(jìn)程都會收到此 ARP 請求分組。PC1 的 IP 地址與 ARP 請求分組中要查詢的 IP 地址一致,就收下 ARP 請求分組,并向 PC0 發(fā)送 ARP 響應(yīng)分組,同時(shí)在這個(gè) ARP 響應(yīng)分組中寫入自己的硬件地址。其余主機(jī) ip 地址都與 ARP 請求要查詢的 ip 地址不一致,不做任何回應(yīng)。
響應(yīng)內(nèi)容為 :
我的 ip 地址是 1.1.1.3,我的硬件地址是 xx-xx-xx-xx-xx-xx
雖然 ARP 請求分組是廣播發(fā)送的,但 ARP 響應(yīng)分組是普通的單播,即從一個(gè)原地址發(fā)送到一個(gè)目的地址。
接下來 PC0 就可以使用剛獲取的 PC1MAC 地址,進(jìn)行 icmp 數(shù)據(jù)發(fā)送。
2.MAC 表
說到 MAC 表,就不得不說一下交換機(jī)的工作原理,因?yàn)榻粨Q機(jī)是根據(jù) MAC 地址轉(zhuǎn)發(fā)數(shù)據(jù)幀的。
當(dāng) PC0 發(fā)送 ARP 數(shù)據(jù)包,交換機(jī)會把數(shù)據(jù)包發(fā)往 PC0 之外的所有主機(jī),并在相應(yīng)包中記錄下相應(yīng) Mac 地址與接口數(shù)據(jù)。
當(dāng) PC0 向 PC1 發(fā)送一幀數(shù)據(jù),從 1 口進(jìn)到交換機(jī)。交換機(jī)收到幀后,根據(jù)幀中的目的 MAC 先查本地 MAC 表,沒有查到應(yīng)從哪個(gè)接口轉(zhuǎn)發(fā)這個(gè)幀。
接著,交換機(jī)把這個(gè)幀的源 MAC 和接口 1 寫入交換表中,并向除 1 以外的所有接口廣播這個(gè)幀,PC2 將此廣播幀丟棄,因?yàn)槟康牡刂凡粚ΑC1 收下這個(gè)目的地址是自己 MAC 的數(shù)據(jù),并回應(yīng)數(shù)據(jù)包,此時(shí)交換機(jī)會把 PC1 的 MAC 和對應(yīng)接口 2 寫入表中。然后當(dāng) PC0 與 PC1 再次發(fā)送數(shù)據(jù)交換機(jī)可以根據(jù)目的 MAC 查表找出對應(yīng)的接口,將數(shù)據(jù)包直接送達(dá)對應(yīng)的主機(jī)。
考慮到有可能在交換機(jī)的接口更換主機(jī),或者主機(jī)要跟換主機(jī)更換網(wǎng)卡,這時(shí)交換機(jī)中 MAC 表也是動(dòng)態(tài)的、有自己的老化時(shí)間,會自動(dòng)刪除相關(guān)數(shù)據(jù)。
當(dāng)交換機(jī)中一臺主機(jī)突然從2 口切換到3 口,交換機(jī)收到的此主機(jī)的數(shù)據(jù)仍然會發(fā)送到原端口2 口就會出現(xiàn)超時(shí)情況,直到 Mac 中數(shù)據(jù)更新,或者手動(dòng)把交換機(jī)斷電重啟重更新 Mac 表數(shù)據(jù)。
3.路由表
說起路由表,就不得不提起路由器。(此處的路由器與家用路由器略有不同,家用路由器集成了路由器和交換機(jī)的功能為了更方便用戶使用)路由器是一種具有多個(gè)輸入端口和多個(gè)輸出端口的專用設(shè)備也可稱為計(jì)算機(jī)。其任務(wù)是轉(zhuǎn)發(fā)分組。路由器結(jié)構(gòu)由兩部分組成:路由選擇部分和分組轉(zhuǎn)發(fā)部分。
路由器工作在網(wǎng)絡(luò)層,主要功能就是實(shí)現(xiàn)跨網(wǎng)段傳輸數(shù)據(jù)。
如上圖:一網(wǎng)段的主機(jī)要與其他網(wǎng)段的主機(jī)通信,則數(shù)據(jù)會先發(fā)送給指定的網(wǎng)關(guān),也就是路由器,由路由器選擇網(wǎng)段繼續(xù)通信,所以發(fā)送的數(shù)據(jù)包起始中網(wǎng)絡(luò)層的 ip 地址不變,源 ip 地址就是當(dāng)前主機(jī)的 ip 地址,目的 ip 地址就是不同網(wǎng)段的主機(jī)的 ip 地址,但是鏈路層由于數(shù)據(jù)要先發(fā)給路由器,那么目的 mac 就是路由器的 mac 地址,然后路由器選擇其他網(wǎng)段,則源 mac 變成路由器另一個(gè)網(wǎng)口的 mac 地址,目的 mac 就是目標(biāo)主機(jī)的 mac 地址,所以整個(gè)過程網(wǎng)絡(luò)層的一直不變,但是鏈路層一直再變。
如上圖:由于現(xiàn)在是兩臺路由器和兩個(gè)網(wǎng)段的主機(jī),所以需要構(gòu)成三個(gè)局域網(wǎng),當(dāng)源主機(jī)跨網(wǎng)段與目標(biāo)主機(jī)通信時(shí),由于網(wǎng)段不同,數(shù)據(jù)會先發(fā)送給路由器,然后路由器再選擇對應(yīng)的目的網(wǎng)段,但是此時(shí)路由器另一端所在的網(wǎng)段與之目標(biāo)主機(jī)的網(wǎng)段不同,所以無法繼續(xù)向下發(fā)送,此時(shí)需要設(shè)置下一跳,下一跳的目的就是指定當(dāng)前自己網(wǎng)段的主機(jī)要訪問其他網(wǎng)段的主機(jī)時(shí)從這個(gè)路由器應(yīng)該跳到哪個(gè)路由器,只要設(shè)置了,就可以直接發(fā)送數(shù)據(jù)到指定的路由器,整個(gè)過程就完成
1,當(dāng)網(wǎng)絡(luò)中有多個(gè)路由器是,兩個(gè)主機(jī)需要通信路由器需要記錄下一跳信息,下一跳的目的就是指定當(dāng)前自己網(wǎng)段的主機(jī)要訪問其他網(wǎng)段的主機(jī)時(shí)從這個(gè)路由器應(yīng)該跳到哪個(gè)路由器
2, 路由表記錄著下一跳。
路由表中記錄著不同網(wǎng)段的信息。路由表中記錄的信息有的需要手動(dòng)添加(稱為靜態(tài)路由表),通過路由協(xié)議自動(dòng)獲取的(稱為動(dòng)態(tài)路由表),我們的主機(jī)直接連到路由器上(中間無三層網(wǎng)絡(luò)設(shè)備)這種情況是直連路由,屬于靜態(tài)路由。
路由選擇處理機(jī)的任務(wù)是根據(jù)所選定的路由選擇協(xié)議(路由協(xié)議后續(xù)在做總結(jié))構(gòu)造出路由表,同時(shí)經(jīng)常或定期和相鄰路由器交換路由信息而不斷地跟新和維護(hù)路由表。
審核編輯:郭婷
-
仿真
+關(guān)注
關(guān)注
50文章
4124瀏覽量
134005 -
模擬器
+關(guān)注
關(guān)注
2文章
881瀏覽量
43423
原文標(biāo)題:網(wǎng)絡(luò)中的三張表—— ARP 表, MAC 表,路由表
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
一文解析路由器的奧秘
![一文解析<b class='flag-5'>路由</b>器的奧秘](https://file1.elecfans.com/web3/M00/05/66/wKgZPGd_foiAaSvKAAAPoA3qUgM973.png)
交換機(jī)與路由器的區(qū)別 交換機(jī)的基本工作原理
![](https://file1.elecfans.com/web3/M00/01/9E/wKgZPGdWtnmAG08OAAN1Ygct6GU237.jpg)
在ADS4142的數(shù)據(jù)表第18頁, 表4中,tSU和tH是怎么定義的?
![](https://file1.elecfans.com/web3/M00/00/C1/wKgZPGdNgAWABbNoAANL_CDHJPI836.jpg)
路由器內(nèi)存使用率過高怎么辦
![](https://file1.elecfans.com/web2/M00/01/8A/wKgZoma14SiAbXWtAAPlCfHne_k659.jpg)
實(shí)用小技巧|LCR表測電容頻率怎么選?#LCR表 #LCR數(shù)字電橋 #電子電工 #電路知識 #電容
靜態(tài) ARP 表項(xiàng)的潛在問題
![靜態(tài) <b class='flag-5'>ARP</b> 表項(xiàng)的潛在問題](https://file1.elecfans.com/web2/M00/FF/FC/wKgaomanCrKAS0oDAAVkungNO-Q531.png)
IR615如何實(shí)現(xiàn)VPN鏈路備份?
esp8266使用etharp_request() 的ARP請求異常怎么解決?
請問ESP32-S2是否可以與WIFI-MESH進(jìn)行FTM測距?
如何手動(dòng)往esp32 arp列表中添加自定義的arp綁定信息?
靜態(tài)路由的實(shí)驗(yàn)原理
![靜態(tài)<b class='flag-5'>路由</b>的實(shí)驗(yàn)原理](https://file1.elecfans.com/web2/M00/C4/E5/wKgaomXv72iAfPsfAAAa6iYZX94834.png)
![](https://file1.elecfans.com/web2/M00/C0/03/wKgZomXQx1mAZoi2AAN55SXQFMc238.jpg)
評論