基于可编程交换机的网络微突发流检测方法及相关设备技术

技术编号:38502291 阅读:15 留言:0更新日期:2023-08-15 17:09
本发明专利技术公开了基于可编程交换机的网络微突发流检测方法及相关设备,属于网络安全领域,包括:在数据包进入可编程交换机后,从包头提取出队列时的队列深度,若大于预设阈值,则判定其为微突发流数据包;利用BF和IBLT存储微突发流数据包中携带的流信息,BF和IBLT等长且初始值均为0;IBLT中,各槽位存储的信息包括:对应流的流id异或值、流计数以及包计数;按原始转发路径转发进入交换机的各数据包;每经过预设的时间间隔后,选取指定数量的数据包进行镜像,将当前IBLT中的内容嵌入镜像所得数据包的包头后,将这些数据包包头传输至控制平面。本发明专利技术能够在不影响可编程交换机的转发性能的情况下,实现网络微突发流的检测并提供微突发流信息。发流信息。发流信息。

【技术实现步骤摘要】
基于可编程交换机的网络微突发流检测方法及相关设备


[0001]本专利技术属于网络安全领域,更具体地,涉及基于可编程交换机的网络微突发流检测方法及相关设备。

技术介绍

[0002]近年来,随着数据中心的网络规模显著扩大,各种应用和服务都迁移至云环境,在数据中心网络带宽大幅增加和应用程序愈加复杂的环境下,确保网络高可用性和满足不同应用的服务级别协议(SLA,Service Level Agreement)具备高挑战性。SLA 中除去可用网络带宽,网络延迟也是影响用户体验的关键因素,例如实时会议视频流偶然经历的高延迟会导致画面时断时续;在金融领域的高频交易(HFT,High Frequency Trading)中,网络延迟会显著地影响交易的公平性,进而造成经济损失。据报道,HFT 中每 1ms 的延迟差距就会带来每年 1 亿美元的利润差异。
[0003]高速网络中端到端时延极低(<1ms),导致持续时间极短的网络拥塞也会产生高网络延迟,严重延长流完成时间(Flow Completed Time,FCT),对网络性能产生影响。先前的工作将间歇发生的时间尺度极短的网络拥塞事件称为微突发(MicroBurst),然而微突发极小的时间尺度使传统网络中粗粒度网管系统无法检测到微突发事件发生,一些现有的商业解决方案能够检测到微突发,但无法提供微突发流信息。在基于OpenFlow的软件定义网络(Software Define Network,SDN)环境中,通过控制器以最快速度轮询OpenFlow交换机内各类计数器进行检测,但只能统计微突发发生的轮询时间段。斯坦福大学教授 NickMcKeown于2014年设计并提出了协议无关报文处理语言(Programming Protocolindependent Packet Processors,P4),工业界跟进研制了一系列可编程交换机。主要包含 Barefoot Tofino,CaviumXPliant以及NetronomeNICs等。以P4交换机为代表的可编程交换机可向数据包暴露设备内部性能数据(如报文排队时延等),为细粒度检测微突发提供了技术基础。
[0004]经过调研发现,目前针对于微突发流的测量主要分为两大类,一类是在传统交换机上使用轮询计数器的方法进行检测,但是这种方法由于检测的粒度粗,从而无法检测到微突发的产生;另外一类是基于可编程交换机的方法,但是这种方法需要传输所有的微突发流数据包进行微突发流信息的获取,所占用的带宽开销较大,会严重影响可编程交换机的转发性能。

技术实现思路

