有没有办法在ubuntu服务器上以大于默认的TCP窗口大小开始?
我看到/ proc / sys / net / ipv4 /中有一些参数:
/proc/sys/net/ipv4/tcp_window_scaling (which is 1) /proc/sys/net/ipv4/tcp_adv_win_scale (2) /proc/sys/net/ipv4/tcp_slow_start_after_idle (1) /proc/sys/net/ipv4/tcp_window_scaling (1)
由于TCP是全双工的,因此有两个初始拥塞窗口(IW),一个用于发送,一个用于接收.可以使用route命令设置它们,但我在2.6.32中发现它在查看数据包捕获后不起作用.在我的桌面(3.0.0)上,默认情况下IW更高(10个数据包),所以我没有在更高版本中测试它,因为这是我想要的增加.
理论上,这些可以使用ip route设置,例如:
sudo ip route add< DEST IP>通过< GATEWAY IP> proto static initcwnd 10
对于发送IW.为了接收IW改变initcwnd到initrwnd.
如果这是有效的,我相信你应该在新的窗口大小反映在TCP握手的SYN或SYN / ACK数据包(取决于发送/接收窗口)中.由于拥塞窗口是内部的,不同于窗口中的告诉它的唯一方法就是测试更高延迟的连接,看看是否有更多的初始数据包被发送.我最近自己一直在看这个,所以作为免责声明,我对所有这些都100%肯定.
在此之后,窗口大小应该使用默认的Linux参数进行缩放,而不会导致窗口绑定方面的任何问题.你可能不想搞砸这个,除非你有捕获显示你经常遇到窗口绑定的情况(如果是这种情况,接收器将发送大量的Win 0包.)