午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

使用網(wǎng)絡(luò)處理器和并行模式檢測(cè)引擎檢測(cè)侵入的制作方法

文檔序號(hào):7610922閱讀:325來(lái)源:國(guó)知局
專利名稱:使用網(wǎng)絡(luò)處理器和并行模式檢測(cè)引擎檢測(cè)侵入的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及用于檢測(cè)由系統(tǒng)組成的網(wǎng)絡(luò)中的惡意侵入的方法和系統(tǒng)。
背景技術(shù)
識(shí)別一組數(shù)據(jù)中的模式(pattern)在很多領(lǐng)域包括語(yǔ)音識(shí)別、圖像處理、地震數(shù)據(jù)等中都是重要的。某些圖像處理器收集圖像數(shù)據(jù)并隨后預(yù)處理該數(shù)據(jù)以使其與基準(zhǔn)數(shù)據(jù)相關(guān)聯(lián)。其他系統(tǒng)例如語(yǔ)音識(shí)別系統(tǒng)是實(shí)時(shí)的,其中實(shí)時(shí)地將輸入數(shù)據(jù)與基準(zhǔn)數(shù)據(jù)相比較以識(shí)別模式。一旦模式被“識(shí)別”或與基準(zhǔn)相匹配,則系統(tǒng)可輸出該基準(zhǔn)。例如,語(yǔ)音識(shí)別系統(tǒng)可輸出與被處理的語(yǔ)音模式等價(jià)的文本。其他系統(tǒng)如生物系統(tǒng)可使用類似技術(shù)來(lái)確定分子串例例如DNA的序列。
在某些系統(tǒng)中,需要發(fā)現(xiàn)嵌入連續(xù)數(shù)據(jù)流中的模式。在非對(duì)齊的數(shù)據(jù)流中,如果實(shí)施的僅是單一的逐字節(jié)比較,則存在可能錯(cuò)失模式的情況。當(dāng)在輸入流或要檢測(cè)的模式中存在重復(fù)的或嵌套重復(fù)的模式時(shí),將發(fā)生可能錯(cuò)失模式的情況。包含正被尋找的序列的一基準(zhǔn)模式(RP)被裝入存儲(chǔ)器中,在存儲(chǔ)器中該序列的每個(gè)元素具有唯一地址。將要與輸入模式(IP)的第一個(gè)元素相比較的、該RP的第一個(gè)元素的地址被裝入一地址寄存器中。該地址寄存器稱為“指針”。在通常情況下,可向一指針裝入一或者遞增(增加)或者遞減(減少)的地址。該指針?biāo)赶虻脑乇粰z索出來(lái),并與隨時(shí)鐘輸入或裝入一比較器中的輸入元素(IE)進(jìn)行比較。
在模式識(shí)別中,經(jīng)常希望將一IP的各元素與很多RP進(jìn)行比較。例如,可能希望比較從掃描一指紋得到的一IP(對(duì)于在指紋技術(shù)中定義的某些特征組合,典型地為1千字節(jié)大小)與一RP庫(kù)(存檔的所有掃描結(jié)果)。為快速完成工作,可將每個(gè)RP的元素并行地與IP中的元素相比較。每個(gè)RP可能有重復(fù)的子串(短模式),這些子串是嵌入該RP中的較小的模式。因?yàn)镽P庫(kù)可能非常大,所需的處理量可能是相當(dāng)大的。希望有一種方法來(lái)減少保存這些RP所需的存儲(chǔ)量。如果能夠減少用來(lái)表示RP的數(shù)據(jù)的量,則也會(huì)減少裝載和卸載RP所需的時(shí)間。并行處理也可用于每個(gè)RP和IP被裝入不同的處理單元以確定匹配的場(chǎng)合。
生物系統(tǒng)中的其他模式識(shí)別處理可能需要比較一IP與所存儲(chǔ)的大量具有重復(fù)的子串的RP。在小的并行處理單元中的處理可能受限于RP所需的存儲(chǔ)大小。用于化學(xué)分析、生物分析等的便攜式的、廉價(jià)的處理系統(tǒng)也會(huì)受限于快速處理大量RP所需的存儲(chǔ)量。
模式檢測(cè)或識(shí)別是當(dāng)今很多應(yīng)用中的瓶頸,并且軟件解決方案無(wú)法達(dá)到所需的性能。希望有一種用于快速匹配模式的可擴(kuò)展的硬件解決方案。還希望有一種允許多種方式(mode)的模式識(shí)別的系統(tǒng)。某些應(yīng)用要求在輸入數(shù)據(jù)流中的模式與希望的目標(biāo)模式的精確匹配。在其他情況下,希望確定最長(zhǎng)的匹配、最大字符數(shù)的匹配、或者需要各種字符包含或排除的“模糊”匹配。
侵入檢測(cè)系統(tǒng)(IDS)提供了檢測(cè)包中的肯定或很可能與惡意活動(dòng)相關(guān)的字節(jié)模式的手段。IDS可運(yùn)行于基于主機(jī)的系統(tǒng)上或者稱為基于網(wǎng)絡(luò)的系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)流上。在任一情況下,IDS尋找源自內(nèi)部網(wǎng)絡(luò)的外部或內(nèi)部的攻擊(任何惡意活動(dòng))并發(fā)揮著非常類似于防盜報(bào)警器的作用。這實(shí)質(zhì)上是一種模式識(shí)別的任務(wù),其中IDS分析進(jìn)入的數(shù)據(jù),同時(shí)試圖檢測(cè)指示已知侵入者的存在的已知模式(特征(signature))。
侵入檢測(cè)產(chǎn)品是通過(guò)擴(kuò)展用來(lái)管理來(lái)自威脅和弱點(diǎn)的風(fēng)險(xiǎn)的可用選項(xiàng)來(lái)協(xié)助保護(hù)網(wǎng)絡(luò)免受侵入的工具。侵入檢測(cè)能力可幫助公司保護(hù)其信息。當(dāng)系統(tǒng)檢測(cè)到攻擊后,系統(tǒng)可提供關(guān)于該攻擊的信息??墒褂迷撔畔?lái)刪除、記錄或避免侵入包。然后技術(shù)支持調(diào)查試圖發(fā)現(xiàn)侵入者是如何突破網(wǎng)絡(luò)安全性的,并隨后阻止未來(lái)的侵入者使用該突破方法。
惡意通信流在今天的因特網(wǎng)上是常見(jiàn)的。在高帶寬時(shí),當(dāng)前的IDS的性能可能成為瓶頸。某些攻擊者可能發(fā)起一高速攻擊以便淹沒(méi)IDS,而同時(shí)發(fā)起一低速攻擊,并希望低速攻擊不會(huì)引起注意。這些攻擊可能是實(shí)時(shí)的、正在進(jìn)行的通信流攻擊。這意味著計(jì)算網(wǎng)絡(luò)必須持續(xù)地掃描通信流,以捕獲這些惡意活動(dòng)。當(dāng)前的IDS軟件的吞吐量反比于網(wǎng)絡(luò)負(fù)載,因而更易于受到攻擊,并運(yùn)行在更高的負(fù)載下。IDS軟件使得能夠或者進(jìn)行全面檢測(cè)或者進(jìn)行高速檢測(cè),但不能同時(shí)獲得這兩者。
因此,需要一種構(gòu)成這樣的IDS的方法和電路,該IDS能夠檢測(cè)侵入,識(shí)別多種攻擊,并運(yùn)行在高性能網(wǎng)絡(luò)的實(shí)時(shí)速度下。

發(fā)明內(nèi)容
一種網(wǎng)絡(luò)處理器包含一種并行模式檢測(cè)引擎(PPDE),該P(yáng)PDE包括大量被設(shè)計(jì)專用于模式比較和檢測(cè)的處理單元(PU)。這些處理單元是高度可伸縮的,并且并行地以多種可編程方式進(jìn)行模式檢測(cè),其中每一個(gè)PU并行地接收輸入數(shù)據(jù)。每個(gè)PU已經(jīng)接收唯一的標(biāo)識(shí)(ID)數(shù)據(jù),以及代表與輸入數(shù)據(jù)流進(jìn)行比較的模式的字節(jié)序列。在各PU之間的通信允許將具有希望的比較結(jié)果數(shù)據(jù)的PU的ID輸出到耦合所有PU的總線結(jié)構(gòu)上。當(dāng)將模式數(shù)據(jù)裝入PU時(shí),設(shè)置全局配置寄存器,從而其定義了將執(zhí)行的匹配的類型,以及在相鄰的PU之間的所希望的級(jí)聯(lián)。以這種方式,PPDE使用級(jí)聯(lián)的PU組成的組來(lái)檢測(cè)比使用單個(gè)PU時(shí)所可能的更大的模式,而不必訴諸于占用更多時(shí)間的迭代過(guò)程。
該P(yáng)PDE是這樣的一種集成電路(IC),其具有大量PU,可與其他PPDE IC級(jí)聯(lián)在一起,并且可通過(guò)一輸入/輸出(IO)總線進(jìn)行配置。根據(jù)本發(fā)明的實(shí)施例,該IDS是通過(guò)將一個(gè)或多個(gè)PPDE IC耦合到一網(wǎng)絡(luò)處理器(NP)而構(gòu)成的。使用主計(jì)算機(jī)將侵入者的已知特征裝入IDS的PU中,作為要被匹配(檢測(cè))的模式。當(dāng)該NP接收到網(wǎng)絡(luò)通信流(輸入數(shù)據(jù))時(shí),它處理數(shù)據(jù)包,并將該數(shù)據(jù)以網(wǎng)絡(luò)數(shù)據(jù)發(fā)送給該IDS,該IDS將該輸入數(shù)據(jù)與模式數(shù)據(jù)字節(jié)進(jìn)行比較以尋找匹配。如果檢測(cè)到匹配,則輸出檢測(cè)到該匹配的PU的ID,其標(biāo)識(shí)出侵入者的特征。然后該NP可執(zhí)行應(yīng)對(duì)措施代碼來(lái)消除檢測(cè)到的侵入者的威脅。
可配置該IDS,從而可根據(jù)需要添加其他的PPDE IC。因?yàn)镻PDE IC被設(shè)計(jì)為它們的PU在并行總線上接收輸入數(shù)據(jù),是可編程的,它們的比較結(jié)果被輸出在輸出總線上,并且可以被級(jí)聯(lián),所以IDS是動(dòng)態(tài)可配置的,而不需要添加另外的邏輯。
以上相當(dāng)粗略地概述了本發(fā)明的特征和技術(shù)優(yōu)點(diǎn),以便更好地理解以下對(duì)本發(fā)明的詳細(xì)描述。本發(fā)明的其他特征和優(yōu)點(diǎn)將在下文中描述,它們構(gòu)成了本發(fā)明要求保護(hù)的主題。


