計網複習筆記【附思維導圖】——【4】網路層

VoidTaoist發表於2020-11-27


計網 網路層

  網路層位於運輸層和鏈路層之間。
計網-網路層


資料平面和控制平面

  網路層分為控制平面資料平面


資料平面:轉發

  資料平面:轉發,即每臺路由器的功能,決定到達路由器輸入鏈路之一的資料包如何轉發到該路由器的輸出鏈路之一。
  資料平面介紹內容包括下面幾節:

4.1 網路層概述
4.2 虛電路和資料包網路
4.3 路由器工作原理
4.4 網際協議


控制平面:路由

  控制平面:路由選擇,主要作用是協調每臺路由器的轉發動作。當分組從傳送方流向接收方時,網路層必須決定這些分組所採用的路由或路徑。
  控制平面介紹內容包括下面幾節:

4.5 路由選擇演算法
4.6 因特網中的選路
4.7 廣播和多播選路


4.1 網路層概述

  網路層工作在網路邊緣的每一臺主機和伺服器,以及中間的每一個路由器。

網路層

  • 功能:提供主機到主機的通訊功能,即將分組從一臺主機傳送到另一臺主機。
  • 傳送方:將報文段封裝成資料包,向相鄰路由器傳送。
  • 接收方:接收來自路由器的資料包,解封裝取出報文段交給運輸層。
  • 網路層資料單元為資料包,資料包頭部包括IP地址。

網路層兩大功能

  • 資料平面:轉發
    • 分組從一條入鏈路到一臺路由器,路由器決定哪條出鏈路的傳送過程。
    • 路由器根據轉發表將分組從輸入鏈路移動到適當的輸出鏈路,通常由硬體實現,屬於路由器本地動作
    • 類比:開車經過單個立交橋選擇合適出口。
  • 控制平面:路由
    • 一個網路中的所有路由器經路由選擇演算法共同互動,決定分組從源到目的節點所採取的路徑。
    • 分組從源到目的端所採用的路徑,通常由軟體實現,屬於端到端路徑的網路範圍內的一個過程。
    • 類比:開車,出發點到目的地所有路徑中選擇一條,但是每條路徑都由一系列立交橋連線的路段組成。

網路服務模型

  • 定義:網路的傳送端系統與接收端系統之間分組的端到端傳輸特性。
  • 網路層提供的特定服務
    • 資料包服務
      • 1.確保交付:該服務確保分組將最終到達其目的地。
      • 2.具有時延上限的確保交付:確保分組在特定的主機到主機時延上界內交付。
    • 資料包流服務
      • 1.有序分組交付:確保分組按被髮送的順序到達目的地。
      • 2.確保最小頻寬
      • 3.確保最大時延抖動
      • 4.安全性服務
  • 因特網的網路層提供了盡力而為服務(儘量傳,但是丟了不管)
    • 分組間的時間間隔是得不到保證的,分組接收的順序也不能保證,傳送的分組也不能保證不會丟失。

4.2 虛電路和資料包網路

  網路層提供的服務包括面向連線的虛電路網路無連線的資料包網路,因特網採用的是資料包網路。

虛電路網路和資料包網路的由來

  • 虛電路的概念來源於電話領域,它採用了真正的電路,使用VC 號轉發分組。
    • "dumb"端系統
  • 因特網作為一種資料包網路,是由互連計算機的需求發展而來的,使用IP 地址轉發分組。
    • "smart"端系統

面向連線的服務

  • 傳輸層:面向連線服務是在位於網路邊緣的端系統中實現的。傳輸層的連線服務是面向應用程式的。
  • 網路層:連線服務除了在端系統中實現外,也在位於網路核心的路由器中實現。網路層連線服務面向主機,從連線開始,主機到主機,包括中間路由器。

無連線服務

  • 資料包網路特徵:網路層主機之間的無連線服務。

網路體系結構

  • 1.因特網
    • 無連線的資料包網路
    • 盡力而為服務
  • 2.ATM
    • 面向連線的虛電路網路
    • 超越因特網的多重服務模型
    • 概念:可以在同一網路中為不同的連線提供不同類別的服務。
    • 例項:ATM服務模型
      • 1.恆定位元率(CBR)ATM網路服務
      • 2.可用位元率(ABR)ATM網路服務
  • 3.幀中繼:面向連線的虛電路網路。

網路層服務

面向連線:虛電路(VC)網路

  • 包括ATM、幀中繼網路體系結構,提供可預見服務。
  • 特徵:沿兩個端系統之間路徑上的路由器都要參與虛電路的建立,且每臺路由器都完全知道經過它的所有虛電路。
  • 虛電路組成
    • 1.源和目的主機之間的路徑(即一系列鏈路和路由器)。
    • 2.VC 號,沿著該路徑的每段鏈路一個VC號。
    • 3.沿著該路徑的每臺路由器中的轉發表表項,每個VC路由都維護連線狀態資訊。
  • VC 號的轉換:轉發表
    • 每個資料包攜帶VC號(不是目的主機地址)
    • 一個分組沿著其路由在每條鏈路上不能保持相同的VC 號
    • 逐鏈路代替該號碼減少了分組首部中VC 欄位的長度。
    • 通過允許沿著該虛電路路徑每條鏈路有一個不同的VC 號,大大簡化了虛電路的建立。

