一种产生网络流量的方法及其装置转让专利

申请号 : CN200710120039.7

文献号 : CN100589421C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 牛堃

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种产生网络流量的方法,该方法包括的步骤有:主控单元将需要发送的每个数据流的发包控制参数和数据包模板写入缓冲区中;发送单元读取所述缓冲区中的发包控制参数和数据包模板,并分别根据每个发包控制参数和数据包模板生成对应的数据流发送出去。相应地,本发明还提供一种产生网络流量的装置。通过本发明产生网络流量,既可以产生串行数据流,也可以产生并行数据流;真实的模拟产生了各种复杂的网络流量;并且通过修改发包控制参数,实现了实时更新需要产生的数据流量功能。

权利要求 :

1、一种产生网络流量的方法,其特征在于,所述方法包括:A、主控单元将需要发送的每个数据流的发包控制参数和数据包模板写入 缓冲区中,该发包控制参数包括:基本控制参数,用于设置与数据流发包控制相关的参数;

变化控制参数,用于设置数据流的数据包在发送过程中的变化参数;

B、发送单元读取所述缓冲区中的发包控制参数和数据包模板,并分别根 据每个发包控制参数和数据包模板生成对应的数据流发送出去。

2、根据权利要求1所述的方法,其特征在于,所述步骤A之前还包括, 主控单元为需要发送的每个数据流生成发包控制参数,该发包控制参数还包 括:数据包模板索引号,用于设置数据包模板在缓冲区中的存放地址。

3、根据权利要求2所述的方法,其特征在于,所述缓冲区包括数据包缓 冲区和参数缓冲区,并且所述步骤A进一步包括:A1、主控单元将需要发送的每个数据流的数据包模板写入数据包缓冲区;

A2、主控单元对所有数据流的发送顺序进行排序,并依序将每个数据流 的发包控制参数写入参数缓冲区。

4、根据权利要求3所述的方法,其特征在于,所述步骤B进一步包括:B1、发送单元依序从参数缓冲区中读取一个数据流的发包控制参数,并 根据该发包控制参数中的数据包模板索引号,得到该数据流对应的数据包模板 在数据包缓冲区中的存放地址;

B2、发送单元从数据包缓冲区中读取该数据流对应的数据包模板,并根 据发包控制参数中的变化控制参数对数据包模板中指定字段进行设置,得到不 断变化的数据包序列;

B3、发送单元根据发包控制参数中的基本控制信息,将所述数据包序列 进行设置并发送出去。

5、根据权利要求4所述的方法,其特征在于,所述发送单元处理完最后 一个数据流的发包控制参数,则停止处理以产生串行数据流;或者所述发送单元循环不断的执行步骤B1~B3,当发送单元处理完最后一个 数据流的发包控制参数仍不停止处理,而继续返回到第一个数据流的发包控制 参数进行循环处理以产生并行数据流。

6、根据权利要求2所述的方法,其特征在于,所述数据包模板中包括数 据流所采用的协议类型、帧长度或者帧结构;

所述基本控制参数中包括数据流的发包速率、发包方式或者发包个数;

所述变化控制参数中包括数据包中的变换字段的偏移地址、变化数值、变 化方向或者变化次数。

7、根据权利要求1所述的方法,其特征在于,所述步骤B中通过主控单 元去控制发送单元开始或者停止产生数据流。

8、根据权利要求1所述的方法,其特征在于,所述发送单元读取或处理 发包控制参数时,主控单元支持对缓冲区中其他发包控制参数的实时更新。

9、一种实施如权利要求1~8任一项所述方法的网络流量产生装置,其特 征在于,包括:主控单元,用于将需要发送的每个数据流的发包控制参数和数据包模板写 入缓冲区中,该发包控制参数包括:基本控制参数,用于设置与数据流发包控制相关的参数;

变化控制参数,用于设置数据流的数据包在发送过程中的变化参数;

缓冲区,用于存储所述发包控制参数和数据包模板;

发送单元,用于读取所述缓冲区中的发包控制参数和数据包模板,并分别 根据每个发包控制参数和数据包模板生成对应的数据流发送出去。

