当我使用tcp_probe模块收集TCP连接的cwnd时,cwnd将停止增加大约1467(数据包)。任何人都可以解释这个的原因吗?或者是什么限制了地球上的cwnd?
TCP连接是从host1(192.168.0.2)下载到host2(192.168.0.25)的2G文件,这是我对此连接的命令。
@ host1:python -m SimpleHTTPServer
@ host2:wget http://192.168.0.2:8000/test_2G
以下是使用tcp_probe收集cwnd的命令:
@ host1:modprobe tcp_probe port=800 full=1
以下是您可能想知道的其他信息:
@ host1:
#ifconfig eth4
eth4 Link encap:Ethernet HWaddr 90:E2:BA:14:BE:AC
inet addr:192.168.0.2 Bcast:192.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::92e2:baff:fe14:beac/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15263651 errors:0 dropped:0 overruns:0 frame:0
TX packets:31145880 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:5000
RX bytes:1008133254 (961.4 MiB) TX bytes:47154490579 (43.9 GiB)
Memory:fb780000-fb800000
#cat /proc/sys/net/ipv4/tcp_mem
770373 1027165 1540746
#cat /proc/sys/net/core/rmem_default
212992
#cat /proc/sys/net/core/rmem_max
12582912
#cat /proc/sys/net/core/wmem_default
425984
#cat /proc/sys/net/core/wmem_max
12582912
#cat /proc/sys/net/ipv4/tcp_wmem
10240 87380 12582912
#cat /proc/sys/net/ipv4/tcp_rmem
10240 87380 12582912
答案 0 :(得分:0)
在深入了解内核代码之后,我发现如果tcp受应用程序而不是网络容量限制,CWND将不会调用增加函数。
所有魔法都是由文件tcp_cong.c中的函数tcp_is_cwnd_limited
引起的。如果tcp不受cwnd限制,则每个拥塞算法将直接返回。 :)