虛電路網路 3 個明顯不同的階段

  • 1.虛電路建立
    • 1)虛電路的所有分組要通過的一系列鏈路與路由器;
    • 2)網路層為沿著該路徑的每條鏈路確定一個VC 號;
    • 3)網路層在沿著路徑的每臺路由器的轉發表中增加一表項;
    • 4)網路層還可以預留虛電路路徑上的資源(如頻寬)。
  • 2.資料傳送:一旦建立了虛電路,分組就可以開始沿該虛電路流動了。
  • 3.虛電路拆除
    • 當傳送方(或接收方)通知網路層它想終止該虛電路時,就啟動這個過程。
    • 通知另一端結束通話,刪除前向轉發表的表項。

信令報文與信令協議

  • 信令報文:端系統向網路傳送指示虛電路啟動與終止的報文,以及路由器之間傳遞的用於建立虛電路(即修改路由器表中的連線狀態)的報文。
  • 信令協議:用來交換這些報文的協議。

無連線:資料包網路

  • 轉發表使用最長字首匹配,轉發表不斷變化,轉發路徑也會變化。
  • 過程
    • 分組從源向目的地傳輸通過一系列路由器。路由器中的每個都使用該分組的目的地址來轉發該分組;
    • 路由器有一個將目的地址對映到鏈路介面的轉發表,當分組到達路由器時,該路由器使用該分組的目的地址在該轉發表中查詢適當的輸出鏈路介面。然後,路由器有意識地將該分組向該輸出鏈路介面轉發;
    • 每當一個端系統要傳送分組時,它就為該分組加上目的地端系統的地址,然後將該分組推進網路中;
    • 由於轉發表使用地址塊索引輸出鏈路,因此一個目的地址可能匹配多項。當有多個匹配時,該路由器使用最長字首匹配規則。即在該表中尋找最長的匹配項,並向與最長字首匹配的鏈路介面轉發該分組。

虛電路網路VS資料包網路

對比的方面虛電路服務資料包服務
思路可靠通訊應該由網路來保證可靠通訊應該由使用者主機來保證
連線建立必須建立連線不需要建立連線
終點地址僅在連線建立階段使用,每個分組使用短的虛電路號每個分組都有終點的完整地址
分組的轉發屬於同一條虛電路的分組均按照同一路由進行轉發每個分組獨立選擇路由進行轉發
當結點出現故障時所有通過出故障的結點的虛電路均不能工作出故障的結點可能會丟失分組,一些路由可能會發生變化
分組的順序總是按傳送順序到達終點到達終點時不一定按傳送順序
端到端的差錯處理和流量控制可以由網路負責,也可以由使用者主機負責由使用者主機負責

4.3 路由器工作原理

  • 路由器體系結構
    路由器體系結構
      通用路由器體系結構包括輸入埠、交換結構、輸出埠、選路處理器。下面詳細介紹這四個部分。

路由器4 個組成部分

路由器:輸入埠

  • 路由器輸入埠功能
    • 1.將一條輸入的物理鏈路端接到路由器的物理層。
    • 2.實現與位於入鏈路另一端介面互動的資料鏈路層功能。
    • 3.完成轉發表查詢與轉發功能,以便轉發到路由器交換結構部分的分組能出現在適當的輸出埠。
    • 4.控制分組從輸入埠轉發到選路處理器。
  • 排隊:輸入埠排隊主要原因是交換結構不能及時轉發資料包
  • 分組丟失
    • 如果在輸入埠因為交換結構速率慢而引起佇列長度的加大,最終將路由器的快取空間耗盡,就會出現“分組丟失”。
    • 解決方法:如果交換結構速率大於線路速率的 n 倍(n 是輸入埠的數量)就可以消除分組丟失的問題。

路由器:交換結構

  • 功能
    • 將路由器的輸入埠連線到它的輸出埠。
    • 交換結構完全包含在路由器中。
  • 三種交換結構
1.經記憶體交換

記憶體交換結構

  • 交換在CPU(選路處理器)的直接控制下完成的。
  • 交換過程
    • 分組到達輸入埠,該埠通過中斷處理器發出訊號,將分組從輸入埠拷貝到處理器記憶體中。
    • 路由選擇器從分組首部取出目的地址,在轉發表中找出適當的輸出埠,將該分組拷貝到輸出埠快取中。
  • 交換速度:交換速度受到記憶體頻寬的限制:每個分組跨越兩次匯流排。
  • 吞吐量:若記憶體頻寬為每秒可寫進或讀出最多B個分組,則轉發吞吐量必然小於B/2。
  • 系統匯流排共享:不能同時轉發兩個分組,即使它們有不同的目的埠。
  • 改進:目的地址的查詢和將分組儲存(交換)進適當的儲存位置是由輸入線路卡上的處理器來執行的。
2. 經匯流排交換

經匯流排交換結構

  • 輸入埠經一共享匯流排將分組直接傳送到輸出埠,不需要選路處理器的干預。
  • 路由器的交換頻寬受匯流排速率的限制
  • 共享匯流排:一次只能有一個分組通過匯流排傳送。
  • 排隊:某個分組到達一個輸入埠時,如果發現匯流排正忙於傳送另一個分組,則會被阻塞,在輸入埠排隊。
  • 速度:交換頻寬受匯流排速率的限制。
3. 縱橫式網際網路絡交換

路由器-縱橫式網路互聯交換結構

  • 克服單一、共享式匯流排頻寬限制的一種方法是,使用一個更復雜的網際網路絡。
  • 縱橫式交換機:2n條匯流排
  • 交換過程
    • 到達輸入埠的分組沿水平匯流排穿行,直到與所希望的輸出埠的垂直匯流排交叉點:
      • 若該條垂直匯流排空閒,則分組被傳送到輸出埠。
      • 否則將被阻塞,必須在輸入埠排隊。
  • 優點:可以同時轉發多個分組,因為輸出埠不同。
  • 改進:將分組分割成固定長度的單元,通過N個交換結構並行傳送。

