專利名稱:一種網(wǎng)絡(luò)報文過濾引擎芯片的制作方法
技術(shù)領(lǐng)域:
本申請涉及一種網(wǎng)絡(luò)報文過濾引擎芯片,尤其涉及網(wǎng)絡(luò)報文過濾的加速領(lǐng)域。
背景技術(shù):
隨著網(wǎng)絡(luò)的日益普及,深度報文檢測技術(shù)作為必備的安全手段越來越多地應(yīng)用于 各種互聯(lián)網(wǎng)絡(luò)。運(yùn)營商和相關(guān)部門可以通過深度報文檢測技術(shù),過濾掉網(wǎng)絡(luò)上的各種不良 信息,營造安全、文明的網(wǎng)絡(luò)環(huán)境。深度報文檢測技術(shù)是一種對網(wǎng)絡(luò)數(shù)據(jù)包的應(yīng)用層數(shù)據(jù)進(jìn)行解析,匹配,過濾的技 術(shù),其關(guān)鍵的技術(shù)點(diǎn)在于快速的字符串匹配??梢酝ㄟ^匹配規(guī)則,關(guān)鍵詞或者是語義等方式 對輸入的報文進(jìn)行分析從而截獲敏感內(nèi)容。但是隨著計算機(jī)技術(shù)的發(fā)展,各種各樣的反過 濾手段也逐漸出現(xiàn)。例如,一種比較常見的反過濾手段是將發(fā)布到論壇或者網(wǎng)頁上的文字, 經(jīng)過處理,成為豎排列從右往左閱讀的方式,這樣當(dāng)文字通過http協(xié)議進(jìn)行傳遞的時候, 兩個相鄰的字符將不再具有任何意義,從而無法被通過關(guān)鍵詞,正則表達(dá)式或者是語義分 析來進(jìn)行報文分類的網(wǎng)絡(luò)過濾設(shè)備所捕獲。因此,普通的報文過濾技術(shù)無法阻擋通過這種 改變排列方式手段進(jìn)行修改后的報文。圖1顯示了 26個字母的原始排列和經(jīng)過重排后的 顯示方式。但是這樣經(jīng)過重排后的報文,并不影響人的正常閱讀。高性能的深度報文檢測一般通過網(wǎng)絡(luò)處理器配合專用的硬件設(shè)備進(jìn)行處理,能夠 做到以大數(shù)據(jù)流量對不良信息進(jìn)行過濾,但是如上述所說的經(jīng)過重排后的報文,則沒有一 個高效的手段來進(jìn)行分析和處理,滿足不了日益增長的網(wǎng)絡(luò)流量的需求。因此,有必要設(shè)計 新的處理加速器件來滿足深度報文檢測需求。
發(fā)明內(nèi)容
本發(fā)明公開了一種網(wǎng)絡(luò)網(wǎng)絡(luò)報文過濾引擎芯片,由接口模塊、報文預(yù)處理模塊、網(wǎng) 絡(luò)加速模塊以及報文匹配模塊構(gòu)成,其中報文預(yù)處理模塊連接至接口模塊,網(wǎng)絡(luò)加速模塊 耦接在報文預(yù)處理模塊以及報文匹配模塊之間。所述網(wǎng)絡(luò)加速模塊由換行符判斷邏輯、控制邏輯、輸出邏輯以及移位寄存器陣列 構(gòu)成,其中所述移位寄存器陣列具有M行和N列,數(shù)據(jù)可以沿行方向向左或向右移動,或者 沿列方向整行向下移動。所述的換行符判斷邏輯,其特征在于,檢測輸入的字符串中是否存在換行符’ \n’, 如果存在,則輸出判斷標(biāo)志至控制邏輯。所述的控制邏輯,其特征在于,根據(jù)換行符判斷邏輯輸出的判斷標(biāo)志,控制寄存器 陣列的右移,整行下移,并統(tǒng)計每行的長度。所述的控制邏輯,其特征在于,當(dāng)字符串完全輸入后,控制移位寄存器的前L行向 左移位,其中L為自然數(shù)。所述的控制邏輯,其特征在于,當(dāng)字符串完全輸入后,判斷當(dāng)前陣列中前K行的長 度是否相等,前L-K行的長度是否相等且比前K行的長度小1,如果滿足條件則輸出移位結(jié)果,否則移位寄存器內(nèi)結(jié)果丟棄。所述的報文匹配模塊,其特征在于,對于網(wǎng)絡(luò)加速模塊判定為需要重排的報文,均 執(zhí)行2次匹配操作,一次是從網(wǎng)絡(luò)加速模塊獲得的重排報文,一次是從報文預(yù)處理模塊直 接獲得的原始報文。
圖1是網(wǎng)絡(luò)報文經(jīng)過重排序后顯示的結(jié)果。
圖2是本發(fā)明的網(wǎng)絡(luò)報文過濾引擎芯片內(nèi)部結(jié)構(gòu)圖。圖3是本發(fā)明的網(wǎng)絡(luò)加速模塊的內(nèi)部結(jié)構(gòu)圖。
具體實(shí)施例方式圖2是本發(fā)明的網(wǎng)絡(luò)報文過濾引擎芯片內(nèi)部結(jié)構(gòu)圖。網(wǎng)絡(luò)報文過濾引擎芯片主要 由接口模塊、報文預(yù)處理模塊、網(wǎng)絡(luò)加速模塊,以及報文匹配模塊構(gòu)成,其中報文預(yù)處理模 塊連接至接口模塊,網(wǎng)絡(luò)加速模塊耦接在報文預(yù)處理模塊以及報文匹配模塊之間。數(shù)據(jù)報 文通過接口模塊輸入至芯片,經(jīng)過報文預(yù)處理模塊剝離以太網(wǎng)/IP報文封裝,并解析HTTP 協(xié)議等,分離出網(wǎng)頁上的字符串內(nèi)容,輸入至網(wǎng)絡(luò)加速模塊。網(wǎng)絡(luò)加速模塊對輸入的字符串 進(jìn)行處理,提高報文匹配模塊的工作效率。報文預(yù)處理模塊和報文匹配模塊之間還有一條 直接路徑,用于當(dāng)網(wǎng)絡(luò)加速模塊判定當(dāng)前報文為正常順序的報文時或者產(chǎn)生誤判時,直接 從報文預(yù)處理模塊再次獲得原始報文。接口模塊作為網(wǎng)絡(luò)處理報文過濾引擎芯片的數(shù)據(jù)輸入/輸出端口,主要負(fù)責(zé)處理 各種網(wǎng)絡(luò)數(shù)據(jù)報文的接收發(fā)送,并通過各種工業(yè)界的接口規(guī)范和其他的網(wǎng)絡(luò)芯片進(jìn)行連 接。通常,用于低速網(wǎng)絡(luò)芯片的接口模塊支持IEEE802. 3定義的Mil、RMII、SMII等快速以 太網(wǎng)接口,用于高速網(wǎng)絡(luò)芯片的接口模塊支持的GMII、RGMII以及SGMII等接口。更高速的 網(wǎng)絡(luò)芯片接口模塊支持如SPI 4. 2,XAUI, RXAUI, interlaken等接口標(biāo)準(zhǔn)。報文預(yù)處理模塊用于解析報文的封裝,獲取報文內(nèi)部的實(shí)質(zhì)性內(nèi)容。典型的報文 預(yù)處理流程包括解析二層報文頭,剝離以太網(wǎng)的報文封裝,并獲取上層承載報文協(xié)議;解 析三層報文頭,剝離IP報文的封裝,并獲取上層承載報文協(xié)議;解析四層TCP報文頭,對 TCP報文進(jìn)行終結(jié),獲取更上層應(yīng)用層協(xié)議和完整的應(yīng)用層數(shù)據(jù)流;解析應(yīng)用層的HTML或 者XML報文,獲取字符串信息作為報文匹配的處理輸入。由于報文預(yù)處理的復(fù)雜性,報文預(yù) 處理模塊可以通過專用的硬件單元實(shí)現(xiàn),也可以通過多核架構(gòu)下的網(wǎng)絡(luò)處理器引擎上運(yùn)行 的軟件報文解析進(jìn)行實(shí)現(xiàn)。報文匹配模塊是網(wǎng)絡(luò)過濾引擎的計算核心,用于執(zhí)行關(guān)鍵詞分析過濾流程。匹配 模塊對預(yù)處理模塊或者網(wǎng)絡(luò)加速模塊輸出的字符串執(zhí)行關(guān)鍵詞匹配、規(guī)則匹配或者語義匹 配操作,分析報文內(nèi)容是否具有不良詞匯或者語段。報文匹配可以采用關(guān)鍵詞搜索數(shù)據(jù)庫 構(gòu)建,或者采用正則表達(dá)式引擎構(gòu)建,也可以采用基于語義分析的引擎構(gòu)建。對于采用關(guān)鍵 詞搜索或者正則表達(dá)式引擎的報文匹配模塊,可以采用基于硬件的實(shí)現(xiàn),以獲得高性能,也 可以采用基于處理器核的軟件實(shí)現(xiàn),以獲得更多的靈活性;基于語義分析的引擎由于其內(nèi) 在復(fù)雜性,一般均采用軟件來實(shí)現(xiàn)。以上公開了網(wǎng)絡(luò)報文過濾引擎芯片的部分內(nèi)部處理模塊的實(shí)現(xiàn),下面詳細(xì)描述本發(fā)明公開的網(wǎng)絡(luò)加速模塊。圖3是網(wǎng)絡(luò)加速模塊的內(nèi)部結(jié)構(gòu),網(wǎng)絡(luò)加速模塊主要包括換行符判斷邏輯模塊、控制邏輯模塊、輸出邏輯模塊以及移位寄存器陣列。換行符判斷邏輯模塊置于報文的輸入 端,接收報文預(yù)處理模塊的輸出字符串流;控制邏輯模塊耦合于換行符判斷邏輯模塊,輸出 邏輯模塊以及移位寄存器陣列,用于對上述3個模塊的處理控制。移位寄存器陣列與換行 符判斷邏輯和輸出邏輯模塊相連接,用于對報文數(shù)據(jù)的重排處理和數(shù)據(jù)緩沖;輸出邏輯模 塊連接于移位寄存器陣列,用于對移位寄存器陣列輸出的報文進(jìn)行移位輸出。網(wǎng)頁的報文數(shù)據(jù)經(jīng)過報文預(yù)處理模塊解析后,提取其中文本信息部分,輸入到換 行符判斷邏輯模塊,換行符判斷邏輯模塊對輸入報文中的換行符” \n”進(jìn)行檢索,如果發(fā)現(xiàn) 報文中存在換行符,則輸出換行指示信號給控制邏輯模塊。報文數(shù)據(jù)經(jīng)過報文預(yù)處理模塊 后,換行符被從數(shù)據(jù)流中刪除,以使的跨行的關(guān)鍵詞或者語義能夠被連貫的分析檢索。換行 符判斷邏輯輸出的報文數(shù)據(jù)按每時鐘周期一個字符的速度輸入移位寄存器陣列。移位寄存器陣列由M行,N列的移位寄存器構(gòu)成。一個可能的實(shí)施例中,M = 128, N= 128,這樣的陣列每次可以處理長度達(dá)到Iw字以上的字符串,基本可以滿足網(wǎng)絡(luò)處理的 需求。每個移位寄存器為16bit,可以存儲一個ASCII碼或者一個Unicode字符,如果需要 對擴(kuò)展的字符集進(jìn)行處理,也可以將每個移位寄存器擴(kuò)展至16位或者32位。每個移位寄 存器內(nèi)的數(shù)據(jù)可以有3個移動方向,向左,向右(水平方向移動)或者向下(垂直方向移 動)。在移位時鐘的驅(qū)動下,每個時鐘周期,每個移位寄存器均可以輸出當(dāng)前的存儲數(shù)據(jù), 并存入移入的字符數(shù)據(jù)。從當(dāng)前字符串序列的第一個字符開始,每周期一個字符(ASCII碼 或者Unicode字符)按行方向移入移位寄存器,在第一時鐘周期,字符00移入移位寄存器 R00,第二周期,ROO中的內(nèi)容移入R01,字符01移入R00,第三周期,ROl中的內(nèi)容移入R02,
ROO中的內(nèi)容移入R01,字符02移入ROO......依此類推,直到換行符判斷邏輯模塊檢測
到了一個換行符,此時,控制邏輯模塊記下第一行的長度A0,第一移位寄存器行的所有數(shù)據(jù)
遷移到第二移位寄存器行,也就是說,R00, R01, R02......RON的所有數(shù)據(jù)全部移入對應(yīng)的
R10,R11,R12......RlN0從第二行的第一個字符開始,每時鐘周期一個字符(ASCII碼或者
Unicode字符)按行方向移入移位寄存器,在第一時鐘周期,字符10移入移位寄存器R00, 第二周期,ROO中的內(nèi)容移入R01,字符11移入R00,第三周期,ROl中的內(nèi)容移入R02,ROO
中的內(nèi)容移入R01,字符12移入ROO......依此類推,直到換行符判斷邏輯模塊檢測到了
一個換行符,此時,控制邏輯模塊記下第2行的長度Al,第一移位寄存器行的所有數(shù)據(jù)遷移
到第二移位寄存器行,也就是說,R00, ROl,R02......RON的所有數(shù)據(jù)全部移入對應(yīng)的R10,
Rll, R12......RlN,第2移位寄存器行的所有數(shù)據(jù)遷移到第3移位寄存器行,也就是說,
R10, Rll,R12......RlN的所有數(shù)據(jù)全部移入對應(yīng)的R20, R21,R22......R2N。對于當(dāng)前輸
入報文的剩余數(shù)據(jù),依次按上述步驟處理,直到最后一個字符輸入移位寄存器陣列。此時移
位寄存器中存儲了 L行數(shù)據(jù),每行的長度分別是A0,Al,A2......AL-1。其中,L代表當(dāng)前
輸入報文的行數(shù)。注意這里有2個實(shí)現(xiàn)的約束每一行的最大長度不能大于移位寄存器的 行長度N,當(dāng)前輸入報文的行數(shù)L不能大于移位寄存器的行數(shù)M。如果這2個約束中有一個 不能滿足,則當(dāng)前字符串不能被加速處理,移位寄存器中的數(shù)據(jù)被丟棄,報文由報文預(yù)處理 模塊直接出處至報文匹配模塊。通過對大量的重排報文分析,我們發(fā)現(xiàn)其中一個規(guī)律是,對于輸入的L行數(shù)據(jù),如果該報文是經(jīng)過重排的報文,則對于前K行,所有的行長度都是相等的,設(shè)其等于A,對于后 L-K行,長度是前K行長度減一(也就是長度為A-1)。因此,當(dāng)最后一行輸入移位陣列后
(此時M行N列的陣列里面有了 L行,每行的長度分別是AO,Al......AL-1),控制邏輯模塊
從最后一行(RL-1行)開始,判斷是否存在滿足如下條件的行1)從RL-I行開始,前K行的長度相等,設(shè)均為A 2)后續(xù)L-K行的長度相等,且長度均為前K行長度減一,設(shè)其為A-I如果當(dāng)前輸入報文滿足上述2個條件,則當(dāng)前的報文可能就是經(jīng)過重排的報文, 否則的話,認(rèn)為是常規(guī)報文,移位寄存器內(nèi)的結(jié)果丟棄,報文由報文預(yù)處理模塊直接出處至 報文匹配模塊。由于網(wǎng)絡(luò)文字的復(fù)雜性,網(wǎng)絡(luò)加速模塊也可能產(chǎn)生誤判,這時會將正常順序的報 文當(dāng)作經(jīng)過重排序的報文而再次排序?qū)е聛y序。一種優(yōu)選的實(shí)現(xiàn)是,報文匹配模塊對于網(wǎng) 絡(luò)加速模塊重排后的報文,均執(zhí)行2次匹配操作,一次是從網(wǎng)絡(luò)加速模塊獲得的重排報文, 一次是從報文預(yù)處理模塊直接獲得的原始報文。輸出邏輯模塊由一移位寄存器構(gòu)成,其每隔L個周期接收移位寄存器陣列輸出的 并行的L個數(shù)據(jù),并每周期輸出一個字符至報文匹配模塊,這里L(fēng)為當(dāng)前報文的行數(shù)。當(dāng)控制邏輯模塊判斷當(dāng)前報文為重排報文后,采取以下的步驟輸出待匹配報文A.控制前L行,每隔L個時鐘周期向左移位一個字符(第一行ROO輸出至輸出邏
輯模塊,ROl至R00,R02至ROl......,第二行RlO輸出值輸出邏輯模塊,Rll至R10,R12至
Rll......依此類推);B.控制輸出邏輯模塊,每時鐘周期向報文匹配模塊輸出1個字符;C.每L個時鐘周期報文長度A減1 ;D.當(dāng)報文長度A等于0,停止移位寄存器動作,輸出加速完成信號至報文匹配模 塊;E.等待下一個報文的輸入。當(dāng)控制邏輯模塊判斷當(dāng)前報文為是常規(guī)報文,移位寄存器內(nèi)的結(jié)果丟棄,報文由 報文預(yù)處理模塊直接出處至報文匹配模塊。如果控制邏輯判斷正確,則經(jīng)過網(wǎng)絡(luò)加速模塊的處理之后,報文匹配單元獲得原 始的待匹配報文。通過上述的操作,報文匹配單元會收到重排字符串,大大加速了報文分類過濾的 速度。雖然本發(fā)明已以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技 術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因?yàn)楸景l(fā)明的保護(hù)范 圍當(dāng)以權(quán)利要求所界定的為準(zhǔn)。
權(quán)利要求
一種網(wǎng)絡(luò)報文過濾引擎芯片,包括接口模塊、報文預(yù)處理模塊、網(wǎng)絡(luò)加速模塊以及報文匹配模塊,其中報文預(yù)處理模塊連接至接口模塊,網(wǎng)絡(luò)加速模塊耦接在報文預(yù)處理模塊以及報文匹配模塊之間,其特征在于所述網(wǎng)絡(luò)加速模塊包括換行符判斷邏輯模塊、控制邏輯模塊、輸出邏輯模塊以及移位寄存器陣列,其中所述移位寄存器陣列由M行×N列的移位寄存器構(gòu)成,數(shù)據(jù)沿行方向向左或向右移動,或者沿列方向整行向下移動。
2 如權(quán)利要求1所述的網(wǎng)絡(luò)報文過濾引擎芯片,其特征在于,所述的換行符判斷邏輯 模塊檢測輸入的字符串中是否存在換行符’ \n’,如果存在,則輸出換行指示信號給控制邏 輯模塊。
3.如權(quán)利要求2所述的網(wǎng)絡(luò)報文過濾引擎芯片,其特征在于,所述控制邏輯模塊根據(jù) 換行符判斷邏輯模塊輸出的換行指示信號,統(tǒng)計每行的長度,并控制移位寄存器陣列整行 下移。
4.如權(quán)利要求3所述的網(wǎng)絡(luò)報文過濾引擎芯片,其特征在于,當(dāng)字符串完全輸入移位 寄存器陣列后,所述控制邏輯模塊判斷當(dāng)前陣列中前K行的長度是否相等以及前L-K行的 長度是否相等且比前K行的長度小1,如果滿足條件則判定當(dāng)前的報文可能是經(jīng)過重排的 報文,否則認(rèn)為是常規(guī)報文,移位寄存器內(nèi)的結(jié)果丟棄,報文由報文預(yù)處理模塊直接出處至 報文匹配模塊。
5.如權(quán)利要求4所述的網(wǎng)絡(luò)報文過濾引擎芯片,其特征在于,當(dāng)控制邏輯模塊判斷當(dāng) 前報文可能為經(jīng)過重排報文,則采取以下的步驟輸出待匹配報文A.控制前L行,每時鐘周期向左移位一個字符;B.控制輸出邏輯模塊,每時鐘周期向報文匹配模塊輸出L個字符;C.每時鐘周期報文長度A減1;D.當(dāng)報文長度A等于0,停止移位寄存器,輸出加速完成信號至報文匹配單元。
6.如權(quán)利要求4所述的網(wǎng)絡(luò)報文過濾引擎芯片,其特征在于,所述報文匹配模塊對于 網(wǎng)絡(luò)加速模塊重排后的報文,均執(zhí)行2次匹配操作,一次是從網(wǎng)絡(luò)加速模塊獲得的重排報 文,一次是從報文預(yù)處理模塊直接獲得的原始報文。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)報文過濾引擎芯片,包括接口模塊、報文預(yù)處理模塊、網(wǎng)絡(luò)加速模塊以及報文匹配模塊,其中報文預(yù)處理模塊連接至接口模塊,網(wǎng)絡(luò)加速模塊耦接在報文預(yù)處理模塊以及報文匹配模塊之間。網(wǎng)絡(luò)加速模塊包括換行符判斷邏輯模塊、控制邏輯模塊、輸出邏輯模塊以及移位寄存器陣列,其中移位寄存器陣列由M行×N列的移位寄存器構(gòu)成,數(shù)據(jù)沿行方向向左或向右移動,或者沿列方向整行向下移動。有益效果通過網(wǎng)絡(luò)加速模塊,加速報文匹配的處理速度。
文檔編號H04L12/26GK101860485SQ201010189880
公開日2010年10月13日 申請日期2010年6月2日 優(yōu)先權(quán)日2010年6月2日
發(fā)明者孟路, 馬建鋒 申請人:上海融億信息技術(shù)有限公司