TCP IP tcp快速重傳和快速恢復

2021-07-26 14:36:32 字數 998 閱讀 2770

1.重傳會分為超時和3次重複確認後重傳兩種。快速重傳就是指接收方重複3次確認同乙個序號時,傳送方立即重傳。第1次不算在重複裡面,所以一共發了4次ack。

2.《tcp/ip 協議》描述的快速恢復有點亂。簡單來講,就是快速重傳後執行擁塞避免演算法,而不是慢啟動演算法。通過控制慢啟動視窗ssthresh和擁塞視窗cwnd的值就可以實現。具體如下

(1)接收方傳送第1次資料確認ack。這裡假設序號6657,表示前6676全部接受完。

(2)接收方重**送多3次同樣的資料確認ack。這重複的3次ack,前兩次cwnd保持不變,第3次時,ssthresh變為cwnd的一半。這裡假設cwnd原來為2426,於是ssthresh=2426/2=1213.但是ssthresh必須要=報文段大小整數倍。於是ssthresh=256*4=1024.注意不能=256*5;同時cwnd=ssthresh+3×報文段大小=1024+3*256=1792;3次重複確認的行為結束。

(3)傳送方會重傳丟失的6675報文段。但是在重傳期間,未必能立即到達接收方。在這期間,接收方會繼續重複確認6657。與(2)中的不同,(2)中前2個重複確認cwnd保持不變。在這裡,每次重複ack,cwnd增加乙個報文段長度(相當於慢啟動的增長速度)。

(4)最後接收方接收到丟失的分組,然後傳送乙個更大的ack,因為在丟失期間,有接收到其他更大序號的報文段。這時,cwnd調整=ssthresh,並且立即執行一次慢啟動(當cwnd<=ssthresh會執行慢啟動),調整=ssthresh+1個報文段=1280。之後會採取擁塞避免演算法。

3.快速恢復過程中,cwnd經歷了 降公升降 的過程。

4.從圖可以得出乙個小結論是,傳送方 擁塞視窗大小可能 < 未確認資料大小。

5.慢啟動每次增加1個報文段。擁塞避免每次增加1/cwnd大小。這就意味著,之後的報文段,最後乙個報文段可能以 < mss的長度傳送。報文段長度是由tcp層決定的,而不是應用程式決定的。

TCP快速重傳和快速恢復

當tcp傳送乙個分組時會設定乙個定時器,如果在規定的實際間隔內沒有收到ack分組,那麼則重新傳輸該分組,但是 如果tcp收到三個連續的ack分組,此時不管是否過超時間隔則重傳該分組,具體步驟如下 1.將慢啟動閾值ssthresh設為擁塞視窗 cwnd 可理解為傳送資料報大小 的一半 2.對於連續三個...

快速恢復與快速重傳演算法

擁塞避免演算法的修改建議1 9 9 0年提出 jacobson 1990b 在介紹修改之前,我們認識到在收到乙個失序的報文段時,tcp立即需要產生乙個ack 乙個重複的ack 這個重複的ack不應該被遲延。該重複的ack的目的在於讓對方知道收到乙個失序的報文段,並告訴對方自己希望收到的序號。由於我們...

快速重傳與快速恢復演算法

擁塞避免演算法的修改建議1 9 9 0年提出 jacobson 1990b 在介紹修改之前,我們認識到在收到乙個失序的報文段時,tcp立即需要產生乙個ack 乙個重複的ack 這個重複的ack不應該被遲延。該重複的ack的目的在於讓對方知道收到乙個失序的報文段,並告訴對方自己希望收到的序號。由於我們...