計算機網路 自頂向下 第6章 鏈路層和區域網(上)讀書筆記

Zijian/TENG發表於2022-04-10

最近在二刷《計算機網路——自頂向下》做點筆記,加深印象,書不在手邊時也能有個參考。之前的章節會陸續補充。

兩種鏈路層通道:

  • 廣播通道:如有線區域網、衛星網、混合光纖同軸電纜(HFC)。需要媒體訪問協議來協調幀傳輸。
  • 點對點通訊鏈路:如長距離鏈路連線的兩臺路由器、PC到乙太網交換機。

6.1 鏈路層概述

節點(node):執行鏈路層協議的任何裝置。如主機、路由器、交換機、Wi-Fi接入點

鏈路(link):連線相鄰節點的通訊通道

6.1.1 鏈路層提供的服務

  1. 成幀:封裝成鏈路層幀(如乙太網幀格式)
  2. 鏈路接入:主要用於廣播通道,媒體訪問控制(MAC)協議,用於協調多個節點的幀傳輸
  3. 可靠交付:通常通過確認和重傳實現。對於光線、同軸、雙絞線,很少出現位元差錯,可靠交付會產生不必要的開銷,因此乙太網沒有提供可靠交付
  4. 差錯檢測和糾正:運輸層有因特網校驗和(checksum);鏈路層的差錯檢測更復雜,用硬體實現。乙太網採用CRC,能夠檢測差錯,但是不能糾正(直接丟棄)。

6.1.2 鏈路層在何處實現

鏈路層主體部分在網路介面卡(網路介面卡NIC),其核心是鏈路層控制器

大部分鏈路層服務在硬體(鏈路層控制器)中實現:

  • 成幀:從記憶體中接收IP資料包
  • 鏈路接入
  • 差錯檢測

部分鏈路層在軟體中實現:

  • 組裝定址資訊、啟用控制器硬體
  • 響應控制器中斷、向上傳遞給網路層等

鏈路層是軟硬體結合體, 是協議棧中軟體與硬體交接的地方。

6.2 差錯檢測和糾正技術

通常,要保護網路層資料包以及鏈路層幀首部。即使採用了差錯檢測位元,還是可能有未檢出位元出差。

三種技術:

  • 奇偶校驗
  • 檢驗和(checksum):運輸層
  • 迴圈冗餘檢測(CRC):介面卡鏈路層

6.2.1 奇偶校驗

  • 偶校驗:資料+校驗位元共偶數個1

  • 奇校驗:資料+校驗位元共奇數個1

實際上差錯經常以“突發”的方式聚集在一起,一旦出錯通常會有多個位元一起出錯。單位元奇偶檢驗保護的一幀中未檢出差錯概率達50%。

二維奇偶檢驗

可以檢測並糾正單個位元差錯(包括校驗位元本身)

  • 能夠檢測但不能糾正兩個位元差錯

6.2.2 檢驗和方法

d位元資料,按 k 位元劃分為一個個整數,把這些整數加起來。

因特網檢驗和將資料按16bit整數對待,求和,取反碼(每一位取反)。接收方對接收到的資料(包括檢驗和)求和取反,檢測是否全1。

TCP和UDP對所有欄位包括首部和資料欄位都計算因特網檢驗和。

  • 運輸層軟體實現,簡單快速
  • 鏈路層在介面卡中用專用硬體實現,能快速執行復雜的CRC

6.2.3 迴圈冗餘檢測 CRC

也稱為多項式編碼,將傳送位元串看成是係數是0和1的多項式。每個CRC標準都能檢測

  • 任何小於r+1位元的突發差錯
  • 任何奇數個位元差錯
  • 長度大於 r+1 的位元突發差錯以概率 1-0.5^r 被檢測到

6.3 多路訪問鏈路和協議

點對點鏈路:

  • PPP:Point-to-Point Protocol
  • HDLC:High-level Data Link Control

廣播鏈路:

  • 乙太網
  • 無線區域網

多路訪問通道:

  • 有線共享(如電纜接入網)
  • 無線共享(如Wi-Fi)
  • 衛星

多路訪問協議:規範共享廣播通道上的傳輸行為,協調活躍節點的傳輸

  • 通道劃分協議
  • 隨機接入協議
  • 輪流協議

理想情況下,對於速率為 R bps的廣播通道:

  1. 單節點傳送,具有R bps吞吐量
  2. M個節點傳送,每個節點平均吞吐量 R/M bps
  3. 協議分散,無單點故障
  4. 協議簡單,實現成本低

6.3.1 通道劃分協議

  • 時分多路複用 TDM
  • 頻分多路複用 FDM
  • 分碼多重進接 CDMA(Code Division Multiple Access)

TDM將時間劃分為時間幀,每個時間幀 time frame 分為N個時隙 slot。TDM 消除了碰撞、公平。但單節點只能利用 R/N 頻寬,即使只有一個傳送節點。且節點必須等待輪次。

FDM 優缺點同 TDM:消除碰撞,單節點最大 R/N 頻寬。

CDMA 對每個節點分配不同的編碼,同時傳輸,不在乎其他節點干擾。CDMA編碼類似於 TDM的時隙和FDM的頻率。軍用到民用蜂窩電話。

