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

概要: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这款工具。

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

Iper3打流时所支持的UDP协议是真的UDP吗?相关推荐

  1. UDP协议详解(UDP协议特点,UDP协议格式、UDP的应用)

    目录 前言 1.UDP协议的特点 2. UDP协议格式的特点 3. UDP的应用 前言 TCP和UDP协议都是传输层的协议,其中传输层是负责端对端之间的连接,端是指端点. 端口的划分和知名端口 0~1 ...

  2. udp协议没有粘包问题、基于socketserver实现并发的socket(基于tcp、udp协议)、基于udp协议的套接字、操作系统原理以及进程知识

    基于udp协议的套接字通信服务端 from socket import *server=socket(AF_INET,SOCK_DGRAM) #数据报协议->udp server.bind((' ...

  3. 计算机网络---TCP/UDP协议(一)

    TCP协议 传输控制协议,面向连接的.可靠的.基于流服务的传输层通信协议. TCP协议使用的是超时重传.数据确认机制来保证数据传输的可靠性,确保数据正确的被接收,使用TCP通信双方必须先建立连接,并在 ...

  4. TCP与UDP协议,socket套接字编程,通信相关操作

    文章目录 TCP与UDP协议 TCP协议 ==三次握手== ==四次挥手== UDP协议 TCP与UDP的区别 应用层 socket套接字 代码优化 循环通信 半连接池 粘包问题 TCP与UDP协议 ...

  5. 简介 传输层协议——UDP协议

    UDP协议: UDP:User Datagram Protocol 用户数据报协议 UDP简介: UDP是一种面向无连接的传输层协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可 ...

  6. TCP/UDP协议对比分析

    TCP与UDP区别: TCP提供可靠的服务,不丢失,不重复.UDP没有保证. TCP头部20字节,UDP头部8字节等. TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. ...

  7. 网络编程及三大协议(TCP + UDP + Http)

    网络编程及三大协议(TCP + UDP + Http) 一.网络编程 1.计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络 ...

  8. 【网络协议笔记】TCP/UDP 协议整理

    概要 运输层协议为运行在不同主机上的应用 进程 之间提供了 逻辑通信(logic communica-tion)功能. 运输层是在 端系统中 而不是在路由器中实现的. 在发送端,运输层将从发送应用程序 ...

  9. 从零开始的计网学习——运输层(计网TCP/UDP协议部分,面试核心、高频考点,必读!)

    文章目录 5.1 运输层概述 5.2 运输层端口号.复用和分用的概念 端口号 发送方的复用和接收方的分用 5.3 UDP和TCP的对比 TCP的流量控制 5.5 TCP拥塞控制 慢开始算法 拥塞避免算 ...

  10. java dtls server_DTLS协议(基于UDP)中client/server的认证过程和密钥协商过程

    我的总结:DTLS的握手就是协商出一个对称加密的秘钥(每个客户端的秘钥都会不一样),之后的通信就要这个秘钥进行加密通信.协商的过程要么使用非对称加密算法进行签名校验身份,要么通过客户端和服务器各自存对 ...

最新文章

  1. jQuery取得select选择的文本与值
  2. VMware vSphere Client安装Centos7
  3. exe一机一码加密工具_文件夹加密软件有哪些作用?
  4. 基于matlab的能级_波函数及几率密度图形的绘制,基于MATLAB的能级波函数及几率密度图形的绘制.pdf...
  5. 对于linux socket与epoll配合相关的一些心得记录
  6. 9 位 IEEE Fellow 确认出席 2019 嵌入式智能国际大会!
  7. echarts 饼图
  8. 全网首发:解决办法,/bin/ant: 1: cd: can‘t cd to /bin/../share/ant/bin/..
  9. Qt文件路径:QDir
  10. 为python写了一个事件机制 - 小川 - 博客园
  11. NTFS文件系统下文件恢复
  12. 做了5年Android开发,混吃等死的日子才是我人生最辛苦的日子!
  13. SDL_FillRect函数
  14. 从零开始学R(三)——基本计算
  15. Arthas、jprofiler使用
  16. Node.js 和npm的安装(插件的安装)
  17. aot慈善币跑路了_慈善币AOT:用公益收割“韭菜”
  18. nginx隐藏 X-Powered-By HTTP头
  19. 大学生博主-14天学习挑战赛活动-CSDN
  20. 力扣93 - 复原IP地址【回溯算法】

热门文章

  1. 微信小程序自定义字体及自定义图标问题说明
  2. c语言api接口文档模板,apiDoc生成接口文档,不费吹灰之力
  3. TiledMap的使用
  4. cocos2d-x 学习笔记——瓦片地图TiledMap
  5. 《微积分的力量》读书摘记
  6. mysql省市区三级联动数据库的源码(二)
  7. wps android 接口,Android调用WPS接口打开office类型文件
  8. 分布式常见面试题详解
  9. android跑马灯源码,Android跑马灯的简单实现方式
  10. 3dmax:3dmax三维VR渲染设置之高级灯光渲染(光度学—自由灯光、目标灯光、天空门户)图文教程之详细攻略