一種動(dòng)態(tài)調(diào)節(jié)多級Bloom濾波器結(jié)構(gòu)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,具體涉及一種動(dòng)態(tài)調(diào)節(jié)多級Bloom濾波器的方法。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)的迅速發(fā)展給通信、生活等方面帶來了巨大影響,網(wǎng)絡(luò)流量和速率在不斷增加。速率的增加需要硬件上的支持,持續(xù)不間斷高速運(yùn)行的硬件平臺(tái)需要消耗越來越多的能量,并且所需的散熱設(shè)備同樣在消耗能量。能耗的增加使得低功耗成為衡量一個(gè)系統(tǒng)結(jié)構(gòu)或算法的重要指標(biāo)。
[0003]Bloom濾波器主要用于信息檢索,通過一組哈希函數(shù)將數(shù)據(jù)庫信息映射到二進(jìn)制字符串進(jìn)行存儲(chǔ),可快速創(chuàng)建、檢索、更新,具有簡便快速、節(jié)省存儲(chǔ)空間、能耗低的優(yōu)點(diǎn),便于硬件實(shí)現(xiàn),在高速網(wǎng)絡(luò)處理領(lǐng)域具有廣泛應(yīng)用空間。
[0004]如圖2所示,單級Bloom濾波器設(shè)計(jì)簡單、在硬件資源緊張的條件下可以節(jié)省存儲(chǔ)空間,以網(wǎng)絡(luò)入侵檢測系統(tǒng)為例,適合高速網(wǎng)絡(luò)處理設(shè)備。Bloom濾波器主要缺陷是存在正向誤報(bào)率(False Positive Rate),即可能會(huì)匹配不屬于數(shù)據(jù)庫內(nèi)容的信息。以在網(wǎng)絡(luò)入侵檢測系統(tǒng)的應(yīng)用為例,可采用Bloom濾波器對網(wǎng)絡(luò)流量進(jìn)行快速過濾,通過精確匹配算法進(jìn)一步驗(yàn)證預(yù)處理結(jié)果。
[0005]通過參數(shù)設(shè)置可將正向誤報(bào)率降低至可以接受的程度,如增加函數(shù)數(shù)量、或使用多階濾波器結(jié)構(gòu),但會(huì)相應(yīng)延長匹配時(shí)間、擴(kuò)大存儲(chǔ)量、增加處理功耗。根據(jù)網(wǎng)絡(luò)流量繁忙程度,動(dòng)態(tài)調(diào)整多級Bloom濾波器,達(dá)到性能與功耗最優(yōu)效果。
【發(fā)明內(nèi)容】
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明提出一種動(dòng)態(tài)調(diào)節(jié)多級Bloom濾波器的方法,解決了功耗與性能平衡的問題。
[0007]本發(fā)明的目的是采用下述技術(shù)方案實(shí)現(xiàn)的:
[0008]—種動(dòng)態(tài)調(diào)節(jié)多級Bloom濾波器的方法,所述方法包括:
[0009]構(gòu)建η級Bloom濾波器,η彡2 ;
[0010]采用η級Bloom濾波器對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行過濾,生成過濾數(shù)據(jù);
[0011 ] 利用匹配規(guī)則對所述過濾數(shù)據(jù)進(jìn)行校驗(yàn);
[0012]通過自適應(yīng)控制法對校驗(yàn)結(jié)果進(jìn)行動(dòng)態(tài)調(diào)節(jié)。
[0013]優(yōu)選的,所述η級Bloom濾波器包括k個(gè)哈希函數(shù),各級哈希函數(shù)量分別為{kl, k2,..., kn},kl+k2+...kn = k ;所述k個(gè)哈希函數(shù)構(gòu)成哈希函數(shù)集Iii (x),i = I…k。
[0014]優(yōu)選的,所述生成過濾數(shù)據(jù)包括,通過哈希函數(shù)集hjx)將網(wǎng)絡(luò)數(shù)據(jù)S =(X1, X2...xj映射到m比特的哈希表{1,…,m} (m>n)中,作為哈希地址;并執(zhí)行哈希查找。
[0015]優(yōu)選的,所述校驗(yàn)方法包括;計(jì)算η級Bloom濾波器過濾數(shù)據(jù)的誤報(bào)率,判斷過濾數(shù)據(jù)是否與匹配規(guī)則匹配;
[0016]f ^ (l_e kn/m)k, kopt= (m/c) 1η2(I)
[0017]式⑴中,f為誤報(bào)率,k為哈希函數(shù)個(gè)數(shù),m為比特向量位數(shù),c為輸入的網(wǎng)絡(luò)數(shù)據(jù)量Acipt為最低誤報(bào)率的哈希函數(shù)量。
[0018]進(jìn)一步地,將包含k個(gè)哈希函數(shù)的哈希函數(shù)集Iii (X)分成若干子集Ii1...hk;根據(jù)式
(I)誤報(bào)率f計(jì)算各子集的最低誤報(bào)率的哈希函數(shù)量k-,kopt^ 4 ;
[0019]當(dāng)?shù)谝蛔蛹泄:瘮?shù)動(dòng)態(tài)查表結(jié)果為1,則匹配成功MATCH_I = 1,并啟動(dòng)下一子集的哈希函數(shù)enable = I。
[0020]優(yōu)選的,所述動(dòng)態(tài)調(diào)節(jié)包括,定義所有哈希函數(shù),包括第一階段、第r階段和睡眠階段;其中,Kr彡η;
[0021]將各子集的最低誤報(bào)率的哈希函數(shù)量k-作為各階段哈希函數(shù)量k ^勺初始值,利用控制寄存器C調(diào)整各階段的哈希函數(shù)量k1;
[0022]所述控制寄存器C包括計(jì)數(shù)器,用于分別記錄匹配過程中成功和無效個(gè)數(shù)。
[0023]進(jìn)一步地,所述控制寄存器C的m比特對應(yīng)Bloom濾波器的k個(gè)哈希函數(shù),C[i]=I表示第i個(gè)哈希函數(shù)位于所述第一階段,C[i] = O表示第i個(gè)哈希函數(shù)位于所述第r階段;
[0024]在初始狀態(tài)下,所有哈希函數(shù)k位于第一階段;
[0025]如果第一階段出現(xiàn)匹配成功MATCH_I = 1,將控制寄存器C右移一位,最高位置位C[m] = 1,使得一個(gè)哈希函數(shù)從第二階段迀回第一階段;
[0026]如果第一階段出現(xiàn)不匹配MATCH_I = 0,將控制寄存器C左移一位,最末位清零C[O] = 0,使得一個(gè)哈希函數(shù)從第一階段迀移至第二階段;以此類推。
[0027]優(yōu)選的,當(dāng)某一階段出現(xiàn)連續(xù)匹配時(shí),將該階段下一階段的部分哈希函數(shù)迀回該階段;
[0028]當(dāng)很長時(shí)間內(nèi)沒有出現(xiàn)匹配時(shí),將部分哈希函數(shù)從當(dāng)前階段迀移至下一階段。
[0029]進(jìn)一步地,所述睡眠階段包括,當(dāng)計(jì)數(shù)器顯示匹配成功的哈希函數(shù)量達(dá)到預(yù)定值,控制寄存器C左移,將當(dāng)前階段的所有哈希函數(shù)迀出;當(dāng)計(jì)數(shù)器顯示匹配無效的哈希函數(shù)量達(dá)到預(yù)定值,控制寄存器C右移,將當(dāng)前階段的所有哈希函數(shù)直接迀回第一階段。
[0030]與現(xiàn)有技術(shù)相比,本發(fā)明達(dá)到的有益效果是:
[0031]本發(fā)明使用多比特哈希表進(jìn)行建表和更新,相較于普通單比特哈希表,查找更快速便捷。
[0032]基于網(wǎng)絡(luò)應(yīng)用中病毒或攻擊在某段時(shí)間內(nèi)集中出現(xiàn)的特征,要求哈希函數(shù)從當(dāng)前所在階段快速返回第一階段,從而在最短的時(shí)間內(nèi)獲得最終匹配結(jié)果,滿足了吞吐率要求。
[0033]由于Bloom濾波器不存在逆向誤判率且網(wǎng)絡(luò)中惡意流量通常在某一段時(shí)間內(nèi)集中出現(xiàn);因此,當(dāng)匹配量快速增加時(shí),可將更多的哈希函數(shù)從第二階段迀移到第一階段,以降低誤判率,提高效率。
[0034]另一方面,當(dāng)很長時(shí)間內(nèi)沒有出現(xiàn)匹配項(xiàng),說明是正常流量,可將部分哈希函數(shù)從第一階段迀移到第二階段,在不影響系統(tǒng)性能的前提下實(shí)現(xiàn)了最大程度降低功耗的目的。
【附圖說明】
[0035]圖1為動(dòng)態(tài)調(diào)節(jié)多級Bloom濾波器的方法流程圖;
[0036]圖2為單級Bloom濾波器結(jié)構(gòu)示意圖;
[0037]圖3為二級Bloom濾波器結(jié)構(gòu)示意圖;
[0038]圖4為η級Bloom濾波器結(jié)構(gòu)示意圖;
[0039]圖5為二階η級Bloom濾波器結(jié)構(gòu)示意圖;
[0040]圖6為哈希函數(shù)狀態(tài)的示意圖;
[0041]圖7為利用控制寄存器C自適應(yīng)調(diào)整哈希函數(shù)量的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0042]下面結(jié)合附圖對本發(fā)明的【具體實(shí)施方式】做進(jìn)一步的詳細(xì)說明。
[0043]如圖1所示,一種動(dòng)態(tài)調(diào)節(jié)多級Bloom濾波器的方法,所述方法包括:
[0044]構(gòu)建η級Bloom濾波器;如圖4所示,所述η級Bloom濾波器包括k個(gè)哈希函數(shù),η彡2 ;各級哈希函數(shù)量分別為{kl, k2,..., kn},kl+k2+...kn = k ;所述k個(gè)哈希函數(shù)構(gòu)成哈希函數(shù)集Iii (X),i = I…k。如圖3所示,當(dāng)η = 2時(shí),為二級Bloom濾波器。
[0045]采用η級Bloom濾波器對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行過濾,生成過濾數(shù)據(jù);所述生