一种基于三层Sketch架构的大象流检测方法技术

技术编号:21308581 阅读:22 留言:0更新日期:2019-06-12 10:49
一种基于三层Sketch架构的大象流检测方法,属于计算机网络技术领域。本发明专利技术首先获取网络流量数据,然后对获取的实时或离线的网络流量数据进行解析,将解析得到的网络流量数据的五元组信息作为Sketch的输入。接着设计了一种三层Sketch架构,通过哈希操作和特定的置换方法,对输入的网络信息进行统计和测量。最后根据查询三层Sketch架构而得到测量结果,并将结果与预设的大象流阈值进行比较,从而实现大象流的检测任务。本发明专利技术对已有的大象流检测方法进行创新,其优势在于不增加内存消耗的情况下可以大大提高大象流检测的准确度。

An Elephant Flow Detection Method Based on Three-tier Sketch Architecture

An elephant flow detection method based on three-tier Sketch architecture belongs to the field of computer network technology. The invention first obtains network traffic data, then parses the acquired real-time or offline network traffic data, and takes the five-tuple information of the parsed network traffic data as Sketch input. Secondly, a three-tier Sketch architecture is designed. The input network information is counted and measured by hashing operation and specific replacement method. Finally, the measurement results are obtained by querying the three-tier Sketch architecture, and the results are compared with the preset elephant flow threshold, so as to realize the elephant flow detection task. The invention innovates the existing elephant flow detection method, and has the advantage that the accuracy of elephant flow detection can be greatly improved without increasing memory consumption.