為了更完整地理解本發(fā)明及其優(yōu)點(diǎn),現(xiàn)結(jié)合附圖參照以下描述,在附圖中圖1是適合于實(shí)現(xiàn)本發(fā)明的實(shí)施例的由N個(gè)處理單元(PU)構(gòu)成的并行模式檢測(cè)引擎(PPDE)的結(jié)構(gòu)框圖;圖2A-2D是可以為圖1的N個(gè)處理單元(PU)中的每一個(gè)編程的4種匹配方式的框圖;圖3是示出本發(fā)明的PPDE的可伸縮性的各種方式的圖示;圖4是適合于實(shí)現(xiàn)本發(fā)明的實(shí)施例的采用了1500個(gè)PU的PPDE集成電路的可獲得的性能結(jié)果的圖表;圖5是圖1的PPDE中的單個(gè)PU的概略框圖;圖6是圖1的PPDE中的單個(gè)PU的詳細(xì)框圖;圖7是圖1的PPDE中的單個(gè)PU的另一個(gè)詳細(xì)框圖;圖8是圖1的PPDE中的單個(gè)PU的一特定實(shí)現(xiàn)的電路圖;圖9是適合于實(shí)現(xiàn)本發(fā)明的實(shí)施例的用于匹配模式的方法步驟的流程圖;圖10是適于實(shí)現(xiàn)本發(fā)明的實(shí)施例的網(wǎng)絡(luò)處理器(NP)的框圖;圖11A-11G描述了可用于本發(fā)明的實(shí)施例的各種方式的模式匹配中的操作;圖12是根據(jù)本發(fā)明的實(shí)施例的侵入檢測(cè)系統(tǒng)(IDS)的框圖;圖13是用于本發(fā)明的實(shí)施例的方法步驟的流程圖;圖14是適合于實(shí)現(xiàn)本發(fā)明的實(shí)施例的用于在PPDE100中級(jí)聯(lián)多個(gè)PU500單元的通信電路的電路框圖;以及圖15是適合于實(shí)現(xiàn)本發(fā)明的實(shí)施例的在一PU500和兩個(gè)相鄰PU500單元之間的通信電路的另一個(gè)框圖。
具體實(shí)施例方式
在以下描述中,提出了很多特定細(xì)節(jié),以便提供對(duì)本發(fā)明的充分理解。然而對(duì)本領(lǐng)域的技術(shù)人員顯然的是,可以沒(méi)有這些特定細(xì)節(jié)而實(shí)施本發(fā)明。在其他一些情況下,公知的電路將以框圖的形式示出,以免因不必要的細(xì)節(jié)而模糊本發(fā)明。一般來(lái)說(shuō),省略了有關(guān)定時(shí)、通信協(xié)議中的數(shù)據(jù)格式等等的細(xì)節(jié),只要這些細(xì)節(jié)對(duì)于充分理解本發(fā)明不是必要的并且是處于相關(guān)領(lǐng)域的普通技術(shù)人員的技能范圍內(nèi)。
現(xiàn)在參照附圖,其中所示的元件不一定是按比例顯示的,并且相同或相似的元件在若干視圖中都以相同的標(biāo)號(hào)標(biāo)示。
軟件中數(shù)據(jù)流的順序匹配目前是一種中央處理單元(CPU)密集的任務(wù)。因此很難獲得高性能。模式匹配處理單元(此后稱為PU)體系結(jié)構(gòu)提供了高性能的匹配,因?yàn)樗且患S糜谀J狡ヅ涞挠布?。該P(yáng)U提供了更有效的搜索(匹配),因?yàn)槊總€(gè)輸入模式被并行地與相應(yīng)的目標(biāo)模式進(jìn)行匹配。并行匹配之所以可能,是因?yàn)榭梢约?jí)聯(lián)大量的PU。此外,每個(gè)PU具有這樣的內(nèi)建功能,其可通過(guò)納入這樣一些方式而減少所需PU的數(shù)量,這些方式允許包括通配符(目標(biāo)模式中的任意字符)、多個(gè)通配符和反向操作的匹配。PU體系結(jié)構(gòu)的快速模式檢測(cè)能力在網(wǎng)絡(luò)侵入檢測(cè)、數(shù)據(jù)庫(kù)掃描和移動(dòng)設(shè)備安全性應(yīng)用中是有用的。此外,使用其內(nèi)建的距離計(jì)算,可實(shí)現(xiàn)在圖像處理和生命科學(xué)應(yīng)用中特別有用的“模糊”模式檢測(cè)。
圖5是根據(jù)本發(fā)明的實(shí)施例的一PU 500的概略框圖。PU 500從標(biāo)識(shí)(ID)總線501、控制總線502和輸入數(shù)據(jù)總線503接收輸入。來(lái)自各總線的輸入被緩沖在ID寄存器509、控制寄存器505和輸入數(shù)據(jù)寄存器504中。來(lái)自控制寄存器505的控制數(shù)據(jù)被耦合到控制邏輯電路508,該電路也從存儲(chǔ)器507接收數(shù)據(jù)。來(lái)自輸入數(shù)據(jù)寄存器504的輸入數(shù)據(jù)被耦合到存儲(chǔ)器507、地址電路506、屏蔽電路510。地址電路506將地址耦合到存儲(chǔ)器507。地址電路506也耦合到屏蔽電路510和輸出電路512。輸出電路512接收來(lái)自ID寄存器509、地址電路506和距離電路511的數(shù)據(jù),并有選擇地將數(shù)據(jù)耦合到輸出總線513。
圖6是根據(jù)本發(fā)明的實(shí)施例的PU 500的另一更詳細(xì)的框圖。為清楚起見(jiàn),重復(fù)了圖5所示的方框。PU 500從標(biāo)識(shí)(ID)總線501、控制總線502和輸入數(shù)據(jù)總線503接收輸入。各總線的輸入被緩沖在ID寄存器509、控制寄存器505和輸入數(shù)據(jù)寄存器504中。存儲(chǔ)器507是一具有用于模式數(shù)據(jù)601和操作碼(Opcode)602的字段的寄存器陣列。存儲(chǔ)器507存儲(chǔ)與輸入數(shù)據(jù)相比較的模式。操作碼602定義正在執(zhí)行哪種類型的模式比較。操作碼602和來(lái)自控制寄存器505的控制位被耦合到控制邏輯電路508。模式數(shù)據(jù)601被耦合到屏蔽電路510中的屏蔽寄存器603。屏蔽寄存器603的輸出在邏輯與605中合并,以產(chǎn)生對(duì)距離電路511中的分量距離計(jì)算單元610的輸入。類似地屏蔽寄存器603的輸出在邏輯與606中合并,以形成對(duì)數(shù)據(jù)選擇器604的輸入。數(shù)據(jù)選擇器604在來(lái)自輸入寄存器504的輸入數(shù)據(jù)和來(lái)自地址寄存器614的地址之間進(jìn)行選擇以提供對(duì)分量距離計(jì)算單元610的輸入。地址寄存器614將地址耦合到存儲(chǔ)器507。分量距離計(jì)算單元610將輸出耦合到模式距離計(jì)算單元611。當(dāng)前的距離計(jì)算結(jié)果被存儲(chǔ)在距離寄存器612中。當(dāng)前的距離計(jì)算結(jié)果被向回耦合到模式距離計(jì)算單元611和比較電路607。將距離寄存器612的輸出與存儲(chǔ)在最終距離寄存器中的值相比較,以產(chǎn)生輸出GT 615。GT代表“大于”,并且當(dāng)存儲(chǔ)在最終距離寄存器中的值大于存儲(chǔ)在距離寄存器中的值時(shí),該信號(hào)被置為有效。存儲(chǔ)在最終距離寄存器608中的最終距離值是由距離選擇器609從輸入寄存器504或距離寄存器612中的選擇的。
每個(gè)PU 500具有有限的存儲(chǔ)器來(lái)存儲(chǔ)模式數(shù)據(jù)601。如果一模式較長(zhǎng),則可能合并幾個(gè)PU 500單元來(lái)存儲(chǔ)模式數(shù)據(jù)601的一個(gè)長(zhǎng)序列。例如,如果使用兩個(gè)PU 500,則當(dāng)一模式檢測(cè)階段開(kāi)始時(shí),使用該兩個(gè)PU 500單元中的第一個(gè)的存儲(chǔ)器507。根據(jù)匹配方式和操作碼602來(lái)修改該第一個(gè)PU 500的地址指針。當(dāng)?shù)刂分羔樀竭_(dá)其最后存儲(chǔ)器位置時(shí),將一最后信號(hào)650發(fā)送給該兩個(gè)PU 500單元中的第二個(gè),以便使用存儲(chǔ)在該第二個(gè)PU500中的、模式數(shù)據(jù)601的剩余部分來(lái)繼續(xù)匹配過(guò)程。在此情況下,使用控制總線502中的控制數(shù)據(jù)來(lái)初始化該第二個(gè)PU 500,因此僅當(dāng)該第二個(gè)PU 500接收到來(lái)自該第一個(gè)PU 500的“最后”信號(hào)650時(shí),它才開(kāi)始匹配。另外在此情況下,如果在匹配過(guò)程中指明了“重新裝載”指針地址,則必須更新用于該模式數(shù)據(jù)601的長(zhǎng)序列的該兩個(gè)PU 500單元的地址指針。這是通過(guò)向適當(dāng)?shù)腜U 500(其包含開(kāi)始的模式601字節(jié))發(fā)送“重新裝載”信號(hào)651來(lái)完成的。因?yàn)樵谝荒J綌?shù)據(jù)序列中的字節(jié)數(shù)不是特別限定的,可能以上述方式使用多于兩個(gè)PU 500單元。再次地,在控制總線502上的初始化控制數(shù)據(jù)配置PU 500以作為獨(dú)立的PU或級(jí)聯(lián)的PU運(yùn)行。
當(dāng)匹配方式是“模糊”匹配時(shí),模式距離計(jì)算單元611計(jì)算存儲(chǔ)在距離寄存器612中的當(dāng)前距離值。如果使用了兩個(gè)或更多級(jí)聯(lián)在一起的PU500單元來(lái)存儲(chǔ)用于模糊匹配的模式數(shù)據(jù)601,則通過(guò)距離信號(hào)652將距離值發(fā)送給級(jí)聯(lián)中的下一個(gè)PU 500,從而可確定最終的距離值,并將其存儲(chǔ)在級(jí)聯(lián)中的最后一個(gè)PU 500的最終距離寄存器608中。
圖7是電路PU 500的更多細(xì)節(jié)的框圖。將待比較的模式預(yù)裝入到存儲(chǔ)器(寄存器文件)507中作為一些字節(jié),其中每個(gè)字節(jié)存儲(chǔ)為位[11:4]中的8位。每個(gè)操作碼602存儲(chǔ)為位[3:0]。將輸入數(shù)據(jù)流750與由讀地址614所確定的、存儲(chǔ)器507中的存儲(chǔ)的字節(jié)相比較。比較和距離單元511為該比較操作計(jì)算距離。匹配邏輯709產(chǎn)生被耦合到重新裝載邏輯710、遞增邏輯711或保持邏輯712的邏輯信號(hào)。多種類型的匹配都是可能的,如由與模式的每個(gè)字節(jié)一起存儲(chǔ)在存儲(chǔ)器507中的操作碼602所確定的那樣。取決于操作碼602以及比較和距離單元511中的比較的結(jié)果,重新裝載邏輯710、遞增邏輯711和保持邏輯712中的邏輯確定是否保持當(dāng)前讀地址、遞增當(dāng)前讀地址到下一個(gè)值、或者將該讀地址重新裝載為其初始值以便在該模式的開(kāi)始進(jìn)行比較。選擇線邏輯705由啟動(dòng)邏輯713通過(guò)啟動(dòng)信號(hào)730使能。取決于重新裝載邏輯710、遞增邏輯711和保持邏輯712的輸出邏輯狀態(tài),對(duì)多路轉(zhuǎn)換器(MUX)704的輸入之一,即保持723、遞增722或重新裝載721,將成為邏輯1,從而分別選擇輸入703、702或701。遞增1(714)向當(dāng)前讀地址添加1并產(chǎn)生輸入702。當(dāng)前讀地址被耦合到保持703,并且該模式中的首地址是從714耦合的。寄存器614在操作碼602的控制下被裝載該模式中的首地址。包重置信號(hào)751重置讀地址。如果活動(dòng)信號(hào)706是邏輯0,則選擇線邏輯705被切斷(degate),從而所有的輸入保持703、遞增702和重新裝載701是邏輯0,并且MUX 704被切斷。為允許多個(gè)PU(例如PU 500)的級(jí)聯(lián),信號(hào)730和ID 707被耦合到下一個(gè)PU。類似地,PU 500從上一個(gè)PU接收ID 752和活動(dòng)信號(hào)753。啟動(dòng)邏輯712通過(guò)信號(hào)線790被耦合到前一個(gè)PU。
圖8是PU 500的電路的更詳細(xì)的電路圖。圖8示出了用于選擇線邏輯705(與門760-762)、重新裝載邏輯710(或門763和與門764-765)、遞增邏輯711(或門766和與門767-769)以及保持邏輯712(與門770)的更詳細(xì)的電路。反相器780-784用于產(chǎn)生操作碼602信號(hào)的補(bǔ)碼。
以下描述將參照?qǐng)D5、6、7和8,因?yàn)檫@些圖以不同程度的細(xì)節(jié)示出了PU 500。
該快速模式匹配技術(shù)利用了每個(gè)PU 500中的本地存儲(chǔ)器(例如寄存器陣列507),其包含一模式601和指定了各選項(xiàng)的標(biāo)志位(操作碼602)。這些選項(xiàng)可包括單個(gè)通配符、多個(gè)通配符、最后以及反向匹配操作。單個(gè)通配符匹配意味著如果已設(shè)置了單個(gè)通配符匹配操作碼602的字節(jié)匹配輸入流中的當(dāng)前字節(jié),則指示匹配。多個(gè)通配符匹配意味著如果不定數(shù)量的成序列的字節(jié)不與具有多個(gè)通配符操作碼602的字節(jié)匹配,則指示匹配。反向匹配意味著如果除了具有反向操作碼602的字節(jié)之外的每個(gè)字節(jié)都與輸入流中的一字節(jié)匹配,則指示匹配。最后操作碼602意味著該字節(jié)是一模式中的最后一個(gè)字節(jié)。
全局寄存器包括ID寄存器509、讀地址寄存器614、控制寄存器505和寄存器陣列507中的寄存器。其他全局寄存器,即活動(dòng)寄存器706、匹配寄存器708和選擇寄存器(未示出)可用于指定PU 500為活動(dòng)的、已匹配的、或已被選擇來(lái)寫入配置數(shù)據(jù)。一PU 500的ID是在包含多個(gè)PU的整個(gè)芯片中的唯一的ID,并用來(lái)確定在被并行地耦合到多于一個(gè)PU 500的數(shù)據(jù)流中已檢測(cè)到什么模式。計(jì)數(shù)器714用來(lái)在存儲(chǔ)的模式601中進(jìn)行索引,以便與輸入數(shù)據(jù)流(來(lái)自輸入總線503)中的字節(jié)801進(jìn)行比較,并且比較單元511中的比較器(未示出)將模式601與輸入數(shù)據(jù)801一次一個(gè)字節(jié)地進(jìn)行比較。
當(dāng)PU 500開(kāi)始在線時(shí),所有寄存器被初始化為0(重置)。接著PU 500從輸入總線503接收到唯一的ID,并將其存儲(chǔ)在ID寄存器509中。然后PU 500等待,直到接收到其他命令。第一個(gè)命令是選擇命令,其啟動(dòng)PU 500接收進(jìn)一步的只適用于PU 500的配置命令。此時(shí)可裝載全局寄存器。將包括模式數(shù)據(jù)601和相應(yīng)的操作碼數(shù)據(jù)602的數(shù)據(jù)字節(jié)發(fā)送給寄存器陣列507。當(dāng)配置完成并且活動(dòng)寄存器被置為“活動(dòng)的”時(shí),PU 500等待包重置信號(hào)802以使能讀地址614。這表明一個(gè)新的輸入包正被發(fā)送給PU 500以開(kāi)始匹配階段。
在匹配階段,每個(gè)時(shí)鐘周期發(fā)送給PU 500一個(gè)字節(jié)。PU 500比較存儲(chǔ)在寄存器陣列507的當(dāng)前寄存器陣列位置(由地址614確定)中的字節(jié)(601)與輸入寄存器504中的輸入字節(jié),并檢查用于存儲(chǔ)在601中的模式的、當(dāng)前寄存器陣列位置的字節(jié)的操作碼(602)。如果存在匹配,或者該操作碼602被置為單個(gè)通配符匹配,則遞增指針以在地址寄存器614中選擇下一個(gè)讀地址。如果用于模式601中的當(dāng)前字節(jié)的操作碼602被設(shè)置為多個(gè)通配符,則地址寄存器614的指針保持其當(dāng)前值。如果未發(fā)現(xiàn)匹配,則重新裝載該指針。該過(guò)程繼續(xù)進(jìn)行,直到該指針位于模式的最后位置并且發(fā)生匹配。此時(shí),在PU 500中匹配寄存器被置位。該過(guò)程的最后階段是報(bào)告發(fā)現(xiàn)的匹配。如果匹配寄存器708置位,則輸出邏輯電路512發(fā)送PU500的ID到輸出總線513。
圖1是并行模式檢測(cè)引擎(PPDE)100集成電路(IC)體系結(jié)構(gòu)的框圖。PPDE 100提供了多方式模式匹配,并具有高度靈活的、大規(guī)模并行的體系結(jié)構(gòu)。PPDE 100可執(zhí)行精確的、模糊的、最長(zhǎng)和最大字符的模式匹配??傻靡嬗赑PDE 100的高性能模式匹配的某些可能應(yīng)用有網(wǎng)絡(luò)侵入檢測(cè)、數(shù)據(jù)庫(kù)搜索圖像處理、無(wú)損壓縮、和實(shí)時(shí)數(shù)據(jù)處理(聲音、EKG、MRI等)。PPDE 100的體系結(jié)構(gòu)是高度靈活和可伸縮的,并可使其適應(yīng)于特定應(yīng)用。
PPDE 100是一種包括多個(gè)PU 500單元和其他邏輯功能的集成電路。輸入/輸出(I/O)接口101將PPDE芯片100耦合到系統(tǒng)功能。I/O接口101將64位的輸入數(shù)據(jù)耦合到IC輸入總線120,后者轉(zhuǎn)而耦合到輸入緩沖器103。將數(shù)據(jù)寫入輸入緩沖器103中由寫地址102確定的位置。使用讀地址108將數(shù)據(jù)從輸入緩沖器103中讀出。數(shù)據(jù)是使用由選擇線邏輯109控制的多路轉(zhuǎn)換器(MUX)115以8位字節(jié)從輸入緩沖器103中讀出的。輸入總線503被耦合到N個(gè)PU 500單元中的每一個(gè)。I/O接口101也將控制數(shù)據(jù)耦合到全局控制107,后者將ID總線501上的24位ID數(shù)據(jù)和控制總線502上的4位控制數(shù)據(jù)發(fā)送給每個(gè)PU 500單元(PU1-PUn)。
圖9是適合于實(shí)現(xiàn)本發(fā)明的實(shí)施例的使用一PU 500的模式匹配中的方法步驟的流程圖。在步驟901中,接收到一包重置信號(hào),其表明PU500的配置已完成,并且一新包(輸入模式)正被發(fā)送到PU,并且它應(yīng)當(dāng)開(kāi)始匹配過(guò)程。在步驟902,檢索出模式的第一模式字節(jié)。在步驟903,將該第一模式字節(jié)與輸入數(shù)據(jù)中的第一個(gè)字節(jié)進(jìn)行比較,并進(jìn)行檢驗(yàn)以確定它們是否匹配。該第一模式字節(jié)由地址指針(指針)指明。如果在步驟903中存在匹配,則在步驟910進(jìn)行檢驗(yàn)以確定是否已為當(dāng)前模式字節(jié)(在該第一遍,當(dāng)前模式字節(jié)為第一模式字節(jié))將操作碼602設(shè)置為“匹配”。如果操作碼602已被設(shè)置為“匹配”,則將指針增加1以移到下一個(gè)模式字節(jié),因?yàn)檫@是所希望的結(jié)果。如果當(dāng)前模式字節(jié)的操作碼602未被設(shè)置為“匹配”,則在步驟911檢驗(yàn)操作碼602以確定它是否已被設(shè)置為“反向”。如果操作碼602已被設(shè)置為“反向”,則這不是所希望的結(jié)果,并且在步驟913將指針重新裝載回到第一模式字節(jié),如果它尚未裝載第一模式字節(jié)的話。然后分支回到步驟902。如果在步驟911中操作碼602未被設(shè)置為“反向”,則檢驗(yàn)操作碼602以確定它是已被設(shè)置為“最后”,從而表明該模式字節(jié)是該模式中的最后一個(gè)字節(jié)。如果操作碼602在步驟912未被設(shè)置為“最后”,則在步驟914指針遞增,并且分支回到步驟902。如果操作碼602在步驟912已被設(shè)置為“最后”,則將指針“凍結(jié)”,并分支回到步驟901,等待一個(gè)新的包重置信號(hào)來(lái)重新開(kāi)始匹配處理。
如果在步驟903中模式字節(jié)和輸入數(shù)據(jù)字節(jié)不匹配,則在步驟904進(jìn)行檢驗(yàn)以確定是否已為該模式字節(jié)將操作碼602設(shè)置為“匹配”。如果在步驟904中確定操作碼602已被設(shè)置為“匹配”,則這不是所希望的結(jié)果,并且在步驟913將指針重新裝載回到第一模式字節(jié),如果它尚未裝載第一模式字節(jié)的話。然后分支回到步驟902。如果在步驟904中確定操作碼602未被設(shè)置為“匹配”,則在步驟905進(jìn)行檢驗(yàn)以確定操作碼602是否已被設(shè)置為“反向”。如果在步驟905中確定操作碼602已被設(shè)置為“反向”,則這是所希望的結(jié)果,并且在步驟914指針遞增,并且分支回到步驟902。如果在步驟905中確定操作碼602未被設(shè)置為“反向”,則在步驟906進(jìn)行檢驗(yàn)以確定操作碼602是否已被設(shè)置為“通配符”。如果在步驟906中確定操作碼602已被設(shè)置為“通配符”,則這是所希望的結(jié)果,并且在步驟914指針遞增,并且分支回到步驟902。如果在步驟906中確定操作碼602未被設(shè)置為“通配符”,則在步驟907進(jìn)行檢驗(yàn)以確定操作碼602是否已被設(shè)置為“多個(gè)通配符”。如果在步驟907中確定操作碼602已被設(shè)置為“多個(gè)通配符”,則在步驟908中保持該指針,并且分支回到步驟902。如果在步驟907中確定操作碼602未被設(shè)置為“多個(gè)通配符”,則在步驟909重新裝載指針,并且分支回到902。
參照?qǐng)D9所討論的操作稱為正則表達(dá)式匹配。在由根據(jù)本發(fā)明的實(shí)施例的包含了多個(gè)PU 500單元的PPDE所使用的匹配方式中使用了這些正則表達(dá)式。
圖11A-11G示出了當(dāng)將一模式601與一輸入數(shù)據(jù)流750進(jìn)行比較時(shí)采取的動(dòng)作。圖11A示出了這樣一種情形1100的3個(gè)時(shí)鐘周期,在這種情形中,輸入數(shù)據(jù)750是“AAC”,將其與身為“ABC”的模式數(shù)據(jù)601進(jìn)行比較,其中每個(gè)模式字節(jié)具有一操作碼602。動(dòng)作1101是響應(yīng)于操作碼602而采取的。在時(shí)鐘周期1,指針614開(kāi)始于模式601中的字節(jié)(“A”)。輸入數(shù)據(jù)750的第一個(gè)字節(jié)也是“A”。模式601中的第一字節(jié)的操作碼602被設(shè)置為“匹配”。因?yàn)檩斎霐?shù)據(jù)750的第一個(gè)字節(jié)和模式601匹配,并且操作碼601被設(shè)置為“匹配”,所以指針遞增而移到模式601中的第二個(gè)字節(jié)“B”。這是在一個(gè)時(shí)鐘周期中發(fā)生的,因此,在第二個(gè)時(shí)鐘周期(其被標(biāo)記為1102,因?yàn)槠鋵?duì)于圖11A中的特定模式是有重要意義的),將輸入模式750中的第二字節(jié)(“A”)與模式601中的第二字節(jié)(“B”)進(jìn)行比較。模式602的第二字節(jié)的操作碼602被設(shè)置為“匹配”。因?yàn)檫@兩個(gè)字節(jié)不匹配,所以模式601中的序列“AB”不能如操作碼602所要求的那樣與輸入數(shù)據(jù)750的前兩個(gè)字節(jié)“AA”匹配。因此,在時(shí)鐘周期2(1102)中,以模式602的第一個(gè)字節(jié)的地址重新裝載指針614,并再次進(jìn)行比較。在時(shí)鐘周期3,將輸入數(shù)據(jù)750中的第三個(gè)字節(jié)與模式602中的第一個(gè)字節(jié)“A”進(jìn)行比較。
圖11B示出了這樣一種情形1110,其中輸入數(shù)據(jù)流750的字節(jié)序列“CDE”確實(shí)與匹配模式602“CDE”匹配,但其中一個(gè)模式字節(jié)的操作碼602被設(shè)置為“反向”,指示在輸入數(shù)據(jù)750中的一字節(jié)與模式601中的一字節(jié)之間的匹配不是所希望的。在時(shí)鐘周期1,輸入數(shù)據(jù)750中的第一字節(jié)“C”與模式601中的“C”匹配,并且操作碼602被設(shè)置為“匹配”。因?yàn)檫@是所希望的結(jié)果,指針614遞增,并且將輸入數(shù)據(jù)750的第二字節(jié)(“D”)與模式601的第二字節(jié)(“D”)進(jìn)行比較,并且這兩個(gè)字節(jié)確實(shí)匹配。但是,操作碼602已被設(shè)置為“反向”因而匹配不是所希望的,因此在時(shí)鐘周期2(1103)指針614被重新裝載,并且再次選擇模式601的第一字節(jié)。在時(shí)鐘周期3,將輸入數(shù)據(jù)750的第三字節(jié)“E”與模式601的第一字節(jié)“C”進(jìn)行比較。圖11B的例子是“尋找”一輸入序列“C!DE”,其中“!D”表示除“D”之外的任何字符是可接受的。
圖11C示出了這樣一種情形1120,其中一完整的模式601被顯示為具有一被設(shè)置為“最后”的操作碼602。在時(shí)鐘周期1,輸入數(shù)據(jù)750中的第一字節(jié)“F”與模式601中的第一個(gè)字節(jié)“F”匹配,并且操作碼602被設(shè)置為“匹配”。因?yàn)檫@是正確的結(jié)果,指針614遞增。在時(shí)鐘周期2,輸入數(shù)據(jù)750的第二字節(jié)“G”與模式601的第二字節(jié)“G”相匹配,并且操作碼602已被設(shè)置為“匹配”。再次地,指針614遞增,因?yàn)檫@是正確的結(jié)果。在時(shí)鐘周期3(1104),輸入數(shù)據(jù)750的第三字節(jié)“H”與模式601的第三字節(jié)“H”匹配。在這種情況下,操作碼602已被設(shè)置為“最后”,表明該第三個(gè)字節(jié)是一完整模式601(在該情況中為“FGH”)中的最后一個(gè)字節(jié)。在這種情況下,在輸入數(shù)據(jù)750中檢測(cè)到了模式“FGH”,并且可使一匹配信號(hào)有效。
因?yàn)檫€存在其他輸入數(shù)據(jù)750,將指針614重新裝載回到模式601的第一個(gè)字節(jié),并且匹配過(guò)程繼續(xù)“尋找”在輸入數(shù)據(jù)750的隨后字節(jié)中完整的模式“FGH”的其他出現(xiàn)。
圖11D示出了這樣一種情形1130,其中一模式601字節(jié)具有被設(shè)置為“反向”的操作碼602,并且字節(jié)不匹配。在時(shí)鐘周期1,輸入數(shù)據(jù)750中的第一字節(jié)“I”與模式601中的第一個(gè)字節(jié)“I”匹配,并且操作碼602被設(shè)置為“匹配”。因?yàn)檫@是所希望的結(jié)果,指針614遞增,并且將輸入數(shù)據(jù)750的第二字節(jié)“J”與模式601的第二字節(jié)“I”相比較,并且這些字節(jié)不匹配。然而,操作碼602已被設(shè)置為“反向”,因而不匹配是所希望的結(jié)果;因此,在時(shí)鐘周期2(1105),指針614遞增,并且再次選擇模式601的第三個(gè)字節(jié)“K”。在時(shí)鐘周期3,將輸入數(shù)據(jù)750的第三字節(jié)“K”與模式601的第三字節(jié)“K”比較。再次地,檢測(cè)到匹配,并且指針614遞增。圖11D的例子是“尋找”一輸入序列“I!JK”,其中“!J”表示除“J”之外的任何字符是可接受的。
圖11E示出了這樣一種情形1140,其中模式601匹配輸入數(shù)據(jù)750中的一序列,并且操作碼602被設(shè)置為“匹配”。在時(shí)鐘周期1,指針614開(kāi)始于模式601中的字節(jié)(“L”)。輸入數(shù)據(jù)750中的第一字節(jié)也是“L”。模式601中的第一字節(jié)的操作碼602被設(shè)置為“匹配”。因?yàn)檩斎霐?shù)據(jù)750中的第一字節(jié)與模式601匹配,并且操作碼602被設(shè)置為“匹配”,指針614遞增到模式601中的第二個(gè)字節(jié)“M”。在第二個(gè)時(shí)鐘周期,將輸入數(shù)據(jù)750中的第二字節(jié)(“M”)與模式601中的第二字節(jié)(“M”)相比較。模式601的第二個(gè)字節(jié)“M”的操作碼602已被設(shè)置為“匹配”。因?yàn)檫@兩個(gè)字節(jié)匹配,指針614再次遞增。在時(shí)鐘周期3,將輸入數(shù)據(jù)750中的第三字節(jié)“N”與模式601中的第三字節(jié)“N”比較。因?yàn)樗鼈兤ヅ?,指針再次遞增。圖11E示出了模式601中的“LMN”與輸入數(shù)據(jù)750中的序列“LMN”的部分匹配。
圖11F示出了這樣一種情形1150,其中沒(méi)有模式匹配,并且已為模式601中的一字節(jié)設(shè)置了通配符操作碼。在時(shí)鐘周期1,輸入數(shù)據(jù)750中的“O”與模式601中“O”匹配。因?yàn)椴僮鞔a602被設(shè)置為“匹配”,指針614遞增。在第二個(gè)時(shí)鐘周期,模式601的第二字節(jié)“O”與輸入數(shù)據(jù)750的第二字節(jié)“P”不匹配。然而,因?yàn)椴僮鞔a602已被設(shè)置為“通配符”,任何字符都是可接受的,因而指針614再次遞增。在時(shí)鐘周期3,模式601的第三字節(jié)“Q”與輸入數(shù)據(jù)750中的第三字節(jié)“Q”匹配,因而指針614遞增。在這種情況下,發(fā)現(xiàn)了“O·Q”,其中“·”表示任何字符。
圖11G示出了這樣一種情形1160,其中沒(méi)有模式匹配,并且模式601中的一字節(jié)具有已被設(shè)置為“多個(gè)通配符”(簡(jiǎn)單地示為“多個(gè)”)的操作碼602。在時(shí)鐘周期1,模式601中的第一字節(jié)“T”不與輸入數(shù)據(jù)750中的第一個(gè)字節(jié)“R”匹配。然而,因?yàn)椴僮鞔a602被設(shè)置為“多個(gè)”,指針614保持在其當(dāng)前位置(在該情況中,為模式601的第一個(gè)字節(jié))。在時(shí)鐘周期2,模式601的第一個(gè)字節(jié)“T”不與輸入數(shù)據(jù)750中的第二字節(jié)匹配。因?yàn)椴僮鞔a602仍被設(shè)置為“多個(gè)”,指針614被保持在模式601的第一個(gè)字節(jié)。在時(shí)鐘周期3,模式601的第一個(gè)字節(jié)“T”確實(shí)與輸入數(shù)據(jù)750的第三字節(jié)匹配,因而指針614遞增到模式601的第二個(gè)字節(jié)。在時(shí)鐘周期4,模式601的第二個(gè)字節(jié)確實(shí)與輸入數(shù)據(jù)750的第四個(gè)字節(jié)匹配,因而指針614再次遞增。在時(shí)鐘周期5(未示出),模式601的第三個(gè)字節(jié)與輸入數(shù)據(jù)750的第五個(gè)字節(jié)匹配,并且檢測(cè)到輸入數(shù)據(jù)750中的模式“TUV”。
PPDE 100具有4種匹配方式精確的、最長(zhǎng)的、最大的和模糊的。精確匹配可用于對(duì)齊或非對(duì)齊數(shù)據(jù),并且可包含正則表達(dá)式例如單個(gè)通配符、多個(gè)通配符、反向、或包含集(inclusive set)。精確匹配方式可用于諸如網(wǎng)絡(luò)侵入等應(yīng)用中,其中線路速度匹配是關(guān)鍵性的,并且只需要二元的匹配或不匹配響應(yīng)。
在最長(zhǎng)匹配方式中,每個(gè)PU 500跟蹤連續(xù)的匹配字節(jié)的數(shù)量,并且直到一模式包的末尾才重置。在最長(zhǎng)匹配方式中,每個(gè)PU 500將匹配字節(jié)的數(shù)量與其ID一起輸出給ID選擇單元114(圖1A)。然后ID選擇單元114將具有最大數(shù)量的匹配字節(jié)的PU 500的ID以及該最長(zhǎng)匹配的長(zhǎng)度值輸出給輸出緩沖器105。
在最大匹配方式中,每個(gè)PU 500跟蹤匹配字節(jié)的數(shù)量,并且直到一模式包的末尾才重置。在這種方式中,每個(gè)PU 500將匹配字節(jié)的數(shù)量與其ID一起輸出給ID選擇單元114。然后ID選擇單元114將具有最大數(shù)量的匹配的PU 500的ID以及該最大數(shù)量的值輸出給輸出緩沖器105。
在模糊匹配方式中,每個(gè)PU 500“尋找”接近的模式,并且然后將具有最接近的匹配的PU 500的ID以及一相應(yīng)的量化了該匹配的接近程度的距離值輸出給ID選擇單元114,后者轉(zhuǎn)而將結(jié)果輸出給輸出緩沖器105。該距離是在輸入模式和先前存儲(chǔ)在存儲(chǔ)器中的基準(zhǔn)模式(RP)之間進(jìn)行比較的結(jié)果。距離計(jì)算方法是基于用戶可選擇的準(zhǔn)則??墒褂萌舾蓽?zhǔn)則,并且準(zhǔn)則可使用“差異的絕對(duì)值”算符。在曼哈坦(Manhattan)距離的情況下,可將連續(xù)的初級(jí)距離相加,即dist=sum(abs(IEi-REi)),或者在最大準(zhǔn)則的情況下,選擇其中的最大值來(lái)確定最終的距離。即dist=max(abs(IEi-Rei)),其中IEi(輸入元素)和REi(基準(zhǔn)元素)分別是輸入模式IP和存儲(chǔ)的原型基準(zhǔn)模式RP的第i個(gè)分量(變量i的變化范圍為1到k)。注意“abs”是“絕對(duì)值”的通??s寫。也存在其他準(zhǔn)則,例如諸如dist=square root(sum(IEi-REi)2等L2準(zhǔn)則。L2準(zhǔn)則被稱為“歐幾里德的”,而曼哈坦及最大準(zhǔn)則是“非歐幾里德的”準(zhǔn)則的例子。其他歐幾里德或非歐幾里德準(zhǔn)則(例如“匹配/不匹配”)是本領(lǐng)域的技術(shù)人員已知的。特別地,由“match(IEi,REi)”算符所表示的“匹配/非匹配”準(zhǔn)則被廣泛使用。最接近的匹配是具有最低結(jié)果的模式。模糊匹配在圖像處理以及其中輸入數(shù)據(jù)流具有施加于數(shù)據(jù)之上的白噪聲的實(shí)時(shí)數(shù)據(jù)處理中是有用的。
圖2A示出了使用根據(jù)本發(fā)明的實(shí)施例的PPDE 100的精確匹配方式200的一例子。模式203對(duì)應(yīng)于標(biāo)號(hào)為1-n并標(biāo)識(shí)了PPDE 100中所包含n個(gè)PU 500單元的各ID號(hào)碼205。輸入模式201將被并行發(fā)送這n個(gè)PU 500單元中的每一個(gè)。在該方式中,PPDE 100被編程為去尋找是否在輸入數(shù)據(jù)流201中存在這n個(gè)模式中的任何一個(gè)。通過(guò)查看,可以看到只有模式“4”以其精確的序列存在于所示輸入數(shù)據(jù)流201的一部分中。在這種情況下,具有該精確匹配的PU 500的ID(在該情況中,該ID是“4”)將被輸出(輸出204)給ID選擇單元114(未示出),而后者將把該值發(fā)送給輸出緩沖器105(未示出)。
圖2B示出了使用根據(jù)本發(fā)明的實(shí)施例的PPDE 100的最長(zhǎng)匹配方式220的一例子。再次地,輸入數(shù)據(jù)流201被并行耦合到具有標(biāo)號(hào)為1-n的ID號(hào)碼205的n個(gè)PU 500單元。在該方式中,PPDE 100被編程為去確定模式213中的在輸入數(shù)據(jù)流201中出現(xiàn)的最多的連續(xù)字節(jié)。再次地,通過(guò)查看,可以看到模式“4”具有帶有出現(xiàn)在輸入數(shù)據(jù)流201中的5個(gè)連續(xù)字節(jié)“ABCDE”的最長(zhǎng)匹配。在這種情況下,具有該最長(zhǎng)匹配的PU 500的ID(在該情況中,該ID是“4”)將和最長(zhǎng)匹配值“5”一起被輸出(輸出204)給ID選擇單元114(未示出),而后者將把該值發(fā)送給輸出緩沖器105(未示出)。
圖2C示出了使用根據(jù)本發(fā)明的實(shí)施例的PPDE 100的最大匹配方式230的一例子。再次地,輸入數(shù)據(jù)流212被并行耦合到具有標(biāo)號(hào)為1-n的ID號(hào)碼205的n個(gè)PU 500單元。在該方式中,PPDE 100被編程為去確定模式223中的在輸入數(shù)據(jù)流212中出現(xiàn)的未必呈連續(xù)順序的最大數(shù)量的字節(jié)。再次地,通過(guò)查看,可以看到模式“4”具有帶有出現(xiàn)在輸入數(shù)據(jù)流212中的5個(gè)匹配字節(jié)“ACYEF”的最大數(shù)量。在這種情況下,具有該最大數(shù)量匹配的PU 500的ID(在該情況中,該ID是“4”)將和該最大數(shù)量值“5”一起被輸出(輸出206)給ID選擇單元114(未示出),而后者將把該值發(fā)送給輸出緩沖器105(未示出)。
圖2D示出了使用根據(jù)本發(fā)明的實(shí)施例的PPDE 100的模糊匹配方式240的一例子。輸入數(shù)據(jù)流222被并行耦合到具有標(biāo)號(hào)為1-n的ID號(hào)碼205的n個(gè)PU 500單元。在該例子中,輸入數(shù)據(jù)流222是模擬信號(hào),其將被數(shù)字化,并且每個(gè)8位輸入值將被并行發(fā)送給n個(gè)PU 500單元。在該方式中,PPDE 100被編程為去確定其中哪一個(gè)模式233最接近地匹配輸入數(shù)據(jù)流222。再次地,通過(guò)查看,可以看到模式“4”具有最接近的匹配。在實(shí)際操作中,將使用距離電路611(未示出)來(lái)進(jìn)行這種判定。在這種情況下,具有該最接近匹配的PU 500的ID(在該情況中,該ID是“4”)將和該距離值“10”一起被輸出給ID選擇單元114(未示出),而后者將把該值發(fā)送給輸出緩沖器105(未示出)。
圖3是示出了PPDE 100的可伸縮性的框圖。PPDE 100的體系結(jié)構(gòu)允許將多個(gè)芯片級(jí)聯(lián)起來(lái)??墒褂眠@一特征或者增加處理單元的數(shù)量,或者通過(guò)將輸入數(shù)據(jù)在若干芯片之間劃分而提高性能。圖3示出了芯片的數(shù)量和PU 500單元的數(shù)量之間的直接相關(guān)性。方框303示出了一個(gè)PPDE 100芯片的標(biāo)準(zhǔn)性能。當(dāng)沿著X軸添加PPDE 100芯片時(shí)(通過(guò)級(jí)聯(lián)),性能就提高了。此外,當(dāng)沿著Y軸增加每個(gè)PPDE 100芯片的PU 500單元的數(shù)量時(shí),性能也提高了。方框301示出了通過(guò)添加4個(gè)芯片(1500個(gè)PU 500單元),處理速度提高到對(duì)于1500個(gè)模式的8Gb/sec。方框304示出了使用4個(gè)芯片來(lái)增加模式的數(shù)量,而同時(shí)保持2Gb/sec的處理速度。方框302示出了添加5組耦合起來(lái)以處理6000個(gè)模式4個(gè)芯片,從而使得系統(tǒng)可以10Gb/sec的速度處理6000個(gè)模式。
圖4示出了PPDE 100芯片的性能表。使用.13微米CMOS技術(shù),具有1500個(gè)PU 500單元的PPDE 100將產(chǎn)生8毫米(mm)×8毫米的芯片尺寸。該相應(yīng)的PPDE 100將獲得250MHz頻率下的2Gb/sec的帶寬,其中每個(gè)時(shí)鐘周期處理一個(gè)8位字節(jié)。以這種速度,該P(yáng)PDE 100芯片將消耗大約300毫瓦(mw)的功率,并將以每秒1.25萬(wàn)億次運(yùn)算的速度進(jìn)行計(jì)算。該P(yáng)PDE 100具有被置于等待狀態(tài)的能力,在這種狀態(tài)中它將消耗最少量的功率。PPDE 100可與任何I/O接口101一起使用。使用外圍部件互連(PCI)協(xié)議,在I/O 100處可接收最高4Gb/sec的數(shù)據(jù)。PCI連接將具有88個(gè)I/O信號(hào),其中64個(gè)將是進(jìn)入數(shù)據(jù),24個(gè)被保留用于控制。
網(wǎng)絡(luò)處理器(NP)是一種可編程的CPU芯片,其已被優(yōu)化用于網(wǎng)絡(luò)和通信功能。它向網(wǎng)絡(luò)設(shè)備商提供了現(xiàn)成的用于建造路由器、交換機(jī)和接入設(shè)備的遠(yuǎn)比設(shè)計(jì)定制的ASIC芯片更快的選擇。網(wǎng)絡(luò)處理器被編程為執(zhí)行由設(shè)備所支持的包處理,并且預(yù)期它將在除最高端產(chǎn)品之外的所有產(chǎn)品中被廣泛使用。
圖10示出了適合于實(shí)現(xiàn)本發(fā)明的實(shí)施例的一網(wǎng)絡(luò)處理器1000的框圖。物理層設(shè)備1007具有分別耦合到中間數(shù)據(jù)存儲(chǔ)PMM-UP 1009和PMM-DN 1008的直接存儲(chǔ)器單元(DMU)總線1015和1014。以這種方式,數(shù)據(jù)被接收自并傳送給物理層設(shè)備1007。EPC 1006分別通過(guò)連接1050和1056與入隊(duì)/出隊(duì)調(diào)度器(EDS)-UP 1005和EDS-DN 1004單元兩者耦合(UP和DN代表數(shù)據(jù)流的方向)。EPC 1006還具有內(nèi)部片上存儲(chǔ)器1011。EPC 1006中的所選單元使用一接口連接1054通向外部世界(例如,互聯(lián)網(wǎng)連接)。網(wǎng)絡(luò)處理器1000還可耦合到包括SRAM和DRAM以及數(shù)據(jù)存儲(chǔ)設(shè)備1010的外部芯片存儲(chǔ)器1001。網(wǎng)絡(luò)處理器1000還可包括其自身的存儲(chǔ)器,在這種情況下所述存儲(chǔ)器塊1001將局部化于網(wǎng)絡(luò)處理器的內(nèi)部。數(shù)據(jù)是通過(guò)包存儲(chǔ)器模塊(PMM)-UP 1009和耦合到交換結(jié)構(gòu)接口(switchfabric interface)1002的接口單元1012耦合到EDS-UP 1005的。接口單元1012包括串行數(shù)據(jù)存儲(chǔ)器(SDM)、串行接口(SIF)、和數(shù)據(jù)對(duì)齊串行鏈路(DASL),后者是IBM的專有接口??墒褂贸鼶ASL 1012之外的其他接口,并仍處于本發(fā)明的范圍之內(nèi)。數(shù)據(jù)通過(guò)接口單元1013而從交換結(jié)構(gòu)接口1003到來(lái),接口單元1013也包括DASL、SIF和SDM-DN。然后將數(shù)據(jù)耦合到EDS-DN 1004,后者轉(zhuǎn)而又耦合到PMM-DN 1008。以這種方式,數(shù)據(jù)輸入并被EPC 1006置于所希望的包協(xié)議中,并輸出到物理層設(shè)備或返回到交換結(jié)構(gòu)。EPC 1006包括專用處理器(Pico處理器),這些處理器可由制造商而不是最終用戶編程。以這種方式,制造商可定制網(wǎng)絡(luò)處理器1000以用于他們希望的應(yīng)用,而不必訴諸于制造ASIC。EPC中的處理器引擎足夠快,其操作可與定制的ASIC相比。
圖1中示出的PPDE 100適合于實(shí)現(xiàn)本發(fā)明的實(shí)施例,并且當(dāng)與一NP結(jié)合時(shí)可被配置為提供滿足網(wǎng)絡(luò)速度要求的一流的成本高效的方法,該方法具有足夠的性能和可伸縮性以滿足侵入檢測(cè)要求。PPDE 100被設(shè)計(jì)用于識(shí)別和分類應(yīng)用,這些應(yīng)用當(dāng)前需要超級(jí)計(jì)算機(jī)的處理能力。NP 1000被設(shè)計(jì)用于從網(wǎng)絡(luò)讀取數(shù)據(jù)和向網(wǎng)絡(luò)寫入數(shù)據(jù),并執(zhí)行快速分類和路由功能。
與現(xiàn)有的IDS模式匹配硬件技術(shù)相比,PPDE 100是具有適應(yīng)性和高度靈活性的體系結(jié)構(gòu)。PPDE 100也沒(méi)有由通用處理器強(qiáng)加的速度限制,因?yàn)樗褂闷涓鱾€(gè)PU 500單元來(lái)并行地計(jì)算侵入特征的所有匹配。此外,在侵入檢測(cè)中需要PPDE 100的適應(yīng)能力,因?yàn)樾碌墓舨粩啾话l(fā)現(xiàn),并且侵入特征的列表繼續(xù)看起來(lái)無(wú)止境地增長(zhǎng)著。
PPDE 100單元提供了靈活的和大規(guī)模并行的體系結(jié)構(gòu),并且具有幾乎無(wú)限的可伸縮性。PPDE 100體系結(jié)構(gòu)能夠以1Gb/sec或更高的速率進(jìn)行處理。PPDE 100是侵入檢測(cè)應(yīng)用的理想解決方案。
圖12是根據(jù)本發(fā)明的實(shí)現(xiàn)例的利用一NP(例如,NP 1000)和一個(gè)或多個(gè)PPDE的IDS 1200的方框圖。通過(guò)網(wǎng)絡(luò)連接1003將網(wǎng)絡(luò)輸入數(shù)據(jù)1201接收到網(wǎng)絡(luò)處理器1000。存儲(chǔ)器1001可用于存儲(chǔ)程序、侵入特征、每個(gè)PPDE 100(1207-1210)中的每個(gè)PU 500的標(biāo)識(shí)(ID)數(shù)據(jù)。PPDE輸入總線1206用于將控制數(shù)據(jù)、侵入特征數(shù)據(jù)、和ID數(shù)據(jù)耦合到每個(gè)PU500單元。一旦PU 500單元已裝載了ID數(shù)據(jù)和它們的侵入特征數(shù)據(jù),則它們就準(zhǔn)備好被使能開(kāi)始逐字節(jié)地比較輸入數(shù)據(jù)字節(jié)和侵入特征數(shù)據(jù)。網(wǎng)絡(luò)輸入數(shù)據(jù)1201由網(wǎng)絡(luò)處理器1000接收,并被分析以確定包是否有效。無(wú)效包被丟棄,并且有效包被轉(zhuǎn)換為與PPDE 1207-PPDE 1209兼容的格式。有效包數(shù)據(jù)也與路由數(shù)據(jù)一起作為輸出數(shù)據(jù)1208發(fā)送到網(wǎng)絡(luò)連接1002上。PPDE 1207-PPDE 1209中的PU 500單元通過(guò)級(jí)聯(lián)總線1201進(jìn)行通信,該級(jí)聯(lián)總線允許當(dāng)PU 500單元級(jí)聯(lián)在一起時(shí)必需的信息交換。構(gòu)成級(jí)聯(lián)總線1210的電路將參照?qǐng)D14和圖14詳細(xì)描述。級(jí)聯(lián)總線1210允許控制數(shù)據(jù)動(dòng)態(tài)地配置PPDE 1207-1209中的PU 500單元,以用于長(zhǎng)于單個(gè)單元所能處理的侵入者特征或者擴(kuò)大可被并行的處理的侵入者特征的數(shù)量。
如果一PU 500檢測(cè)到對(duì)一特定侵入特征的匹配,則它通過(guò)I/O總線1206將其ID數(shù)據(jù)輸出到網(wǎng)絡(luò)處理器(NP)1000。然后NP 1000能夠在存儲(chǔ)器1001中查找檢測(cè)到的侵入者特征。存儲(chǔ)器1001也包含與被檢測(cè)到的侵入者特征相關(guān)聯(lián)的任何動(dòng)作代碼。網(wǎng)絡(luò)處理器1000執(zhí)行動(dòng)作代碼,該動(dòng)作代碼可包括報(bào)告被檢測(cè)到的侵入以及用來(lái)消除被檢測(cè)到的侵入的影響的應(yīng)對(duì)措施。因?yàn)榫W(wǎng)絡(luò)數(shù)據(jù)是并行地耦合到大量的PU 500單元的,IDS系統(tǒng)1200能夠以網(wǎng)絡(luò)通信速度比較輸入數(shù)據(jù)。如果識(shí)別出新的侵入者特征,則網(wǎng)絡(luò)處理器1000接收到該新的特征,并通過(guò)連接1205將其寫入存儲(chǔ)器1001。然后將新的侵入者特征裝入未使用的PU 500單元中,被一起裝入的還有相應(yīng)的ID數(shù)據(jù)。控制數(shù)據(jù)被耦合到PPDE 1207-1209,該控制數(shù)據(jù)根據(jù)需要配置PU 500單元,從而或者把各單元級(jí)聯(lián)在一起以用于附加的特征,或者將各PU 500單元連接起來(lái),以匹配對(duì)單個(gè)PU 500來(lái)說(shuō)過(guò)大的長(zhǎng)的侵入特征。
圖13是用于本發(fā)明的實(shí)施例的方法步驟的流程圖。在步驟1300,進(jìn)行檢驗(yàn)以確定網(wǎng)絡(luò)處理器1000是否正在執(zhí)行阻止其處理網(wǎng)絡(luò)數(shù)據(jù)的任何恢復(fù)例程或代碼。如果NP 1000忙,則執(zhí)行等待,來(lái)等待網(wǎng)絡(luò)處理器1000做好準(zhǔn)備。如果沒(méi)有恢復(fù)例程是活動(dòng)的,則在步驟1301,NP 1000接收到任何侵入者特征和與接收到的侵入者特征相應(yīng)的適用的動(dòng)作代碼。在步驟1302,將所接收到的侵入者特征與相應(yīng)的ID數(shù)據(jù)和任何動(dòng)作代碼一起存儲(chǔ)在存儲(chǔ)器1001中。在步驟1303,將侵入者特征與相應(yīng)的控制數(shù)據(jù)通過(guò)PPDE I/O總線1206一起發(fā)送給PPDE 1207-1209,以配置PPDE 1207-1209中的PU 500單元。在步驟1304,PPDE 1207-1209被使能開(kāi)始并行地比較存儲(chǔ)的侵入特征與從NP 1000傳送的輸入數(shù)據(jù)。在步驟1305,NP 1000接收網(wǎng)絡(luò)輸入數(shù)據(jù)1201。在步驟1306,NP 1000分析這些數(shù)據(jù)包,并選擇要作為網(wǎng)絡(luò)輸出數(shù)據(jù)1208路由的數(shù)據(jù)包。然后在步驟1307,將同樣的數(shù)據(jù)轉(zhuǎn)換和并行傳送給PPDE 1207-1209。在步驟1308,使用PPDE 1207-1209中的PU 500單元,將傳送的網(wǎng)絡(luò)輸入數(shù)據(jù)與存儲(chǔ)的侵入特征進(jìn)行比較。在步驟1309,進(jìn)行檢驗(yàn)以確定是否發(fā)生了任何匹配。如果沒(méi)有發(fā)生匹配,則分支回到步驟1308,在此比較繼續(xù)進(jìn)行。如果發(fā)生了匹配,則在步驟1310,將檢測(cè)到匹配的PU 500的ID發(fā)送給NP 1000。在步驟1311,NP 1000執(zhí)行與檢測(cè)到的侵入特征相應(yīng)的任何動(dòng)作代碼。在步驟1312,進(jìn)行檢驗(yàn)以確定是否可繼續(xù)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)處理。如果否,則在步驟1313,分支回到步驟1300,等待任何恢復(fù)過(guò)程的完成。如果在步驟1312的檢驗(yàn)的結(jié)果是“是”,則分支回到步驟1301,在此由NP 1000接收任何新的侵入特征。
圖14是用于圖12示出的級(jí)聯(lián)總線1210的級(jí)聯(lián)電路1401的圖示。級(jí)聯(lián)電路1401用于使能在PPDE 100中級(jí)聯(lián)多個(gè)PU 500單元所需的通信,所述PPDE 100被用在根據(jù)本發(fā)明的實(shí)施例的IDS 1200中??刂七壿?402通過(guò)線1413接收數(shù)據(jù),并通過(guò)線1412發(fā)送數(shù)據(jù),以使能與PU 1400的雙向通信。級(jí)聯(lián)電路1401具有耦合到控制邏輯1402的通信邏輯1406和功能邏輯1410。鏈路輸出(Link Out)1404接收從前一個(gè)PU 500(未示出)輸出的數(shù)據(jù),并且鏈路輸出1414將來(lái)自控制邏輯1402的數(shù)據(jù)輸出到后一個(gè)PU 500(未示出)。如果使能了PU 1400和前一個(gè)PU 500之間的通信,則邏輯1被寫入鏈接輸入(Chain In)寄存器1403,后者轉(zhuǎn)而使能與邏輯門1405。來(lái)自鏈路輸出1404的數(shù)據(jù)通過(guò)與門1405被耦合到或邏輯門1416的輸入,然后被耦合到鏈路輸出1414。鏈路輸出1414或者耦合來(lái)自鏈路輸出1404的數(shù)據(jù)或者耦合來(lái)自控制邏輯1402的線1413的數(shù)據(jù)。如果不希望通過(guò)鏈路輸出1404的與前一個(gè)PU 500的通信,則將邏輯0裝入鏈接輸入寄存器1403,所述邏輯0將禁止與門1405。來(lái)自前一個(gè)PU 500的數(shù)據(jù)通過(guò)到線1418的與門1405(鏈接輸入是邏輯1)被耦合到控制邏輯?;蜷T1416將數(shù)據(jù)耦合到線1420,其是或門1411的輸入。然后或門1411的輸出通過(guò)線1413將數(shù)據(jù)耦合到控制邏輯1402。類似地,來(lái)自后一個(gè)PU 500的數(shù)據(jù)通過(guò)鏈路輸入(Link In)1417及線1415發(fā)送到或門1411的輸入。再次地,或門1411的輸出通過(guò)線1413將數(shù)據(jù)耦合到控制邏輯1402。如果鏈接輸出(Chain Out)1409被裝入了邏輯1,則來(lái)自后一個(gè)PU 500的數(shù)據(jù)通過(guò)與門1408被耦合到鏈路輸入1407,其作為鏈路輸入信號(hào)被耦合到前一個(gè)PU 500。
圖15是一個(gè)PU 500和兩個(gè)相鄰PU 500單元之間的框圖,其進(jìn)一步示出了使用級(jí)聯(lián)電路1401的級(jí)聯(lián)雙向通信和隔離。每個(gè)PU 500(1510-1530)中的級(jí)聯(lián)電路的細(xì)節(jié)已參照?qǐng)D14進(jìn)行了詳細(xì)說(shuō)明和描述。圖15示出了PU 500單元1510和1520之間的雙向通信。雖然PU 500單元1530與PU 500單元1520物理地連接,PU 500單元1520并不使用如圖所示的鏈接輸入和鏈接輸出寄存器位的邏輯狀態(tài)來(lái)向PU 500單元1530接收或發(fā)送數(shù)據(jù)。
鏈接輸入寄存器1501被設(shè)置為邏輯0,并且鏈接輸出寄存器1502也被設(shè)置為邏輯0。這將PU 500單元1510與任何從左邊物理地耦合的PU 500單元(未示出)隔離開(kāi)來(lái)。鏈接輸入寄存器1503和鏈接輸出寄存器1504被設(shè)置為邏輯1,這使能了PU 500單元1510和PU 500單元1520之間的雙向通信。再次地,鏈接輸入寄存器1505和鏈接輸出寄存器1506被設(shè)置為邏輯0,這將PU 500單元1520與PU 500單元1530以及耦合到PU 500單元1530的右邊的任何其他PU 500單元(未示出)隔離開(kāi)來(lái)。
盡管已詳細(xì)描述了本發(fā)明及其優(yōu)點(diǎn),應(yīng)當(dāng)理解在此可以進(jìn)行各種改變、替換和變更,而不脫離由所附權(quán)利要求所定義的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于網(wǎng)絡(luò)通信的快速侵入檢測(cè)的方法,包括以下步驟在與網(wǎng)絡(luò)結(jié)構(gòu)(fabric)耦合的網(wǎng)絡(luò)處理器中接收網(wǎng)絡(luò)數(shù)據(jù)包;將路由的網(wǎng)絡(luò)數(shù)據(jù)傳送給該網(wǎng)絡(luò)結(jié)構(gòu);以及將所選的來(lái)自該網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)耦合到并行模式檢測(cè)引擎(PPDE),以便將該所選的數(shù)據(jù)并行地與存儲(chǔ)在該P(yáng)PDE中的模式數(shù)據(jù)的M個(gè)序列進(jìn)行比較,并且當(dāng)該模式數(shù)據(jù)的M個(gè)序列中的至少一個(gè)與該所選數(shù)據(jù)的一部分匹配時(shí),產(chǎn)生匹配輸出信號(hào)。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括以下步驟將N個(gè)侵入特征存儲(chǔ)在該模式數(shù)據(jù)的M個(gè)序列中,并與其一起存儲(chǔ)用于識(shí)別該N個(gè)侵入特征中的哪一個(gè)被檢測(cè)到的相應(yīng)的標(biāo)識(shí)(ID)數(shù)據(jù);以及存儲(chǔ)動(dòng)作代碼,該動(dòng)作代碼指示響應(yīng)于檢測(cè)到該N個(gè)侵入特征中的特定一個(gè)而采取的動(dòng)作。
3.如權(quán)利要求2所述的方法,進(jìn)一步包括以下步驟分析該些網(wǎng)絡(luò)數(shù)據(jù)包的有效性,借以產(chǎn)生有效的網(wǎng)絡(luò)數(shù)據(jù)包,作為該所選的數(shù)據(jù);將該所選的數(shù)據(jù)與該存儲(chǔ)的N個(gè)侵入特征進(jìn)行比較,并以網(wǎng)絡(luò)數(shù)據(jù)速度產(chǎn)生模式比較信號(hào),并且當(dāng)檢測(cè)到該N個(gè)侵入特征中的特定一個(gè)時(shí),產(chǎn)生特定的ID數(shù)據(jù);以及執(zhí)行與該N個(gè)侵入特征中的被檢測(cè)到的該特定一個(gè)相應(yīng)的動(dòng)作代碼。
4.如權(quán)利要求3所述的方法,其中該P(yáng)PDE包括輸入/輸出(I/O)接口,其用于將數(shù)據(jù)耦合進(jìn)入或出自該P(yáng)PDE;M個(gè)處理單元(PU),該M個(gè)處理單元中的每一個(gè)都具有比較電路,該比較電路用于將輸入數(shù)據(jù)序列的每一個(gè)與存儲(chǔ)在該M個(gè)PU中的每一個(gè)中的模式數(shù)據(jù)相比較,并產(chǎn)生比較輸出,其中響應(yīng)于該比較輸出的邏輯狀態(tài)和與該模式數(shù)據(jù)一起存儲(chǔ)的操作碼,修改該M個(gè)PU中的每一個(gè)中的選擇該模式數(shù)據(jù)的地址指針;輸入總線,其用于將該輸入數(shù)據(jù)序列并行地耦合到該M個(gè)PU中的每一個(gè);輸出總線,其被耦合到該I/O接口,用于將輸出數(shù)據(jù)發(fā)送到該I/O接口;控制電路,其被耦合到該I/O接口,并將控制數(shù)據(jù)總線上的控制數(shù)據(jù)和ID總線上的標(biāo)識(shí)(ID)耦合到該M個(gè)處理單元中的每一個(gè);以及ID選擇電路,其用于響應(yīng)于模式匹配信號(hào)和匹配方式數(shù)據(jù)而從標(biāo)識(shí)該M個(gè)PU的ID數(shù)據(jù)中選擇匹配ID,其中該匹配ID和相應(yīng)于該匹配ID的匹配數(shù)據(jù)存儲(chǔ)在暫時(shí)寄存器中作為輸出數(shù)據(jù)。
5.如權(quán)利要求3所述的方法,其中該P(yáng)PDE進(jìn)一步包括級(jí)聯(lián)電路,該級(jí)聯(lián)電路被從該M個(gè)PU中的每一個(gè)耦合到該M個(gè)PU中的一個(gè)或多個(gè)相鄰的PU,用于響應(yīng)于所述控制數(shù)據(jù)在一個(gè)或多個(gè)由從該M個(gè)PU中選擇的兩個(gè)或更多相鄰的PU組成的組之間有選擇地耦合鏈接數(shù)據(jù)。
6.一種用于網(wǎng)絡(luò)通信的快速侵入檢測(cè)的系統(tǒng),包括網(wǎng)絡(luò)處理器;該網(wǎng)絡(luò)處理器中用于從網(wǎng)絡(luò)結(jié)構(gòu)接收網(wǎng)絡(luò)數(shù)據(jù)的電路;該網(wǎng)絡(luò)處理器中用于將路由的網(wǎng)絡(luò)數(shù)據(jù)傳送給該網(wǎng)絡(luò)結(jié)構(gòu)的電路;以及這樣的電路,其用于將該網(wǎng)絡(luò)處理器耦合到并行模式檢測(cè)引擎(PPDE),以便將來(lái)自該網(wǎng)絡(luò)數(shù)據(jù)的所選的數(shù)據(jù)并行地與存儲(chǔ)在該P(yáng)PDE中的模式數(shù)據(jù)的M個(gè)序列進(jìn)行比較,并且當(dāng)該模式數(shù)據(jù)的M個(gè)序列中的至少一個(gè)與該所選數(shù)據(jù)的一部分匹配時(shí),產(chǎn)生匹配輸出信號(hào)。
7.如權(quán)利要求6所述的系統(tǒng),進(jìn)一步包括這樣的電路,其用于將N個(gè)侵入特征存儲(chǔ)在該模式數(shù)據(jù)的M個(gè)序列中,并與其一起存儲(chǔ)用于識(shí)別該N個(gè)侵入特征中的哪一個(gè)被檢測(cè)到的相應(yīng)的標(biāo)識(shí)(ID)數(shù)據(jù)。
8.如權(quán)利要求6所述的系統(tǒng),進(jìn)一步包括用于存儲(chǔ)動(dòng)作代碼的電路,該動(dòng)作代碼指示響應(yīng)于檢測(cè)到該N個(gè)侵入特征中的特定一個(gè)而采取的動(dòng)作。
9.如權(quán)利要求6所述的系統(tǒng),進(jìn)一步包括用于在該網(wǎng)絡(luò)過(guò)程中接收來(lái)自該網(wǎng)絡(luò)結(jié)構(gòu)的網(wǎng)絡(luò)數(shù)據(jù)包的電路;用于分析該些網(wǎng)絡(luò)數(shù)據(jù)包的有效性,以產(chǎn)生有效的網(wǎng)絡(luò)數(shù)據(jù)包的電路;用于將來(lái)自該些有效的網(wǎng)絡(luò)數(shù)據(jù)包的網(wǎng)絡(luò)數(shù)據(jù)傳送給該P(yáng)PDE的電路;這樣的電路,其用于將該所選的數(shù)據(jù)與該存儲(chǔ)的N個(gè)侵入特征進(jìn)行比較,并以網(wǎng)絡(luò)數(shù)據(jù)速度產(chǎn)生模式比較信號(hào),并且當(dāng)檢測(cè)到該N個(gè)侵入特征中的特定一個(gè)時(shí),產(chǎn)生特定的ID數(shù)據(jù);以及用于執(zhí)行與該N個(gè)侵入特征中的被檢測(cè)到的該特定一個(gè)相應(yīng)的動(dòng)作代碼的電路。
10.如權(quán)利要求9所述的系統(tǒng),其中該P(yáng)PDE包括輸入/輸出(I/O)接口,其用于將數(shù)據(jù)耦合進(jìn)入或出自該P(yáng)PDE;M個(gè)處理單元(PU),該M個(gè)處理單元中的每一個(gè)都具有比較電路,該比較電路用于將輸入數(shù)據(jù)序列的每一個(gè)與存儲(chǔ)在該M個(gè)PU中的每一個(gè)中的模式數(shù)據(jù)相比較,并產(chǎn)生比較輸出,其中響應(yīng)于該比較輸出的邏輯狀態(tài)和與該模式數(shù)據(jù)一起存儲(chǔ)的操作碼,修改該M個(gè)PU中的每一個(gè)中的選擇該模式字節(jié)的地址指針;輸入總線,其用于將該輸入數(shù)據(jù)序列并行地耦合到該M個(gè)PU中的每一個(gè);輸出總線,其被耦合到該I/O接口,用于將輸出數(shù)據(jù)發(fā)送到該I/O接口;控制電路,其被耦合到該I/O接口,并將控制數(shù)據(jù)總線上的控制數(shù)據(jù)和ID總線上的標(biāo)識(shí)(ID)耦合到該M個(gè)處理單元中的每一個(gè);以及ID選擇電路,其用于響應(yīng)于模式匹配信號(hào)和匹配方式數(shù)據(jù)而從標(biāo)識(shí)該M個(gè)PU的ID數(shù)據(jù)中選擇匹配ID,其中該匹配ID和相應(yīng)于該匹配ID的匹配數(shù)據(jù)存儲(chǔ)在暫時(shí)寄存器中作為輸出數(shù)據(jù)。
11.如權(quán)利要求10所述的系統(tǒng),進(jìn)一步包括級(jí)聯(lián)電路,該級(jí)聯(lián)電路被從該M個(gè)PU中的每一個(gè)耦合到該M個(gè)PU中的一個(gè)或多個(gè)相鄰的PU,用于響應(yīng)于所述控制數(shù)據(jù)在一個(gè)或多個(gè)由從該M個(gè)PU中選擇的兩個(gè)或更多相鄰的PU組成的組之間有選擇地耦合鏈接數(shù)據(jù)。
12.如權(quán)利要求11所述的系統(tǒng),其中該P(yáng)PDE進(jìn)一步包括輸入緩沖器,該輸入緩沖器耦合到該I/O接口上,以便接收和在一寫地址上寫入輸入數(shù)據(jù)作為并行數(shù)據(jù)。
13.如權(quán)利要求12所述的系統(tǒng),其中該P(yáng)PDE進(jìn)一步包括被耦合到該輸入總線和該輸入緩沖器上的多路轉(zhuǎn)換器,用于順序地將來(lái)自該輸入緩沖器數(shù)據(jù)的單個(gè)數(shù)據(jù)耦合到該輸入總線上,其中使用讀地址選擇并行數(shù)據(jù)。
14.如權(quán)利要求13所述的系統(tǒng),其中該P(yáng)PDE進(jìn)一步包括耦合到該輸出總線和暫時(shí)寄存器的輸出緩沖器,該暫時(shí)寄存器接收輸出數(shù)據(jù)并在一寫地址上向該輸出緩沖器寫輸出數(shù)據(jù),該輸出緩沖器相應(yīng)于一讀地址將輸出數(shù)據(jù)耦合到該輸出總線上。
15.如權(quán)利要求10所述的系統(tǒng),其中該M個(gè)PU中的每一個(gè)具有ID寄存器,用于存儲(chǔ)從該控制電路發(fā)送的唯一ID。
16.如權(quán)利要求10所述的系統(tǒng),其中該M個(gè)PU中的每一個(gè)具有控制寄存器,用于存儲(chǔ)所述匹配方式數(shù)據(jù),其中所述匹配方式數(shù)據(jù)確定用于產(chǎn)生該匹配信號(hào)和該匹配數(shù)據(jù)的標(biāo)準(zhǔn)。
17.如權(quán)利要求10所述的系統(tǒng),其中該M個(gè)PU中的每一個(gè)具有存儲(chǔ)器寄存器陣列,用于存儲(chǔ)模式數(shù)據(jù)的序列以及相應(yīng)的操作碼,該操作碼由地址寄存器尋址,該地址寄存器由所述地址指針?biāo)饕?br> 18.如權(quán)利要求11所述的系統(tǒng),其中所述級(jí)聯(lián)電路使能兩個(gè)或更多PU的存儲(chǔ)的模式鏈接在一起,作為使用該鏈接數(shù)據(jù)的單個(gè)模式。
19.如權(quán)利要求18所述的系統(tǒng),其中該鏈接數(shù)據(jù)阻止索引一個(gè)PU的指針,直到與該級(jí)聯(lián)電路耦合的一相鄰PU已比較了最后模式數(shù)據(jù)與輸入數(shù)據(jù)。
20.如權(quán)利要求10所述的系統(tǒng),其中在該M個(gè)PU中的每一個(gè)中的比較電路在同一個(gè)時(shí)鐘信號(hào)周期里完成輸入數(shù)據(jù)與所選模式數(shù)據(jù)的比較并且產(chǎn)生比較輸出并且修改所述地址指針。
21.一種侵入檢測(cè)系統(tǒng),包括網(wǎng)絡(luò)處理器,其具有到網(wǎng)絡(luò)結(jié)構(gòu)的輸入連接,以及到該網(wǎng)絡(luò)結(jié)構(gòu)的輸出連接;以及與該網(wǎng)絡(luò)處理器耦合的并行模式檢測(cè)引擎(PPDE),該P(yáng)PDE用于并行地比較來(lái)自該網(wǎng)絡(luò)數(shù)據(jù)的所選數(shù)據(jù)與相應(yīng)于存儲(chǔ)在該P(yáng)PDE中的M個(gè)侵入特征的侵入特征數(shù)據(jù)的M個(gè)序列,并且當(dāng)在該網(wǎng)絡(luò)數(shù)據(jù)中檢測(cè)到該M個(gè)侵入特征之一時(shí)產(chǎn)生匹配輸出信號(hào),其中該網(wǎng)絡(luò)處理器接收網(wǎng)絡(luò)輸入數(shù)據(jù),處理該網(wǎng)絡(luò)輸入數(shù)據(jù)以便作為有效的網(wǎng)絡(luò)輸出數(shù)據(jù)傳送,以及將該有效的網(wǎng)絡(luò)輸出數(shù)據(jù)耦合到該P(yáng)PDE,以便在該有效的網(wǎng)絡(luò)輸出數(shù)據(jù)中進(jìn)行實(shí)時(shí)的侵入模式檢測(cè)。
全文摘要
一種侵入檢測(cè)系統(tǒng)(IDS)包括一網(wǎng)絡(luò)處理器(NP),該NP耦合到用于存儲(chǔ)程序和數(shù)據(jù)的一存儲(chǔ)器單元。該NP也耦合到一個(gè)或多個(gè)并行模式檢測(cè)引擎(PPDE),所述PPDE提供了在輸入數(shù)據(jù)流中進(jìn)行的高速并行模式檢測(cè)。每個(gè)PPDE包括很多處理單元(PU),每個(gè)PU被設(shè)計(jì)為將侵入特征作為數(shù)據(jù)序列與所選的操作碼一起存儲(chǔ)。該些PU具有用于選擇模式識(shí)別方式的配置寄存器。每個(gè)PU在每個(gè)時(shí)鐘周期比較一個(gè)字節(jié)。如果來(lái)自輸入模式的字節(jié)的一序列匹配一存儲(chǔ)的模式,則將檢測(cè)到該模式的PU的標(biāo)識(shí)與任何適用的比較數(shù)據(jù)輸出。通過(guò)在很多并行的PU中存儲(chǔ)侵入特征,該IDS可以NP處理速度處理網(wǎng)絡(luò)數(shù)據(jù)??梢詫⒏鱌U級(jí)聯(lián)以提高對(duì)侵入的覆蓋范圍或檢測(cè)長(zhǎng)的侵入特征。
文檔編號(hào)H04L9/00GK1642112SQ20051000183
公開(kāi)日2005年7月20日 申請(qǐng)日期2005年1月13日 優(yōu)先權(quán)日2004年1月14日
發(fā)明者M·A·布蘭格, C·D·杰弗里斯, C·M·基納德, K·A·克拉夫采, R·K·薩比基, A·G·賽義迪, J·M·斯萊菲爾德, P·R·坦霍夫 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1