假如存在網絡A和網絡B。
網絡A的IP地址范圍為“192.168.1.1~192. 168.1.254”,子網掩碼為255.255.255.0;
網絡B的IP地址范圍為“192.168.2.1~192.168.2.254”,子網掩碼為255.255.255.0。
有路由器存在時,如何讓網絡A和B進行通信?
核心原理
網絡A(192.168.1.0/24)和網絡B(192.168.2.0/24)是兩個獨立的廣播域。在沒有路由器的情況下,它們之間的設備無法直接通信,因為根據子網掩碼,網關的作用就是它們會認為對方不在同一個本地網絡中。
路由器的作用就是“連接”這兩個網絡,并在它們之間轉發數據包。路由器至少有兩個網絡接口,分別連接到兩個網絡,并且每個接口都有一個屬于該網絡的IP地址。它就像一座橋梁,讓兩個“島嶼”上的居民可以往來。
通信步驟詳解
假設我們有一臺路由器,它的兩個接口配置如下:
現在,網絡A中的一臺電腦(PC-A, IP: 192.168.1.1)想要訪問網絡B中的一臺服務器(PC-B, IP: 192.168.2.1)。
數據包的旅程如下:
1.判斷目標位置PC-A (192.168.1.1)
PC-A (192.168.1.1) 想 ping PC-B (192.168.2.1)。它首先會用自己的IP地址和子網掩碼進行計算,發現目標地址 192.168.2.1 與自己不在同一個網段。
2.尋找網關
由于目標不在本地,PC-A 知道必須把數據包發給一個“出口”,這個出口就是默認網關。PC-A的默認網關應設置為路由器的接口地址,即 192.168.1.254。
3.發送數據包到路由器
PC-A 將數據包發送給路由器。這個數據包的:
源IP地址: 192.168.1.1 (PC-A)
目標IP地址: 192.168.2.1 (PC-B)
目標MAC地址: 路由器接口G0/0的MAC地址 (在數據鏈路層,PC-A通過ARP協議獲取到網關的MAC地址)
4.路由器路由決策
路由器從G0/0接口收到數據包。它查看數據包的目標IP地址(192.168.2.1),并查詢自己的路由表。路由表會告訴它:“目標網絡 192.168.2.0/24 直接連接在我的 G0/1 接口上”。
5.轉發數據包到目標網絡
路由器將數據包從G0/1接口轉發出去。在轉發前,它會重寫數據幀的MAC地址(源MAC改為G0/1的MAC,目標MAC改為PC-B的MAC,同樣通過ARP獲取),但數據包的IP地址保持不變。
6.到達目的地
最終,數據包順利到達 PC-B (192.168.2.1)。
7.回復過程
PC-B 回復 PC-A 的過程完全相反,原理一樣。PC-B 發現目標 192.168.1.1 不在本地網絡,于是將回復數據包發送給自己的默認網關 192.168.2.254(路由器),再由路由器轉發給 PC-A。
PC-A如何通過ARP協議獲取到網關的MAC地址?
1、為什么需要MAC地址?
可以把通信想象成寄信:
關鍵點: 以太網規定,在同一個局域網內,所有數據傳輸最終都必須封裝成“幀”,而這個幀的頭部必須包含目標MAC地址。沒有目標MAC地址,數據幀就無法被發送出去。
2、ARP獲取網關MAC地址的詳細步驟
假設PC-A的ARP緩存是空的(即它之前沒有和網關通信過)。
第1步:構造ARP:
請求包當PC-A意識到需要把數據包發給網關(192.168.1.254)時,它首先會檢查自己的ARP緩存表。如果找不到對應條目,它就會構造一個 ARP請求廣播包。
?
這個ARP請求包包含了以下關鍵信息:
發送方MAC地址: PC-A自己的MAC地址 (例如: AA:AA:AA:AA:AA:AA)
發送方IP地址: PC-A自己的IP地址 (192.168.1.1)
目標IP地址: 它想要查詢的網關IP地址 (192.168.1.254
目標MAC地址: 全部設為 FF:FF:FF:FF:FF:FF (廣播地址)
這個包在問一個所有局域網設備都能聽到的問題:
“大聲問一下!IP地址是 192.168.1.254 的設備,你的MAC地址是什么?請告訴 192.168.1.1 (AA:AA:AA:AA:AA:AA)!”
第2步:廣播ARP請求
PC-A將這個ARP請求包封裝成以太網廣播幀,目標MAC是 FF:FF:FF:FF:FF:FF,然后通過網卡發送出去。
第3步:局域網內的設備處理請求
這個廣播幀會被網絡A(192.168.1.0/24)內的所有設備(包括路由器接口G0/0、其他電腦、打印機等)接收到。
每臺設備都拆開數據包,查看ARP請求內容。
它們會比較ARP請求包中的 “目標IP地址” 是否與自己的IP地址匹配。
對于網絡中的其他電腦(如192.168.1.50):它們發現“目標IP地址 (192.168.1.254)”不是自己的IP,于是安靜地丟棄這個ARP請求包,不做任何響應。
對于路由器接口G0/0 (192.168.1.254):它發現“目標IP地址 (192.168.1.254)”正好是自己的IP地址。
第4步:網關發送ARP回復
路由器接口G0/0確認自己是ARP請求的目標后,會構造一個 ARP回復包。這是一個單播包,直接回復給PC-A。
這個ARP回復包包含了以下關鍵信息:
?發送方MAC地址: 路由器G0/0接口的MAC地址 (例如: BB:BB:BB:BB:BB:BB)
發送方IP地址: 路由器G0/0接口的IP地址 (192.168.1.254)
目標MAC地址: PC-A的MAC地址 (AA:AA:AA:AA:AA:AA)
目標IP地址: PC-A的IP地址 (192.168.1.1)
這個包在回答PC-A的問題:
“你好 192.168.1.1!我是 192.168.1.254,我的MAC地址是 BB:BB:BB:BB:BB:BB。”
第5步:PC-A學習并緩存
第6步:正式通信
現在,PC-A終于知道了網關的MAC地址。它可以將原本要發給 192.168.2.1 的IP數據包,封裝成一個以太網幀:
?目標MAC地址: BB:BB:BB:BB:BB:BB (路由器的MAC)
源MAC地址: AA:AA:AA:AA:AA:AA (自己的MAC)
數據: 內含源IP為 192.168.1.1,目標IP為 192.168.2.1 的IP包。
然后,PC-A將這個幀發送出去。交換機根據目標MAC地址 BB:BB:BB:BB:BB:BB,準確地將幀轉發給路由器的G0/0接口。
參考文章:原文鏈接?
該文章在 2025/10/18 9:08:46 編輯過