一种基于草图的流量高峰周期检测方法及平台
- 国知局
- 2024-08-02 14:32:13
本发明涉及软件定义网络监测领域,尤其涉及一种可部署于软件定义网络数据面的基于草图的流量高峰周期检测方法及平台。
背景技术:
1、异常相关流量检测对于网络管理技术而言不可或缺,例如网络拥塞检测、攻击检测等,而软件定义网络通过虚拟化等技术,使单一网络设备可以被多租户共享,提升资源使用效率。但是与此同时,单个租户出现异常,其负面影响也将被共享,甚至将造成大规模网络性能下降。所以,在软件定义网络中更需要及时检测异常相关流量。其中多种重要异常相关流量存在流量高峰周期性特征,比如:慢速拒绝服务攻击,攻击者定时发送tcp数据包以保持和被攻击服务器之间的连接,可能导致服务宕机,影响sdn网络服务的正常供应;可疑应用键盘记录器,在计算机上监视用户的活动,并周期性将监控到的用户活动传输给攻击者,可能造成租户数据泄露等;视频流传输,视频流传输的高峰周期受到网络性能的影响,其周期大小可预示网络中带宽等性能表现,从而帮助分析是否存在拥塞等异常相关情况。因此,检测具有流量高峰周期性的流量对网络管理和防止网络性能下降有重要意义。
2、在软件定义网络中进行流量检测需要适应其流量动态变化和检测资源有限的挑战,具体地存在四个方面的难点,第一,流量干扰常常存在波动,这种波动会影响流量检测的精度,增加检测的难度。第二,流量的特征会随着时间的推移而发生变化,如果不及时更新流量检测特征,就会影响检测的精度。第三,网络中的流量速度很快,检测方法的处理时间要求很高。综合考虑,软件定义网络流量高峰周期检测算法更适合部署在数据面。因为如果将其部署在控制面,必须考虑数据在控制面与数据面之间传输的延迟。该时延较大,有时可达分钟级,这对于网络运维来说是不可接受的。第四,由于软件定义网络的规模广大,流量的体量也很大,而计算和存储资源受到限制,影响检测的精度。
3、综上所述,在软件定义网络设计一个低开销、适应流量动态变化并可直接部署于数据面的流量高峰周期检测算法难度较大。
技术实现思路
1、本发明的目的是针对现有技术的不足,设计一套可部署在软件定义网络数据面的轻量级、直接获取存在高峰周期特征的流量的键值的检测方法及平台,供各种网络管理技术使用,包括异常检测、攻击检测、网络调度等。
2、本发明的目的是通过以下技术方案实现的:
3、本发明一方面提供一种基于草图的流量高峰周期检测方法,包括以下步骤:
4、s1:设置时间窗长度,根据数据包到达时间,计算数据包所属的时间窗序号作为时间窗序列信息;
5、构建草图结构,所述草图结构为一张由d个长度相同的哈希表组成的表格,d个哈希表对应的哈希函数各自独立,每个哈希表具有1行w列存储空间,每个存储空间包含两部分,分别存储时间窗序列信息和流量频率信息;
6、根据数据包所属流量的键值信息,找到其在草图中的位置即d个哈希表的具体列作为目标位置,更新目标位置的信息,具体为:
7、将数据包所属流量的键值信息分别输入d个哈希函数,每个哈希函数的输出结果作为其列位置索引;
8、当有新数据包到达时,找到d个目标位置存储空间,若该d个存储空间记录的时间窗序列均与当前时间窗序列相同,对应存储空间中记录的流量频率加1;
9、若找到的d个目标位置存储空间中,存在记录的时间窗序列小于当前时间窗序列的存储空间,则每个找到的存储空间中的流量频率均减去d个存储空间中流量频率的最小值s,并输出流量频率s及其对应的时间窗序列t;
10、s2:构建新的哈希表hnew,其具有4行u列存储空间,第一行中每个存储空间存储键值信息,第二行中每个存储空间包含两部分,分别存储时间窗序列信息和流量频率信息;
11、使用哈希表hnew的第二行记录每次更新的流量频率si和对应的时间窗序列ti,数据包所属流量在与本次更新对应的时间窗相邻的上一时间窗的时间窗序列为t-1,将本次更新的时间窗序列t与ti进行比较,若t>ti+1,则记t-1对应的时间窗内数据包所属流量的流量频率st-1为0,否则,记为si;将本次更新的时间窗序列t对应的流量频率s和相邻的上一时间窗对应的流量频率st-1进行比较,若st-1+f≤s,则判断当前数据包所属流量达到流量高峰,其中f为流量频率阈值,输出时间窗序列t作为高峰时间窗序列tk;
12、s3:哈希表hnew的第三行中每个存储空间包含两个部分,分别存储2个最近的高峰时间窗序列,记为tk-1和tk-2,和n个最近的高峰时间窗序列间隔ti-n,ti-n+1,…,ti-1;
13、若当前高峰时间窗序列与上一次高峰时间窗序列连续,即tk-1+1=t,则更新tk-1为t,并结束本次数据包的检测处理;若当前高峰时间窗序列与上一次高峰时间窗序列不连续,则计算高峰时间窗序列间隔ti=tk-1-tk-2,并更新tk-2为tk-1,更新tk-1为t;
14、基于n个最近的高峰时间窗序列间隔的均值m和标准差x,判断ti是否在区间[m-x,m+x]内,若是,则认为该数据包所属流量可能存在高峰周期性,并更新n个最近的高峰时间窗序列间隔,即使用本次计算的高峰时间窗序列间隔ti覆盖n个最近的高峰时间窗序列间隔中最旧的高峰时间窗序列间隔ti-n;
15、s4:哈希表hnew的第四行中每个存储空间包含两个部分,分别存储正投票vp和负投票vn;若在s3中判断该数据包所属流量可能存在高峰周期性,统计vp加1,否则vn加1,若比值vp/vn超过分数阈值tp,则判断当前数据包所属的流量为周期性流量,输出对应流量的键值和周期。
16、进一步地,s1输出的流量频率s为d个存储空间中最小的时间窗序列t对应的流量频率,即在时间窗序列对应的时间窗内流量键值信息相同的数据包的到达次数。
17、进一步地,s2中,根据实际应用场景设置生命周期时间,若哈希表hnew中上一次更新时间过旧,即t-ti大于时间阈值c,则清除对应的流量信息。
18、进一步地,s4中,流量的高峰周期为n个最近的高峰时间窗序列间隔均值m与时间窗长度的乘积。
19、本发明另一方面提供一种基于草图的流量高峰周期检测平台,包括:
20、频率存储模块:根据数据包到达时间计算数据包所属的时间窗序号作为时间窗序列信息;构建草图结构,所述草图结构为一张由d个长度相同的哈希表组成的表格,每个哈希表具有1行w列存储空间,每个存储空间包含两部分,分别存储时间窗序列信息和流量频率信息;根据数据包所属流量的键值信息,找到其在草图中的位置作为目标位置,更新目标位置信息;
21、高峰筛选模块:构建新的哈希表,其具有4行u列存储空间,第一行中每个存储空间存储键值信息,第二行中每个存储空间存储时间窗序列信息和流量频率信息,第三行中每个存储空间存储2个最近的高峰时间窗序列和n个最近的高峰时间窗序列间隔,第四行中每个存储空间存储正投票和负投票;将本次更新的时间窗序列对应的流量频率和相邻的上一时间窗对应的流量频率进行比较,判断当前数据包所属流量是否达到流量高峰,若是,则传入周期判断模块;
22、周期判断模块:排除暂时的高峰干扰后,基于n个最近的高峰时间窗序列间隔的均值和标准差与正投票和负投票,判断数据包所属流量是否存在高峰周期性,若是,则标记该流量,输出流量键值和周期信息。
23、进一步地,该平台可以部署于各种形式的网络转发平台,包括cpu转发平台、nfv转发平台、asic转发平台、smartnic转发平台。
24、本发明与现有技术相比,具有如下的优点:
25、第一,通过草图结构,本方法可以使用较低存储开销就完成软件定义网络海量流量数据的存储;
26、第二,通过记录上一次更新的时间窗序列,无需在每个时间窗结束后遍历更新草图中所有的存储空间,大幅降低检测需要的时间开销,提高检测速度,同时及时清理过旧的流量信息,提高检测精度并节省存储资源;
27、第三,通过利用均值和标准差辅助周期判断,避免周期小波动影响周期性判断;
28、第四,通过更新记录的高峰时间窗序列间隔结合投票机制,适应流量周期动态变化。
本文地址:https://www.jishuxx.com/zhuanli/20240801/243074.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。