网路模拟器WANem
命令行下显示LINUX多个网卡的实时流量MRTG或NAGIOS、bmon、dmstats
Iperf是一个网路性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以检测最大TCP带宽,具有多种参数和UDP特点。Iperf可以报告带宽,延后晃动和数据包遗失。借助Iperf这一特点,可以拿来测试一些网路设备如路由器,防火墙,交换机等的性能。
Iperf有两种版本,windows版和linux版本。linux版本更新快,最新版本为iperf3.0,下载地址为,windows版本官方更新的最新版本为1.7(打包在jperf中),下载地址为:
2.0.0/,不过在网路上找到了移植版本iperf2.5。Iperf还有一个图形界面程序称作Jperf,使用JPerf程序能简化了复杂命令行参数的构造,并且它还保存测试结果,同时实时图形化显示结果。其实,JPerf可以测试TCP和UDP带宽质量。JPerf可以检测最大TCP带宽,具有多种参数和UDP特点。JPerf可以报告带宽,延后晃动和数据包遗失。为了测试的确切性,尽量使用linux环境测试。
Iperf和Jperf的相关文件已打包在附件中
Iperf的主要功能如下:
TCPUDP其他Iperf使用方式
安装Iperf
对于windows版的Iperf,直接将解压下来的iperf.exe和cygwin1.dll复制到%systemroot%目录即可
对于linux版的Iperf,请使用如下命令安装
gunzip-ciperf-.tar.gz|tar-xvf-
cdiperf-
./configure
make
makeinstall
使用Iperf(以windows版本为例)
在命令提示符中输入iperf命令即可运行Iperf,使用命令Iperf–help可以查看iperf的帮助
Iperf参数介绍
见最下边
用Iperf测试路由器的性能
测试单线程TCP
其中:Interval表示时间间隔。Transfer表示时间间隔上面转输的数据量。Bandwidth是时间间隔里的传输速度。最后一行是本次测试的统计。测试可知带宽平均为89.9Mbit/s。
测试多线程TCP
在顾客端添加-P参即可测试多线程的TCP性能,如下为使用两个线程的测试情况
测试单线程UDP(默认带宽)
服务端
其中,Jitter为晃动,lost/total为丢包数目linux论坛,Datagrams为包数目。
测试单线程UDP(带宽为10Mbit/s)
设置顾客端带宽为10M即可,使用参数-b指定
测试多线程UDP
与多线程TCP类似,只须要顾客端使用-P参数指定线程个数即可
测试UDP的单向传输
顾客端使用参数-d以运行双测试模式,顾客端会与服务端进行udp往返测试。可以使用-L参数指定本端双测试窃听的端口。
测试UDP往复传输
与单向传输类似,使用参数-r以运行交互模式,依然可以使用-L参数指定交互的端口。
分布式测试
使用多台笔记本或使用一台笔记本的多个IP地址测试。当使用一台笔记本的多个iP地址测试时,可以使用-B命令绑定网卡的某一个ip地址以测试
Jperf使用方式
JPerf2.0简介
Jperf是将iperf命令行图形化的JAVA程序;
使用JPerf程序能简化了复杂命令行参数的构造,并且它还保存测试结果,同时实时图形化显示结果。JPerf可以测试TCP和UDP带宽质量。JPerf可以检测最大TCP带宽,具有多种参数和UDP特点。JPerf可以报告带宽linux下安装iperf,延后晃动和数据包遗失。
JPerf2.0运行环境
操作系统:Java运行环境:JREjxpiinstall.exe
网路要求:Jperf可以在任何IP网路上运行,包括本地以太网,因特网接入联接和Wi-Fi网路。
其他:使用JPerf必须安装两个组件:JPerf服务器(用于窃听抵达的测试恳求)和JPerf顾客端(用于发起测试会话)
JPerf2.0具体介绍
Iperf命令行(难以直接输入)
服务端设置
窃听端口:5001
clientlimit:顾客端限制,仅容许指定顾客端联接
NumConnections:最大容许联接的数目,为0不限制
顾客端设置
服务器地址:10.0.115.82,端口:5001,并发流:1个
应用层设置
1、兼容旧版本(当server端和client端版本不一样时使用
2、设置测试模式:传输字节总数大小15Bytes或则按传输时间总宽度15秒
3、同时进行单向传输测试
4、单独进行单向传输测试嵌入式linux,先测c到s的带宽
5、指定须要传输的文件
6、显示tcp最大mtu值
传输层设置
1、TCP合同
设置缓冲区大小
指定TCP窗口大小
设定TCP数据包的最大mtu值
设定TCP不延时
2、UDP合同
设置UDP最大带宽
设置UDP缓冲区
UDP包封装大小:默认1470byte
IP层设置
1、指定ttl值
2、服务类型(TypeofService,ToS),大小范围从0x10(最小延后)到0x2(最少费用)
在使用802.11e来控制服务质量的WLAN中,ToS是映射在Wi-Fi多媒体(WMM)存取范畴的。
JPerf2.0测试举例:
测试内容(UDP):
UDPbuffersize:默认,0.01M
UDPpacketsize:默认,1470byte
端口:5001
TTL:1
测试网卡带宽:1000M
测试总时间:10s
时间间隔:1s
显示单位:M
测试流:1个
顾客端:
bin/iperf.exe-c10.0.115.82-u-P1-i1-p5001-fM-b1000M-t10-T1-FC:DocumentsandSettingsAdministrator桌面Clip2_CCTV5_NBA_3.75M_V3.3M_A160k.ts
Unabletoopenthefilestream
Willusethedefaultdatastream
------------------------------------------------------------
Clientconnectingto10.0.115.82,UDPport5001
Sending1470bytedatagrams
UDPbuffersize:0.01MByte(default)
------------------------------------------------------------
[1832]local10.0.115.54port3297connectedwith10.0.115.82port5001
[ID]IntervalTransferBandwidth
[1832]0.0-1.0sec3.46MBytes3.46MBytes/sec
[1832]1.0-2.0sec3.32MBytes3.32MBytes/sec
[1832]2.0-3.0sec3.43MBytes3.43MBytes/sec
[1832]3.0-4.0sec3.42MBytes3.42MBytes/sec
[1832]4.0-5.0sec3.43MBytes3.43MBytes/sec
[1832]5.0-6.0sec3.39MBytes3.39MBytes/sec
[1832]6.0-7.0sec3.43MBytes3.43MBytes/sec
[1832]7.0-8.0sec3.40MBytes3.40MBytes/sec
[1832]8.0-9.0sec3.43MBytes3.43MBytes/sec
[1832]9.0-10.0sec3.47MBytes3.47MBytes/sec
[1832]0.0-10.0sec34.2MBytes3.41MBytes/sec
[1832]ServerReport:
[1832]0.0-10.0sec34.2MBytes3.41MBytes/sec1.953ms13/24378(0.053%)
[1832]Sent24378datagrams
biniperf.exe:ignoringextraargument--and
biniperf.exe:ignoringextraargument--SettingsAdministrator桌面Clip2_CCTV5_NBA_3.75M_V3.3M_A160k.ts
Done.
服务端:
bin/iperf.exe-s-u-P0-i1-p5001-fM
------------------------------------------------------------
ServerlisteningonUDPport5001
Receiving1470bytedatagrams
UDPbuffersize:0.01MByte(default)
------------------------------------------------------------
[1928]local10.0.115.82port5001connectedwith10.0.115.54port3297
[ID]IntervalTransferBandwidthJitterLost/TotalDatagrams
[1928]0.0-1.0sec3.45MBytes3.45MBytes/sec0.281ms1649892402/2462(6.7e+007%)
[1928]1.0-2.0sec3.31MBytes3.31MBytes/sec0.264ms0/2358(0%)
[1928]2.0-3.0sec3.43MBytes3.43MBytes/sec0.288ms6/2450(0.24%)
[1928]3.0-4.0sec3.42MBytes3.42MBytes/sec0.271ms4/2445(0.16%)
[1928]4.0-5.0sec3.43MBytes3.43MBytes/sec0.269ms0/2446(0%)
[1928]5.0-6.0sec3.39MBytes3.39MBytes/sec0.662ms0/2417(0%)
[1928]6.0-7.0sec3.43MBytes3.43MBytes/sec0.252ms0/2446(0%)
[1928]7.0-8.0sec3.40MBytes3.40MBytes/sec0.232ms3/2429(0.12%)
[1928]8.0-9.0sec3.43MBytes3.43MBytes/sec0.083ms0/2448(0%)
[1928]9.0-10.0sec3.47MBytes3.47MBytes/sec0.218ms0/2474(0%)
[1928]0.0-10.0sec34.2MBytes3.41MBytes/sec1.953ms13/24378(0.053%)
测试结果
[1832]0.0-10.0sec34.2MBytes3.41MBytes/sec1.953ms13/24378(0.053%)
[1832]Sent24378datagrams
链路传输UDP速率:3.42MBytes/sec
总延时:1.953ms
丢包:13个占0.053%
总传输:34.2MB
网路模拟器WANem使用配置图文教程(转)WANem简介
因为公司在一些场合须要模拟真实的网路环境,如信噪比,丢包,晃动等,尽管使用Linux下的TC也可以实现该功能,并且TC有着命令行界面不利于配置,使用桥接模式时不易于远程管理的缺陷,所以本着分享的精神,如今向你们推荐一款网路模拟工具——WANem。WANem全名为WANemulator,是一个基于开源广域网路模拟器,其也是基于TC的,其主要功能如下:
命令行选项
描述
顾客端与服务器共用选项
-f,--format[bkmaBKMA]
低格带宽数输出。支持的格式有:
'b'=bits/sec'B'=Bytes/sec
'k'=Kbits/sec'K'=KBytes/sec
'm'=Mbits/sec'M'=MBytes/sec
'g'=Gbits/sec'G'=GBytes/sec
'a'=adaptivebits/sec'A'=adaptiveBytes/sec
自适应格式是kilo-和mega-三者之一。不仅带宽之外的数组都输出为字节,除非指定输出的格式,默认的参数是a。
注意:在估算字节byte时,Kilo=1024,Mega=1024^2,Giga=1024^3。一般,在网路中,Kilo=1000,Mega=1000^2,andGiga=1000^3,所以,Iperf也按此来估算比特(位)。倘若这种困惑了你,这么请使用-fb参数,之后亲自估算一下。
-i,--interval#
设置每次报告之间的时间间隔,单位为秒。假如设置为非零位,还会根据此时间间隔输出测试报告。默认值为零。
-l,--len#[KM]
设置读写缓冲区的宽度。TCP方法默认为8KB,UDP方法默认为1470字节。
-m,--print_mss
输出TCPMSS值(通过TCP_MAXSEG支持)。MSS值通常比MTU值小40字节。一般情况
-p,--port#
设置端口,与服务器端的窃听端口一致。默认是5001端口,与ttcp的一样。
-u,--udp
使用UDP方法而不是TCP形式。参看-b选项。
-w,--window#[KM]
设置套接字缓冲区为指定大小。对于TCP形式,此设置为TCP窗口大小。对于UDP形式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值。
-B,--bindhost
绑定到主机的多个地址中的一个。对于顾客端来说,这个参数设置了出栈插口。对于服务器端来说,这个参数设置入栈插口。这个参数只用于具有多网路插口的主机。在Iperf的UDP模式下,此参数用于绑定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址。参考-T参数。
-C,--compatibility
与低版本的Iperf使用时,可以使用兼容模式。不须要两端同时使用兼容模式,并且强烈推荐两端同时使用兼容模式。个别情况下,使用个别数据流可以造成1.7版本的服务器端崩溃或造成非预期的联接尝试。
-M,--mss#[KM}
通过TCP_MAXSEG选项尝试设置TCP最大信息段的值。MSS值的大小一般是TCP/IP头乘以40字节。在以太网中,MSS值为1460字节(MTU1500字节)。许多操作系统不支持此选项。
-N,--nodelay
设置TCP无延后选项,禁用Nagle's运算法则。一般情况此选项对于交互程序linux下安装iperf,比如telnet,是禁用的。
-V(fromv1.6orhigher)