網(wǎng)絡層
網(wǎng)絡層是計算機網(wǎng)絡體系結構中的關鍵一層,主要負責將數(shù)據(jù)包從源主機跨越多跳網(wǎng)絡路徑傳送到目的主機。其核心功能是實現(xiàn)主機到主機的通信,并為傳輸層提供無連接或面向連接的服務。
一、核心功能與服務
- 轉發(fā):當一個數(shù)據(jù)包到達路由器的輸入鏈路時,路由器需要根據(jù)其目的地址,通過查表將其移動到合適的輸出鏈路。這是一個數(shù)據(jù)平面的功能。
- 路由:確定數(shù)據(jù)包從源到目的地所采用的路徑。路由算法(如鏈路狀態(tài)、距離向量)負責構建和維護路由器的轉發(fā)表。這是一個控制平面的功能。
- 連接建立:某些網(wǎng)絡層架構(如ATM)需要在數(shù)據(jù)傳輸前,在源和目的地之間建立一條虛擬路徑。
網(wǎng)絡層可以為傳輸層提供兩種服務模型:
- 無連接服務:不事先建立連接,每個數(shù)據(jù)包獨立路由。例如:Internet的網(wǎng)絡層使用IP協(xié)議提供“盡力而為”的無連接服務。
- 面向連接服務:數(shù)據(jù)傳輸前需建立連接(虛電路),所有數(shù)據(jù)包沿同一路徑傳輸,按序到達。例如:ATM網(wǎng)絡。
二、核心協(xié)議:IP協(xié)議(IPv4)
IP協(xié)議是Internet網(wǎng)絡層的核心。
- IP數(shù)據(jù)報格式:
- 關鍵字段:版本、首部長度、服務類型、總長度、標識、標志、片偏移、生存時間、協(xié)議(指示上層協(xié)議,如TCP=6,UDP=17)、首部檢驗和、源IP地址、目的IP地址。
- 生存時間:TTL,每經(jīng)過一個路由器減1,為0時丟棄,防止數(shù)據(jù)包無限循環(huán)。
- 分片與重組:由于鏈路層MTU限制,過大的IP數(shù)據(jù)報需要在路由器上分片,在目的主機上重組。
- IPv4編址:
- IP地址(如192.168.1.1)是32位的標識符,與接口(而非主機)相關聯(lián)。
- 分類編址:A、B、C、D、E類地址,已過時。
- CIDR(無類別域間路由):現(xiàn)代使用方式,格式為
a.b.c.d/x,其中x是網(wǎng)絡前綴的長度。支持地址聚合,減少路由表項。
- 私有IP地址:保留給內(nèi)部網(wǎng)絡使用(如10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16),通過NAT訪問公網(wǎng)。
- 動態(tài)主機配置協(xié)議:DHCP允許主機從網(wǎng)絡服務器動態(tài)獲取IP地址、子網(wǎng)掩碼、默認網(wǎng)關和DNS服務器地址。過程包括:發(fā)現(xiàn)、提供、請求、確認。
- 網(wǎng)絡地址轉換:NAT使私有網(wǎng)絡內(nèi)的多臺主機可以共享一個或少量公網(wǎng)IP地址訪問互聯(lián)網(wǎng)。NAT路由器會修改進出數(shù)據(jù)包的IP地址和端口號,并維護轉換表。
三、路由算法
路由算法的目標是找到從源到目的地“好”的路徑(通常指代價最小)。
- 鏈路狀態(tài)算法:如Dijkstra算法。
- 每個路由器掌握完整的網(wǎng)絡拓撲和鏈路代價信息。
- 通過洪泛鏈路狀態(tài)信息,讓所有節(jié)點擁有一致的全網(wǎng)視圖。
- 計算從本節(jié)點到所有其他節(jié)點的最短路徑。
- 集中式算法,復雜度高,但結果穩(wěn)定、無環(huán)路。
- 距離向量算法:如Bellman-Ford算法。
- 每個路由器維護到所有目的地的代價估計(距離向量),并定期與鄰居交換。
- 分布式、迭代、異步執(zhí)行。
- 可能遇到計數(shù)到無窮和路由環(huán)路問題,可通過毒性逆轉等技術緩解。
- 核心公式:$dx(y) = \minv \{ c(x,v) + d_v(y) \}$。
四、路由實踐:自治系統(tǒng)內(nèi)與系統(tǒng)間
- 自治系統(tǒng):AS是在單一技術管理下的一組路由器集合(如一個ISP)。內(nèi)部運行相同的路由協(xié)議。
- 內(nèi)部網(wǎng)關協(xié)議:IGP,用于AS內(nèi)部路由。
- RIP:基于距離向量,使用跳數(shù)作為度量,最大跳數(shù)為15。通過UDP交換路由信息。
- OSPF:基于鏈路狀態(tài),使用洪泛鏈路狀態(tài)信息和Dijkstra算法。直接通過IP承載。支持分層。
- 外部網(wǎng)關協(xié)議:EGP,用于AS間路由。
- BGP:事實上的標準。是一種路徑向量協(xié)議。路由器之間交換的是完整的路徑信息(AS序列),而不僅僅是距離。基于策略的路由選擇是關鍵。
五、關鍵技術與協(xié)議
- ICMP協(xié)議:互聯(lián)網(wǎng)控制報文協(xié)議,用于主機和路由器之間交換網(wǎng)絡層控制信息(如目的不可達、回顯請求/應答)。
ping和traceroute工具就是基于ICMP。 - IPv6:
- 動機:解決IPv4地址耗盡問題,簡化首部格式,提升性能與安全性。
- 主要特點:128位地址空間;固定40字節(jié)基本首部;無分片(路徑MTU發(fā)現(xiàn));原生支持安全與QoS。
- IP組播:允許一個發(fā)送者向一組接收者高效發(fā)送數(shù)據(jù)。使用D類地址。需要組播路由協(xié)議(如PIM)。
- 軟件定義網(wǎng)絡:SDN是一種新興的網(wǎng)絡架構,其核心思想是將控制平面(決策邏輯)與數(shù)據(jù)平面(轉發(fā)功能)分離。控制平面由一個集中式的SDN控制器實現(xiàn),通過南向API(如OpenFlow)對網(wǎng)絡中的交換機進行編程和管理。這帶來了前所未有的靈活性、可編程性和自動化能力。
六、重要概念
- 虛電路 vs 數(shù)據(jù)報網(wǎng)絡:網(wǎng)絡層兩大分組交換體系。
- IP地址與MAC地址:網(wǎng)絡層地址是邏輯的、分層的,用于全局尋址;鏈路層地址是物理的、扁平的,用于局部尋址。ARP協(xié)議完成兩者映射。
- 路由器結構:主要包括輸入/輸出端口、交換結構、路由處理器。轉發(fā)發(fā)生在輸入端口或交換結構中。
- 路由與轉發(fā)的區(qū)別:路由是“規(guī)劃路徑”,轉發(fā)是“沿路移動”。
- 最長前綴匹配:在查找轉發(fā)表時,當存在多個匹配的表項時,選擇網(wǎng)絡前綴最長的那一個。這是CIDR路由查找的關鍵。
網(wǎng)絡層是連接不同網(wǎng)絡、實現(xiàn)全球互聯(lián)的基石。理解IP協(xié)議的工作原理、路由算法的思想以及Internet的路由層次結構,是掌握計算機網(wǎng)絡的核心。