本技术涉及通信,特别是涉及一种流量仿真方法、装置、电子设备及存储介质。
背景技术:
1、在网络设备发售上线之前,通常使用网络测试仪对网络设备进行功能测试,如使用网络测试仪发送不同长度的报文,观察网络设备在不同长度的报文下的表现是否正常。真实网络环境下的流量非常复杂,一条流量包含不同长度的报文,不同流量包括的报文长度又不完全相同。而上述对网络设备进行功能测试中,仿真流量时仅会生成并发送少量单一长度的报文,这就可能导致网络设备应用到现网上并发处理复杂流量时出错。
技术实现思路
1、本技术实施例的目的在于提供一种流量仿真方法、装置、电子设备及存储介质,以提高仿真得到的流量中不同长度报文的分布与真实网络环境下不同长度报文的分布相似度,解决因仿真的流量包含少量单一长度的报文,导致网络设备应用到现网上并发处理复杂流量时出错的问题。具体技术方案如下:
2、在本技术实施例的第一方面,提供了一种流量仿真方法,所述方法包括:
3、侦听当前网络中的流量,获得与所述流量匹配的多个报文长度与报文数量的对应关系;
4、将所述多个报文长度所属的长度区间划分为多个目标长度区间,每个目标长度区间的权重为每个目标长度区间包括的所有报文长度对应的报文数量总和,且每个目标长度区间对应一个指令,每个目标长度区间对应的指令指示该目标长度区间的报文长度变化规则;
5、按照每个目标长度区间的权重和指令,发送长度位于每个目标长度区间的报文。
6、在一些实施例中,所述将所述多个报文长度所属的长度区间划分为多个目标长度区间的步骤,包括:
7、获取所述多个报文长度中的最大报文长度和最小报文长度,所述最大报文长度和最小报文长度构成的长度区间为所述多个报文长度所属的长度区间;
8、若所述最大报文长度与最小报文长度的差值小于预设指令数量,则将每个报文长度分别作为一个目标长度区间;
9、若所述最大报文长度与最小报文长度的差值大于等于所述预设指令数量,则根据所述多个报文长度与报文数量的对应关系以及所述预设指令数量,将所述最大报文长度至所述最小报文长度的长度区间划分为多个目标长度区间。
10、在一些实施例中,所述根据所述多个报文长度与报文数量的对应关系以及所述预设指令数量,将所述最大报文长度至所述最小报文长度的长度区间划分为多个目标长度区间的步骤,包括:
11、获取长度区间的初始宽度;
12、按照所述初始宽度,将所述最大报文长度至所述最小报文长度的长度区间划分为多个初始长度区间;
13、按照预设操作对每个初始长度区间进行处理,得到多个目标长度区间,所述多个目标长度区间的数量小于等于所述预设指令数量;
14、所述预设操作包括以下至少一个操作:
15、删除空长度区间,所述空长度区间为包括的所有报文长度对应的报文数量总和为零的初始长度区间;
16、在初始长度区间的总数小于所述预设指令数量时,将最大长度区间拆分为两个长度区间,所述最大长度区间为包括的所有报文长度对应的报文数量总和最大且宽度大于1的初始长度区间;
17、若存在第一报文数量总和小于第二报文数量总和,则合并所述第一报文数量总和对应的两个连续的初始长度区间,并将所述第二报文数量总和对应的初始长度区间拆分为两个长度区间,所述第一报文数量总和为所述两个连续的初始长度区间包括的所有报文长度对应的报文数量总和,所述第二报文数量总和为所述最大长度区间包括的所有报文长度对应的报文数量总和。
18、在一些实施例中,所述获取长度区间的初始宽度的步骤,包括:
19、获取大于所述差值的最小宽度,所述最小宽度为所述预设指令数量的整数倍数;
20、将所述最小宽度相对于所述预设指令数量的整数倍数作为长度区间的初始宽度。
21、在一些实施例中,所述按照每个目标长度区间的权重和指令,发送长度位于每个目标长度区间的报文的步骤,包括:
22、累计每个目标长度区间的权重,得到每个目标长度区间对应的权重区间;
23、获取一个小于等于所述多个目标长度区间的权重和的目标随机数;
24、确定所述目标随机数所属的目标权重区间;
25、按照所述目标权重区间对应的目标长度区间的指令,发送长度位于该目标长度区间的报文。
26、在一些实施例中,所述获取一个小于等于所述多个目标长度区间的权重和的目标随机数的步骤,包括:
27、获取初始随机数;
28、若所述初始随机数小于等于所述多个目标长度区间的权重和,则将所述初始随机数作为目标随机数;
29、若所述初始随机数大于所述多个目标长度区间的权重和,则将所述初始随机数对所述权重和进行取余,得到目标随机数。
30、在一些实施例中,所述按照每个目标长度区间的权重和指令,发送长度位于每个目标长度区间的报文的步骤,包括:
31、获取模板报文,所述模板报文的长度大于等于所述多个报文长度中的最大报文长度;
32、按照每个目标长度区间的权重和指令,对所述模板报文进行裁剪,得到并发送长度位于每个目标长度区间的报文。
33、在本技术实施例的第二方面,提供了一种流量仿真装置,所述装置包括:
34、侦听模块,用于侦听当前网络中的流量,获得与所述流量匹配的多个报文长度与报文数量的对应关系;
35、划分模块,用于将所述多个报文长度所属的长度区间划分为多个目标长度区间,每个目标长度区间的权重为每个目标长度区间包括的所有报文长度对应的报文数量总和,且每个目标长度区间对应一个指令,每个目标长度区间对应的指令指示该目标长度区间的报文长度变化规则;
36、发送模块,用于按照每个目标长度区间的权重和指令,发送长度位于每个目标长度区间的报文。
37、在一些实施例中,所述划分模块,包括:
38、获取子模块,用于获取所述多个报文长度中的最大报文长度和最小报文长度,所述最大报文长度和最小报文长度构成的长度区间为所述多个报文长度所属的长度区间;
39、第一划分子模块,用于若所述最大报文长度与最小报文长度的差值小于预设指令数量,则将每个报文长度分别作为一个目标长度区间;
40、第二划分子模块,用于若所述最大报文长度与最小报文长度的差值大于等于所述预设指令数量,则根据所述多个报文长度与报文数量的对应关系以及所述预设指令数量,将所述最大报文长度至所述最小报文长度的长度区间划分为多个目标长度区间。
41、在一些实施例中,所述第二划分子模块,具体用于:
42、获取单元,用于获取长度区间的初始宽度;
43、划分单元,用于按照所述初始宽度,将所述最大报文长度至所述最小报文长度的长度区间划分为多个初始长度区间;
44、得到单元,用于按照预设操作对每个初始长度区间进行处理,得到多个目标长度区间,所述多个目标长度区间的数量小于等于所述预设指令数量;
45、所述预设操作包括以下至少一个操作:
46、删除空长度区间,所述空长度区间为包括的所有报文长度对应的报文数量总和为零的初始长度区间;
47、在初始长度区间的总数小于所述预设指令数量时,将最大长度区间拆分为两个长度区间,所述最大长度区间为包括的所有报文长度对应的报文数量总和最大且宽度大于1的初始长度区间;
48、若存在第一报文数量总和小于第二报文数量总和,则合并所述第一报文数量总和对应的两个连续的初始长度区间,并将所述第二报文数量总和对应的初始长度区间拆分为两个长度区间,所述第一报文数量总和为所述两个连续的初始长度区间包括的所有报文长度对应的报文数量总和,所述第二报文数量总和为所述最大长度区间包括的所有报文长度对应的报文数量总和。
49、在一些实施例中,所述获取单元,具体用于:
50、获取大于所述差值的最小宽度,所述最小宽度为所述预设指令数量的整数倍数;
51、将所述最小宽度相对于所述预设指令数量的整数倍数作为长度区间的初始宽度。
52、在一些实施例中,所述发送模块,包括:
53、累计子模块,用于累计每个目标长度区间的权重,得到每个目标长度区间对应的权重区间;
54、获取子模块,用于获取一个小于等于所述多个目标长度区间的权重和的目标随机数;
55、确定子模块,用于确定所述目标随机数所属的目标权重区间;
56、发送子模块,用于按照所述目标权重区间对应的目标长度区间的指令,发送长度位于该目标长度区间的报文。
57、在一些实施例中,所述获取子模块,具体用于:
58、获取初始随机数;
59、若所述初始随机数小于等于所述多个目标长度区间的权重和,则将所述初始随机数作为目标随机数;
60、若所述初始随机数大于所述多个目标长度区间的权重和,则将所述初始随机数对所述权重和进行取余,得到目标随机数。
61、在一些实施例中,所述发送模块,具体用于:
62、获取模板报文,所述模板报文的长度大于等于所述多个报文长度中的最大报文长度;
63、按照每个目标长度区间的权重和指令,对所述模板报文进行裁剪,得到并发送长度位于每个目标长度区间的报文。
64、在本技术实施例的第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
65、存储器,用于存放计算机程序;
66、处理器,用于执行存储器上所存放的程序时,实现上述任一流量仿真方法的步骤。
67、在本技术实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一流量仿真方法的步骤。
68、本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一流量仿真方法的步骤。
69、本技术实施例有益效果:
70、本技术实施例提供的技术方案中,侦听当前网络中的流量,可以获得真实网络环境中多个报文长度,以及不同报文长度与报文数量的对应关系。基于不同报文长度与报文数量的对应关系,确定不同报文长度所属长度区间的权重,按照长度区间的权重发送报文,这里所发送报文的长度与长度区间的权重相匹配,即与真实网络环境中报文长度所在比例相匹配。因此,以此仿真得到的流量中,报文长度的分布与真实网络环境中报文长度的分布可以达到一致,提高了仿真得到的流量中不同长度报文的分布与真实网络环境下不同长度报文的分布相似度,依据此仿真得到的流量对网络设备进行测试,可以解决因仿真的流量包含少量单一长度的报文,导致网络设备应用到现网上并发处理复杂流量时出错的问题。
71、当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。