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