網絡層
- 從發送主機向發送主機發送數據段
- 發送主機:將數據段封裝到數據報中
- 接收主機:向傳輸層交付數據段
網絡層核心功能
-
轉發
將分組從路由器的輸入端口轉移到合適的輸出端口 -
路由
確定分組從源到目的經過的路徑
路由算法 - 連接建立
某些網絡的重要功能:ATM、幀中繼、X.25
網絡層服務
- 無連接服務
不事先爲系列分組都傳輸確定傳輸路徑
每個分組獨立確定傳輸路徑
不同分組可能傳輸路徑不同
數據報網絡 - 連接服務
首先爲系列分組傳輸確定從源到目的的傳輸路徑(建立連接)
然後沿該路徑(連接)傳輸系列分組
系列分組傳輸路徑相同
傳輸結束後拆除連接
虛電路網絡
虛電路網絡
虛電路:一條從源主機到目的主機,類似於電路的路徑(邏輯連接)
- 分組交換
- 每個分組的傳輸利用鏈路的全部帶寬
- 源到目的路徑經過的網絡層設備共同完成虛電路網絡功能
通信過程:呼叫建立 -> 數據傳輸 -> 呼叫拆除
每條虛電路(VC)包括
- 從源主機到目的主機的一條路徑
- 虛電路號(VCID),沿路每段鏈路一個編號
- 沿路的每個網絡層設備,利用轉發表記錄經過的每條虛電路
沿某條虛電路傳輸的分組,攜帶對應虛電路的VCID,而不是目的地址
同一條VC,每段鏈路上的VCID通常不同
虛電路信令協議:用於VC的建立、維護與拆除
數據報網絡
- 網絡層無連接
- 每個分組攜帶目的地址
- 路由器根據分組的目的地址轉發分組
- 基於路由協議/算法構建轉發表
- 檢索轉發表
- 每個分組獨立選路
最長前綴匹配優先原則:在檢索轉發表時,優先選擇與目的地址匹配前綴最長的入口
數據報網絡(Internet) | 虛電路網絡(ATM) |
---|---|
計算機之間數據交換 彈性服務,沒有嚴格時間需求 |
核心任務是實時對話 嚴格的時間、可靠性需求 |
鏈路類型衆多 | 電話網絡演變而來 |
“智能”端系統(計算機) | “啞”端系統 |
簡化網絡,複雜邊緣 | 簡化邊緣,複雜網絡 |
Internet網絡層主要功能
- 路由協議:路由選擇,RIP,OSPF,BGP
- IP協議:尋址規約、數據報格式、分組處理規約
- ICMP協議:差錯報告、路由器信令
IP數據報(分組)格式
- 首部長度:以四字節爲單位,5 -> 4 * 5 = 20字節
- 總長度:首部 + 數據
- 協議:6 -> TCP;17 -> UDP
- 首部校驗和:逐跳計算、逐跳校驗
IPv4 數據報分片:大IP分組向較小MTU鏈路轉發時,需要分片
- 標識(ID):標識一個IP分組,一個IP分組的多個分片的ID相同
- 標誌位:佔3位
- DF = 0:允許分片
- DF = 1:禁止分片
- MF = 0:最後一片或未分片
- MF = 1:非最後一片
- 片偏移:佔13位,以8字節爲單位
原IP分組總長度爲L,待轉發鏈路MTU爲M
一個最大分片所封裝到數據的大小應該是8的倍數需要的分片數爲 每片的片偏移字段取值爲 每片的總長度字段爲
IPv4地址:32bits,標識主機和路由器接口
|網絡號|主機號|
主機號全0表示子網
主機號全1表示本網廣播
均不能作爲接口地址
IP子網
- IP地址具有相同網絡號的設備接口
- 不跨越路由器可以彼此物理聯通的接口
有類編址
子網劃分
子網掩碼:NetID、SubID位全取1,HostID位全取0利用子網地址 + 子網掩碼確定子網大小
無類域間路由
無類地址格式:a.b.c.d/x
- 提高IP地址空間分配效率
- 提高路由效率
- 將多個子網聚合爲一個大的子網
- 構造超網
- 路由聚合
DHCP協議:動態主機配置協議
- 從服務器動態獲取
- IP地址
- 子網掩碼
- 默認網關地址
- DNS服務器名稱與其IP地址
- 即插即用
- 允許地址重用
- 支持在用地址續租
- 支持移動用戶加入網絡
- 應用層實現,使用UDP傳輸服務,端口67
步驟
- 主機廣播“DHCP discover”(發現報文)
- DHCP服務器利用“DHCP offer”(提供報文)進行響應
- 主機請求IP地址“DHCP request”(請求報文)
- DHCP服務器分配IP地址“DHCP ack”(確認報文)
NAT:網絡地址轉換
所有離開本地網絡去往Internet的數據報的源IP地址都會被替換成相同的NAT IP地址以及不同的端口號
動機
- 只需/能從ISP申請一個IP地址:IPv4地址耗盡
- 本地網絡設備地址的變更,無需通告外界網絡
- 變更ISP時,無需修改內部網絡設備的IP地址
- 內部網絡設備對外界不可見,即不可直接尋址(安全)
主要爭議
- 路由器應該只處理第三層功能
- 違背端到端原則
- 地址短缺問題應該有IPv6來解決
NAT穿透問題解決方案
- 靜態配置NAT,將特定端口的連接請求轉發給服務器
- 利用UPnP互聯網網關設備協議自動配置
- 中繼
NAT內部的客戶與中繼服務器建立連接
外部客戶也與中繼服務器建立連接
中繼服務器橋接兩個連接的分組
ICMP:互聯網控制報文協議
- 差錯報告報文
- 目的不可達
- 源抑制
- 超時/超期
- 參數問題
- 重定向
- 網絡探測報文
- 回聲請求與應答報文
- 時間戳請求與應答報文
不發送ICMP差錯報告報文的幾種特殊情況
- 對ICMP差錯報告報文不再發送
- 除第一個IP數據分片外,對所有後續的IP數據分片都不發送
- 對所有多撥數據報均不發送
- 對具有特殊地址的IP數據報不發送(如0.0.0.0,127.0.0.0)
ICMP報文封裝到IP數據報中傳輸
IPv6
動機
- 32位IPv4地址空間已經分配殆盡
- 快速處理、轉發數據報
- 支持QoS
IPv6數據報格式
- 固定長度的40字節基本首部
- 不允許分片
IPv6地址表現形式
- 一般形式:1080:0:FF:0:8:800:200C:417A
- 壓縮形式:FF01:0:0:0:0:0:0:43 -> FF01::43
- IPv4嵌入形式:0:0:0:0:0:FFFF:13.1.68.1 或 ::FFFF:13.1.68.1
IPv4向IPv6過渡:隧道:IPv6數據報作爲IPv4數據報的載荷進行封裝,穿過IPv4網絡
路由算法:確定去往目的網絡的最佳路徑
鏈路狀態路由算法:Dijkstra算法
- 所有節點掌握網絡拓撲和鏈路費用
- 存在震盪可能
距離向量路由算法:Bellman-Ford方程
節點獲得最短路徑的下一跳,該信息用於轉發表中
對於每個節點x,需要維護
- 已知到達每個節點的費用c(x,v)
- 維護其所有鄰居的距離向量
核心思想
- 每個節點不定時地將自己的DV估計發送給其鄰居
- 當鄰居收到鄰居新的DV估計是,利用B-F方程更新自身的距離向量估計
異步迭代:引發每次局部迭代的因素有,局部鏈路費用改變、來自鄰居的DV更新
分佈式:每個節點僅當DV變化時才通告給鄰居![]無窮計數問題
- 毒性逆轉
- 定義最大跳步數
層次路由
- 聚合路由器爲一個區域網:自治系統 AS ( autonomous systems )
- 同一AS內的路由器運行相同的路由協議(算法)
- 網關路由器
- 位於AS邊緣
- 通過鏈路連接其他AS
熱土豆路由:將分組轉發給最近的網關路由器
AS內部路由協議
- 路由信息協議:RIP
- 開放最短路徑優先:OSPF
- 內部網關路由協議:IGRP
RIP
- 距離向量路由算法
- 距離度量:跳步數
- 每隔30秒,鄰居之間交換一次DV,成爲通告
- 每次通告,最多25個子網地址
- 毒性逆轉,無窮大距離 = 16跳
- 路由表的處理
- 應用層實現
- 通告報文週期性地通過UDP數據報發送
OSPF
- 開放:公衆可用
- 採用鏈路狀態路由算法,利用Dijkstra算法計算
- OSPF報文直接封裝到IP數據報中
- 類似:IS-IS路由協議
- 安全:所有對OSPF報文可以被認證
- 允許使用多條費用相同的路徑
- 對於每條鏈路,可以針對不同的TOS設置多個不同的費用度量
- 集成單播路由與多播路由
- 支持對大規模AS分層
- 兩級分層:局部區、主幹區
- 區邊界路由器
- 主幹路由器
- AS邊界路由器
AS間路由協議
BGP:邊界網關協議
- 事實上的標準域間路由協議
- eBGP:從鄰居AS獲取子網可達性信息
- iBGP:向所有的AS內部路由器傳播子網可達性信息
- BGP會話:兩個BGP路由器交換BGP報文
- 通告去往不同目的前綴的路徑
- 報文交換基於半永久的TCP連接
- 通告的前綴信息包括BGP屬性
- AS-PATH:包含前綴通告所經過的AS序列
- NEXT-HOP:開始一個AS-PATH的路由器接口,指向下一個AS
BGP路由選擇:網關路由器收到路由通告後,利用輸入策略決策接受/拒絕該路由通告
選擇的準則
- 本地偏好值屬性:策略決策
- 最短AS-PATH
- 最近NEXT-HOP路由器:熱土豆路由
- 附加準則
採用不同AS內與AS間路由協議的原因
- 策略
inter-AS:希望能夠管理控制流量如何被路由,誰路由經過其網絡等
intra-AS:單一管理,無需路由決策 - 規模
層次路由節省路由表大小,減少路由更新流量
適應大規模互聯網 - 性能
inter-AS:策略主導
intra-AS:側重性能