1. 程式人生 > >第四章 網路層

第四章 網路層

網路層服務

主機到主機
核心功能:轉發、路由、連線建立(並不是所有網路都需要的)
無連線服務:如資料報網路
連線服務:如虛電路網路

虛電路網路

每個分組的傳輸利用鏈路的全部頻寬;
沿某條虛電路傳輸的分組,攜帶對應虛電路的VCID,而不是目的地址;
同一條VC,在每段鏈路上的VCID通常不同。路由器轉發分組時依據轉發表改寫/替換虛電路號。
應用於虛電路網路如ATM、幀中繼網路等。

每條虛電路包括:
從源主機到目的主機的一條路徑
虛電路號(VCID),沿路每段鏈路一個編號
沿路每個網路層裝置(如路由器),利用轉發表記錄經過的每條虛電路

虛電路信令協議

資料報網路

路由器根據分組的目的地址轉發分組,每個分組獨立選路。

最長字首匹配優先:在檢索轉發表時,如果匹配成功兩條以上或者多條入口的時候,優先選擇與分組目的地址匹配字首最長的入口(entry)。

資料報網路VS虛電路網路

資料報網路以Internet網路為例 VC網路以ATM為例
計算機之間的資料交換:“彈性”服務,沒有嚴格時間需求 電話網路演化而來
鏈路型別眾多:特點、效能各異;統一服務困難;效率低 核心業務是實時對話:嚴格的時間、可靠性需求;需要有保障的服務
智慧”端系統(計算機):可以自適應、效能控制、差錯恢復 “啞(dumb)”端系統(非智慧):電話機、傳真機
簡化網路,複雜“邊緣” 簡化邊緣,複雜“網路

Internet網路層概述

{

{ R I P O S P F B G P I P 使 I C M P 網路層\begin{cases} 路由協議:路由選擇,路由計算的資訊儲存在路由表\begin{cases} RIP \\OSPF \\BGP \end{cases} \\IP協議:使用路由表資訊定址規約;資料包格式;分組處理規約 \\ICMP協議:差錯報告;路由器信令 \end{cases}

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的倍數,因此,一個最大分片可封裝的資料為
d = M 20 8 8 d=\lfloor\frac{M-20}{8}\rfloor*8
需要的總片數為
n = L 20 d n=\lceil\frac{L-20}{d}\rceil
每片的片偏移欄位取值為:
F i = d 8 ( i 1 ) , 1 i n Fi=\frac{d}{8}*(i-1),1\leqslant i \leqslant n
每片的總長度欄位為:
L i { d + 20 , 1 i n L ( n 1 ) d , i = n Li\begin{cases} d+20,&1\leqslant i \leqslant n \\L-(n-1)d,&i=n \end{cases}
每片的MF標誌位為:
M F i { 1 , 1 i < n 0 , i = n MFi\begin{cases} 1,&1\leqslant i < n \\0,&i=n \end{cases}
例:
在這裡插入圖片描述

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組)
      回聲請求與應答報文
      時間戳請求與應答報文
  • 幾種不傳送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)
\color{blue}{聚合要求:地址連續;下一跳介面相同}
在這裡插入圖片描述

路由演算法

鏈路狀態路由演算法

  • 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: 策略主導