由于我们的服务既支持tcp链接也支持udp链接,所以想测试下我们服务在tcp链接和udp链接的抗弱网能力。
所以我们使用chaos-mesh工具,模拟网络故障-丢包(Loss)。但在测试过程中发现一个奇怪的现象,当设置75%丢包后,tcp链接就会断开,但使用udp链接时设置100%丢包,还是可以正常通信。
所以怀疑chaos-mesh的丢包没有限制udp协议?(最后发现是设置错了服务器)
开始想用nc来测试一下,但nc只能测试是否打开了udp端口,不能测试udp的丢包率。没办法只能使用iperf来测试了。
例如,要测试udp的丢包率。可以按如下步骤测试
1、登陆服务器,并启动iperf服务端
iperf-p80-s-u-i1参数说明:
2、在客户端,启动iperf客户端
iperf-c127.0.0.1-p80-u-b10M-t10-i1-P1参数说明:
3、运行结果如下图
注意:
测试tcp跟udp没啥区别,就是去掉-u参数
iperf-p80-s-i12、在客户端,启动iperf客户端
iperf-c127.0.0.1-p80-b10M-t10-i1-P13、运行结果如下图
例如,要测试是否开放了服务器A的udp13000端口。
1、登陆服务器A
2、将现有使用udp13000端口
3、在服务器A中启动iperf服务端,命令如下
iperf-p13000-s-u-i14、找一台机房外部的电脑(比如需要在家访问服务器),启动iperf客户端,命令如下
iperf-c127.0.0.1-p13000-u-b10M-t10-i1-P15、这样如果能看到丢包测试结果,也就证明网络是通的。如下图
无论在服务端还是客户端看到如红框内容都代表udp13000是通的,没有被防火墙拦截。
THE END