【技术】TCP 的固定窗口和滑动窗口
固定窗口?
?
●?TCP 還提供了流量控制機制。流量控制可以調整給定會話中源和目的之間的 數據流速,有助于保持 TCP 傳輸的可靠性。流量控制的實施方法包括限制 一次可以轉發的數據段數量,并要求在發送更多數據段之前確認接收。?
●?要實施流量控制,TCP 要確定的第一件事是目的設備可以接受的數據段數量。?
TCP 報頭包括一個稱為“窗口大小”的 16 位字段。這是 TCP 會話的目的設 備一次可以接受和處理的字節數。?
通過源和目標之間的三次握手,會話開始 時即可確定初始窗口大小。
?一旦同意,源設備必須根據窗口大小限制發送到 目的設備的數據段數量。只有源設備收到數據段已接收的確認之后,才能繼 續發送更多會話數據。
●?在接收確認的延遲過程中,發送方丌會發送任何額外數據段。如果網絡擁堵, 或者接收主機資源緊張,延遲時間可能就更長。延遲時間越長,該會話過程 的有效傳輸速率越低, 當運行多個會話時,減緩每個會話的數據傳輸有助于 減少網絡和目的設備上的資源沖突。
?
?
請參看上圖中對窗口大小和確認消息的簡易展示。在本例中,TCP 會話的初 始窗口大小為 3000 字節。此會話的發送方在傳輸 3000 字節后等待這些數 據的確認消息,以便繼續傳輸更多數據段。一旦發送方收到接收方發送的確 認消息,它就可以傳輸另外 3000 字節的數據段。
●?TCP 使用窗口大小嘗試管理傳輸速率,將其調整為網絡和目的設備可以支持 的最大速度,同時最大限度減少損失和重新傳輸。?
?
TCP滑動窗口
?
●?我們也可以通過動態窗口大小來控制數據流量。當網絡資源受到限制時,TCP ?可以減小窗口的大小,這樣,目的主機就需要更加頻繁地確認所接收的數據段。由于源主機需要更加頻繁地等待數據確認,這便可以大大降低傳輸的速率。
●?接收主機將窗口大小值發送到發送主機,表示其準備接收的字節數。如果目 的主機由于緩沖內存受限需要降低通信速率,那么它向源主機發送的確認信息 中可以包含一個較小的窗口大小值。
?
?
●?如圖所示,如果接收主機發生擁堵,它可以向發送主機發送指定了較小窗口大 小的數據段。圖中顯示,其中一個數據段丟失了。接收方將返回數據段的 TCP 報頭中的窗口字段值由 3,000 減為 1,500,即將窗口大小改為 1,500。?
●?在沒有數據丟失或資源限制的情況下傳輸一段時間后,接收方開始增加窗口字 段,這樣可以減少網絡開銷,因為必須發送的確認減少。窗口大小持續增加, 直至出現數據丟失,然后窗口大小隨之減少。
●?窗口大小的這種動態增減是 TCP 中的一個持續丌斷的過程。在高效網絡中, 由于丟失數據,窗口可能會相當大。在基層基礎設施面臨壓力的網絡中,窗口可能會很小。
總結
以上是生活随笔為你收集整理的【技术】TCP 的固定窗口和滑动窗口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【通知】CCIE LAB北京考场9月1日
- 下一篇: We Are Cisco|25年后,为什