说明书 :

技术领域

本发明涉及网络流量技术领域,尤其涉及一种产生网络流量的方法及其装 置。

背景技术

在网络测试设备中,测试设备需要产生各种各样的测试数据流量,来测试 被测设备在不同的流量环境下的性能。为了保证测试的有效性和可靠性,测试 设备产生的测试数据流量,需要尽量模拟各种速率和各种流量下的真实的网络 环境。这对测试设备产生的测试流量不仅要求速率控制精确,而且要求可以支 持各种各样的流量构成方式,这样才能够正常的为各种被测设备和被测系统精 确的提供各种网络测试流量进行测试。因此,是否能够更加准确和有效地模拟 真实环境中的数据流量,是网络测试设备性能的重要体现。
在网络中,数据流(Stream)指的是具有类似的协议或者帧结构的数据包 (Packet)的集合。在实际网络环境中,往往一个网络端口上,同时存在多种 不同协议或者不同类型的数据流量,这些数据流量具有不同的协议、不同的速 率、不同的构成方式等。这就可以看作是多个流组合在一起,构成了一个端口 上的数据流量。
考虑多个不同的数据流组合在一起的方式,可以分为串行数据流和并行数 据流。串行数据流主要是不同的流串行排列在一起而构成的测试流量。并行数 据流则是不同的流中的数据包并行交错在一起构成的测试流量。这里的并行指 的是不同数据流中的数据包交错在一起发送。例如,Packet1、Packet2和Packet3 分别属于不同的数据流,那么依次发送Packet1、Packet2、packet3、Packet1、 Packet2、packet3......,此时得到的就是3个数据流中的数据包交错在一起构成 的流量,称之为并行数据流。
在测试环境下,模拟上述的真实环境,就需要实现在一个端口上多个不同 的数据流组合在一起的情况。首先,需要实现对每个数据流进行单独的控制, 对每个不同的数据流都可以设置各种属性,这些属性包括但不仅限于:协议类 型、帧长、速率、发送数据帧个数、发送方式等等。其次,要模拟多个数据流 组合的情况,还需要控制多个不同的数据流之间相互组合的方式,也就是控制 多个数据流组成串行流量,还是并行流量。
在专利号为“CN02128334”,发明名称为“长测试序列实时测试流的产生 方法和装置”的中国专利中,公开了一种长测试序列实时测试流的产生方法和 装置,在索引表的各个单元中依次装入各个时隙将要发送的信元所属的连接 号,并在信元头存储表中为每一个连接存储一个信元头;查询电路按顺序访问 索引表,每时隙得到一个新连接号,虚拟队列和调度器对这个连接号进行虚拟 队列和调度后,作为地址访问信元头存储表,得到这个连接的信元头,组装后 得到测试信元,发送给被测系统。在同样的存储空间的情况下,本发明的索引 表存储方式能够存储更长的测试序列,同时访问索引表的时间非常短,为模拟 更高的带宽提供了可能,也为CPU在测试中实时更新索引表提供了可能,流 量模型实时更新性能好。
专利CN02128334中采用的方法,主要是采用一个索引表来指示每个时隙 需要发送的信元在存储器中的地址。该方法存在如下缺点:首先,该方法只能 控制单个数据流采用哪一个数据包构成,但是无法控制该数据流其他的参数。 也就是说,采用该方法,只能单独控制每个数据流采用的协议,或者帧结构; 但是无法控制每个数据流的速率、发送数据帧个数等;其次,该专利中信元头 存储表用于存储需要发送的信元中的信元头,但是由于存储空间始终是有限 的,所以能够存储的信元个数也有限。按照该专利中给出的例子,其信元存储 表最多存储2048个信元头。这就表示,无论该方法产生的测试数据流有多长, 该数据流中最多只可能有2048种信元。然而在实际环境中,一个数据流中往 往有几万、几十万甚至上百万个不同的数据包。采用该专利中的方法模拟实际 环境是远远不够的;最后,该专利中并没有提供产生串行流量或者并行流量的 方法。
综上可知,现有的网络流量产生技术在实际使用上,显然存在不便与缺陷, 所以有必要加以改进。