路由器:輸出埠

  • 功能
    • 1.儲存經過交換結構轉發給它的分組,並將這些分組傳輸到輸出鏈路。
    • 2.當一條鏈路是雙向(承載兩個方向的流量)鏈路時,與鏈路相連的輸出埠通常與輸入埠在同一線路卡上成對出。
  • 快取:排隊和丟包。

路由器:選路處理器

  • 執行選路協議,維護選路資訊與轉發表,並執行路由器中的網路管理功能。

分組排程

  • 考慮如何選擇下一個要傳送到鏈路上的分組。

  • 1.先進先出FIFO

  • 2.丟棄策略:當佇列滿的時候又來了一個分組。

    • 1)隊尾丟棄:丟棄到達的分組
    • 2)優先權:根據分組的優先權進行丟棄
    • 3)隨機:隨機丟棄分組
  • 3.輪詢

    • 分組被分為多個類別,每個類別一個佇列。
    • 輪詢每個佇列,若該佇列沒有分組則檢查下一個佇列。
    • 保持工作排隊規則:當有分組排隊等待傳輸時,不允許線路保持空閒。
  • 4.加權平均排隊WFQ

    • 每個類別在每個週期中獲得加權的服務數量:每個類別分配一個權重(和分組到達數量成正比)。

4.4 網際協議:轉發與編址

概述

  • 子網的概念

    • 同一個子網內的主機可以直接通訊,不同子網的主機通訊需要通過路由器轉發。
  • 概念對比

    • 子網:是一個大網路的一部分,一個子網內不包含路由器,它的邊界由路由器和主機埠決定。
    • 字首:是一個CDIR化地址的網路部分,地址寫成a.b.c.d/x的形式,一個字首覆蓋一個或多個(2^(32-x))子網。
    • BGP路由:當一個路由器通過BGP會話通告一個字首時,它隨著字首包括一些BGP屬性。用BGP的術語來說,帶有屬性的字首被稱為一個BGP路由。
  • 兩個版本的IP協議:IPv4,IPv6

  • 因特網的網路層有三個主要的部分

    • IP 部分
    • 選路部分
      • 決定資料包從源到目的地所流經的路徑。
      • 選路協議計算在網路中用於轉發分組的轉發表。
    • ICMP:報告資料包中的差錯和對某些網路層資訊請求進行響應。

IPV4資料包格式

  • 大多數IP 資料包不包含可選項,所以一般的IP 資料包都有20 位元組的首部。

  • 若該資料包承載一個TCP報文段,則每個資料包共承載40位元組首部(20位元組IP首部加上20位元組TCP首部)以及應用層報文。

  • IPV4資料包格式:
    IPv4資料包格式

  • 1.版本號4bits

    • 這4 位元規定了資料包的IP 協議版本。
    • 通過檢視版本號,路由器可確定如何解釋資料包的剩餘部分。
  • 2.首部長度4bits

    • 用這4 位元來確定IP 資料包中的資料部分實際從哪裡開始。
  • 3.服務型別8bits

    • 區分不同型別的資料包。
    • 例如,實時資料包與非實時資料包之間的區分。
  • 4.資料包長度16bits

    • IP 資料包的總長度(首部加上資料),以位元組計。
    • 16 位元,資料包長度一般都是1500 位元組(乙太網幀可承載不超過1500 位元組的資料)。
  • 5.標識ID16bits、標誌Frag4bits、片偏移Offset12bits

    • 與IP 分片有關
  • 6.壽命TTL8bits

    • 每當資料包經過一臺路由器時,壽命(Time-To-Live, TTL)欄位的值減1。若TTL 欄位減為0,則該資料包必須丟棄。
  • 7.協議8bits

    • 欄位值指明瞭IP 資料包的資料部分應交給哪個傳輸層協議。
    • 值為6 表明資料部分要交給TCP,而值為17 表明資料要交給UDP。
    • 資料包中的協議號所起的作用類似於傳輸層報文段中埠號欄位所起的作用。
  • 8.首部校驗和16bits

    • 幫助路由器檢測收到的IP 資料包中的位元錯誤。
    • 在IP 層只對IP 首部進行了檢驗,而TCP 校驗和是對整個報文段進行的。
  • 9.源 IP 地址32bits

  • 10.目的IP地址32bits

  • 11.選項32bits

    • 選項欄位允許IP 首部被擴充套件。
  • 12.資料(有效載荷)


IPV4資料包分片和重組

  • 一個鏈路層幀能承載的最大資料量叫做最大傳輸單元MTU。
  • 分片
    • 對過大的IP資料包進行分片。
    • 一個具有長度較大的資料包流經具有較小MTU 的鏈路時需要分片。
  • 分片重組
    • 根據IP首部中的標識、標誌和片偏移用來進行重組。
    • 在目的端系統中重組。
  • 分片開銷
    • 使路由器和端系統更為複雜。
    • 分片可能引發致命的DoS 攻擊,例如Jolt 攻擊。

IPv4編址

  • IPV4編址三個階段
    • 1.分類的IP地址
    • 2.子網的劃分
    • 3.構成超網(無類別域間路由選擇CIDR)

