基于RFC2544的千兆以太网性能测试的实现

2016-12-22 09:23陈佳彬陈尔言王卫静
浙江工业大学学报 2016年6期
关键词:包率字节以太网

金 燕,陈佳彬,陈尔言,王卫静

(浙江工业大学 信息工程学院,浙江 杭州 310014)



基于RFC2544的千兆以太网性能测试的实现

金 燕,陈佳彬,陈尔言,王卫静

(浙江工业大学 信息工程学院,浙江 杭州 310014)

随着千兆以太网发展成为主流网络技术后,网络设备的安全稳定性成为了重中之重.RFC2544协议是评测网络设备的国际标准.介绍了RFC2544协议,并在Linux平台下,设计了一套完整的测试架构,定义了专用的测试帧格式,分析了千兆以太网时延、吞吐量、背靠背和丢包率等主要性能指标的测试方法,并进行了仿真与验证.

RFC2544;千兆以太网;性能指标

随着计算机网络的快速发展,以太网因分布广泛和接入方便得到了广泛的应用[1].千兆以太网是基于以太网标准的技术,因其高效、高速和高性能的特点,成为了当今主流的网络技术[2].随着高速网络成为主要应用网络,网络设备的性能将会直接影响到网络运行过程中的稳定性和可靠性,因此网络设备的性能问题成为重点[3].从而需要一套客观准确且能被大众接受的网络测试标准.RFC2544作为评测网络设备的国际标准[4],对以太网的各项性能指标进行了定义,如时延、吞吐量、背靠背和丢包率,这些性能系统地反应了网络的通信能力和实时进行信息传输的能力,并且这些指标相互联系和影响[5].笔者研究的目的是在Linux平台上设计一套基于RFC2544测试标准的千兆以太网网络性能测试的软件实现方案,在具有高兼容性与稳定性的前提下,实现千兆以太网各项性能指标的测试,并且可以对结果实时提取与显示.

1 RFC2544协议简介

1.1 测试模式的选择

1.1.1 单机模式

单机模式[6]的工作流程:首先,将打包好的测试数据流通过测试设备的发包端口发出;然后,经过待测设备的测试数据转发,将其流回测试设备的收包端口;最后,测试设备将收到的数据流根据RFC2544协议进行运算处理,从而给出测试结果,如图1所示.

图1 RFC2544单机模式测试结构图Fig.1 Test structure diagram of RFC2544 single mode

1.1.2 双机模式

双机模式[7]分为环回测试、上行测试、下行测试及上行-下行测试.环回测试的工作流程:首先,将测试设备1作为客户端完成数据流的发送工作;然后,将测试设备2作为服务端完成数据流的环回工作,并且该过程经过被测设备;最后,测试设备1接收数据并运算处理,得到结果,如图2所示.上行测试是指测试设备1负责发送,测试设备2负责接收.下行测试正好相反,测试设备2负责发送,测试设备1负责接收.上行-下行模式就是上行模式与下行模式的结合.

图2 RFC2544双机模式环回测试结构图Fig.2 Loopback test structure diagram of RFC2544 double mode

单机模式与双机模式都是RFC2544标准所认可的测试模式[8],但是各有利弊.单机模式可以更准确地控制测试精度,并且更容易调度测试进程,但是在产生测试压力方面有所欠缺;而双机模式由于是两台设备共同工作,所以能够产生足够的测试压力来达到需求,但同时也将出现进程同步与时间同步等问题[9].因为笔者探讨基于千兆以太网的测试,需要足够的测试压力,所以选择比较经典的环回测试模式.

1.2 测试主要参数

1.2.1 时 延

定义:从报文进入网络到离开网络的时间间隔,即在负载条件下转发数据帧所花费的时间.

作用:反映被测设备处理数据包的速度.

1.2.2 吞吐量

定义:在满足不丢包的条件下,被测设备可以转发的最大数据流量.

作用:反映了被测设备转发的测试帧数量与发送端发送测试帧数量相等时的最高频率.

1.2.3 背靠背

