tcp流量控制,簡單來說就是讓
資料傳輸
端傳輸的速率不要太快,讓資料接收端來得及接收,利用滑動視窗機制可以很方便的在tcp連線上實現對
資料傳輸
端的流量控制。tcp的視窗單位是位元組,不是報文段,資料傳輸端的傳送視窗不能超過接收端給出的接收視窗的數值,流量控制的機制是控制丟包率,主要目的:讓資料傳輸端了解資料接收端當前的接收能力,可靈活調整傳輸速率。
流量控制機制圖如下圖所示:
滑動視窗:
tcp採用大小可變的滑動視窗進行流量控制,視窗大小的單位是位元組。
資料傳輸
視窗在連線建立時由雙方商定。但在通訊的過程中,資料接收端可根據自己的資源情況,隨時動態地調整對方的傳輸視窗大小。
滑動視窗例項圖如下圖所示:
滑動視窗引進原由:
我們可以把視窗理解為緩衝區(但是有些視窗和緩衝區又不太一樣)。
如果沒有這些「視窗」,那麼tcp每傳送一段資料後都必須等到資料接收端確認後才能傳送下一段資料,這樣做的話tcp傳輸的效率實在是太低了。
解決的辦法就是在傳送端等待確認的時候繼續傳送資料,假設傳送到第x個資料段是收到資料接收端的確認資訊,如果x在可接受的範圍內那麼這樣做也是可接受的。這就是視窗(緩衝區)引入的緣由。
滑動視窗:
a、資料接收端視窗 x
接收端緩衝區大小。接收端將此視窗值放在 tcp 報文的首部中的視窗字段,傳送給傳送端。
b、擁塞視窗 y
傳送端緩衝區大小
c、資料傳輸視窗 z
傳送視窗的上限值 = min [x, y]
① 當 x < y 時,是接收端的接收能力限制資料傳輸視窗的最大值。
② 當 y < x 時,則是網路的擁塞限制資料傳輸視窗的最大值。
滑動視窗例項介紹:
資料傳輸
端已傳送了 400 位元組的資料,但只收到對前 200 位元組資料的確認,同時視窗大小不變。還可傳送 300 位元組。
資料傳輸端收到了對方對前 400 位元組資料的確認,但對方通知資料傳輸端必須把視窗減小到 400 位元組。現在資料傳輸端最多還可傳送 400 位元組的資料。
滑動視窗需掌握的知識點:
a、資料接收端將自己可以接受的緩衝區大小放入tcp首部中「視窗大小」字段,通過ack來通知資料傳輸端。
b、視窗大小欄位越大,說明網路的吞吐率越高
c、視窗大小指的是無需等待確認應答而可以繼續傳送資料的最大值,即就是說不需要資料接收端的應答,可以一次連續的傳送資料。
d、作業系統核心為了維護滑動視窗,需要開闢傳送緩衝區,來記錄當前還有哪些資料沒有應答,只有確認應答過的資料,才能從緩衝區刪除。ps:傳送緩衝區如果太大,會有空間開銷。
e、資料接收端一旦發現自己的緩衝區快滿了,就會將視窗大小設定成乙個更小的值通知給資料傳輸端,資料傳輸端收到這個值後,就會減慢自己的傳送速度。
f、如果資料接收端發現自己的緩衝區滿了,就會將視窗大小設定為0,此時
資料傳輸
端不再傳輸資料
,但是需要在定期傳送乙個視窗探測資料段,使資料接收端把視窗大小告訴資料傳輸端。
ps:在tcp的首部,有乙個16為視窗字段,此欄位就是用來存放視窗大小資訊的。
tcp報文段傳送時機的選擇:
1、tcp維持乙個變數,它等於最大報文段長度mss,只要快取中存放的資料達到mss位元組就組裝成乙個tcp報文段傳送出去。
2、由傳送方的應用程式指明要求傳送報文段,即tcp支援的推送操作。
3、是傳送方的乙個計時器期限到了,這時就把當前已有的快取資料裝入報文段傳送出去。
TCP傳輸協議如何進行擁塞控制?
擁塞控制 擁塞現象是指到達通訊子網中某一部分的分組數量過多,使得該部分網路來不及處理,以致引起這部分乃至整個網路效能下降的現象,嚴重時甚至會導致網路通訊業務陷入停頓,即出現死鎖現象。這種現象跟公路網中經常所見的交通擁擠一樣,當節假日公路網中車輛大量增加時,各種走向的車流相互干擾,使每輛車到達目的地的...
TCP流量控制協議
1 tcp ip具體解釋 卷1 協議 2 tcp ip協議族 第4版 3 計算機網路 第5版 tcp流量控制的目的是限制傳送端的傳送速率,使得接收方可以及時接收。tcp主要是通過滑動窗體 來實現流量控制的。實際上,傳送窗體的大小不僅受接收窗體rwnd的大小的限制,還受擁塞窗體cwnd窗體的限制,為了...
流量控制傳輸協議 SCTP
sctp在客戶和伺服器之間提供管理,並像tcp那樣給應用提供可靠性,排序,流量控制以及全雙工的資料傳送,sctp支援多宿而涉及不止兩個位址。sctp是面向訊息的。提供各個記錄的按序遞送服務。與udp一樣。由傳送端寫入的每條記錄的長度隨資料一道傳遞給接收端。同時sctp不會因為乙個訊息的丟失阻塞統同一...