一、為什麼需要流量控制?
雙方在通訊的時候,傳送方的速率與接收方的速率是不一定相等,如果傳送方的傳送速率太快,會導致接收方處理不過來,這時候接收方只能把處理不過來的資料存在快取區里(失序的資料報也會被存放在快取區里)。
如果快取區滿了傳送方還在瘋狂著傳送資料,接收方只能把收到的資料報丟掉,大量的丟包會極大著浪費網路資源,因此,我們需要控制傳送方的傳送速率,讓接收方與傳送方處於一種動態平衡才好。
對傳送方傳送速率的控制,我們稱之為流量控制。
二、如何控制?
接收方每次收到資料報,可以在傳送確定報文的時候,同時告訴傳送方自己的快取區還剩餘多少是空閒的,我們也把快取區的剩餘大小稱之為接收視窗大小,用變數win來表示接收視窗的大小。
傳送方收到之後,便會調整自己的傳送速率,也就是調整自己傳送視窗的大小,當傳送方收到接收視窗的大小為0時,傳送方就會停止傳送資料,防止出現大量丟包情況的發生。
TCP流量控制
一般來說,我們總是希望資料傳輸的更快一些,但如果傳送方把資料傳送的很快,而接收方來不及接收,這就可能造成資料的丟失。流量控制就是讓傳送方的傳送速率不要太快,讓接收方來得及接收。對於成塊資料流,tcp利用滑動視窗機制來實現流量的控制,對於互動資料流,tcp利用捎帶ack和nagle演算法來實現流量的控...
TCP流量控制
如果傳送端傳送的速度較快,接收端接收到資料後處理的速度較慢,而接收緩衝區的大小是固定的,就會丟失資料。tcp協議通過 滑動視窗 sliding window 機制解決這一問題。滑動視窗 傳送端發起連線,宣告最大段尺寸是1460,初始序號是0,視窗大小是4k,表示 我的接收緩衝區還有4k位元組空閒,你...
TCP流量控制
流量控制 一般來說,我們總是希望資料傳輸的更快一些,但如果傳送方把資料傳送的很快,而接收方來不及接收,這就可能造成資料的丟失。流量控制就是讓傳送方的傳送速率不要太快,讓接收方來得及接收。對於成塊資料流,tcp利用滑動視窗機制來實現流量的控制,對於互動資料流,tcp利用捎帶ack和nagle演算法 來...