iperf3

摘要:
1.测量网络带宽。2.报告MSS/MTU值的大小和观察值。3.支持通过套接字缓冲TCP窗口值。4.当P线程或Win32线程可用时,192.168.1.2将iperf3-s[选项]描述为客户端[服务器]参数。#服务器使用-s标志,并将服务器消息写入日志文件。[client]参数描述了iperf3-c1192.168.1.1[options]#使用-c标志作为客户端运行,

使用方法

一、首先是介绍:iperf3是一个网络带宽测试工具,iperf3可以擦拭TCP和UDP带宽质量。iperf3可以测量最大TCP带宽,具有多种参数和UDP特性,iperf3可以报告带宽、延迟抖动和数据包丢失。

二、使用iperf3,你可以调整与时序、缓冲区和协议(如TCP、UDP、SCTP)相关的几个参数。它对网络性能调优操作很方便,为了获得最大或相当改善的网络性能,你需要增加吞吐量以及网络接收个发送功能的延迟。但是在进行实际调整之前,你需要执行一些测试以收集整体网络性能统计信息,以指导你的调优过程。其结果包括以秒为单位的时间间隔,数据传输,带宽(传输速率),丢失和其他有用的网络性能参数,它主要用于协助调整特定路径上的TCP连接。

TCP:

1.测量网络带宽

2.报告MSS/MTU值的大小和观测值

3.支持TCP窗口值通过套接字缓冲

4.当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接

UDP: 

1.客户端可以创建指定带宽的UDP流

2.测量丢包

3.测量延迟

4.支持多播

5.当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)

实验环境:192.168.1.1 作为服务器端,192.168.1.2 作为客户端

【服务端】参数介绍

iperf3 -s [options]     #使用-s标志的是服务器,默认使用5201端口
[options]含义描述
-f
例:-f K
指定生成报告的数据格式类型(其中k表示Kbits、m表示Mbits、g表示Gbits、K表示KBytes、M表示MBytes、G表示GBytes)
-p
例:-p 4000
指定其他端口监听(例如指定4000端口)
-D
例:-D > iperf3.log
作为守护程序运行,并将服务器消息写入日志文件
  

【客户端】参数介绍

iperf3 -c 192.168.1.1 [options]     #使用-c标志以客户端运行,192.168.1.1表示服务器IP
[options]含义描述
-f [k|m|g|K|M|G]
例:-f K
指定生成报告的数据格式类型(其中k表示Kbits、m表示Mbits、g表示Gbits、K表示KBytes、M表示MBytes、G表示GBytes)
-w
例:-w 200K
使用-w标志设置TCP窗口大小、套接字缓冲区大小
-R在服务器发送和客户端接收的反向模式下运行,可以添加-R开关。
-d运行双向测试,意味着我们要同时测量两个方向上的宽带,可以使用-d选项。
--get-server-output如果要在客户端输出中获取服务器结果,可以使用“--get-server-output”选项,此时我们便会在客户端上获取两份数据。
-P
例:-P 5
使用-P选项设置并行客户端测试进程的数量,如果设置为5,那么也就相当与对端建立五个连接
-i
例:-i 3
设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。
-m输出TCP MSS值(通过TCP_MAXSEG支持)。MSS值一般比MTU值小40字节。(通常情况)
-u使用UDP方式,不加这个参数默认是TCP模式
-b [K|M|G]
例:-b 50M
UDP模式使用的带宽,单位bits/sec。此选项与-u选项相关。默认值是1 Mbit/sec。
-t
例:-t 60
设置传输的总时间。Iperf在指定的时间内,重复的发送指定长度的数据包。默认是10秒钟。 在指定“-n”参数后,“-t”参数失效
-p
例:-p 5200
指定服务器监听端口(例如服务器指定端口为5200)
-n [K|M|G]
例:-n 100M
指定传输数据包的字节数
在指定“-n”参数后,“-t”参数失效
-I指定读写缓冲区的长度。TCP方式默认大小为8KB,UDP方式默认大小为1470字节

解决iperf发包高丢包率的问题

使用iperf生成并发送数据,在数据包长度固定的情况下(L默认为1470字节),带宽越大,每秒钟发送的数据包越多。

例如:

iperf -u -c 10.0.0.2 -p 8080 -t 10 -i 1  -b 10M
iperf -u -c 10.0.0.3 -p 8080 -t 10 -i 1  -b 100m

显然:b为100m时每秒发送的数据包的数量为b为10m时的10倍。
当链路延时较大时,每秒发送的数据包数量太多时会造成比较大的丢包率

如下:
客户端

1

服务器端

2

当增加每个数据包的大小减少发送的数据包数量时可以显著降低高丢包率

iperf -u -c 10.0.0.3 -p 8080 -t 10 -i 1 -l 50k -b 100m

3

4

参考:

https://blog.51cto.com/ning235/1567273

https://blog.csdn.net/haimianxiaojie/article/details/51077494

https://www.cnblogs.com/wuling129/p/4795262.html

免责声明:文章转载自《iperf3》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Kettle行列转换SQLYOG导入数据时报错,出现找不到Microsoft office 元驱动程式,并且无法安装64位office Access驱动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SAP ABAP RFC接口通用日志工具:abap fm logger

很早之前就想写个能记录函数模块日志的通用工具,最早尝试时,没有想清楚插入代码的体积过大问题的解决方案。在一些群友的提醒下,了解到可以用宏来处理这一问题。不过当时比较忙,没有动笔,后来也渐渐忘记。最近又想起这件事,花了2天完成了一个初步的实现。介绍给大家,希望能有参考价值。 本文链接:https://www.cnblogs.com/hhelibeb/p/13...

Altera FFT核使用详解

简介 快速傅里叶变换(Fast Fourier Transform)最为一种高效的算法,被广泛的用于信号处理与数据分析等领域。对于设计工程师来讲,自己动手采样可编程语言来实现一个FFT/IFFT模块,不知要花费多少心血。所幸的是Altera和Xilinx两大巨头都提供了自己FFT核,本文将详细讲解如何使用Altera的FFT核。 Altera FFT...

App功能测试的注意点

  好几个月没有写博客记录学习心得了,这次回老家深夜闲来无事写一篇记录下这段时间的面试心得,这次面试过程很多面试官都问APP的有关测试,下面我就自己的认识和工作中的经验来谈谈自己对APP测试的认识: 1.push消息推送测试 检查push消息是否按照指定的业务规则发送。 检查不接收推送消息时,用户不会再接收到push消息。 如果用户设置了免打扰的时...

Java IO系列之一:IO

1. 概述  Java IO一般包含两个部分:   1.java.io包中堵塞型IO;   2.java.nio包中的非堵塞型IO,通常称为New IO。 java.io包下,分为四大块近80个类: 1、基于字节操作的I/O接口:InputStream和OutputStream 2、基于字符操作的I/O接口:Writer和Reader 3、基于磁盘操作的I...

使用阿里云服务器写shell脚本发送qq邮件的三个形式

【准备工作】 IPtables的使用如下命令:(执行以下以下命令把25和465端口打开) iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 465 -j...

NPOI读取Excel

项目环境:Webform framework4.0 dll版本:NPOI2.0  dotnet2.0版本 这两天要做个excel导入的功能,想到以前用过NPOI,感觉很给力,今天写了个DEMO,写的时候还算顺利,毕竟以前用过,还是想记录下来,留着以后直接复制 把excel数据读取并拼接到DataTable中,为了使用SqlBulkCopy一次性拷贝到数据库...