一种低开销的软件定义网络大流实时检测方法和系统与流程
- 国知局
- 2024-09-14 15:05:27
本发明涉及网络流量测量领域,具体地涉及一种低开销的软件定义网络大流实时检测方法和系统。
背景技术:
1、软件定义网络(简称sdn)将传统路由器中的控制平面和数据平面分离,通过集中式的控制平面实现网络的控制。在sdn中,流表是控制数据平面转发行为的关键组件,用于存储转发规则和指导数据包的转发。sdn中的控制平面是由一个sdn控制器组成,会定期根据全网的流量信息为数据平面的每个节点计算出最优的流表规则,以更新或修改节点现有的转发规则。为了实现诸如负载均衡等优化目标,sdn控制器在计算新的流表规则时了解网络中每条流的大小信息,即每条网络流中包含了多少个数据包。一般来说,流大小信息可以通过查询数据平面节点流表项中的数据包计数字段得到。为了匹配网络流速,流表通常配置在数据平面节点的三态内容寻址存储器(tcam)上。然而,tcam受工艺和造价等因素影响规模极度受限,一般只有4k左右,这就使得每个数据平面节点上所能支持的流表大小也是受限的,一般只有1k左右,无法为每条网络流单独分配一个流表项。换句话说,仅有部分大流能单独分配到一个流表项并实现对流大小的精确计数,剩余流的流大小信息需要采用其它技术获得。
2、针对sdn流表项受限无法直接记录下所有流的流大小问题,已有部分研究为流量测量功能专门开辟了一块存储空间,利用紧凑数据结构记录流的大小信息或实时筛选大流,从而及时发现新出现的大流,为下一轮的流表更新提供依据。然而,现有技术主要解决了如何利用紧凑数据结构,即sketch技术,测量未记录在流表项中的网络流量,以及如何为每条流选择合适的测量节点以减少冗余测量等问题,仍存在着测量时存储、计算开销大等问题。实际上,sdn中的流量测量主要目的是要根据流表规模的限制找到潜在的能够单独被分配到流表项的部分大流即可。而现有的大多数研究在流量测量时并未区分当前流是否分配到流表项,直接将所有流量直接记录到所设计紧凑数据结构中,既浪费了存储空间,也给后续的测量带来了额外的计算开销。此外,sdn流表中还存在着通配符流表项,即一个流表项可以同时匹配多条流,现有技术在测量时并进利用sketch中所记录的流量信息来检测大流,并未考虑如何利用通配符流表项中所记录的流量信息进一步来提高大流检测的精度,使得现有的检测技术存在着开销大、精度较低等问题。
技术实现思路
1、本发明实施例的目的是提供一种低开销的软件定义网络大流实时检测方法和系统,该方法可以实现低开销的sdn大流高精度实时检测。
2、为了实现上述目的,本发明实施例提供一种低开销的软件定义网络大流实时检测方法,包括:
3、获取需要被转发的数据包和对应的流;
4、根据被转发的所述数据包对应的流在流表下的匹配结果决定统计信息的存储位置;
5、对存储的所述数据包的信息进行流大小信息编码,并实时发现满足检测特征的大流:
6、对被检测到的满足特征的所述大流进行信息收集;
7、对收集到的所述大流进行估计。
8、可选的,所述根据被转发的所述数据包对应的流在流表下的匹配结果决定统计信息的存储位置包括:
9、获取当前要被转发的数据包对应的流;
10、判断所述数据包对应的流是否受流表项管理;
11、在所述数据包对应的流受流表项管理时,将所述数据包对应和流和对应的流表项匹配;
12、判断匹配的所述流表项是否存在通配符;
13、在所述流表项不存在通配符时,在所述流表项的计数器字段记录更新关于匹配的流的统计信息;
14、在所述流表项存在通配符时,在对应流表项的计数器字段和部署于片上存储的数据结构两处进行编码记录;
15、在所述数据包对应的流不受流表项管理时,通过部署于片上存储的紧凑数据结构进行编码记录。
16、可选的,所述对存储的所述数据包的信息进行流大小信息编码,并实时发现满足检测特征的大流包括:
17、对一个行列的计数器数组的计数器的值进行初始化,并初始化变量r=-1,其中r表示计数器数组的行;
18、判断是否有新的数据包到达;
19、在有新的所述数据包到达的情况下,根据公式(1)更新r:
20、
21、根据更新的所述变量的值确定记录当前的所述数据包的计数器所在的行;
22、以所述数据包的流标签作为输入,根据公式(2)更新计数器的值:
23、
24、其中,为哈希函数,表示将数据包映射到计数器数组的第r行的任意一个计数器内,为哈希函数,表示随机地选择数据包所属的流在数组第r行内是否正向计数,f为数据包的流标签,表示计数器数组的第r行的值;
25、判断更新后的所述计数器的数值是否已经超过预设流标签收集阈值;
26、在更新后的所述计数器的数值超过所述预设流标签收集阈值时,表明对应的数据包的流的大小超过所述预设流标签收集阈值,将所述数据包传至流标签收集部分;
27、在更新后得到所述计数器的数值没有超过所述预设流标签收集阈值时,初始化所述计数器并返回判断是否有新的数据包到达的步骤。
28、可选的,所述对被检测到的满足特征的所述大流进行信息收集包括:
29、将一个包含了比特位的寄存器数组内的所有比特位的值均初始化为0;
30、获取超过所述预设流标签收集阈值所述数据包;
31、根据给定的个哈希函数获得与所述数据包的流标签f存在映射关系的个比特位其中,表示将数据包映射到寄存器数组的任意个比特位;
32、判断所述个比特位是否都被值位为1;
33、在所述个比特位不是都被值位为1的情况下,将和所述数据包对应的流标签传至片下存储进行记录,并将与所述流标签存映射关系的所有比特位都置位为1。
34、可选的,所述对收集到的所述大流进行估计包括:
35、通过片下存储的记录到的流标签还原各条流在流表项中的共享关系及紧凑数据结构内的哈希映射关系;
36、以最小化存在哈希冲突中的流大小之和与sketch/流表项内计数器数值间的误差作为梯度下降方法的优化目标,以实现对收集到的大流的高精度估值。
37、可选的,所述通过片下存储的记录到的流标签还原各条流在流表项中的共享关系及紧凑数据结构内的哈希映射关系包括:
38、将所有的相关变量的值均初始化为空值;
39、遍历获取到的所有流标签信息以得到流标签集合f′={f1,f2,f3,…};
40、判断所述流标签集合中的流标签是否在流表项中存在能够匹配的匹配域;
41、在所述流标签在所述流表项中存在能够匹配的匹配域时,将所述流标签的信息更新到变量fε,j中,其中,变量fε,j表示受某个通配符流表项εw,j管理的所有流;
42、根据给定的个哈希函数确定与流存在映射关系的紧凑数据结构中的个计数器
43、将流标签的信息更新进对应的变量中。
44、可选的,所述以最小化存在哈希冲突中的流大小之和与sketch/流表项内计数器数值间的误差作为梯度下降方法的优化目标,以实现对收集到的大流的高精度估值包括:
45、根据所得的流与所述流表项的共享关系和流与紧凑数据结构的计数器的哈希映射关系,将流大小的估计值带入存在关系的流表项和紧凑数据结构的计数器中,得到所述计数器的估计记录值,所述估计记录值为或其中,为所得的流的大小的估计值,fc,j,k表示被映射到sketch中的计数器c[j][k]的所有流;
46、根据公式(3)构建所述计数器估计值与实际记录值之间的误差最小化模型:
47、
48、其中,为计数器估计值与实际记录值之间的误差,为根据流标签确定值为1或者-1的哈希函数,εw表示总的通配符流表项;
49、以作为损失函数,根据公式(4)计算任意流的梯度:
50、
51、其中,表示流的梯度,fε表示受总的通配符流表项管理的所有的流,f′表示中记录的任意流标签,表示流标签f′对应的流的大小估计值,表示流标签f′对应的流在计数器数组第j行的计数方向,表示流标签f对应的流在计数器数组第j行被映射到的计数器,表示流标签f对应的流在计数器数组第j行的计数方向;
52、通过随机梯度下降的方法迭代更新所有流的大小的估计值,直至损失函数的值收敛。
53、另一方面,本发明还提供一种低开销的软件定义网络大流实时检测系统,所述系统包括:
54、流大小信息差异化记录部分,用于根据被转发的所述数据包对应的流在流表下的匹配结果决定统计信息的存储位置;
55、实时编码部分,用于对存储的所述数据包的信息进行流大小信息编码,并实时发现满足检测特征的大流;
56、流标签收集部分,用于对被检测到的满足特征的所述大流进行信息收集;
57、流大小估计部分,用于对收集到的所述大流进行估计。
58、通过上述技术方案,本发明提供的一种低开销的软件定义网络大流实时检测方法和系统通过获取需要被转发的数据包和对应的流,根据该被转发的数据包和对应的流在流表下的匹配结果决定该数据包的统计信息的存储位置。在存储后,可以对存储的数据包的信息进行流大小信息编码,并且可以实时发现满足检测特征的大流。在检测到满足特征的流后,可以对被检测到的流进行信息收集,然后可以对收集到的流进行估计。该方法可以实现低开销的sdn大流高精度实时检测。
59、本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
本文地址:https://www.jishuxx.com/zhuanli/20240914/296921.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表