循环冗余校验码存储比较模块及交换设备性能测试系统转让专利

申请号 : CN201910631114.9

文献号 : CN110519116A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董春雷刘勤让吕平李沛杰沈剑良陈艇宋克刘冬培虎艳宾张帆

申请人 : 中国人民解放军战略支援部队信息工程大学

摘要 :

本发明提供了一种循环冗余校验码存储比较模块及交换设备性能测试系统,涉及交换设备技术领域,该模块包括第一循环冗余校验码存储单元,用于接收发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码,并将其按序写入存储空间;第一循环冗余校验码读取单元,用于当第一循环冗余校验码存储单元接收到经转发后的第i个数据包的第二循环冗余校验码时,按序从存储空间读取第一循环冗余校验码;比较单元,用于比较第一循环冗余校验码与第二循环冗余校验码是否一致,以判断第i个数据包的包转发是否正确。本发明实施例提供的循环冗余校验码存储比较模块,可以检测交换设备的包转发顺序是否正确,节省人力成本,并提高检测准确度。

权利要求 :

1.一种循环冗余校验码存储比较模块,其特征在于,包括:

第一循环冗余校验码存储单元,用于接收发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码,并将所述第一循环冗余校验码按序写入存储空间;

第一循环冗余校验码读取单元,用于当所述第一循环冗余校验码存储单元接收到经所述待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,按序从所述存储空间读取所述第一循环冗余校验码;

比较单元,用于比较所述第一循环冗余校验码与所述第二循环冗余校验码是否一致,并根据比较结果判断所述第i个数据包的包转发是否正确。

2.根据权利要求1所述的循环冗余校验码存储比较模块,其特征在于,所述第一循环冗余校验码存储单元还用于记录所述第一循环冗余校验码写入时刻的第一时间值,以及记录所述第二循环冗余校验码接收时刻的第二时间值;

所述第一循环冗余校验码读取单元还用于当所述第一循环冗余校验码存储单元接收到所述第二循环冗余校验码时,读取所述第一时间值;

所述比较单元还用于根据所述第二时间值和所述第一时间值计算所述第i个数据包的转发延迟时间值。

3.根据权利要求1或2所述的循环冗余校验码存储比较模块,其特征在于,所述待测试交换设备为交换芯片或交换网络。

4.一种数据包比较统计装置,其特征在于,包括:包计数器模块、包延迟统计模块,以及上述权利要求2-3任一项所述的循环冗余校验码存储比较模块;

所述循环冗余校验码存储比较模块分别与所述包计数器模块、所述包延迟统计模块相连;所述循环冗余校验码存储比较模块用于将包转发是否正确的判断结果发送给所述包计数器模块,以及将所述转发延迟时间值发送给所述包延迟统计模块;

所述包计数器模块用于根据所述判断结果计量包转发出错的包数量,还用于计量发送给待测试交换设备的包数量,以及接收到从所述待测试交换设备转发出的包数量;

所述包延迟统计模块用于根据所述转发延迟时间值统计包延迟最大值、包延迟最小值以及包延迟平均值。

5.一种交换设备性能测试系统,其特征在于,包括:至少一个流量发生器,以及权利要求4所述的数据包比较统计装置;

所述流量发生器包括包产生模块、路由管理模块和循环冗余校验码提取模块;所述包产生模块分别与所述路由管理模块、所述循环冗余校验码提取模块相连;所述循环冗余校验码提取模块还与所述数据包比较统计装置中的循环冗余校验码存储比较模块相连;

所述包产生模块用于产生测试用的数据包;

所述路由管理模块用于实现路由查表功能;

所述循环冗余校验码提取模块用于提取进入待测试交换设备之前的数据包的第一循环冗余校验码,以及经所述待测试交换设备转发后的数据包的第二循环冗余校验码,并将所述第一循环冗余校验码和所述第二循环冗余校验码发送给所述循环冗余校验码存储比较模块。

6.根据权利要求5所述的交换设备性能测试系统,其特征在于,所述包产生模块包括配置单元、发包控制单元、有效载荷产生单元、包头产生单元和整包封装单元;

所述配置单元与所述发包控制单元相连;所述发包控制单元和所述整包封装单元彼此相连,且均分别与所述有效载荷产生单元、包头产生单元相连;所述整包封装单元分别与所述路由管理模块、所述循环冗余校验码提取模块相连;