介面

  • 介面定義
    • 主機與物理鏈路之間的邊界。
    • 路由器與它的任意一條鏈路之間的邊界。
  • 介面數目
    • 主機一般含有1-2個介面,路由器有多個介面。
    • IP地址與介面相關聯,一臺主機擁有多個介面。
    • 因為路由器的任務是在不同的網路間轉發資料包,所以一臺路由器有多個介面,每個介面有一條鏈路。
  • 介面功能:從鏈路上接收資料並將資料包從其他鏈路轉發出去。
  • 一個IP 地址在技術上是與一個介面相關聯的。
    • 每個IP 地址長度為32 位元(等於4 位元組)。
    • IP地址(32位元)與介面相關聯,用於唯一標識一個介面。
    • IP地址一般採用點分十進位制記法。
    • 在因特網中,每臺主機和路由器上的每個介面都必須有一個全球唯一的IP 地址。
    • 一個介面的IP 地址由其連線的子網來決定。
    • 一個子網的IP 定義並不侷限於連線多臺主機到一臺路由器介面的乙太網段。路由器埠之間的點對點鏈路也可以構成子網。

早期IP編址:分類IP編址

  • 分類IP編址結構

    • IP地址兩級結構:{ <網路號>, <主機號>}
      • 網路號:一幢樓的具體地址
      • 主機號:樓裡面的具體房間
  • 分類IP編址方法

    • 劃分成5個固定類別,每一類地址網路號(net-id)和主機號(host-id)欄位長度固定。
      • 1.A 類地址的網路號欄位 net-id 為 1 位元組,host-id為3位元組
      • 2.B 類地址的網路號欄位 net-id 為 2位元組,host-id為2位元組
      • 3.C 類地址的網路號欄位 net-id 為 3 位元組,host-id為1位元組
  • 早期IP編址分類
    早期分類IP編址

  • 特殊的IP地址

網路號主機號源地址使用目的地址使用代表的含義
00可以不可在本網路上的本主機(DHCP協議)
net-id全0不可不可代表本網路
全1全1不可可以只在本網路上進行廣播,各路由器均不轉發
net-id全1不可可以對net-id上的所有主機進行廣播
127非全0或全1的任何數可以可以用於本地軟體環回測試
  • IP地址的指派範圍
網路類別地址範圍最大可指派的網路數目第一個可指派的網路號最後一個可指派的網路號每個網路中最大主機數目
A0.0.0.0-127.255.255.255126(27-1)112616,777,214(224-2)
B128.0.0.0-191.255.255.25516,383(214-1)128.1191.25565,534(216-1)
C192.0.0.0-223.255.2552,097,151(221-1)192.0.1223.255.255254(28-1)
  • 分類IP 編址好處
    • 1.IP 地址管理機構在分配 IP 地址時只分配網路號,而剩下的主機號則由得到該網路號的單位自行分配,這樣就方便IP 地址的管理。
    • 2.具有相同網路號的主機集合構成了一個網路。路由器僅根據目的主機所連線的網路號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的專案數大幅度減少,從而減小了路由表所佔的儲存空間。
  • 分類IP 編址問題:
    • 1.因為地址塊長度固定,大部分可用的地址都被浪費了。
    • 2.兩級地址不夠靈活。

改進IP編址方法:子網劃分

  • 子網
    • 擁有相同網路字首的裝置組成了一個子網。
    • 同一個子網內的裝置物理上直接相連(通過交換機或者點對點鏈路),而不需要通過路由器連線。
  • 子網劃分
    • 為了確定子網,分開主機和路由器的每個介面,從而產生幾個隔離的網路,其中每一個網路都是一個子網。
  • 結構:IP地址={<網路號>,<子網號>,<主機號>}
  • 特徵
    • 子網劃分,將主機號的一部分作為子網號。
    • 子網掩碼
      • 1.用子網掩碼標識子網:類似IP地址,但Net-id和子網號用1表示,Host-id用0表示。
      • 2.掩碼地址 “邏輯與” IP地址=對應子網的實際網路地址。
  • 優點:子網劃分節省了IP地址,並增加了一定的靈活性。
  • 缺點:在聚合時仍然不夠靈活,比如一個單位分配到一段地址是好幾個 C 類,那麼就需要好幾條路由。

目前的IP編址方法:無類別域間路由選擇CIDR

  • CIDR結構:IP地址 = {<網路字首,主機部分>}

    • 網路字首的長度可變
  • 斜線標記法

    • /+網路字首的位數(即子網掩碼中1的個數)
    • 如:128.14.35.7/20
    • 網路字首相同的連續IP地址組成一個CIDR地址塊,可以用主機號全為0的地址來指明一個地址塊:如128.14.32.0/20
  • 無類別域間選路CIDR地址分配策略

    • 子網定址a.b.c.d/x
      • x 指示了在地址的第一部分中的位元數,地址的高位x 位元構成了IP 地址的網路部分。被稱為該地址的字首(網路字首)。
      • 一個地址的剩餘32-x 位元可認為是用於區分單位(子網)內部主機的,這個子網所有裝置具有相同的網路字首。
  • 廣播地址255.255.255.255

    • 當一臺主機發出一個目的地址為255.255.255.255 的資料包時,該報文會被交付給同一個子網中的所有主機。
  • 用CIDR構建超網:例如一個地址塊可以包含多個C類網路。


