【问题标题】:increase tcp receive window on linux在linux上增加tcp接收窗口
【发布时间】:2013-02-17 18:56:03
【问题描述】:

类似于Setting TCP receive window in C and working with tcpdump in LinuxWhy changing value of SO_RCVBUF doesn't work?,我无法增加 ubuntu linux 2.6.32-45 上大于 5888 的初始 tcp 接收窗口

#!/usr/bin/python
from socket import socket, SOL_SOCKET, SO_RCVBUF, TCP_WINDOW_CLAMP
sock = socket()
sock.setsockopt(SOL_SOCKET, SO_RCVBUF, 65536)
sock.setsockopt(SOL_SOCKET, TCP_WINDOW_CLAMP, 32768)
sock.connect(('google.com', 80))

tcpdump 说:

me > google: Flags [S], seq 3758517838, win 5840, options [mss 1460,sackOK,TS val 879735044 ecr 0,nop,wscale 6], length 0
google > me: Flags [S.], seq 597037042, ack 3758517839, win 62392, options [mss 1430,sackOK,TS val 541301157 ecr 879735044,nop,wscale 6], length 0
me > google: Flags [.], ack 1, win 92, options [nop,nop,TS val 879735051 ecr 541301157], length 0

sysctl -a | grep net.*mem 说:

net.core.wmem_max = 131071
net.core.rmem_max = 131071
net.core.wmem_default = 112640
net.core.rmem_default = 112640
net.core.optmem_max = 10240
net.ipv4.igmp_max_memberships = 20
net.ipv4.tcp_mem = 77376        103168  154752
net.ipv4.tcp_wmem = 4096        16384   3301376
net.ipv4.tcp_rmem = 4096        87380   3301376
net.ipv4.udp_mem = 77376        103168  154752
net.ipv4.udp_rmem_min = 4096
net.ipv4.udp_wmem_min = 4096

会不会有其他东西对我的连接设置了接收窗口限制?

【问题讨论】:

    标签: python sockets tcp tcpdump setsockopt


    【解决方案1】:

    这看起来像是 TCP 慢启动的影响。这个 2008 年的内核线程提供了一个很好的解释(我已经链接到线程中的最后一个响应):

    如果您继续观看直播,则窗口大小应该增加,直到您设置的最大值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      • 2011-01-14
      相关资源
      最近更新 更多