SDN学习目录
1. iPerf and Netperf
iPerf是网络性能测试工具,可以测试主机之间的吞吐量。iPerf具有多种参数和特性,支持协议、定时、缓冲区等参数的配置调整,能够测试TCP/UDP的最大带宽、延迟抖动、数据包丢失等统计信息。iPerf基于Server/Client的工作模式,客户端向服务端发送一定量的数据,服务端统计并计算带宽、延时和抖动等信息。
- 命令格式: iperf [-s|-c host] [options]
Netperf也是网络性能测试工具,主要用于测试TCP或UDP和Berkeley套接字接口的批量数据传输(Bulk Data Transfer)和请求/应答(Request/Reponse)性能。Netperf工具以Client/Server方式工作,服务端是netServer,用来侦听来自客户端的连接,客户端时NetPerf,用来向服务发起网络测试。在客户端与服务端之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果。在控制连接建立并传递了测试配置信息以后,客户端与服务之间建立一个测试连接,用于来回传递特殊的流量,已测试网络性能。
- 命令格式:netperf [global options] –[test-specific options]
2. 性能测试指标
- 网络吞吐量:单位时间内通过某个网络(信道或接口)的数据量,吞吐量受网络的带宽或网络的额定速率限制,单位bit/s
- 网络延时:一个数据包从用户的计算机发送到网站服务器,然后立即从网站服务器返回用户计算机的来回时间。影响网络演示的主要因素:路由的跳数和网络的流量。交换机延时(Latency)是指从交换机接收到数据包到开始向目的端口复制数据包之间的时间间隔。有许多因素会影响交换机演示大小,如转发技术等。
- 抖动:用于描述包在网络中的传输延时变化,抖动越小,说明网络质量越稳定、越好。
- 丢包率:理想状态下发送多少数据包就能接收到多少数据包。但由于信号衰减、网络质量等诸多因素的影响并不能达到理想状态。丢包率是指测试中多丢失的数据包数量占所有发送数据包的比率。
3. iPerf和Netperf比较
比较项 | iPerf | Netperf |
---|---|---|
支持多线程 | 是 | 是 |
可以设置服务器关闭之前保持的连接数 | 是 | 否 |
支持组播 | 是 | 否 |
支持除TCP,UDP之外的协议 | 否 | 是 |
支持IPv6 | 一定程度上 | 是 |
可以输出TCP MSS指 | 是 | 否 |
设置测试分组大小 | 否 | 是 |
支持多种测试范式 | 否 | 是 |
4. 测试命令
4.1 iPerf
一、TCP测试
1 | # 主机一 10.0.0.8 |
二、UDP测试
1 | # 主机一 10.0.0.8 停止iPerf TCP服务 |
note: 若发现Server接收不到Client 端发来的包,即没有任何输出,请检查是不是Client 端发的数据包大小大于Server端网卡设置的MTU值。当不设置-l的时候,Client端默认发送的数据包大小为1470.
4.2 Netperf
一、TCP测试
1 | # 主机一 |
二、UDP 测试
1 | netperf -t UDP_STREAM -H 10.0.0.8 -p 9991 -- -m 1024 |
note: 不同于iPerf, Netperf测试UDP数据包无需在服务器端指定参数,所以,不用重启服务器,只需要在客户端上加上 -t UDP_STREAM