獲取主機地址:動態主機配置協議DHCP

  • DHCP 協議

    • 一個客戶機/伺服器協議,C/S架構。
    • 即插即用,零配置。
    • 功能:DHCP 使主機可以自動獲取IP 地址。DHCP 還允許一臺主機獲取其他資訊(域名伺服器、閘道器、網路掩碼、TTL持續時間等)。
    • 獲取一塊地址
      • 網路管理員首先與ISP 聯絡,ISP 會從他擁有的地址塊中取出一些地址給客戶。
      • 一個單位一旦獲得了一塊地址,它就可為該單位內的主機與路由器介面分配獨立的IP地址。ICANN 負責全球範圍內的IP 地址分配。
    • IP地址分配
      • 1.路由器介面地址通常是由系統管理員手工配置的IP。
      • 2.對於主機,常使用動態主機配協議DHCP來完成IP 地址的分配。
        • 1)主機在加入網路後從網路伺服器動態獲取其IP地址。
        • 2)主機獲得其他資訊:子網掩碼、預設閘道器、本地DNS伺服器。
        • 3)即插即用:零配置。
  • DHCP工作原理:4個步驟

    • 1.DHCP 伺服器發現
      • DHCP客戶機在UDP 分組中向埠67 傳送DHCP 發現訊息。使用廣播目的地址255.255.255.255並且使用“本主機”源地址0.0.0.0
      • DHCP客戶機將該IP資料包傳遞給鏈路層,鏈路層將該幀廣播到所有與該子網連線的子網。
    • 2.DHCP 伺服器提供
      • DHCP 伺服器收到一個DHCP 發現訊息時,用一個DHCP 提供訊息對客戶機做出響應,仍然使用IP 廣播地址255.255.255.255。
    • 3.DHCP 請求
      • 新到達的客戶機從一個或多個伺服器中選擇一個,並用一個DHCP 請求訊息對選中的伺服器進行響應,回顯配置引數。
    • 4.DHCP 確認
      • 伺服器用這個訊息對DHCP 請求訊息進行響應,確認所要求的引數。
      • 一旦客戶機收到DHCP ACK 後,互動便完成了,該客戶機就能夠在租用期內使用DHCP分配給它的IP 地址。
  • 在命令列視窗Commond輸入:IPconfig,檢視主機DHCP配置。


網路地址轉換NAT技術

  • 專用網路

    • 內網IP地址:在IP 地址的A-B-C 三種主要型別裡各保留了三個區域作為私有地址。10.0.0.0/8,172.16.0.0/12,192.168.1.0/16。
    • 私有地址永遠不會被當作公有地址來分配。
    • 路由器位於內網與外網之間。
    • 外部網路中的路由器也無法處理以私有地址為目的地的資料包。
  • NAT功能

    • 用於專用地址與外部全球地址進行通訊。
    • 完成內網IP與外網IP地址間的轉換。
  • NAT實現原理

    • 1.對於每個外出的資料包
      • 把源IP地址修改為NAT的IP地址
      • 把源埠號修改為一個新的埠號,新埠號通常大於5000。
      • 外部伺服器以這個路由器再與它互動。
    • 2.將修改記錄到NAT轉換表
      • NAT 路由器使用了一張NAT 轉換表,並且在表項中包含了埠號和IP 地址,將私有地址轉換為公有地址,這個過程中利用埠號作為轉換的索引。
      • 記錄外網IP地址對應的內網源IP地址。
      • 記錄新的埠號對應的舊的埠號。
      • 如NAT轉換表項{<138.76.29.7,5001>,<10.0.0.1,3345>}
        對應{<外網IP,新埠號>,<內網IP,源埠號>}。
    • 3.對於每個進來的資料包
      • 查表,把源IP地址修改回原來的IP地址。
      • 查表,把新埠號替換為舊的埠號。
  • NAT協議優點

    • ISP只需要一個地址。
    • 可以更換ISP而不更換內部裝置的IP地址。
    • 可以在機構內部更改IP地址。
    • NAT 使能路由器對外界隱藏了家庭網路的細節。
  • NAT總結

    • 只需要一個外網IP地址,通過NAT網路地址轉換,得到內網地址,查錶轉發到相應內網。
  • NAT的穿越問題解決方案

    • 1.手工配置埠對映
    • 2.即插即用UPnP 協議:允許主機發現並配置鄰近NAT 的協議。大部分家用路由都支援UPnP 協議。
    • 3.中繼

ICMP:網際網路控制報文協議

  • ICMP協議作用
    • ICMP 用於主機和路由器彼此互動網路層資訊。
    • ICMP 最典型的用途是差錯報告,包括報告不可達主機,網路,埠,協議。
    • ICMP還可用於回顯請求/回答(ping),ping主要的功能是用來檢測網路的連通情況和分析網路速度。
    • ICMP可用於源抑制報文,執行擁塞控制。
  • ICMP報文格式
    ICMP報文格式
    • ICMP 報文包含引起該ICMP 報文首次生成的IP資料包的首部和前8 位元組內容。
    • ICMP 報文的前 4 個位元組是統一的格式,共有三個欄位:即型別、程式碼和檢驗和,接著的 4 個位元組的內容與 ICMP 的型別有關。
  • ICMP響應與錯誤資訊
型別 type程式碼 code含義
00echo回答(ping)
30目的網路不可達
31目的主機不可達
32目的協議不可達
33目的埠不可達
36目的網路未知
37目的主機未知
40源抑制
80echo請求(ping)
90路由通告
100路由發現
110TTL過期
120IP首部錯誤
  • ICMP報文位置

    • ICMP報文承載在IP資料包。
    • ICMP 通常被認為是IP 的一部分,但從體系結構上講它是位於IP 之上,因為ICMP 報文是承載在IP 分組中的;ICMP不是高層協議。
  • Traceroute跟蹤路由

    • 用途:用來跟蹤一個分組從源點到終點的路徑。
    • 實現原理
      • 1.利用 ICMP報文中的IP 資料包中的 TTL 欄位和 ICMP TTL過期差錯報告報文實現對從源點到終點的路徑的跟蹤。
      • 2.源點向終點傳送一系列的UDP報文段:TTL=1,TTL=2……,且具有不可達的埠號;當第n個資料包到底第n臺路由器時,由於TTL值為0,路由器會丟棄這個資料包併傳送一個ICMP TTL過期差錯報告報文給源點,這個報文包含了路由器的名字和IP地址,當源點收到後可計算RTT。
      • 3.源點何時停止傳送探測分組:收到終點返回的“目的埠不可達Type=3,Code=3”的ICMP差錯報告。

