2024.09.04:網工老姜&beokayy網工學習筆記
第5節 可靠傳輸機制
- 5.1 可靠傳輸
- 5.2 ARQ機制、ARQ協議
- 5.3 ARQ簡介(可靠傳輸)
- 5.3.1 停止等待協議
- (1)無差錯情況
- (2)有差錯情況
- 確認丟失
- 確認遲到
- 5.3.2 連續ARQ協議
- (1)流水線傳輸
- (2)滑動窗口
- (3)累計確認
- (4)后退N幀協議GBN
- (5)選擇重傳協議SR
- 5.4 信道利用率
- 5.5 本章小結
注意數據鏈路層不是一定要實現可靠傳輸
5.1 可靠傳輸
通俗理解:發送端發送什么,接收端就接收什么
傳輸差錯除了可能發生的比特差錯,還可能存在幀在傳輸過程中失序、重復、丟失等差錯
過去,OSI模型比較老,在當時那個時期就必須要求數據鏈路層必須向上提供一個可靠傳輸,因此在CRC檢測的基礎上,就增加了編號、確認、重傳
現在,計算機網絡并沒有強制數據鏈路層提供可靠傳輸。
- 如果數據鏈路質量好,數據鏈路層就不使用可靠傳輸機制,相應的,如果數據鏈路層傳輸數據時出了差錯需要糾正,那么將由上層協議(如傳輸層TCP)來完成
- 如果數據鏈路質量差,那還是需要數據鏈路層使用可靠傳輸機制的
5.2 ARQ機制、ARQ協議
ARQ機制:ARQ機制是一種通用的錯誤控制原理,用于在不可靠的通信信道中保證數據傳輸的可靠性。
ARQ協議:ARQ協議是基于ARQ機制具體實現的通信規則和標準,定義了數據包格式、時序、狀態機等細節。
類比理解
- ARQ機制 ≈ 交通規則中的“紅燈停、綠燈行”(通用原則)
- ARQ協議 ≈ 某城市具體的交通信號燈時序方案(如綠燈持續30秒,黃燈3秒)
5.3 ARQ簡介(可靠傳輸)
面向連接?發送數據前打招呼,發送完數據后要反饋
無連接?廣場發廣告單,無需認識、無需反饋
ARQ協議,即自動重傳請求,是OSI模型中的(數據鏈路層)和(傳輸層)錯誤糾正協議之一,它通過使用(確認)和(重傳)這兩個機制,在不可靠的基礎上實現可靠的信息傳輸,是一種面向連接的協議
數據鏈路層的HDLC協議、傳輸層的TCP協議均使用了ARQ機制
采用確認和超時重傳兩種機制的可靠傳輸協議稱為自動重傳請求(ARQ)
- 如果發送方在發送后一段時間內沒有收到確認幀,它通常會重新發送
- 重傳的請求是自動進行的,接收方不需要請求發送方重傳某個出錯的分組
ARQ協議有3種:停止等待ARQ協議、連續ARQ協議(連續后退N幀協議、選擇重傳協議)
5.3.1 停止等待協議
發送方每次只允許發送一個幀,接收方每接收一個幀都要反饋應答,表示可以接收下一個幀,發送方收到應答信號后才能發送下一個幀
(1)無差錯情況
做題目一般會忽略確認幀的發送時間,或者數據幀和確認幀都在考慮在內
(2)有差錯情況
另一種設置:可靠傳輸協議中,也可以在有差錯的時候發送“否認報文NAK”給對方,這樣能讓發送方及時知道出了差錯。但是這樣的處理會讓協議復雜化,目前實用的可靠傳輸協議都不使用這種否認報文了
為了實現超時重傳,需要注意三點:
- 發送方發送完一個幀后,需要暫時保留已發送幀的副本供超時重傳時使用,只有收到確認后才能清除副本
- 幀和確認幀都需要編號,這樣才能明確是哪一個發出去的幀收到了確認。編號是循環使用的,比如使用2bit來編號,范圍就只能是0~3,再增加一個號又會回到0
- 超時計時器設置的重傳時間應比幀傳輸的RTT更長一些
確認丟失
確認遲到
丟掉后來的重復確認幀
5.3.2 連續ARQ協議
(1)流水線傳輸
(2)滑動窗口
為了搞懂剩下的兩種連續ARQ協議,我們需要引入滑動窗口的概念
滑動窗口機制特點
- 發送方只有收到一幀的確認,才能將窗口劃過該幀
- 接收方只有收到一幀并發送確認,才能將窗口劃過該幀
- 當接收窗口大小為1時,可以保證按序接收
- 數據鏈路層的滑動窗口大小不變,而傳輸層的滑動窗口大小可變
(3)累計確認
(4)后退N幀協議GBN
(5)選擇重傳協議SR
5.4 信道利用率
發送周期指的是發送方去發送分組(一般化,信道利用率的問題也不只是在數據鏈路層出現,每層的PDU不一樣,統稱分組)到它收到第一個確認分組的時間
- 信道利用率
- 有效數據傳輸速率 = 有效數據長度 / 發送周期
- 信道吞吐率 = 信道利用率 * 發送方發送速率(數據傳輸速率)