性能测试原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络互联设备的性能测试:原理和实践

章淼吴建平盛立杰崔勇徐明伟

清华大学计算机系网络研究所

摘要:

网络性能测试技术在近些年来得到快速的发展,其中很重要的是对网络互连设备的测试,它为网络互连设备的制造商和用户提供了测量网络互连设备性能的有效手段。本文首先介绍了网络互连设备性能测试领域的一些技术背景,包括在测试中使用的性能指标和测试中的环境设置,这些是对网络互连设备性能测试系统的需求。接着本文介绍了一个网络互连设备性能测试系统的设计方案。我们使用这个测试系统对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:统计延迟的分布情况。用户可以自己设定延迟统计区间的范围,测试结果中将给出落入每个区间报文的数量或百分比。用户在设定统计区间时必须了解延迟

相关文档
最新文档