TCP的滑動視窗

2021-09-29 09:41:37 字數 1558 閱讀 9350

注:rto是由rtt計算得出的。

參考:

tcp中rtt的測量和rto的計算

tcp-ip詳解: rtt和rto的計算方法

tcp會將資料拆分成段進行傳輸,而將資料段依次傳輸效率是極低的,需要對資料進行批量傳送,因此tcp必須解決可靠傳輸和包亂序的問題。

tcp使用滑動視窗做流量控制與亂序重排。tcp的滑動視窗主要有兩個作用:

保證tcp的可靠性;

保證tcp的流控特性。

tcp報頭中的window字段,用於接收方通知傳送方,自己還有多少緩衝區可以接收資料,因而傳送方可以根據接收方的處理能力來傳送資料,不會接收方處理不過來。

傳送端:

lastbyteacked指向已經被接收端確認接收的最後乙個位元組序號;

lastbytesent表明已經向接收端發出,但是還沒有接收到ack回應;

lastbytewritten指向上層應用向本地tcp緩衝區寫入的最後乙個位元組序號。

接收端:

lastbyteread指向上層應用已經從本地tcp緩衝區讀完的最後乙個位元組序號;

nextbyteexpected指向收到的最大sequence的最後乙個位元組序號,還沒有向傳送端傳送ack回應;

lastbytercvd指向已經接收到並且已經向傳送端傳送ack回應的最後乙個位元組序號。

tcp傳送方的tcp快取區有四類:

其中第二類和第三類緩衝區被稱為傳送視窗

當收到接受方對於原滑動視窗位元組的確認時,滑動視窗就會向後滑動。如上圖所示:

tcp接受方的tcp快取區有三類:

其中第二類被稱為接收視窗

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之後,滑動視窗就會右移,此時接收端預計接收...