使用Iperf调整网络 iperf怎么使用

Iperf 是一个 TCP/IP 和 UDP/IP 的性能测量工具,通过调谐各种参数可以测试TCP的最大带宽,并报告带宽、延迟,最大段和最大传输单元大小等统计信息。Iperf可以运行于Linux/BSD、Unix及Windows等操作系统。

一、Iperf工作原理

Iperf主要的功能是调谐基于特定路径的TCP连接的性能,我们知道TCP连接调谐最基本的措施是调谐TCP窗口的大小,窗口大小控制在任何节点网络中可以存在的数据大小如果该值太小, 发送者将会在某段时间处于空闲状态,从而影响发送的性能。TCP窗口大小的理论值为链路瓶颈带宽与往返时延的乘积:

bottleneck bandwidth * round trip time

例如链路瓶颈带宽为45Mbit/sec,往返时延为42ms(可以通过ping来测试),那么窗口的理论值为:

45Mbit/sec*42ms=(45e6)*(42e-3)

=1890000 bits

230KByte

调谐窗口大小即可以上.理论值为基准,在该值上慢慢增大或减少,即可获得最好的结果。

IperfN试TCP带宽的原理较简单,即客户端和服务器端建立连接,然后客户端发送一定大小的数据,并记下发送的时间, 或者客户端在一定的时间内发送数据,并记下发送的总数据。带宽的大小等于发送的总数据除以发送的总时间。对服务器端来说,就是在连接建立时间内,接收的总数据除以所花时间即为服务器端所测得的带宽。MSS的大小通过TCP内核接口函数直接获得。

测试UDP的性能,客户端可以指定UDP数据流的速率。客户端发送数据时将根据客户提供的速率计算数据报发送之间的时延。另外客户还可以指定发送数据报的大小。每个发送的数据报包含一个ID号,用来惟一的标识该报文。服务器端则根据该ID 号来确定数据报丢失和乱序。当把UDP报文大小设置可以将整个报文放入I P 层的包(packet)内时,那么UDP所测得的报文丢失数据即为IP层包的丢失数据。这提供了一个有效的测试包丢失情况的方法。数据报传输延迟抖动(Jitter)的测试由服务器端完成,客户发送的报文数据包含有发送时间戳,服务器端根据该时间信息和接收到报文的时间戳来计算传输延迟抖动。传输延迟抖动反映传输过程中是否平滑。由于它是一个相对值,所以并不需要客户端和服务器端时间同步。

二、Iperf实现

Iperf源代码采用面向对象的C++语言实现,主要包括基本类和实现类两部分。基本类提供了实现中需要用到的一些基本的对象,包括队列、链表、时间管理、锁、条件、线程等,这些代码不是特定于Iperf应用的,可以移植到其他应用程序。实现类中主要包括针对Iperf应用的类,包括实现客户端/服务器端发送和接收数据的类,以及用于统计信息的类等。这里主要讨论一下与应用关系最紧密的几个类,其他的类不做详述。

Iperf主要类图结构包括9个类。IPerf 的核心部分均在PerfSocket类中实现,包括客户端和服务器端发送和接收数据、带宽报告、数据丢失及延迟抖动报告,以及窗口大小和MSS报告等功能。其中Speaker和Client为客户端的对象,Listener、Audience和Server为服务器端的对象。客户端和服务器端的通信通过三个消息完成:Connect、write及shutdown。这里connect不同于TCP中的连接,它还包含一个数据报文,其信息为双向测试而传给服务器端的信息,主要用于双向测试时让服务器端启动客户端线程而所需要的信息。UDP 测试的过程基本上跟TCP类似。UDP报文包含了一个应用报文头,其主要字段为报文ID和时间信息,这个主要是为了测试UDP报文的丢失、乱序以及延迟抖动性能。UDP的第一个报文用来建立连接,不作为应用数据,其信息为双向测试而传给服务器端的信息,主要用于双向测试时让服务器端启动客户端线程而所需要的信息。UDP与TCP第一个报文内容的主要区别是UDP报文还包括一个应用报文头。UDP传输结束通过客户端发送一个FIN 的报文来实现,该报文的报文ID为负数,服务器端接收到FIN报文后即停止接收报文并回送一个AckFIN报文给客户,AckFIN 报文包含了服务器端得到的测试数据。

操作举例:

1)TCP测试

服务器执行:#iperf -s -i 1 -w 1M

使用Iperf调整网络 iperf怎么使用
客户端执行:#iperf -c host -i 1 -w 1M

其中-w表示TCP window size,host需替换成服务器地址。

2)UDP测试

服务器执行:#iperf -u -s

客户端执行:#iperf -u -c 10.32.0.254 -b 900M -i 1 -w 1M -t 60

其中-b表示使用带宽数量,千兆链路使用90%容量进行测试就可以了。

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/64351.html

更多阅读

最好用的免费网络电话 网络电话怎么做

谁也没能想到,苹果手机的出现能够改变人们的通讯习惯乃至消费潮流。不过,科技创新的脚步一直没有停下,近些年网络电话正在以迅猛的发展速度走进广大用户的手机应用中。很多业内人士根据目前比较火热的如中华通、爱聊、阿里通等热门的网

网络打印机怎么安装、设置? 网络打印机怎么设置ip

网络打印机怎么安装、设置?——简介下面来详细说下网络打印机怎么安装、怎么设置的。我们所说的网络打印机其实有二层意思,一层意思是说usb接口网络共享的打印机,另外一层意思是说有独立的ip的网络打印机。小编这里的网络打印机是指有

移动的3g网络该怎么用 移动4g卡放在3g手机上

移动的3g网络该怎么用——简介3G网络,是指使用支持高速数据传输的蜂窝移动通讯技术的第三代移动通信技术的线路和设备铺设而成的通信网络。3G网络将无线通信与国际互联网等多媒体通信手段相结合,是新一代移动通信系统。对于移动3g网络

网络ssid怎么设置 精 ssid怎么设置成中文

网络ssid怎么设置 精——简介网络SSID一般是无线路由器中使用的名字,就是我们使用带WIFI功能的设备搜索该路由器的名称。设置一个个性好记的SSID名可以让我们更加方便的使用无线网络。本文就具体介绍网络SSID的设置方法。

网络信用卡怎么申请 虚拟信用卡怎么申请

网络信用卡怎么申请——简介支付宝钱包怎么申请网络信用卡?支付宝钱包怎么申请信用卡?中信银行与支付宝钱包合作将推出首页网络信用卡,小编给大家分享下怎么样申请,需要具备什么条件。网络信用卡怎么申请——工具/原料支付宝钱包中信

声明:《使用Iperf调整网络 iperf怎么使用》为网友拼搏吧学渣分享!如侵犯到您的合法权益请联系我们删除