27.TCP協議-糊塗窗口綜合症

1. 糊塗窗口綜合症

糊塗窗口綜合症,這個名字很有意思,原文叫 Silly Window Syndrome,簡稱 SWS.

一看到窗口,我們就應該反應過來這是流量控制中的東西。SWS 是這樣一種情況:接收方通告了一個 1 字節的窗口給發送方,然後發送方發送了 1 字節的數據給接收方。接着,接收方又通告了一個 1 字節的窗口,這樣持續下去,使網絡的效率很低。

2. 解決 SWS

有兩種辦法可以解決此問題:

  • 針對接收方來說,先等一段時間,等到接收緩存有足夠的空間了才發出確認。
  • 針對發送方來說,發送方不要發送太小的報文,而是把數據積累成一個足夠大的報文段(達到 MSS),或者是積累到接收方通告窗口大小一半的報文段。

如果發送方總是有很多小數據要發送怎麼辦呢?實際上,我們前面學習過 Nagle 算法,它正是用於解決這個問題的。Nagle 算法的目的就是把小數據組合成一個大報文段發送出去的。

如果發送方禁用了 Nagle 算法,就不應該發送小數據,否則很容易引起 SWS 問題。

發佈了319 篇原創文章 · 獲贊 29 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章