2012-09-13 56 views
1

這裏說 -TCP窗口縮放 - 可能的副作用

http://en.wikipedia.org/wiki/TCP_window_scale_option#Linux

「由於很多路由器和防火牆不能正確實現TCP窗口縮放,它可能會導致用戶的互聯網連接,以間歇性故障幾分鐘後,似乎無故再次開始工作

如果防火牆不支持TCP擴展,也會出現問題。

據我所知,TCP窗口縮小許多短連接(網絡)時,對通道性能有不良影響。

Disable TCP Window Scaling在Linux服務器上,還是不是?

謝謝!

回答

3

在我看來,你引用的維基百科文章大大誇大了情況。它鏈接到的Microsoft知識庫文章僅引用了5個具有此問題的設備。這不是'很多'。

而你需要考慮的是,這個問題是由Windows Vista默認的一個巨大的8級窗口規模造成的,足以描述一個64k的窗口,這個數字足夠可笑地描述一個64k的窗口。 Linux可能會或可能不會觸發它:目前你沒有證據。

TCP窗口縮放不會導致'許多短連接性能不佳'。它導致很好的表現在長期連接。

我會放置更多的依賴於RFC和供應商的聲明比任意Web源;甚至維基百科。我在本月正式修正了TCP文章中的一個重大錯誤。

+0

@ EJP-非常感謝您提供的信息,EJP!現在我明白了。 –

1

1)包括SACK,ECN等在內的所有TCP擴展都在客戶端和服務器套接字中的3-WAY-Handshake進程之間進行協商,如果其中任何一個不支持任何所述擴展,則另一個對端在生命期間忽略那些TCP擴展該TCP會話的週期。因此,如果您的防火牆或路由器不支持這些擴展,則不存在問題。

2)供應商實施基於AIMD原理的窗口縮放是一般慣例。最好的做法是將窗口縮放保持爲默認啓用狀態。

+0

謝謝,阿米特Bhanushali!我同意你最佳做法。 –

+0

我不知道你的意思是(2)。 AIMD原理沒有實現Window * scaling *。 *接收eindow *本身和*擁塞窗口*是在AIMD原理上實現的。當您在(1)中指出自己時,窗口縮放會在連接握手中執行一次,因此根本沒有機會將AIMD應用到它。我不明白爲什麼離開窗口縮放的默認值是'最佳實踐'。如果你不能使用它,它有什麼用? – EJP