第四章 網路層
網路層服務
主機到主機
核心功能:轉發、路由、連線建立(並不是所有網路都需要的)
無連線服務:如資料報網路
連線服務:如虛電路網路
虛電路網路
每個分組的傳輸利用鏈路的全部頻寬;
沿某條虛電路傳輸的分組,攜帶對應虛電路的VCID,而不是目的地址;
同一條VC,在每段鏈路上的VCID通常不同。路由器轉發分組時依據轉發表改寫/替換虛電路號。
應用於虛電路網路如ATM、幀中繼網路等。
每條虛電路包括:
從源主機到目的主機的一條路徑
虛電路號(VCID),沿路每段鏈路一個編號
沿路每個網路層裝置(如路由器),利用轉發表記錄經過的每條虛電路
虛電路信令協議
資料報網路
路由器根據分組的目的地址轉發分組,每個分組獨立選路。
最長字首匹配優先:在檢索轉發表時,如果匹配成功兩條以上或者多條入口的時候,優先選擇與分組目的地址匹配字首最長的入口(entry)。
資料報網路VS虛電路網路
資料報網路以Internet網路為例 | VC網路以ATM為例 |
---|---|
計算機之間的資料交換:“彈性”服務,沒有嚴格時間需求 | 電話網路演化而來 |
鏈路型別眾多:特點、效能各異;統一服務困難;效率低 | 核心業務是實時對話:嚴格的時間、可靠性需求;需要有保障的服務 |
智慧”端系統(計算機):可以自適應、效能控制、差錯恢復 | “啞(dumb)”端系統(非智慧):電話機、傳真機 |
簡化網路,複雜“邊緣” | 簡化邊緣,複雜“網路 |
Internet網路層概述
IP協議(主要是IPv4)
IP資料報分組格式
名稱 | 解釋 |
---|---|
版本號 | 欄位佔4位,IP協議的版本號:4就是指IPv4,6就是指IPv6。 |
首部長度 | 欄位佔4位,IP分組首部長度。以4位元組為單位。例:5→IP首部長度為20(5*4)位元組 |
服務型別(TOS) | 欄位佔8位,指示期望獲得哪種型別的服務。1998年這個欄位改名為區分服務;只有在網路提供區分服務(DiffServ)時使用;一般情況下不使用,通常IP分組的該欄位(第2位元組)的值為00H。 |
總長度 | 欄位佔16位,IP分組的總位元組數(首部+資料)。最大IP分組的總長度:65535B;最小的IP分組首部:20B;IP分組可以封裝的最大資料65535-20=65515B |
標識 | 欄位佔16位,標識一個IP分組。IP協議利用一個計數器,每產生IP分組計數器加1,作為該IP分組的標識。 |
標誌位 | 欄位佔3位,DF(Don’t Fragment),MF(More Fragment)。DF=1 禁止分片;DF=0 允許分片;MF=1 非最後一片;MF=0 最後一片。 |
片偏移 | 欄位佔13位,一個IP分組分片封裝原IP分組資料的相對偏移量。片偏移欄位以8位元組為單位。 |
生存時間(TTL) | 欄位佔8位,IP分組在網路中可以通過的路由器數(或跳步數)。路由器轉發一次分組,TTL減1;如果TTL=0,路由器則丟棄該IP分組。 |
協議 | 欄位佔8位,指示IP分組封裝的是哪個協議的資料包,實現複用/分解。例:如果協議欄位的值為6,那麼表示封裝的是TCP段;17表示封裝的是UDP資料報。 |
首部校驗和 | 欄位佔16位,實現對IP分組首部的差錯檢測。逐跳計算、逐跳校驗。 |
源IP地址、目的IP地址 | 欄位各佔32位,分別標識傳送分組的源主機/路由器(網路介面)和接收分組的目的主機/路由器(網路介面)的IP地址 |
選項欄位 | 長度可變,範圍在1~40B之間:攜帶安全、源選路徑、時間戳和路由記錄等內容。實際上很少被使用。 |
填充 | 欄位佔長度可變,範圍在0~3B之間:目的是補齊整個首部,符合32位對齊,即保證首部長度是4位元組的倍數 |
IP分片
最大傳輸單元(MTU):鏈路層資料幀可封裝資料的上限。不同鏈路的MTU不同。
大IP分組向較小MTU鏈路轉發時,路由器可以將大的IP分組“分片”;IP分片到達目的主機後進行“重組”。
IP首部的相關欄位用於標識分片以及確定分片的相對順序:總長度、標識、標誌位和片偏移
DF=1 禁止分片
DF=0 允許分片
MF=1 非最後一片
MF=0 最後一片
IP分片過程
假設原IP分組總長度為L,待轉發鏈路的MTU為M;
若L>M,且DF=0,則可以/需要分片;
分片時每個分片的標識複製原IP分組的標識;
通常分片時,除最後一個分片,其他分片均分為MTU允許的最大分片;
一個最大分片可封裝的資料應該是8的倍數,因此,一個最大分片可封裝的資料為
需要的總片數為
每片的片偏移欄位取值為:
每片的總長度欄位為:
每片的MF標誌位為:
例:
IP編址
- IP地址
高位位元——網路號(NetID)
低位位元——主機號(HostID) - 有類IP地址(Addresses)
有類地址 | 所佔比例 | Net ID+Host ID | 範圍 |
---|---|---|---|
A類地址 | 50% | 8位+24位 | 0.0.0.0~127.255.255.255 |
B類地址 | 25% | 16位+16位 | 128.0.0.0~191.255.255.255 |
C類地址 | 12.5% | 24位+8位 | 192.0.0.0~223.255.255.255 |
D類地址 | 6.25% | 32位 | 224.0.0.0~239.255.255.255 |
E類地址 | 6.25% | 32位 | 240.0.0.0~255.255.255.255 |
- 特殊IP地址:
- 私有地址:只用於內部網路,在公共網際網路上無效
- IP子網
IP地址具有相同網路號的裝置介面;
不跨越路由器(第三及以上層網路裝置)可以彼此物理聯通的介面- 子網劃分
高位位元——網路號(NetID)
原網路主機號部分位元——子網號(SubID)
低位位元——主機號(HostID)
- 子網掩碼
作用:確定是否劃分以及利用多少位劃分子網。
形式:如IP地址,32位,點分十進位制形式。
取值:NetID、SubID位全取1;HostID位全取0。
應用:將IP分組的目的IP地址與子網掩碼按位與運算,提取子網地址 - 例
- 子網劃分
2.
目的IP地址:172.32.1.112 , 子網掩碼:255.255.254.0
172.32.1.112 = 10101100 00100000 00000001 01110000
255.255.254.0 = 11111111 11111111 11111110 00000000
---------------------------------------------------------------
10101100 00100000 00000000 00000000
172 32 0 0
子網地址:172.32.0.0(子網掩碼:255.255.254.0)
地址範圍:172.32.0.0~172.32.1.255
可分配地址範圍:172.32.0.1~172.32.1.254
廣播地址:172.32.1.255
CIDR(另一種IP編址)
無類域間路由(CIDR:Classless InterDomain Routing)
消除傳統的A、B、C類地址界限;
NetID+SubID→Network Prefix(Prefix)可以任意長度;
融合子網地址與子網掩碼,方便子網劃分。比如子網201.2.3.64,子網掩碼是255.255.255.192,就可以寫成201.2.3.64/26;
無類地址格式:a.b.c.d/x,其中x為字首長度。
優點:
1.可以提高IPv4地址空間分配效率
2.提高路由效率:將多個子網聚合為一個較大的子網,構造超網(supernetting);路由聚合。
DHCP協議(Dynamic Host Configuration Protocol)
- 從伺服器動態獲取:
IP地址
子網掩碼
預設閘道器地址
DNS伺服器名稱與IP地址 - “即插即用”
- 允許地址重用
- 支援在用地址續租
- 支援移動使用者加入網路
- DHCP協議在應用層實現
- 預設閘道器:一臺主機如果找不到可用的閘道器,就把資料報發給預設指定的閘道器,由這個閘道器來處理。現在主機使用的閘道器,一般是指預設閘道器。
- 工作過程:
主機廣播”DHCP discovver” (發現報文);
DHCP伺服器利用“DHCP offer”(提供報文)進行相應;
主機請求IP地址:“DHCP request”(請求報文):依然用廣播域是為了告訴其他伺服器收回預分配的地址;
DHCP伺服器分配IP地址:“DHCP ack”(確認報文):包括分配給客戶的IP地址、子網掩碼、預設閘道器、DNS伺服器地址。
如示意圖:
NAT
- 網路地址轉換(使私有地址可以在公共網路上成功通訊)
- 實現
替換:利用(NAT IP地址,新埠號)替換每個外出IP資料報的(源IP地址,源埠號)
記錄:將每對(NAT IP地址,新埠號)與(源IP地址,源埠號)的替換資訊儲存到NAT 轉換表中
替換:根據NAT轉換表,利用(源IP地址,源埠號)替換每個進入內網IP資料報的(目 的IP地址,目的埠號),即(NAT IP地址,新埠號) - NAT穿透問題
1.靜態配置NAT,將特定埠的連線請求轉發給伺服器;
2.利用UPnP網際網路閘道器裝置協議IGD自動配置;
3.中繼(如Skype):
NAT內部的客戶與中繼伺服器建立連線
外部客戶也與中繼伺服器建立 連線
中繼伺服器橋接兩個連線的分組
網際網路控制報文協議(ICMP)
- 功能:差錯(或異常)報告;網路探詢
- 報文型別:
- 差錯報告報文(5種)
目的不可達
源抑制
超時/超期
引數問題
重定向 - 網路探詢報文(2組)
回聲請求與應答報文
時間戳請求與應答報文
- 差錯報告報文(5種)
- 幾種不傳送ICMP差錯報告報文的特殊情況:
對ICMP差錯報告報文不再發送ICMP差錯報告報文;
除第一個IP資料報分片外,對所有後續分片均不傳送ICMP差錯報告報文;
對所有多播IP資料報均不傳送ICMP差錯報告報文;
對具有特殊地址(如127.0.0.0或0.0.0.0)的IP資料報不傳送ICMP差錯報告報文; - 幾種ICMP報文已不再使用:
資訊請求與應答報文;
子網掩碼請求和應答報文;
路由器詢問和通告報文; - ICMP報文封裝到IP資料報中進行傳輸
- ICMP差錯報告報文資料封裝
IPv6簡介
資料報格式
固定長度40位元組基本首部,不允許分片。
優先順序:標識資料報的優先順序
流標籤:標識同一流中的資料報。根據不同流標籤提供不同服務。
下一個首部:標識下一個選項首部或上層協議首部,如TCP首部
IPv6 與 IPv4的對比
IP v6特點如下:
校驗和:徹底移出,以減少每跳處理時間
選項:允許,但是從基本首部移出,定義多個選項首部,通過“下一個首部”欄位指示
ICMPv6:新版ICMP(多播組管理功能)
不允許分片
靈活的首部格式
支援更多的服務型別
地址長度為128bit
首部必須是8B的整數倍
簡化了報文頭部格式(8個域,IPv4 12個),加快報文轉發,提高了吞吐量
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.3 或 ::FFFF:13.1.68.3
地址字首: 2002:43c:476b::/48 (注: IPv6不再使用掩碼!)
URLs: http://[3FFE::1:800:200C:417A]:8000
IPv6基本地址型別
IPv4向IPv6過渡
隧道(tunneling):IPv6資料報作為IPv4資料報的載荷進行封裝,穿越IPv4網路
例題
答:
(1)
可分配地址:126個
202.118.1.1-202.118.1.126
202.118.1.129-202.118.1.254
(2)
(3)
路由演算法
鏈路狀態路由演算法
- Dijkstra演算法
距離-向量路由演算法
- Bellman-Ford方程(動態規劃)
*無窮計數問題解決方案- 毒性逆轉
- 定義最大度量
層次路由
- 聚合路由器為一個區域:自治系統AS
- 同一AS內的路由器執行相同的路由協議(演算法)
·自治系統內部路由協議(intra-AS),也叫內部閘道器協議(IGP)
·不同自治系統內的路由器可以執行不同的AS內部路由協議 - 閘道器路由器:
·位於AS“邊緣”
·通過鏈路連線其他AS的閘道器路由器
.熱土豆路由:最近的閘道器路由
AS內部路由協議
路由資訊協議:RIP(Routing Information Protocol)
- 距離向量路由演算法
- 距離度量:跳步數 (max = 15 hops), 每條鏈路1個跳步
- 每隔30秒,鄰居之間交換一次DV,成為通告(advertisement)
- 每次通告:最多25個目的子網(IP地址形式)
- RIP路由表的處理
1.RIP路由表是利用一個稱作route-d的應用層程序進行管理
2.應用程序實現
3.通告報文週期性地通過UDP資料報傳送
開放最短路徑優先:OSPF(Open Shortest Path First)
- 採用鏈路狀態路由演算法
- OSPF通告在整個AS範圍泛洪 ,OSPF報文直接封裝到IP資料報中.
- 與OSPF極其相似的一個路由協議:IS-IS路由協議
- OSPF優點(與RIP對比):
- 安全(security): 所有OSPF報文可以被認證 (預防惡意入侵)
- 允許使用多條相同費用的路徑 (RIP只能選一條)
- 對於每條鏈路,可以針對不同的TOS設定多個不同的費用度量 (e.g., 衛星鏈路可以針對“盡力” (best effort) ToS設定“低”費用;針對實時ToS設定“高”費用)
- 整合單播路由與多播路由: 多播OSPF協議(MOSPF) 與OSPF利用相同的網路拓撲資料
- OSPF支援對大規模AS分層
兩層分級:區域性域(Area)、主幹區(Backbone)
區邊界路由器
主幹路由器
內部閘道器路由協議:IGRP(Interior Gateway Routing Protocol)
Cisco私有協議 .
AS間路由協議
BGP
-
BGP為每個AS提供了一種手段
eBGP: 從鄰居AS獲取子網可達性資訊.
iBGP: 向所有AS內部路由器傳播子網可達性資訊.
基於可達性資訊與策略,確定到達其他 網路的 “好"路徑. -
BGP會話:兩個BGP路由器交換BGP報文
通告去往不同目的字首(prefix)的路徑 (“路徑向量(path vector)”協議)
報文交換基於半永久的TCP連線 -
BGP報文:
OPEN: 與peer建立TCP連線,並認證傳送方
UPDATE: 通告新路徑 (或撤銷原路徑)
KEEPALIVE: 在無UPDATE時,保活連線;也用於對OPEN請求的確認
NOTIFICATION: 報告先前報文的差錯;也被用於關閉連線 -
當路由器獲得新的字首可達性時,即在其轉發表中增加關於該字首的入口(路由項)
-
通告的字首資訊包括BGP屬性
字首+屬性= “路由”兩個重要屬性:
AS-PATH(AS路徑): 包含字首通告所經過的AS序列: e.g., AS 67, AS 17
NEXT-HOP(下一跳): 開始一個AS-PATH的路由器介面,指向下一跳AS. (可能從當前AS到下一跳AS存在多條鏈路 ) -
BGP路由選擇
閘道器路由器收到路由通告後,利用其輸入策略(import policy)決策接受/拒絕該路由 。路由器可能獲知到達某目的AS的多條路由,基於以下準則選擇:
1.本地偏好(preference)值屬性: 策略決策(policy decision)
2.最短AS-PATH
3.最近NEXT-HOP路由器: 熱土豆路由(hot potato routing)
4.附加準則 -
樁網路(stub network/AS): 只與一個其他AS相連
-
雙宿網路(dual-homed network/AS): 連線兩個其他AS
-
採用不同AS內與AS間路由協議
- 策略(policy):
inter-AS: 期望能夠管理控制流量如何被路由,誰路由經過其網路等.
intra-AS: 單一管理,無需策略決策 - 規模(scale):
層次路由節省路由表大小,減少路由更新流量
適應大規模網際網路 - 效能(performance):
intra-AS: 側重效能
inter-AS: 策略主導
- 策略(policy):