本發明專利技術涉及一種基于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中每個元素包括兩個字段,分別存放所述請求域名的哈希值和訪問次數;其中,每個所述請求...
【專利技術屬性】
技術研發人員:戴云偉,黃韜,
申請(專利權)人:東南大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。