[0005]针对现有技术的缺陷和改进需求,本专利技术提供了基于可编程交换机的网络微突发流检测方法及相关设备,其目的在于,在不影响可编程交换机的转发性能的情况下,实现网络微突发流的检测并提供微突发流信息。
[0006]为实现上述目的,按照本专利技术的一个方面,提供了一种基于可编程交换机的网络微突发流检测方法,包括在可编程交换机的数据平面执行的以下步骤:
微突发流检测步骤:在数据包进入可编程交换机后,从其包头中提取数据包出队列时的队列深度,若大于预设的第一拥塞阈值,则判定其为微突发流数据包;微突发流存储步骤:利用布隆过滤器和可逆布隆查找表存储微突发流数据包中携带的流信息;布隆过滤器和可逆布隆查找表长度相等,且初始值均为0;可逆布隆查找表中,各槽位存储的信息包括:对应的流的流id异或值、流计数以及包计数;对于任意一个微突发流数据包P,其所携带的流F信息的存储方式包括:利用布隆过滤器判断流F的信息是否已经存储,若是,则确定可逆布隆查找表中与流F对应的槽位,并更新这些槽位中的包计数;否则,确定可逆布隆查找表中与流F对应的槽位,更新这些槽位的流id异或值、流计数和包计数,并将布隆过滤器中与流F对应的槽位置为1;以及微突发流传输步骤:按照原始转发路径转发进入可编程交换机的各数据包;每经过预设的时间间隔后,选取指定数量的数据包进行镜像,得到自定义数据包,将当前可逆布隆查找表中的内容嵌入自定义数据包的包头后,将自定义数据包包头传输至可编程交换机的控制平面。
[0007]进一步地,微突发流存储步骤中,对于任意一个微突发流数据包P,其所携带的流F信息的存储方式包括如下子步骤:(S1)对流F的id进行散列,得到布隆过滤器中与流F对应的槽位,若各槽位均不为0,则判定流F的信息已经存储,并转入步骤(S4);否则,转入步骤(S2);(S2)将布隆过滤器中与流F对应的槽位置为1;(S3)根据流F的id的散列结果,确定可逆布隆查找表中与流F对应的槽位,对于每一个槽位,按照如下方式进行更新后转入步骤(S5):将槽位内的流id异或值更新为原流id异或值与流F的id进行异或运算后的结果;将槽位内的流计数加1;将槽位内的包计数加1;(S4)根据所述流F的id的散列结果,确定可逆布隆查找表中与流F对应的槽位,对于每一个槽位,按照如下方式进行更新后转入步骤(S5)将槽位内的包计数加1;(S5)微突发流数据包P所携带的流F的信息存储结束。
[0008]进一步地,微突发流传输步骤中,将当前可逆布隆查找表中的内容嵌入自定义数据包的包头,包括:创建遥测头;遥测头包括:自定义数据包原始的协议号,自定义数据包出队列时的队列深度,IBLT位图,以及IBLT数据;将自定义数据包中原始的协议号替换为自定义协议号,剔除载荷数据,并将遥测头插入自定义数据包的包头;将可逆布隆查找表中各槽位清零;其中,IBLT位图用于标识可逆布隆查找表中非零槽位的位置,IBLT数据用于记录可逆布隆查找表中非零槽位的内容以及最后一个槽位的内容;自定义协议号用于指示该自定义数据包为携带有微突发流信息的数据包。
[0009]进一步地,本专利技术提供的基于可编程交换机的网络微突发流检测方法,还包括:在
可编程交换机的控制平面执行的解码步骤,用于从来自数据平面的自定义数据包中解码出微突发流信息;对于任意一个自定义数据包P',其解码过程包括如下子步骤:(T1)从自定义数据包P'中解析得到IBLT位图和IBLT数据后,重建得到可逆布隆查找表IBLT';(T2)获取可逆布隆查找表IBLT'中流计数为1的槽位,遍历这些槽位,对于遍历到的每一个槽位,提取其中的流id异或值,作为一个微突发流F'的流id,记为id
F'
,并提取当前槽位内的包计数,得到微突发流F'所包含的包数量C
F'
,对微突发流F'的id进行散列,得到微突发流F'对应的槽位,将各槽位内的流id异或值与id
F'
进行异或,并将槽位内的流计数减去1、包计数减去C
F'
;(T3)重复执行步骤(T2),直至可逆布隆查找表IBLT'中不存在流计数为1的槽位,自定义数据包P'的解码过程结束。
[0010]进一步地,微突发流检测步骤还包括:对于微突发流数据包,根据其出队列时的队列深度对数据包的拥塞程度进行等级划分;并且,微突发流存储步骤中,针对每一个拥塞等级,分别创建对应的布隆过滤器和可逆布隆查找表,用于存储对应拥塞等级的微突发流数据包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可编程交换机的网络微突发流检测方法,其特征在于,包括在所述可编程交换机的数据平面执行的以下步骤:微突发流检测步骤:在数据包进入可编程交换机后,从其包头中提取数据包出队列时的队列深度,若大于预设的第一拥塞阈值,则判定其为微突发流数据包;微突发流存储步骤:利用布隆过滤器和可逆布隆查找表存储微突发流数据包中携带的流信息;所述布隆过滤器和所述可逆布隆查找表长度相等,且初始值均为0;所述可逆布隆查找表中,各槽位存储的信息包括:对应的流的流id异或值、流计数以及包计数;对于任意一个微突发流数据包P,其所携带的流F信息的存储方式包括:利用布隆过滤器判断流F的信息是否已经存储,若是,则确定可逆布隆查找表中与流F对应的槽位,并更新这些槽位中的包计数;否则,确定可逆布隆查找表中与流F对应的槽位,更新这些槽位的流id异或值、流计数和包计数,并将所述布隆过滤器中与流F对应的槽位置为1;以及微突发流传输步骤:按照原始转发路径转发进入可编程交换机的各数据包;每经过预设的时间间隔后,选取指定数量的数据包进行镜像,得到自定义数据包,将当前所述可逆布隆查找表中的内容嵌入自定义数据包的包头后,将自定义数据包包头传输至所述可编程交换机的控制平面。2.如权利要求1所述的基于可编程交换机的网络微突发流检测方法,其特征在于,所述微突发流存储步骤中,对于任意一个微突发流数据包P,其所携带的流F信息的存储方式包括如下子步骤:(S1)对所述流F的id进行散列,得到所述布隆过滤器中与所述流F对应的槽位,若各槽位均不为0,则判定所述流F的信息已经存储,并转入步骤(S4);否则,转入步骤(S2);(S2)将所述布隆过滤器中与所述流F对应的槽位置为1;(S3)根据所述流F的id的散列结果,确定可逆布隆查找表中与流F对应的槽位,对于每一个槽位,按照如下方式进行更新后转入步骤(S5):将槽位内的流id异或值更新为原流id异或值与流F的id进行异或运算后的结果;将槽位内的流计数加1;将槽位内的包计数加1;(S4)根据所述流F的id的散列结果,确定可逆布隆查找表中与流F对应的槽位,对于每一个槽位,按照如下方式进行更新后转入步骤(S5):将槽位内的包计数加1;(S5)所述微突发流数据包P所携带的流F的信息存储结束。3.如权利要求2所述的基于可编程交换机的网络微突发流检测方法,其特征在于,所述微突发流传输步骤中,将当前所述可逆布隆查找表中的内容嵌入自定义数据包的包头,包括:创建遥测头;所述遥测头包括:自定义数据包原始的协议号,自定义数据包出队列时的队列深度,IBLT位图,以及IBLT数据;将自定义数据包中原始的协议号替换为自定义协议号,剔除载荷数据,并将所述遥测头插入自定义数据包的包头;将所述可逆布隆查找表中各槽位清零;
其中,所述IB...

【专利技术属性】
技术研发人员:于俊清王佳宇李冬谢一丁高源
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1