高速网络中优先级敏感的每流大小测量方法、系统和设备
- 国知局
- 2024-08-02 14:59:09
本发明涉及网络流量测量,尤其是指一种高速网络中优先级敏感的每流大小测量方法、系统和设备。
背景技术:
1、网络流量测量在计算机网络中起着核心作用,如网络遥测、异常检测和容量规划等。真实的网络数据流由一系列数据包组成,每个数据包都有一个流标签(通常使用五元组作为网络流的标签:源ip地址、目的ip地址、源端口号、目的端口号和协议类型)。通常使用术语“流”来表示具有相同标签的数据包,“每流”通常是指网络流量中的单个数据流。流估计是流量测量中的一项关键任务。由于网络流量规模巨大、数据包传输速率高,并且网络设备的片上内存有限,保持流信息的准确记录是具有挑战性的。
2、sketch是一种紧凑的数据结构,它以极小的内存开销提供快速的近似查询,在准确性、速度和内存使用之间实现了良好的平衡,目前已成为流估计的主要解决方案。许多sketch已被提出并用于各种测量任务,包括每流大小估计、每流基数估计、持续流检测和突发流检测等。除了传统的流量测量任务外,研究人员最近对流量测量中的优先级区分表现出了兴趣。不同的网络应用具有不同的重要性,因此其网络流量需要不同的测量精度。例如,可疑的恶意流量应以比其他背景流量更精确的分辨率进行测量。此外,对于延迟敏感的应用,如实时视频流和直播流,也需要持续跟踪以适应实时速率。
3、鉴于上述目的,研究者提出了许多优先级敏感的sketch,比如mc-sketch、pa-sketch和cuckoo sketch。这些sketch可以针对不同优先级的流提供不同的测量精确度,其核心思想是将sketch分为高优先级部分和低优先级部分,分别保留高优先级和低优先级流。所有流先经过高优先级部分过滤,将高优先级流保存在高优先级部分,以获得差分测量精度。然而,对于现有的优先级敏感sketch来说,由于真实网络数据流中大部分流为低优先级流,大量低优先级流首先经过高优先级部分,最终存储在低优先级部分,这导致了巨大的哈希开销和内存访问开销,进而降低了吞吐量。mc-sketch和cuckoo sketch的吞吐量较低,主要受到这一因素的影响。尽管pa-sketch提出了优先级敏感哈希以降低低优先级流在高优先级部分的哈希开销,但这也导致高优先级部分无法尽可能多地将高优先级流存储在其中,从而限制了高优先级流的测量精确度。
技术实现思路
1、为此,本发明所要解决的技术问题在于克服现有技术中在优先级敏感的流大小测量过程中无法兼顾测量速度和低内存开销的问题,提出了一种紧凑的数据结构,能够在有限的内存空间下,迅速而准确地完成高速网络中的优先级敏感流大小测量任务。
2、为解决上述技术问题,本发明提供了一种高速网络中优先级敏感的每流大小测量方法,包括以下步骤:
3、s1:构建存储优先级敏感流的数据结构,所述数据结构包括用于存储和处理高优先级流的高优先级结构和用于存储和处理低优先级流的cs-sketch结构;
4、s2:根据到达流的流标签和优先级,先更新所述高优先级结构,基于对所述高优先级结构的更新结果来对所述cs-sketch结构进行更新,得到更新后的数据结构;
5、s3:对所述更新后的数据结构进行查询,得到流大小估计值。
6、在本发明的一个实施例中,所述高优先级结构包含m个桶,用ba[i]表示其中的第i个桶,每个桶包含n个单元格,用ba[i][j]表示第i个桶中的第j个单元格,每个单元格ba[i][j]用于存储到达的流的标签、优先级和统计流大小的计数器。
7、在本发明的一个实施例中,所述cs-sketch结构为d行w列的二维计数器数组,所述二维计数器数组与数量为2×d的哈希函数相关联,其中所述哈希函数包括d个第一哈希函数(h1,h2,…hd)和d个第二哈希函数(g1,g2,…gd),所述第一哈希函数(h1,h2,…hd)用于确定流 f映射到对应行计数器的列索引,所述第二哈希函数(g1,g2,…gd)用于确定对于映射到的计数器进行递增或递减操作。
8、在本发明的一个实施例中,所述更新后的数据结构的获取步骤包括:
9、s201:利用所述高优先级结构对流 f进行处理,设置剔除次数num=0和最大剔除次数maxkicktimes,提取到达的流中的流标签 f和优先级p,将到达的流记作流 f;
10、s202:基于流 f的优先级p,为流 f分配gen(p)个优先级敏感哈希函数,其中gen(p)= p + a,a为超参数;
11、s203:利用gen(p)个优先级敏感哈希函数进行多次哈希计算,得到gen(p)个候选桶;
12、s204:遍历所有候选桶,判断任一候选桶中是否已存储流 f:
13、若是,更新存储流 f的单元格计数器,并且对应单元格计数器的值加一;
14、否则,进入步骤s205;
15、s205:判断候选桶是否存在空单元格:
16、若候选桶存在空单元格,任选一个空单元格存储流 f;
17、若所有候选桶无空单元格,则在所有候选桶中搜索优先级最低的流,比较流 f和优先级最低的流的优先级大小:
18、若流 f的优先级小于或等于优先级最低的流的优先级,则将流 f记作目标流;
19、若流 f的优先级大于候选桶中的最低优先级,进入步骤s206;
20、s206:通过布谷鸟哈希函数将优先级最低的流从其所在的单元格剔除,每次剔除操作后,剔除次数num的值加一,将流 f存储在剔除后的空单元格中,将优先级最低的流作为新的流 f,提取优先级最低的流的流标签和优先级,计算优先级最低的流的候选桶,返回s205,直到剔除次数num达到最大剔除次数maxkicktimes,得到优先级最低的流作为目标流;
21、s207:将所述目标流插入所述cs-sketch结构中,更新所述cs-sketch结构。
22、在本发明的一个实施例中,所述更新所述cs-sketch结构的方法包括:
23、将流大小为c的当前流插入所述cs-sketch结构中时,先利用所述d个第一哈希函数对当前流进行d次哈希计算,得到d个第一哈希值,根据d个第一哈希值确定当前流对应每一行的计数器,利用所述d个第二哈希函数对当前流进行d次哈希计算,得到d个第二哈希值,根据第二哈希值gi(f)确定对于第i行的计数器进行递增或递减操作。
24、在本发明的一个实施例中,所述流大小估计值的获取方法为:
25、当查询优先级为p的流 f时,首先在所述高优先级结构进行p次哈希计算获得p个候选桶,然后检查流 f是否在这些候选桶中存储:
26、如果候选桶中已存储流 f,则获取匹配单元格的计数器字段,即流 f的流大小估计值;
27、如果候选桶中未存储流 f,说明流 f存储在所述cs-sketch结构中,先对进行d次哈希计算得到d个计数器,并且计算对应计数器的符号位得到d个估计值,取这d个估计值的中位数作为流 f的流大小估计值。
28、在本发明的一个实施例中,存储在所述高优先级结构的每个桶中的流按照优先级排序。
29、基于同一发明构思,本发明还提供了一种高速网络中优先级敏感的每流大小测量系统,所述系统用于实现所述的高速网络中优先级敏感的每流大小测量方法,具体包括以下模块:
30、数据结构构建模块,所述数据结构构建模块用于构建存储优先级敏感流的数据结构,所述数据结构包括用于存储和处理高优先级流的高优先级结构和用于存储和处理低优先级流的cs-sketch结构;
31、数据结构更新模块,所述数据结构更新模块用于根据到达流的流标签和优先级,先更新所述高优先级结构,基于对所述高优先级结构的更新结果来对所述cs-sketch结构进行更新,得到更新后的数据结构;
32、流大小估计值计算模块,所述流大小估计值计算模块用于对所述更新后的数据结构进行查询,得到流大小估计值。
33、本发明还提供了一种高速网络中优先级敏感的每流大小测量设备,该设备包括控制器和至少一个交换机;所述交换机连接所述控制器,所述交换机中部署至少一个测量节点,所述控制器接收网络流量测量任务并将其发送至所述交换机;所述交换机中的测量节点采集到达流的信息,采用所述的高速网络中优先级敏感的每流大小测量方法进行网络流量测量。
34、本发明还提供了一种计算机存储介质,所述计算机存储介质存储有计算机软件产品,所述计算机软件产品包括的若干指令,用以使得一台计算机设备执行所述的高速网络中优先级敏感的每流大小测量方法。
35、本发明的上述技术方案相比现有技术具有以下优点:
36、本发明将高优先级流和低优先级流分开存储,高优先级部分结合了优先级敏感哈希和布谷鸟哈希的特性,以确保低优先级流能够快速通过高优先级部分,并尽可能将高优先级流存储在高优先级部分。具体而言,优先级敏感哈希根据流的优先级分配相应的哈希函数,高优先级流被分配更多的哈希函数以计算更多的候选桶;布谷鸟哈希用于解决哈希冲突,通过踢出并重新选择候选桶的方式,最大限度地将高优先级流存储在高优先级部分。低优先级部分采用cs-sketch结构,提高了对大规模低优先级流的测量精度。
本文地址:https://www.jishuxx.com/zhuanli/20240801/244564.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。