发明内容
本发明所要解决的技术问题在于现有技术交换机端到端的测试方法,无法体现交换机全端口数据交换能力,因此无法测试真实网络环境下的交换机数据转发性能。
本发明通过以下技术手段实现解决上述技术问题的:一种交换机网状测试系统,包括光纤连接线,还包括测试设备,测试设备包括测试模块和多个测试设备网口,各个测试设备网口均与测试模块连接,各个测试设备网口通过光纤连接线与一一对应的交换机网口连接,
测试模块包括实时时钟模块、以太网接口模块、数据调度模块和数据解析模块,以太网接口模块包括报文发送模块和报文接收模块,
实时时钟模块,用于提供本地时间;
报文发送模块,用于通过测试设备网口向对应的交换机网口依次发送各个网状测试报文,依次发送各个网状测试报文的目的MAC地址依次循环指向其余各个测试设备网口的MAC地址;各个网状测试报文中包含发送时间戳;
报文接收模块,用于接收交换机转发的网状测试报文,并将网状测试报文转换为报文关键信息,并将报文关键信息打包为报文关键信息帧,报文关键信息包含:报文目的MAC地址、报文源MAC地址、报文发送时间戳和报文接收时间戳;
数据调度模块,用于存储报文关键信息帧并传输给数据解析模块调度;
数据解析模块,用于根据报文关键信息帧获得转发报文数、报文转发最小时延、报文转发平均时延和报文转发最大时延。
本发明的报文发送模块通过测试设备网口向对应的交换机网口依次发送各个网状测试报文,依次发送各个网状测试报文的目的MAC地址依次循环指向其余各个测试设备网口的MAC地址,采用每一个端口以循环的方式发送测试报文给所有的其它端口的全网状测试方法,能够体现交换机全端口数据交换能力,可以很好的模拟与测试真实网络环境下的交换机数据转发性能。
进一步地,所述交换机网口包括顺序编号的第一交换机网口至第八交换机网口,测试设备网口包括与第一交换机网口至第八交换机网口一一对应连接的第一测试设备网口至第八测试设备网口。
进一步地,所述网状测试报文在交换机内部形成网状测试数据流,即每一个交换机网口以循环的方式转发接收的测试数据帧给所有的其它交换机网口。
进一步地,当报文发送模块通过测试设备网口发送网状测试报文的第一个有效字节时,查询实时时钟模块当前本地时间,记为发送时间戳,当发送到网状测试报文最后8个字节时,使用发送时间戳替换网状测试报文的最后8个字节。
更进一步地,所述报文目的MAC地址位于网状测试报文的第1至6字节、报文源MAC地址位于网状测试报文的第7至12字节、报文发送时间戳网状测试报文的最后8字节数据和报文接收时间戳为报文接收模块接收到网状测试报文第一个有效字节时,记录的本地时间。
进一步地,所述数据调度模块内包括8个地址位宽4比特,数据位宽64比特的缓冲存储区RAM,分别存储来自于8个测试设备网口对应的报文接收模块的报文关键信息帧,同时循环读取8个缓冲存储区RAM的报文关键信息帧,顺序发往数据解析模块。
更进一步地,所述数据解析模块包括4个具有相同存储结构的参数寄存器RAM,分别为:第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D,其中,第一参数寄存器RAM_A用于存储交换机各报文转发路径的转发报文数;第二参数寄存器RAM_B用于存储交换机各报文转发路径对应的报文转发最小时延;第三参数寄存器RAM_C用于存储交换机各转发路径对应的报文转发平均时延;第四参数寄存器RAM_D用于存储交换机各转发路径对应的报文转发最大时延。
再进一步地,所述数据解析模块根据报文关键信息帧更新第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D所存储的数据。
再进一步地,所述更新的过程为:
步骤一:通过报文关键信息帧中的报文目的MAC地址与报文源MAC地址,获取网状测试报文在交换机中的转发路径;
步骤二:将报文关键信息帧中的报文发送时间戳与报文接收时间戳作差作为报文转发时延;
步骤三:根据步骤一中获取的报文转发路径,读取第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D中该报文转发路径对应的历史转发报文数,历史报文转发最小时延,历史报文转发平均时延,历史报文转发最大时延;
步骤四:数据调度模块在收到一个网络测试帧时,报文转发数直接加1,并将计算获得报文转发数覆盖第一参数寄存器RAM_A中对应的历史报文转发数;
若步骤二中报文转发时延小于步骤三中的历史报文转发最小时延,将步骤二中报文转发时延覆盖第二参数寄存器RAM_B对应的报文转发最小时延;
若步骤二中报文转发时延大于步骤三中的历史报文转发最大时延,将步骤二中报文转发时延覆盖第四参数寄存器RAM_D对应的报文转发最大时延;
将步骤二中报文转发时延与步骤三中的历史报文转发平均时延,取平均值覆盖第三参数寄存器RAM_C对应的报文转发平均时延。
本发明还提供一种交换机网状测试方法,包括以下步骤:
步骤1、测试设备上电启动,测试设备内的实时时钟模块生成本地时间;
步骤2、数据解析模块初始化转发报文数、报文转发最小时延、报文转发平均时延、报文转发最大时延;
步骤3、报文发送模块为各测试设备网口配置唯一的MAC地址;
步骤4、报文发送模块为测试设备网口建立各自的网状测试MAC表,网状测试MAC表包括其他测试设备网口的MAC地址;
步骤5、报文发送模块初始化对应的测试设备网口发送的网状测试报文的帧数;
步骤6、报文发送模块初始化网状测试参数,网状测试参数包含:测试流量占比、测试时间、网状测试报文长度、最小报文间隔长度,若当前配置的测试流量占比低于设定阈值,执行步骤25,否则执行步骤7;
步骤7、根据网状测试参数的测试流量占比,计算报文间隔;
步骤8、根据网状测试参数的测试流量占比和测试时间,计算每个测试设备网口需要发送的网状测试报文总帧数;
步骤9、报文发送模块获取测试设备网口发送的网状测试报文的帧数,若各个测试设备网口发送的网状测试报文的帧数均达步骤8中计算的网状测试报文总帧数,进入步骤23,否则执行步骤10;
步骤10、报文发送模块顺序遍历读取网状测试MAC表中的一个测试设备网口的MAC地址作为报文源MAC地址;
步骤11、报文发送模块配置网状测试报文的报文目的MAC地址与报文源MAC地址;
步骤12、报文发送模块获取网状测试报文的发送时间戳;
步骤13、报文发送模块发送加入发送时间戳的网状测试报文;
步骤14、报文接收模块接收交换机转发的网状测试报文,并记录对应的接收时间戳;
步骤15、报文接收模块通过网状测试报文和对应的接收时间戳,获取网状测试报文的报文关键信息,报文关键信息包含报文目的MAC地址、报文源MAC地址、报文发送时间戳和报文接收时间戳;
步骤16、报文接收模块将步骤15中获取的报文关键信息打包为关键信息帧发送到数据调度模块;
步骤17、数据调度模块中通过对应的缓冲存储区储存来自于对应的报文接收模块的报文关键信息帧,并顺序将报文关键信息帧向数据解析模块发送;
步骤18、数据解析模块中,解析关键信息帧,获取报文转发路径;
步骤19、数据解析模块解析关键信息帧,获取报文转发延时;
步骤20、数据解析模块根据报文转发路径,分别从第一参数寄存器、第二参数寄存器、第三参数寄存器、和第四参数寄存器中读取该报文转发路径对应的转发报文数、报文转发最小时延、报文转发平均时延和报文转发最大时延作为历史转发报文数、历史报文转发最小时延、历史报文转发平均时延和历史报文转发最大时延;
步骤21、数据解析模块根据报文关键信息帧计算转发报文数、报文转发最小时延、报文转发平均时延和报文转发最大时延;
历史转发报文数直接加1作为新的转发报文数;
若计算得到的报文转发时延小于历史报文转发最小时延,将计算得到的报文转发时延作为新的报文转发最小时延,否则新的报文转发最小时延与历史报文转发最小时延相同;
若计算得到的报文转发时延大于历史报文转发最大时延,将计算得到的报文转发时延作为新的报文转发最大时延,否则新的报文转发最大时延与历史报文转发最大时延相同;
将计算得到的报文转发时延与历史报文转发平均时延取平均值作为新的报文转发平均时延;
步骤22、将新的转发报文数、新的报文转发最小时延、新的报文转发平均时延、新的报文转发最大时延分别更新到第一参数寄存器、第二参数寄存器、第三参数寄存器、第四参数寄存器,之后回到步骤9,
步骤23、将第一参数寄存器存储的各个报文转发路径对应的转发报文数全部读出并求和获得转发报文总数,若转发报文总数与步骤8中各测试设备网口的网状测试报文总帧数的总和一致,即测试过程中未出现帧丢失,执行步骤24,否则减小测试流量占比,返回步骤6,
步骤24、计算各个转发路径每秒钟转发的转发报文数、报文转发最小时延、报文转发平均时延、报文转发最大时延。
步骤25、交换机网状测试结束。
本发明的优点在于:
(1)本发明的报文发送模块通过测试设备网口向对应的交换机网口依次发送各个网状测试报文,依次发送各个网状测试报文的目的MAC地址依次循环指向其余各个测试设备网口的MAC地址,采用每一个端口以循环的方式发送测试报文给所有的其它端口的全网状测试方法,能够体现交换机全端口数据交换能力,可以很好的模拟与测试真实网络环境下的交换机数据转发性能。
(2)本发明每一个端口以循环的方式发送测试报文给所有的其它端口的全网状测试方法,使得更方便集成度更高的实现交换机网状测试,交换机网络测试更加高效。
(3)所有测试设备网口的网状测试报文通过关键信息帧提取,集中到数据解析模块进行解析,提高数据解析模块的利用率。
(4)实时时钟模块、以太网接口模块、数据调度模块和数据解析模块可由FPGA集成实现,使得FPGA可以进行大规模逻辑复用,减少FPGA实现网状测试功能所需的逻辑资源。
(5)本发明可以根据测试流量占比自适应调整网状测试报文发送带宽,获取在不同测试流量占比条件下,交换机的丢帧情况。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本发明提供了一种交换机网状测试系统,包括:交换机001、测试设备002、光纤连接线003。所述交换机001进一步包含交换机网口0011,在本实施例中,交换机网口0011有8个,分别为第一交换机网口A1,第二交换机网口A2,第三交换机网口A3,第四交换机网口A4,第五交换机网口A5,第六交换机网口A6,第七交换机网口A7,第八交换机网口A8。
所述测试设备002包含测试设备网口0021和测试模块0022。
测试设备网口0021包括与第一交换机网口A1,第二交换机网口A2,第三交换机网口A3,第四交换机网口A4,第五交换机网口A5,第六交换机网口A6,第七交换机网口A7,第八交换机网口A8一一对应连接的第一测试设备网口B1,第二测试设备网口B2,第三测试设备网口B3,第四测试设备网口B4,第五测试设备网口B5,第六测试设备网口B6,第七测试设备网口B7,第八测试设备网口B8。
交换机001和测试设备002通过交换机网口0011与测试设备网口0021完成数据通信,所述交换机网口0011与测试设备网口0021通过光纤连接线003连接,所述测试设备网口0021与测试模块0022引脚直接连接。如图1所示。
交换机001为被测交换机设备。所述测试设备002用于对交换机001进行网状测试。具体地,测试模块0022通过测试设备网口0021完成实际网络数据传输。
测试模块0022,用于交换机网状吞吐量测试与交换机网状时延测试。
交换机网状吞吐量测试用于确定交换机在网状测试数据流下,两个任意交换机网口间每秒钟的转发报文数。
交换机网状时延测试用于确定交换机在网状测试数据流下,两个任意交换机网口间报文转发的时延信息。
网状测试数据流,如图2所示。图2中第一交换机网口A1,第二交换机网口A2,第三交换机网口A3,第四交换机网口A4,第五交换机网口A5,第六交换机网口A6,第七交换机网口A7,第八交换机网口A8为交换机的8个网口。每一个交换机网口以循环的方式转发接收的测试数据帧给所有的其它交换机网口,形成如图2所述的网状测试数据流。
测试装置网口0021完成实际网络数据传输是指测试装置网口0021与交换机网口0011通过光纤连接线003构建实际物理连接,最终完成网状测试数据流传输。
测试模块0022进一步包含:实时时钟模块、以太网接口模块、数据调度模块和数据解析模块,如图3所示。
实时时钟模块,用于产生本地时间。本地时间使用8字节表示。其中高4字节表示秒值,低4字节表示纳秒值。
具体的,当测试设备002上电启动后。实时时钟模块在100Mhz的时钟频率下,从零秒开始计时。即每个时钟周期本地时间增加10纳秒。
以太网接口模块包含报文发送模块和报文接收模块。每一个以太网接口模块对应一个测试设备以太网口0021,如图3所示,有8个测试设备网口0021与测试模块0022连接,为了区分8个测试设备网口0021,测试模块002包含的8个以太网接口模块分别为对应的测试设备网口0021配置唯一的MAC地址。
优选地,配置第一测试设备网口B1的MAC地址为2C-A9-00-1E-00-01。
优选地,配置第二测试设备网口B2的MAC地址为2C-A9-00-1E-00-02。
优选地,配置第三测试设备网口B3的MAC地址为2C-A9-00-1E-00-03。
优选地,配置第四测试设备网口B4的MAC地址为2C-A9-00-1E-00-04。
优选地,配置第五测试设备网口B5的MAC地址为2C-A9-00-1E-00-05。
优选地,配置第六测试设备网口B6的MAC地址为2C-A9-00-1E-00-06。
优选地,配置第七测试设备网口B7的MAC地址为2C-A9-00-1E-00-07。
优选地,配置第八测试设备网口B8的MAC地址为2C-A9-00-1E-00-08。
报文发送模块,用于通过测试设备网口向对应的交换机网口发送网状测试所需要的网状测试报文。网状测试报文主要包含以下两个特质:
其一,网状测试报文在交换机内部形成网状测试数据流,即每一个交换机网口以循环的方式转发网状测试数据帧给所有的其它的交换机网口,如图2所示。具体的,测试模块通过8个测试设备网口同时向交换机的对应的交换机网口发出网状测试报文。每个测试设备网口依次发出的各个网状测试报文的目的MAC地址依次循环指向其余7个测试设备网口的MAC地址,如图4所示。
其二,网状测试报文含有报文发出的时间信息。具体的,当报文发送模块通过测试设备网口发送网状测试报文的第一个有效字节时,查询实时时钟模块当前本地时间,记为发送时间戳。当发送到网状测试报文最后8个字节时,使用发送时间戳替换网状测试报文原本最后8个字节。
报文接收模块,用于接收交换机转发的网状测试报文,并将网状测试报文转换为报文关键信息。
首先,报文接收模块在接收交换机转出的网状测试报文时,根据网状测试报文字节位和接收报文的时间提取报文关键信息。
报文关键信息包含:报文目的MAC地址(Frame_dmac),报文源MAC地址(Frame_smac),报文发送时间戳(Frame_tx_timer),报文接收时间戳(Frame_rx_timer)。
根据以太网IEEE 802.3标准,所述报文目的MAC地址恒定位于网状测试报文的第1至6字节。所述源MAC地址恒定位于网状测试报文的第7至12字节。报文发送时间戳为网状测试报文的最后8字节数据。报文接收时间戳为报文接收模块接收到网状测试报文第一个有效字节时,记录的本地时间。
其次,获取报文关键信息后,报文接收模块将报文关键信息打包为报文关键信息帧,报文关键信息帧的格式如图5所示。
数据调度模块,存储8个报文接收模块生成的报文关键信息帧。并传输给数据解析模块调度。
具体的,数据调度模块内设置了8个地址位宽4比特,数据位宽64比特的缓冲存储区RAM,分别存储来自于8个测试设备网口的报文接收模块的报文关键信息帧。同时循环读取8个缓冲存储区RAM的报文关键信息帧,顺序发往数据解析模块。
数据解析模块,完成报文关键信息帧的解析,得出交换机网状吞吐量与网状时延指标。
具体的,交换机网状吞吐量用于表征交换机在网状测试数据流下,两个任意交换机网口间每秒钟的转发报文数。交换机网状时延用于表征交换机在网状测试数据流下,两个任意交换机网口间报文转发最小时延、报文转发平均时延、报文转发最大时延三个数据指标。
对于8端口交换机而言,所述两个任意网口间报文转发行为,如图2所示。第一交换机网口A1接收的网状测试报文,可以向第二交换机网口A2、第三交换机网口A3、第四交换机网口A4、第五交换机网口A5、第六交换机网口A6、第七交换机网口A7、第八交换机网口A8转发。同理,第二交换机网口A2接收的网状测试报文,可以向第一交换机网口A1、第三交换机网口A3、第四交换机网口A4、第五交换机网口A5、第六交换机网口A6、第七交换机网口A7、第八交换机网口A8转发。因此8端口交换机合计有56种报文转发方式,本方法使用交换机转发路径定义每一种报文转发方式。即8端口交换机,共计有56条报文转发路径。
数据解析模块设置了4个具有相同存储结构的参数寄存器RAM,分别为:第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D。其中,第一参数寄存器RAM_A用于存储交换机各报文转发路径的转发报文数;第二参数寄存器RAM_B用于存储交换机各报文转发路径对应的报文转发最小时延;第三参数寄存器RAM_C用于存储交换机各转发路径对应的报文转发平均时延;第四参数寄存器RAM_D用于存储交换机各转发路径对应的报文转发最大时延。
所述相同存储结构,如图6所示。图中第一列展示了第一测试设备网口B1到第二测试设备网口B2、第三测试设备网口B3、第四测试设备网口B4、第五测试设备网口B5、第六测试设备网口B6、第七测试设备网口B7、第八测试设备网口B8合计7条路径,分别对应参数寄存器的地址8、16、24、32、40、48、56。第二列展示了第二测试设备网口B2到第一测试设备网口B1、第三测试设备网口B3、第四测试设备网口B4、第五测试设备网口B5、第六测试设备网口B6、第七测试设备网口B7、第八测试设备网口B8合计7条路径,分别对应参数寄存器的的地址1、17、25、33、41、49、57。整个存储结构包含8列合计56个存储地址,与上述56条报文转发路径一一对应。至此可以将参数寄存器的地址与报文转发路径建立对应关系。
数据解析模块根据报文关键信息帧持续更新第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D所存储的数据,数据更新流程如下所示:
步骤一:通过报文关键信息帧,获取网状测试报文在交换机中的转发路径。
具体的,报文关键信息帧含有目的MAC地址与源MAC地址信息。每个测试设备网口都有唯一的MAC地址,因此通过源MAC地址可以获知网状测试报文从哪一个测试设备网口发出;通过目的MAC地址可以获知网状测试报文被发往哪个测试设备网口。最终得出转发路径。
步骤二:通过报文关键信息帧,计算报文转发时延;
具体的,根据报文关键信息帧定义,报文关键信息帧含有报文发送时间戳,与报文接收时间戳。报文接收时间戳与报文发送时间戳的差值即报文转发时延。
步骤三:根据步骤一中获取的报文转发路径,读取第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D中该报文转发路径对应的历史转发报文数,历史报文转发最小时延,历史报文转发平均时延,历史报文转发最大时延。
具体的,如图6所示。交换机的转发路径与四个参数寄存器的存储地址相对应。因此步骤一中获取报文转发路径后,即可从第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D对应的地址读出该报文转发路径已经存在的历史报文转发数,历史报文转发最小时延,历史报文转发平均时延,历史报文转发最大时延。
步骤四:根据报文关键信息帧计算报文转发数,报文转发最小时延,报文转发平均时延,报文转发最大时延四项数据。
具体的,每一个报文关键信息帧表示收到一个网状测试报文,因此在收到一个网络测试帧时,报文转发数直接加1,并将计算获得报文转发数覆盖第一参数寄存器RAM_A中对应的报文转发数;
若步骤二中报文转发时延小于步骤三中的历史报文转发最小时延,将步骤二中报文转发时延覆盖第二参数寄存器RAM_B对应的报文转发最小时延。
若步骤二中报文转发时延大于步骤三中的历史报文转发最大时延,将步骤二中报文转发时延覆盖第四参数寄存器RAM_D对应的报文转发最大时延。
将步骤二中报文转发时延与步骤三中的历史报文转发平均时延,取平均值覆盖第三参数寄存器RAM_C对应的报文转发平均时延。
具体的,根据步骤1中得到的交换机转发路径,将步骤四得到的报文转发数,报文转发最小时延,报文转发平均时延,报文转发最大时延四项数据,写入与报文转发路径对应的RAM地址。
完成上述步骤后,第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D所存储的数据将跟随报文关键信息帧实时更新。所有报文关键信息帧接收完毕后,第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D所存储的数据,即交换机网状吞吐量与网状时延测试指标。
优选的,测试模块由FPGA集成实现。
通过以上技术方案,本发明的报文发送模块通过测试设备网口向对应的交换机网口依次发送各个网状测试报文,依次发送各个网状测试报文的目的MAC地址依次循环指向其余各个测试设备网口的MAC地址,采用每一个端口以循环的方式发送测试报文给所有的其它端口的全网状测试方法,能够体现交换机全端口数据交换能力,可以很好的模拟与测试真实网络环境下的交换机数据转发性能。
实施例2
基于实施例1所提供的一种交换机网状测试装置,本发明实施例2还提供一种交换机网状测试方法,包含以下步骤:
步骤1、测试设备上电启动,测试设备内的实时时钟模块生成本地时间。
具体的,测试设备上电启动后。实时时钟模块在100Mhz的时钟频率下从零秒开始计时,生成本地时间。即每个时钟周期本地时间增加10纳秒。
本地时间使用8字节数据表示,其中高4字节表示秒值,低4字节表示纳秒值。
步骤2、数据解析模块初始化第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D,将第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D的所有地址写入0,完成网状测试参数初始化。主要包含网状吞吐量数据初始化与网状时延数据初始化。
具体的,网状吞吐量数据包括交换机各报文转发路径和报文转发路径对应的转发报文数。网状时延数据包括交换机各报文转发路径,以及报文转发路径对应的报文转发最小时延,报文转发平均时延与报文转发最大时延。
4个具有相同存储结构的参数寄存器RAM:分别为第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D。其中,第一参数寄存器RAM_A用于存储交换机各报文转发路径的转发报文数;第二参数寄存器RAM_B用于存储交换机各报文转发路径对应的报文转发最小时延;第三参数寄存器RAM_C用于存储交换机各转发路径对应的报文转发平均时延;第四参数寄存器RAM_D用于存储交换机各转发路径对应的报文转发最大时延。
所述相同存储结构,如图6所示。图中展示了8口交换机56条报文转发路径与参数寄存器RAM的地址的对应关系。
步骤3、报文发送模块为各测试设备网口配置唯一的MAC地址。
优选地,配置第一测试设备网口B1的MAC地址为2C-A9-00-1E-00-01。
优选地,配置第二测试设备网口B2的MAC地址为2C-A9-00-1E-00-02。
优选地,配置第三测试设备网口B3的MAC地址为2C-A9-00-1E-00-03。
优选地,配置第四测试设备网口B4的MAC地址为2C-A9-00-1E-00-04。
优选地,配置第五测试设备网口B5的MAC地址为2C-A9-00-1E-00-05。
优选地,配置第六测试设备网口B6的MAC地址为2C-A9-00-1E-00-06。
优选地,配置第七测试设备网口B7的MAC地址为2C-A9-00-1E-00-07。
优选地,配置第八测试设备网口B8的MAC地址为2C-A9-00-1E-00-08
步骤4、报文发送模块为测试设备网口建立各自的网状测试MAC表。如图3所示。网状测试MAC表包括其他测试设备网口的MAC地址;
具体的,为了完成网状测试。第一测试设备网口B1发出的网状测试报文,应当依次循环被转发到其余7个测试设备网口,即第二测试设备网口B2,第三测试设备网口B3,第四测试设备网口B4,第五测试设备网口B5,第六测试设备网口B6,第七测试设备网口B7,第八测试设备网口B8。
因此第一测试设备网口B1对应的报文发送模块中使用一个地址深度7,位宽6字节的MAC表存储区RAM,建立网状测试MAC表。依次存储第二测试设备网口B2,第三测试设备网口B3,第四测试设备网口B4,第五测试设备网口B5,第六测试设备网口B6,第七测试设备网口B7,第八测试设备网口B8的MAC地址。
同理,第二测试设备网口B2对应的报文发送模块建立网状测试MAC表,依次存储第一测试设备网口B1,第三测试设备网口B3,第四测试设备网口B4,第五测试设备网口B5,第六测试设备网口B6,第七测试设备网口B7,第八测试设备网口B8的MAC地址。其余网口以此类推,建立各自的网状测试MAC表。
步骤5、报文发送模块初始化对应的测试设备网口的以太网报文发送帧数。
步骤6、报文发送模块初始化网状测试参数。网状测试参数包含:测试流量占比、测试时间、网状测试报文长度、最小报文间隔长度。若当前配置的测试流量占比低于10%,执行步骤25,否则执行步骤7。
具体的,初始配置网状测试报文的测试流量占比100%,配置测试时间10秒,配置网状测试报文长度64字节。
根据以太网IEEE802.3规范。千兆以太网上最大有效传输流量为:网状测试报文长度/(以太网前导码长度+网状测试报文长度+最小报文间隔)*1000Mbps。以太网前导码固定为8字节,最小报文间隔固定为12字节,即64字节的网状测试报文最大传输流量为761.9Mbps。
配置测试流量占比100%,即761.9Mbps*100%=761.9Mbps。测试时间即测试模块通过测试设备网口向交换机网口持续发包的时间。
步骤7、根据网状测试参数的测试流量占比,计算报文间隔。
具体的,根据网状测试参数的测试流量占比,网状测试报文的发送带宽为761.9Mbps,即:网状测试报文长度/(以太网前导码长度+网状测试报文长度+报文间隔)*1000Mbps=761.9Mbps。网状测试报文长度为64字节,所以报文间隔为12。
步骤8、根据网状测试参数的测试流量占比和测试时间,计算每个测试设备网口需要发送的网状测试报文总帧数。
具体的,当以太网口为千兆速率时,理论每秒传输125000000Byte数据。
若发送64字节的网状测试报文。每秒钟理论发包数量为:物理链路每秒传输的字节数/(以太网前导码长度+网状测试报文长度+报文间隔),即125000000/(8+64+12)=1488095帧。测试时间为10秒,因此每个测试设备网口发送网状测试报文总帧数应当为14880950帧。
步骤9、报文发送模块获取测试设备网口发送的网状测试报文的帧数。若8个测试设备网口发送网状测试报文的帧数均达步骤8中计算的网状测试报文总帧数,进入步骤23否则执行步骤10。
步骤10、报文发送模块顺序遍历读取网状测试MAC表中的一个测试设备网口的MAC地址作为报文源MAC地址。
报文目的MAC地址(Frame_dmac),报文源MAC地址(Frame_smac),报文发送时间戳(Frame_tx_timer),报文接收时间戳(Frame_rx_timer)。
步骤11、报文发送模块配置网状测试报文的报文目的MAC地址与报文源MAC地址。
具体的,第一测试设备网口B1对应的报文发送模块组包网状测试报文,其报文目的MAC地址为步骤10中读取的报文源MAC地址。报文源MAC地址为步骤3中第一测试设备网口B1配置的唯一MAC地址2C-A9-00-1E-00-01。
步骤12、报文发送模块获取网状测试报文发送时间戳。报文发送模块在发送网状测试报文的第一个有效字节时,查询实时时钟模块生成的本地时间,并记录为发送时间戳。
步骤13、报文发送模块发送网状测试报文。在发送网状测试报文的最后8个字节时,使用步骤12中的发送时间戳替换网状测试报文原本的数据。即网状测试报文本身将附带网状测试报文发出的时间。
步骤14、报文接收模块接收交换机转发的网状测试报文。报文接收模块接收到网状测试报文第一个有效字节时,查询实时时钟模块生成的本地时间,并记录为接收时间戳。
步骤15、报文接收模块通过网状测试报文和报文接收的时间,获取网状测试报文的关键信息。关键信息包含报文目的MAC地址(Frame_dmac),报文源MAC地址(Frame_smac),报文发送时间戳(Frame_tx_timer),报文接收时间戳(Frame_rx_timer)。
根据以太网IEEE 802.3标准,所述报文目的MAC地址恒定位于网状测试报文的第1至6字节。所述报文源MAC地址恒定位于网状测试报文的第7至12字节。报文发送时间戳为网状测试报文的最后8字节数据。报文接收时间戳在步骤14已经获取。
步骤16、报文接收模块,将步骤15中获取的关键信息打包为关键信息帧,关键信息帧格式如图5所示。包含报文目的MAC地址(Frame_dmac),报文源MAC地址(Frame_smac),报文发送时间戳(Frame_tx_timer),报文接收时间戳(Frame_rx_timer)。
步骤17、数据调度模块中,实时存储8个网口报文接收模块生成的关键信息帧,并顺序将关键信息帧向数据解析模块发送。
具体的,数据调度模块内设置了8个地址位宽4比特,数据位宽64比特的缓冲存储区RAM,分别存储来自于8个测试设备网口的报文接收模块的报文关键信息帧。同时循环读取8个缓冲存储区RAM的报文关键信息帧,顺序发往数据解析模块。
步骤18、数据解析模块中,解析关键信息帧,获取报文转发路径。
具体的,报文关键信息帧含有目的MAC地址与源MAC地址信息。每个测试设备网口都有唯一的MAC地址,因此通过源MAC地址可以获知网状测试报文从哪一个测试设备网口发出;通过目的MAC地址可以获知网状测试报文被发往哪个测试设备网口。最终得出转发路径。
步骤19、数据解析模块解析关键信息帧,获取报文转发延时。
具体的,关键信息帧含有报文发送时间戳,与报文接收时间戳。报文接收时间戳与报文发送时间戳的差值即报文转发时延。
步骤20、数据解析模块根据报文转发路径,分别从第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D中读取该报文转发路径对应的转发报文数,报文转发最小时延,报文转发平均时延,报文转发最大时延作为历史转发报文数,历史报文转发最小时延,历史报文转发平均时延,历史报文转发最大时延。
具体的,数据解析模块设置了4个具有相同存储结构的参数寄存器RAM,分别是第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D。其中,第一参数寄存器RAM_A用于存储交换机各报文转发路径的转发报文数;第二参数寄存器RAM_B用于存储交换机各报文转发路径对应的报文转发最小时延;第三参数寄存器RAM_C用于存储交换机各转发路径对应的报文转发平均时延;第四参数寄存器RAM_D用于存储交换机各转发路径对应的报文转发最大时延。
所述相同存储结构,如图6所示。图中第一列展示了第一测试设备网口B1到第二测试设备网口B2、第三测试设备网口B3、第四测试设备网口B4、第五测试设备网口B5、第六测试设备网口B6、第七测试设备网口B7、第八测试设备网口B8合计7条路径,分别对应参数寄存器的地址8、16、24、32、40、48、56。第二列展示了第二测试设备网口B2到第一测试设备网口B1、第三测试设备网口B3、第四测试设备网口B4、第五测试设备网口B5、第六测试设备网口B6、第七测试设备网口B7、第八测试设备网口B8合计7条路径,分别对应参数寄存器的的地址1、17、25、33、41、49、57。整个存储结构包含8列合计56个存储地址,与上述56条报文转发路径一一对应。至此可以将参数寄存器的地址与报文转发路径建立对应关系。
步骤21、数据解析模块根据报文关键信息帧计算报文转发数,报文转发最小时延,报文转发平均时延,报文转发最大时延四项数据。
具体的,每一个报文关键信息帧表示收到一个网状测试报文,因此在收到一个网络测试帧时,报文转发数直接加1;
若计算得到的报文转发时延小于历史报文转发最小时延,将计算得到的报文转发时延作为新的报文转发最小时延。
若计算得到的报文转发时延大于历史报文转发最大时延,将计算得到的报文转发时延作为新的报文转发最大时延。
将计算得到的报文转发时延与历史报文转发平均时延取平均值作为新的报文转发平均时延。
步骤22、将新的转发报文数,新的报文转发最小时延,新的报文转发平均时延,新的报文转发最大时延分别写入第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D。之后回到步骤9。
步骤23、将第一参数寄存器RAM_A存储的各个报文转发路径对应的转发报文数全部读出并求和获得转发报文总数。若转发报文总数与步骤8中各测试设备网口的网状测试报文总帧数的总和一致,即测试过程中未出现帧丢失,执行步骤24。否则减小测试流量占比,返回步骤6。
具体的,第一参数寄存器RAM_A存储了测试过程中交换机各个报文转发路径即对应的转发报文数。将交换机各转发路径对应的转发报文数求和,若与各测试设备网口的网状测试报文总帧数的总和一致。表明交换机未丢帧。
步骤24、将第一参数寄存器RAM_A、第二参数寄存器RAM_B、第三参数寄存器RAM_C、第四参数寄存器RAM_D的报文转发数、报文转发最小时延、报文转发平均时延、报文转发最大时延全部读出,计算各个转发路径每秒钟转发的报文转发数、报文转发最小时延、报文转发平均时延、报文转发最大时延。
交换机各报文转发路径,以及每秒钟的报文转发数即全网状吞吐量测试结果;交换机各报文转发路径,报文转发最小时延,报文转发平均时延,报文转发最大时延即全网状时延测试结果。
步骤25、交换机网状测试结束。
至此完成交换机网状测试,得到网状吞吐量测试指标和网状时延测试指标。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。