1. 程式人生 > >TCP擁塞控制——快重傳與快恢復

TCP擁塞控制——快重傳與快恢復

*TCP可靠傳輸中不僅有慢開始與擁塞避免相結合,還有快重傳與快恢復相結合。。。→_→*

  1. 快重傳(Fast Retransmit)

    • 要求接收方每收到一個失序的報文段後就立即發出重複確認而不是等待自己傳送資料時才捎帶確認

    • 傳送方只要一連收到三個重複確認就立即重傳對方尚未收到的報文段,而不必等待設定的重傳計時器到期

    • 快重傳原理

    • 有的快重傳實現把開始時的擁塞視窗cwnd設定為ssthresh+3*MSS的位元組數值,原因是認為收到三個重複確認後,表明網路中已經有三個分組離開了,證明現在網路中並沒有堆積分組,因此適當增大擁塞視窗

  2. 快恢復(Fast Recovery)

    • 當傳送方連續收到三個重複確認時,就執行“乘法減小”演算法,把慢開始門限ssthresh減半

      ,為了預防網路擁塞

    • 將擁塞視窗cwnd值設定為慢開始門限ssthresh減半後的數值,然後開始執行擁塞避免演算法

    • 快重傳與快恢復

    • TCP Tahoe版本與TCP Reno版本的區別:Reno版本在快重傳之後採用快恢復演算法而不是採用慢開始演算法

  3. 總結

    • 採用快恢復演算法時,慢開始演算法只是在TCP建立連線和網路出現超時時才使用

    • 接收方根據自己的接收能力設定了接收視窗rwnd,將此視窗值寫入TCP首部傳送給對方。結合擁塞控制,傳送方的傳送視窗一定不能大於接收方給出的接收視窗且一定不能大於自己的擁塞視窗

    • 傳送方的傳送視窗的上限值 = Min[rwnd, cwnd]