1.ARP
提起 ARP 表必然先想起 ARP(address resolution protocol)協(xié)議,地址解析協(xié)議。
在實際應(yīng)用中,我們經(jīng)常遇到這樣的問題:已知一個機器的 IP 地址,但在實際網(wǎng)絡(luò)的鏈路上傳送數(shù)據(jù)幀時,最終還是必須使用該網(wǎng)絡(luò)的硬件地址,需要知道其 MAC 地址。如果兩個都需要去記憶或輸入,大大增加了其繁瑣程度。地址解析協(xié)議 ARP 就是用來解決這樣的問題的。
由于 IP 協(xié)議使用了 ARP 協(xié)議,因此通常把 ARP 協(xié)議劃歸到網(wǎng)絡(luò)層。但 ARP 協(xié)議的用途是為了從網(wǎng)絡(luò)層使用 IP 地址,解析出在鏈路層使用的硬件地址。
每一臺主機都設(shè)有一個 ARP 高速緩存,里面有本局域網(wǎng)上的各種主機和路由器的 IP 地址到硬件地址的映射表,表里面的內(nèi)容由 ARP 協(xié)議進行動態(tài)更新。表內(nèi)的數(shù)據(jù)會老化,達到老化時間會自動刪除,在此通信時,由 ARP 協(xié)議重新添加。
通信過程
有 PC0,PC1 兩臺主機 , 使用思科的仿真模擬器能直觀的看出通信過程

PC0 向 PC1 發(fā)送一個 ping 報文,向 PC0 輸入 1.1.1.3 然后開始發(fā)送,PC0 先查詢本地 APR 表查詢 1.1.1.3 對應(yīng) MAC 地址,但并沒查到,這種情況 PC0 在本局域網(wǎng)上廣播發(fā)送一個 ARP 請求分組。ARP 請求分組的主要內(nèi)容是:
我的 IP 地址是 1.1.1.2,硬件地址是 xx-xx-xx-xx-xx-xx。我想知道 IP 地址為 1.1.1.3 的主機的硬件地址。
在本局域網(wǎng)上的所有主機上運行的 ARP 進程都會收到此 ARP 請求分組。PC1 的 IP 地址與 ARP 請求分組中要查詢的 IP 地址一致,就收下 ARP 請求分組,并向 PC0 發(fā)送 ARP 響應(yīng)分組,同時在這個 ARP 響應(yīng)分組中寫入自己的硬件地址。其余主機 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)分組是普通的單播,即從一個原地址發(fā)送到一個目的地址。
接下來 PC0 就可以使用剛獲取的 PC1MAC 地址,進行 icmp 數(shù)據(jù)發(fā)送。

2.MAC 表
說到 MAC 表,就不得不說一下交換機的工作原理,因為交換機是根據(jù) MAC 地址轉(zhuǎn)發(fā)數(shù)據(jù)幀的。

當 PC0 發(fā)送 ARP 數(shù)據(jù)包,交換機會把數(shù)據(jù)包發(fā)往 PC0 之外的所有主機,并在相應(yīng)包中記錄下相應(yīng) Mac 地址與接口數(shù)據(jù)。
當 PC0 向 PC1 發(fā)送一幀數(shù)據(jù),從 1 口進到交換機。交換機收到幀后,根據(jù)幀中的目的 MAC 先查本地 MAC 表,沒有查到應(yīng)從哪個接口轉(zhuǎn)發(fā)這個幀。
接著,交換機把這個幀的源 MAC 和接口 1 寫入交換表中,并向除 1 以外的所有接口廣播這個幀,PC2 將此廣播幀丟棄,因為目的地址不對。PC1 收下這個目的地址是自己 MAC 的數(shù)據(jù),并回應(yīng)數(shù)據(jù)包,此時交換機會把 PC1 的 MAC 和對應(yīng)接口 2 寫入表中。然后當 PC0 與 PC1 再次發(fā)送數(shù)據(jù)交換機可以根據(jù)目的 MAC 查表找出對應(yīng)的接口,將數(shù)據(jù)包直接送達對應(yīng)的主機。
考慮到有可能在交換機的接口更換主機,或者主機要跟換主機更換網(wǎng)卡,這時交換機中 MAC 表也是動態(tài)的、有自己的老化時間,會自動刪除相關(guān)數(shù)據(jù)。
當交換機中一臺主機突然從2 口切換到3 口,交換機收到的此主機的數(shù)據(jù)仍然會發(fā)送到原端口2 口就會出現(xiàn)超時情況,直到 Mac 中數(shù)據(jù)更新,或者手動把交換機斷電重啟重更新 Mac 表數(shù)據(jù)。

