天天看點

TCP滑動視窗

            tcp滑動視窗是用來控制流量的,避免擁塞的發生。滑動視窗又包括接收端滑動視窗和發送端滑動視窗,下面我們簡單分析一下。

TCP滑動視窗

           上圖顯示的是接收緩沖區,其中接收視窗也在其中。接收視窗的大小是8,即4~12,此時由a可知,接收端下一個預計接收序列号4,當接收端接收到4~7之後,滑動視窗就會右移,此時接收端預計接收的下一個序列号為8,即圖b的結果。

TCP滑動視窗

           上圖顯示的是發送緩沖區和發送視窗,滑動視窗的大小為8,發送視窗包含2部分,一部分是發送出去還沒有被确認的,另一部分是還沒有發送的資料。已發送的資料必須在收到确認之後才能移動視窗,即丢棄那部分資料,這是為了進行可能的逾時重傳。圖b中,4~7為已發送但還沒有被确認,8~12表示還沒有被發送的。當4~7被确認了之後,發送視窗就會向前移動,就成了圖c。如果接收端收到重複的包,則重複的包會被丢棄,因為有可能出現ack丢失的情況。

參考資料:進階tcp/ip程式設計

繼續閱讀