我有一个问题,为了了解iperf是如何工作的,我使用以下命令。我不理解的是"6945数据包怎么发送?"因为如果传输9.66 MBytes,那么根据我的理解应该传输9.66 m/1458 = 6625数据克。
如果10.125MBytes (2.7Mbps * 30秒)被传输,那么6944数据克将被发送(不包括udp和其他报头)
如果有人知道,请澄清。
(我也在客户端和服务器上使用了wireshark并检查了,那里的数据包数量大于iperf显示的数据包数量)
umar@umar-VPCEB11FM:~$ iperf -t 30 -c 192.168.3.181 -u -b 2.7m -l 1458
------------------------------------------------------------
Client connecting to 192.168.3.181, UDP port 5001
Sending 1458 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.175 port 47241 connected with 192.168.3.181 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-30.0 sec 9.66 MBytes 2.70 Mbits/sec
[ 3] Sent 6946 datagrams
[ 3] Server Report:
[ 3] 0.0-92318.4 sec 9.66 MBytes 878 bits/sec 0.760 ms 0/ 6945 (0%)
iperf使用以2为基数的M和K,即K = 1024, M = 1024*1024。
当你这样计算时,你得到9.66 MB/1458 B/d = 6947数据报,这是在精度误差之内(你有0.01 MB的最大分辨率,这意味着舍入误差为0.005 MB ~= 3.6数据报)。