为什么80%的码农都做不了架构师?>>>
【概要】Iperf是一款网络性能测试工具,可以方便的用它进行SDN网络带宽和网络质量的测试,Iperf支持协议、定时、缓冲区等参数的配置调整,报告TCP/UDP最大带宽、延迟抖动、数据包丢失等统计信息。
1 Iperf安装
Iperf安装方法有多种,可以下载源码编译安装,也可以直接使用编译好的二进制版本,在ubuntu下安装使用iperf尤为简单,apt-get install iperf 即可,值得一提的是Mininet自带Iperf,在SDN网络上测试比较便捷。
2 工作原理
使用Iperf测试时必须将一台主机设置为客户端,一台主机设置为服务器。
Iperf测试TCP
Iperf测试TCP带宽的原理比较简单,在客户端和服务端建立三次握手连接后,客户端带宽的大小等于发送的总数据除以发送的总时间。对服务端测得的带宽,则是接收的总数据除以所花时间。
TCP模式下简单举例:
Server:iperf -s
Client:iperf -c 10.0.0.1 -i 1
客户端到服务器10.0.0.1上带宽测试,每一秒钟打印一次信息。
Iperf测试UDP
Iperf测试UDP性能时,客户端可以指定UDP数据流的速率。客户端发送数据时,将根据客户端提供的速率计算数据报发送之间的时延。
客户端还可以指定发送数据报的大小。每个发送的数据报包含一个ID号,用来唯一标识报文,服务器端根据该ID号来确定数据报丢失和乱序。
当把UDP报文大小设置可以将整个报文放入IP层的包(packet)内时,那么UDP所测得的报文丢失数据即为IP层包的丢失数据,这提供了一个有效的测试包丢失情况的方法。
数据报传输延迟抖动 (Jitter)的测试由服务器端完成,客户发送的报文数据包含有发送时间戳,服务器端根据该时间信息和接收到报文的时间戳来计算传输延迟抖动。传输延迟抖动反映传输过程中是否平滑。由于它是一个相对值,所以并不需要客户端和服务器端时间同步。
UDP模式下简单举例:
Server:iperf -s -u
Client:iperf -c 10.0.0.1 -u -b 100M
在UDP模式下,客户端以100Mbps为数据发送速率,测试客户端到服务器10.0.0.1上的带宽。
综上,用以下方法测试网络连接的质量:
- 延时(反应时间或者RTT):用ping命令量度
- Jitter(延时变化):用Iperf UDP测试来量度
- 数据报丢失:用Iperf UDP测试来量度
- 带宽:通过TCP测试来量度
3 参数配置
4 测试实例
测试环境
1) 已搭建好一套SDN网络环境,使用Mininet模拟交换机和主机连接到一款OpenFlow控制器
2) 使用Mininet自带的Iperf工具
应用实例
实例一:最简参数实例
Iperf客户端连接Iperf服务器的TCP默认端口5001,否则我们可以用-p参数修改Iperf服务器的端口,客户端与服务器必须加上同样的端口。结果显示的带宽是从用户到服务器之间的带宽。
本文未完,更多详情请查看原文
了解更多请关注http://www.sdnlab.com
官方微信平台