发明内容

针对上述的缺陷,本发明的目的在于提供一种产生网络流量的方法及其装 置,以实现为网络设备测试提供复杂的数据流量的方法及其装置。
为了实现上述目的,本发明提供一种产生网络流量的方法,所述方法包括:
A、主控单元将需要发送的每个数据流的发包控制参数和数据包模板写入 缓冲区中,该发包控制参数包括:
基本控制参数,用于设置与数据流发包控制相关的参数;
变化控制参数,用于设置数据流的数据包在发送过程中的变化参数;
B、发送单元读取所述缓冲区中的发包控制参数和数据包模板,并分别根 据每个发包控制参数和数据包模板生成对应的数据流发送出去。
根据本发明的方法,所述步骤A之前还包括,主控单元为需要发送的每 个数据流生成发包控制参数,该发包控制参数还包括:
数据包模板索引号,用于设置数据包模板在缓冲区中的存放地址。
根据本发明的方法,所述缓冲区包括数据包缓冲区和参数缓冲区,并且所 述步骤A进一步包括:
A1、主控单元将需要发送的每个数据流的数据包模板写入数据包缓冲区;
A2、主控单元对所有数据流的发送顺序进行排序,并依序将每个数据流 的发包控制参数写入参数缓冲区。
根据本发明的方法,所述步骤B进一步包括:
B1、发送单元依序从参数缓冲区中读取一个数据流的发包控制参数,并 根据该发包控制参数中的数据包模板索引号,得到该数据流对应的数据包模板 在数据包缓冲区中的存放地址;
B2、发送单元从数据包缓冲区中读取该数据流对应的数据包模板,并根 据发包控制参数中的变化控制参数对数据包模板中指定字段进行设置,得到不 断变化的数据包序列;
B3、发送单元根据发包控制参数中的基本控制信息,将所述数据包序列 进行设置并发送出去。
根据本发明的方法,所述发送单元处理完最后一个数据流的发包控制参 数,则停止处理以产生串行数据流;或者
所述发送单元循环不断的执行步骤B1~B3,当发送单元处理完最后一个 数据流的发包控制参数仍不停止处理,而继续返回到第一个数据流的发包控制 参数进行循环处理以产生并行数据流。
根据本发明的方法,所述数据包模板中包括数据流所采用的协议类型、帧 长度或者帧结构;
所述基本控制参数中包括数据流的发包速率、发包方式或者发包个数;
所述变化控制参数中包括数据包中的变换字段的偏移地址、变化数值、变 化方向或者变化次数。
根据本发明的方法,所述步骤B中通过主控单元去控制发送单元开始或 者停止产生数据流。
根据本发明的方法,所述发送单元读取或处理发包控制参数时,主控单元 支持对缓冲区中其他发包控制参数的实时更新。
为了实现上述目的,本发明提供一种产生网络流量的装置,包括:
主控单元,用于将需要发送的每个数据流的发包控制参数和数据包模板写 入缓冲区中,该发包控制参数包括:
基本控制参数,用于设置与数据流发包控制相关的参数;
变化控制参数,用于设置数据流的数据包在发送过程中的变化参数;
缓冲区,用于存储所述发包控制参数和数据包模板;
发送单元,用于读取所述缓冲区中的发包控制参数和数据包模板,并分别 根据每个发包控制参数和数据包模板生成对应的数据流发送出去。
本发明通过主控单元将需要发送的每个数据流的发包控制参数和数据包 模板写入到缓冲区中,以通过发送单元读取缓冲区中每个数据流的发包控制参 数和数据包模板,生成对应数据流;并利用数据流的发包控制功能,控制数据 流的所有属性。通过数据包模板索引号,控制每个数据流中数据包类型;通过 基本控制参数,控制每个数据流的发包速率、发包个数等;通过变化控制参数, 产生一个指定字段不断变化的数据包序列。通过本发明产生网络流量,既可以 产生串行数据流,也可以产生并行数据流;真实的模拟产生了复杂的网络流量; 并且通过修改发包控制参数,实现了实时更新需要产生的数据流量功能。

