【技术实现步骤摘要】
滑动窗口下基于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.滑动窗口下基于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线程处理得到它的连接数估算值;输出所有估算值大于等于θ的主机及其连接数估算值就完成了一个滑动窗口下的超...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。