所述配置单元用于配置流量发生器中的控制寄存器;

所述发包控制单元用于根据所述控制寄存器发送的配置信号产生内部控制信号;

所述包头产生单元用于根据所述内部控制信号生成包头;

所述有效载荷产生单元用于根据所述发包控制单元发送的有效载荷长度值产生有效载荷数据;

所述整包封装单元用于根据所述包头和所述有效载荷数据生成拼接包,并根据所述拼接包计算对应的循环冗余校验码,以将所述循环冗余校验码添加到所述拼接包得到待转发数据包。

7.一种循环冗余校验码存储比较方法,其特征在于,所述方法包括:接收发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码,并将所述第一循环冗余校验码按序写入存储空间;

当所述第一循环冗余校验码存储单元接收到经所述待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,按序从所述存储空间读取所述第一循环冗余校验码;

比较所述第一循环冗余校验码与所述第二循环冗余校验码是否一致,并根据比较结果判断所述第i个数据包的包转发是否正确。

8.根据权利要求7所述的循环冗余校验码存储比较方法,其特征在于,在所述将所述第一循环冗余校验码按序写入存储空间的步骤之后,还包括:记录所述第一循环冗余校验码写入时刻的第一时间值。

9.根据权利要求8所述的循环冗余校验码存储比较方法,其特征在于,当所述第一循环冗余校验码存储单元接收到经所述待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,还包括:记录所述第二循环冗余校验码接收时刻的第二时间值,并读取所述第一时间值。

10.根据权利要求9所述的循环冗余校验码存储比较方法,其特征在于,还包括:根据所述第二时间值和所述第一时间值计算所述第i个数据包的转发延迟时间值。

说明书 :

循环冗余校验码存储比较模块及交换设备性能测试系统

技术领域

[0001] 本发明涉及交换设备技术领域,尤其是涉及一种循环冗余校验码存储比较模块及交换设备性能测试系统。

背景技术

[0002] 在交换设备研发阶段,如何验证交换设备成功具备包转发的功能是一个十分重要的课题。现有的验证手段主要是基于收发端的包计数,通过对发送端发送的数据包和接收端收到的数据包的数量进行统计与对比,来检验交换设备的包转发功能是否正常。这种做法过于局限,只能从表面上验证交换设备能否将数据包转发到目的端口,并不能验证转发到目的端口的数据包的转发顺序是否正确。如果在转发的过程中数据包的转发顺序和规定的转发顺序不一致,那么整个转发过程就是失败的。
[0003] 而想验证包转发顺序,现有技术手段只能通过人工来检测接收端收到的数据包的顺序是否与规定的包转发顺序一致,这样不仅会消耗大量的人力资源,并且在包数量很多的时候比较容易出错。

发明内容

