UDP测试解决方案
一、UDP介绍
1.1 UDP特点
(1)无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延
(2)不保证可靠交付,因此主机不需要为此复杂的连接状态表
(3)面向报文的,意思是 UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,在添加首部后向下交给 IP 层
(4)没有阻塞控制,因此网络出现的拥塞不会使发送方的发送速率降低(常用于压测场景)
(5)支持一对一、一对多、多对一和多对多的交互通信,也即是提供广播和多播的功能
(6)首部开销小,首部只有 8 个字节,分为四部分
1.2 TCP/UDP对比
二、nc工具简介
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。
2.1 nc的作用
(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
(2)端口的扫描,nc可以作为client发起TCP或UDP连接
(3)机器之间传输文件
(4)机器之间网络测速
2.2 nc安装
[root@ansible ~]# yum install nc -y
2.3 启动服务端
[root@ansible ~]# nc -uvl 10.25.25.25 6666 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on 10.25.25.25:6666 # -u 指定nc使用UDP协议,默认为TCP # -v 输出详细的交互信息和错误信息 # -l 侦听模式即server模式 # -s 指定发送数据的源IP地址,适用于多网卡机 # -w 超时秒数,后面跟数字 # -z 表示zero,表示扫描时不发送任何数据
2.4 客户端启动测试
首先创建一个测试文件,然后通过 nc 将这个文件的内容通过 UDP 协议传送到服务端,观察服务端控制台。
(1)客户端
[root@blogs-v2 ~]# echo "i am client." > t.txt [root@blogs-v2 ~]# nc -u -w 1 10.25.25.25 6666 < t.txt # 传送文件到服务端
(2)服务端
三、iperf工具简介
iperf是专门用于简化TCP性能优化的工具,使用它可以很容易地测量吞吐量和带宽的最大值。当与UDP一起使用时,iperf还可以测量数据丢失和延迟(抖动)。iperf可以在任何IP 网络上运行,包括本地以太网,因特网接入连接和Wi-Fi网络。使用iperf之前,必须安装两个组件:iperf 服务器(用于监听到达的测试请求)和iperf客户端(用于发起测试会话)。
3.1 参数解读
iperf -s # 服务端命令,即server模式 -f [b|B|k|K|m|M|g|G] # f参数表示单位 -i [2] # i参数表示测试开始到结束的间隔时间,单位s -l # 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16 -m 显示tcp最大mtu值 -o # 将报告和错误信息输出到文件eg:iperf -c 10.25.25.25 -o /mnt/iperflog.txt -w [2000] # 指定TCP窗口大小,单位是byte -p [12000] # p参数可指定端口号 -u -b 10m # udp 10mbps 测试 -B # 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数) -m # 最大mpu测试 -P # 并行测试 -h # 帮助 -u # 使用UDP协议 -M # 设定TCP数据包的最大mtu值 -V # 传输ipv6数据包 server专用参数 -N # 设定TCP不延时 client端参数: iperf -c 10.1.1.1 # 客户端命令,即client模式 -d # d参数和r近似,并且功能更强,可同时测试双向数据 -n # 指定传输的字节数,eg:iperf -c 10.25.25.25 -n 100000 -r # r参数表示双向数据测试,但要先测c到s的带宽 -t # 测试时间,默认10秒,eg:iperf -c 10.25.25.25 -t 5 -F # 指定需要传输的文件 -T # 指定ttl值
3.2 iperf安装
[root@ansible ~]# yum install iperf -y
3.3 启动服务端
[root@ansible ~]# iperf -s -u -p 6666 ------------------------------------------------------------ Server listening on UDP port 6666 Receiving 1470 byte datagrams UDP buffer size: 208 KByte (default) ------------------------------------------------------------
3.4 启动客户端
[root@blogs-v2 ~]# iperf -c 10.25.25.25 -u -p 6666 ------------------------------------------------------------ Client connecting to 10.25.25.25, UDP port 6666 Sending 1470 byte datagrams, IPG target: 11215.21 us (kalman adjust) UDP buffer size: 208 KByte (default) ------------------------------------------------------------ [ 3] local 10.25.203.134 port 57442 connected with 10.25.25.25 port 6666 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec [ 3] Sent 892 datagrams [ 3] Server Report: [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.024 ms 0/ 892 (0%)
作者:UStarGao
链接:https://www.starcto.com/nettool/207.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2021-03-28Hadoop伪分布式系统搭建
- 2021-05-29MySQL 索引介绍
- 2021-09-27MongoDB compact 操作介绍-碎片整理
- 2022-10-01MongoDB切换主节点技巧
- 2021-09-07Linux远程拷贝数据-限速和断点续传