CN101141320A - 一种产生网络流量的方法及其装置 - Google Patents

一种产生网络流量的方法及其装置 Download PDF

Info

Publication number
CN101141320A
CN101141320A CNA2007101200397A CN200710120039A CN101141320A CN 101141320 A CN101141320 A CN 101141320A CN A2007101200397 A CNA2007101200397 A CN A2007101200397A CN 200710120039 A CN200710120039 A CN 200710120039A CN 101141320 A CN101141320 A CN 101141320A
Authority
CN
China
Prior art keywords
data
package
data flow
control parameters
template
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.)
Granted
Application number
CNA2007101200397A
Other languages
English (en)
Other versions
CN100589421C (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN200710120039.7A priority Critical patent/CN100589421C/zh
Publication of CN101141320A publication Critical patent/CN101141320A/zh
Application granted granted Critical
Publication of CN100589421C publication Critical patent/CN100589421C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种产生网络流量的方法及其装置
技术领域
本发明涉及网络流量技术领域,尤其涉及一种产生网络流量的方法及其装置。
背景技术
在网络测试设备中,测试设备需要产生各种各样的测试数据流量,来测试被测设备在不同的流量环境下的性能。为了保证测试的有效性和可靠性,测试设备产生的测试数据流量,需要尽量模拟各种速率和各种流量下的真实的网络环境。这对测试设备产生的测试流量不仅要求速率控制精确,而且要求可以支持各种各样的流量构成方式,这样才能够正常的为各种被测设备和被测系统精确的提供各种网络测试流量进行测试。因此,是否能够更加准确和有效地模拟真实环境中的数据流量,是网络测试设备性能的重要体现。
在网络中,数据流(Stream)指的是具有类似的协议或者帧结构的数据包(Packet)的集合。在实际网络环境中,往往一个网络端口上,同时存在多种不同协议或者不同类型的数据流量,这些数据流量具有不同的协议、不同的速率、不同的构成方式等。这就可以看作是多个流组合在一起,构成了一个端口上的数据流量。
考虑多个不同的数据流组合在一起的方式,可以分为串行数据流和并行数据流。串行数据流主要是不同的流串行排列在一起而构成的测试流量。并行数据流则是不同的流中的数据包并行交错在一起构成的测试流量。这里的并行指的是不同数据流中的数据包交错在一起发送。例如,Packet1、Packet2和Packet3分别属于不同的数据流,那么依次发送Packet1、Packet2、packet3、Packet1、Packet2、packet3......,此时得到的就是3个数据流中的数据包交错在一起构成的流量,称之为并行数据流。
在测试环境下,模拟上述的真实环境,就需要实现在一个端口上多个不同的数据流组合在一起的情况。首先,需要实现对每个数据流进行单独的控制,对每个不同的数据流都可以设置各种属性,这些属性包括但不仅限于:协议类型、帧长、速率、发送数据帧个数、发送方式等等。其次,要模拟多个数据流组合的情况,还需要控制多个不同的数据流之间相互组合的方式,也就是控制多个数据流组成串行流量,还是并行流量。
在专利号为“CN02128334”,发明名称为“长测试序列实时测试流的产生方法和装置”的中国专利中,公开了一种长测试序列实时测试流的产生方法和装置,在索引表的各个单元中依次装入各个时隙将要发送的信元所属的连接号,并在信元头存储表中为每一个连接存储一个信元头;查询电路按顺序访问索引表,每时隙得到一个新连接号,虚拟队列和调度器对这个连接号进行虚拟队列和调度后,作为地址访问信元头存储表,得到这个连接的信元头,组装后得到测试信元,发送给被测系统。在同样的存储空间的情况下,本发明的索引表存储方式能够存储更长的测试序列,同时访问索引表的时间非常短,为模拟更高的带宽提供了可能,也为CPU在测试中实时更新索引表提供了可能,流量模型实时更新性能好。
专利CN02128334中采用的方法,主要是采用一个索引表来指示每个时隙需要发送的信元在存储器中的地址。该方法存在如下缺点:首先,该方法只能控制单个数据流采用哪一个数据包构成,但是无法控制该数据流其他的参数。也就是说,采用该方法,只能单独控制每个数据流采用的协议,或者帧结构;但是无法控制每个数据流的速率、发送数据帧个数等;其次,该专利中信元头存储表用于存储需要发送的信元中的信元头,但是由于存储空间始终是有限的,所以能够存储的信元个数也有限。按照该专利中给出的例子,其信元存储表最多存储2048个信元头。这就表示,无论该方法产生的测试数据流有多长,该数据流中最多只可能有2048种信元。然而在实际环境中,一个数据流中往往有几万、几十万甚至上百万个不同的数据包。采用该专利中的方法模拟实际环境是远远不够的;最后,该专利中并没有提供产生串行流量或者并行流量的方法。
综上可知,现有的网络流量产生技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种产生网络流量的方法及其装置,以实现为网络设备测试提供复杂的数据流量的方法及其装置。
为了实现上述目的,本发明提供一种产生网络流量的方法,所述方法包括:
A、主控单元将需要发送的每个数据流的发包控制参数和数据包模板写入缓冲区中;
B、发送单元读取所述缓冲区中的发包控制参数和数据包模板,并分别根据每个发包控制参数和数据包模板生成对应的数据流发送出去。
根据本发明的方法,所述步骤A之前还包括,主控单元为需要发送的每个数据流生成发包控制参数,该发包控制参数包括:
数据包模板索引号,用于设置数据包模板在缓冲区中的存放地址;
基本控制参数,用于设置与数据流发包控制相关的参数;
变化控制参数,用于设置数据流的数据包在发送过程中的变化参数。
根据本发明的方法,所述缓冲区包括数据包缓冲区和参数缓冲区,并且所述步骤A进一步包括:
A1、主控单元将需要发送的每个数据流的数据包模板写入数据包缓冲区;
A2、主控单元对所有数据流的发送顺序进行排序,并依序将每个数据流的发包控制参数写入参数缓冲区。
根据本发明的方法,所述步骤A1中写入数据包缓冲区的各数据流的数据包模板为通用数据包模板。
根据本发明的方法,所述步骤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 PortRandom-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(DestinationAddress,目的地址字段)不断变化的以太网数据帧,用于测试被测设备的地址学习速率和地址缓冲能力。通常这1个数据包序列中需要有上万个DA字段不相同的数据包。采用本方法中的数据包模板,同时设置变化控制参数,令每个数据包中DA字段自动递增或者递减,就可以非常方便的实现该测试流量。按照图5给出的例子,极限情况下共支持1024个数据流,而通过变化控制参数可以设置一个数据流中的数据包指定字段变化。如果在变化控制参数中的变化次数采用1个16bit的数值进行计算,那么每个数据流中数据包的最大变化次数为65536次。在产生的总的测试流量中,最多可以实现67108864个不同的数据包。这种方法可以非常有效的模拟实际环境中所有的数据包都不断变化的情况。
最后,通过控制发送单元20对参数缓冲区301中所有参数的处理顺序,就可以控制最终产生串行流量还是并行流量。
综上所述,本发明通过主控单元将需要发送的每个数据流的发包控制参数和数据包模板写入到缓冲区中,以通过发送单元读取缓冲区中每个数据流的发包控制参数和数据包模板,生成对应数据流;并利用数据流的发包控制功能,控制数据流的所有属性。通过数据包模板索引号,控制每个数据流中数据包类型;通过基本控制参数,控制每个数据流的发包速率、发包个数等;通过变化控制参数,产生一个指定字段不断变化的数据包序列。通过本发明产生网络流量,既可以产生串行数据流,也可以产生并行数据流;真实的模拟产生了复杂的网络流量;并且通过修改发包控制参数,实现了实时更新需要产生的数据流量功能。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (10)

1.一种产生网络流量的方法,其特征在于,所述方法包括:
A、主控单元将需要发送的每个数据流的发包控制参数和数据包模板写入缓冲区中;
B、发送单元读取所述缓冲区中的发包控制参数和数据包模板,并分别根据每个发包控制参数和数据包模板生成对应的数据流发送出去。
2.根据权利要求1所述的方法,其特征在于,所述步骤A之前还包括,主控单元为需要发送的每个数据流生成发包控制参数,该发包控制参数包括:
数据包模板索引号,用于设置数据包模板在缓冲区中的存放地址;
基本控制参数,用于设置与数据流发包控制相关的参数;
变化控制参数,用于设置数据流的数据包在发送过程中的变化参数。
3.根据权利要求2所述的方法,其特征在于,所述缓冲区包括数据包缓冲区和参数缓冲区,并且所述步骤A进一步包括:
A1、主控单元将需要发送的每个数据流的数据包模板写入数据包缓冲区;
A2、主控单元对所有数据流的发送顺序进行排序,并依序将每个数据流的发包控制参数写入参数缓冲区。
4.根据权利要求3所述的方法,其特征在于,所述步骤A1中写入数据包缓冲区的各数据流的数据包模板为通用数据包模板。
5.根据权利要求3所述的方法,其特征在于,所述步骤B进一步包括:
B1、发送单元依序从参数缓冲区中读取一个数据流的发包控制参数,并根据该发包控制参数中的数据包模板索引号,得到该数据流对应的数据包模板在数据包缓冲区中的存放地址;
B2、发送单元从数据包缓冲区中读取该数据流对应的数据包模板,并根据发包控制参数中的变化控制参数对数据包模板中指定字段进行设置,得到不断变化的数据包序列;
B3、发送单元根据发包控制参数中的基本控制信息,将所述数据包序列进行设置并发送出去。
6.根据权利要求5所述的方法,其特征在于,所述发送单元处理完最后一个数据流的发包控制参数,则停止处理以产生串行数据流;或者
所述发送单元循环不断的执行步骤B1~B3,当发送单元处理完最后一个数据流的发包控制参数仍不停止处理,而继续返回到第一个数据流的发包控制参数进行循环处理以产生并行数据流。
7.根据权利要求2所述的方法,其特征在于,所述数据包模板中包括数据流所采用的协议类型、帧长度或者帧结构;
所述基本控制参数中包括数据流的发包速率、发包方式或者发包个数;
所述变化控制参数中包括数据包中的变换字段的偏移地址、变化数值、变化方向或者变化次数。
8.根据权利要求1所述的方法,其特征在于,所述步骤B中通过主控单元去控制发送单元开始或者停止产生数据流。
9.根据权利要求1所述的方法,其特征在于,所述发送单元读取或处理发包控制参数时,主控单元支持对缓冲区中其他发包控制参数的实时更新。
10.一种实施如权利要求1~9任一项所述方法的网络流量产生装置,其特征在于,包括:
主控单元,用于将需要发送的每个数据流的发包控制参数和数据包模板写入缓冲区中;
缓冲区,用于存储所述发包控制参数和数据包模板;
发送单元,用于读取所述缓冲区中的发包控制参数和数据包模板,并分别根据每个发包控制参数和数据包模板生成对应的数据流发送出去。
CN200710120039.7A 2007-08-07 2007-08-07 一种产生网络流量的方法及其装置 Active CN100589421C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710120039.7A CN100589421C (zh) 2007-08-07 2007-08-07 一种产生网络流量的方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710120039.7A CN100589421C (zh) 2007-08-07 2007-08-07 一种产生网络流量的方法及其装置

Publications (2)

Publication Number Publication Date
CN101141320A true CN101141320A (zh) 2008-03-12
CN100589421C CN100589421C (zh) 2010-02-10

Family

ID=39193083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710120039.7A Active CN100589421C (zh) 2007-08-07 2007-08-07 一种产生网络流量的方法及其装置

Country Status (1)

Country Link
CN (1) CN100589421C (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854296A (zh) * 2010-05-20 2010-10-06 中兴通讯股份有限公司 可变频发包的方法、装置及系统
CN102123058A (zh) * 2011-01-19 2011-07-13 北京神州绿盟信息安全科技股份有限公司 一种对网络协议解码器进行测试的测试设备和方法
CN102299828A (zh) * 2011-08-30 2011-12-28 中国科学院计算技术研究所 用于网络安全设备性能测试的测试流量合成方法及装置
CN101562544B (zh) * 2008-04-17 2012-07-04 浩通科技(深圳)有限公司 一种数据包生成器和数据包生成方法
CN103973582A (zh) * 2014-05-28 2014-08-06 重庆重邮汇测通信技术有限公司 测试数据流发送流量控制方法及系统
CN105071998A (zh) * 2015-09-11 2015-11-18 百度在线网络技术(北京)有限公司 基于流量控制的测试系统及方法
CN105871656A (zh) * 2016-03-25 2016-08-17 杭州华三通信技术有限公司 一种测试装置
CN106301994A (zh) * 2015-06-24 2017-01-04 北京京东尚科信息技术有限公司 一种网络通信异常测试方法和装置
CN106357475A (zh) * 2016-08-31 2017-01-25 成都科来软件有限公司 一种数据包构造系统及其工作方法
CN107566395A (zh) * 2017-09-28 2018-01-09 郑州云海信息技术有限公司 一种交互式数据包的构造方法
WO2018219100A1 (zh) * 2017-06-01 2018-12-06 华为技术有限公司 数据传输的方法和设备
CN109167736A (zh) * 2018-07-24 2019-01-08 北京新宇航星科技有限公司 高均匀度的数据包发包方法及装置
CN114679411A (zh) * 2022-03-24 2022-06-28 芯河半导体科技(无锡)有限公司 一种速率可控制的以太网报文发包器的实现方法
CN115022160A (zh) * 2021-03-03 2022-09-06 中国移动通信有限公司研究院 网络测试包选择方法、装置及电子设备

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562544B (zh) * 2008-04-17 2012-07-04 浩通科技(深圳)有限公司 一种数据包生成器和数据包生成方法
CN101854296B (zh) * 2010-05-20 2014-10-22 中兴通讯股份有限公司 可变频发包的方法、装置及系统
CN101854296A (zh) * 2010-05-20 2010-10-06 中兴通讯股份有限公司 可变频发包的方法、装置及系统
CN102123058A (zh) * 2011-01-19 2011-07-13 北京神州绿盟信息安全科技股份有限公司 一种对网络协议解码器进行测试的测试设备和方法
CN102299828A (zh) * 2011-08-30 2011-12-28 中国科学院计算技术研究所 用于网络安全设备性能测试的测试流量合成方法及装置
CN102299828B (zh) * 2011-08-30 2014-01-08 中国科学院计算技术研究所 用于网络安全设备性能测试的测试流量合成方法及装置
CN103973582A (zh) * 2014-05-28 2014-08-06 重庆重邮汇测通信技术有限公司 测试数据流发送流量控制方法及系统
CN103973582B (zh) * 2014-05-28 2017-04-12 重庆重邮汇测通信技术有限公司 测试数据流发送流量控制方法及系统
CN106301994B (zh) * 2015-06-24 2023-11-03 北京京东尚科信息技术有限公司 一种网络通信异常测试方法和装置
CN106301994A (zh) * 2015-06-24 2017-01-04 北京京东尚科信息技术有限公司 一种网络通信异常测试方法和装置
CN105071998A (zh) * 2015-09-11 2015-11-18 百度在线网络技术(北京)有限公司 基于流量控制的测试系统及方法
CN105871656A (zh) * 2016-03-25 2016-08-17 杭州华三通信技术有限公司 一种测试装置
CN106357475A (zh) * 2016-08-31 2017-01-25 成都科来软件有限公司 一种数据包构造系统及其工作方法
WO2018219100A1 (zh) * 2017-06-01 2018-12-06 华为技术有限公司 数据传输的方法和设备
CN108989237A (zh) * 2017-06-01 2018-12-11 华为技术有限公司 数据传输的方法和设备
US11140082B2 (en) 2017-06-01 2021-10-05 Huawei Technologies Co., Ltd. Data transmission method and device
CN107566395A (zh) * 2017-09-28 2018-01-09 郑州云海信息技术有限公司 一种交互式数据包的构造方法
CN109167736A (zh) * 2018-07-24 2019-01-08 北京新宇航星科技有限公司 高均匀度的数据包发包方法及装置
CN109167736B (zh) * 2018-07-24 2022-05-17 北京新宇航星科技有限公司 高均匀度的数据包发包方法及装置
CN115022160A (zh) * 2021-03-03 2022-09-06 中国移动通信有限公司研究院 网络测试包选择方法、装置及电子设备
CN114679411A (zh) * 2022-03-24 2022-06-28 芯河半导体科技(无锡)有限公司 一种速率可控制的以太网报文发包器的实现方法

Also Published As

Publication number Publication date
CN100589421C (zh) 2010-02-10

Similar Documents

Publication Publication Date Title
CN100589421C (zh) 一种产生网络流量的方法及其装置
US9313115B2 (en) Traffic generator with priority flow control
CN1874313B (zh) 处理数据包的方法和网络设备
CN100369423C (zh) 网络仿真测试系统及方法
US9001668B2 (en) Endpoint selection in a network test system
US8520529B2 (en) Reordering network traffic
EP2429128A1 (en) Flow statistics aggregation
CN102204183A (zh) 报文保序处理方法、保序协处理器和网络设备
CN100405786C (zh) 支持多队列的共享缓存动态门限早期丢弃装置
CN109743301A (zh) 一种基于Modbus协议的数据收发系统及方法
US8654654B2 (en) Traffic distribution control
CN108092856A (zh) 基于sdn的网络质量优化方法、系统及电子设备
CN109547288A (zh) 一种协议无关转发网络可编程流测量方法
CN106027397B (zh) 一种星型拓展的分布式测量设备网络通信方法
CN108933787A (zh) 报文生成方法及装置
CN106301987A (zh) 一种报文丢失检测方法、装置及系统
CN107483284A (zh) 网络设备的测试方法及装置
Chai et al. Modeling and distributed simulation of a broadband-isdn network
CN104247352B (zh) 一种用于存储信息单元的存储器系统及其方法
CN100499563C (zh) 提高分组应用的存储器存取效率
US20050025054A1 (en) Extensible traffic generator for synthesis of network data traffic
JP2020088517A (ja) 通信装置、通信装置の制御方法およびプログラム
US20110002228A1 (en) Scheduler Using a Plurality of Slow Timers
CN105207953B (zh) 一种用户流量的生成方法及装置
WO1999063439A1 (en) Apparatus and method for testing network applications

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