局域网网络测速

为了查看搭建的网络的吞吐量能力,需要对网络进行测速。
网络测速有两种方式:

1. TamoSoft Throughput Test

应用场景

仅有windows系统的时候,此时可以使用软件TamoSoft Throughput Test,这个软件在网络上有安装版和汉化绿色版,均可使用,测速方式比较简单。

操作步骤

  1. 在服务器上打开server,设置好端口,然后应用即可
  2. 在需要访问服务器的客户端上打开Client,设置好服务器的IP地址、设置与server相同的端口,然后连接即可开始测试
  3. 如果要结束测试,在Client上点击端口,然后关闭Server端即可

2. iperf3

应用场景

如果服务是部署在Linux上,而客户端有windows和Linux系统,此时需要使用软件iperf,此软件免费,网址是https://iperf.fr/或者http://software.es.net/iperf/或者https://github.com/esnet/iperf,这是个命令行工具,windows下的图形界面为Jperfhttps://sourceforge.net/projects/iperf/files/jperf/

简单操作步骤

  1. 安装
    1. Centos7安装扩展yum源之后,可以使用命令yum install iperf安装此工具。除此之外,还可以官网下载rpm包进行安装或者下载源码包进行编译安装
    2. windows系统只需要去官网下载压缩包,解压即可使用
  2. 测速。测速模式和TamoSoft Throughput Test相同,分为server端和client端
    1. TCP测速
      1. 服务端:iperf3 -s -B 服务器IP
      2. 客户端:iperf3 -c 服务器IP
    2. UDP测速:
      1. 服务端:iperf3 -s -B 服务器IP
      2. 客户端:iperf3 -c -u 服务器IP

详细介绍

功能

1. TCP

  1. 测量网络带宽
  2. 报告MSS/MTU值的大小和观测值
  3. 支持TCP窗口值通过套接字缓冲
  4. 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接

2. UDP

  1. 客户端可以创建指定带宽的UDP流
  2. 测量丢包
  3. 测量延迟
  4. 支持多播
  5. 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)

3. 其他

  1. 在适当的地方,选项中可以使用K(kilo-)和M(mega-),例如131072字节可以用128K代替
  2. 可以指定运行的总时间,甚至可以设置传输的数据总量
  3. 在报告中,为数据选用最合适的单位
  4. 服务器支持多重连接,而不是等待一个单线程测试
  5. 在指定时间间隔重复显示网络带宽,波动和丢包情况
  6. 服务器端可作为后台程序运行
  7. 服务器端可作为Windows 服务运行
  8. 使用典型数据流来测试链接层压缩对于可用带宽的影响
  9. 支持传送指定文件,可以定性和定量测试

命令行详解

1. 客户端与服务器共用选项

  1. -p, --port #:要侦听/连接到的服务器端口。默认是5201端口
  2. -f, --format [kmgKMG]:格式化带宽数输出,默认为M
  3. -i, --interval #:设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为0
  4. -F, --file name:使用特定的数据流测量带宽,例如指定的文件
  5. -B, --bind <host>:绑定到主机的多个地址中的一个。对于客户端来说,这个参数设置了出栈接口;对于服务器端来说,这个参数设置入栈接口。这个参数只用于具有多网络接口的主机。在UDP模式下,此参数用于绑定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址
  6. -V, --verbose:输出更多的细节
  7. -J, --json:输出Json格式
  8. --logfile f:输出结果到日志文件
  9. -d, --debug:进入调试模式,显示更多内容
  10. -v, --version:显示版本号
  11. -h, --help:帮助内容

2. 服务器端专用选项

  1. -s, --server:服务器模式
  2. -D, --daemon:将服务器作为守护程序运行。Unix平台下,Iperf作为后台守护进程运行;在Win32平台下,Iperf将作为服务运行
  3. -I, --pidfile file:将进程号写入pid文件
  4. -1, --one-off:处理一个客户端连接,然后退出

3. 客户端专用选项

  1. -c, --client <host>:运行Iperf的客户端模式,连接到指定的Iperf服务器端
  2. -u, --udp:使用UDP方式而不是TCP方式
  3. -b, --bandwidth #[KMG][/#]:目标带宽(bits/sec)(0表示无限)。UDP默认1Mbit/sec,TCP不受限制。对于突发模式,可选斜杠和数据包计数
  4. -t, --time #:传输时间(秒),默认10秒
  5. -n, --bytes #[KMG]:要传输的字节数(替代-t)
  6. -k, --blockcount #[KMG]:要传输的块(数据包)数(用来替代-t或-n)
  7. -l, --len #[KMG]:读取或写入的缓冲区长度(TCP默认128KB,UDP默认8KB)
  8. --cport <port>:绑定到特定的客户端端口(TCP和UDP,默认值:临时端口)
  9. -P, --parallel #:服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接
  10. -R, --reverse:以反向模式运行(服务器发送,客户端接收)
  11. -w, --window #[KMG]:设置窗口大小/套接字缓冲区大小
  12. -M, --set-mss #:设置TCP/SCTP最大段大小(MTU-40字节)
  13. -N, --no-delay:设置TCP/SCTP无延迟,即禁用Nagle算法
  14. -4, --version4:仅用ipv4
  15. -6, --version6:仅用ipv6
  16. -S, --tos N:设置服务类型
  17. -Z, --zerocopy:使用“零拷贝”方法发送数据
  18. -O, --omit N:省略前n秒
  19. -T, --title str:在每个输出行前面加上特定字符串
  20. --get-server-output:从服务器获取结果
  21. --udp-counters-64bit:在UDP测试数据包中使用64位计数器