視窗是快取的一部分,用來暫時存放位元組流。傳送方和接收方各有乙個視窗,接收方通過 tcp 報文段中的視窗字段告訴傳送方自己的視窗大小,傳送方根據這個值和其它資訊設定自己的視窗大小。
傳送視窗內的位元組都允許被傳送,接收視窗內的位元組都允許被接收。如果傳送視窗左部的位元組已經傳送並且收到了確認,那麼就將傳送視窗向右滑動一定距離,直到左部第乙個位元組不是已傳送並且已確認的狀態;接收視窗的滑動類似,接收視窗左部位元組已經傳送確認並交付主機,就向右滑動接收視窗。
接收視窗只會對視窗內最後乙個按序到達的位元組進行確認,例如接收視窗已經收到的位元組為 ,其中 按序到達,而 就不是,因此只對位元組 31 進行確認。傳送方得到乙個位元組的確認之後,就知道這個位元組之前的所有位元組都已經被接收。
附:tcp 流量控制
流量控制是為了控制傳送方傳送速率,保證接收方來得及接收。
接收方傳送的確認報文中的視窗字段可以用來控制傳送方視窗大小,從而影響傳送方的傳送速率。將視窗字段設定為 0,則傳送方不能傳送資料。
TCP滑動視窗
目前建立在tcp協議上的網路協議特別多,有telnet,ssh,有ftp,有http等等。這些協議又可以根據資料吞吐量來大致分成兩大類 1 互動資料型別,例如telet,ssh,這種型別的協議在大多數情況下只是做小流量的資料交換,比如說按一下鍵盤,回顯一些文字等等。2 資料成塊型別,例如ftp,這種...
TCP滑動視窗
假設a和b之間新建立了一條tcp連線。裝置a需要傳送一長串資料流,但裝置b無法一次全部接收,所以它限制裝置a每次傳送分段指定數量的位元組數,直到分段中已傳送的位元組數得到確認。之後,裝置a可以繼續傳送更多位元組。每乙個裝置都對傳送,接收及確認資料進行追蹤。tcpbuffer中資料可以分為以下四類 1...
TCP滑動視窗
tcp滑動視窗是用來控制流量的,避免擁塞的發生。滑動視窗又包括接收端滑動視窗和傳送端滑動視窗,下面我們簡單分析一下。上圖顯示的是接收緩衝區,其中接收視窗也在其中。接收視窗的大小是8,即4 12,此時由a可知,接收端下乙個預計接收序列號4,當接收端接收到4 7之後,滑動視窗就會右移,此時接收端預計接收...