TCP之滑動視窗,流量控制和擁塞控制

2021-10-07 19:13:08 字數 1474 閱讀 6592

是在可靠性的前提下,讓我們進一步提高傳輸效率。

所謂視窗:就是不等待ack的情況下,批量傳送的最大資料量,就叫:視窗大小。上面的視窗大小就是4000。

滑動:視窗範圍表示哪些資料在等待ack,隨著乙個ack的到達,就立刻傳送下乙個資料,等待範圍就逐漸向後滑動。

視窗越大,傳輸效率越高,但也不能無限大。

在這過程中,假如出現丟包怎麼辦?

在這過程中,假如資料報丟了怎麼辦?

視窗大小不能無限大,傳輸速率太快,接收方可能處理不過來。

所以此處會根據接收方的處理能力來方向制衡傳送方的傳送速率(視窗大小)。

接收方的處理能力即通過接受緩衝區的「剩餘空間大小」來決定傳送方的速率。

這裡就是在應答ack中加入了乙個視窗大小,就是緩衝區的剩餘空間大小,但傳送發不一定會按這個發小傳送資料,資料只會比這個資料小或者等於,但不會大於。當視窗為0,傳送方就會定時傳送乙個探測報文,因為緩衝區的資料很肯能被取走一部分,就可以接受新的資料了。

有人會問:而發第乙個資料時沒有ack返回視窗大小吧,這裡由擁塞控制決定,後面後提到。

還有就是當資料報出現部分丟失的時候,還是按照沒有缺失的情況下來返回視窗剩餘大小。

擁塞控制和流量控制共同決定傳送方的視窗大小。

考慮了網路傳輸路徑上的擁堵程度,由於不好衡量傳輸路徑的擁堵情況,只能不斷反覆試探,逐漸試探出應該用多大的視窗。

為啥要動態變化呢?

網路擁堵也是瞬息萬變的,要隨時根據網路實際狀態進行動態調整。

滑動視窗與流量控制 擁塞控制

每個tcp連線的兩端都維護一組視窗 傳送視窗結構 send window structure 和接收視窗結構 receive window structure tcp以位元組為單位維護其視窗結構。tcp頭部中的視窗大小字段相對ack號有乙個位元組的偏移量。傳送端計算其可用視窗,即它可以立即傳送的資料...

TCP視窗控制 流量控制 擁塞控制

tcp以1個段為單位,每發乙個資料段進行一次ack確認應答的處理,這樣的傳輸方式由乙個缺點,就是包的往返時間越長通訊的效能越差。解決這個問題,提高速度,tcp引入了視窗控制這個概念。具體做法就是連續傳送上限為視窗大小的資料,然後再乙個乙個ack確認。即使在往返時間較長的情況下,它也能控制網路效能的下...

滑動視窗 TCP流量控制

問題 如果傳送端傳送的速度較快,接收端接收到資料後處理的速度較慢,而接收緩衝區的大小是固定的,就會丟失資料。tcp協議通過 滑動視窗 sliding window 機制解決這一問題。看下圖的通訊過程 1.傳送端發起連線,宣告最大段尺寸是 1460 初始序號是 0,視窗大小是 4k,表示 我的接收緩衝...