附图说明

图1是本发明提供的网络流量产生的装置结构示意图;
图2是本发明提供的数据流的发包控制参数的结构示意图;
图3是本发明提供的产生网络流量的方法流程图;
图4是本发明一个实施例中提供的产生网络流量的方法流程图;
图5是本发明另一个实施例中提供的产生网络流量的装置结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
本发明的基本思想是:通过主控单元将需要发送的每个数据流的发包控制 参数和数据包模板写入到缓冲区中,以通过发送单元读取缓冲区中每个数据流 的发包控制参数和数据包模板,生成对应数据流发送,从而构成不同的测试流 量,提高网络测试中对真实环境数据流量的模拟能力。
图1是本发明提供的网络流量产生的装置结构示意图;该网络流量产生装 置1包括:主控单元10、发送单元20以及缓冲区30,该缓冲区30包括参数 缓冲区301和数据包缓冲区302。
主控单元10用于将需要发送的每个数据流的发包控制参数和数据包模板 写入缓冲区中;其中,将需要发送的每个数据流的发包控制参数写入到参数缓 冲区301;每个数据流对应的数据包模板写入到数据包缓冲区302。主控单元 10控制发送单元20开始或者停止产生数据流量。
缓冲区30用于存储所述发包控制参数和数据包模板;参数缓冲区301用 于存储需要发送的每个数据流的发包控制参数。主控单元10将每个数据流的 发包控制参数写入到参数缓冲区301中,而发送单元20从参数缓冲区301中 读取数据流的发包控制参数,根据这些发包控制参数产生指定的数据流。数据 包缓冲区302用于存储需要发送的每个数据流的数据包模板,和/或发送单元 20接收到的数据。每个数据流都可以选择数据包缓冲区302中的一个数据包 模板,用于产生该数据流定义的数据流量。发送单元20从数据包缓冲区302 中读取数据包模板,根据这些数据包模板和参数缓冲区301中的变化控制参 数,产生一个不断变化的数据包序列,构成数据流。
发送单元20用于读取所述缓冲区30中的发包控制参数和数据包模板, 并分别根据每个发包控制参数和数据包模板生成对应的数据流发送出去。发送 单元20依次读取参数缓冲区301中的发包控制参数,根据每个数据流发包控 制参数,读取数据包缓冲区302中存储的数据包模板,组建待发送的数据包序 列,并按照发包控制参数中的各种配置进行发送出去。
为了实现对于每个数据流的数据包、基本控制参数和变化控制参数进行控 制,需要采用一个参数缓冲区存储所有数据流的发包控制参数。图2是本发明 提供的数据流的发包控制参数的结构示意图;每个数据流的参数区域中的发包 控制参数包括但不仅限于以下3个部分:
数据包模板索引号201,用于设置数据包模板在缓冲区中的存放地址;该 索引号指向构成数据流的数据包模板在数据包缓冲中存储的地址。
基本控制参数202,用于设置与数据流发包控制相关的参数;
变化控制参数203,用于设置数据流的数据包在发送过程中的变化参数。
在本发明的一个实施例中,数据包模板中包括但不限于数据流所采用的协 议类型、帧长度或帧结构;
基本控制参数202中包括但不限于数据流的发包速率、发包方式或发包个 数;
变化控制参数203中包括但不限于数据包中的变换字段的偏移地址、变化 数值、变化方向或变化次数。该变化控制参数203用于控制该数据流中的数据 包中的指定字段在发送过程中按照一定的规律进行变化,通过变化控制参数 203可以设置这些变化规律。变化控制参数203包括但不仅限于:变化字段在 数据包中的偏移地址、每次变化的数值、变化的方向(递增或递减)、变化的 次数等。
图3是本发明提供的产生网络流量的方法流程图,描述如下;
步骤S301中,主控单元10将需要发送的每个数据流的发包控制参数和数 据包模板写入缓冲区30中;在该步骤中,用户将需要发送的每个数据流对应 的数据包模板和发包控制参数存储到缓冲区30中。
步骤S302中,发送单元20读取所述缓冲区30中的发包控制参数和数据 包模板,并分别根据每个发包控制参数和数据包模板生成对应的数据流发送出 去。
在流量产生过程中,发送单元20依次处理每个数据流的发包控制参数, 根据发包控制参数定义,产生指定的各种数据流量。因此,通过对上述的每个 数据流的发包控制参数进行设置和修改,能够实现基于数据流的发包控制,控 制数据流的协议、帧长、构成方式、发包速率、数据包变化等各种属性。
而采用数据包模板缓冲存储所有数据流的数据包模板。每个数据流中所有 的数据包都是根据其对应的数据包模板变化产生的。而且每个数据流都只对应 于缓冲中的1个数据包模板。发送单元20从数据包缓冲区302中读取每个数 据流的数据包模板,同时根据每个数据流对应的基本控制参数和变化控制参 数,就可以产生一个指定字段按照一定规律不断变化的数据包序列,构成该数 据流对应的测试流量。
在本发明另一实施例中,步骤S301之前还包括,主控单元10为需要发送 的每个数据流生成发包控制参数的步骤。
图4是本发明一个实施例中提供的产生网络流量的方法流程图,步骤 S401~步骤S404是主控单元10的处理流程。
步骤S401中,主控单元10依次生成每个数据流的发包控制参数;主控单 元10根据用户配置,依次生成每个需要发送的数据流的发包控制参数,每个 数据流相对应一个的发包控制参数;该发包控制参数中包含了和该数据流对应 的数据包模板索引号、基本控制参数和变化控制参数。
步骤S402中,主控单元10将需要发送的每个数据流的数据包模板写入到 缓冲区30的数据包缓冲区302保存。在本实施例中,主控单元10写入数据包 缓冲区302的各数据流的数据包模板为通用数据包模板。
步骤S403中,主控单元10对所有数据流的发送顺序进行排序,并依序将 每个数据流的发包控制参数写入参数缓冲区301。
步骤S404中,主控单元10发送消息给发送单元20,通知发送单元20开 始产生测试流量。
步骤S405~步骤S409是发送单元20的处理流程;
步骤S405中,发送单元20依序从参数缓冲区301中读取一个数据流的发 包控制参数,并根据该发包控制参数中的数据包模板索引号,得到该数据流对 应的数据包模板在数据包缓冲区302中的存放地址。发送单元20依次读取参 数缓冲区302中的发包控制参数;根据发包控制参数中的数据包模板索引号计 算获得该数据流对应的数据包模板存储地址。
步骤S406中,发送单元20从数据包缓冲区302中读取该数据流对应的数 据包模板,并根据发包控制参数中的变化控制参数对数据包模板中指定字段进 行设置,得到不断变化的数据包序列。
步骤S407中,发送单元20根据发包控制参数中的基本控制信息,将所述 数据包序列进行设置并发送出去。
步骤S408中,主控单元10根据数据流的发包控制参数判断是否需要产生 并行数据流,如果不需要产生并行数据流,则当发送单元20处理完最后一个 数据流的发包控制参数,就停止处理(步骤S409)。
如果需要产生并行数据流,发送单元20循环不断的执行步骤S405~步骤 S407,当发送单元20处理完最后一个数据流的发包控制参数仍不停止处理, 而继续返回到第一个数据流的发包控制参数进行循环处理以产生并行数据流, 直至主控单元10向发送单元20发送停止命令为止。
在本发明发送单元20在流量产生过程中,依次处理参数缓冲区301中每 个数据流对应的发包控制参数,从而依次产生每个数据流。当发送单元20处 理完最后一个数据流对应的发包控制参数,发送单元20停止处理,此时产生 的测试流量,实际上就是在参数缓冲区301中定义的每一个数据流串连在一起 构成的串行流量;当发送单元20处理完最后一个数据流量对应的发包控制参 数,发送单元20不停止,而是继续从第1个数据流的发包控制参数重新开始 处理所有参数,按照这种方式循环不断的处理下去,产生的测试流量,实际上 就是将参数缓冲区301中定义的所有数据流相互交错在一起构成的并行流量。
另外,在发送单元20读取或处理发包控制参数时,主控单元10支持对缓 冲区30中其他发包控制参数的实时更新,以实现实时更新需要产生的数据流 量功能。
图5是本发明另一实施例中提供的产生网络流量的装置结构示意图。在该 实施例中,主控单元10采用CPU;参数缓冲区301采用DPRAM(Double Port Random-Access Memory,双口随机存取存储器);数据包缓冲区302采用DDR (Double Data Rate SDRAM,双倍速率同步动态随机存储器);发送单元20 采用FPGA(Field-Programmable Gate Arrays,现场可编程序门阵列);主控 单元10和发送单元20通过数据总线访问参数缓冲区301和数据包缓冲区302。
主控单元10通过数据总线或者其他方式访问参数缓冲区301和数据包缓 冲区302,可以方便的向参数缓冲区301中写入各种数据流的发包控制参数, 同时将需要发送的数据包的模板写入到数据包缓冲区302中保存。
发送单元20采用FPGA实现,可以读取数据包缓冲区302中的各种数据 包,然后根据参数缓冲区301中的变化控制参数,组建一个数据包序列,然后 读取参数缓冲区301中的发包控制参数,根据各种发包控制参数定义,将数据 包序列发送出去。FPGA可以通过数据总线或其他方式从DPRAM中的参数缓 冲区301中读取发包参数,也可以从DDR中的数据包缓冲区302读取数据。 另外FPGA也可以将接收到的数据包存储到DDR中的数据包缓冲区302,从 而实现接收捕获功能。同时主控单元10可以控制发送单元20开始发送和停止 发送数据包。
参数缓冲区301中最多有1024组发包控制参数,支持最多1024个数据流 的控制。参数缓冲区301在高速DPRAM中实现,FPGA可以读取该DPRAM 的内容,CPU可以向该DPRAM中写入数据,而且FPGA和CPU可以同时访 问DPRAM,这样就可以实现在FPGA读取DPRAM中的一组发包控制参数控 制发送数据包的同时,CPU可以实时更新发包控制参数缓冲单元中其他的发 包控制参数,实现实时更新的功能。
数据包缓冲区302包括16384个2048Byte长度的缓冲区,最多可以存储 16384个帧长不大于2Kbyte的Packet。整个数据包缓冲区302占用的空间大小 为32MByte,存储于DDR器件中,因为采用DDR可以提供高带宽和大的存 储容量。采用4片工作频率为200MHz、数据线宽度为16bit的DDR器件,可 以提供64bit的数据线宽,同时由于DDR器件在时钟上升沿和下降沿都可以 处理数据,其提供的带宽最大可以达到25.6GBps,足够满足需要。而且DDR 器件容量很大,成本也不贵,完全可以满足本方法中对大容量高速数据的存储 需求。
在本实施例中,每个数据流的发包控制参数包括:数据包模板索引号:表 示对应的数据包模板在数据包缓冲区302中存储的地址索引;基本控制参数: 主要包括IPG(Inter-Packet Gap,帧间隔)、发包个数等参数;变化控制参数: 包括变化字段的偏移、变化的幅度、变化的次数等。产生网络流量方法的整个 流程如下:第一步:主控单元10依次生成每个数据流的发包控制参数;第二 步:主控单元10将每个数据流的数据包模板写入到数据包缓冲区302中。第 三步:主控单元10根据发送的流量中各个数据流的顺序,依次将每个数据流 的发包控制参数写入到参数缓冲区301中;第四步:主控单元10通知发送单 元20开始产生流量;第五步:发送单元20得到主控单元10的通知,读取参 数缓冲区301中的第1组参数,得到第1个数据流采用的数据包模板在数据包 缓冲区302中的存储地址;第六步:发送单元20根据第1组发包控制参数中 的变化控制参数,对数据包模板指定字段进行修改,得到一个数据包序列;第 七步:发送单元20根据第1组发包控制参数中的基本控制参数,将第六步中 产生的数据包队列按照指定的速率、构成方式发送出去,产生指定的测试流量; 第八步:判断是否产生并行流量,如果产生并行流量,则重复执行步骤六和步 骤七;如果产生串行流量,则停止发包。
参数缓冲区301中存储的发包控制参数可以为FPGA提供足够多的发包控 制信息。通过修改数据包模板的索引号,CPU可以选择每个数据流对应的数 据包,相应的也就确定了该数据流采用的协议类型、帧长度、数据帧结构等属 性。通过更换或修改发包控制参数中的数据包模板索引号,可以控制每一个数 据流发送的先后顺序。在测试过程中更改索引号,可以实时更新每个数据流对 应的数据包模板,从而采用不同的协议格式或者流量模型进行测试。
通过修改基本控制参数,CPU可以控制每个数据流的构成方式、发送数 据帧个数和发包速率等属性。例如可以通过修改IPG来控制发送速率,通过修 改发包个数来控制数据流中的数据包个数;通过设置发送数据帧个数,就可以 控制每个数据流包含的数据包的个数。当然还可以带有其他的各种控制参数。
同时在测试过程中,可以通过修改参数缓冲区301中数据流对应的数据包 模板索引号,来实现实时更新功能。如图5所示,每个数据包模板索引号仅仅 占用16bit,而主控单元10修改每个数据流所需要的时间都很短。这样就为在 测试过程中进行发包控制参数的实时更新提供了可能。
在数据包缓冲区302中,存储了很多个数据包模板,每一个数据流都对应 一个数据包模板。在发送过程中发送单元20每发送一个数据流,仅需要读取 1次数据包缓冲区302,这样大大减少了发送单元20访问缓冲区的操作次数, 提高了处理效率。
在上一实施例中,一共可以存储16K个帧长为2Kbyte的数据包,用户可 以从这16K个数据包模板中随意选择1024个数据包作为1024个数据流的数 据包,将这1024个数据流进行任意组合后进行测试。实际使用中可以在数据 包缓冲区302中存储各种通用的流量模型,测试过程中更换这些流量模型进行 测试。
而且,通过变化控制参数设置数据包变化的规律,可以基于1个数据包模 板生成一个不断变化的数据包序列,而不再需要将该数据流中所有的数据包都 存储在数据包缓冲中。节省大量的空间,用于存储不同类型的数据包模板。采 用本方法产生的数据包序列,在测试过程中有很大的应用。例如,按照RFC2889 规定,在测试交换设备的地址学习速率的时候,需要产生1组DA(Destination Address,目的地址字段)不断变化的以太网数据帧,用于测试被测设备的地 址学习速率和地址缓冲能力。通常这1个数据包序列中需要有上万个DA字段 不相同的数据包。采用本方法中的数据包模板,同时设置变化控制参数,令每 个数据包中DA字段自动递增或者递减,就可以非常方便的实现该测试流量。 按照图5给出的例子,极限情况下共支持1024个数据流,而通过变化控制参 数可以设置一个数据流中的数据包指定字段变化。如果在变化控制参数中的变 化次数采用1个16bit的数值进行计算,那么每个数据流中数据包的最大变化 次数为65536次。在产生的总的测试流量中,最多可以实现67108864个不同 的数据包。这种方法可以非常有效的模拟实际环境中所有的数据包都不断变化 的情况。
最后,通过控制发送单元20对参数缓冲区301中所有参数的处理顺序, 就可以控制最终产生串行流量还是并行流量。
综上所述,本发明通过主控单元将需要发送的每个数据流的发包控制参数 和数据包模板写入到缓冲区中,以通过发送单元读取缓冲区中每个数据流的发 包控制参数和数据包模板,生成对应数据流;并利用数据流的发包控制功能, 控制数据流的所有属性。通过数据包模板索引号,控制每个数据流中数据包类 型;通过基本控制参数,控制每个数据流的发包速率、发包个数等;通过变化 控制参数,产生一个指定字段不断变化的数据包序列。通过本发明产生网络流 量,既可以产生串行数据流,也可以产生并行数据流;真实的模拟产生了复杂 的网络流量;并且通过修改发包控制参数,实现了实时更新需要产生的数据流 量功能。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但 这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。