定义:在最大速率的条件下,以及不发生丢包的前提下,被测设备可以接收到的最大报文的长度.

作用:反映被测设备对突发数据的处理能力.

1.2.4 丢包率

定义:在一定的负载下,未能被转发的数据包数量占应被转发的数据包数量的百分比值.

作用:反映被测设备对负载的承受能力.

2 测试系统架构

2.1 测试设备硬件架构

本测试系统所用的测试设备硬件采用FPGA+ARM的结构,实现手持终端的设计,主要分为四大模块,如图3所示.以太网收发模块主要由一块以太网专用芯片组成,该芯片是支持自协商功能的10 M/100 M/1 000 M专用PHY芯片,一方面与RJ45接口互连,使系统与以太网通信;另一方面通过GMII接口与FPGA通信,既可以实现对数据的处理,又可以通过FPGA来对以太网芯片进行配置.FPGA模块选用Altera公司的Cyclone II系列芯片,本模块将测试数据打包成以太网测试帧,并将其发送给以太网收发模块,实现数据的发出,也同样将接收到的数据过滤,并将测试帧解包,将得到的数据发送给ARM模块.ARM模块提升系统的对数据的处理能力,将接收到的测试数据进行算法处理得到测试参数,并且配置整个系统的测试流程,是系统的核心.显示模块采用7寸电容屏屏,通过LCD接口与ARM模块进行通信显示,同时通过触摸屏上的功能部件进行整个系统的人机交互功能.

图3 测试设备硬件框图Fig.3 Test equipment hardware block diagram

2.2 系统软件架构

如图4所示,系统软件结构采用模块化设计,包括操作界面的显示,数据的处理,测试流的生成,测试包的发送与接收.测试过程从操作界面配置测试参数为起点,配置参数包括IP地址、MAC地址等,然后根据配置信息将参数打包成测试帧,通过USB接口传输给FPGA模块,模块根据配置信息控制测

图4 系统软件架构Fig.4 System software architecture

试流,然后通过发送接口输出.经过从端设备的环回,FPGA模块接收返回的测试帧,然后传输至ARM模块,经过测试帧解包,提取数据进行分析处理,最后将结果传给显示模块显示.

2.3 测试帧设计

以太网在传输层和网络层,采用统一的TCP/ IP协议[10],TCP协议是一种面向连接的可靠传输协议,但在可靠性较高的网络中反而增加了传输的开销[11],UDP是面向无连接的,具有较好的传输效率[12].在本系统的设计中,以太网测试帧采用UDP的方式传输,基于UDP的测试帧是在UDP帧包头的基础上再加上自定义的帧字节来完成的,测试帧帧格式如图5所示.

图5 测试帧格式Fig.5 Test frame format

1) 协议头字段:包括8 字节的UDP包头段,内含7 字节的帧前同步码与1 字节的帧开始定界符,还包括6 字节的目的地址段、6 字节的源地址段、2 字节的长度与类型段.

2) 测试包标记:用于识别是否为测试帧,在本系统中长度为2 字节,默认为0x3333.接收测试帧时判断是否是该数值,否则不是测试帧.

3) 流代码:用于识别测试帧的类别,在本系统中为2 字节,不同的测试帧具有相应的流代码.

4) 时间戳:用于计算延迟与抖动,在本系统中为4 字节,该字段记录测试帧发往以太网的时间,当测试帧发往以太网时,系统会记录当前时间,并由一个32 位计数器计时,当收到环回的测试帧时,将记录的值与时间戳相减,差值即时延.

5) 指令标记:用于判断是否包含控制指令,在本系统中为1 字节,携带控制指令为0xFF,没携带则为0x00.

6) 控制标记:用于实现对测试流的控制功能,在本系统中为1 字节,不同的控制指令用不同的1 字节数据表示,若不携带控制指令,则为0x00.

7) 数据填充:用于控制测试帧的长短,以适应各种测试环境.

8) FCS:即帧检验序列,用于保存测试帧的CRC校验值,在本系统中为4 字节.

3 RFC2544协议的算法实现

3.1 时 延

