固定窗口
TCP 還提供了流量控制機制。 流量控制可以調整給定會話中源和目的之間的數據流速,有助于保持 TCP 傳輸的可靠性。 流量控制的實施方法包括限制一次可以轉發的數據段數量,并要求在發送更多數據段之前確認接收。
要實施流量控制,TCP 要確定的第一件事是目的設備可以接受的數據段數量。 TCP 報頭包括一個稱為“窗口大小”的 16 位字段。 這是 TCP 會話的目的設備一次可以接受和處理的字節數。 通過源和目標之間的三次握手,會話開始時即可確定初始窗口大小。 一旦同意,源設備必須根據窗口大小限制發送到目的設備的數據段數量。 只有源設備收到數據段已接收的確認之后,才能繼續發送更多會話數據。
在接收確認的延遲過程中,發送方不會發送任何額外數據段。 如果網絡擁堵,或者接收主機資源緊張,延遲時間可能就更長。 延遲時間越長,該會話過程的有效傳輸速率越低, 當運行多個會話時,減緩每個會話的數據傳輸有助于減少網絡和目的設備上的資源沖突。
請參看上圖中對窗口大小和確認消息的簡易展示。 在本例中,TCP 會話的初始窗口大小為 3000 字節。 此會話的發送方在傳輸 3000 字節后等待這些數據的確認消息,以便繼續傳輸更多數據段。 一旦發送方收到接收方發送的確認消息,它就可以傳輸另外 3000 字節的數據段。
TCP 使用窗口大小嘗試管理傳輸速率,將其調整為網絡和目的設備可以支持的最大速度,同時最大限度減少損失和重新傳輸。
TCP滑動窗口
我們也可以通過動態窗口大小來控制數據流量。 當網絡資源受到限制時,TCP 可以減小窗口的大小,這樣,目的主機就需要更加頻繁地確認所接收的數據段。 由于源主機需要更加頻繁地等待數據確認,這便可以大大降低傳輸的速率。
接收主機將窗口大小值發送到發送主機,表示其準備接收的字節數。 如果目的主機由于緩沖內存受限需要降低通信速率,那么它向源主機發送的確認信息中可以包含一個較小的窗口大小值。
如圖所示,如果接收主機發生擁堵,它可以向發送主機發送指定了較小窗口大小的數據段。 圖中顯示,其中一個數據段丟失了。 接收方將返回數據段的 TCP 報頭中的窗口字段值由 3,000 減為 1,500,即將窗口大小改為 1,500。
在沒有數據丟失或資源限制的情況下傳輸一段時間后,接收方開始增加窗口字段,這樣可以減少網絡開銷,因為必須發送的確認減少。 窗口大小持續增加,直至出現數據丟失,然后窗口大小隨之減少。
窗口大小的這種動態增減是 TCP 中的一個持續不斷的過程。 在高效網絡中,由于不丟失數據,窗口可能會相當大。 在基層基礎設施面臨壓力的網絡中,窗口可能會很小。
-
數據傳輸
+關注
關注
9文章
1842瀏覽量
64478 -
TCP
+關注
關注
8文章
1351瀏覽量
78989 -
流量控制
+關注
關注
0文章
27瀏覽量
9646
發布評論請先 登錄
相關推薦
評論