网络互联设备的性能测试:原理和实践章淼吴建平盛立杰崔勇徐明伟清华大学计算机系网络研究所摘要:网络性能测试技术在近些年来得到快速的发展,其中很重要的是对网络互连设备的测试,它为网络互连设备的制造商和用户提供了测量网络互连设备性能的有效手段。
本文首先介绍了网络互连设备性能测试领域的一些技术背景,包括在测试中使用的性能指标和测试中的环境设置,这些是对网络互连设备性能测试系统的需求。
接着本文介绍了一个网络互连设备性能测试系统的设计方案。
我们使用这个测试系统对Cisco12000路由器进行了测试。
关键词:性能测试,网络互连设备1. 引言随着互联网的广泛使用,互联网对于社会生活已经十分重要。
用户和网络服务提供商都对网络互连设备的性能提出了非常高的要求。
网络上的应用内容在不断增加,包括IP电话、电子商务等等,互联网的使用者和网络上的流量每年都在以指数的速度增长,这要求网络提供更高的带宽和更有效的使用方式。
同时,互联网本身正在变得越来越复杂,在网络中使用了很多不同的技术(如ATM、帧中继、POS等),网络互连设备的容量、复杂性都在增加。
网络互连设备的购买者需要测量手段,对网络互连设备的正确性和性能进行评测。
这种需求激发了网络互连设备测试技术和测试设备的迅速发展。
互联网技术的基础是网络协议,对网络互连设备的测试大多针对网络协议进行。
网络协议测试一般分为三类[1]:一致性测试、互操作性测试和性能测试。
一致性测试是网络协议测试的基础,它的目的是测试网络实现和网络协议中的规定是否一致。
互操作性测试用于测试网络互连设备之间互联互通的情况。
性能测试在以上两种测试通过的基础上进行,它主要关注网络的性能。
网络测试技术是和网络传输技术同步发展的。
在网络发展早期,网络传输速率很低,这一阶段网络互连设备的测试主要集中在网络协议的一致性测试方面,通过与网络互连设备动态交换信息,对网络协议实现的正确性进行测试。
这一阶段的测试主要用软件来实现,一般不需要使用专用的硬件。
当网络发展到一定阶段后,网络的应用范围大大扩大,对于网络的服务质量提出了比较高的要求,人们需要了解网络互连设备的具体性能指标,如吞吐量、延迟、丢失率等,采用的主要方法是对真实网络的环境进行仿真,由网络测试设备生成测试流量,测试被测设备在这种环境下的性能。
这一阶段接口速率比较低,很多功能还可以用软件来实现。
近几年来,随着接口技术的发展和路由、交换技术的发展,网络互连设备的性能有了相当大的提高,网络互连设备的转发速率越来越高,而且使用了很多复杂的技术在QoS 方面提供支持。
为了适应这种变化,很多在路由器和交换机上采用的技术也被使用到网络测试设备中,如高速网络接口技术、分布处理技术、实时操作系统等,而且网络流量的仿真和网络设备QoS功能的测试也成为目前网络测试研究的热点。
目前,已经有很多厂商在从事网络互连设备性能测试系统的研制和生产,主要的厂商包括Netcom Systems[5]、Agilent[6]、Adtech[7]、Ixia[8]等。
网络互连设备性能测试系统的主要用户有两类。
一类是网络互连设备的生产厂商,他们在网络互连设备的研制和开发过程中需要性能测试系统的帮助;另一类是网络互连设备的评估机构,他们需要使用性能测试系统对不同厂商的网络互连设备进行测试、评估,并将这些测试结果提供给网络互连设备的用户。
本文的背景为863计划重大项目“集成性能测试系统IP-TEST”。
本文的组织如下:第二部分介绍网络互连设备性能测试中使用的性能指标;第三部分介绍网络互连设备性能测试的环境设置;第四部分介绍一个网络互连设备性能测试系统的设计;第五部分介绍使用测试系统得到的一个测试结果;第六部分进行总结,并探讨未来的研究方向。
2. 性能测试使用的指标网络互连设备的性能测试属于黑盒测试。
在测试过程中,测试设备通过向被测设备施加激励并观测被测设备的外部行为来了解被测设备的性能。
为了在不同的测试结果之间进行比较,需要对于测试激励和被观测量进行统一的规定。
由于网络互连设备的性能测试还是一种比较新的技术,所以目前这方面的技术标准还很不完备,在实践中大量使用的是各厂商自己制定的测量标准,这些标准很多已经成为网络互连设备性能测试领域的事实标准。
在RFC1242[2]和RFC2544[4]中,对网络互连设备性能测试中一些基本的性能指标进行了定义。
其中,目前主要使用的性能指标包括:吞吐量(Throughput),延迟(Latency),报文丢失率(Frame Loss Rate)和背靠背性能(Back-to-Back Performance)。
下面对这些性能指标的含义做一个简单的介绍。
2.1 吞吐量吞吐量的定义为:在不发生报文丢失的情况下,被测设备可以支持的最大传输率。
吞吐量是网络互连设备最重要的性能指标之一。
上面定义的吞吐量在实际中很难通过少量的测试得到。
首先,通过一组测试来寻找完全不丢失报文的最大传输率是比较困难的。
目前,很多系统采用“折半查找”的方法来自动完成这个搜索过程,十分精确的寻找目标值需要大量的测试时间。
所以,在实践中大多使用一个丢失阈值,只要报文丢失的数量在这个阈值之内就停止测试。
其次,在定义中没有规定测试的总时间。
从理论上讲,测试的时间应当无限长,但这在实际中是不可行的。
考虑到测试过程中整个系统的稳定需要一定的时间,在实践中一般将测试时间设为几十秒到几分钟。
在吞吐量的测试中还有2个要求。
第一,在测试中要使用固定长度的报文。
由于网络设备实现的因素,报文长度有时对测试的结果是有影响的。
为此,在[4]中,规定了一些典型的测试报文长度。
第二,在报文中包含校验和的情况下,测试时被测设备一定要对校验和进行处理[2]。
这些要求都是为了便于对测试结果进行比较。
2.2 延迟延迟的定义为:测试报文通过被测设备所需的时间。
延迟也是网络设备一个重要性能指标。
延迟的大小和变化影响到很多网络应用的性能。
例如在TCP的流量控制中,延迟的大小影响到反馈的速度,从而影响到TCP传输的流量特征;在多媒体的传输中,延迟的大小和延迟的变化严重影响传输的质量。
由于网络设备的转发实现包括Store-and-Forward和Cut-Through两种方式,针对这两种转发方式定义了不同的延迟[2]。
对于Store-and-Forward设备,延迟的定义为:从“输入帧”的最后一位到达被测设备的输入端口开始,到“输出帧”的第一位到达被测设备输入端口为止的时间。
对于Cut-Through设备,延迟的定义为:从“输入帧”的第一位到达输入端口开始,到“输出帧”的第一位到达输入端口为止的时间。
在测试系统中,只需实现Cut-Through 延迟的测试即可,Store-and-Forward延迟可以用下面的等式进行计算:Store-and-Forward延迟= Cut-Through延迟-报文长度 / 接收接口速率延迟的测量结果是一个统计结果,目前普通采用以下三种方式:(1) Instantaneous Latency:只提供对最大延迟、最小延迟和平均延迟的统计。
这种延迟测量方式实现简单,而且不需要用户进行任何配置。
其缺点是统计结果过于粗糙,而且对于最大延迟和最小延迟的统计具有很大的偶然性。
(2) Distributive Latency:统计延迟的分布情况。
用户可以自己设定延迟统计区间的范围,测试结果中将给出落入每个区间报文的数量或百分比。
用户在设定统计区间时必须了解延迟的范围,合适的区间范围需要一定的试验后才能得到。
(3) Latency Over Time:将一定时间内所有报文的延迟都记录下来。
从理论上讲,使用Latency Over Time测量得到的结果,可以计算得到前面两种延迟统计的结果。
但是在实际中,这种测量方式需要消耗大量的资源,只能对少量的报文进行统计。
除了以上三种测量方式,对于延迟来说还有一个很重要的测量内容是对延迟抖动(Jitter)的测量。
网络传输中的延迟抖动对于话音和多媒体的传输性能有很大的影响。
虽然使用Latency Over Time的结果进行处理也可以得到延迟抖动的值,但是其系统开销要比直接进行延迟抖动的测量要大。
2.3 报文丢失率报文丢失率的定义为:在固定负载的情况下,由于缺少资源导致的没有转发的报文的比例。
报文丢失率的测试是吞吐量测试的一个补充。
吞吐量的测试要求不能出现报文丢失,即测试结果是在网络设备没有过载的情况下得到的。
而报文丢失率的测试主要在网络过载的情况下进行。
2.4 背靠背性能背靠背性能的定义为:在最大速率下,在不发生报文丢失前提下被测设备可以接收的最大的突发报文序列(Burst)的长度。
背靠背性能反映网络设备对于突发报文的容纳能力。
它主要和以下一些因素有关:网络设备内部缓冲的大小;网络设备入、出端口之间的速率差;网络设备转发能力的大小;网络设备交换网络的调度算法等。
3. 性能测试的环境设置在网络互连设备的性能测试中,测试环境的设置是一个很重要的内容。
在记录测试结果时,不仅要记录测试得到的测量结果,而且要记录测试环境的设置。
测试环境的设置包括:被测设备的配置情况;测试的流量模型;测试的流量组合方式;特殊流量(如路由更新报文、SNMP报文)的设置等。
3.1被测设备的配置情况网络设备在不同配置情况下的性能有可能不同。
在进行性能测试时,应当使被测设备的配置情况和在真实的运行环境下的配置尽可能相同。
在针对路由器的性能测试中,路由表大小对报文转发性能有很大的影响。
在路由器转发报文的过程中,很大一部分开销用于路由查找。
目前很多路由查找算法的性能和路由表项的个数有关,所以在对路由器进行性能测试的时候,其路由表的设置就成为一个很关键的因素。
网络接口的一些配置选项也会影响性能,如:单/双工的选择;是否进行校验和的计算等。
网络设备中“过滤”(Filter)的设置也对网络设备的性能有很大的影响。
一些网络设备支持地址过滤、协议过滤这样的功能,这些功能都消耗大量的系统资源。
如果在实际应用中需要使用“过滤”功能,就需要在性能测试时配置这些功能。
3.2性能测试的流量模型流量模型是性能测试中的一个重要问题。
理想的情况是性能测试中使用的流量和真实网络环境中的流量相同或者近似。
但是由于网络系统本身的复杂性、异构性和不确定性,很难对网络流量给出一个明确的模型。
虽然目前一些研究者提出网络流量符合自相似模型(Self-Similar)[9],但是由于它的复杂性、难于实现和配置,较难应用于网络互连设备的性能测试中。
目前在性能测试中使用了一些相对简单的流量模型。
目前使用的流量模型主要有以下两种:均匀(Constant)流量模型和突发(Bursty)流量模型。
在均匀流量模型中,所产生的测试流量是恒定的,这主要体现在报文之间的时间间隔是固定的。