Iper3打流时所支持的UDP协议是真的UDP吗?

作者:中国移动云能力中心  ——孙华敏

概要:iperf3工具是大家常用的一款tcp、udp打流工具,我们常常用来进行限速、带宽之类的测试。因此,对iperf3这款工具就不详细介绍了。回到标题,Iper3打流时所支持的UDP协议是真的UDP吗?

iperf3工具是大家常用的一款tcp、udp打流工具,我们常常用来进行限速、带宽之类的测试。因此,对iperf3这款工具就不详细介绍了。回到标题,Iper3打流时所支持的UDP协议是真的UDP吗?
我们不妨做个测试。在我们的移动云上同VPC下创建两个云主机,并设置云主机的安全组,使安全组只放通udp协议。

然后我们在两个云主机vm1和vm2上安装iperf3工具,并在vm1上开启iperf3 server,在vm2上开启iperf3 client,向vm1发送udp报文
vm1:iperf3 -s -i -p 1234
vm2:iperf3 -c 192.168.33.4 -i 1 -p 1234 -t 60 -b 100M -u
   这个时候我们会发现,vm1收到不vm2的iperf3打流的报文
   


   首先,安全组肯定是没有问题的。但为什么UDP不通呢?
   抓个包试试。通过抓包发现,vm2向vm1发的竟然是TCP报文

   那iperf3的udp模式真的是披着TCP外衣的假UDP吗?
   再做个测试,我们把安全组规则改成只放通TCP协议,再测试一下,看放通TCP后,ipef3打UDP是否能通
   


   结果发现,依旧不通


   
   但是多了个现象,vm1侧的server端出现了这样的现象:连接被clinet断了!因为我们只放通了TCP,因此这个所谓的连接只可能是TCP。但是建立了TCP连接后,又收不到报文


   
   只能再次抓包。通过抓包发现,竟然有UDP报文了,但是由于安全组没开UDP,所以被对端丢弃了。


   
   到这里基本就明白了,iperf3的udp功能,需要先建立tcp连接成功后,再建立UDP连接发送udp的报文。为了验证一下我们的猜测,我们把安全组规则放通TCP和UDP
   


   再用iperf3进行打UDP的流量,这时通了


   
   我们到vm1后台看一下端口情况,发现确实建立了两个连接,一个tcp连接,一个udp连接


   
   真相大白。那iperf3的udp是真的udp吗?答案是真的,但iperf3 udp的功能要依赖tcp建连成功。当我们用iperf3去进行udp打流的时候,iperf3的client和server首先会进行TCP握手,当TCP建连成功后,再建立UDP连接,之后才开始进行UDP报文的发送和接收。
   最后,如果我们需要测试比如安全组、虚拟防火墙等用例中只开放UDP的规则时,尽量不要用ipef3去测试,因为需要依赖TCP规则的放通。可以试试udpsend&udpreceive这款工具。

版权声明 (原创):本文内容由移动云用户自发贡献,版权归原作者所有,移动云开发者社区不拥有其著作权,亦不承担相应法律责任。如果您发现本社区有涉嫌抄袭的内容,可填写举报信息,一经查实,本社区将立刻删除涉嫌侵权内容。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值