参数:T1为测试数据包的发送时间,T2为测试数据包的接收时间,R为网络吞吐率,L为测试帧长,N为测试轮数,T为测试时间.

步骤:确定测试帧长L,然后在时间T内,以R为速率,将测试包发送出去.记录发送时间T1;接收经过环回的测试包,记录接收时间T2;计算本轮时延为T2-T1;重复测试N轮,取每轮时延的平均值作为测试结果.

3.2 丢包率

参数:P1为发送的测试数据包数量,P2为接收到的测试数据包数量,R为发送速率,L为测试帧长,N为测试轮数,T为测试时间.

步骤:确定测试帧长L,然后在时间T内,以R为速率,将测试包发送出去.记录发送的测试包数目为P1;接收到经过环回的测试包,记录接收到的测试包数目为P2;计算本轮丢包率为(P1-P2)/P1;重复测试N轮,取每轮的丢包率的平均值作为测试结果.

3.3 背靠背

参数:P1为发送的测试包数量,P2为接收到的测试包数量,R为系统所能产生的最大发送速率,L为测试帧长,N为测试轮数,T为测试时间,A为要求的背靠背测试精度.

步骤:确定测试帧长L,然后在时间T内,以R为速率,将测试包发送出去.记录发送的数目为P1;接收到经过环回的测试包,记录接收到的测试包数目为P2;判断P1与P2的大小,如果P1=P2,表示没有丢包,则增大发送包数量P1,且令Pmin=P1;如果P1>P2,表示出现丢包,则减小发送包的数量P1,且令Pmax=P1;判断Pmax-Pmin≤A,如果满足要求,则取本轮的背靠背为(Pmax-Pmin)/2;否则,重新测试直至满足精度要求;重复测试N轮,取每轮的背靠背的平均值作为测试结果.

3.4 吞吐量

参数:P1为发送的测试包数量,P2为接收到的测试包数量,R为发送速率,L为测试帧长,N为测试轮数,T为测试时间,A为要求的吞吐量测试精度.

步骤:确定测试帧长L,然后在时间T内,根据经验确定R为发送速率,将测试包发送出去.记录发送的数目为P1;接收到经过环回的测试包,记录接收到的测试包数目为P2;判断P1与P2的大小,如果P1=P2,表示没有丢包,则提高发送速率R,且令Rmin=R;如果P1>P2,表示出现丢包,则降低发送速率R,且令Rmax=R;判断Rmax-Rmin≤A,如果满足要求,则取本轮的吞吐量为(Rmax-Rmin)/2;否则,重新测试直至满足精度要求;重复测试N轮,取每轮的吞吐量的平均值作为测试结果.

吞吐量测试流程如图6所示.

图6 吞吐量测试流程图Fig.6 Throughput test flow chart

4 仿真结果

本系统主要对RFC2544测试协议进行实现,如图7所示,是被测交换机在测试帧为64字节大小时,所测得的多次吞吐量数据,取其平均值得790 B,即交换机64 字节的以太网包的吞吐量为790 B.图8为吞吐量和背靠背的测试结果,图9为丢包率和时延的测试结果.

图7 吞吐量测试结果Fig.7 Throughput test results

如图8所示,随着测试帧长度的增加,吞吐量也随之增大.这是因为在同一带宽下,帧长越大,测试帧的数量就会减小,被测设备处理这些测试帧的时间也会随之变短,从而会使单位时间内处理测试帧的数量减少,然而被测设备处理单个数据包所需的时间并不会改变,因此转发速率得到加快,进而增大了吞吐量.

图8 吞吐量与背靠背测试Fig.8 Throughput and back-to-back test

同样,随着测试帧长度的增加,背靠背帧数也随之增大.这是因为帧长越大时,丢包率越小,所以导致背靠背帧数越大.

图9 丢包率与时延测试Fig.9 Packet loss rate and delay test

如图9所示,随着测试帧长度的增加,丢包率随之减小.这是因为在同一帧长下,帧长越大,测试帧速率则下降,被测设备处理的个数越小,丢包越少,即丢包率下降.

