自適應重傳是TCP協議中的一種擁塞控制機制,旨在通過智能的方式處理網絡擁塞,并進行相應的數據重傳,以提高網絡的可靠性和性能。
在自適應重傳中,TCP會利用發送方和接收方之間的交互來判斷網絡是否存在擁塞,并根據這些信息來調整數據的重傳行為。這種機制的主要目標是在保證數據可靠性的同時,盡量減少對網絡的額外壓力和負擔。
具體來說,自適應重傳的核心概念是快速重傳(Fast Retransmit)和重復確認(Duplicate ACK)。當接收方收到一個失序的數據段時,它會發送一個重復確認給發送方,表示它已經收到了該數據段之后的數據。發送方在接收到重復確認后,會立即重傳該數據段,而不是等待超時定時器觸發重傳。
通過快速重傳,自適應重傳能夠更快地檢測到網絡擁塞的存在,并采取相應的措施。當發送方收到若干個重復確認時,它會推測數據段可能已經丟失,因此會立即重傳該數據段,而無需等待定時器超時。這樣能夠避免等待定時器超時的時間延遲,加快了數據的可靠傳輸。
此外,自適應重傳還可以根據重復確認的數量來判斷網絡狀況的嚴重程度。如果僅僅收到少量的重復確認,說明網絡擁塞程度較輕,發送方只需進行快速重傳。但如果收到大量的重復確認,說明網絡擁塞程度較重,發送方可能會選擇進行更進一步的擁塞控制策略,如減少擁塞窗口大小來減緩發送速度。
自適應重傳的類型
1)超時重傳
報文段的往返時間:RTT 加權平均往返時間:RTTS RTT的偏差加權平均值:RTTD 超時重傳時間:RTO RTTS = (1 - α) * RTTS + α * 新的RTT樣本值 (α一般為1/8) RTTD = (1 - β) * RTTD + β * | RTTS - 新的RTT樣本值 | (β一般為1/4) RTO = RTTS + 4 * RTTD
Karn算法: ①每次超時重傳一個報文段時,停止計算新RTT樣本值 ②每次超時重傳一個報文段時,就把超時重傳時間RTO增大y倍(一般為2倍) ③當不發生報文段重傳時,才計算RTTS和超時重傳時間RTO
2)快速重傳
原因:超時重傳作為TCP最基本的重傳機制,效率較低。
超時的粗粒度實現方法導致連接在等待一個定時器超時時,很長一段時間連接無效。
基本思想: ①接收方:當報文段到達,立刻回復ACK,即使該序號已被確認過 ②發送方:收到一個重復ACK(同一個確認的再一次重傳稱為重復確認),就知道接收方必定收到亂序到達的報文段,表明其前面的分組可能丟失。收到3個重復ACK時,立刻觸發重傳。
自適應重傳和非自適應重傳的區別
自適應重傳和非自適應重傳是TCP協議中兩種不同的重傳機制,它們有以下區別:
1. 觸發條件:自適應重傳是基于擁塞控制算法觸發的,而非自適應重傳是基于超時定時器觸發的。
- 自適應重傳:在發生擁塞時,TCP會根據網絡的擁塞狀況進行自適應的重傳,例如TCP Tahoe和TCP Reno中的快速重傳機制。
- 非自適應重傳:在超過重傳定時器的時間后,TCP會觸發非自適應重傳,即重新發送未被確認的數據段。
2. 處理方式:自適應重傳和非自適應重傳對于重傳的處理方式有所不同。
- 自適應重傳:自適應重傳針對出現丟失數據段的情況,通過快速重傳來避免等待超時定時器的觸發。當接收方收到丟失的數據段后,會立即發送重復確認(Duplicate ACK)給發送方,使發送方盡快重傳丟失的數據段。
- 非自適應重傳:非自適應重傳則是在超過重傳定時器時間后觸發。發送方會根據重傳定時器的時間間隔來判斷是否進行重傳,以確保數據的可靠性。
3. 對網絡質量的反應:自適應重傳和非自適應重傳對網絡質量的反應略有不同。
- 自適應重傳:自適應重傳能夠更加敏感地檢測到網絡擁塞,并根據丟失的數據段來做出相應的調整。它可以根據重復確認的次數來判斷是否進行快速重傳,從而更好地適應網絡狀況。
- 非自適應重傳:非自適應重傳主要是基于定時器超時來觸發,因此對網絡擁塞的反應比較滯后。當定時器超時時,發送方會直接重傳未確認的數據段。
自適應重傳是一種更智能、適應網絡擁塞的重傳方式,能夠更快地回應出現丟失的數據段,并調整重傳的策略。而非自適應重傳則相對簡單,主要是通過定時器觸發來進行重傳,對網絡擁塞的反應較為滯后。
審核編輯:黃飛
-
定時器
+關注
關注
23文章
3246瀏覽量
114721 -
TCP
+關注
關注
8文章
1353瀏覽量
79055 -
擁塞控制
+關注
關注
0文章
14瀏覽量
8480
發布評論請先 登錄
相關推薦
評論