修复Linux TCP的窗口缩放问题
发布时间:2020-12-13 17:17:43 所属栏目:Linux 来源:网络整理
导读:我正在努力提高我的一台海外服务器的吞吐量,在监控服务器和家用电脑之间的传输后,我很确定我的窗口大小有问题. 对于ftp传输,我的接收窗口大小为14720. Window size value: 115Calculated window size: 14720Window size scaling factor: 128 我的发送窗口看
我正在努力提高我的一台海外服务器的吞吐量,在监控服务器和家用电脑之间的传输后,我很确定我的窗口大小有问题.
对于ftp传输,我的接收窗口大小为14720. Window size value: 115 Calculated window size: 14720 Window size scaling factor: 128 我的发送窗口看起来像我设置的那样: Window size value: 65335 Calculated window size: 261340 Window size scaling factor: 4 那么如何修复rwindow呢?我已经完成了服务器上的linux tcp设置,一切看起来都很正常.时间戳打开,syncookies关闭,缩放打开,麻袋打开,立方体是拥塞控制方法,最大接收和发送窗口大小是3mb.我已经尝试更改默认的tcp_wmem和tcp_rmem值,但它什么也没做. 编辑: 当我关闭服务器上的自动调整和/或窗口缩放时,窗口缩小到14600,这基本上是MSS的10倍. 5337 4.268584 2.2.2.2 1.1.1.1 FTP 106 Response: 227 Entering Passive Mode (2,2,240,15). 5338 4.268640 1.1.1.1 2.2.2.2 TCP 74 59855 > 61455 [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=431721460 TSecr=0 WS=128 5364 4.300368 1.1.1.1 2.2.2.2 TCP 54 57609 > ftp [ACK] Seq=217 Ack=648 Win=15744 Len=0 5480 4.346856 2.2.2.2 1.1.1.1 TCP 66 61455 > 59855 [SYN,ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 SACK_PERM=1 WS=128 5481 4.346867 1.1.1.1 2.2.2.2 TCP 54 59855 > 61455 [ACK] Seq=1 Ack=1 Win=14720 Len=0 5482 4.346893 1.1.1.1 2.2.2.2 FTP 70 Request: STOR 100mb.bin 5570 4.428061 2.2.2.2 1.1.1.1 FTP 109 Response: 150 Opening BINARY mode data connection for 100mb.bin 5571 4.428078 1.1.1.1 2.2.2.2 TCP 54 57609 > ftp [ACK] Seq=233 Ack=703 Win=15744 Len=0 5572 4.428155 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes 5573 4.428166 1.1.1.1 2.2.2.2 FTP-DATA 1514 FTP Data: 1460 bytes 5662 4.505384 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=1461 Win=8832 Len=0 5663 4.505392 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes 5664 4.505421 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=2921 Win=11776 Len=0 5665 4.505429 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes 5666 4.505535 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=4381 Win=14720 Len=0 5667 4.505543 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes 5734 4.583769 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=5841 Win=17536 Len=0 5735 4.583778 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes 5736 4.583781 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=7301 Win=20480 Len=0 5737 4.583787 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes 解决方法
从2.6.17(或大约有)linux内核开始,默认比例因子增加了.这样做的缺点是似乎有路由器/防火墙/等.没有正确处理TCP窗口缩放(rfc只有~16岁).如果你必须遍历其中一个设备,那么你需要关闭窗口缩放,否则事情变得非常缓慢.
在Redhat / Redhat系统上,“修复”是: /bin/cat <<'EOT'>>/etc/sysctl.conf # Turn off the tcp_window_scaling net.ipv4.tcp_window_scaling = 0 EOT /sbin/sysctl -p (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读