3.路由表
說起路由表,就不得不提起路由器。(此處的路由器與家用路由器略有不同,家用路由器集成了路由器和交換機的功能為了更方便用戶使用)路由器是一種具有多個輸入端口和多個輸出端口的專用設(shè)備也可稱為計算機。其任務(wù)是轉(zhuǎn)發(fā)分組。路由器結(jié)構(gòu)由兩部分組成:路由選擇部分和分組轉(zhuǎn)發(fā)部分。
路由器工作在網(wǎng)絡(luò)層,主要功能就是實現(xiàn)跨網(wǎng)段傳輸數(shù)據(jù)。

如上圖:一網(wǎng)段的主機要與其他網(wǎng)段的主機通信,則數(shù)據(jù)會先發(fā)送給指定的網(wǎng)關(guān),也就是路由器,由路由器選擇網(wǎng)段繼續(xù)通信,所以發(fā)送的數(shù)據(jù)包起始中網(wǎng)絡(luò)層的 ip 地址不變,源 ip 地址就是當前主機的 ip 地址,目的 ip 地址就是不同網(wǎng)段的主機的 ip 地址,但是鏈路層由于數(shù)據(jù)要先發(fā)給路由器,那么目的 mac 就是路由器的 mac 地址,然后路由器選擇其他網(wǎng)段,則源 mac 變成路由器另一個網(wǎng)口的 mac 地址,目的 mac 就是目標主機的 mac 地址,所以整個過程網(wǎng)絡(luò)層的一直不變,但是鏈路層一直再變。

如上圖:由于現(xiàn)在是兩臺路由器和兩個網(wǎng)段的主機,所以需要構(gòu)成三個局域網(wǎng),當源主機跨網(wǎng)段與目標主機通信時,由于網(wǎng)段不同,數(shù)據(jù)會先發(fā)送給路由器,然后路由器再選擇對應(yīng)的目的網(wǎng)段,但是此時路由器另一端所在的網(wǎng)段與之目標主機的網(wǎng)段不同,所以無法繼續(xù)向下發(fā)送,此時需要設(shè)置下一跳,下一跳的目的就是指定當前自己網(wǎng)段的主機要訪問其他網(wǎng)段的主機時從這個路由器應(yīng)該跳到哪個路由器,只要設(shè)置了,就可以直接發(fā)送數(shù)據(jù)到指定的路由器,整個過程就完成
1,當網(wǎng)絡(luò)中有多個路由器是,兩個主機需要通信路由器需要記錄下一跳信息,下一跳的目的就是指定當前自己網(wǎng)段的主機要訪問其他網(wǎng)段的主機時從這個路由器應(yīng)該跳到哪個路由器
2, 路由表記錄著下一跳。
路由表中記錄著不同網(wǎng)段的信息。路由表中記錄的信息有的需要手動添加(稱為靜態(tài)路由表),通過路由協(xié)議自動獲取的(稱為動態(tài)路由表),我們的主機直接連到路由器上(中間無三層網(wǎng)絡(luò)設(shè)備)這種情況是直連路由,屬于靜態(tài)路由。
路由選擇處理機的任務(wù)是根據(jù)所選定的路由選擇協(xié)議(路由協(xié)議后續(xù)在做總結(jié))構(gòu)造出路由表,同時經(jīng)常或定期和相鄰路由器交換路由信息而不斷地跟新和維護路由表。

審核編輯:劉清
-
局域網(wǎng)
+關(guān)注
關(guān)注
6文章
790瀏覽量
48659 -
路由器
+關(guān)注
關(guān)注
22文章
3907瀏覽量
119571 -
Mac
+關(guān)注
關(guān)注
0文章
1127瀏覽量
55313
原文標題:網(wǎng)絡(luò)中的三張表——ARP表,MAC表,路由表
文章出處:【微信號:通信弱電交流學習,微信公眾號:通信弱電交流學習】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
這句話是不是不一定是合并三張表同樣ID的數(shù)據(jù)
科普一下ZYNQ是什么
中國廣電讓中國市場擁有了三張5G網(wǎng)
三張圖解析FPGA/ACAP在AI推理中的優(yōu)勢
三張接線圖搞定步進電機接線問題!
三張圖搞懂三極管的三種狀態(tài)資料下載
科普一下常見的網(wǎng)線AB接法-科蘭
小編科普一下三腳二極管的相關(guān)知識
科普一下MTU是什么,如何設(shè)置MTU
小編科普一下網(wǎng)絡(luò)中的三張表分別指的是什么
評論