【技术实现步骤摘要】
一种基于三层Sketch架构的大象流检测方法
本专利技术属于计算机网络
,更具体地说,涉及一种基于三层Sketch架构的大象流检测方法。
技术介绍
如今,互联网已经成为人们日常生活中不可或缺的一部分,互联网流量增长速度飞快,截至2018年,每年全球的互联网流量已达到了1.6ZB。随着网络流量的飞速增长,对网络进行有效管理变得愈发困难,其根本原因是我们无法全面的了解网络行为。因此,网络测量作为监控、认知和掌握网络行为的重要方式,引起了研究人员的广泛关注,使得网络测量成为近几年的研究热点。在网络测量所包含的众多技术中,大象流检测属于一项关键性技术,在拥塞控制、网络容量规划、网络异常检测、故障排除和流量工程等方面有着广泛的应用。所谓大象流一般是指流大小超过给定阈值的流,或者是在测量间隔中占总网络流量百分比达到特定值的流。例如,DDos攻击之类的大规模网络异常事件往往可被视为大象流,有效的大象流检测方法便有助于网络异常的及时发现。传统的大象流检测方法大多是基于数据包采样的。但是,数据包采样会丢失一些信息,导致大象流检测的准确度不高。一些研究表明,数据包采样不足以进行细粒度测量。最近,基于Sketch的数据流统计算法被广泛应用于网络测量,如流大小估算,大象流检测和流数量估算等。广泛使用Sketch的关键原因是,与采样方法相比Sketch具有更高的准确度。虽然研究人员已经在Sketch方法方面做出了重大贡献,但是现有方法在实际大象流检测中依然不能有效地工作。因为当网络出现DDoS攻击,网络拥塞和扫描等问题时,现有Sketch方法的准确性会随着流量的变化而产生波动,从而显著降低大象流检测性能。最新提出的ElasticSketch虽然可以适应当前的流量变化,但是该方法在内存消耗和检测准确度方面仍有提升的空间。ElasticSketch中包含heavy和light两部分,其中heavy部分存有数据包的流ID,可以准确记录流的数据包数量;light部分不记录数据包的流ID,只能粗略估计流的数据包数量。进入的数据包先通过哈希操作将信息存到heavy中,发生哈希碰撞时,根据一定的计算会将某个流从heavy部分移除,然后通过哈希操作并使用CMSketch的增量操作方式将移除的流存到light中。若有过多的流(尤其是大流)从heavy中移除,并通过哈希操作存到light中,就会使大象流检测变得不准确。而想要提高ElasticSketch的准确度,则需要增加内存。但是大象流检测一般是依附于交换机、路由器等网络设备,这些网络设备上的内存是极为珍贵的资源,如果采用这种增大内存的方法来提高准确度会导致内存不足,进而影响原网络设备的功能。综上,现有大象流检测方法仍有很大的改善空间,为此,本专利技术在ElasticSketch方法基础上进行了创新,设计一种基于三层Sketch架构的大象流检测方法,可以在不需要增加内存的情况下提高大象流检测的准确度。
技术实现思路
为了克服上述不足,本专利技术提出了一种基于三层Sketch架构的大象流检测方法,目的是在不增加内存消耗的情况下提高大象流检测的准确度。为此,首先我们设计了缓冲层,缓冲层可以准确地记录流的数据包数量,同时能够很大程度地避免heavy将大流移除后存到light中,并减少访问不能准确测量的light的次数,以此来降低网络测量的误差。然后,我们提出由heavy部分,缓冲层和light部分构成的一种基于三层Sketch架构的大象流检测方法,实现在不增加内存使用的情况下提高网络测量和大象流检测的准确度。图1显示的是本专利技术的整体流程图。为了达到上述目的,本专利技术的技术方案:一种基于三层Sketch架构的大象流检测方法,步骤如下:步骤一、网络流量数据采集:采集实时或离线的网络流量数据;网络流量数据包括计算机网络中数据流的特性和变化情况;步骤二、网络数据解析:对步骤一采集的实时或离线的网络流量数据进行解析,将解析后的网络流量数据的数据包头部信息作为sketch的输入;步骤三、Sketch构建:构建三层Sketch架构,包括heavy部分、缓冲层和light部分;通过哈希操作和置换方法,对步骤二解析后的网络流量数据进行统计和测量;步骤四、大象流检测:根据查询步骤三得到的测量结果,实现大象流的检测。所述步骤一中,网络流量数据采集的方法包括Tstat、WireShark。所述步骤二中,解析方法包括:QPA、NetFlow;所述的网络流量数据的数据包头部信息为五元组,其格式为:源IP地址、源端口号、目的IP地址、目的端口号和协议。所述步骤三中:(1)heavy部分heavy部分与哈希函数h(.)相关联的哈希表,heavy部分中的每个桶记录的流的信息为:流ID,vote+,vote-和标志;其中:vote+记录了属于此流的数据包数量;vote-记录了经过哈希函数h(.)匹配到这个桶的其他流的数据包的数量;标志指示了heavy部分是否曾经移除过这个流的一部分数据包;插入过程:给定一个流ID为f的传入数据包,将其哈希到桶H[h(f)%B],其中,h(f)表示哈希函数h(.)对f进行计算得到的哈希值;%表示取余运算;B表示heavy部分中的桶数量;当f匹配f1时,则增加vote+;否则,增加vote-,并根据vote+和vote-的值决定是否驱逐f1;f1表示heavy部分的桶中原来记录的流的ID;插入过程具体包括四种情况:情况1:桶是空的;将(f,1,F,0)插入其中,其中F表示桶中没有流被移除;插入结束;情况2:f=f1;只将vote+增加1;情况3:f不等于f1;vote-加1后,当vote-<λ*vote+时,将(f,1)移除,准备插入缓冲层中;其中,λ是预定义的阈值;情况4:f不等于f1;vote-加1后,当vote->=λ*vote+时,将流f1移除,准备插入缓冲层中;并将桶设置为(f,1,T,1)来记录流f的信息;T表示该桶中的流被移除过;因此在该情况下,标志被设置为T;(2)缓冲层缓冲层是一个线性哈希表,与哈希函数p(.)相关联;缓冲层中的每个桶记录每个流的流ID和该流的数据包数量count;插入过程:对于从heavy部分收到将要传入的流ID为f的数据包以及数据包数量val;缓冲层首先要提取数据包的流ID,再将其哈希到桶B[p(f)%num],其中,p(f)表示哈希函数p(.)对f进行计算得到的哈希值;%表示取余运算;num表示缓冲层中的桶数量;具体来说,有三种情况:情况1:桶是空的;将(f,val)插入这个桶,插入结束;情况2:f=f8;则将count增加val;情况3:f不等于f8;则将(f8,count)从缓冲层移除,准备插入light;然后将(f,val)记录到这个桶;该情况分为两种策略:第一种策略:判断从缓冲层移除的流f8在heavy部分的标志,当被标记为T,则选择light部分的插入方式一;当被标记为F,则选择light部分的插入方式二;第二种策略:除了要判断流f8在heavy部分的标志之外,还需要判断流f8的大小count是否大于预设的阈值,当count大于预设的阈值同时流f8被标记为F,则选择light部分的插入方式二;否则,将流f8以插入方式一插入light;(3)l本文档来自技高网
...

