1

tcp_probe モジュールを使用して TCP 接続の cwnd を収集すると、cwnd が停止して約 1467 (パケット) 増加します。誰でもこの理由を説明できますか? または地球上のcwndを制限しているものは何ですか?

TCP 接続は、host1 (192.168.0.2) から host2 (192.168.0.25) への 2G ファイルのダウンロードです。この接続のコマンドは次のとおりです。

@ホスト1: python -m SimpleHTTPServer

@ホスト2: wget http://192.168.0.2:8000/test_2G

tcp_probe を使用して cwnd を収集するコマンドは次のとおりです。

@ホスト1:modprobe tcp_probe port=800 full=1

あなたが知りたいかもしれない他の情報はここにあります:

@ホスト1:

#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
4

1 に答える 1

0

カーネルコードを掘り下げた後、tcp がネットワーク容量ではなくアプリケーションによって制限されている場合、CWND は増加機能を呼び出さないことがわかりました。

tcp_is_cwnd_limitedすべての魔法は、ファイル tcp_cong.c 内の関数によって引き起こされます。tcp が cwnd によって制限されていない場合、すべての輻輳アルゴリズムは直接戻ります。:)

于 2014-02-14T09:40:17.963 に答える