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

发表于:2023-4-26 09:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:恒悦sunsite    来源:CSDN

  一、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命令常用参数建设
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号