一種基于規(guī)則的流量分類方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種基于規(guī)則的流量分類方法和系統(tǒng)。
【背景技術(shù)】
[0002] 目前,互聯(lián)網(wǎng)中新的應(yīng)用模式與應(yīng)用不斷涌現(xiàn),網(wǎng)絡(luò)流量不斷增長,并呈現(xiàn)多樣 化,給互聯(lián)網(wǎng)運(yùn)營與管理帶來巨大挑戰(zhàn)。實(shí)時(shí)網(wǎng)絡(luò)流量分類對(duì)幫助互聯(lián)網(wǎng)服務(wù)提供商了解 網(wǎng)絡(luò)運(yùn)行狀態(tài),優(yōu)化網(wǎng)絡(luò)運(yùn)營與管理具有重要意義。
[0003] 基于規(guī)則的流量分類系統(tǒng)中,對(duì)于大量的基于語義的規(guī)則,通常把所有的規(guī)則都 被分到用于確定性有限(DFA)組合的域中,其中,對(duì)于大量的基于語義的規(guī)則有兩種匹配 方法:圖1中一個(gè)規(guī)則構(gòu)造一個(gè)匹配器,通過順序匹配規(guī)則中的每一個(gè)協(xié)議域完成一個(gè)匹 配器的匹配過程;然后按照順序依次匹配每個(gè)匹配器;如果當(dāng)前的匹配器沒有匹配到,則 轉(zhuǎn)到下一個(gè)匹配器進(jìn)行匹配,直到匹配到一個(gè)匹配器或者所有的匹配器都檢查完為止。匹 配速度受規(guī)則/匹配器的數(shù)量和具體規(guī)則中協(xié)議域數(shù)量多少的影響。圖2中所有的規(guī)則首 先可以根據(jù)他們的協(xié)議域進(jìn)行劃分,然后在同一協(xié)議域的規(guī)則表達(dá)式可以合并到一個(gè)基于 DFA的匹配器中;當(dāng)一個(gè)匹配器匹配失敗或者所有的匹配器都檢查完成后系統(tǒng)就停止匹配 的過程。
[0004] 這兩種規(guī)則組織的缺點(diǎn)是:
[0005] 規(guī)則中的值組合帶來的內(nèi)存激增造成的不確定性風(fēng)險(xiǎn)。
[0006] 要花費(fèi)額外的空間來保存每一個(gè)匹配器進(jìn)行匹配時(shí)的中間匹配結(jié)果。同時(shí)還要花 費(fèi)額外的時(shí)間來合并中間的匹配結(jié)果,從而得到最終匹配到的規(guī)則。隨著規(guī)則和協(xié)議域數(shù) 量的增多,這個(gè)問題會(huì)變得越來越嚴(yán)重,極大地增加資源消耗,匹配速度也會(huì)降低。
【發(fā)明內(nèi)容】
[0007] 有鑒于此,本發(fā)明的目的是針對(duì)上述技術(shù)問題,提供一種基于規(guī)則的流量分類方 法和系統(tǒng),確保隨著規(guī)則和協(xié)議域數(shù)量的增多,系統(tǒng)對(duì)資源消耗的穩(wěn)定性,同時(shí)提高流量分 類的速率。
[0008] 本發(fā)明提供了一種基于規(guī)則的流量分類方法,包括:預(yù)先設(shè)置規(guī)則集,并根據(jù)規(guī)則 集中的規(guī)則構(gòu)造規(guī)則層次匹配樹,所述規(guī)則層次匹配樹包括第一規(guī)則層和第二規(guī)則層;當(dāng) 接收到數(shù)據(jù)包,獲取數(shù)據(jù)包的域名和統(tǒng)一資源標(biāo)識(shí)符,匹配器根據(jù)域名在第一規(guī)則層中查 找匹配的規(guī)則,確定查找到第一規(guī)則層匹配規(guī)則后,觸發(fā)下一個(gè)匹配器在第一規(guī)則層匹配 規(guī)則中,根據(jù)統(tǒng)一資源標(biāo)識(shí)符在第二規(guī)則層中查找匹配的規(guī)則。
[0009] 進(jìn)一步地,所述規(guī)則集的規(guī)則包括規(guī)則ID以及和規(guī)則ID對(duì)應(yīng)的域名和統(tǒng)一資源 標(biāo)識(shí)符。
[0010] 進(jìn)一步地,所述根據(jù)規(guī)則集中的規(guī)則構(gòu)造規(guī)則層次匹配樹,具體為:根據(jù)域名和統(tǒng) 一資源標(biāo)識(shí)符,將規(guī)則集中的規(guī)則構(gòu)造規(guī)則層次匹配樹。
[0011] 進(jìn)一步地,所述根據(jù)規(guī)則集中的規(guī)則構(gòu)造規(guī)則層次匹配樹,具體為:根據(jù)域名將規(guī) 則集中的規(guī)則分類形成第一規(guī)則層,其中相同的域名歸為一類,形成第一規(guī)則層的子規(guī)則 集;根據(jù)統(tǒng)一資源標(biāo)識(shí)符,將第一規(guī)則層的子規(guī)則集分類形成第二規(guī)則層。
[0012] 本發(fā)明還提供了一種基于規(guī)則的流量分類裝置,包括:設(shè)置模塊,用于預(yù)先設(shè)置規(guī) 則集,并根據(jù)規(guī)則集中的規(guī)則構(gòu)造規(guī)則層次匹配樹,所述規(guī)則層次匹配樹包括第一規(guī)則層 和第二規(guī)則層;獲取單元,用于當(dāng)接收到數(shù)據(jù)包,獲取數(shù)據(jù)包的域名和統(tǒng)一資源標(biāo)識(shí)符;匹 配器,用于根據(jù)域名在第一規(guī)則層中查找匹配的規(guī)則,確定查找到第一規(guī)則層匹配規(guī)則后, 觸發(fā)下一個(gè)匹配器在第一規(guī)則層匹配規(guī)則中,根據(jù)統(tǒng)一資源標(biāo)識(shí)符在第二規(guī)則層中查找匹 配的規(guī)則。
[0013] 進(jìn)一步地,所述規(guī)則集的規(guī)則包括規(guī)則ID以及和規(guī)則ID對(duì)應(yīng)的域名和統(tǒng)一資源 標(biāo)識(shí)符。
[0014] 進(jìn)一步地,所述設(shè)置模塊根據(jù)規(guī)則集中的規(guī)則構(gòu)造規(guī)則層次匹配樹,具體為:設(shè)置 模塊根據(jù)域名將規(guī)則集中的規(guī)則分類形成第一規(guī)則層,其中相同的域名歸為一類,形成第 一規(guī)則層的子規(guī)則集;根據(jù)統(tǒng)一資源標(biāo)識(shí)符,將第一規(guī)則層的子規(guī)則集分類形成第二規(guī)則 層。
[0015] 和現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:本發(fā)明在保證基于DFA匹配器的匹配 速度不降低的情況下,移除匹配器之間轉(zhuǎn)換時(shí)中間結(jié)果的額外開銷,提高了系統(tǒng)性能。此 外,采用規(guī)則層次匹配樹結(jié)構(gòu),下一個(gè)匹配器由當(dāng)前匹配器的匹配結(jié)果決定,這樣,每一個(gè) 匹配器都構(gòu)建在一個(gè)小的規(guī)則集上,從而降低了內(nèi)存溢出的風(fēng)險(xiǎn)。
【附圖說明】
[0016] 圖1為現(xiàn)有技術(shù)中的一種對(duì)于大量的基于語義的規(guī)則匹配的示意圖。
[0017] 圖2為現(xiàn)有技術(shù)中的另一種對(duì)于大量的基于語義的規(guī)則匹配的示意圖。
[0018] 圖3為本發(fā)明所公開的對(duì)于大量的基于語義的規(guī)則匹配的示意圖。
[0019] 圖4為本發(fā)明所公開的基于規(guī)則的流量分類方法的示意圖。
[0020] 圖5為本發(fā)明一個(gè)具體實(shí)施例的規(guī)則集的示意圖。
【具體實(shí)施方式】
[0021] 以下將結(jié)合附圖所示的【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但這些實(shí)施方式并 不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實(shí)施方式所做出的結(jié)構(gòu)、方法、或功能上的 變換均包含在本發(fā)明的保護(hù)范圍內(nèi)。
[0022] 相比較于現(xiàn)有技術(shù),本發(fā)明根據(jù)協(xié)議域把整個(gè)大的規(guī)則集劃分成小的子規(guī)則集, 如圖3所示,并將匹配器只需要保存相應(yīng)的子規(guī)則集。
[0023] 圖4為本發(fā)明所公開的基于規(guī)則的流量分類方法的示意圖。參照?qǐng)D3,包括:
[0024] 步驟401,預(yù)先設(shè)置規(guī)則集。
[0025] 在本步驟中,規(guī)則集中的每一條規(guī)則包括規(guī)則ID,以及和規(guī)則ID對(duì)應(yīng)的域名 (Host)和統(tǒng)一資源標(biāo)識(shí)符(URI,UniformResourceIdentifier) 〇
[0026] 下表1提供了一個(gè)規(guī)則集的實(shí)例,當(dāng)然還有其他的規(guī)則設(shè)置,在此不限制。
[0027]表 1
[0028]
[0029] 步驟402,根據(jù)規(guī)則集中的規(guī)則構(gòu)造規(guī)則層次匹配樹,該規(guī)則層次匹配樹包括第一 規(guī)則層和第二規(guī)則層。
[0030] 在本步驟中,將規(guī)則集中的規(guī)則根據(jù)Host和URI構(gòu)造規(guī)則層次匹配樹。具體地, 根據(jù)Host,將規(guī)則集中的規(guī)則分類形成第一規(guī)則層,其中相同的Host歸為一類,形成子規(guī) 則集;根據(jù)URI,將第一規(guī)