与之相反,随着测试帧长度的增加,时延却随之增大.这是因为单个数据帧长度的增加会导致被测设备处理时间的增加,从而导致时延的增大.

5 结 论

介绍了RFC2544协议,重点讨论了基于该协议的千兆以太网网络性能的实现.首先,介绍了测试系统的硬件架构与软件架构,并在此基础上侧重描述了

测试帧的设计格式.然后,详细描述了RFC2544协议时延、丢包率、背靠背和吞吐量等主要网络性能参数的算法实现过程.仿真测试结果显示,随着测试帧长度的变化,吞吐量、时延和背靠背呈正比变化,丢包率呈反比变化,均符合千兆以太网网络性能指标的特性.

[1] 郭海涛.全千兆以太网交换机的设计和实现[D].西安:西安电子科技大学,2006.

[2] 刘琼,虞水俊.快速以太网技术:介绍无关接口和自动协商[J].微型机与应用,1998(9):26-8.

[3] WANG Yong, LIU Yong, TAO Xiaoling et al. An FPGA-based high-speed network performance measurement for RFC 2544[J].EURASIP journal on wireless communications and networking,2015(1):1-10.

[4] FEI Lifu, YUAN Dongming, TANG Bihua, et al. Technique for network performance measurement based on RFC2544[C]//2012 Fourth International Conference on Computational Intelligence and Communication Networks. Beijing: Beijing University of Posts and Telecommunications,2012:200-203.

[5] 刘彦敏.基于FPGA的千兆以太网测试系统的研究与实现[D].杭州:浙江工业大学,2014.

[6] 徐波,韦韬,邹维.RFC2544网络设备评测协议实现技术[J].计算机工程,2003,29(17):140-142.

[7] 董祎博,刘云龙.基于RFC2544的以太网测试设计与实现[J].软件,2012,33(12):62-65.

[8] 廖有清,张小平,许学东.10G网络测试仪的测试流量生成[J].小型微型计算机系统,2007,28(3):411-415.

[9] 费蓓富.基于RFC2544的多用户网络性能测试系统的研究与实现[D].北京:北京邮电大学,2013.

[10] 谢希仁.计算机网络[M].5版.北京:电子工业出版社,2008.

[11] HERRMANN F L, PERIN G, BERTAGNOLLI R,et al. A Gigabit UDP/IP network stack in FPGA[C]// IEEE International Conference on Electronics, Circuits & Systems. New York: IEEE,2009:836-839.

[12] LEE K C, LEE S, LEE M H. Worst case communication delay of real-time industrial switched ethernet with multiple levels[J]. IEEE transactions on industrial electronics,2006,53(5):1669-1675.

(责任编辑:陈石平)

The realization of Gigabit Ethernet network performance test based on RFC2544

JIN Yan, CHEN Jiabin, CHEN Eryan, WANG Weijin

(College of Information Engineering, Zhejiang University of Technology, Hangzhou 310014, China)

The security and stability of network devices has been the top priority since the development of GbE becomes the mainstream of network technology. The RFC2544 protocol is the international standard to evaluate the network devices. After the RFC2544 protocol is introduced, an integrated test architecture is designed in this article. In this architecture, a dedicated format in testing frame is defined and the testing method of some main performance, such as time delay, throughput, back-to-back, and packet loss rate, are analyzed. Finally, the tesing architecture is simulated and verified in the Linux platform.

RFC2544; GbE; performance

2015-12-03

金 燕(1964—),女,浙江绍兴人,副教授,研究方向为自动化检测和控制、混合动力汽车控制策略等,E-mail:jy@zjut.edu.cn.

TN915

A

1006-4303(2016)06-0628-05

猜你喜欢
包率字节以太网
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
No.8 字节跳动将推出独立出口电商APP
电磁线叠包率控制工艺研究
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
No.10 “字节跳动手机”要来了?
轻量级分组密码Midori64的积分攻击
IEEE 802.15.4协议无线传感器网络干扰测试∗
三大因素驱动创新提速以太网快步迈入“灵活”时代
谈实时以太网EtherCAT技术在变电站自动化中的应用