IPv6

  • IPV6產生動機

    • 1.32 位元的IP 地址空間即將用盡。
    • 2.簡化首部,不分片,進一步加快處理/轉發速度。
    • 3.使用流標籤,促進QoS。
  • IPV6資料包格式
    IPv6資料包格式

    • 1.版本號4bits
      • 這4 位元欄位用於標識IP 版本號。
      • IPv6 將該欄位值設為6。
    • 2.流量型別8bits
    • 3.流標籤20bits:該20 位元欄位用於標識一個資料包的流。
    • 4.有效載荷長度8bits:給出了IPv6 資料包中跟在定長的40 位元組資料包首部後面的位元組數量。
    • 5.下一個首部8bits
      • 標識該資料包中的內容(資料欄位)需要交付給哪個協議。
      • 該欄位使用與IPv4 首部中協議欄位相同的值。
    • 6.跳限制8bits:轉發資料包的每臺路由器將對該欄位內容減1。如果跳限制計數到達0,則該資料包將被丟棄。
    • 7.源IP地址128bits
    • 8.目的IP地址128bits
    • 9.資料
    • IPv6相比於IPV4廢棄的欄位
      • 分片相關欄位:IPv6 不允許在中間路由器上進行分片與重新組裝。
      • 首部校驗和
      • 選項欄位
  • IPV6與IPCV4的區別

    • 1.擴大地址容量:128位元
      • IPv6 將IP 地址長度從32 位元增加到128 位元。
      • 任播地址:使用這種地址,理論上一個資料包能交付給一組主機中的任意一個。
    • 2.簡化首部:固定40位元組,IPV4首部為20位元組。
    • 3.取消分片。
    • 4.取消首部校驗和欄位。
    • 5.流標籤來保證QoS:但確切含義還未完全確定。
  • 從IPv4 向IPv6 遷移

    • 1.雙棧技術,即讓IPv4 節點也具有完整的IPv6 實現。
    • 2.另一種雙棧方法,叫做隧道
      • 假定兩個節點要使用IPv6 資料包進行互動,但它們是經由中間IPv4 路由器而互連的。那麼將兩臺路由器之間IPv4 路由器的集合稱為一個隧道。IPv6 資料通過這個隧道時封裝在IPv4 資料包中傳輸。
      • IPv4路由器之間進行資料傳輸時,將IPv6資料包作為有效載荷封裝到IPv4資料包中。

4.5 路由選擇演算法

路由選擇演算法目的

  • 從傳送方到接收方的過程中確定一條通過路由器網路的好的路徑:低成本、速度快、擁塞最少……

路由演算法分類

  • 【1】集中式 or 分散式

    • 集中式
      • 基於完整的、全域性性的網路資訊(拓撲、開銷)
      • 如何獲得全域性資訊:每個節點向網路中所有節點廣播鏈路狀態分組(由鏈路狀態廣播演算法實現)。
      • 鏈路狀態(LS) 演算法是集中式路由演算法。
    • 分散式
      • 節點僅知道與其直接相連鏈路的開銷,通過與相鄰節點交換資訊,以迭代的、分散式的方式進行計算。
      • 距離向量(DV)演算法屬於分散式路由演算法。
  • 【2】動態 or 靜態

    • 動態
      • 動態演算法會隨著網路流量負載或拓撲變化而改變路由選擇路徑(週期性執行或響應網路變化)。
      • 週期性更新
      • 問題:路由震盪
    • 靜態: 路由變化緩慢。
  • 【3】負載敏感 or 負載遲鈍

    • 鏈路開銷是否明確反映當前擁塞水平(目前主流的路由演算法都屬於負載遲鈍)。

全域性選路演算法-鏈路狀態(LS) 演算法-Dijkstra演算法

  • 鏈路狀態演算法中代表性為Dijkstra演算法
  • 特徵:計算從源節點到網路中所有其他節點的最低開銷路徑,經過k次迭代後,可知道到k個目的節點的最低開銷(貪心)。
  • 定義變數
    • D(v):到演算法的本次迭代,從源節點到目的節點v的最低開銷路徑的開銷,D(v) = min( D(v), D(w) + c(w,v) )。
    • p(v): 從源節點到v 沿著當前最低費用路徑的前一節點。
    • N’:節點子集;如果從源節點到v 的最低開銷路徑已找到,那麼v 在N’中。
  • Dijkstra演算法複雜度:每次迭代需要檢查所有沒有在N中的結點,n(n+1)/2次比較:O(n^2),改進的演算法可達到O(nlogn)。
  • Dijkstra演算法存在的問題:當鏈路開銷等於鏈路負載時,可能會造成路由震盪,即流量一會兒走左邊路由,一會兒走右邊路由,無法確定流量方向。

