【干货】UDP怎么测?

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 【干货】UDP怎么测?

背景


今天,有个朋友咨询我关于 UDP 协议的测试方法。在给他讲完之后我也顺手将大致的过程记录了下来,在此分享给大家。


因为其是测试 LB(Load Balance)UDP 协议的支持,关于服务端和客户端都需要自己来搭建。


测试工具选型


nc


nc 安装方便,使用简单,可以作为 server 实现 TCP/UDP 端口侦听,也可以作为 client 发起 TCP/UDP 连接。


iperf


安装也比较简单,支持 server 端和 client 端,是业内比较主流的灌包测速工具。在测速方面是比较好的选择。


开始测试


使用 nc

nc 安装


在服务端和客户端都安装 nc


yum install nc
复制代码


启动服务端


[root@test ~]# nc -uvl 30.30.30.201 8787
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on 30.30.30.201:8787
 # -u 使用UDP协议
 # -v 输出详细的交互信息和错误信息
 # -l 侦听模式即server模式
复制代码


上面的命令中,建议使用网卡上配置的 IP,不建议使用 127.0.0.1 这种本地环回地址,可能会出现问题。


客户端启动测试


首先创建一个测试文件,然后通过 nc 将这个文件的内容通过 UDP 协议传送到服务端,观察服务端控制台。


客户端:


echo "i am client." > t.txt
nc -u -w 1  30.30.30.201 8787 < t.txt
复制代码


服务端:


网络异常,图片无法展示
|


根据服务的响应,我们已经能够判断 UDP 链路已经 OK,此时就可以将服务端对接到 LB 的实例上,我们通过访问 LBIP 和端口就能到达服务端。

对于数据的具体报文详情,我们可以在服务端绑定的网卡上抓包分析即可。


测速


关于 nc 的测速,我们可以通过如下方式进行。


服务端:


将收到的数据扔到黑洞中。


nc -u -l 9999 > /dev/null
复制代码


客户端:


将无数的 0 通过 UDP 扔给服务端。


nc -u 30.30.30.201 8787 < /dev/zero
复制代码


使用 iperf


iperf 安装


在服务端和客户端都安装 iperf


yum install iperf
复制代码


启动服务端


[root@ ~]# iperf -s -u -p 8899
------------------------------------------------------------
Server listening on UDP port 8899
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
 # -s 以server模式启动
 # -u 使用UDP协议
 # -p 指定侦听端口
复制代码


启动客户端


[root@agent-1 ~]# iperf -c 30.30.30.201 -u -p 8899
------------------------------------------------------------
Client connecting to 30.30.30.201, UDP port 8899
Sending 1470 byte datagrams, IPG target: 11215.21 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 30.30.30.147 port 52522 connected with 30.30.30.201 port 8899
[ 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.042 ms    0/  892 (0%)
# -c 指定client的身份
# -u 使用UDP协议
# -p 指定服务端端口
复制代码


测试结果


如上,我们除了在客户端能够看到测试结果,服务端也有详细的测试结果。


网络异常,图片无法展示
|


根据 iperf 的测试结果,我们不但能够知道当前的 UDP 服务正常,而且带宽为: 1.05 Mbits/sec


关于 UDP 的测试我们今天先介绍到这里,后续更精彩。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
7月前
|
网络协议 数据安全/隐私保护 网络架构
IP 和 TCP 抓包分析实验
在这个实验中,网络拓扑包括两台路由器R1和R2,它们的g0/0接口分别配置IP地址1.1.1.1/24和1.1.1.2/24。实验步骤包括:在链路上开启抓包,R1向R2发送ping请求,并使用Wireshark分析抓取的ping包。接着在R2上启用FTP服务,创建用户abc,密码123456789A。R1成功连接到R2的FTP服务器,Wireshark捕获了登录时的用户名和密码信息。
74 6
|
4月前
|
缓存 网络协议 算法
工作3年,这么简单了10个TCP/IP常识,很多人都理不清!
工作3年,这么简单了10个TCP/IP常识,很多人都理不清!
|
6月前
|
网络协议
逆向学习网络篇:心跳包与TCP服务器
逆向学习网络篇:心跳包与TCP服务器
111 0
|
7月前
|
Web App开发 网络协议 测试技术
|
7月前
|
网络协议
【掰开揉碎】WebSocket与TCP/IP
【掰开揉碎】WebSocket与TCP/IP
|
缓存 网络协议 网络性能优化
|
消息中间件 缓存 网络协议
计网 - TCP 的稳定性:滑动窗口和流速控制是怎么回事?
计网 - TCP 的稳定性:滑动窗口和流速控制是怎么回事?
146 0
|
网络协议 安全 数据库
第二章TCP/IP—iOS网络七层模型
分层: 应用层 (Application): 网络服务与最终用户的一个接口。 协议有:HTTP FTP TFTP SMTP SNMP DNS 表示层(Presentation Layer): 数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层) 格式有,JPEG、ASCll、DECOIC、加密格式等 会话层(Session Layer): 建立、管理、终止会话。(在五层模型里面已经合并到了应用层) 对应主机进程,指本地主机与远程主机正在进行的会话 传输层 (Transport): 定义传输数据的协议端口号,以及流控和差错效验。
523 0
第二章TCP/IP—iOS网络七层模型
|
安全 网络协议 算法
第五章 TCP/IP-我们身边的网络(二)
前言:了解互联网接入方式,以及无线路由器相关知识
122 0
第五章 TCP/IP-我们身边的网络(二)
|
网络协议 Linux C++
如何进行千万级TCP连接测试
如何进行千万级TCP连接测试
680 0

热门文章

最新文章