iperf
perf 是个网路效能测试工具 , 可以测试频宽、lost rate 等等
windows 和 linux 上都可以使用 , 互打没有问题
首先 , 要准备 2 台电脑 , 一台当 client ( 发送封包 ) , 一台当 server ( 接收封包 )
case 1 :
上图是在 windows 上的 iperf ( version 2.0.5 )
iperf -c iperf.it-north.net -n 1000m -u -i 1 -b 1000m
参数说明
-c iperf.it-north.net : -c 表示当成 client 并且连线到 iperf.it-north.net
iperf.it-north.net 是 public 的 iperf server
也可以写成 -c 82.200.209.194 , 改用 ip 的方式
-n 1000m : 要传送的 byte , 1000m = 1000MBytes
-u : 使用 udp 传送
-i 1 : 每 1 秒印出讯息
-b 1000m : 设定频宽 ( bandwidth ) , 也就是传送的速度
1000m = 1000mbps , 此选项只能用在 UDP , 所以要搭配 -u
此 case 没有 Server Report , 因为最后没有收到 server 送来的封包
不清楚 server 到底有没有收到
只知道自己送出的 bandwidth
若是自己架的 iperf server , 可以检查封包是否被 firewall 挡住
case 2 :
上图是在 windows 上的 iperf ( version 2.0.5 )
iperf -V -c 2001:b021:34:7f::1 -n 1m -u -i 1 -b 1m
参数说明
-V : 使用 ipv6 protocol , 所以 -c 后面是 ipv6 address
最后会收到 server 送来的封包 , 显示 Server Report , 告诉你结果
[ 3] 0.0- 8.4 sec 1.00 MBytes 999 Kbits/sec 0.656 ms 0/ 713 (0%)
0.0- 8.4 sec 1.00 MBytes ==> 8.4 秒内传了 1 MByte
999 Kbits/sec ==> 平均传送速度 ( data rate )
0.656 ms ==> jitter
0/ 713 (0%) ==> 遗失 0 个 datagram ( Lost Datagrams )
传送 713 个 datagram ( Total Datagrams ) , 0% 的遗失率
[ 3] 0.0- 8.4 sec 1 datagrams received out-of-order
有 1 个 datagram 收到的顺序不对
上图是在 linux 上的 iperf ( version 2.0.5 )
iperf -s -u -V -i 1
参数说明
-s : 代表当作 server
-V : 若要让 client 用 ipv6 测试 , 要加这个 option
server 这端可以看到每个时段的 jitter , lost datagrams , total datagrams
case 3 :
此 case 是有 lost datagrams , 59 % 遗失
client 送出 100 MBytes , 平均 data rate = 100 Mbits/sec
server 收到 41.1 MBytes , 平均 data rate = 40.2 Mbits/sec
由此可推知 , client 和 server 之间的频宽约 40 Mbps
client 送太快了 , 超过的部分就会 lost
若将 client 送出的 data rate 限制在 40 Mbps
lost datagrams 就会明显改善许多
case 4 :
用 IPv4 测试
iperf -c 192.168.6.1 -n 2m -u -i 1 -b 10m -l 1000 -P 4
参数说明
-l : 指定载送封包的大小 , 单位是 byte
-P 4 : 同时建立 4 条连线 , 所以会看到 [3] [4] [5] [6] 四个资讯
实用网站
待续
看完文章请按 赞 or 推 , 感谢啦 ~