网络工具之流量测试工具nuttcp安装和使用

一、nuttcp简介

  nuttcp是一种网络性能测量工具,供网络和系统管理员使用。它最基本的用途是确定原始TCP(或UDP)网络层吞吐量,方法是通过将内存缓冲区从源系统跨互连网络传输到目标系统,或者传输指定时间间隔的数据,或者传输指定数量的字节。除了以Mbps为单位报告已实现的网络吞吐量外,nuttcp还提供与数据传输相关的其他有用信息,如用户、系统和挂钟时间、发射机和接收机CPU利用率以及丢失百分比(对于UDP传输)。
  nuttcp基于nttcp,而nttcp又是Silicon Graphics(SGI)在原始ttcp上的一个增强,ttcp是1984年12月前某个时候由BRL的Mike Muuss编写的,用于比较U.C.Berkeley和BBN的TCP堆栈性能,以帮助DARPA决定将哪个版本放在第一个BSD Unix版本中。nuttcp除了基本的ttcp/nttcp之外,还有一些有用的特性,例如服务器模式、速率限制、多个并行流和基于计时器的使用。最近的变化包括IPv6支持、IPv4多播以及设置最大段大小或TOS/DSCP位的能力。nuttcp正在不断发展,以满足出现的新需求,并添加所需的新功能。nuttcp已经成功构建并运行在各种Solaris、SGI和PPC/X86 Linux系统上,并且可能在大多数Unix版本上运行良好。它还成功地用于各种版本的Windows操作系统。

二、安装步骤

1、下载软件包

nuttcp当前最新版本为8.2.2,发布时间是2020年5月11号。
在这里插入图片描述

[root@s145 opt]# wget http://nuttcp.net/nuttcp/nuttcp-8.2.2.tar.bz2

2、安装bzip2压缩工具

[root@s145 opt]# yum install -y bzip2

3、解压软件包

[root@s145 opt]# tar -jxvf nuttcp-8.2.2.tar.bz2

4、编译nuttcp

[root@s145 nuttcp-8.2.2]# gcc -O2 -o nuttcp nuttcp-8.2.2.c
在这里插入图片描述

5、查看命令版本

[root@s145 nuttcp-8.2.2]# ./nuttcp -V
nuttcp-8.2.2

三、使用示例

1、获取nuttcp命令帮助

[root@s145 nuttcp-8.2.2]# ./nuttcp --help

2、开启nutcp server

[root@s145 nuttcp-8.2.2]# ./nuttcp -S在这里插入图片描述

3、sender主机上发送数据包

#默认发送10秒钟的数据包
[root@s142 nuttcp-8.2.2]# ./nuttcp 192.168.0.145
115.2640 MB / 10.33 sec = 93.6465 Mbps 0 %TX 11 %RX 0 retrans 1539 KB-cwnd 1.63 msRTT
#说明s142和s145主机之间带宽是100M
[root@s146 nuttcp-8.2.2]# ./nuttcp 192.168.0.145
27935.5000 MB / 10.00 sec = 23436.2504 Mbps 73 %TX 97 %RX 0 retrans 2040 KB-cwnd 1.02 msRTT
#s146和s145主机是两个虚拟机,在同一个宿主机上带宽可达23Gbps。

4、启动server时指定监听端口

#nuttcp支持启动多个server
[root@s145 nuttcp-8.2.2]# ./nuttcp -S -P5001
[root@s145 nuttcp-8.2.2]# netstat -tnpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 11262/./nuttcp
tcp 0 0 0.0.0.0:5001 0.0.0.0:* LISTEN 11282/./nuttcp
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3494/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4490/master
tcp6 0 0 :::3306 ::😗 LISTEN 27669/mysqld
tcp6 0 0 :::22 ::😗 LISTEN 3494/sshd
tcp6 0 0 ::1:25 ::😗 LISTEN 4490/master

5、发送1500字节大小的包1G

[root@s146 nuttcp-8.2.2]# ./nuttcp -n1G -l1500 192.168.0.145
1023.9987 MB / 9.64 sec = 891.1428 Mbps 99 %TX 69 %RX 0 retrans 159 KB-cwnd 1.07 msRTT

6、间隔1秒展示数据

[root@s142 nuttcp-8.2.2]# ./nuttcp -i1 192.168.0.145
11.1250 MB / 1.00 sec = 93.3333 Mbps 0 retrans 547 KB-cwnd
11.2500 MB / 1.00 sec = 94.3723 Mbps 0 retrans 1073 KB-cwnd
11.1875 MB / 1.00 sec = 93.8473 Mbps 0 retrans 1539 KB-cwnd
11.2500 MB / 1.00 sec = 94.3722 Mbps 0 retrans 1539 KB-cwnd
11.1875 MB / 1.00 sec = 93.8467 Mbps 0 retrans 1539 KB-cwnd
11.1875 MB / 1.00 sec = 93.8483 Mbps 0 retrans 1539 KB-cwnd
11.2500 MB / 1.00 sec = 94.3714 Mbps 0 retrans 1539 KB-cwnd
11.1875 MB / 1.00 sec = 93.8479 Mbps 0 retrans 1539 KB-cwnd
11.1875 MB / 1.00 sec = 93.8476 Mbps 0 retrans 1539 KB-cwnd
11.1875 MB / 1.00 sec = 93.8442 Mbps 0 retrans 1539 KB-cwnd

115.3814 MB / 10.30 sec = 93.9696 Mbps 0 %TX 9 %RX 0 retrans 1539 KB-cwnd 1.60 msRTT

7、反向测试

在这里插入图片描述

8、设置发射机窗口为2M

[root@s142 nuttcp-8.2.2]# ./nuttcp -w2m 192.168.0.145
nuttcp-t: Warning: send window size 212992 < requested window size 2097152
nuttcp-r: Warning: receive window size 212992 < requested window size 2097152
112.4138 MB / 10.03 sec = 94.0136 Mbps 0 %TX 10 %RX 0 retrans 209 KB-cwnd 1.78 msRTT

9、使用udp进行测试

在这里插入图片描述

10、10个数据包的突发发送80Mbps UDP包并持续5秒

在这里插入图片描述

四、nuttcp命令常用参数建设

参数参数说明
-S服务器模式
-p##要发送到的端口号
-P##控制连接端口号,默认5000
-T##传输超时,单位为秒(或(m
-i##接收器间隔报告,以秒(或(m
-r反向
-N##平行流的数量
-u使用UDP而不是TCP
-R 90m(UDP的速率限制)
-Ri设置数据包突发大小
-w##发射机|接收机TCP窗口大小,单位为KB(或(m | m)B或(g | g)B)
-xt跟踪路由功能。它显示了从服务器到客户端的路由,反之亦然
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒悦sunsite

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值