TCP視窗控制

2021-10-12 17:29:22 字數 2057 閱讀 9108

1.tcp以段為單位傳送資料

在建立tcp連線的同時,也可以確定傳送資料報的單位,即mss(maximum segment size)

mss是在三次握手的時候,在兩端主機之間被計算的。兩端的主機發出建立連線請求時,會在tcp首部寫入mss選項,告訴對方自己的介面能夠適應的mss的大小,然後會在兩者之間選擇乙個較小的值投入使用。

2.利用視窗控制來提公升速度

tcp是以1個段為單位,每發乙個段進行一次確認應答處理,但是這樣的傳輸方式有乙個缺點(發乙個段就要收乙個確認應答,再發下乙個段,即為每個資料報進行確認應答)導致包的往返時間越長,通訊效能就越低(網路吞吐量越差)。

基於上述問題,引入了視窗的概念。確認應答不再是以每個分段,而是以更大的單位進行確認,**時間將被大幅度的縮短。

視窗大小:指無需等待確認應答而可以繼續傳送資料的最大值。

實現方法:此機制的實現使用了大量的緩衝區,實現通過對多個段同時進行確認應答的功能。

於是引入

滑動視窗控制:順序地將多個段同時傳送提高通訊效能的機制。

tcp利用乙個滑動的視窗來告訴傳送端對它所傳送的資料能提供多大的緩 沖區。由於視窗由16位bit所定義,所以接收端tcp 能最大提供65535個位元組的緩衝。由此,可以利用視窗大小和第乙個資料的序列號計算出最大可接收的資料序列號。

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

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

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

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

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

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

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

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

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

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

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

}

3.視窗控制與重發控制

那麼問題來了,在視窗控制中,如果段丟失了該怎麼辦?

(1)首先考慮確認應答未能返回的情況,資料已經到達對端,有了視窗控制,某些確認應答是不需要進行重發的(視窗在一定程度上較大時)

(2)再來考慮下某個報文段丟失的情況,接收端在沒有收到自己所期望序號的資料時,會對之前收到的資料進行確認應答,傳送端則一旦收到某個確認應答後,又連續三次收到同樣的確認應答,則認為資料段已經丟失,需要進行重發,這種機制比超時重發管理機制更為高效,因此也被稱作高速重發控制

4.流量控制

傳送端根據自己的實際情況傳送資料。但是接收端可能收到乙個毫無關係的資料又可能會在處理其他問題上花費一些時間。因此在為這個資料報做其他處理時會消耗一些時間,甚至在高負荷的情況下無法接收任何資料。如此一來,如果接收端本應該接收的資料丟棄的話,就又會觸發重發機制,從而導致網路流量的浪費。

為了防止這種情況,tcp提供一種機制可以讓傳送端根據接收端的實際接收能力控制傳送的資料量,這就是流控制。

具體操作:接收端主機向傳送端主機通知自己可以接收資料的大小,於是傳送端會傳送不超過這個限度的資料。(該大小限度就被稱作視窗大小,)接收端主機決定了這個大小。也就是這個時候會傳送視窗的大小。

TCP視窗控制的作用

確認應答不再是以每個片段,而是以更大的單位 視窗大小 進行確認,時間就被大幅度的縮短。至於視窗的大小是由接收端主機決定的,也方便進行流控制。允許傳送方在收到ack之前連續傳送多個分組。使用了視窗控制,某些確認應答即便丟失也無需重發。可以根據自己的確認應答或者下乙個確認應答來確認。當乙個報文丟失時,傳...

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

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

滑動視窗 TCP流量控制

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