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

基于HeavyKeeper算法的TOPN热点域名实时监测方法技术

技术编号:36690675 阅读:11 留言:0更新日期:2023-02-27 19:57
本发明专利技术涉及一种基于HeavyKeeper算法的TOP N热点域名实时监测方法,该方法对DNS实时接收到的请求域名进行周期性处理,具体包括:计算当前请求域名的哈希值Hdomain,查询红黑树RB Tree中是否存在对应Hdomain的节点,其中RB Tree包含与MinHeap相同的N个节点;查询存在时,更新RB Tree和MinHeap中相应节点的值Dnum,Dnum为请求域名访问次数的近似值,当前周期结束时,输出TOP N的热点域名。本发明专利技术与现有技术相比,其显著优点是:采用可配置定量内存,仅记录可能是热点域名的访问次数,对访问次数少的域名淘汰且不存储,避免浪费内存资源,监测到多个域名哈希存储冲突时,使用概率衰减来踢除访问次数少的域名,提高了TOP N热点域名实时监测的准确率。点域名实时监测的准确率。点域名实时监测的准确率。

【技术实现步骤摘要】
基于HeavyKeeper算法的TOP N热点域名实时监测方法


[0001]本专利技术涉及网络数据监测
,特别是一种基于HeavyKeeper算法的TOP N热点域名实时监测方法。

技术介绍

[0002]在DNS(Domain Name Server)服务器使用过程中,实时报告最近X分钟内出现的TOP N的热点域名,是一种较为普遍的需求。如何在高并发的场景下,使用较低的计算与内存资源,准确而实时地监测出现的前N个热点域名(即TOP N),一直难度较大。
[0003]现有针对这种需求的通用实现方法可分为两种:第一种是在DNS服务器软件内部实现,将请求的域名以红黑树节点的形式存放,并对其出现次数进行计数。到第X时刻的时候,输出计数最多的前N个域名。这种方法在地并发、计算与内存资源充足时,可以及时、准确地输出结果。第二种是通过实时分析DNS服务器产生的日志,引入额外的设备对X分钟内的访问次数进行统计并排序输出。该方法不消耗DNS服务器的本身资源,也能及时、准确输出数据,其缺陷在于需要额外投入硬件设备。
[0004]两种方法检测TOP N热点域名的步骤可大致描述如下:
[0005]1、提取出请求的域名Domain,使用Hash函数H计算其Hash值为Hdomain,该值会作为该域名所在红黑树节点的Key,是该节点的唯一标识。
[0006]2、查询已有红黑树是否已经插入过该域名,即是否存在某个树节点Key=Hdomain,如不存在,则进入下一步,否则进入第4步。
[0007]3、为当前域名分配新的树节点,设置树节点Key=Hdomain,并将该节点插入红黑树。此处有时为了控制总内存占用量,会只保留M个树节点,如10万个。超过该数量后,直接开始丢弃域名数据,或者淘汰部分计数为1的数据,释放部分内存空间。若当前域名被丢弃,则直接结束流程。否则进入下一步
[0008]4、将该域名所在的节点域名出现次数计数器加1。
[0009]5、在时间间隔到达X的时候,如每5分钟。开始遍历红黑树,根据访问次数进行排序,输出前N项,即为结果。同时清空红黑树,为下一次统计做准备。
[0010]现有的方案为了实时监测TOP N热点域名,必须要维持一个节点数量相当多的红黑树来统计域名的访问次数。其缺点一是为了提高统计的准确性,在控制内存占用量的情况下,若节点数量M越小,则丢弃数据越多。因此为了提高准确性,往往该M值很大,从而消耗了较多的计算与内存资源;其缺点二是在第X时刻,为了获取前N项数值,必须遍历整个红黑树,取出访问次数最大的N个热点域名。在输出结束后,需要清空树。当并发量很高时,该操作有概率会引起系统抖动,业务出现丢包的情况。所以,现有方法在高并发场景下,一般不适用。方法二适用于高并发场景,但是需要额外的设备投入。
[0011]从实现步骤可以看出完成以上任务,这两种方法都有缺陷。在不控制内存占用量的情况下,结果准确但消耗资源过多。在控制内存使用总量的场景下,因为丢弃了一部分数据,会出现监测结果不准确的情况。
[0012]文献1:中国授权专利技术专利CN201710736503.9公开了一种DNS访问数据归类和内网访问占比提高方法,其主要作用是于对DNS的访问数据的内网外网属性进行归类,实现同时分段地对分类数据、外网域名访问量统计分析;其中,该方法对过期后的数据也进行了数据库实时保存,由此需要较大的内存支撑,依然存在无法解决内存资源消耗过多的问题。

技术实现思路