6.3.2 隨機接入協議

節點總是以全部速率 R 傳送。碰撞時,等待隨機時延,反覆重發,直到無碰撞通過。

乙太網是CSMA協議。

1. 時隙 ALOHA

  • 所有幀長L位元
  • 時隙:傳一幀所用的時間
  • 節點只在時隙起點開始傳輸幀
  • 節點是同步的,每個節點知道時隙何時開始
  • 如果碰撞,所有節點在時隙結束前檢測到碰撞
  • 傳送節點等待時隙開始,傳輸幀
  • 如果沒碰撞,成功傳輸,無需重傳
  • 如果碰撞,以概率p在後續時隙中重傳

最大效率: 一個節點成功傳輸的概率 p*(1-p)^(N-1)

N個節點活躍節點,時隙 ALOHA的效率是 Np*(1-p)^(N-1)

當 N趨向於∞,最大效率 37%。另外37%空閒,另外26%碰撞。

2. ALOHA

非時隙、完全分散。收到網路層資料包,立即傳送,如果碰撞,發完之後立即以概率p重傳。

ALOHA 最大效率是時隙ALOHA的一半。

3. 載波偵聽多路訪問 CSMA

  • 載波偵聽:節點傳送前先聽通道,如果有其他節點正在傳送,則等待一段時間沒有傳輸後再開始傳送。

  • 碰撞檢測:檢測到碰撞,立即停止傳輸。

這兩個規則包含在CSMA和CSMA/CD中。

為什麼有載波偵聽還會碰撞?因為傳播時延。A節點傳送資料,但傳播到B節點需要一段時間,這時B節點也開始傳送。傳播時延越長,碰撞機會越大。

4. 具有碰撞檢測的載波偵聽多路訪問 CSMA/CD

CSMA沒有碰撞檢測,即使碰撞也會繼續傳送完。

CSMA/CD 檢測到碰撞立即停止傳輸。

  1. 介面卡從網路層獲取資料包,準備鏈路層幀,放入幀介面卡快取中
  2. 如果介面卡偵測到通道空閒,開始傳輸;如果通道正忙,等待
  3. 傳輸過程中監聽通道其他介面卡的訊號能量
  4. 如果傳完整幀每檢測到其他介面卡訊號能量,傳輸完成;如果檢測到碰撞,終止傳輸
  5. 終止傳輸後,等待隨機時間量,返回步驟 2

隨機時間量的選取:乙太網和DOCSIS使用二進位制指數後退演算法。一個幀經歷n次碰撞後,隨機從 {0...2^n - 1} 中選擇K。對於乙太網,等待的時間是傳送512位元所需時間的K倍。

5. CSMA/CD 效率

定義:大量活躍節點,大量幀要傳送

傳輸時間指傳是一個最大長度乙太網幀的時間,對於10M乙太網,約為1.2ms。

效率=1/(1+5*傳播時延/傳輸時間)

  • 傳播時延接近0時,效率趨近1
  • 傳輸時間變大時,效率也趨近1(佔用通道時間長)

6.3.3 輪流協議

6.3 節中對於速率為 R bps的廣播通道的理想特性:

  1. 單節點傳送,具有R bps吞吐量
  2. M個節點傳送,每個節點平均吞吐量 R/M bps

隨機接入的 ALOHA 和 CSMA 具備第1個特性,但不具備第2個特性。輪流協議可以滿足第2個特性。

兩種重要的輪流協議:

  • 輪詢協議:有一個主節點,依次告知每個節點能夠傳輸幀的最多數量,通過觀察通道是否空閒判斷節點是否傳送完成。消除了碰撞和空時隙,但引入了輪詢時延——依次詢問每個非活躍節點。如果主節點故障,整個通道不可用!例子:802.15和藍芽協議。
  • 令牌傳遞協議(token):沒有主節點。小的令牌幀,以固定次序在節點之間交換。節點收到令牌,若有幀傳輸,則傳送最大數目的幀數,然後把令牌發給下個節點;否則直接把令牌轉發給下個節點。如果節點故障(如忘記釋放令牌),可能使整個通道崩潰。

6.3.4 DOCSIS:用於電纜因特網的鏈路層協議

電纜接入網用到了通道劃分協議、隨機接入協議和輪流協議。

  • CMTS:Cable Modem Termination System,電纜調變解調器端接系統

  • DOCSIS:Data Over Cable Service Interface,CMTS:資料經電纜服務介面

DOCSIS 使用 FDM 將下行(CMTS到Modem)和上行(Modem到CMTS)劃分為多個頻率通道。每個上下行均為廣播通道。下行只有CMTS傳送,沒有多路訪問問題;上行可能出現碰撞。每個上行通道劃分為時間間隔(類TDM),CMTS在下行通道通過MAP控制報文顯式准許各個Modem在特定微時隙進行傳輸。

為了通知CMTS有資料傳送,Modem在微時隙的特定間隔內向CMTS傳送請求幀。請求幀以隨機接入方式傳輸,不能幀聽通道是否空閒,也沒有碰撞檢測,如果沒有在下一個下行控制報文收到響應,則以二進位制指數回退延緩重發。

相關文章