当前位置: 首页 > 专利查询>东南大学专利>正文

滑动窗口下基于GPU的网络访问超点连接数估算方法技术

技术编号:19436547 阅读:38 留言:0更新日期:2018-11-14 13:10
本发明专利技术提供了滑动窗口下基于GPU的网络访问超点连接数估算方法,数据结构均保存在GPU的显存里,由GPU并行进行超点连接数估算,包括以下步骤:在GPU上初始化滑动估值器矩阵和滑动候选超点列表、扫描一个时间片里的所有报文、在时间片结束时估算超点连接数、窗口滑动。本发明专利技术能在滑动窗口下检测超点并估算器连接数,估算值更准确,不受窗口起始时间的影响,不会遗漏跨越时间边界的超点;比现有方法具有更低的时间延迟,能及时对超点连接数进行估算;能实时并行处理高速网络流量,缩小了计算范围,提高了算法的整体速度,滑动估值器矩阵可以同时被多个IP地址对更新而不产出错误。

【技术实现步骤摘要】
滑动窗口下基于GPU的网络访问超点连接数估算方法
本专利技术属于高速网络管理和并行计算
,涉及一种滑动窗口下基于GPU的高速网络实时超点连接数估算技术。
技术介绍
超点是一类特殊的主机。假设有两个网络:ANet和BNet。这两个网络通过边界路由器ER进行通信。ANet可以是城域网或者是某个国家的网络。BNet是另一个城域网或者是Internet。ANet和BNet之间的所有流量都可以从ER观察到。对于ANet里的一个主机“aip”,在一段时间里通过ER与aip进行通信的BNet里的主机称为aip的连接数。当aip的连接数大于某个指定的阈值θ时,aip就称为一个超点。超点与网络里的许多事件有关,如DDoS,扫描攻击等等。主机连接数也是网络管理和测量里的一个重要属性。由于超点仅占全部主机的一小部分,对超点进行重点监测是一种高效的高速网络实时管理方法。在超点定义里的时间窗口可以是离散时间窗口也可以是滑动时间窗口。现有超点连接数计算方法都是在离散窗口下进行的。离散时间窗口下,相邻两个窗口之间没有重叠的时间。图1描述了离散窗口和滑动窗口下的流量划分情况。网络ANet和BNet之间的流量可以按照大小相同的连续时间片进行划分。时间片的长度可以是1秒,1分钟或根据具体应用设置为其它值。每个时间片用一个数字标识。如图1上半部分所示,一个滑动时间窗口包含从第t个时间片开始的连续k个时间片,记为W(t,k)。滑动时间窗口每次向前移动一个时间片。因此相邻两个滑动时间窗口之间含有k-1个相同的时间片。当k为1时,相邻两个时间窗口之间没有相互重叠的时间段。此时的时间窗口就是离散时间窗口,如图1的下半部分所示。网络数据包在网络ANet和BNet之间连续传输。如果将它们离散的划分,则连接数的估算结果会受到时间窗口起始点的影响。例如,令aip是ANet里的一个主机。如图2所示,假设它只在从p0到p1的时间段之内和BNet里的主机通信。本文的“通信”是指aip向BNet里的主机发送数据包或者从BNet里的主机接受数据包。令Pkt(aip,p0,p1)表示在时间段p0到p1里与aip通信的数据包流。p0是离散时间窗口W(t,1)里的一个时间点,p1是离散时间窗口W(t+1,1)里的一个时间点。令p2表示W(t,1)和W(t+1,1)的时间边界。aip的数据包可以分为两部分:从p0到p2时间段里的数据包和从p2到p1时间段里的数据包。分别记为Pkt(aip,p0,p2)和Pkt(aip,p2,p1)。在离散时间窗口下,aip的连接数计算会由于以下两个原因而产生错误:半丢失(Halfloss,HL)根据Pkt(aip,p0,p2)计算得到的连接数大于θ;但是从Pkt(aip,p2,p1)计算得到的连接数小于θ。此时aip只在W(t,1)里被检测为超点。并且aip的连接数会丢失在时间段p2到p1之间的部分。全丢失(Fullloss,FL)从Pkt(aip,p0,p2)和Pkt(aip,p2,p1)里分别计算的连接数都小于θ,但是从Pkt(aip;p0;p1)里计算得到的连接数大于θ。此时,超点aip在W(t,1)和W(t+1,1)里都不会被检测到。用|HL|和|FL|表示这两种主机的数量。|HL|和|FL|与时间片的大小有关。用Cs表示一个时间片的长度。Cs越小,则Pkt(aip,p0,p2)和Pkt(aip,p2,p1)里包含的数据包个数越小,|HL|和|FL|也会相应的降低。但是在离散时间窗口下,Cs就是测量的时间长度,不能随意改动。对于一些需要计算较长时间段里超点连接数的应用,离散时间窗口会引起很大的丢失。Cs也会影响超点连接数计算的延迟。如果从Pkt(aip,p2,p1)计算得到的aip连接数大于θ,aip的连接数应该在p1立即计算。但是在离散时间窗口下,超点连接数只在每个时间窗口结束时计算一次。因此延迟为Cs-p1。离散时间窗口的上述缺点是由于它的移动长度等于窗口的长度。和离散时间窗口不同,对于滑动窗口,每个时间片的长度可以远小于窗口的长度。下文使用Csd表示离散时间窗口下一个时间片的长度,即一个离散时间窗口的长度;使用Css表示滑动窗口下一个时间片的长度。滑动时间窗口比离散时间窗口具有更好的测量结果。它每次向前移动Css的距离,并且增量式的存储和更新主机的连接数。由于受时间窗口起始点的影响更小,滑动窗口具有比离散窗口更高的准确率。由于在相同时间窗口长度的情况下,Css远小于Csd,所以滑动时间窗口可以更及时的计算超点连接数。当和离散时间窗口具有相同窗口长度时,Css可以被设置为很小的值来降低|HL|、|FL|和计算延迟。如果k被设置为足够大,滑动窗口下的|HL|和|FL|可以被忽略。例如我们从40Gb/s的高速网络上收集了一小时的真实数据来测试|HL|和|FL|的值。这段数据流量从2017年10月21号的13:00开始持续一小时,并且也是后面实验数据集之一。当θ=1024,Csd=300秒,Css=1秒和k=300时,每个滑动窗口平均检测到574个超点。与滑动时间窗口相比,离散时间窗口下的|HL|下的平均多50个,|FL|平均多14个。这个例子很好地说明了滑动时间窗口比离散时间窗口具有更高的准确率。假设我们要计算ANet里的超点连接数(BNet里的超点连接数可以用相同的算法计算,只需要将IP地址进行交换)。对于网络ANet里的一个主机aip,在时间窗口W(t,k)里所有以aip作为源或宿地址的,通过边界路由器ER的数据包组成了aip的数据包流,记为Pkt(aip,t,k)。通过提取Pkt(aip,t,k)里每个数据包中除aip外的另一个地址,可以得到aip的对端主机流,记为HS(aip,t,k)。对于BNet里的某个主机bip,如果bip在时间窗口W(t,k)里与aip通信,则bip可能在HS(aip,t,k)里出现多次。因为aip从bip接收多个数据包,或者向bip发送多个数据包。HS(aip,t,k)里的主机构成了aip的对端主机集合,记为OP(aip,t,k)。OP(aip,t,k)里元素的个数小于等于HS(aip,t,k)里元素的个数。记OP(aip,t,k)里元素的个数为|OP(aip,t,k)|。则|OP(aip,t,k)|就是aip在时间窗口W(t,k)下的连接数。对于ANet里的某个主机aip,如果|OP(aip,t,k)|≥θ,则aip称为滑动窗口W(t,k)里的一个超点。阈值θ是用户根据不同应用定义的一个正整数。例如,θ可以设置为过去一段时间内所有主机连接数的平均数,或者正常情况下服务器的连接数。离散窗口下超点连接数估计相对简单,因为它不要求保存主机在前一段时间里的状态。但是估算结果存在以下两个问题:1)计算值受时间窗口起始点的影响,不能检测出跨越时间窗口边界的超点。2)计算结果有很大的延迟。离散时间窗口的这两个缺点来自于它的移动方式。离散时间窗口每次移动的时间长度等于它自身的长度。当离散时间窗口长度越大时,计算延迟和错误率就会越高。滑动时间窗口很好的解决了上述问题,因为滑动窗口每次移动的时间长度可以远小于其自身的长度。例如,当时间窗口的长度设置为300秒时,滑动时间窗口每次可以只向前滑动1秒本文档来自技高网...

