《計算機網絡(第8版)》第三章主要圍繞數據鏈路層展開,深入探討了其功能、協議以及相關技術。為了幫助讀者更好地掌握本章核心知識,以下提供了部分精選課后習題的超詳細解析,旨在從原理層面加深理解,而非簡單地提供答案。
1. 數據鏈路層的主要功能是什么?
詳細解析:
數據鏈路層在OSI參考模型和TCP/IP體系結構中處于物理層之上,網絡層之下。它的核心任務是為相鄰節點(直接相連的設備)之間提供可靠、有效的數據傳輸服務。其主要功能可分解為以下幾點:
- 成幀:將網絡層下發的數據包(IP數據報)封裝成幀,添加幀首部和幀尾部,以界定幀的開始與結束,并實現幀的同步。
- 透明傳輸:通過字節填充或比特填充等方法,確保無論原始數據中出現什么樣的比特組合,都能作為幀的數據部分被正確識別和傳輸,而不會被誤認為是幀的邊界。
- 差錯控制:通過循環冗余檢驗(CRC)等檢錯技術,發現傳輸過程中可能出現的比特差錯。對于可靠性要求高的鏈路,還可能使用ARQ(自動重傳請求)等協議來實現差錯糾正(即重傳出錯的幀)。
- 流量控制:協調發送方和接收方的處理速度,防止快速的發送方“淹沒”處理能力慢的接收方。常用的方法有停止-等待協議和滑動窗口協議(如后退N幀GBN、選擇重傳SR)。
- 鏈路管理:對于面向連接的通信(如PPP協議在建立連接時),負責數據鏈路的建立、維持和釋放。
2. 簡述停止-等待協議的工作原理。它存在哪些效率問題?如何改進?
詳細解析:
* 工作原理:這是最簡單的流量控制和差錯控制協議。其核心是“發一幀,等一確認”。
1. 發送方發送一個數據幀后,必須停止發送,等待接收方的確認幀(ACK)。
- 接收方收到正確的數據幀后,回送一個ACK。
- 發送方收到ACK后,才能發送下一個數據幀。
- 如果數據幀在傳輸中出錯或丟失,接收方會丟棄它并不發送ACK;或者ACK丟失,發送方會設置一個超時計時器。超時后,發送方會重傳原來的數據幀。
- 效率問題:
- 信道利用率極低:在等待ACK的往返時延(RTT)期間,信道處于空閑狀態。對于長時延、高速率的信道(如衛星信道),大部分時間都在等待,利用率可能遠低于1%。
- 簡單但低速:嚴格的一對一應答機制無法充分利用信道帶寬。
* 改進方案:
采用滑動窗口協議。允許發送方在未收到確認的情況下,連續發送多個幀(窗口大小內的幀)。接收方可以累積確認或選擇性確認。這極大地提高了信道利用率。主要改進協議有:
- 后退N幀協議(GBN):發送窗口 > 1,接收窗口 = 1。接收方按序確認,若某幀出錯,則丟棄該幀及之后所有幀,發送方需從出錯幀開始全部重傳。
- 選擇重傳協議(SR):發送窗口和接收窗口都 > 1。接收方可以緩存亂序到達但正確的幀,并單獨進行確認(否定確認NAK或重復ACK)。發送方只重傳真正丟失或出錯的幀,效率最高。
3. PPP協議的主要特點是什么?它適用于什么場景?
詳細解析:
PPP(點對點協議)是數據鏈路層最重要的協議之一,用于在兩個直接相連的節點(如用戶計算機與ISP路由器之間)傳輸數據包。
- 主要特點:
- 簡單:協議設計簡潔,沒有復雜的流量控制和序號機制(可靠性由上層TCP保證)。
- 封裝成幀:使用特殊的字符(0x7E)作為幀定界符,并支持異步線路的字節填充和同步線路的比特填充來實現透明傳輸。
- 支持多種網絡層協議:通過協議字段(如0x0021代表IP數據報)可以同時承載多種網絡層協議的數據包。
- 提供鏈路控制協議(LCP):用于自動建立、配置、測試和維護數據鏈路連接(如協商認證方式、最大幀長度等)。
- 提供網絡控制協議(NCP):為不同的網絡層協議(如IP、IPX)提供獨立的配置接口(如動態分配IP地址)。
- 支持身份驗證:常用的有PAP(密碼認證協議,明文傳輸)和CHAP(挑戰握手認證協議,更安全)。
* 適用場景:
PPP廣泛應用于撥號上網、ADSL寬帶接入、路由器之間的專線連接等場景。它是用戶計算機接入互聯網時,在數據鏈路層最常用的協議。隨著光纖寬帶的普及,PPPoE(PPP over Ethernet)協議將PPP幀封裝在以太網幀中,使得PPP協議在以太網接入環境中得以延續使用。
4. 簡述CSMA/CD協議的工作原理。為什么在以太網中要規定最小幀長?
詳細解析:
CSMA/CD(載波監聽多點接入/碰撞檢測)是以太網(傳統共享式以太網)的核心介質訪問控制協議。
- 工作原理:可以概括為“先聽后發,邊發邊聽,沖突停發,隨機重發”。
- 載波監聽:任何站點在發送前和發送中,都會持續監聽信道。如果監聽到信道忙,則推遲發送;如果空閑,則開始發送。
- 碰撞檢測:在發送過程中,站點繼續監聽信道。如果檢測到信號電壓發生突變(表明與其他站點的信號發生了碰撞),則立即停止發送,并發送一個短小強化的干擾信號(Jamming Signal),以告知所有站點發生了碰撞。
- 隨機重發:停止發送后,站點等待一段隨機時間(通過二進制指數退避算法計算),然后重新嘗試發送。重試多次失敗后則報錯。
* 規定最小幀長的原因:
這是為了確保碰撞檢測機制能夠正常工作。
- 假設一個幀太短,在幀的全部比特發送完畢之前,信號還未傳播到網絡的最遠端。
- 此時,遠端的站點可能開始發送,從而產生碰撞。
- 但發送方由于幀已發完,已經停止了對信道的監聽,將無法檢測到這次碰撞,導致傳輸失敗而不知情。
- 因此,必須保證幀的發送時間不小于信號在網絡中最遠兩點間往返傳播的時間(即爭用期,2τ)。這樣,在幀發送完畢前,碰撞信號一定能傳回發送方。
- 對于10Mbps傳統以太網,爭用期為51.2μs,對應最小幀長為 64字節(512比特)。這個規定是CSMA/CD協議能夠可靠運行的基礎。
學習建議:
本章是理解局域網和廣域網底層通信的關鍵。課后習題的練習應著重于理解協議設計的初衷、解決問題的思路以及各協議之間的演進關系(如從停止-等待到滑動窗口)。建議結合Wireshark等抓包工具觀察實際幀結構(如以太網幀、PPP幀),將理論與實際觀察相結合,方能深刻掌握數據鏈路層的精髓。