[0004] 有鉴于此,本发明的目的在于提供一种循环冗余校验码存储比较模块及交换设备性能测试系统,可检测交换设备的包转发顺序是否正确,更全面检验交换设备的包转发性能,并有利于节省人力成本,提高检测准确度。
[0005] 第一方面,本发明实施例提供了一种循环冗余校验码存储比较模块,包括:第一循环冗余校验码存储单元,用于接收发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码,并将该第一循环冗余校验码按序写入存储空间;第一循环冗余校验码读取单元,用于当第一循环冗余校验码存储单元接收到经待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,按序从存储空间读取第一循环冗余校验码;比较单元,用于比较第一循环冗余校验码与第二循环冗余校验码是否一致,并根据比较结果判断第i个数据包的包转发是否正确。
[0006] 结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,该第一循环冗余校验码存储单元还用于记录第一循环冗余校验码写入时刻的第一时间值,以及记录第二循环冗余校验码接收时刻的第二时间值;该第一循环冗余校验码读取单元还用于当第一循环冗余校验码存储单元接收到第二循环冗余校验码时,读取第一时间值;该比较单元还用于根据第二时间值和第一时间值计算第i个数据包的转发延迟时间值。
[0007] 结合第一方面的第一种或第二种可能的实施方式,本发明实施例提供了第一方面的第一种可能的实施方式,其中,该待测试交换设备为交换芯片或交换网络。
[0008] 第二方面,本发明实施例还提供了一种数据包比较统计装置,包括:包计数器模块、包延迟统计模块,以及上述第二方面及其可能的实施方式之一提供的循环冗余校验码存储比较模块;该循环冗余校验码存储比较模块分别与包计数器模块、包延迟统计模块相连;该循环冗余校验码存储比较模块用于将包转发是否正确的判断结果发送给包计数器模块,以及将转发延迟时间值发送给包延迟统计模块;该包计数器模块用于根据该判断结果计量包转发出错的包数量,还用于计量发送给待测试交换设备的包数量,以及接收到从待测试交换设备转发出的包数量;该包延迟统计模块用于根据转发延迟时间值统计包延迟最大值、包延迟最小值以及包延迟平均值。
[0009] 第三方面,本发明实施例还提供了一种交换设备性能测试系统,包括:至少一个流量发生器,以及上述第二方面提供的数据包比较统计装置;该流量发生器包括包产生模块、路由管理模块和循环冗余校验码提取模块;该包产生模块分别与路由管理模块、循环冗余校验码提取模块相连;该循环冗余校验码提取模块还与数据包比较统计装置中的循环冗余校验码存储比较模块相连;该包产生模块用于产生测试用的数据包;该路由管理模块用于实现路由查表功能;该循环冗余校验码提取模块用于提取进入待测试交换设备之前的数据包的第一循环冗余校验码,以及经待测试交换设备转发后的数据包的第二循环冗余校验码,并将第一循环冗余校验码和第二循环冗余校验码发送给循环冗余校验码存储比较模块。
[0010] 结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,该包产生模块包括配置单元、发包控制单元、有效载荷产生单元、包头产生单元和整包封装单元;该配置单元与发包控制单元相连;该发包控制单元和整包封装单元彼此相连,且均分别与有效载荷产生单元、包头产生单元相连;该整包封装单元分别与路由管理模块、循环冗余校验码提取模块相连;该配置单元用于配置流量发生器中的控制寄存器;该发包控制单元用于根据控制寄存器发送的配置信号产生内部控制信号;该包头产生单元用于根据内部控制信号生成包头;该有效载荷产生单元用于根据发包控制单元发送的有效载荷长度值产生有效载荷数据;该整包封装单元用于根据包头和有效载荷数据生成拼接包,并根据该拼接包计算对应的循环冗余校验码,以将该循环冗余校验码添加到拼接包得到待转发数据包。
[0011] 第四方面,本发明实施例还提供了一种循环冗余校验码存储比较方法,该方法包括:接收发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码,并将第一循环冗余校验码按序写入存储空间;当第一循环冗余校验码存储单元接收到经待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,按序从存储空间读取第一循环冗余校验码;比较第一循环冗余校验码与第二循环冗余校验码是否一致,并根据比较结果判断第i个数据包的包转发是否正确。
[0012] 结合第四方面,本发明实施例还提供了第四方面的第一种可能的实施方式,其中,在上述将第一循环冗余校验码按序写入存储空间的步骤之后,还包括:记录第一循环冗余校验码写入时刻的第一时间值。
[0013] 结合第四方面的第一种可能的实施方式,本发明实施例还提供了第四方面的第二种可能的实施方式,其中,当第一循环冗余校验码存储单元接收到经待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,还包括:记录第二循环冗余校验码接收时刻的第二时间值,并读取第一时间值。
[0014] 结合第四方面的第二种可能的实施方式,本发明实施例还提供了第四方面的第三种可能的实施方式,其中,还包括:根据第二时间值和第一时间值计算第i个数据包的转发延迟时间值。
[0015] 本发明实施例带来了以下有益效果:本发明实施例提供的一种循环冗余校验码存储比较模块及交换设备性能测试系统,该
模块包括第一循环冗余校验码存储单元,用于接收发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码,并将该第一循环冗余校验码按序写入存储空间;第一循环冗余校验码读取单元,用于当第一循环冗余校验码存储单元接收到经待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,按序从存储空间读取第一循环冗余校验码;比较单元,用于比较第一循环冗余校验码与第二循环冗余校验码是否一致,并根据比较结果判断第i个数据包的包转发是否正确。本发明实施例提供的循环冗余校验码存储比较模块,通过对转发前后的数据包提取循环冗余校验码进行比较来判断包转发正确性,其用于存储发送循环冗余校验码及其时间值的存储空间的读写地址都是按序递增的,当包接收顺序与包发送顺序不一致时,比较结果会出错,因而可检测交换设备的包转发顺序是否正确,另外,该循环冗余校验码存储比较模块还可更全面检验交换设备的包转发性能,并有利于节省人力成本,提高检测准确度。
[0016] 本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
[0017] 为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0018] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019] 图1为一种包计数方法示意图;图2为本发明实施例提供的一种循环冗余校验码存储比较模块的结构示意图;
图3为本发明实施例提供的一种数据包比较统计装置的结构示意图;
图4为本发明实施例提供的一种交换设备性能测试系统的结构示意图;
图5为一种交换设备结构示意图;
图6为本发明实施例提供的另一种交换设备性能测试系统的结构示意图;
图7为一种基于不同源、目端口及优先级的独立存储空间;
图8为本发明实施例提供的一种循环冗余校验码存储比较方法的流程图。
[0020] 图标:20-循环冗余校验码存储比较模块;21-第一循环冗余校验码存储单元;22-第一循环冗余校验码读取单元;23-比较单元;30-包计数器模块;40-包迟延统计模块;100-数据包比较统计装置;200-流量发生器。