分散式選路演算法-距離向量(DV)演算法

  • DV演算法特徵

    • 1.分散式:節點從一個或多個直接相連的鄰居處接收資訊進行計算,然後將計算結果分發給鄰居。
    • 2.迭代:持續到鄰居之間無更多的資訊要交換為止。
    • 3.非同步:不要求所有節點相互之間步伐一致地操作。
    • 4.動態規劃
      • dx(y) = minv {c(x,v) + dv(y) }
      • dx(y):=從x到y的最小開銷路徑的開銷
      • min取自x的所有相鄰節點v
  • DV演算法目的:每個節點通過相鄰的鄰居節點,瞭解到從v節點到z節點的最小開銷;而不是經過所有節點的最小開銷。

  • DV演算法基本思想

    • 1.節點x維護一個距離向量Dx= [Dx(y) : y є N ],表示x到N中任意節點y的開銷估計向量;每個節點不時地向鄰居傳送它的距離向量拷貝。
    • 2.其到任意鄰居v的開銷為c(x,v)。
    • 3.當x發現它 的直接相連的鏈路開銷發生變化,或從某個鄰居接收到一個距離向量的更新時,就會利用Bellman-Ford 方程更新自己的距離向量。
    • 4.如果Dx變化,則向鄰居傳送更新後的距離向量。
  • DV演算法示例
    DV求解示例

    • 求解:
      顯然,dw(z)=3,dv(z)=5,dx(z)=3,則 du(z)=min{c(u,w)+dw(z),c(u,v)+dv(z),c(u,x)+dx(z)}=min{5+3,2+5,1+3}=4
      路徑為:u,x,y,z
  • DV演算法鏈路開銷變化

    • 節點檢測到本地鏈路費用發生了變化。
    • 更新路由資訊,重新計算DV。
    • 如果DV發生變化,則向鄰居節點通知最新DV。
  • DV演算法特徵

    • 好訊息傳得快。
    • 壞訊息傳的慢。
    • 無窮計數問題,y與z出現路由選擇環路,比如:
      DV毒性逆轉
    • 解決方案:毒性逆轉
      • 如果z通過y路由到達x,則z告訴y它到x的距離是無窮大。
      • 上述例子中,因為Dz(x)為無窮大,y更新其DV時Dy(x)的值變為60,並將其傳送給z;
      • z收到後會更新Dz(x)為50,因為此時它不再通過y到達x,則它會告知y新的Dz(x)為50, y會相應地將Dy(x)更新為51,然後會告知z其Dy(x)為無窮大。

鏈路狀態演算法LS與距離向量演算法DV比較

  • 1.解決思路
    • LS演算法,每個節點與所有其他節點交換資訊,但它僅告訴它們與它直接相連鏈路的開銷。
    • DV演算法,每個節點僅與它的直接相連鄰居交換訊息,但它為鄰居提供了從自己到網路中(它所知道的)所有其他節點的最低開銷估計。
  • 2.訊息複雜度
    • LS演算法,傳送O(nE)條訊息。
    • DV演算法,在每次迭代時,在兩個直接相連鄰居之間交換報文,演算法收斂所需的時間依賴於許多因素。 當鏈路開銷改變時,DV 演算法僅當在會導致該節點的最低開銷路徑發生改變時,才傳播已改變的鏈路開銷。
  • 3.收斂速度
    • LS演算法,傳送O(nE)條訊息。
    • DV 演算法,收斂較慢,且在收斂時會遇到選路環路。DV演算法還會遭受到計數到無窮的問題。
  • 4.健壯性
    • LS演算法,如果一臺路由器發生故障,路由器廣播不正確的鏈路開銷,但每臺路由器僅計算自己的轉發表。
    • DV演算法下, 每次迭代時,其中一個節點的路徑計算結果會傳遞給它的鄰居,然後在下次迭代時再間接地傳遞給鄰居的鄰居。在這種情況下,DV 演算法中一個不正確的計算結果會擴散到整個網路。

4.6 因特網中的選路

  選路協議的任務是確定資料包在源與目的地之間採用的路徑。

自治系統(AS)內部選路協議

  自治系統(AS)內部選路協議也叫做內部閘道器協議IGP,包括了選路資訊協議RIP開放最短路徑優先協議OSPF

1.選路資訊協議RIP

  • 自治系統(AS)
    • 每個AS由一組通常在相同管理控制下的路由器組成,在相同的AS內的路由器都全部執行同樣的選路演算法,且擁有彼此間的資訊。
    • 在一個自治系統內執行的選路演算法叫做自治系統內部選路協議。
    • 在一個AS內的一臺或多臺路由器另外負責向本AS之外的目的地轉發分組,這些路由器被稱為閘道器路由器。
  • 選路資訊協議RIP原理
    • DV演算法
    • 跳數
    • RIP包含在UDP報文裡

2.開放最短路徑優先協議OSPF(Open Shortest Path First)

  OSPF是域內路由協議,OSPF通告包含在OSPF報文中,直接承載在IP資料包中 (不是TCP或UDP);OSPF協議直接承載在IP協議上。

  • OSMP功能:作為AS內部路由選擇協議。

  • OSMP工作原理

    • 1.採用LS演算法,Dijkstra 最小費用路徑演算法。
    • 2.路由器週期性的向AS內所有路由器廣播選路資訊,OSPF協議資訊直接封裝在IP資料包中廣播,協議欄位的值為89。
    • 3.每當一條鏈路狀態發生變化(開銷變化或連線/中斷狀態變化)時,路由器就會廣播鏈路狀態資訊。即使鏈路狀態未發生變化,它也要週期性(至少每隔30分鐘一次)地廣播鏈路狀態。
  • OSPF優點

    • 1.安全:OSPF 路由器之間的交換(如鏈路狀態更新)都是經過鑑別的,可以防止惡意資料的注入。
    • 2.允許多條相同開銷的路徑:當到達某目的地的多條路徑具有相同的開銷時,OSPF 允許使用多條路徑。
    • 3.對單播選路與多播選路的綜合支援。
    • 4.支特在單個AS中的層次結構:AS能夠層次化地配置多個區域,實現分層的OSPF。
  • AS域內路由協議確定了AS內部目的地的轉發。


