人人IT網

人人IT網

當前位置: 主頁 > 編程語言 > C >

TCP流量控制

時間:2016-12-01 12:27來源:Internet 作者:Internet 點擊:
       流量控制平衡了生產者產生數據的速度和消費者消費數據的速度。TCP把流量控制從差錯控制中獨立出來。下圖所示为發送方和接收方之間的單向數據傳送。雙向數據傳送過程可以從單向傳送中推斷出來。

       流量控制平衡了生產者產生數據的速度和消費者消費數據的速度。TCP把流量控制從差錯控制中獨立出來。下圖所示为發送方和接收方之間的單向數據傳送。雙向數據傳送過程可以從單向傳送中推斷出來。

        圖中描繪的數據走向是從發送進程向下發送TCP,再從發型TCP到接收TCP,然後從接收TCP向上到達數據接收進程(路徑1、2、和3)。不過,流量控制的反饋走向是從接收TCP到發送TCP,以及從發送TCP向上到發送進程(路徑4和5)。TCP的絕大多數實現都不提供從接收進程到接收TCP的流量控制 反饋,而是接收進程准備就緒時去接收TCP哪裏拉取數據。換言之,接收TCP控制了發送TCP,而發送TCP控制了發送進程。

         從發送TCP到發送進程的流量控制反饋(路徑5)的實現很簡單,一旦發送TCP的窗口慢了,就拒絕接收數據。也就是說,我們隊流量控制的討論主要集中在從接收TCP到發送TCP的反饋(路徑4)。

 

打開和關閉窗口

        为了實現流量控制,TCP強制發送方和接收方不斷調整他們的窗口大小,即使對方的緩存大小在連接建立時就被定下來了。當有更多字節從發送方傳來時,接收窗口關閉(其左壁向右移動),而當更多的字節被進程拉取走時,接收窗口打開(其右壁向右移動)。假設接收窗口是不會收縮的(其右壁不會向左移動)。

        發送窗口的打開,關閉和收縮時被接收方控制的。當一個新的確認到達,且在這個確認允許是,發送窗口會關閉(其左壁向右移動)。當由接收方通告的接收窗口大小(rwnd)允許是,發送窗口會打開(其右壁向右移動)。發送窗口偶爾根據情況會收縮,我們假設這種情況不會發生。

 

 

 

 

窗口的收縮

 

 

 

糊塗窗口綜合征

 

Nagle算法

 

Clark解决方法

 


From:ITEYE
頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
欄目列表
推薦內容