交换机性能测试研究
2013-08-15孟庆琨
孟庆琨 徐 阳
(1.聊城市技术监督信息情报所,山东 聊城 252000;2.聊城大学 网络信息中心,山东 聊城 252059)
0 引言
在以太网之初,使用的是共享技术,即在一个逻辑网络上的每一个工作站都处于同一物理介质上。采用CSMA/CD机制,这种冲突检测方法保证了只能有一个站点在总线上传输。如果有两个站点试图同时访问总线并传输数据,这就意味着“冲突”发生了,两站点都将被告知出错。然后它们都被拒发,并等待一段时间以备重发。
当网络上的用户量较少时,网络上的交通流量较轻,冲突也就较少发生,在这种情况下冲突检测法效果较好。当网络上的交通流量增大时,冲突也增多,同进网络的吞吐量也将显著下降。
局域网交换技术是作为对共享式局域网提供有效的网段划分的解决方案而出现的,它可以使每个用户尽可能地分享到最大带宽。交换技术是在OSI七层网络模型中的第二层,即数据链路层进行操作的,因此交换机对数据包的转发是建立在MAC(Media Access Control)地址--物理地址基础之上的,对于IP网络协议来说,它是透明的,即交换机在转发数据包时,不知道也无须知道信源机和信宿机的IP地址,只需知其物理地址即MAC地址。交换机在操作过程当中会不断的收集资料去建立它本身的一个地址表,这个表相当简单,它说明了某个MAC地址是在哪个端口上被发现的,所以当交换机收到一个TCP/IP封包时,它便会看一下该数据包的目的MAC地址,核对一下自己的地址表以确认应该从哪个端口把数据包发出去。由于这个过程比较简单,加上这功能由硬件进行处理,因此速度相当快,一般只需几十微秒,交换机便可决定一个IP封包该往那里送。
1 交换技术
从20世纪90年代开始,出现了局域网交换设备。从网络交换产品的形态来看,交换产品大致有三种:端口交换、帧交换和信元交换。
1.1 端口交换
端口交换技术最早出现于插槽式集线器中。这类集线器的背板通常划分有多个以太网段(每个网段为一个广播域)、各网段通过网桥或路由器相连。以太网模块插入后通常被分配到某个背板网段上,端口交换适用于将以太模块的端口在背板的多个网段之间进行分配。这样网管人员可根据网络的负载情况,将用户在不同网段之间进行分配。这种交换技术是基于OSI第一层(物理层)上完成的,它并没有改变共享传输介质的特点,因此并不是真正意义上的交换。
1.2 帧交换
帧交换是目前应用的最广的局域网交换技术,它通过对传统传输媒介进行分段,提供并行传送的机制,减少了网络的碰撞冲突域,从而获得较高的带宽。不同厂商产品实现帧交换的技术均有差异,但对网络帧的处理方式一般有:存储转发式和直通式两种。存储转发式(Store-and-Forward):当一个数据包以这种技术进入一个交换机时,交换机将读取足够的信息,以便不仅能决定哪个端口将被用来发送该数据包,而且还能决定是否发送该数据包。这样就能有效地排除了那些有缺陷的网络段。虽然这种方式不及使用直通式产品的交换速度,但是它们却能排除由破坏的数据包所引起的经常性的有害后果。直通式(Cut-Through):当一个数据包使用这种技术进入一个交换机时,它的地址将被读取。然后不管该数据包是否为错误的格式,它都将被发送。由于数据包只有开头几个字节被读取,所以这种方法提供了较多的交换次数。然而所有的数据包即使是那些可能已被破坏的都将被发送。直到接收站才能测出这些被破坏的包,并要求发送方重发。但是如果网络接口卡失效,或电缆存在缺陷;或有一个能引起数据包遭破坏的外部信号源,则出错将十分频繁。
随着技术的发展,直通式交换将逐步被淘汰。
在“直通式”交换方式中,交换机只读出网络帧的前几个字节,便将网络帧传到相应的端口上,虽然交换速度很快,但缺乏对网络帧的高级控制,无智能性和安全性可言,同时也无法支持具有不同速率端口的交换;而“存储转发”交换方式则通过对网络帧的读取进行验错和控制。
1.3 信元交换
信元交换的基本思想是采用固定长度的信元进行交换,这样就可以用硬件实现交换,从而大大提高交换速度,尤其适合语音、视频等多媒体信号的有效传输。目前,信元交换的实际应用标准是ATM(异步传输模式),但是ATM设备的造价较为昂贵,在局域网中的应用已经逐步被以太网的帧交换技术所取代。
2 线速转发
线速交换,是指能够按照网络通信线上的数据传输速度实现无瓶颈的数据交换。
要想在传输速度一定的线路中处理尽可能多的帧,必须要使帧最小,此时交换机的处理能力才能达到最大。如果是以太网,MAC帧最小为64B,这种64B的帧最大限量通过线缆的状态就是 “线速”。100M以太网为14万8810个每秒,1000M以太网为100M的十倍,即148万8095个每秒。
在线速状态下,也就是LAN交换机接收了单位时间里线路处理的最大帧数的状态下,只要能毫无延迟地处理帧,就可以说这一LAN交换机具备了充分的处理性能,这就是“支持线速”的意思。
另外,LAN交换机的所有端口都以线速接收帧,并能无延迟地处理被称为“无阻塞(Nonblocking)”。
3 测试
针对LAN交换机的转发性能测试,一方面是,基本测试指标,主要包括对测试设备和被测试设备的设置、帧内容、帧长度以及测试的时间。主要的测试项如下:
(1)吞吐率:测试被测设备在不丢帧情况下的最大速率。
(2)时延:测试被测设备的时延,对于存储转发式的交换机,时延为从测试帧的最后一个bit进入交换机输入端口到测试帧的第一个bit出现在输出端口上的时间间隔。
(3)丢包率:测试被测设备因资源不足而导致丢包的比率。
(4)背靠背帧:测试被测设备处理背靠背报文的能力。
另一方面是,针对局域网中所有交换设备,主要的测试项如下:
(1)全网状吞吐量,丢帧率和转发率:测试被测设备在全网状通信下的吞吐量、丢帧率和转发率。
(2)部分网状/一对多/多对一:确定从多个端口传输到一个端口或从一个端口传输到多个端口时的吞吐量。与全网状测试一样,这个测试是主要是在无帧丢失时交换帧的性能。
(3)部分网状单向通信:确定当被测设备上一半端口单向传输信息流往另一半的端口时的吞吐量。
(4)拥塞控制:确定一个被测设备如何处理拥塞。一个设备是否执行拥塞控制,一个拥塞的端口是否会影响到另一个没有拥塞的端口。
(5)转发压力测试和最大转发率:该测试目的是为了在被测设备在超负荷的状态下,测量并输出结果。转发压力在被测设备输出帧的帧间隙小于96bit出现。
(6)地址学习速率:确定LAN交换设备地址学习速率。
(7)错误帧过滤:目的是为了确定在被测设备出现错误或者异常帧的情况下,是过滤出错误帧还是继续传播错误帧。
(8)广播帧的转发和延迟:被测设备转发广播通信时的吞吐量和延迟。
4 测试中遇到的问题
在测试整机满负荷吞吐率时,经常会发现无法解释的丢包现象,特别是当测试时间超过一定长度的时候。通常,测试时间很短时(只有几秒钟)不会出现丢包现象,但当测试时间超过1分钟或更长时,就会观察到出现少量的丢包,并随着测试时间增加丢包数量也会增加。相似的现象在测试时延的时候也会出现,即当测试时间很短时,时延结果数值比较稳定,但当测试时间超过1分钟或更长时,时延值将会越来越大。
造成这个问题的原因是测试设备(如Smartbits,IXIA等)和被测设备之间的参考时钟速率不同导致。二者的参考时钟是互相独立的。根据以太网规范(802.3-7.3.2)允许时钟有+/-0.01%的偏差。以千兆以太网为例,如果测试设备的时钟在这个允许范围的上限,那么每秒钟测试设备将发送1,000,100,000个bit。如果被测设备的时钟没有任何偏差,即每秒1Gbit,那么当测试的第一秒钟结束后,被测设备将比测试设备慢100,000bit。随着测试时间的增加,无论多大的包缓存,都将最终被耗尽而导致报文的丢弃。
那么,如何判断丢包是由于时钟频率的偏差导致的而不是其他的问题?或者说因为时钟频率引起的丢包率大概是多少以内才是合理的?
根据上文的描述,802.3允许的时钟偏差为0.01%。也就是说,在最糟糕的情况下,如果测试设备正偏0.01%,而被测设备负偏了0.01%,那么理论上最大的丢包率为0.02%,即吞吐率最高只能达到99.98%。鉴于Smartbit和IXIA的自动化测试工具无法测试如此高精度的吞吐率,建议可以使用SmartWindows或者IXIA Explorer来模拟。以64Byte帧长度100%负载发包120s,将接受的报文总数除以测试设备实际发送的报文总数,则可以得出丢包率。理论上,如果丢包率小于0.02%,都可能是因为时钟频率偏差导致的。而实际上测试设备和被测设备之间的时钟频率偏差并不会达到规范允许的上下限,所以由于时钟原因导致的丢包率实际上是非常小的,通常都在0.02%以下。在实际测试中,如果发现有小于0.02%的丢包率,都可以认为是由于时钟偏差导致,是正常的现象。
当然,在真实的网络应用环境中,这样的时钟偏差并不会是一个问题,因为在实际网络中,绝大部分的时间中,网络流量都不会达到100%线速。这样的问题只会存在于交换机的性能测试中,但对于测试者而言,了解其中的原因和限制也是非常有必要的。
5 结束语
局域网交换机的交换性能是由多方面的因素共同影响的,与测试环境和测试模型有关,与测试设备以及被测设备本身的时钟频率偏移有关,也和被测设备的MMU配置是否合理也有关系。但参考时钟的正偏或者负偏,由于个体存在差异,而导致在全线速吞吐率测试下的少量丢包也是合情合理的,并不影响产品在实际网络中的应用。