CN100372318C - 10g网络性能测试系统并行流调度方法 - Google Patents

10g网络性能测试系统并行流调度方法 Download PDF

Info

Publication number
CN100372318C
CN100372318C CNB2005100117548A CN200510011754A CN100372318C CN 100372318 C CN100372318 C CN 100372318C CN B2005100117548 A CNB2005100117548 A CN B2005100117548A CN 200510011754 A CN200510011754 A CN 200510011754A CN 100372318 C CN100372318 C CN 100372318C
Authority
CN
China
Prior art keywords
stream
flow
sequence
sent
monitor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100117548A
Other languages
English (en)
Other versions
CN1688136A (zh
Inventor
张小平
曹锐
赵有健
徐明伟
吴建平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2005100117548A priority Critical patent/CN100372318C/zh
Publication of CN1688136A publication Critical patent/CN1688136A/zh
Application granted granted Critical
Publication of CN100372318C publication Critical patent/CN100372318C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

10G网络性能测试系统并行流调度方法属于网络性能测试技术领域,其特征在于:它在由监控机、测试仪主板和被测设备组成的测试系统中,监控机依次通过初始化、计算每条流在一个时间片内发送的字节数、每条流每帧的发送时刻,根据每条流在一个时间片内发送的帧数形成流序列链表各步骤生成流序列信息并把它发送到测试仪主板;然后再由用FPGA构成的硬件逻辑中的互相串接的CPU接口电路、流序列信息存储器、流序列生成电路、流序列缓存存储器、流生成和发送电路完成发送任务。它适用于高速端口的测试仪,而且易于实时调度。

Description

10G网络性能测试系统并行流调度方法
技术领域
本发明属于高速网络设备性能测试用的网络性能测试技术领域。
背景技术
网络互联设备的性能测试是指测试通过对网络互联设备进行测试以达到对其性能进行评价的目的。一个性能测试系统由测试仪和被测设备组成,测试所关注的具体性能指标主要有吞吐量、延迟、丢失率、抖动等,其具体含义在IETF(互联网工程工作组)的RFC(互联网标准草案)中都有明确的规定。测试的方法主要是通过测试仪向被测设备发送流报文,通过观察流报文经过被测设备后的一些行为参数进行统计和分析。
流是性能测试系统里重要的概念。它是指具有相同源地址和目的地址、相同上层协议,并按照一定顺序发送具有一定的发送模式的报文序列。测试系统通过设置不同的流,并发送给被测设备,观察被测设备的外部特性来评价它的性能。
流调度是指当有多条流从同一个端口发出时,各流发送时间先后的一个控制。流调度可以分为串行流调度和并行流调度。串行流调度是指多条流依次发送,只有发送完一条流之后,才能发送下一条流,串行流调度相对简单。并行流调度是指多条流同时从一个端口发出,调度方法相对复杂。本发明所提出的方法是针对并行流调度。
在并行流调度方法的具体实现中,可以有两种可行的方法:纯硬件实现和软硬件结合实现。由于纯硬件实现方法需要对流进行实时调度,因而对硬件逻辑运算速度要求比较高,所以低速端口的测试仪可以采用这种方法。但是对于高速端口的测试仪来说,硬件逻辑的运算速度不再比端口速率具有更快的优势,因此难以做到实时调度,所以需要采用软硬件结合的方法提前进行调度。
发明内容
今发明的目的在于提供一种高速端口测试仪用且易于实时调度的10G网络性能测试系统并行流调度方法。
本发明的特征在于,它是在由监控机、测试仪主板和被测设备依次连接的系统上实现的,所述的10G网络性能测试系统并行流调度方法一次由以下步骤组成:
步骤1:流序列的生成,所述监控机中的监控软件根据用户配置的待发送流的属性生成一个由多个流片组成的流序列,每个流片包含了测试仪主板需要依次发送的流的类型、流号和一次要发送的IP报文的个数,即发送帧数,所述的类型分为SEND即发送流片,以及IDLE即空流片,或者是测试仪主板处于空闲状态的时钟节拍数;所述流序列的生成步骤依次含有以下各子步骤:
步骤1-1:监控机响应用户的流发送命令,依次进行下述初始化操作:
清空发送流表,该流表的作用是保存当前该端口需要发送的流信息,所述端口是指监控机用户所选择的测试端口;
清空流序列缓冲区,该缓冲区的作用是保存上一次流发送的流序列;
监控机把本次要发送的几条流的流号存储到所述发送流表中;
监控机根据从流表中读取的流号,到监控机的流配置数据结构中读取每条流的消息,其中包括流的带宽、突发长度、每个帧的帧长,对于均匀流,突发长度为1;
监控机从内存中读取预存的测试端口在一个时钟节拍内允许发送的字节数BT;
步骤1-2:
监控机计算第i条流在一个时间片内发送的帧的个数,用Pi’表示,所述的时间片是指发送1000个帧的时间:
P i ′ = PER i PL i Σ i = 1 n PER i PL i · 1000
其中,PERi为第i条流的带宽;
PLi为第i条流需要发送的帧的字节数;PLi=li·ki,li为第i条流每帧的帧长,ki为第i条流突发长度;
步骤1-3:调整Pi’的值
max { P i ′ } min { P i ′ } ≤ 500 ,则执行步骤1-4,否则,按以下各子步骤执行:
步骤1-3-1:计算每条流的平均帧数Pth
Pth=1000/n
步骤1-3-2:对于Pi’>Pth的流i,计算流i相对Pth的倍数:,使得在发送第i条流时,一次要发送PLi=li·ki个字节,其中,ki=ki·ki’;
对于Pi’≤Pth的流i,ki’=1;
步骤1-3-3:转入步骤1-2,重复计算第i条流在一个时间片内发送帧的个数Pi’;
步骤1-4:监控机计算每流每帧的发送时刻
第i流第j个帧的发送时刻为tj i
t j i = j BT · PER i PL i , 0≤j≤Pi’,1≤i≤n;
步骤1-5:监控机模拟流调度并生成流序列:
步骤1-5-1:监控机根据第i条流在一个时间片内发送的帧的个数Pi’分配流序列链表:
Figure C20051001175400072
,其中,是流片数组的实际长度,每个流片的字节数为4;
步骤1-5-2:模拟流调度,令当前时刻t=0,流序列链表指针指向头部;
步骤1-5-3:遍历每一个流第一个要发送的帧,检查发送时刻tj i小于等于t的帧,然后再在所有这样的帧所属的流中选择要发送的帧的字节数PLi最长的流,然后该流的包括类型、流号i、发送帧个数k在内的信息填写链表所指向的流片,并把t增加一个发送该帧所需的节拍数;接着向后移动指针指向下一个流片;若所有的流中没有发送时刻tj i小于等于t的,表明没有需要发送的流,则在流序列链表中插入一个空流片,节拍数是t减去当前最小的tj i的值;
步骤1-5-4:对于余下的未发送帧,重复步骤1-5-3,直到每一条流的每一个帧都发送完成;
步骤1-6:遍历流序列链表,把相邻的两个类型都为SEND且流号相同的流合并;
步骤1-7:监控机把生成的流序列链表,封装成一个消息,通过监控机的消息通讯模块发送给测试仪主板;
步骤1-8:测试仪主板软件收到监控机发来的消息后,把流序列发送到下述硬件中的发送电路,同时对硬件中的CPU接口电路内的流发送寄存器置“1”;
步骤2:硬件逻辑发送,所述硬件是一个用现场可编程逻辑门阵列,即FPGA组成的发送电路组件,该组件依次从收到的流序列中取出每一个要发送的流片,完成调度发送,所述步骤2依次含有以下步骤:
步骤2-1:该组件把流序列信息存储在其内的流序列信息存储器内;
步骤2-2:该组件内的流序列生成电路读取流序列信息存储器内的所有数据,转换成以FIFO即先进先出队列为数据结构的流序列,并把所述流序列存储在流序列缓存存储器;
步骤2-3:该组件内的流生成和发送电路检查CPU接口电路收到该组件内的CPU接口电路组件,该组件依次从收到的流序列中取出每一个要发送的流片,完成调度发送,所述步骤2依次含有以下步骤:
步骤2-1:该组件把流序列信息存储在其内的流序列信息存储器内;
步骤2-2:该组件内的流序列生成电路读取流序列信息存储器内的所有数据,转换成以FIFO即先进先出队列为数据结构的流序列,并把所述流序列存储在流序列缓存存储器;
步骤2-3:该组件内的流生成和发送电路检查CPU接口电路收到该组件内的CPU接口电路发来的“开始”信息后,从流序列缓存存储器中取出第一个流片的内容,读取流号和发送的帧数,生成一个帧,逐次把所有要发送的帧发送出去;
步骤2-4:把步骤2-3读取的流片重新放在流序列缓存存储器中,成为所述FIFO最后一项,重复步骤2-3。
本调度方法是采用软件模拟发送的方法来计算流的发送序列。该方法不依赖于实际测试系统的芯片运算速度和网络发送速率,可以在10G甚至更高速率的测试系统上使用,可以适用于任何测试系统的流发送模块。本方法适用于生成均匀流和多突发流的模拟,最多可以允许256条测试流并行发送,对于流发送的时间长度也没有任何限制。
本发明的核心内容是软件模拟的流调度策略,监控机软件运行在Microsoft Windows 2000或XP下,用Microsoft Visual Studio 6编程实现了。我们通过配置不同的流,对监控机软件的流调度结果进行了分析。测试结果如下:
测试例一:流的配置情况如下(测试端口在一个时钟节拍内可以发送的字节数k=16):
    流   突发长度     帧长   占用带宽
    A     1     40   20%
    B     1     50   30%
    C     1     80   20%
该配置经过监控机软件的流调度算法进行模拟调度后,生成的流序列的一部分用图形表示出来如图9所示(该图由Microsoft Excel XP根据调度结果的数据绘制)。横轴表示的是时刻。竖长条分别代表A、B、C流的发送。从图中可以看出三条流基本上都是可以均匀的被发送出来,调度结果很好。
测试例二:流的配置情况如下(测试端口在一个时钟节拍内可以发送的字节数k=16):
    流   突发长度     帧长   占用带宽
    A   2     128   0.5%
    B   8     72   1%
    C     1     72     50%
    D     1     32     45%
该配置经过监控机软件的流调度算法进行模拟调度后,生成的流序列的一部分用图形表示出来如图10所示(该图由Microsoft Excel XP根据调度结果的数据绘制)。横轴表示的是时刻。竖长条分别代表A、B、C、D流的发送。从图中可以看出A、B两条突发流被首先发送,占用带宽很少。C、D两条流所占带宽基本相近,调度结果较好。
附图说明
图1测试系统总体结构示意图
图2监控机模块示意图
图3测试仪主板软件模块示意图
图4测试仪主板发送FPGA逻辑图
图5流序列的数据结构
图6本发明所述方法软件流程图
图7本发明所述方法停止发送流的软件流程图
图8流序列生成电路FPGA逻辑图
图9流调度模拟结果一
图10流调度模拟结果二
具体实施方式
本发明是10G网络性能测试仪中的一个核心方法。整个测试系统由三部分组成:监控机(monitor)、测试仪主板(tester)和被测设备(DUT),连接情况如图1所示。监控机的模块示意图如图2所示。它通过消息通讯完成对测试仪主板的控制。用户图形界面GUI负责与用户的交互,包括测试参数的设定、测试结果的显示。监控机上的数据结构都存储在配置信息存储模块中,配置、结果处理模块完成以上三个模块的关联,负责进行配置信息的处理和测试结果的分析。每台测试仪主板和监控机之间通过100M以太网相连,当有多台测试仪主板参与测试时,各主板同监控机使用100M集线器(Hub)进行连接,由监控机的级连维护模块完它们的协同工作。
测试仪主板包括软件模块和硬件逻辑两部分,完成测试的基本功能,包括测试流量的实时产生和接收、测试统计量的测量、路由报文的产生和报文截取等。主板软件示意图如图3所示。消息通讯模块完成同监控机的消息收发,该模块从测试仪主板上的消息端口通过以太网接受来自监控机的消息,并交给消息处理模块进一步处理。消息处理模块处理后的结果也会返回给消息通讯模块,该模块再通过以太网返回给监控机。连接维护模块负责维护同监控机的连接关系,它的作用是始终保持同监控机的连接,一旦链路出现故障,可以立刻发现,通知用户,并重新与监控机建立连接。TCP/IP协议栈包括了TCP、IP、ARP、PPP、BGP等测试所需要的所有互联网协议。所有的这些软件模块都通过硬件驱动接口最终直接和硬件逻辑进行通讯。
测试仪主板硬件发送FPGA的示意图如图4所示。与本发明有关的部分有:流序列信息存储器、流序列生成电路、流序列缓存存储器和流生成与发送电路。流序列信息存储器的输入端与上述CPU接口电路的流序列输出端相连,用来保存从软件得到的流序列。流序列生成电路将流序列转换成流生成与发送电路可以直接快速访问的流序列格式,它的一个输入端与上述流序列信息存储器的输出端相连。流序列缓存存储器保存格式转换后的流序列,它的数据、控制信号输入端与流序列生成电路的相应输出端相连,它的满信号输出端与流序列生成电路中相应的输入端相连。流生成与发送电路通过读取流序列缓存存储器的信息进行真正的流调度发送,它的流开始或停止发送命令输入端与上述CPU接口电路相应的输出端相连,接收来自软件下达的“开始”或“停止”命令,它的流发送序列输入端与上述流序列缓存存储器的相应输出端相连。
本发明的流调度方法采用了软件事先计算流发送序列,硬件实时发送的方法。监控机首先读取用户对流的配置信息,生成流发送序列,然后通过消息机制传给测试仪主板,主板软件将这些信息保存在硬件逻辑的存储器中,并最终由流生成与发送电路完成流的实时调度发送。流调度方法包含两个组成部分:流序列的生成和硬件逻辑发送。
(一).流序列的生成
这一部分是本调度方法的核心部分。它完成的功能主要是监控机软件根据用户配置的待发送流的属性生成一个序列。该序列由多个流片组成,每个流片包含了测试仪主板需要依次发送的流和一次发送的帧个数,或者测试仪主板处于空闲状态的时钟节拍数,见图5所示。
流序列生成方法的基本设计原则是:
1.均匀流尽量在一个时间片内均匀分布。
2.多突发流的每一个突发周期内,不能有其它的流。
3.端口内所有要发送的流在一个时间片内至少要发送一次。
4.每一个时间片不能太长,也不能太短。
我们设计的流的发送模式只有两种:均匀流和多突发流。均匀流是指流的一个报文发送后,需要间隔一段时间再发送下一个报文,每两个报文之间的间隔应当是一样的。而多突发流是指流的发送以一个突发周期为单位,每两个突发周期的时间间隔是一样的,但是在突发周期内,流的报文是连续发出的。每个突发周期内发送的报文个数叫做突发长度。
流序列生成和流调度方法的工作如图6、图7所示,具体描述如下:
1.监控机响应用户的流发送命令,进行初始化。
当用户在监控机上选择了测试端口以及该测试端口要发送的流并按下“发送”按钮之后,监控机响应该命令进行初始化。首先监控机将发送流表和流序列缓冲区清空。发送流表保存着当前该端口需要发送的所有流号。流序列缓冲区保存着上一次流发送的流序列。其次,监控机将本次要发送的流的流号存储到流表中。这里设需要发送的流有n条。
监控机从流表中读取要发送的流号,并到监控机的流配置数据结构中读取每条流的配置信息,这些信息包括流的带宽PERi(每条流的发送速率占线速的百分比)、突发长度Ki(一个突发周期内该流发送帧的个数。因此均匀流的突发长度为1)、每一个帧的帧长li(帧的字节数)。
监控机读取测试端口在一个时钟节拍内可以发送的字节数BT,这个值是事先从硬件物理端口的参数中读取到监控机上的。
如果流发送已经开始,这时用户可以按下“停止”按钮,则监控机读取要停止的端口,并将一个“停止”消息发送给相应测试仪主板上的该端口。
2.监控机计算第i条流在一个时间片内发送的帧的个数Pi’。
假设物理链路上的线速可以认为是每秒MS个字节,则每条流的发送速率应当为MS·PERi。因为每条流要发送的帧的字节数PLi=li·ki,所以每流每秒发送的帧的个数应当为
Figure C20051001175400111
个。则每秒发送的所有流的帧的个数是
Figure C20051001175400112
个,即在任何一个时间段内,流i发送的帧的个数占这段时间内所有流的发送帧的个数总和的百分比为
PER i PL i / Σ i = 1 n PER i PL i
在本发明的设计中,我们取发送1000个帧的的时间为一个计算周期(称作一个时间片),则在这个时间片内流i发送的帧的个数Pi’为:
P i ′ = PER i PL i Σ i = 1 n PER i PL i · 1000
3.调整的Pi’值
计算的值是否大于500,如果否,则跳过此步。否则执行下面的操作:
(1)计算 P th = 1000 n ,对于Pi’>Pth的流i进行计算:
Figure C20051001175400124
;其它的流ki’=1。
即表示在发送第i条流的报文的时候,一次要发送原先的ki’倍的个数。
(2)对于ki’≠1的流,令ki=ki·ki’;PLi=li·ki
(3)转入步骤2,重新计算第i条流在一个时间片内发送的帧的个数Pi’。
4.监控机计算每流每帧的发送时刻
第i流第j个帧发送时刻tj i为:
t j i = j BT · PER i PL i (0≤j≤Pi’)(1≤i≤n)
5.监控机模拟流调度并生成流序列
(1)监控机根据已经计算出的Pi’值,分配流序列链表,字节数为:。该链表实际上是一个长度为
Figure C20051001175400127
的流片数组,每个流片的字节数为4。
(2)模拟流调度,令当前时刻t=0,流序列链表指针指向头部。
(3)遍历每一个流第一个要发送的帧,检查发送时刻tj i小于等于t的帧(在t=0的时候,
tj i不可能小于t,但是当发送完一个帧后,t会增加,这时就可能出现某些流的某些帧的发送时刻tj i小于t)。在所有这样的帧中选择PLi最长的流i。根据该流的信息填写链表指针所指向的流片,流片的类型是“SEND”,流号是i,发送的帧的个数是ki。然后向后移动指针指向下一个流片,并将t增加发送该帧所需的节拍数。如果所有的流中没有发送时刻tj i小于等于t的,则在流序列链表中插入一个空流片。空流片的类型是“IDLE”,节拍数是t减去当前最小的tj i的值。
(4)对于剩下的未发送帧,重复操作(3)直到每一条流的每一个帧都发送完成。
6.遍历流序列链表。如果相邻的两个类型为SEND的流片的流号一样,则需要合并这个两个流片为一个。新流片的类型和流号不变,帧的个数是原来两个流片的帧个数的和。
7.监控机将生成好的流序列链表,封装成一个消息,通过监控机的消息通讯模块发送给测试仪主板的软件。然后监控机发送一个“开始”消息给测试仪主板软件。
8.测试仪主板软件收到流序列消息后,将该消息的内容通过硬件驱动接口函数发送给硬件的发送FPGA。
9.测试仪主板软件收到“开始”消息后,将CPU接口电路中的流发送寄存器置“1”。如果测试仪主板软件收到的是“停止”消息,则将该寄存器置“0”。
需要说明的是上面C步骤中,需要判断
Figure C20051001175400131
的值是否大于500,该数值是可以根据实际情况进行修改的。该数值越小,流之间的突发性差异越小;反之则越大。
(二).硬件逻辑发送
当软件生成了流序列之后,将这个序列发送给硬件逻辑,发送FPGA会根据这个序列所表示的信息,依次取出每一个要发送的流片,并根据流片所代表的含义发送一个流或者停止若干个时钟节拍,完成流的真正调度发送。具体的发送过程描述如下:
1.硬件发送FPGA接受来自主板软件的流序列内容,将该序列存储在流序列信息存储器内。
2.流序列生成电路读取流序列信息存储器内的所有数据,转换成以FIFO为数据结构的流序列便于读取,该序列存储在流序列缓存存储器。
3.流生成和发送电路检查CPU接口电路内部的一个“流开始寄存器”是否为“1”。如果为1,则从流序列缓存存储器中取出第一个流片的内容,读取流号和发送的帧数k。接着FPGA根据流号读取流配置生成一个帧。然后将该帧发送k次。如果流开始寄存器为“0”,则停止发送。
4.将第3步读取的流片重新放入流序列缓存存储器中,成为该FIFO的最后一项,重复第三步。
在硬件实现逻辑上,流序列生成电路FPGA的设计如图8所示,包括:
E1:内部状态机逻辑电路,它的状态变化条件信息输入端和与门二E9的输出端相连;
E2:数值比较器:它的输入端与上述内部状态机逻辑电路E1的状态值输出端相连;
E3:地址寄存器,它的地址清零信号输入端与或门E11的输出端相连;
E4:加1运算的加法器,它的输入端与上述地址寄存器E3的输出端相连,并把加1后的值输回地址寄存器E3;
E5:数据选通器一,它的一个输入端与上述加1运算的加法器E4的输出端相连,另一个选通信号输入端和与门一E8的输出端相连,它的输出端与上述流序列信息存储器B的流序列地址输入端相连;
E6:流序列信息寄存器,它的输入端与流序列信息存储器的输出端相连;
E7:数据选通器二,它的流序列信息输入端与上述流序列信息寄存器E6的输出端相连,它的选通信号输入端和与门三E10的输出端相连;
E8:与门一,它的一个输入端与上述流序列信息寄存器E6的当前流序列不是流序列链表最后一个元素信号输出端相连,而另一个输出端与上述数值比较器E2的内部状态处于读流序列阶段(即当前状态值为3)信号输出端相连;
E9:与门二,它的一个输入端与CPU接口电路的开始发送流信号输出端相连,而另一个输入端与上述流序列缓存存储器的满信号反相后的信号输出端相连;
E10:与门三,它的一个输入端与上述数据比较器E2的内部状态处于读流序列阶段(即当前状态值为3)信号输出端相连,而另一个输入端与上述流序列缓存存储器的满信号反相后的信号输出端相连;
E11:或门,它的一个输入端与上述数值比较器E2的内部状态处于读流序列阶段(即当前状态值为3)信号输出端相连,而另一个输入端与上述流序列缓存存储器的满信号反相后的信号输出端相连。
本发明中一个重要的数据结构是流序列,该序列表示了发送时,每一刻的硬件逻辑动作,这里讲说明流序列在实现时的具体方式。
流序列中的每一个流片是32比特长度(如图5所示)。当流片表示要发送一条流的时候,类型域是8比特,其值的最低比特为1;流号域是8比特,其值是需要发送的流的流号;帧个数域是16比特,表示一次需要发送该流的报文个数。当流片表示一个空拍时,类型域时8比特,其值的最低比特为0;空拍数域是24比特,表示空拍的节拍数。流序列通过类型字段表示每一个流片的具体含义。最低位表示发送流或者空拍,次低位表示该流片是否是流序列的最后一项,高6位目前规定位全0。
当流序列生成电路处理由CPU接口发送来的流序列时,硬件逻辑根据地址依次读取流序列信息存储器内的数据。地址首先指向流序列的第一个流片,读取该流片。如果类型是00000001或者00000011,则根据流号和帧个数的值往流序列缓存存储器内加入该流片一项。如果类型是00000000或者是00000010,则往流序列缓存存储器内加入停止空拍数个时钟节拍这一项。如果类型是00000010或00000011,则表示流序列结束,流序列生成电路处理完毕。

Claims (1)

1.10G网络性能测试系统并行流调度方法,其特征在于,它是在由监控机、测试仪主板和被测设备依次连接的系统上实现的,所述的10G网络性能测试系统并行流调度方法依次由以下步骤组成:
步骤1:流序列的生成,所述监控机中的监控软件根据用户配置的待发送流的属性生成一个由多个流片组成的流序列,每个流片包含了测试仪主板需要依次发送的流的类型、流号和一次要发送的IP报文的个数,即发送帧数,所述的类型分为SEND即发送流片,以及IDLE即空流片,或者是测试仪主板处于空闲状态的时钟节拍数;所述流序列的生成步骤依次含有以下各子步骤:
步骤1-1:监控机响应用户的流发送命令,依次进行下述初始化操作:
清空发送流表,该流表的作用是保存当前该端口需要发送的流信息,所述端口是指监控机用户所选择的测试端口;
清空流序列缓冲区,该缓冲区的作用是保存上一次流发送的流序列;
监控机把本次要发送的几条流的流号存储到所述发送流表中;
监控机根据从流表中读取的流号,到监控机的流配置数据结构中读取每条流的消息,其中包括流的带宽、突发长度、每个帧的帧长,对于均匀流,突发长度为1;
监控机从内存中读取预存的测试端口在一个时钟节拍内允许发送的字节数BT;步骤1-2:
监控机计算第i条流在一个时间片内发送的帧的个数,用Pi’表示,所述的时间片是指发送1000个帧的时间:
P i ′ = PER i PL i Σ i = 1 n PER i PL i · 1000
其中,PERi为第i条流的带宽;
PLi为第i条流需要发送的帧的字节数;PLi=li·ki,li为第i条流每帧的帧长,ki为第i条流突发长度;
步骤1-3:调整Pi’的值
max { P i ′ } min { P i ′ } ≤ 500 , 则执行步骤1-4,否则,按以下各子步骤执行:
步骤1-3-1:计算每条流的平均帧数Pth
Pth=1000/n
步骤1-3-2:对于Pi ’>Pth的流i,计算流i相对Pth的倍数:
Figure C2005100117540003C1
使得在发
送第i条流时,一次要发送PLi=li·ki个字节,其中,ki=ki·ki’;
对于Pi’≤Pth的流i,ki’=1;
步骤1-3-3:转入步骤1-2,重复计算第i条流在一个时间片内发送帧的个数Pi’;步骤1-4:监控机计算每流每帧的发送时刻
第i流第j个帧的发送时刻为tj i
t j i = j BT · PER i PL i , 0≤j≤Pi’,1≤i≤n;
步骤1-5:监控机模拟流调度并生成流序列:
步骤1-5-1:监控机根据第i条流在一个时间片内发送的帧的个数Pi’分配流序列链表:
Figure C2005100117540003C3
其中,
Figure C2005100117540003C4
是流片数组的实际长度,每个流片的字节数为4;
步骤1-5-2:模拟流调度,令当前时刻t=0,流序列链表指针指向头部;
步骤1-5-3:遍历每一个流第一个要发送的帧,检查发送时刻tj i小于等于t的帧,然后再在所有这样的帧所属的流中选择要发送的帧的字节数PLi最长的流,然后该流的包括类型、流号i、发送帧个数k在内的信息填写链表所指向的流片,并把t增加一个发送该帧所需的节拍数;接着向后移动指针指向下一个流片;若所有的流中没有发送时刻tj i小于等于t的,表明没有需要发送的流,则在流序列链表中插入一个空流片,节拍数是t减去当前最小的tj i的值;
步骤1-5-4:对于余下的未发送帧,重复步骤1-5-3,直到每一条流的每一个帧都发送完成;
步骤1-6:遍历流序列链表,把相邻的两个类型都为SEND且流号相同的流合并;
步骤1-7:监控机把生成的流序列链表,封装成一个消息,通过监控机的消息通讯模块发送给测试仪主板;
步骤1-8:测试仪主板软件收到监控机发来的消息后,把流序列发送到下述硬件中的发送电路,同时对硬件中的CPU接口电路内的流发送寄存器置“1”;
步骤2:硬件逻辑发送,所述硬件是一个用现场可编程逻辑门阵列,即FPGA组成的发送电路组件,该组件依次从收到的流序列中取出每一个要发送的流片,完成调度发送,所述步骤2依次含有以下步骤:
步骤2-1:该组件把流序列信息存储在其内的流序列信息存储器内;
步骤2-2:该组件内的流序列生成电路读取流序列信息存储器内的所有数据,转换成以FIFO即先进先出队列为数据结构的流序列,并把所述流序列存储在流序列缓存存储器;
步骤2-3:该组件内的流生成和发送电路检查CPU接口电路收到该组件内的CPU接口电路发来的“开始”信息后,从流序列缓存存储器中取出第一个流片的内容,读取流号和发送的帧数,生成一个帧,再逐次把所有要发送的帧发送出去;
步骤2-4:把步骤2-3读取的流片重新放在流序列缓存存储器中,成为所述FIFO最后一项,重复步骤2-3。
CNB2005100117548A 2005-05-20 2005-05-20 10g网络性能测试系统并行流调度方法 Expired - Fee Related CN100372318C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100117548A CN100372318C (zh) 2005-05-20 2005-05-20 10g网络性能测试系统并行流调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100117548A CN100372318C (zh) 2005-05-20 2005-05-20 10g网络性能测试系统并行流调度方法

Publications (2)

Publication Number Publication Date
CN1688136A CN1688136A (zh) 2005-10-26
CN100372318C true CN100372318C (zh) 2008-02-27

Family

ID=35306176

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100117548A Expired - Fee Related CN100372318C (zh) 2005-05-20 2005-05-20 10g网络性能测试系统并行流调度方法

Country Status (1)

Country Link
CN (1) CN100372318C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070255990A1 (en) * 2006-04-12 2007-11-01 Burke Kevin C Test access port switch
CN100495989C (zh) * 2006-07-07 2009-06-03 中国科学院计算技术研究所 一种测试外壳电路及其设计方法
CN102413018B (zh) * 2011-12-21 2014-07-16 武汉烽火网络有限责任公司 基于fpga的软硬件协同网络测试系统及方法
CN102546306B (zh) * 2012-01-19 2015-03-25 瑞斯康达科技发展股份有限公司 一种dsl传输距离测试方法及装置
CN104378256B (zh) * 2014-11-06 2018-09-18 迈普通信技术股份有限公司 基于fpga的性能测试数据流的调度方法和装置
CN105871656B (zh) * 2016-03-25 2020-03-06 新华三技术有限公司 一种测试装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0648038A2 (en) * 1993-09-11 1995-04-12 International Business Machines Corporation A data processing system for providing user load levelling in a network
US5475819A (en) * 1990-10-02 1995-12-12 Digital Equipment Corporation Distributed configuration profile for computing system
CN1518694A (zh) * 2000-09-25 2004-08-04 ���ܿ���ϵͳ���޹�˾ 网络应用设备的流调度和结构

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475819A (en) * 1990-10-02 1995-12-12 Digital Equipment Corporation Distributed configuration profile for computing system
EP0648038A2 (en) * 1993-09-11 1995-04-12 International Business Machines Corporation A data processing system for providing user load levelling in a network
CN1518694A (zh) * 2000-09-25 2004-08-04 ���ܿ���ϵͳ���޹�˾ 网络应用设备的流调度和结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高速网络性能测试负载生成多流发送调度算法. 盛立杰,吴建平,章淼,徐明伟.清华大学学报(自然科学版),第44卷第7期. 2004 *

Also Published As

Publication number Publication date
CN1688136A (zh) 2005-10-26

Similar Documents

Publication Publication Date Title
CN100372318C (zh) 10g网络性能测试系统并行流调度方法
US9313115B2 (en) Traffic generator with priority flow control
CN103559156B (zh) 一种fpga与计算机之间的通信系统
US4680755A (en) Real-time end of packet signal generator
CN106598889A (zh) 一种基于fpga夹层板的sata主控器
CN116074267B (zh) 一种数据通信系统及SoC芯片
JPH09270807A (ja) ネットワーキング環境におけるネットワーク・トランスポータの検証
CN104683175A (zh) 网络性能测试的方法及测试装置
CN107832149B (zh) 一种针对多核处理器动态分组管理的Receive-side Scaling电路
US9942120B2 (en) Technique for monitoring component processing
CN103581050B (zh) 一种以太网数据汇聚方法
CN104734900B (zh) 一种通信协议测试的发送控制方法
CN108667706A (zh) 串口数量动态可调的以太网串口服务器及其数据传输方法
Suen et al. Affordable avionic networks with Gigabit Ethernet assessing the suitability of commercial components for airborne use
Ding et al. The research of AFDX system simulation model
CN116366574A (zh) 一种基于双缓冲区的协议转换方法
CN100542107C (zh) 一种调度数据的方法及装置
CN106209307A (zh) 多颗fpga片间互联方法与系统
CN110287141A (zh) 一种基于多种接口的fpga重构方法和系统
CN113556403B (zh) 一种用于分布式训练的通信方法及系统
CN106230660B (zh) sFlow采样的方法及装置
Yuan et al. A fast, affordable and extensible fpga-based synthetic ethernet traffic generator for network evaluation
CN103401724B (zh) 数据通信性能测试仪及其实现方法
CN105099932A (zh) 基于直通转发技术的调度方法及装置
CN114968903B (zh) 一种众核芯片的外部控制电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080227

Termination date: 20150520

EXPY Termination of patent right or utility model