【技术保护点】
1.滑动窗口下基于GPU的网络访问超点连接数估算方法,其特征在于,包括如下步骤:数据结构初始化,所述数据结构包括滑动估值器矩阵和滑动候选超点列表;扫描一个时间片里的所有数据包,利用滑动估值器矩阵记录主机连接数,在扫描数据包时,判断主机是否为超点,将检测出的超点添加到候选主机列表里;在时间片结束时,根据滑动估值器矩阵计算候选超点列表里的每个主机的连接数,输出连接数大于阈值的主机及其估算值;估算完所有候选超点主机的连接数后,更新滑动估值器矩阵和候选超点列表;将窗口向前滑动一个时间片,开始扫描下一个时间片里的数据包,估算下一个滑动窗口里的超点连接数。

【技术特征摘要】
1.滑动窗口下基于GPU的网络访问超点连接数估算方法,其特征在于,包括如下步骤:数据结构初始化,所述数据结构包括滑动估值器矩阵和滑动候选超点列表;扫描一个时间片里的所有数据包,利用滑动估值器矩阵记录主机连接数,在扫描数据包时,判断主机是否为超点,将检测出的超点添加到候选主机列表里;在时间片结束时,根据滑动估值器矩阵计算候选超点列表里的每个主机的连接数,输出连接数大于阈值的主机及其估算值;估算完所有候选超点主机的连接数后,更新滑动估值器矩阵和候选超点列表;将窗口向前滑动一个时间片,开始扫描下一个时间片里的数据包,估算下一个滑动窗口里的超点连接数。2.根据权利要求1所述的滑动窗口下基于GPU的网络访问超点连接数估算方法,其特征在于,具体包括如下步骤:第一步,设置参数设置由u行v列的滑动估值器组成的滑动估值器矩阵,每个滑动估值器包含:由n个比特组成的超点指示器;由g个整数组成的滑动模糊估计器;由g’个整数组成的滑动线性估值器;设置用于保存检测到的候选超点的滑动候选列表;第二步,在GPU上初始化数据结构在GPU的显存上分配滑动估值器矩阵的内存空间,初始化滑动估值器矩阵,将滑动估值器矩阵里所有滑动模糊估计器的整数设置为最大值,将滑动估值器矩阵里所有滑动线性估计器的整数设置为最大值,在GPU上预留用于保存候选超点列表的显存空间;第三步,扫描IP数据包,提取IP地址对扫描每个时间片里的数据包,提取每个数据包的IP地址,得到每个数据包的IP地址对,IP地址对是结构为<aip,bip>的二元组,其中,aip是要测量的网络里的一个主机,bip是通过边界路由器与aip通信的主机;在服务器上先对这些IP对进行缓存,当缓冲区满或者一个时间片里的数据包扫描完成时,将服务器上缓冲区里的IP地址对通过PCIe总线拷贝到GPU的显存里;第四步,启动GPU线程,扫描IP地址对当复制完成后,GPU启动与IP地址对相同数量的线程来处理收到的IP地址对;每个GPU线程读取IP地址对缓冲区的一个IP地址<aip,bip>对进行处理;滑动估值器矩阵的每一行对应一个哈希函数RHi,i∈[0,v-1];RHi(aip)将aip映射到第i行的任意一个滑动估值器,对于第i行,第RHi(aip)个滑动估值器会被更新,保存aip的连接数;第五步,时间片结束时,估算超点连接数在一个时间片结束时扫描完该时间片里的所有数据包后,开始进行超点连接数估算:对候选超点列表里的主机进行分组,每组1024个主机,对于每组主机,分别在GPU上进行超点连接数估算;估算方法为:对于一组超点主机,启动1024个线程,每个线程分别估算一个主机的连接数,每个线程估算候选主机连接数的方法如下:设第i行所有滑动估值器的滑动线性估值器的值小于k的整数的个数为|LDR(i)|k;计算滑动估值器矩阵里滑动线性估值器的每个整数被设置的概率对于主机aip,将滑动估值器矩阵每一行里与aip对应的滑动估值器的滑动线性估值器进行合并:将每一个滑动估值器的滑动线性估值器的整数按取所有相同位置的最大整数的操作进行合并得到一个新的滑动线性估值器;扫描该合并后的滑动线性估值器,得到值小于k的整数的个数|ULE(aip)|k;根据公式计算aip的连接数;候选超点列表里的每个主机按上述方法被一个GPU线程处理得到它的连接数估算值;输出所有估算值大于等于θ的主机及其连接数估算值就完成了一个滑动窗口下的超...

【专利技术属性】
技术研发人员:徐杰丁伟胡晓燕
申请(专利权)人:东南大学
类型:发明
国别省市:江苏,32

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

1