【技术保护点】
1.一种基于三层Sketch架构的大象流检测方法,其特征在于,步骤如下:步骤一、网络流量数据采集:采集实时或离线的网络流量数据;网络流量数据包括计算机网络中数据流的特性和变化情况;步骤二、网络数据解析:对步骤一采集的实时或离线的网络流量数据进行解析,将解析后的网络流量数据的数据包头部信息作为sketch的输入;步骤三、Sketch构建:构建三层Sketch架构,包括heavy部分、缓冲层和light部分;通过哈希操作和置换方法,对步骤二解析后的网络流量数据进行统计和测量;步骤四、大象流检测:根据查询步骤三得到的测量结果,实现大象流的检测。

【技术特征摘要】
1.一种基于三层Sketch架构的大象流检测方法,其特征在于,步骤如下:步骤一、网络流量数据采集:采集实时或离线的网络流量数据;网络流量数据包括计算机网络中数据流的特性和变化情况;步骤二、网络数据解析:对步骤一采集的实时或离线的网络流量数据进行解析,将解析后的网络流量数据的数据包头部信息作为sketch的输入;步骤三、Sketch构建:构建三层Sketch架构,包括heavy部分、缓冲层和light部分;通过哈希操作和置换方法,对步骤二解析后的网络流量数据进行统计和测量;步骤四、大象流检测:根据查询步骤三得到的测量结果,实现大象流的检测。2.根据权利要求1所述的一种基于三层Sketch架构的大象流检测方法,其特征在于,所述步骤三中:(1)heavy部分heavy部分与哈希函数h(.)相关联的哈希表,heavy部分中的每个桶记录的流的信息为:流ID,vote+,vote-和标志;其中:vote+记录了属于此流的数据包数量;vote-记录了经过哈希函数h(.)匹配到这个桶的其他流的数据包的数量;标志指示了heavy部分是否曾经移除过这个流的一部分数据包;插入过程:给定一个流ID为f的传入数据包,将其哈希到桶H[h(f)%B],其中,h(f)表示哈希函数h(.)对f进行计算得到的哈希值;%表示取余运算;B表示heavy部分中的桶数量;当f匹配f1时,则增加vote+;否则,增加vote-,并根据vote+和vote-的值决定是否驱逐f1;f1表示heavy部分的桶中原来记录的流的ID;插入过程具体包括四种情况:情况1:桶是空的;将(f,1,F,0)插入其中,其中F表示桶中没有流被移除;插入结束;情况2:f=f1;只将vote+增加1;情况3:f不等于f1;vote-加1后,当vote-<λ*vote+时,将(f,1)移除,准备插入缓冲层中;其中,λ是预定义的阈值;情况4:f不等于f1;vote-加1后,当vote->=λ*vote+时,将流f1移除,准备插入缓冲层中;并将桶设置为(f,1,T,1)来记录流f的信息;T表示该桶中的流被移除过;因此在该情况下,标志被设置为T;(2)缓冲层缓冲层是一个线性哈希表,与哈希函数p(.)相关联;缓冲层中的每个桶记录每个流的流ID和该流的数据包数量count;插入过程:对于从heavy部分收到将要传入的流ID为f的数据包以及数据包数量val;缓冲层首先要提取数据包的流ID,再将其哈希到桶B[p(f)%num],其中,p(f)表示哈希函数p(.)对f进行计算得到的哈希值;%表示取余运算;num表示缓冲层中的桶数量;具体来说,有三种情况:情况1:桶是空的;将(f,val)插入这个桶,插入结束;情况2:f=f8;则将count增加val;情况3:f不等于f8;则将(f8,count)从缓冲层移除,准备插入light;然后将(f,val)记录到这个桶;该情况分为两种策略:第一种策略:判断从缓冲层移除的流f8在heavy部分的标志,当被标记为T,则选择light部分的插入方式一;当被标记为F,则选择light部分的...

【专利技术属性】
技术研发人员:齐恒赵柯妍李克秋王军晓
申请(专利权)人:大连理工大学
类型:发明
国别省市:辽宁,21

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

1