TCP報頭里的那個視窗大小到底是指什麼

2021-08-30 11:39:25 字數 1290 閱讀 9407

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

tcp通過滑動視窗的概念來進行流量控制。設想在傳送端傳送資料的速度很快而接收端接收速度卻很慢的情況下,為了保證資料不丟失,顯然需要進行流量控制, 協調好通訊雙方的工作節奏。所謂滑動視窗,可以理解成接收端所能提供的緩衝區大小。tcp利用乙個滑動的視窗來告訴傳送端對它所傳送的資料能提供多大的緩 沖區。由於視窗由16位bit所定義,所以接收端tcp 能最大提供65535個位元組的緩衝。由此,可以利用視窗大小和第乙個資料的序列號計算出最大可接收的資料序列號。

滑動視窗本質上是描述接受方的tcp資料報緩衝區大小的資料,傳送方根據這個資料來計算自己最多能傳送多長的資料。如果傳送方收到接受方的視窗大小為0的tcp資料報,那麼傳送方將停止傳送資料,等到接受方傳送視窗大小不為0的資料報的到來。

關於滑動視窗協議,還有三個術語,分別是:

視窗合攏:當視窗從左邊向右邊靠近的時候,這種現象發生在資料被傳送和確認的時候。   

視窗張開:當視窗的右邊沿向右邊移動的時候,這種現象發生在接受端處理了資料以後。   

視窗收縮:當視窗的右邊沿向左邊移動的時候,這種現象不常發生。   

tcp就是用這個視窗,慢慢的從資料的左邊移動到右邊,把處於視窗範圍內的資料傳送出去(但不用傳送所有,只是處於視窗內的資料可以傳送。)。這就是視窗 的意義。視窗的大小是可以通過socket來制定的,4096並不是最理想的視窗大小,而16384則可以使吞吐量大大的增加。

a—————c—————b  

如上圖,a與b之間建立tcp連線,滑動視窗實現有兩個作用:  

由於對稱性,只考慮a端傳送視窗和b端接收視窗,有如下兩個作用  

1。b端來不及處理接收資料(控制不同速率主機間的同步),這時,a通過b端通知的接收視窗而減緩資料的傳送。  

2。b端來得及處理接收資料,但是在a與b之間某處如c,使得ab之間的整體頻寬效能較差,此時,a端根據擁塞處理策略(慢啟動,加倍遞減和緩慢增加)來更新視窗,以決定資料的傳送。  

與固定大小的滑窗協議相比,tcp採用可變大小的滑窗協議是為了取得更好的效能。  

tcp是乙個廣域網協議,而廣域網環境下的路由器和主機,各自有著不同的效能和處理能力,在這種情況下,採用固定視窗大小的滑窗協議會引起效能上的損失。tcp規定視窗的大小是由接收方通告的,通過採取慢啟動和擁塞避免演算法等機制來使頻寬和效能取得最佳。           

給我老師的人工智慧教程打call!

TCP報頭里的那個視窗大小到底是指什麼

tcp通過滑動視窗的概念來進行流量控制。設想在傳送端傳送資料的速度很快而接收端接收速度卻很慢的情況下,為了保證資料不丟失,顯然需要進行流量控制,協調好通訊雙方的工作節奏。所謂滑動視窗,可以理解成接收端所能提供的緩衝區大小。tcp利用乙個滑動的視窗來告訴傳送端對它所傳送的資料能提供多大的緩 沖區。由於...

指標的大小到底是由誰決定?是多少?

應該說這是乙個非常基礎的問題,教科書上說指標大小和機器字長相同,即 32位機指標長度為 4位元組!但是對不對呢?為什麼是這樣?搜了一下相關資料。居然發現回答不統一,很多人也同樣是糊里糊塗。字長 在同一時間中處理二進位制數的位數叫字長。通常稱處理字長為 8位資料的 cpu叫8位 cpu,32位 cpu...

指標的大小到底是由誰決定?是多少?

32位處理器上32位作業系統的16位編譯器,指標大小2位元組。32位處理器上16位作業系統的16位編譯器,指標大小2位元組。16位處理器上16位作業系統的16位編譯器,指標大小2位元組。這從結果看起來指標的大小和編譯器有關?實際不是這樣的,有這樣的結果是因為以上幾種情況,處理器當前執行模式的定址位數...