網(wǎng)絡(luò)層是計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)中的核心層次,負(fù)責(zé)將數(shù)據(jù)包從源主機(jī)跨越多跳網(wǎng)絡(luò)設(shè)備(如路由器)傳送到目的主機(jī)。它在數(shù)據(jù)鏈路層提供的相鄰節(jié)點(diǎn)間幀傳輸服務(wù)之上,實(shí)現(xiàn)了端到端的邏輯通信。本文將聚焦網(wǎng)絡(luò)層的核心概念、關(guān)鍵服務(wù)和基礎(chǔ)協(xié)議。
一、網(wǎng)絡(luò)層概述與核心服務(wù)
網(wǎng)絡(luò)層的主要目標(biāo)是實(shí)現(xiàn)主機(jī)到主機(jī)(端到端)的通信。它與數(shù)據(jù)鏈路層的根本區(qū)別在于:數(shù)據(jù)鏈路層負(fù)責(zé)同一鏈路(如一個(gè)局域網(wǎng))上相鄰設(shè)備間的數(shù)據(jù)傳輸,而網(wǎng)絡(luò)層負(fù)責(zé)跨越不同鏈路、可能經(jīng)由多個(gè)路由器的長(zhǎng)距離數(shù)據(jù)傳輸。
網(wǎng)絡(luò)層為傳輸層提供了兩種核心服務(wù)模型:
- 無(wú)連接服務(wù):以數(shù)據(jù)報(bào)網(wǎng)絡(luò)為典型代表。每個(gè)數(shù)據(jù)包(稱為數(shù)據(jù)報(bào))獨(dú)立路由,攜帶完整的目的地址。路由器根據(jù)轉(zhuǎn)發(fā)表和路由算法為每個(gè)包選擇下一跳。協(xié)議簡(jiǎn)單、健壯,但無(wú)法保證順序、延遲和可靠性。互聯(lián)網(wǎng)的IP協(xié)議即是此模型。
- 面向連接服務(wù):以虛電路網(wǎng)絡(luò)為典型代表。通信前需建立一條邏輯連接(虛電路),數(shù)據(jù)包沿此固定路徑傳輸,只需攜帶簡(jiǎn)短的虛電路標(biāo)識(shí)符。能保證順序和服務(wù)質(zhì)量,但建立和維護(hù)連接開(kāi)銷大。ATM網(wǎng)絡(luò)是歷史實(shí)例。
二、路由器:網(wǎng)絡(luò)層的核心設(shè)備
路由器是實(shí)現(xiàn)網(wǎng)絡(luò)層功能的關(guān)鍵設(shè)備,其核心任務(wù)是轉(zhuǎn)發(fā)和路由。
- 轉(zhuǎn)發(fā):是路由器將輸入端口的數(shù)據(jù)包移動(dòng)到合適輸出端口的本地操作。它通過(guò)查詢轉(zhuǎn)發(fā)表實(shí)現(xiàn),是數(shù)據(jù)平面的功能。
- 路由:是確定數(shù)據(jù)包從源到目的所經(jīng)路徑的全局過(guò)程。路由算法通過(guò)交互信息動(dòng)態(tài)建立和更新轉(zhuǎn)發(fā)表,是控制平面的功能。
一個(gè)典型的路由器體系結(jié)構(gòu)包含:
- 輸入端口:執(zhí)行物理層、數(shù)據(jù)鏈路層處理,并查找轉(zhuǎn)發(fā)表決定輸出端口。
- 交換結(jié)構(gòu):連接輸入與輸出端口,常見(jiàn)類型有經(jīng)內(nèi)存、總線和縱橫式交換。
- 輸出端口:從交換結(jié)構(gòu)接收包,進(jìn)行緩存、排隊(duì),并執(zhí)行數(shù)據(jù)鏈路層和物理層處理。
- 路由處理器:執(zhí)行路由協(xié)議,維護(hù)路由表并計(jì)算轉(zhuǎn)發(fā)表。
三、網(wǎng)際協(xié)議(IP)與編址
互聯(lián)網(wǎng)的網(wǎng)絡(luò)層核心協(xié)議是IP協(xié)議,目前主要版本是IPv4。
1. IPv4數(shù)據(jù)報(bào)格式
一個(gè)IPv4數(shù)據(jù)報(bào)由首部和數(shù)據(jù)(來(lái)自傳輸層的段)組成。關(guān)鍵字段包括:
- 版本:IP協(xié)議版本,IPv4為4。
- 首部長(zhǎng)度:指示首部長(zhǎng)度(通常為20字節(jié),無(wú)選項(xiàng)時(shí))。
- 服務(wù)類型:用于區(qū)分服務(wù)(如延遲、吞吐量?jī)?yōu)先級(jí))。
- 總長(zhǎng)度:整個(gè)數(shù)據(jù)報(bào)的長(zhǎng)度(字節(jié))。
- 標(biāo)識(shí)、標(biāo)志、片偏移:用于IP分片與重組。
- 生存時(shí)間:防止數(shù)據(jù)報(bào)無(wú)限循環(huán),每經(jīng)路由器減1,為0時(shí)丟棄。
- 協(xié)議:指示數(shù)據(jù)部分應(yīng)交給哪個(gè)上層協(xié)議(如6為TCP,17為UDP)。
- 首部校驗(yàn)和:僅對(duì)首部進(jìn)行差錯(cuò)檢測(cè)。
- 源IP地址和目的IP地址:32位的邏輯地址。
2. IPv4編址
每個(gè)接口(如網(wǎng)卡)都有一個(gè)全球唯一的IP地址。IPv4地址為32位,常以點(diǎn)分十進(jìn)制表示(如192.168.1.1)。
- 分類編址:歷史方法,將地址空間劃分為A、B、C、D、E類,劃分僵化導(dǎo)致地址浪費(fèi)。
- 子網(wǎng)劃分:將一個(gè)大的網(wǎng)絡(luò)地址塊進(jìn)一步劃分為多個(gè)子網(wǎng)。通過(guò)從主機(jī)號(hào)部分借位來(lái)創(chuàng)建子網(wǎng)號(hào)。通過(guò)子網(wǎng)掩碼(一連串1后跟一連串0,1對(duì)應(yīng)網(wǎng)絡(luò)和子網(wǎng)號(hào))來(lái)界定網(wǎng)絡(luò)部分。
- 無(wú)類別域間路由:當(dāng)前標(biāo)準(zhǔn)。使用網(wǎng)絡(luò)前綴表示法,如
192.168.1.0/24,其中“/24”表示前24位是網(wǎng)絡(luò)前綴。允許更靈活、聚合的地址分配。 - 私有地址:為解決IPv4地址耗盡,RFC 1918定義了私有地址空間(如10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16),可在內(nèi)部網(wǎng)絡(luò)重復(fù)使用,通過(guò)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT) 技術(shù)訪問(wèn)公網(wǎng)。
3. 動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)
為主機(jī)動(dòng)態(tài)分配IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)和DNS服務(wù)器地址。采用客戶端/服務(wù)器模式,通過(guò)發(fā)現(xiàn)、提供、請(qǐng)求、確認(rèn)四步廣播交互完成。
四、IP分片與重組
由于數(shù)據(jù)鏈路層幀有最大傳輸單元(MTU) 限制,當(dāng)IP數(shù)據(jù)報(bào)長(zhǎng)度超過(guò)出鏈路的MTU時(shí),路由器必須將其分片。每個(gè)分片成為獨(dú)立的IP數(shù)據(jù)報(bào),擁有自己的首部(標(biāo)識(shí)字段相同,片偏移指示位置)。最終由目的主機(jī)根據(jù)標(biāo)識(shí)、標(biāo)志和片偏移字段進(jìn)行重組。
五、小結(jié)
本篇作為網(wǎng)絡(luò)層學(xué)習(xí)的上篇,介紹了網(wǎng)絡(luò)層的核心角色、服務(wù)模型、關(guān)鍵設(shè)備(路由器)以及互聯(lián)網(wǎng)的基石——IPv4協(xié)議,涵蓋了其數(shù)據(jù)報(bào)格式、編址方案和分片機(jī)制。理解這些基礎(chǔ)概念是掌握網(wǎng)絡(luò)層后續(xù)內(nèi)容,如路由算法、IPv6、ICMP等協(xié)議的前提。網(wǎng)絡(luò)層通過(guò)其盡力而為的無(wú)連接服務(wù),將全球異構(gòu)的網(wǎng)絡(luò)互聯(lián)起來(lái),構(gòu)成了互聯(lián)網(wǎng)的骨架。在下篇中,我們將深入探討路由算法、路由協(xié)議以及網(wǎng)絡(luò)層的其他重要組件。