協議
流量控制
滑動視窗
nagle
tcp 協議中的流量控制 ***
tcp協議上的網路協議特別多1)
互動資料型別,例如
telet
,ssh
,這種型別的協議在大多數情況下只是做小流量的資料交換,比如說按一下鍵盤,回顯一些文字等等。
(2)資料成塊型別,例如
ftp,這種型別的協議要求
tcp能盡量的運載資料,把資料的吞吐量做到最大,並盡可能的提高效率。針對這兩種情況,
tcp給出了兩種不同的策略來進行資料傳輸。
1. tcp
的互動資料
流1.1.捎帶ack的傳送方式
這個策略是說,當主機收到遠端主機的
tcp資料報之後,通常不馬上傳送
ack資料報,而是等上乙個短暫的時間,如果這段時間裡面主機還有傳送到遠端主機的
tcp資料報,那麼就把這個
ack資料報「捎帶
」著傳送出去,把本來兩個
tcp資料報整合成乙個傳送。一般的,這個時間是
200ms
。可以明顯地看到這個策略可以把
tcp資料報的利用率提高很多。
1.2.nagle
演算法 當主機
a給主機
b傳送了乙個
tcp資料報並進入等待主機b的
ack資料報的狀態時,
tcp的輸出緩衝區裡面只能有乙個
tcp資料報,並且,這個資料報不斷地收集後來的資料,整合成乙個大的資料報,等到
b主機的
ack包一到,就把這些資料
「一股腦
」的傳送出去
。2.tcp
的成塊資料
流2.1.
傳輸資料時
ack的問
題 一般來說,傳送端傳送乙個
tcp資料報,那麼接收端就應該傳送乙個
ack資料報。但是事實上卻不是這樣,傳送端將會連續傳送資料盡量填滿接受方的緩衝區,而接受方對這些資料只要傳送乙個
ack報文來回應就可以了,這就是
ack的累積特性,這個特性大大減少了傳送端和接收端的負擔
。 2.2.
滑動視窗
滑動視窗本質上是描述接受方的
tcp資料報緩衝區大小的資料,傳送方根據這個資料來計算自己最多能傳送多長的資料。如果傳送方收到接受方的視窗大小為0的
tcp資料報,那麼傳送方將停止傳送資料,等到接受方傳送視窗大小不為
0的資料報的到來。
關於滑動視窗協議,書上還介紹了三個術語,分別是:
視窗合攏:當視窗從左邊向右邊靠近的時候,這種現象發生在資料被傳送和確認的時候。
視窗張開:當視窗的右邊沿向右邊移動的時候,這種現象發生在接受端處理了資料以後。
視窗收縮:當視窗的右邊沿向左邊移動的時候,這種現象不常發生。
tcp就是用這個視窗,慢慢的從資料的左邊移動到右邊,把處於視窗範圍內的資料傳送出去(但不用傳送所有,只是處於視窗內的資料可以傳送。)。這就是視窗的意義。圖
20-6
解釋了這一點。視窗的大小是可以通過
socket
來制定的,
4096
並不是最理想的視窗大小,而
16384
則可以使吞吐量大大的增加。
2.3.
資料擁塞
擁塞視窗的原理很簡單,
tcp傳送方首先傳送乙個資料報,然後等待對方的回應,得到回應後就把這個視窗的大小加倍,然後連續傳送兩個資料報,等到對方回應以後,再把這個視窗加倍(先是
2的指數倍,到一定程度後就變成現行增長,這就是所謂的慢啟動),傳送更多的資料報,直到出現超時錯誤,這樣,傳送端就了解到了通訊雙方的線路承載能力,也就確定了擁塞視窗的大小,傳送方就用這個擁塞視窗的大小傳送資料。
TCP流量控制協議
1 tcp ip具體解釋 卷1 協議 2 tcp ip協議族 第4版 3 計算機網路 第5版 tcp流量控制的目的是限制傳送端的傳送速率,使得接收方可以及時接收。tcp主要是通過滑動窗體 來實現流量控制的。實際上,傳送窗體的大小不僅受接收窗體rwnd的大小的限制,還受擁塞窗體cwnd窗體的限制,為了...
TCP流量控制
一般來說,我們總是希望資料傳輸的更快一些,但如果傳送方把資料傳送的很快,而接收方來不及接收,這就可能造成資料的丟失。流量控制就是讓傳送方的傳送速率不要太快,讓接收方來得及接收。對於成塊資料流,tcp利用滑動視窗機制來實現流量的控制,對於互動資料流,tcp利用捎帶ack和nagle演算法來實現流量的控...
TCP流量控制
如果傳送端傳送的速度較快,接收端接收到資料後處理的速度較慢,而接收緩衝區的大小是固定的,就會丟失資料。tcp協議通過 滑動視窗 sliding window 機制解決這一問題。滑動視窗 傳送端發起連線,宣告最大段尺寸是1460,初始序號是0,視窗大小是4k,表示 我的接收緩衝區還有4k位元組空閒,你...