TCP滑動視窗雜陳

2021-07-11 09:41:42 字數 1147 閱讀 8612

滑動視窗協議

滑動視窗通過序列號來進行控制,對於tcp流式資料報,每個位元組都對應乙個序列號,體現在tcp頭部資訊中就是,序列號以及選項中的mss來體現:

比如:psh1:1025(1024)就是乙個資料型別,由於通告視窗為4096,所以視窗大小為4(4*1024=4096)

上圖中傳送資料如seq=101 win=3 就是將資料段101傳送至傳送緩衝區,即push  101:101(1)  ack(1),win=3

1.視窗滑動形式

1.1視窗合攏

1.2視窗張開

1.3視窗收縮

1) 稱視窗左邊沿向右邊沿靠近為視窗合攏。這種現象發生在資料被傳送和確認時。

2) 當視窗右邊沿向右移動時將允許傳送更多的資料,我們稱之為視窗張開。這種現象發生在另一端的接收程序讀取已經確認的資料並釋放了

t c p

的接收快取時。(通告視窗大小控制)

3) 當右邊沿向左移動時,我們稱之為視窗收縮。host requirements rfc強烈建議不要使用這種方式。但t c p必須能夠在某一端產生這種情況時進行處理。第2 2 . 3節給出了這樣的乙個例子,一端希望向左移動右邊沿來收縮視窗,但沒能夠這樣做。

圖2 0 - 5表示了這三種情況。因為視窗的左邊沿受另一端傳送的確認序號的控制,因此不可能向左邊移動。如果接收到乙個指示視窗左邊沿向左移動的

a c k

,則它被認為是乙個重複

a c k

,並被丟棄。

如果左邊沿到達右邊沿,則稱其為乙個零視窗,此時傳送方不能夠傳送任何資料。(使用零視窗控制無法傳送資料)

檔案傳輸控制傳送資料以及接受資料的緩衝區大小可以提高下效率,4096不是最高效的,使用16384可以提公升40%的效率

push標誌的作用:

傳送方使用該標誌通知接收方將所收到的資料全部提交給接收程序。這裡的資料報括與p u s h一起傳送的資料以及接收方tc p已經為接收程序收到的其他資料。

對於乙個客戶端設定此標誌的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之後,滑動視窗就會右移,此時接收端預計接收...