[0013]本专利技术的目的在于提供一种基于HeavyKeeper算法的TOP N热点域名实时监测方法,采用双流程数据结构,对数组中少量出现的域名进行衰减淘汰,只保留访问次数多的域名,实现对TOP N热点域名准确度的有效监测。
[0014]实现本专利技术目的的技术解决方案为:
[0015]一种基于HeavyKeeper算法的TOP N热点域名实时监测方法,该方法对DNS实时接收到的请求域名进行周期性处理,任一个周期的处理步骤具体如下:
[0016]计算当前请求域名的哈希值Hdomain,查询RB Tree中是否存在对应请求域名的哈希值Hdomain的节点,其中RB Tree包含与MinHeap相同的N个节点;
[0017]当RB Tree中存在对应Hdomain的节点时,请求域名在MinHeap中,同时更新RB Tree和MinHeap中相应的节点值为Dnum,Dnum为当前请求域名的访问次数值;
[0018]当RB Tree中不存在对应Hdomain的节点时,若MinHeap中节点数量超过N且其根节点的计数Nmin满足Dnum

Nmin=1,则请求域名同时插入RBTree与MinHeap替换最小节点;反之MinHeap中节点数量不超过N项且其根节点的计数Nmin满足Dnum

Nmin=1,则请求域名同时插入MinHeap和RB Tree中进行访问累计;
[0019]当前周期结束时,输出TOP N的热点域名。
[0020]进一步的,RB Tree中不存在对应Hdomain的节点时,若MinHeap根节点的计数Nmin不满足Dnum

Nmin=1,则请求域名被淘汰。
[0021]进一步的,DNS实时接收到的请求域名存入内存池Pool,在输出TOP N的热点域名后,清空所述内存池Pool。
[0022]进一步的,Dnum的计算流程如下:
[0023]初始化r行w列的数组A,数组A中每个元素包括两个字段,分别存放请求域名的哈希值和访问次数;
[0024]其中,每个请求域名记录有唯一指纹标识FP,FP采用哈希函数计算,用于表示每个请求域名在数组A中的占用位置bucket;
[0025]对数组A进行行遍历;
[0026]步骤1:令i=0,开始获取请求域名;
[0027]步骤2:计算每个请求域名对应的FP,获取每个请求域名在数组A的第i行第[Hi(D)%w]列元素,即A[i][Hi(D)%w],式中Hi(D)表示域名D使用第i行所使用的哈希函数Hi(
·
)计算出的哈希值,%为求余符号;
[0028]步骤3:判断每个请求域名在数组A中存放的访问次数,若访问次数C=0,则将C置为1;若访问次数C>0且FP=Hdomain,则将C置为C+1;若访问次数C>0且FP≠Hdomain,则以1.1

c
的概率衰减将C置为C

1;
[0029]步骤4:置Max C=MAX(Max C,C);
[0030]步骤5:若i<r则返回步骤3,否则Dnum=Max C。
[0031]进一步的,步骤3中若访问次数C>0且FP≠Hdomain,则以1.1

c
的概率衰减将C置为C

1,当同一个bucket存在多个请求域名占用冲突时,当前bucket占用的第一请求域名被本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于HeavyKeeper算法的TOP N热点域名实时监测方法,其特征在于:该方法对DNS实时接收到的请求域名进行周期性处理,任一个周期的处理步骤具体如下:计算当前请求域名的哈希值Hdomain,查询RB Tree中是否存在对应所述请求域名的哈希值Hdomain的节点,其中所述RB Tree包含与所述MinHeap相同的N个节点;当所述RB Tree中存在对应所述Hdomain的节点时,所述请求域名在所述MinHeap中,同时更新所述RB Tree和所述MinHeap中相应的节点值Dnum,所述Dnum为当前所述请求域名的访问次数值;当所述RB Tree中不存在对应所述Hdomain的节点时,若所述MinHeap中节点数量超过N且其根节点的计数Nmin满足Dnum

Nmin=1,则所述请求域名同时插入所述RBTree与所述MinHeap替换最小节点;反之所述MinHeap中节点数量不超过N项且其根节点的计数Nmin满足Dnum

Nmin=1,则所述请求域名同时插入所述MinHeap和所述RB Tree中进行访问累计;当前周期结束时,输出TOP N的热点域名。2.根据权利要求1所述一种基于HeavyKeeper算法的TOP N热点域名实时监测方法,其特征在于:当所述RB Tree中不存在对应所述Hdomain的节点时,若所述MinHeap根节点的计数Nmin不满足Dnum

Nmin=1,则所述请求域名被淘汰。3.根据权利要求2所述一种基于HeavyKeeper算法的TOP N热点域名实时监测方法,其特征在于:DNS实时接收到的请求域名存入内存池Pool,在输出TOP N的热点域名后,清空所述内存池Pool。4.根据权利要求3所述一种基于HeavyKeeper算法的TOP N热点域名实时监测方法,其特征在于:所述Dnum的计算流程如下:初始化r行w列的数组A,所述数组A中每个元素包括两个字段,分别存放所述请求域名的哈希值和访问次数;其中,每个所述请求...

【专利技术属性】
技术研发人员:戴云伟黄韬
申请(专利权)人:东南大学
类型:发明
国别省市:

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

1