第四章 網絡層
4.1 概述
4.1.1 轉發和路由選擇
- 轉發(forwarding):當一個分組到達路由器的一條輸入鏈路時,路由器必須將該分組移動到適當的輸出鏈路
- 路由選擇(routing):當分組從發送方流向接收方時,網絡層必須決定這些分組所採用的路由或路徑
- 連接建立:網絡層第三個重要的網絡功能
–網絡層的連接:一對節點之間的連接,所有屬於這個連接的數據包遵循同一條路徑
–傳輸層的連接:進程之間的連接,同一個數據包可能在網絡層經不同路徑
4.1.2 網絡服務模型:定義了分組在發送與接收端系統之間的端到端運輸特性
- 提供的服務
–確保交付
–具有時延上界的確保交付
–有序分組交付
–確保最小帶寬
–確保最大時延抖動
–安全性服務 - 兩個最重要的ATM服務模型
–恆定比特率
–可用比特率
4.2 虛電路和數據報網絡
- 網絡層能在兩臺主機之間提供無連接服務或連接服務,連接服務以源和目的主機間的握手開始,無連接服務則沒有任何握手預備步驟
- 網絡層和運輸層在面向連接和無連接服務的差異
–在網絡層,這些服務是由網絡層向運輸層提供的主機到主機的服務。在運輸層中,這些服務則是運輸層嚮應用層提供的進程到進程的服務
–網絡層不能同時提供兩種服務(面向連接的、無連接的)。僅在網絡層提供連接服務的計算機網絡稱爲虛電路(Virtual-Circuit,VC)網絡;僅在網絡層提供無連接五福的計算機網絡稱爲數據報(datagram network)網絡
–網絡層連接服務除了在端系統中,也在位於網絡核心的路由器中實現;運輸層面向連接服務是在位於網絡邊緣
4.2.1 虛電路網絡
- 虛電路的組成
–源和目的主機之間的路徑
–VC號,沿着該路徑的每段鏈路的一個號碼
–沿着該路徑的每臺路由器的轉發表表項 - 虛電路中有3個明顯不同的階段
–虛電路建立
–數據傳送
–虛電路拆除
4.2.2 數據報網絡
- 每當一個端系統要發送分組,它就爲該分組加上目的端系統的地址,然後將分組推進網絡中。當分組從源到目的地傳輸,它通過一系列路由器傳遞。這些路由器中的每臺都使用分組的目的地址來轉發該分組
4.3 路由器工作原理
- 組成成分:輸入端口,交換結構,輸出端口,路由選擇處理器
- 關鍵功能:運行路由算法/協議(RIP,OSPF,BGP),將數據報從入鏈路傳到出鏈路
4.3.1 輸入端口
4.3.2 交換結構
- 經內存交換
–最簡單、最早的路由器是傳統的計算機,交換是在CPU的直接控制下完成的
–數據包被複制到系統的內存中
–速度受內存帶寬限制(2個總線交叉/數據報) - 經總線交換
–輸入端口經一根共享總線將分組直接傳送到輸出端口
–交換帶寬受總線速率的限制 - 經互聯網絡交換
–克服總線帶寬限制
–將數據報分段爲固定長度的單元,通過結構切換單元。
4.3.3 輸出端口
4.3.4 何處出現排隊
4.4 網際協議(IP)
4.4.1 數據包格式
- IP數據報分片
–鏈路層協議能承受的網絡層分組長度不同,一個鏈路層幀能承載的最大數據量叫做最大傳送單元(Maximum Transmission Unit,MTU)
–過大的IP數據報會被分成多個較小的數據報(稱爲fragment,片)
- 說明:
–ID是初始數據報的標識號
–fragflag=1說明後面還有別的數據報,fragflag=0說明這是最後一個數據報
–offset指定該片應放在初始IP數據報的哪個位置
4.4.2 IPv4編址
- 概念
–IP地址:主機的32位標識符,路由器接口
–接口(interface):主機/路由器與物理鏈路之間的連接
A)路由器通常有多個接口
B)主機通常有一個接口
–IP地址與每個接口關聯 - 子網
- 子網掩碼(例子):233.1.1.0/24,其中的/24記法有時稱爲子網掩碼,它指示了32比特中的最左側24比特定義了子網地址
- 因特網的地址分配策略:無類別域間路由選擇(Classless Interdomain Routing,CIDR),對於子網尋址,32比特的IP地址被劃分爲兩個部分,並且也具有點分十進制數形式a.b.c.d/x,其中x指示了地址的第一部分中的比特數,32-x比特用於區分該組織的內部設備
- 獲取一塊地址
–因特網名字和編號分配機構
即ICANN(Internet Corporation for Assigned Names and Numbers)
A)分配地址
B)管理DNS
C)分配域名,解決爭議 - 獲取主機地址:動態主機配置協議(分配公網IP)
–動態主機配置協議,即DHCP(Dynamic Host Configuration Protocol)
A)允許主機自動獲取(被分配)一個IP地址
B)也被稱爲即插即用協議(plug-and-play protocol)
–它是客戶端 - 服務器協議
- 網絡地址轉換(Network Address Translation,NAT)(分配私網IP)
–所有離開本地的數據報有着相同的源NAT IP地址,不同的端口號
–不同內部主機由NAT轉發表來區分
–本地網內的設備無法明確地尋址,外界看不到
–16位端口號字段,即單個LAN端地址同時連接60,000個
- UPnP:是一種允許主機發現並配置鄰近NAT的協議
4.4.3 因特網控制報文協議(ICMP)
- 被主機和路由器用來彼此溝通網絡層的信息
A)錯誤報文:無法訪問的主機,網絡,端口,協議
B)echo請求/回覆(由ping使用)
4.4.4 IPv6
- 實現動機:IPv4的32位地址空間將耗盡
- IPv6數據報格式
–首部僅有40字節
–有效載荷長度:16比特,給出IPv6數據報中跟在首部後面的字節數量
–跳限制:轉發數據報的每臺路由器將對該字段的內容減1。如果跳限制計數到達0,則該數據報將被丟棄
–刪除了分片重新組裝、首部校驗和,選項功能 - 從IPv4到IPv6的遷移
–建隧道(tunneling)
4.5 路由選擇算法
- 根據算法是全局式還是分散式區分
–全局式路由選擇算法(global routing algorithm):用完整的、全局的網絡知識計算出源到目的地之間的最低費用路徑。該算法常被稱作鏈路狀態算法,它必須知道網絡中每條鏈路的費用
–分散式路由選擇算法(decentralized routing algorithm):以迭代式、分佈式的方式計算出最低費用路徑。例子:距離向量算法(Distance-Vector,DV),每個節點維護到網絡中所有其他節點的費用估計的向量 - 根據算法是靜態還是動態區分
–靜態路由選擇算法(static routing algorithm):路由的變化非常緩慢
–動態路由選擇算法(dynamic routing algorithm):週期性地運行或直接響應拓撲或鏈路費用的變化而運行 - 根據算法是負載敏感的還是負載遲鈍的
–負載敏感算法(load-sensitive algorithm):鏈路費用會動態地變化以反映出底層鏈路的當前擁塞水平
–負載遲鈍算法(load-insensitive algorithm):鏈路的費用不明顯的反映當前(最近)的擁塞水平【當前因特網路由選擇算法都是負載遲鈍的】
4.5.1 鏈路狀態路由選擇算法(LS)
- Dijkstra算法(最短路徑)
–D(v):到算法的本次迭代,從源結點到目的結點v的最低費用路徑的費用
–p(v):從源到v沿着當前最低費用路徑的前一結點(v的鄰居)
–N’:結點子集;如果從源到v的最低費用路徑已確知,v在N’中
4.5.2 距離向量路由選擇算法(DV)
- 它是分佈式的、迭代的、異步的
- LS和DV的對比
4.5.3 層次路由選擇
- 問題:規模(路由器數目很大),管理自治
- 解決方案:自治系統(Autonomous System,AS)
–在相同的AS中的路由器全部運行相同的路由選擇算法
–在一個自治系統內運行的路由選擇算法叫做自治系統內部路由選擇協議(“intra-AS” routing protocol)
–負責向本AS之外的目的地轉發分組的路由器叫做網關路由器(gateway router)
–實踐中,AS之間轉發分組採用熱土豆路由選擇方法,即將分組轉發給具有最小的最低費用的網關
4.6 因特網中的路由選擇
4.6.1 因特網中自治系統內部的路由選擇:RIP
- AS內部路由選擇協議也被稱爲內部網關協議
- 路由選擇協議(Routing Information Protocol,RIP)
–RIP路由器大約每30秒互相交互通告
–如果一臺路由器一旦超過180秒沒有從鄰居聽到報文,則該鄰居不再被認爲是可到達的
4.6.2 因特網中自治系統內部的路由選擇:OSPF
- 開放最短路優先(Open Shortest Path First,OSPF)
–簡介
–優點
4.6.3 自治系統間的路由選擇:BGP(Border Gateway Protocol)
- 爲每個AS提供進行以下工作的手段:
–從相鄰AS處獲得子網可達性信息
–向本AS內部的所有路由器傳播這些可達性信息
–基於可達性信息和AS策略,決定到達子網的“好”路由 - 基礎
–對於每條TCP連接,位於該連接端點的兩臺路由器稱爲BGP對等方(BGP peers)
–沿着該連接發送的所有BGP報文的TCP連接稱爲BGP會話(BGP session)
–跨越兩個AS的BGP會話稱爲外部BGP(eBGP)會話
–在同一個AS中的兩臺路由器之間的BGP會話稱爲內部BGP(iBGP)會話
–CDIR化的前綴(prefix)使得每個AS知道其相鄰AS可到達哪個目的地 - 路徑屬性和BGP路由
–每個AS都有其全局唯一的自治系統號(ASN)【除了樁(stub)AS】
–當一臺路由器通過BGP會話通告一個前綴時,它在前綴中包含一些BGP屬性。帶有屬性的前綴稱爲一條路由(router)
–AS-PATH:包含前綴通告已經通過的AS
–NEXT-HOP:表示下一跳AS的特定內部AS路由器。(可以是從當前AS到下一跳AS的多條鏈路)
–網關路由器接收一臺路由器通告時,它使用輸入策略(import policy) - BGP路由選擇
- 路由選擇策略