安装完iperf3 3.13版本后,我们可以通过man iperf3帮助命令看到对-w参数的解释如下:
-w, --window n[KMGT]
set socket buffer size / window size. This value gets sent to the server and used on that side too; on both sides this option sets both the sending and receiving socket buffer sizes. This option can be used to set (indirectly) the maximum TCP window size. Note that on Linux systems, the effective maximum window size is approximately double what is specified by this option (this behavior is not a bug in iperf3 but a “feature” of the Linux kernel, as documented by tcp(7) and socket(7)).
翻译一下:本参数用于设置socket的缓冲区大小或者窗口大小。这个设置值会被发送到服务端并且在服务端也会配置生效;在客户端和服务端,这个参数会去同时设置发送缓冲区与接收缓冲区。这个参数可以用于设置TCP窗口的最大值(间接的)。注意在Linux系统中,配置这个个参数后,生效的最大窗口大小大约是设置值的二倍(这不是iperf3的bug, 这是linux kernel的系统行为,参考TCP(7)和socket(7))
注意-w这个参数只能在服务端命令行里被输入,但会同时在客户端的接收和发送缓冲区、服务端的接收和发送缓冲区同时设置生效。
不想知道详细过程的,可以直接看结论\color{red}直接看结论直接看结论:
如果你的测试目标是达到网络的最大速率(最大吞吐量),那么
通过官方说明,我们已经知道了,对于TCP和对于UDP而言-w的意义并不相同,所以下面分成UDP和TCP二部分来说明。
UDP套接字都有发送缓冲区大小,但实际上不存在UDP发送缓冲区,发送缓冲区大小的实际意义是可写到套接字的UDP数据报的大小上限。应用程序如果写一个大于上限的数据包进套接字,则系统会返回一个发送出错。
影响UDP可发送的报文大小的上限的二个因素:
注意UDP报文不要发送得太大,太大了受限于MTU, ip会自动产生分片,UDP报文会被分成多个IP报文,一个ip分片丢失,整个UDP报文报废。
我们以UDP单向测试为例(客户端发送---->服务端接收)
服务端:
结论:使用UDP的话-w参数在不出错的情况下越大越好
如何查看Linux系统定义发送接收缓冲区的最小值:
通过打开-d选项,设置一个很小的-w, 比如 -w 256 可以看到如下打印
xxx@xxx-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -u -b 10M -w 256 -d
send_parameters:
{"udp": true,"omit": 0,"time": 10,"parallel": 1,"window": 256,"len": 1448,"bandwidth": 10000000,"pacing_timer": 1000,"client_version": "3.9"
}
Connecting to host 192.168.3.60, port 5201
SNDBUF is 4608, expecting 256
RCVBUF is 2304, expecting 256
Setting application pacing to 1250000
[ 5] local 192.168.3.107 port 39954 connected to 192.168.3.60 port 5201
pi@raspberrypi:~ $ iperf3 -s -A 2 -d
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
get_parameters:
{"udp": true,"omit": 0,"time": 10,"parallel": 1,"window": 256,"len": 1448,"bandwidth": 10000000,"pacing_timer": 1000,"client_version": "3.9"
}
Accepted connection from 192.168.3.107, port 37692
SNDBUF is 4480, expecting 256
RCVBUF is 2240, expecting 256
Setting application pacing to 1250000
[ 5] local 192.168.3.60 port 5201 connected to 192.168.3.107 port 39954
xxx@xxx-pc:~$ sudo cat /proc/sys/net/core/rmem_max
212992
xxx@xxx-pc:~$ sudo cat /proc/sys/net/core/wmem_max
212992
pi@raspberrypi:~ $ sudo cat /proc/sys/net/core/wmem_max
180224
pi@raspberrypi:~ $ sudo cat /proc/sys/net/core/rmem_max
180224
从文章使用iperf3对长肥网络进行TCP测试(TCP长肥管道),如何配置iperf3中我们知道-w参数可以用来扩大接收窗口,用于解决TCP长肥管道中TCP流速度打不上去的问题。
客户端用的是8核i8的x86机器,单核主频为4.0Ghz,而服务端使用的是树莓派4B,单核主频为1G的ARM A53 CPU下,通过一个千兆的交换机直接连接,我们可以看到二个主机之间的带宽是1Gbps, RTT大约是0.2ms。在这样的网络下,我们直接使用默认参数进行TCP测试,如下所示可以达到940Mbps,此时服务端CPU2已经几乎达到100%了,说明受限于CPU处理能力,940Mbps基本上就是TCP的极速了。
-客户端测试命令:
xxx@xxx-pc:~$ ping 192.168.3.60
PING 192.168.3.60 (192.168.3.60) 56(84) bytes of data.
64 bytes from 192.168.3.60: icmp_seq=1 ttl=64 time=0.150 ms
64 bytes from 192.168.3.60: icmp_seq=2 ttl=64 time=0.192 ms
64 bytes from 192.168.3.60: icmp_seq=3 ttl=64 time=0.206 ms
64 bytes from 192.168.3.60: icmp_seq=4 ttl=64 time=0.219 ms
64 bytes from 192.168.3.60: icmp_seq=5 ttl=64 time=0.195 ms
64 bytes from 192.168.3.60: icmp_seq=6 ttl=64 time=0.214 ms
64 bytes from 192.168.3.60: icmp_seq=7 ttl=64 time=0.202 ms
^C
--- 192.168.3.60 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6135ms
rtt min/avg/max/mdev = 0.150/0.196/0.219/0.021 msxxx@xxx-pc:~$ /usr/bin/iperf3 -c 192.168.3.60
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 58330 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 114 MBytes 955 Mbits/sec 0 390 KBytes
[ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec 0 390 KBytes
[ 5] 2.00-3.00 sec 112 MBytes 942 Mbits/sec 0 390 KBytes
[ 5] 3.00-4.00 sec 112 MBytes 942 Mbits/sec 0 390 KBytes
[ 5] 4.00-5.00 sec 112 MBytes 942 Mbits/sec 0 390 KBytes
[ 5] 5.00-6.00 sec 112 MBytes 942 Mbits/sec 0 390 KBytes
[ 5] 6.00-7.00 sec 112 MBytes 942 Mbits/sec 0 390 KBytes
[ 5] 7.00-8.00 sec 112 MBytes 942 Mbits/sec 0 390 KBytes
[ 5] 8.00-9.00 sec 112 MBytes 936 Mbits/sec 0 390 KBytes
[ 5] 9.00-10.00 sec 112 MBytes 942 Mbits/sec 0 390 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec 0 sender
[ 5] 0.00-10.02 sec 1.10 GBytes 939 Mbits/sec receiveriperf Done.
pi@raspberrypi:~ $ iperf3 -s -A 2
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.3.107, port 54922
[ 5] local 192.168.3.60 port 5201 connected to 192.168.3.107 port 54924
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 110 MBytes 919 Mbits/sec
[ 5] 1.00-2.00 sec 112 MBytes 941 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec
[ 5] 3.00-4.00 sec 112 MBytes 941 Mbits/sec
[ 5] 4.00-5.00 sec 112 MBytes 941 Mbits/sec
我们用netem依次来来模拟一个来100ms回100ms来回共200ms的传播延时,带宽为1Gbps的长肥网络
有服务端输入命令:
root@raspberrypi:/home/pi# tc qdisc add dev eth0 root netem delay 100ms
root@raspberrypi:/home/pi#
在客户端输入命令:
root@xxx-pc:/home/xxx# tc qdisc add dev enp2s0 root netem delay 100ms
root@xxx-pc:/home/xxx# ping 192.168.3.60
PING 192.168.3.60 (192.168.3.60) 56(84) bytes of data.
64 bytes from 192.168.3.60: icmp_seq=1 ttl=64 time=200 ms
64 bytes from 192.168.3.60: icmp_seq=2 ttl=64 time=200 ms
64 bytes from 192.168.3.60: icmp_seq=3 ttl=64 time=200 ms
^C
--- 192.168.3.60 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 200.252/200.279/200.299/0.019 ms
我们通过ping命令可以看到RTT已经是200ms.
我们可以看到,使用默认参数,TCP的速率很低,经过最初3秒中的慢启动爬坡后,速率最终稳定在105Mbps,远没有达到带宽的理论值 1Gbps,此时处理能力弱的服务端的CPU2的占用率还是很低的约为15%,说明不是CPU处理能力限制了带宽,而是TCP长肥管道限制了速率。
root@wangsheng-pc:/home/wangsheng# /usr/bin/iperf3 -c 192.168.3.60 -t 10
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 45868 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 740 KBytes 6.06 Mbits/sec 0 113 KBytes
[ 5] 1.00-2.00 sec 6.18 MBytes 51.9 Mbits/sec 0 3.51 MBytes
[ 5] 2.00-3.00 sec 12.5 MBytes 105 Mbits/sec 0 4.95 MBytes
[ 5] 3.00-4.00 sec 12.5 MBytes 105 Mbits/sec 0 4.95 MBytes
[ 5] 4.00-5.00 sec 11.2 MBytes 94.4 Mbits/sec 0 4.95 MBytes
[ 5] 5.00-6.00 sec 12.5 MBytes 105 Mbits/sec 0 4.95 MBytes
[ 5] 6.00-7.00 sec 12.5 MBytes 105 Mbits/sec 0 4.95 MBytes
[ 5] 7.00-8.00 sec 12.5 MBytes 105 Mbits/sec 0 4.95 MBytes
[ 5] 8.00-9.00 sec 12.5 MBytes 105 Mbits/sec 0 4.95 MBytes
[ 5] 9.00-10.00 sec 12.5 MBytes 105 Mbits/sec 0 4.95 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 106 MBytes 88.6 Mbits/sec 0 sender
[ 5] 0.00-10.20 sec 105 MBytes 86.1 Mbits/sec receiveriperf Done.
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.3.107, port 45854
[ 5] local 192.168.3.60 port 5201 connected to 192.168.3.107 port 45868
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 99.0 KBytes 811 Kbits/sec
[ 5] 1.00-2.00 sec 3.40 MBytes 28.5 Mbits/sec
[ 5] 2.00-3.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 3.00-4.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 4.00-5.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 5.00-6.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 6.00-7.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 7.00-8.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 8.00-9.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 9.00-10.00 sec 12.3 MBytes 103 Mbits/sec
[ 5] 10.00-10.20 sec 2.47 MBytes 104 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.20 sec 105 MBytes 86.1 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
根据TCP流量控制算法和拥塞控制算法,为了让TCP占满整个带宽(其实是带宽时延),至少需要满足3个条件
1)接收端需要通告一个 **带宽时延**这么大的窗口,这样可以让发送端可以发送足够多的数据
2)发送端需要有 带宽*时延这么大的发送窗口,这样可以让发送端有足够多的数据可发
3)网络不能拥塞,不能用其它流量来占用网络,否则拥塞控制算法会让吞量下降
再根据
长肥网络与TCP的长肥管道
使用iperf3对长肥网络进行TCP测试(TCP长肥管道),如何配置iperf3
我们知道,通过-w增加窗口大小,会有利于在TCP长肥管道中得到更大的吞吐量。
以下我们分别测试-w为1k,2k,4k,8k,16k,32k,64k,128k,256k情况下的TCP吞吐量依次为26Kbps,34Kbps, 116Kbps,232Kbps,570Kbps,1.2Mbps,2.4Mbps,4.6Mbps,7.15Mbps
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 1k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 40282 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 2.73 KBytes 22.4 Kbits/sec 0 5.47 KBytes
[ 5] 1.00-2.00 sec 3.28 KBytes 26.9 Kbits/sec 0 5.47 KBytes
[ 5] 2.00-3.00 sec 2.19 KBytes 17.9 Kbits/sec 0 5.47 KBytes
[ 5] 3.00-4.00 sec 3.28 KBytes 26.9 Kbits/sec 0 5.47 KBytes
[ 5] 4.00-5.00 sec 2.19 KBytes 17.9 Kbits/sec 0 5.47 KBytes
^C[ 5] 5.00-5.21 sec 1.09 KBytes 42.2 Kbits/sec 0 5.47 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-5.21 sec 14.8 KBytes 23.2 Kbits/sec 0 sender
[ 5] 0.00-5.21 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 2k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 33848 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 3.54 KBytes 28.9 Kbits/sec 0 7.07 KBytes
[ 5] 1.00-2.00 sec 4.24 KBytes 34.8 Kbits/sec 0 7.07 KBytes
[ 5] 2.00-3.00 sec 2.83 KBytes 23.2 Kbits/sec 0 7.07 KBytes
[ 5] 3.00-4.00 sec 4.24 KBytes 34.8 Kbits/sec 0 7.07 KBytes
[ 5] 4.00-5.00 sec 2.83 KBytes 23.2 Kbits/sec 0 7.07 KBytes
^C[ 5] 5.00-5.63 sec 2.83 KBytes 36.9 Kbits/sec 0 7.07 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-5.63 sec 20.5 KBytes 29.8 Kbits/sec 0 sender
[ 5] 0.00-5.63 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 4k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 53130 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 12.7 KBytes 104 Kbits/sec 0 14.1 KBytes
[ 5] 1.00-2.00 sec 14.1 KBytes 116 Kbits/sec 0 14.1 KBytes
[ 5] 2.00-3.00 sec 14.1 KBytes 116 Kbits/sec 0 14.1 KBytes
[ 5] 3.00-4.00 sec 14.1 KBytes 116 Kbits/sec 0 14.1 KBytes
^C[ 5] 4.00-4.62 sec 11.3 KBytes 149 Kbits/sec 0 14.1 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-4.62 sec 66.5 KBytes 118 Kbits/sec 0 sender
[ 5] 0.00-4.62 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 8k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 53150 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 28.3 KBytes 232 Kbits/sec 0 14.1 KBytes
[ 5] 1.00-2.00 sec 28.3 KBytes 232 Kbits/sec 0 14.1 KBytes
[ 5] 2.00-3.00 sec 28.3 KBytes 232 Kbits/sec 0 14.1 KBytes
[ 5] 3.00-4.00 sec 28.3 KBytes 232 Kbits/sec 0 14.1 KBytes
^C[ 5] 4.00-4.81 sec 28.3 KBytes 285 Kbits/sec 0 14.1 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-4.81 sec 141 KBytes 241 Kbits/sec 0 sender
[ 5] 0.00-4.81 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 16k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 33258 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 62.2 KBytes 510 Kbits/sec 0 28.3 KBytes
[ 5] 1.00-2.00 sec 56.6 KBytes 463 Kbits/sec 0 28.3 KBytes
[ 5] 2.00-3.00 sec 70.7 KBytes 579 Kbits/sec 0 28.3 KBytes
[ 5] 3.00-4.00 sec 83.4 KBytes 684 Kbits/sec 0 28.3 KBytes
[ 5] 4.00-5.00 sec 56.6 KBytes 463 Kbits/sec 0 28.3 KBytes
^C[ 5] 5.00-5.16 sec 28.3 KBytes 1.41 Mbits/sec 0 28.3 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-5.16 sec 358 KBytes 567 Kbits/sec 0 sender
[ 5] 0.00-5.16 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 32k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 59778 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 132 KBytes 1.08 Mbits/sec 0 62.2 KBytes
[ 5] 1.00-2.00 sec 148 KBytes 1.22 Mbits/sec 0 62.2 KBytes
[ 5] 2.00-3.00 sec 148 KBytes 1.22 Mbits/sec 0 62.2 KBytes
[ 5] 3.00-4.00 sec 119 KBytes 973 Kbits/sec 0 62.2 KBytes
^C[ 5] 4.00-4.40 sec 89.1 KBytes 1.81 Mbits/sec 0 62.2 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-4.40 sec 636 KBytes 1.18 Mbits/sec 0 sender
[ 5] 0.00-4.40 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 64k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 56910 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 223 KBytes 1.83 Mbits/sec 0 113 KBytes
[ 5] 1.00-2.00 sec 249 KBytes 2.04 Mbits/sec 0 129 KBytes
[ 5] 2.00-3.00 sec 330 KBytes 2.70 Mbits/sec 0 129 KBytes
[ 5] 3.00-4.00 sec 305 KBytes 2.50 Mbits/sec 0 129 KBytes
[ 5] 4.00-5.00 sec 299 KBytes 2.45 Mbits/sec 0 129 KBytes
[ 5] 5.00-6.00 sec 312 KBytes 2.55 Mbits/sec 0 129 KBytes
^C[ 5] 6.00-6.41 sec 153 KBytes 3.04 Mbits/sec 0 129 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-6.41 sec 1.83 MBytes 2.39 Mbits/sec 0 sender
[ 5] 0.00-6.41 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 128k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 52618 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 263 KBytes 2.15 Mbits/sec 0 113 KBytes
[ 5] 1.00-2.00 sec 597 KBytes 4.89 Mbits/sec 0 257 KBytes
[ 5] 2.00-3.00 sec 721 KBytes 5.91 Mbits/sec 0 257 KBytes
[ 5] 3.00-4.00 sec 563 KBytes 4.61 Mbits/sec 0 257 KBytes
[ 5] 4.00-5.00 sec 708 KBytes 5.80 Mbits/sec 0 257 KBytes
[ 5] 5.00-6.00 sec 560 KBytes 4.59 Mbits/sec 0 257 KBytes
[ 5] 6.00-7.00 sec 572 KBytes 4.68 Mbits/sec 0 257 KBytes
^C[ 5] 7.00-7.61 sec 431 KBytes 5.77 Mbits/sec 0 257 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-7.61 sec 4.31 MBytes 4.75 Mbits/sec 0 sender
[ 5] 0.00-7.61 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
wangsheng@wangsheng-pc:~$ /usr/bin/iperf3 -c 192.168.3.60 -t 100 -w 256k
Connecting to host 192.168.3.60, port 5201
[ 5] local 192.168.3.107 port 56548 connected to 192.168.3.60 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 419 KBytes 3.43 Mbits/sec 0 113 KBytes
[ 5] 1.00-2.00 sec 707 KBytes 5.79 Mbits/sec 0 359 KBytes
[ 5] 2.00-3.00 sec 875 KBytes 7.17 Mbits/sec 0 359 KBytes
[ 5] 3.00-4.00 sec 1011 KBytes 8.28 Mbits/sec 0 359 KBytes
[ 5] 4.00-5.00 sec 871 KBytes 7.13 Mbits/sec 0 359 KBytes
[ 5] 5.00-6.00 sec 873 KBytes 7.15 Mbits/sec 0 359 KBytes
[ 5] 6.00-7.00 sec 873 KBytes 7.15 Mbits/sec 0 359 KBytes
^C[ 5] 7.00-7.08 sec 175 KBytes 17.2 Mbits/sec 0 359 KBytes
注意:使用了一个巨大的窗口值来提高吞吐量其实是带来RTT测试周期变长的风险的,RTT测量周期变长意味着TCP协议栈不能很好的去适应网络的状态的变化。