自治系統(AS)間選路協議:BGP

  自治系統(AS)間選路協議BGP屬於域間路由協議。

  • BGP功能

    • 1.eBGP:從鄰居AS 處獲得子網的可達性資訊(BGP允許每個子網向因特網的其餘部分通告它的存在)。
    • 2.iBGP:向該AS 內部的所有路由器傳播這些可達性資訊。
    • 3.基於可達性資訊和AS策略,決定到達該子網的最佳路由。
    • 4.BGP允許每個子網向因特網的其餘部分通告它的存在。
    • 5.“粘合劑”:將因特網中數以千計的ISP粘合起來。
  • 邊界閘道器協議BGP=eBGP外+iBGP內

  • BGP基礎

    • 1.BGP會話:兩個路由器(BGP對等方)使用179埠的半永久TCP連線來交換選路資訊。
    • 2.閘道器路由器使用eBGP會話(external BGP session,外部BGP會話)瞭解到可達的字首後,會使用iBGP(internal BGP session,內部BGP會話)會話來向該AS中的其他路由器釋出這些字首(可以聚合這些字首);這裡的字首是用CIDR地址表示的字首。
    • 3.BGP是一種距離向量協議:通告到不同目的網路字首的路徑。
  • 路徑屬性和BGP路由

    • 一個自治系統有全域性唯一的自治系統號ASN。

    • AS域間路由和域內路由協議確定了AS外部目的地的轉發。

    • BGP路由=字首+BGP屬性(如AS-PATH和NEXT-HOP),帶有屬性的字首被稱為一條路由。

    • 路徑屬性

      • 1.AS-PATH
        • 包含了字首的通告已經通知過的那些AS的自治系統號。
        • 路由器使用AS-PATH屬性用來檢測和防止迴圈通告。
        • 路由器使用AS-PATH屬性對相同的字首在多條路徑中進行選擇。
      • 2.NEXT-HOP
        • NEXT-HOP是一條給定字首的通告路徑(AS-PATH)上的起始的一個路由器的IP介面。
        • 路由器在配置轉發表時使用NEXT-HOP屬性。
    • BGP是基於策略的路由

      • 閘道器路由器將基於策略接受或拒絕某個路由通告。
      • 策略還決定了是否將某個路徑通告給鄰居AS。
  • BGP路由選擇

    • 轉發表的構建
      • 轉發表條目**<字首,埠>**
      • 1.路由瞭解到字首。
      • 2.路由確定該字首的輸出埠。
    • BGP路由選擇演算法:路由器可能會獲得到目的AS的多條路由,如何確定最好的路由。
    • 順序呼叫消除規則
      • 1.本地偏好:由AS的網路管理員設定一種策略。
      • 2.最短AS-PATH。
      • 3.最靠近的NEXT-HOP路由器的路由:熱土豆路由選擇。
        • 熱土豆路由選擇:用最低開銷將分組送出其AS(2d選擇2a到達X),而不考慮域間的開銷。
      • 4.BGP識別符號。
  • BGP路由選擇策略

    • 定義:任何穿越某ISP 主幹網的流量必須是源或目的地(或兩者)位於該ISP的一個客戶網路中,否則這些流量將會免費搭乘該ISP的網路。
    • 例子
      BGP路由選擇策略
    • X是雙向的:與兩個網路相連。
      • X不希望B通過X路由到C。
    • B知道通過A可以到達W,但B不希望C通過B連線到W;B僅希望為其客戶X進行路由。

區分域內與域間路由的原因

  • 域內路由
    • AS域內路由協議確定了AS內部目的地的轉發。
    • 著眼於效能。
  • 域間路由
    • AS域間路由和域內路由協議確定了AS外部目的地的轉發。
    • 策略更重要:管理員希望控制網路流動路徑,以及哪些流量經過網路。
  • 層次路由減少路由表條目數量,減少路由更新流量。
  • 對外部隱藏AS內部網路細節。

4.7 廣播和多播選路

廣播

  • 在廣播選路中,從一個源節點可以向網路中的所有其他節點交付分組。
  • 實現方式
    • 1.泛洪(flooding)
      • 泛洪要求源節點向它所有鄰居傳送分組的拷貝。
      • 迴圈與廣播風暴。
    • 2.受控泛洪
      • 序號控制泛洪。
      • 反向路徑轉發泛洪(RPF)。
    • 3.生成樹廣播:任何節點都不會收到冗餘的廣播風暴。

多播選路

  • 多播選路使單個源節點能夠向其他網路節點的一個子集傳送分組。
  • 網際網路組管理協議IGMP:執行在一臺主機與其直接相連的路由器之
    間。
  • 多播選路演算法
    • 使用一棵組共享樹進行多播選路。
    • 使用一棵基於源的樹進行多播選路。
  • 距離向量多播選路協議DVMRP。


思維導圖

資料平面

網路層-資料平面


控制平面

網路層-控制平面



參考資料

《計算機網路自頂向下方法》(第4版)James F.Kurose,Keith W.Ross

相關文章