在Linux中,如何設置TCP連接上允許的最大段大小?我需要將它設置爲我沒有寫入的應用程序(所以我不能使用setsockopt
來做到這一點)。我需要在網絡堆棧中設置這個高於mtu。如何在Linux上設置最大TCP最大段大小?
我有兩個流共享同一個網絡連接。一個定期發送小包,這需要絕對最小的延遲。另一方發送大量數據 - 我正在使用SCP來模擬該鏈接。
我已經設置交通控制(TC),得到最低延時的流量高優先級。但是我遇到的問題是,從SCP傳出的TCP數據包最終大小達64K字節。是的,這些被分解成基於mtu的更小的數據包,但是這不幸在發生在數據包的優先次序後發生。因此,我的低延遲數據包滯留在高達64K字節的SCP流量後面。
This article表明,在Windows中可以設置這個值。
有什麼在Linux上我可以設置?我已經嘗試過ip route和iptables,但是這些在網絡堆棧中應用得太低。我需要在tc之前限制TCP數據包大小,因此它可以適當地優先考慮高優先級數據包。
我發現很難相信包在TCP隊列中結束了64k,tc不能在TCP層上工作,它關心數據包,而不是TCP段 – nos 2010-10-04 18:18:48
我必須同意。從我的閱讀中,TCP段應該在tc之前分解。但是,這不是我所看到的(無論是在延遲還是在tcpdump中)。當一個大的TCP段出去時,它會延遲高優先級的通道,直到發送大段的所有(最多64K字節)爲止。 – Eric 2010-10-18 21:40:05