最近在二刷《計算機網路——自頂向下》做點筆記,加深印象,書不在手邊時也能有個參考。之前的章節會陸續補充。
兩種鏈路層通道:
- 廣播通道:如有線區域網、衛星網、混合光纖同軸電纜(HFC)。需要媒體訪問協議來協調幀傳輸。
- 點對點通訊鏈路:如長距離鏈路連線的兩臺路由器、PC到乙太網交換機。
6.1 鏈路層概述
節點(node):執行鏈路層協議的任何裝置。如主機、路由器、交換機、Wi-Fi接入點
鏈路(link):連線相鄰節點的通訊通道
6.1.1 鏈路層提供的服務
- 成幀:封裝成鏈路層幀(如乙太網幀格式)
- 鏈路接入:主要用於廣播通道,媒體訪問控制(MAC)協議,用於協調多個節點的幀傳輸
- 可靠交付:通常通過確認和重傳實現。對於光線、同軸、雙絞線,很少出現位元差錯,可靠交付會產生不必要的開銷,因此乙太網沒有提供可靠交付
- 差錯檢測和糾正:運輸層有因特網校驗和(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的廣播通道:
- 單節點傳送,具有R bps吞吐量
- M個節點傳送,每個節點平均吞吐量 R/M bps
- 協議分散,無單點故障
- 協議簡單,實現成本低
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 檢測到碰撞立即停止傳輸。
- 介面卡從網路層獲取資料包,準備鏈路層幀,放入幀介面卡快取中
- 如果介面卡偵測到通道空閒,開始傳輸;如果通道正忙,等待
- 傳輸過程中監聽通道其他介面卡的訊號能量
- 如果傳完整幀每檢測到其他介面卡訊號能量,傳輸完成;如果檢測到碰撞,終止傳輸
- 終止傳輸後,等待隨機時間量,返回步驟 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的廣播通道的理想特性:
- 單節點傳送,具有R bps吞吐量
- 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傳送請求幀。請求幀以隨機接入方式傳輸,不能幀聽通道是否空閒,也沒有碰撞檢測,如果沒有在下一個下行控制報文收到響應,則以二進位制指數回退延緩重發。