具体实施方式

[0021] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022] 在大数据时代,人类社会上有无数的设备(手机、电脑、智能可穿戴设备)在产生数据,这些数据通过网络源源不断地汇入数据中心,犹如小溪汇入海洋。在数据中心,这些海量数据通过交换设备在服务器之间流动。如果说大数据时代的数据中心是社会的大脑,那么交换设备犹如大脑中的血管,支撑着大脑的运作。
[0023] 循环冗余校验码(Cyclic Redundancy Check,CRC)是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
[0024] 在研发阶段,如何验证交换设备成功具备包转发的功能是一个十分重要的课题。现有的验证手段主要是基于收发端的包计数,通过对发送端发送的数据包和接收端收到的数据包的数量进行统计与对比,来检验交换设备的包转发功能是否正常。现有的验证技术通过包计数是否相等的方式来验证交换设备的功能,参见图1,为一种包计数方法示意图,这种做法只能从表面上验证交换设备能否将数据包转发到目的端口,但并不能验证转发到目的端口的数据包的转发顺序是否正确。现有手段只能通过人工来检测接收端收到的数据包的顺序是否与规定的包转发顺序一致,这样不仅会消耗大量的人力资源,并且在包数量很多的时候比较容易出错。
[0025] 基于此,本发明实施例提供的一种循环冗余校验码存储比较模块及交换设备性能测试系统,可以检测交换设备的包转发顺序是否正确,更全面检验交换设备的包转发性能,并有利于节省人力成本,提高检测准确度。
[0026] 为便于对本实施例进行理解,首先对本发明实施例所公开的一种循环冗余校验码存储比较模块进行详细介绍。
[0027] 实施例一:如图2所示,为本发明实施例提供的一种循环冗余校验码存储比较模块的结构示意图,由图2可见,该循环冗余校验码存储比较模块20包括依次相连接的第一循环冗余校验码存储单元21、第一循环冗余校验码读取单元22和比较单元23。其中,各个单元的功能如下:
首先,第一循环冗余校验码存储单元21用于接收发送给待测试交换设备的第i个待转
发数据包的第一循环冗余校验码,并将该第一循环冗余校验码按序写入存储空间。
[0028] 这里,待测试交换设备可以是交换芯片或者是交换网络。为了测试待测试交换设备的包转发性能,需要模拟向该待测试交换设备发送数据包以进行转发,并根据实际转发的情况来衡量该交换设备的包转发性能优劣。
[0029] 具体地,对于发送给待测试交换设备的每一个待转发数据包,预先计算了数据包的循环冗余校验码,并将该循环冗余校验码与对应的数据包封装成一个待转发数据包以提供给待测试交换设备进行转发。这里,在待转发数据包进入待测试设备之前,提取其待转发数据包中的第一循环冗余校验码,并由第一循环冗余校验码存储单元21接收和存储,这里,以接收的顺序依次按序将第一循环冗余校验码写入存储空间。例如,对于第i(i为自然数)个待转发数据包的第一循环冗余校验码,保存在存储空间中的校验码的排序相应的也为第i个。
[0030] 其次,第一循环冗余校验码读取单元22用于当第一循环冗余校验码存储单元21接收到经待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,按序从存储空间读取第一循环冗余校验码。
[0031] 在对交换设备进行包转发性能测试过程中,第一循环冗余校验码存储单元21还接收经待测试交换设备转发后的数据包的第二循环冗余校验码。这里,当第一循环冗余校验码存储单元21接收到转发后的第i个数据包的第二循环冗余校验码时,自动从存储空间中读取顺序为第i个的循环冗余校验码,也即对应为发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码。
[0032] 另外,比较单元23用于比较第一循环冗余校验码与第二循环冗余校验码是否一致,并根据比较结果判断第i个数据包的包转发是否正确。
[0033] 比较单元23根据第一循环冗余校验码读取单元22读取的第i个待转发数据包的第一循环冗余校验码,以及第一循环冗余校验码存储单元21接收到的第i个数据包的第二循环冗余校验码,进行比较,若二者一致,则表明第i个数据包的包转发正确,也即,该数据包的内容和顺序均正确。否则,表明第i个数据包的包转发不正确,可能是第i个数据包的内容出错或者顺序出错。
[0034] 这里,对于某一批次数据包的交换,若中间出现丢包、或者顺序不正确、或者错包,都会导致比较单元23中的校验码比较结果不一致。
[0035] 在本发明实施例提供的循环冗余校验码存储比较模块20中,用于存储发送循环冗余校验码的存储空间的读写地址都是按序递增的,因而该模块具有包顺序检验功能,当包接收顺序与包发送顺序不一致时,第一循环冗余校验码和第二循环冗余校验码会不一致,从而比较结果是不一致。这样,即实现了对交换设备的包转发顺序是否正确的自动检测,相比于传统人工检测方法,有效减少验证人员的人工投入时间,从而节约人力成本,并减少人工引起的出错概率,提高检测准确度。
[0036] 在另一种可能的实施方式中,该循环冗余校验码存储比较模块20中的第一循环冗余校验码存储单元21还用于记录第一循环冗余校验码写入时刻的第一时间值,也即,在第一循环冗余校验码被写入存储空间时,其写入时间值也会与第一循环冗余校验码一起被写入存储空间;而且,第一循环冗余校验码存储单元21也记录第二循环冗余校验码接收时刻的第二时间值。另外,该第一循环冗余校验码读取单元22还用于当第一循环冗余校验码存储单元21接收到第二循环冗余校验码时,读取第一时间值;然后,该比较单元23还用于根据第二时间值和第一时间值计算第i个数据包的转发延迟时间值。
[0037] 这样,通过记录每个待转发数据包的第一循环冗余校验码的存储时间,以及每个转发后的数据包的第二循环冗余校验码的接收时间,当任一个数据包在比较显示其包转发正确的情况下,计算得到的转发延迟时间值也是正确的。这样,即可得到每个数据包由于交换设备转发造成的包发送与接收之间的转发延迟时间,从而可从数据包的转发延迟角度衡量待测试交换设备的转发性能,对其性能检验更加全面。
[0038] 本发明实施例提供的一种循环冗余校验码存储比较模块,该模块包括第一循环冗余校验码存储单元,用于接收发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码,并将该第一循环冗余校验码按序写入存储空间;第一循环冗余校验码读取单元,用于当第一循环冗余校验码存储单元接收到经待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,按序从存储空间读取第一循环冗余校验码;比较单元,用于比较第一循环冗余校验码与第二循环冗余校验码是否一致,并根据比较结果判断第i个数据包的包转发是否正确。该模块可检测交换设备的包转发顺序是否正确,更全面检验交换设备的包转发性能,并有利于节省人力成本,提高检测准确度。
[0039] 实施例二:本发明实施例还提供了一种数据包比较统计装置,参见图3,为该数据包比较统计装置的结构示意图,由图3可见,该装置包括上述实施例一及其可能的实施方式提供的循环冗余校验码存储比较模块20,以及与其分别相连接的包计数器模块30和包迟延统计模块40。其中,各个模块的功能如下:
循环冗余校验码存储比较模块20,用于将包转发是否正确的判断结果发送给包计数器
模块30,还用于将转发延迟时间值发送给包延迟统计模块。
[0040] 包计数器模块30,用于根据该判断结果计量包转发出错的包数量,还用于计量发送给待测试交换设备的包数量,以及接收到从待测试交换设备转发出的包数量。这里,通过计量发送的包数量和接收转发后的包数量,可以检验出是否出现丢包的情况,例如,若发送包数量和接收包数量不一致,则表明存在丢包。而转发出错的包数量则反映了错包的情况,可计算错包率。
[0041] 包迟延统计模块40,用于根据转发延迟时间值统计包延迟最大值、包延迟最小值以及包延迟平均值。通过包迟延统计模块40得到的上述三个参量,可以更加细致、多维度地评价交换设备的性能。
[0042] 本发明实施例所提供的数据包比较统计装置,其实现原理及产生的技术效果和前述循环冗余校验码存储比较模块实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述实施例一中相应内容。
[0043] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据包比较统计装置的具体工作过程,可以参考前述循环冗余校验码存储比较模块实施例中的对应过程,在此不再赘述。
[0044] 实施例三:本发明实施例还提供了一种交换设备性能测试系统,包括:至少一个流量发生器,以及上述第二方面提供的数据包比较统计装置;该流量发生器包括包产生模块、路由管理模块和循环冗余校验码提取模块。
[0045] 其中,该包产生模块分别与路由管理模块、循环冗余校验码提取模块相连;该循环冗余校验码提取模块还与数据包比较统计装置中的循环冗余校验码存储比较模块相连。
[0046] 这里,流量发生器是一种可以产生特定类型、特定长度和特定速率的数据流的工具,主要功能是在流量仿真与FPGA(Field-Programmable Gate Array,现场可编程门阵列)原型验证过程中模拟真实的流量激励源,通过数据包的构造,生成数据流,达到测试待测设备或者待测应用的目的。
[0047] 在该流量发生器中,包产生模块用于产生测试用的数据包;路由管理模块用于实现路由查表功能;循环冗余校验码提取模块用于提取进入待测试交换设备之前的数据包的第一循环冗余校验码,以及经待测试交换设备转发后的数据包的第二循环冗余校验码,并将第一循环冗余校验码和第二循环冗余校验码发送给循环冗余校验码存储比较模块。
[0048] 参见图4,为本发明实施例提供的一种交换设备性能测试系统的结构示意图,在图4示出的实施方式中,该测试系统有多个流量发生器200,且各个流量发生器200均与交换设备相连。并且,每个流量发生器200的循环冗余校验码提取模块,也即CRC(Cyclic 
Redundancy Check)模块,均与数据包比较统计装置100中的循环冗余校验码存储比较模块
20相连。
[0049] 在本实施例中,交换设备的结构参见图5,该交换设备的内部包含三个关键模块:收发器、协议控制器和交换网络。其中,收发器主要用于实现收发数据处理;协议控制器主要用于端口协议解析;交换网络用于实现多个交换端口之间的无阻塞、低时延数据交换。该交换设备能够实现多个端口之间的无阻塞、低时延、高可靠、灵活交换。
[0050] 在图4的基础上,参见图6,为另一种交换设备性能测试系统的结构示意图,在图6示出的实施方式中,该流量发生器200中的包产生模块包括配置单元、发包控制单元、有效载荷产生单元、包头产生单元和整包封装单元。
[0051] 其中,该配置单元与发包控制单元相连;该发包控制单元和整包封装单元彼此相连,且均分别与有效载荷产生单元、包头产生单元相连;该整包封装单元分别与路由管理模块、循环冗余校验码提取模块相连。这里,各个单元的功能如下:配置单元用于配置流量发生器200中的控制寄存器。它承担了用户配置整个流量发生
器200控制寄存器的任务。
[0052] 发包控制单元用于根据控制寄存器发送的配置信号产生内部控制信号。它接收来自控制寄存器的配置信号,对其进行处理后产生包长、包间隔、包数量及发包起停等相关的内部控制信号,这些内部控制信号作用于有效载荷(payload)产生单元、包头产生单元及整包封装单元。
[0053] 包头产生单元用于根据内部控制信号生成包头。它接收来自控制寄存器的包头内容相关控制信号,生成特定内容的包头,其中,根据包头内容控制信号,包头的各个字段取值为固定值或随机值。
[0054] 有效载荷(payload)产生单元用于根据发包控制单元发送的有效载荷长度值产生有效载荷数据。这里,payload产生单元接收到发包控制单元产生的payload长度值(以字节为单位,固定值或在指定范围内的随机值)后,payload产生单元产生相应数据长度的AXI_Stream格式的数据。
[0055] 整包封装单元用于根据包头和有效载荷数据生成拼接包,并根据该拼接包计算对应的循环冗余校验码,以将该循环冗余校验码添加到拼接包得到待转发数据包。这里,整包封装单元接收来自包头产生单元输出的包头以及payload产生单元产生的payload,在指定的包头结束位置处实现包头与payload的拼接,完成拼接后的包根据需要进行循环冗余校验计算与添加后即得到最终生成的包。
[0056] 这里,当包具有不同优先级时,可按照源端口、目的端口以及优先级的不同,建立各自独立的存储空间,用于验证同一源目端口间同一优先级内包的按序转发(同一优先级按序转发测试),以及同一源目端口间不同优先级之间的按优先级转发(不同优先级按优先级转发测试,即strict priority严格优先转发)。基于不同源、目端口及优先级的独立存储空间示意图如图7所示。其中,s代表源端口,r代表目的端口,p代表优先级。这样,本发明实施例提供的交换设备性能测试系统还可以用于验证DUT(Device Under Test,待测对象)的同一优先级包按序转发特性,以及验证DUT的不同优先级包按优先级转发特性。
[0057] 另外,在交换设备具有重新计算并替换循环冗余校验码的功能的情况下(比如,交换设备中含有协议控制器,协议控制器具有对发出的数据帧重新计算循环冗余校验码并用新的循环冗余校验码替换掉旧的循环冗余校验码的功能),假如数据帧在转发过程中帧内容发生了异常改变,接收设备通过循环冗余检查无法检查出数据帧转发过程中帧内容被改变这一事件。而本发明实施例提供的交换设备性能测试系统,通过循环冗余校验码的存储与比较,能够成功检查出上述情况下帧内容被改变这一事件。
[0058] 为了提高本实施例中的交换设备性能测试系统的验证速度,在其中一种实施方式中,可以将系统中的流量发生器200、数据包比较统计装置100采用硬件描述语言verilog编程实现,综合实现后可下载到FPGA(Field-Programmable Gate Array,现场可编程门阵列)上,从而实现基于FPGA的用于验证交换设备包转发正确性的硬件加速验证方案。这样,基于FPGA的软件定义的流量发生器200,可灵活配置每个端口的数据包的协议类型、数量、长度、间隔等,且具有高速性、灵活性和可扩展性。
[0059] 本发明实施例提供的交换设备性能测试系统,与上述实施例提供的循环冗余校验码存储比较模块具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
[0060] 实施例四:本发明实施例还提供了一种循环冗余校验码存储比较方法,参见图8,为该方法的流程示意图,由图8可见,该方法包括以下步骤:
步骤102:接收发送给待测试交换设备的第i个待转发数据包的第一循环冗余校验码,
并将第一循环冗余校验码按序写入存储空间。
[0061] 步骤104:当第一循环冗余校验码存储单元接收到经待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,按序从存储空间读取第一循环冗余校验码。
[0062] 步骤106:比较第一循环冗余校验码与第二循环冗余校验码是否一致,并根据比较结果判断第i个数据包的包转发是否正确。
[0063] 在另一种实施方式中,在上述将第一循环冗余校验码按序写入存储空间的步骤之后,还包括:记录第一循环冗余校验码写入时刻的第一时间值。并且,当第一循环冗余校验码存储单元接收到经待测试交换设备转发后的第i个数据包的第二循环冗余校验码时,还包括:记录第二循环冗余校验码接收时刻的第二时间值,并读取第一时间值。然后,根据第二时间值和第一时间值计算第i个数据包的转发延迟时间值。
[0064] 这样,通过记录每个待转发数据包的第一循环冗余校验码的存储时间,以及每个转发后的数据包的第二循环冗余校验码的接收时间,当任一个数据包在比较显示其包转发正确的情况下,计算得到的转发延迟时间值也是正确的。这样,即可得到每个数据包由于交换设备转发造成的包发送与接收之间的转发延迟时间,从而可从数据包的转发延迟角度衡量待测试交换设备的转发性能,对其性能检验更加全面。
[0065] 本发明实施例所提供的进行循环冗余校验码存储比较方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0066] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0067] 除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
[0068] 在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
[0069] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0070] 另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0071] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0072] 最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。