專利名稱:用于高吞吐量基于簽名的網(wǎng)絡(luò)應(yīng)用的集成電路設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)聯(lián)網(wǎng)安全應(yīng)用。更具體地,本發(fā)明包括用于以線速度(wire-speed)作用于網(wǎng)絡(luò)分組和流數(shù)據(jù)的、基于簽名的網(wǎng)絡(luò)應(yīng)用的設(shè)備的集成電路實(shí)施方案。按照具體的實(shí)施例,本發(fā)明包括用于以下功能的設(shè)備和方法,即,以線速度同時(shí)進(jìn)行將分組高吞吐量地流分類成網(wǎng)絡(luò)流、對(duì)這種流進(jìn)行重新分組裝配(在想要的場(chǎng)合下)、過濾和預(yù)處理這種流(在想要的場(chǎng)合下,包括協(xié)議譯碼)、對(duì)這種流的報(bào)頭(header)和有效負(fù)荷內(nèi)容進(jìn)行模式(pattern)匹配、和根據(jù)用于多個(gè)網(wǎng)絡(luò)應(yīng)用的基于法則的策略(policy)來進(jìn)行動(dòng)作執(zhí)行。僅僅作為例子,本發(fā)明被應(yīng)用于分布在局域網(wǎng)、廣域網(wǎng)、和世界范圍的網(wǎng)絡(luò)中的聯(lián)網(wǎng)設(shè)備。
背景技術(shù):
隨著世界的進(jìn)步,計(jì)算機(jī)網(wǎng)絡(luò)互連對(duì)于用于企業(yè)、通信系統(tǒng)、國家和世界的基礎(chǔ)結(jié)構(gòu)變成很重要的。在計(jì)算機(jī)之間的數(shù)據(jù)流在載送的內(nèi)容和傳遞的及時(shí)性方面變得越來越重要。通過計(jì)算和聯(lián)網(wǎng)的技術(shù)進(jìn)展,大的數(shù)據(jù)庫現(xiàn)在是可得到的,并且由處在地球的相對(duì)側(cè)的雙方使用。
通過諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò),數(shù)據(jù)在計(jì)算機(jī)之間以通常被稱為分組的小的數(shù)量被載送。在數(shù)據(jù)量太大而不適合于單個(gè)分組(它的大小典型地由分組流過的網(wǎng)絡(luò)的特性來規(guī)定)的場(chǎng)合下,使用一系列分組來把數(shù)據(jù)從通信信道的一端載送到另一端。這個(gè)序列,或通常被稱為流,然后在接收端從各個(gè)分組被重新裝配成原始的數(shù)據(jù)。
分組是通過使用允許計(jì)算機(jī)和網(wǎng)絡(luò)設(shè)備決定分組應(yīng)當(dāng)沿哪條路徑發(fā)送到達(dá)它的最后目的地的專門開發(fā)的算法而在計(jì)算機(jī)之間路由的。這些算法檢查分組報(bào)頭(典型地是分組的固定大小的部分,其包含被加到要輸送的有效負(fù)荷的諸如分組的源和目的地址的信息),以作出路由決定。所述算法需要檢查分組,并非??焖俚刈鞒鰶Q定,從而允許大量分組以非常小的延時(shí)進(jìn)行發(fā)送。除了檢查報(bào)頭以外,還可以檢查分組的內(nèi)容,找到有助于作出關(guān)于給予分組的路徑和優(yōu)先級(jí)的決定的信息;然而,數(shù)據(jù)的這個(gè)檢查加上附加開銷,這會(huì)限制吞吐量和由檢查數(shù)據(jù)的設(shè)備施加的延時(shí)--典型地,要搜索的數(shù)據(jù)越多,由于搜索它而引起的延時(shí)越長。
不斷地,當(dāng)分組從它們的源發(fā)送到它們的目的地時(shí),它們被檢查來不僅僅幫助進(jìn)行路由決定而且也用于其它目的。通過網(wǎng)絡(luò)以一系列分組發(fā)送的一個(gè)電子郵件可被檢查來查看它是否是不想要的電子郵件消息(通常被稱為“垃圾郵件(spam)”);這種檢查常常希望查看消息的內(nèi)容,這是在載送電子郵件時(shí)牽涉的分組的有效負(fù)荷部分。同樣地,可以掃描電子郵件,查看它是否包含計(jì)算機(jī)病毒。也可以檢查分組,尋找版權(quán)侵犯、諸如計(jì)算機(jī)‘黑客’或共同偵察的非法活動(dòng),或只是分析使用情況以提供良好的服務(wù)質(zhì)量。通過檢查網(wǎng)絡(luò)中的分組,現(xiàn)在提供新的應(yīng)用,并且可以合理地預(yù)期,將繼續(xù)開發(fā)基于分組檢查的新的網(wǎng)絡(luò)應(yīng)用。
專門化的網(wǎng)絡(luò)設(shè)備能夠非??焖俚貦z查分組報(bào)頭(具有它們的小的總的大小、設(shè)置的協(xié)議和固定的布局)。然而,檢查不總是很好地構(gòu)建的分組的數(shù)據(jù)有效負(fù)荷是復(fù)雜的,并且在對(duì)于處理每個(gè)分組可用的小的時(shí)間窗中很難完成。當(dāng)在數(shù)據(jù)結(jié)構(gòu)和協(xié)議方面必須經(jīng)常分析這個(gè)有效負(fù)荷時(shí),以及甚至面對(duì)由高技巧的攻擊者惡意地作出的模糊時(shí),這個(gè)問題被復(fù)雜化。典型地,諸如電子郵件網(wǎng)關(guān)、侵入檢測(cè)系統(tǒng)和通用內(nèi)容保護(hù)設(shè)備的設(shè)備以軟件搜索網(wǎng)絡(luò)數(shù)據(jù),該軟件雖然常常是靈活的和很優(yōu)化的,但當(dāng)接近達(dá)到想要的速度時(shí),在總的吞吐量或延時(shí)方面,將是不頂用的。設(shè)備還可以使用被嚴(yán)格限制成檢查報(bào)頭的專門化的路由硬件。而且,這些軟件和硬件設(shè)備典型地對(duì)于可以搜索什么數(shù)據(jù)和可被同時(shí)匹配的不同的模式的數(shù)目施加相當(dāng)嚴(yán)格的限制。
網(wǎng)絡(luò)設(shè)備在幾個(gè)約束條件下也能工作;分組從進(jìn)入接口到外出接口所花費(fèi)的總的時(shí)間需要保持為最小值。分組經(jīng)過通信設(shè)備或信道所花費(fèi)的時(shí)間被稱為等待時(shí)間。由設(shè)備引起的等待時(shí)間不但必須保持為最小值,而且也必須保持為相對(duì)恒定的;等待時(shí)間的改變被稱為抖動(dòng)。實(shí)際上,抖動(dòng)有害地影響多媒體流。對(duì)于當(dāng)前的基于軟件的網(wǎng)絡(luò)應(yīng)用,抖動(dòng)很難控制,因?yàn)檐浖ǔEc由不對(duì)實(shí)時(shí)處理提供支持的最通用的操作系統(tǒng)所混合的許多其它處理過程共享單個(gè)CPU。結(jié)果,軟件應(yīng)用交互作用可導(dǎo)致對(duì)于網(wǎng)絡(luò)性能的很大的有害影響。隨著網(wǎng)絡(luò)運(yùn)行越來越快,這種影響被復(fù)雜化。
許多網(wǎng)絡(luò)協(xié)議對(duì)分組在通信網(wǎng)上的載送進(jìn)行組織的方法意味著,與載送給定的流有關(guān)的分組可能不總是以正確的次序到達(dá),而且,分組可能由于各種原因而結(jié)束分段。為了處理這些情形,流的終端接收機(jī)需要通過使用聯(lián)網(wǎng)算法重新構(gòu)建分段的分組,并且從這些分組重新裝配流,而不管它們到達(dá)的次序。然而,這對(duì)于設(shè)備或應(yīng)用施加另外的要求,所述設(shè)備或應(yīng)用希望就其全部上下文來檢查屬于流的數(shù)據(jù),而不是只將其作為單個(gè)分組從上下文中取出。路由和其它決定典型地關(guān)于單個(gè)分組內(nèi)提供的信息而整體地完成,但如果在流中搜索特定的模式,則希望找到它,即使它跨越兩個(gè)或多個(gè)分組之間的邊界。因此,為了正確地搜索流,重要的是提供用于處理分段的和次序弄亂的分組的某些機(jī)制。
聯(lián)網(wǎng)的和其它計(jì)算機(jī)規(guī)則下的搜索可以用各種方式完成。典型地,使用一組“法則”或“模式”來描述要被搜索的內(nèi)容,然后使用算法,把這些“法則”或“模式”施加到要被搜索的數(shù)據(jù)。這些通常通過使用被稱為正則語言(regular language)的結(jié)構(gòu)來描述。正則語言通常被表示為正則表達(dá)式。正則語言和表達(dá)式在現(xiàn)有技術(shù)中是熟知的,但以各種不同的類型呈現(xiàn),某些被標(biāo)準(zhǔn)化,某些沒有被標(biāo)準(zhǔn)化。一旦要被搜索的表達(dá)式被規(guī)定為正則表達(dá)式,典型地由算法作用在其上,產(chǎn)生被稱為有限自動(dòng)機(jī)(automaton)的東西。該有限自動(dòng)機(jī)可被“執(zhí)行”來搜索模式;所述執(zhí)行包括計(jì)算轉(zhuǎn)移函數(shù),該函數(shù)定義從有限自動(dòng)機(jī)的一個(gè)狀態(tài)到有限自動(dòng)機(jī)的另一個(gè)狀態(tài)的轉(zhuǎn)移,每次轉(zhuǎn)移是由來自被搜索的數(shù)據(jù)的、被稱為碼元的單塊輸入所觸發(fā)的。
在給定一組約束條件的情況下進(jìn)行數(shù)據(jù)流的高速搜索,包括以低的延時(shí)通過高的吞吐量重新裝配流,大型模式數(shù)據(jù)庫包括成千個(gè)模式,其實(shí)現(xiàn)起來是復(fù)雜的和困難的。當(dāng)前的方法通常需要在通用CPU上運(yùn)行的軟件,并且對(duì)于滿足所有的約束條件有很大的困難;某些是通過犧牲幾個(gè)目標(biāo)來進(jìn)行管理的,諸如大大地限制模式數(shù)據(jù)庫的大小和這些模式可以采取的形式。某些當(dāng)前的方法使用專門化的硬件解決方案,其中專用集成電路試圖滿足競爭的需要。這并不提供全面的一般解決方案,并且常常無法解決諸如允許大型模式數(shù)據(jù)庫的硬件問題。對(duì)這些慣用技術(shù)的這些和可能其它的限制可以在本說明書中找到,并且在下面更具體地描述。
所需要的是以更高的速度(例如,當(dāng)前的網(wǎng)絡(luò)速度)來搜索計(jì)算機(jī)網(wǎng)絡(luò)業(yè)務(wù)以找出模式的方法,而對(duì)于模式的大小、復(fù)雜性或數(shù)目不加以過分的限制。這可以通過使用專門化的技術(shù)達(dá)到,并且這是本發(fā)明的主題。
發(fā)明內(nèi)容
按照本發(fā)明,提供了用于計(jì)算機(jī)聯(lián)網(wǎng)安全應(yīng)用的技術(shù)。更具體地,本發(fā)明包括用于以線速度作用于網(wǎng)絡(luò)分組和流數(shù)據(jù)的、基于簽名的網(wǎng)絡(luò)應(yīng)用的設(shè)備的集成電路實(shí)施方案。按照具體的實(shí)施例,本發(fā)明包括用于以下功能的設(shè)備和方法,即,以線速度同時(shí)進(jìn)行將分組高吞吐量(例如,每秒10,000,000比特或更高)地流分類成網(wǎng)絡(luò)流、對(duì)這種流進(jìn)行重新分組裝配(在想要的場(chǎng)合下)、過濾和預(yù)處理這種流(在想要的場(chǎng)合下,包括協(xié)議譯碼)、對(duì)這種流的報(bào)頭和有效負(fù)荷內(nèi)容進(jìn)行模式匹配、和根據(jù)用于多個(gè)網(wǎng)絡(luò)應(yīng)用的基于法則的策略來進(jìn)行動(dòng)作執(zhí)行。僅作為例子,本發(fā)明被應(yīng)用于分布在局域網(wǎng)、廣域網(wǎng)、和世界范圍的網(wǎng)絡(luò)中的聯(lián)網(wǎng)設(shè)備。
在具體的實(shí)施例中,本發(fā)明提供用于網(wǎng)絡(luò)應(yīng)用中的高吞吐量模式匹配的集成電路設(shè)備。設(shè)備包括剛性支持部件(例如,印刷電路板、基片、硅基片、集成電路模塊),它包括具有網(wǎng)絡(luò)連接區(qū)域和主機(jī)連接區(qū)域的連接器區(qū)域。剛性支持部件具有選擇的寬度和選擇的長度。選擇的寬度和選擇的長度適合于經(jīng)由連接器區(qū)域被耦合到網(wǎng)絡(luò)系統(tǒng)。優(yōu)選地,連接器區(qū)域直接連接到公共接口總線。一個(gè)或多個(gè)硬件模塊(例如,集成電路、集成電路模塊)被布置在(例如,焊料凸起)和被耦合到剛性支持部件。優(yōu)選地,該一個(gè)或多個(gè)模塊包括被耦合到剛性支持部件的網(wǎng)絡(luò)接口模塊。
優(yōu)選地,網(wǎng)絡(luò)接口模塊包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口。該一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口經(jīng)由連接器區(qū)域被耦合到基于分組的網(wǎng)絡(luò)。該一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口包含一個(gè)或多個(gè)進(jìn)入網(wǎng)絡(luò)端口。網(wǎng)絡(luò)接口總線被耦合到剛性支持部件。網(wǎng)絡(luò)接口總線適合于把網(wǎng)絡(luò)接口模塊接口到網(wǎng)絡(luò)模塊。網(wǎng)絡(luò)模塊被耦合到剛性支持部件。網(wǎng)絡(luò)模塊被耦合到網(wǎng)絡(luò)接口總線。網(wǎng)絡(luò)事件模塊被耦合到剛性支持部件。網(wǎng)絡(luò)事件模塊被耦合到網(wǎng)絡(luò)模塊。存儲(chǔ)器模塊被耦合到剛性支持部件以及存儲(chǔ)器模塊被耦合到網(wǎng)絡(luò)事件模塊和網(wǎng)絡(luò)模塊。存儲(chǔ)器模塊包括模式存儲(chǔ)器。模式存儲(chǔ)器與多個(gè)預(yù)先存儲(chǔ)的模式有關(guān)。主機(jī)接口模塊被耦合到剛性支持部件,并且被耦合到網(wǎng)絡(luò)事件模塊,或網(wǎng)絡(luò)模塊或二者。主機(jī)接口總線被耦合到剛性支持部件。主機(jī)接口總線被耦合到主機(jī)接口模塊,并且能夠經(jīng)由連接器區(qū)域連接到主機(jī)系統(tǒng)。在具體的實(shí)施例中,本發(fā)明可以使用一個(gè)或多個(gè)預(yù)先存儲(chǔ)的模式。其中,預(yù)先存儲(chǔ)的模式可包括正則表達(dá)式,n-gram表達(dá)式(例如,碼元的元組)。
優(yōu)選地,存儲(chǔ)器模塊還包括特性存儲(chǔ)器;它與多個(gè)預(yù)先存儲(chǔ)的特性有關(guān)。法則存儲(chǔ)器也與多個(gè)預(yù)先存儲(chǔ)的法則有關(guān)。網(wǎng)絡(luò)模塊包括特性提取裝置,它被耦合到網(wǎng)絡(luò)模塊和存儲(chǔ)器模塊。特性提取裝置還能夠按照特性提取算法識(shí)別特性關(guān)聯(lián)性。
按照具體的實(shí)施例,特性提取算法按照某種預(yù)定的功能根據(jù)對(duì)一個(gè)或多個(gè)分組的檢查來識(shí)別特性關(guān)聯(lián)性。特性關(guān)聯(lián)性標(biāo)識(shí)多個(gè)預(yù)先存儲(chǔ)的特性中的一個(gè)或多個(gè)特性。預(yù)先存儲(chǔ)的特性被存儲(chǔ)在特性存儲(chǔ)器中。策略裝置被耦合到特性提取裝置和存儲(chǔ)器模塊。策略裝置按照策略算法根據(jù)由特性提取裝置識(shí)別的特性關(guān)聯(lián)性識(shí)別法則關(guān)聯(lián)性。策略算法通過按照某種預(yù)定的功能來檢查特性關(guān)聯(lián)性而識(shí)別法則關(guān)聯(lián)性。法則關(guān)聯(lián)性標(biāo)識(shí)被存儲(chǔ)在法則存儲(chǔ)器里的多個(gè)預(yù)先存儲(chǔ)的法則中的一個(gè)或多個(gè)法則。
按照具體實(shí)施例,特性提取算法可以是用于至少一個(gè)或多個(gè)預(yù)定的模式的近似模式匹配處理過程。優(yōu)選地,近似模式匹配處理過程是對(duì)于來自以下內(nèi)容的數(shù)據(jù)流執(zhí)行的文本數(shù)據(jù)文件、文本數(shù)據(jù)流、二進(jìn)制數(shù)據(jù)文件、二進(jìn)制數(shù)據(jù)流、音頻數(shù)據(jù)流、音頻數(shù)據(jù)文件、視頻數(shù)據(jù)流、視頻數(shù)據(jù)文件、多媒體數(shù)據(jù)流、和多媒體數(shù)據(jù)文件、它們的任何組合等。在替換的實(shí)施例中,在近似模式匹配處理過程中的近似性的度量值是編輯距離,它可以是精確匹配于模式所需要的插入、刪除、或替換的數(shù)目。除了其它因素之外,在近似模式匹配處理過程中的近似性的度量值也可以涉及人的感知。
在替換的具體實(shí)施例中,本發(fā)明提供了用于執(zhí)行高吞吐量模式匹配的方法。高吞吐量模式匹配操作是通過使用多個(gè)模式中的一個(gè)或多個(gè)模式來執(zhí)行的;這些模式是由現(xiàn)有技術(shù)上已知的正則語言所定義的。模式由正則語言規(guī)定。正則語言被實(shí)施為有限自動(dòng)機(jī)。有限自動(dòng)機(jī)包括正則語言的轉(zhuǎn)移表表示。轉(zhuǎn)移表描述了用于有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù)。轉(zhuǎn)移表適合于以壓縮形式被存儲(chǔ)。壓縮形式被調(diào)整以使得有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù)能夠從壓縮形式中在相對(duì)于壓縮形式的大小為恒定的最大的時(shí)間內(nèi)被計(jì)算。優(yōu)選地,模式匹配以線速度用有效的和成本經(jīng)濟(jì)的方式被提供。
在再一個(gè)替換的具體的實(shí)施例中,本發(fā)明提供用于執(zhí)行高吞吐量模式匹配的設(shè)備。高吞吐量模式匹配操作是通過使用多個(gè)模式中的一個(gè)或多個(gè)模式來執(zhí)行的。模式被表示為單個(gè)模式數(shù)據(jù)庫。單個(gè)模式數(shù)據(jù)庫包括來自多個(gè)應(yīng)用中的一個(gè)或多個(gè)應(yīng)用的模式。模式匹配操作能夠根據(jù)匹配的模式來唯一地識(shí)別應(yīng)用。有限自動(dòng)機(jī)包括正則語言的轉(zhuǎn)移表表示。轉(zhuǎn)移表描述用于有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù)。
在又一個(gè)替換的具體實(shí)施例中,本發(fā)明提供用于把網(wǎng)絡(luò)系統(tǒng)變換成加速的、基于簽名的網(wǎng)絡(luò)系統(tǒng)的方法。該方法包括提供網(wǎng)絡(luò)系統(tǒng)。該網(wǎng)絡(luò)系統(tǒng)包括被耦合到主機(jī)處理器的主機(jī)存儲(chǔ)器、被耦合到主機(jī)處理器的主機(jī)接口總線、和被耦合到主機(jī)接口總線的主機(jī)連接器。該方法還包括提供用于對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行高吞吐量模式匹配的集成電路設(shè)備。該設(shè)備包括剛性支持部件,它包括包含網(wǎng)絡(luò)連接區(qū)域和主機(jī)連接區(qū)域的連接器區(qū)域。剛性支持部件具有選擇的寬度和選擇的長度。選擇的寬度和選擇的長度適合于經(jīng)由連接器區(qū)域耦合到網(wǎng)絡(luò)系統(tǒng)。
優(yōu)選地,一個(gè)或多個(gè)硬件模塊被布置在和被耦合到剛性支持部件。該一個(gè)或多個(gè)硬件模塊包括被耦合到剛性支持部件的網(wǎng)絡(luò)接口模塊。網(wǎng)絡(luò)接口模塊包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口。該一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口經(jīng)由連接器區(qū)域被耦合到基于分組的網(wǎng)絡(luò)。該一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口包含一個(gè)或多個(gè)進(jìn)入網(wǎng)絡(luò)端口。網(wǎng)絡(luò)接口總線被耦合到剛性支持部件。網(wǎng)絡(luò)接口總線適合于把網(wǎng)絡(luò)接口模塊接口到網(wǎng)絡(luò)模塊。網(wǎng)絡(luò)模塊被耦合到剛性支持部件。網(wǎng)絡(luò)模塊被耦合到網(wǎng)絡(luò)接口總線。網(wǎng)絡(luò)事件模塊被耦合到剛性支持部件。網(wǎng)絡(luò)事件模塊被耦合到網(wǎng)絡(luò)模塊。存儲(chǔ)器模塊被耦合到剛性支持部件。存儲(chǔ)器模塊被耦合到網(wǎng)絡(luò)事件模塊和網(wǎng)絡(luò)模塊。存儲(chǔ)器模塊包括模式存儲(chǔ)器。模式存儲(chǔ)器與多個(gè)預(yù)先存儲(chǔ)的模式有關(guān)。主機(jī)接口模塊被耦合到剛性支持部件。主機(jī)接口模塊被耦合到網(wǎng)絡(luò)事件模塊和/或網(wǎng)絡(luò)模塊。主機(jī)接口總線被耦合到剛性支持部件。主機(jī)接口總線被耦合到主機(jī)接口模塊。主機(jī)接口總線能夠經(jīng)由連接器區(qū)域連接到主機(jī)系統(tǒng)。該方法包括把集成電路設(shè)備的主機(jī)接口連接器區(qū)域與網(wǎng)絡(luò)系統(tǒng)上的主機(jī)連接器相連接,以便把網(wǎng)絡(luò)系統(tǒng)的主機(jī)接口總線機(jī)械地和電氣地耦合到集成電路設(shè)備的主機(jī)接口總線。
另外,所述方法包括把選擇的驅(qū)動(dòng)器軟件傳送到網(wǎng)絡(luò)系統(tǒng)。驅(qū)動(dòng)器軟件被配置成幫助在集成電路設(shè)備與網(wǎng)絡(luò)系統(tǒng)之間經(jīng)由主機(jī)接口總線進(jìn)行通信。該方法包括通過驅(qū)動(dòng)器軟件初始化集成電路設(shè)備。
在替換的具體實(shí)施例中,本發(fā)明提供用于使用集成電路設(shè)備的、基于簽名的模式識(shí)別的方法。該方法包括提供用于對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行高吞吐量模式匹配的集成電路設(shè)備。該設(shè)備包括剛性支持部件,它包括連接器區(qū)域。連接器區(qū)域包括網(wǎng)絡(luò)連接區(qū)域和主機(jī)連接區(qū)域。剛性支持部件具有選擇的寬度和選擇的長度。選擇的寬度和選擇的長度適合于經(jīng)由連接器區(qū)域被耦合到網(wǎng)絡(luò)系統(tǒng)。
優(yōu)選地,一個(gè)或多個(gè)硬件模塊被布置在和被耦合到剛性支持部件。該一個(gè)或多個(gè)硬件模塊包括被耦合到剛性支持部件的網(wǎng)絡(luò)接口模塊。網(wǎng)絡(luò)接口模塊包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口。該一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口經(jīng)由連接器區(qū)域被耦合到基于分組的網(wǎng)絡(luò)。該一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口包含一個(gè)或多個(gè)進(jìn)入網(wǎng)絡(luò)端口。網(wǎng)絡(luò)接口總線被耦合到剛性支持部件。網(wǎng)絡(luò)接口總線適合于把網(wǎng)絡(luò)接口模塊接口到網(wǎng)絡(luò)模塊。網(wǎng)絡(luò)模塊被耦合到剛性支持部件。網(wǎng)絡(luò)模塊被耦合到網(wǎng)絡(luò)接口總線。網(wǎng)絡(luò)事件模塊被耦合到剛性支持部件。網(wǎng)絡(luò)事件模塊被耦合到網(wǎng)絡(luò)模塊。存儲(chǔ)器模塊被耦合到剛性支持部件。存儲(chǔ)器模塊被耦合到網(wǎng)絡(luò)事件模塊和網(wǎng)絡(luò)模塊。存儲(chǔ)器模塊包括模式存儲(chǔ)器。模式存儲(chǔ)器與多個(gè)預(yù)先存儲(chǔ)的模式有關(guān)。主機(jī)接口模塊被耦合到剛性支持部件。主機(jī)接口模塊被耦合到網(wǎng)絡(luò)事件模塊和/或網(wǎng)絡(luò)模塊。主機(jī)接口總線被耦合到剛性支持部件。主機(jī)接口總線被耦合到主機(jī)接口模塊。主機(jī)接口總線能夠經(jīng)由連接器區(qū)域連接到主機(jī)系統(tǒng)。
另外,所述方法包括把信息從基于分組的網(wǎng)絡(luò)傳送到網(wǎng)絡(luò)接口端口和通過網(wǎng)絡(luò)接口總線傳送來自網(wǎng)絡(luò)接口端口的信息。該方法包括在處理單元處接收來自網(wǎng)絡(luò)接口總線的信息和通過使用處理單元識(shí)別在一個(gè)或多個(gè)分組與來自所述信息的流之間的關(guān)聯(lián)性。該一個(gè)或多個(gè)分組被重新排序成一個(gè)或多個(gè)相應(yīng)的流。該方法還包括確定對(duì)于一個(gè)或多個(gè)相應(yīng)的流的一個(gè)或多個(gè)分組是否與被存儲(chǔ)在通過存儲(chǔ)器總線被耦合到處理單元的存儲(chǔ)器中的基于簽名的模式有關(guān),其中該確定是通過使用具有小于8納秒的隨機(jī)訪問時(shí)間的存儲(chǔ)器進(jìn)行的。根據(jù)確定步驟發(fā)起信號(hào)到策略引擎。
通過使用本發(fā)明,比起傳統(tǒng)的技術(shù)可以得到許多好處和/或優(yōu)點(diǎn)。按照優(yōu)選實(shí)施例,本發(fā)明也可以以高吞吐量執(zhí)行模式匹配。對(duì)于其中有限自動(dòng)機(jī)被使用來作為特性提取裝置的一部分而實(shí)施模式匹配的本發(fā)明的實(shí)施例,由有限自動(dòng)機(jī)使用的轉(zhuǎn)移函數(shù)應(yīng)當(dāng)具有恒定的時(shí)間復(fù)雜性,從而保證可以在固定的范圍內(nèi)達(dá)到轉(zhuǎn)移,固定的范圍由要達(dá)到的吞吐量規(guī)定。這是部分地通過使用諸如現(xiàn)代靜態(tài)RAM的、具有低的隨機(jī)訪問時(shí)間的存儲(chǔ)器而達(dá)到的。
在替換的具體實(shí)施例中,本發(fā)明還保留模式數(shù)據(jù)庫對(duì)存儲(chǔ)器的使用,而不過分限制在模式數(shù)據(jù)庫中模式的數(shù)目。這可通過使用諸如在以下專利中描述的壓縮技術(shù)來完成2003年5月23日提交的、共同轉(zhuǎn)讓的、題目為“Apparatus and Method for Large Hardware FiniteState Machine with Embedded Equivalence”的美國臨時(shí)專利60/473,373;和2003年3月12日提交的、共同轉(zhuǎn)讓的、題目為“Apparatus and Method for Memory Efficient Programmable PatternMatching Finite State Machine Hardware”的美國臨時(shí)專利60/454,398。另外,也可以使用對(duì)于本領(lǐng)域技術(shù)人員明顯的、其它類似的技術(shù)來減小用于轉(zhuǎn)移表的存儲(chǔ)器覆蓋區(qū)的大小。這些技術(shù)的關(guān)鍵是它們的低的和恒定的等待時(shí)間附加開銷,這不單導(dǎo)致緊湊的存儲(chǔ)器使用,而且也導(dǎo)致高吞吐量。這種較低的存儲(chǔ)器使用法導(dǎo)致對(duì)于給定的系統(tǒng)的生產(chǎn)的較低的成本,或?qū)τ谙到y(tǒng)的給定成本的簽名的更大容量。
替換地,包括所述設(shè)備的本發(fā)明可以被調(diào)整以適合于各種現(xiàn)有的和新的網(wǎng)絡(luò)系統(tǒng),其具有通用形式的因子并被連接到標(biāo)準(zhǔn)硬件接口,而不需要對(duì)網(wǎng)絡(luò)系統(tǒng)進(jìn)行硬件重新設(shè)計(jì)制造以使它被調(diào)整來使用所述設(shè)備。多種應(yīng)用可以同時(shí)運(yùn)行。多種應(yīng)用能夠具有分開的數(shù)據(jù)庫,并且分開的法則數(shù)據(jù)庫還使得硬件設(shè)備以線速度同時(shí)運(yùn)行所有的應(yīng)用;線速度是按照其它實(shí)施例使用的、對(duì)于給定的物理媒體可能的最大吞吐量。在其它方面,本發(fā)明提供了可以在不需要人工干預(yù)的情況下通過主機(jī)或網(wǎng)絡(luò)而被更新的模式數(shù)據(jù)庫、法則組以及因此的應(yīng)用作為所提供的新的簽名或新的應(yīng)用。結(jié)構(gòu)被這樣地設(shè)計(jì),以便提供用于基于簽名的業(yè)務(wù)的共同的格式。
再者,本發(fā)明提供了使得上邊界最壞情形(upper bound worstcase)抖動(dòng)和等待時(shí)間最小化的效果。這是通過以硬件,而不是以諸如在計(jì)算機(jī)操作系統(tǒng)的內(nèi)核中或在軟件TCP/IP堆棧中的軟件來實(shí)施核心網(wǎng)絡(luò)功能而完成的。而且,以硬件組合這些網(wǎng)絡(luò)功能與模式匹配功能以使得它們緊密地耦合,這導(dǎo)致系統(tǒng)具有較低的等待時(shí)間和抖動(dòng)。
再者,本發(fā)明允許協(xié)議譯碼被緊密地耦合到這些網(wǎng)絡(luò)和模式匹配功能,以使得分組可以通過硬件被接收、分類和重新排序;按照協(xié)議定義被譯碼,以及對(duì)多個(gè)應(yīng)用施加模式匹配。這樣做的結(jié)果是,系統(tǒng)現(xiàn)在可以以線速度更深入地了解網(wǎng)絡(luò)業(yè)務(wù),從而導(dǎo)致更精確的簽名匹配,而同時(shí)也導(dǎo)致系統(tǒng)具有較低的等待時(shí)間和抖動(dòng)。
另外,本發(fā)明允許可被搜索的正則表達(dá)式在本發(fā)明的某些實(shí)施例中還被擴(kuò)展成包括“時(shí)間正則表達(dá)式”。時(shí)間正則表達(dá)式是包含時(shí)間分量的正則表達(dá)式的任何擴(kuò)展的組。該時(shí)間分量允許在數(shù)據(jù)內(nèi)容上進(jìn)行搜索,但具有能夠利用和相對(duì)與絕對(duì)時(shí)序信息有關(guān)的信息的附加好處。
本發(fā)明的另外的好處是按照具體實(shí)施例來克服以軟件運(yùn)行安全應(yīng)用中所使用的網(wǎng)絡(luò)與模式匹配算法的服務(wù)質(zhì)量問題。利用算法缺陷的一類拒絕服務(wù)攻擊出現(xiàn),使得更加不能夠逐個(gè)字節(jié)地實(shí)時(shí)處理網(wǎng)絡(luò)數(shù)據(jù)。這些低帶寬攻擊利用了這樣的事實(shí)以軟件運(yùn)行的許多算法具有的‘平均情形’運(yùn)行時(shí)間比‘最壞情形’運(yùn)行時(shí)間更有效得多。細(xì)心精巧制作輸入的攻擊者可以審慎地使得這些算法具有使得它們以最壞情形運(yùn)行時(shí)間來運(yùn)行的輸入。例如,參閱“Denial of Service via AlgorithmicComplexity Attacks”,Scott A.Crosby,Dan S.Wallach,Department ofComputer Science,Rice University.這些問題可以存在于正則表達(dá)式匹配庫(regexp)的許多軟件實(shí)施方案中,其中輸入數(shù)據(jù)可以使得regexp匹配以指數(shù)運(yùn)行時(shí)間進(jìn)行處理。參閱Tim Peters,[Python-Dev]Algorithmic Complexity Attack On Python dated Saturday May 31,2003.許多模式匹配安全系統(tǒng)利用這個(gè)庫,因此對(duì)于這種方式的算法攻擊是脆弱的。不使用regexp的大多數(shù)系統(tǒng)代替地利用最簡單的文字(精確的)匹配,以及因此可以很容易地被精巧制作攻擊以避免該精確模式被找到的攻擊者所愚弄。優(yōu)選地,本發(fā)明提供線速度模式匹配,通過對(duì)輸入數(shù)據(jù)進(jìn)行實(shí)時(shí)模式匹配而克服這些缺陷,而同時(shí)仍舊允許模式數(shù)據(jù)庫中正則表達(dá)式的全部權(quán)限。一個(gè)或多個(gè)這些好處可被包括在這里描述的實(shí)施例中。下面通過本說明書來更具體地描述這些和其它好處。
圖1顯示了按照本發(fā)明的實(shí)施例的、包括基于分組的網(wǎng)絡(luò)[100]、多個(gè)網(wǎng)絡(luò)系統(tǒng)[101]、[102]、[103]和被連接到局域網(wǎng)(LAN)[104]的多個(gè)主機(jī)的典型網(wǎng)絡(luò)環(huán)境;圖2顯示了按照本發(fā)明的實(shí)施例的、在剛性支持部件(諸如卡)[201]上的本發(fā)明的集成電路設(shè)備的實(shí)施例;圖3顯示了按照本發(fā)明的實(shí)施例的集成電路設(shè)備[300]的實(shí)施例的框圖;圖4顯示了按照本發(fā)明的實(shí)施例的、運(yùn)行在后備(無源)工作模式下的集成電路設(shè)備的實(shí)施例的功能性框圖;圖5顯示了按照本發(fā)明的實(shí)施例的、包括協(xié)議譯碼器[513]的運(yùn)行在后備(無源)工作模式下的集成電路設(shè)備的功能性圖。
圖6顯示了按照本發(fā)明的實(shí)施例的、包括更新模塊[614]的運(yùn)行在后備(無源)工作模式下的集成電路設(shè)備的實(shí)施例的功能性圖;圖7顯示在本發(fā)明的一個(gè)實(shí)施例中,多組模式[701,702,703,704]將存在于按照本發(fā)明的實(shí)施例的設(shè)備的存儲(chǔ)器[700]中,每個(gè)模式用于在設(shè)備上運(yùn)行的一個(gè)應(yīng)用;圖8是按照本發(fā)明的實(shí)施例運(yùn)行的幾個(gè)處理的流程圖;圖9顯示了按照本發(fā)明的實(shí)施例的流分類處理過程;圖10顯示了按照本發(fā)明的實(shí)施例的、包括在每個(gè)功能性單元[1000,1001,1002,1003,1004]之間可配置地插入靈活的流處理器塊 的本發(fā)明的功能性框圖;
圖11顯示了按照本發(fā)明的實(shí)施例的流處理器的示例性分類法;圖12顯示了按照本發(fā)明的實(shí)施例的、通過正則語言對(duì)多個(gè)模式的示例性表示和用于針對(duì)正則語言的壓縮表示進(jìn)行匹配的方法;圖13是按照本發(fā)明的實(shí)施例的、用于把現(xiàn)有的網(wǎng)絡(luò)系統(tǒng)變換成加速的基于簽名的網(wǎng)絡(luò)系統(tǒng)的流程圖。
具體實(shí)施例方式
按照本發(fā)明,提供了用于計(jì)算機(jī)聯(lián)網(wǎng)安全應(yīng)用的技術(shù)。更具體地,本發(fā)明包括用于以線速度作用于網(wǎng)絡(luò)分組和流數(shù)據(jù)的、基于簽名的網(wǎng)絡(luò)應(yīng)用的設(shè)備的集成電路實(shí)施方案。按照具體的實(shí)施例,本發(fā)明包括用于以下功能的設(shè)備和方法,即,以線速度同時(shí)進(jìn)行將分組高吞吐量地流分類成網(wǎng)絡(luò)流、對(duì)這種流進(jìn)行重新分組裝配(在想要的場(chǎng)合下)、過濾和預(yù)處理這種流(在想要的場(chǎng)合下,包括協(xié)議譯碼)、對(duì)這種流的報(bào)頭和有效負(fù)荷內(nèi)容進(jìn)行模式匹配、和根據(jù)用于多個(gè)網(wǎng)絡(luò)應(yīng)用的基于法則的策略來進(jìn)行動(dòng)作執(zhí)行。僅僅作為例子,本發(fā)明被應(yīng)用于分布在局域網(wǎng)、廣域網(wǎng)、和世界范圍的網(wǎng)絡(luò)的聯(lián)網(wǎng)設(shè)備。
在具體實(shí)施例中,本發(fā)明包括用于通過使用專門化的硬件對(duì)網(wǎng)絡(luò)應(yīng)用執(zhí)行模式匹配的設(shè)備和方法。本結(jié)構(gòu)允許對(duì)基于分組的網(wǎng)絡(luò)實(shí)施以高達(dá)線速度來實(shí)現(xiàn)高吞吐量的基于簽名的網(wǎng)絡(luò)應(yīng)用。新穎的結(jié)構(gòu)特別包括對(duì)于模式匹配聯(lián)網(wǎng)和安全操作的硬件支持。這種結(jié)構(gòu)適用于基于簽名匹配的高性能安全系統(tǒng)。這些系統(tǒng)包括侵入檢測(cè)系統(tǒng)、侵入防止系統(tǒng)、抗病毒網(wǎng)關(guān)、電子郵件掃描網(wǎng)關(guān)、內(nèi)容過濾系統(tǒng)、抗垃圾郵件系統(tǒng)、內(nèi)容保護(hù)系統(tǒng)、帶寬/服務(wù)質(zhì)量管理、內(nèi)容監(jiān)控系統(tǒng)、網(wǎng)絡(luò)監(jiān)控系統(tǒng)、等許多其它系統(tǒng)。本發(fā)明的另一個(gè)新穎的方面在于,所述設(shè)備適合于耦合到各種網(wǎng)絡(luò)系統(tǒng),包括防火墻、網(wǎng)絡(luò)設(shè)備、安全設(shè)備、服務(wù)器和其它網(wǎng)絡(luò)設(shè)備,其會(huì)在下面更詳細(xì)地被描述。
圖1顯示了可被耦合到設(shè)備的不同的實(shí)施例的網(wǎng)絡(luò)系統(tǒng)的幾個(gè)例子。這些例子僅僅是說明性的,而不應(yīng)當(dāng)限制這里的權(quán)利要求的范圍。本領(lǐng)域技術(shù)人員將會(huì)看到許多變化、替換和修改。這些例子包括在[101]的后備網(wǎng)絡(luò)系統(tǒng),在[102]的在線網(wǎng)絡(luò)系統(tǒng),和在[103]的網(wǎng)絡(luò)服務(wù)器,以及其它可能的單元。在本例中,網(wǎng)絡(luò)系統(tǒng)具有后備網(wǎng)關(guān)監(jiān)控設(shè)備(例如,網(wǎng)絡(luò)監(jiān)控器或侵入檢測(cè)系統(tǒng))[101]、連接LAN到基于分組的網(wǎng)絡(luò)[100]的網(wǎng)關(guān)系統(tǒng)(例如,路由器、防火墻或交換機(jī))[102]和被連接到LAN的主機(jī)系統(tǒng)(例如,工作站、文件服務(wù)器或郵件服務(wù)器)[103](通信是通過各種網(wǎng)絡(luò)協(xié)議在LAN和基于分組的網(wǎng)絡(luò)上在每個(gè)網(wǎng)絡(luò)系統(tǒng)與其它系統(tǒng)之間實(shí)現(xiàn)的)。在低級(jí)別上,這個(gè)數(shù)據(jù)被分割成一系列被稱為分組的分段。這些分組然后通過網(wǎng)絡(luò)從源獨(dú)立地路由到目的地,結(jié)果,可以采取不同的路徑以及不按次序到達(dá)。然后,分組在目的地處被重新裝配,以還原原始的數(shù)據(jù)流。本設(shè)備的其它細(xì)節(jié)可以在本說明書中找到,下面更具體地進(jìn)行描述。
設(shè)備[201]顯示于圖2。該圖僅僅是例子,它在這里不應(yīng)當(dāng)過分限制權(quán)利要求的范圍。本領(lǐng)域技術(shù)人員將會(huì)看到許多變化、修改和替換。本設(shè)備可以通過連接器區(qū)域被耦合到網(wǎng)絡(luò)系統(tǒng)[200]。被連接到主機(jī)系統(tǒng)的連接器區(qū)域的實(shí)施例包括PCI和Compact-PCI標(biāo)準(zhǔn),它們定義電的和機(jī)械的接口。剛性支持部件具有選擇的寬度和選擇的長度,其適合于耦合到諸如網(wǎng)絡(luò)設(shè)備、服務(wù)器或網(wǎng)絡(luò)節(jié)點(diǎn)的網(wǎng)絡(luò)系統(tǒng)[200]。優(yōu)選地,剛性支持部件適用于服務(wù)器作為用于將被用來實(shí)施本發(fā)明的實(shí)施例的多個(gè)集成電路裝置和其它硬件的基片(例如,印刷電路板、硅基片、集成電路封裝)。剛性支持部件還包括公共總線,其可被耦合到任何傳統(tǒng)的網(wǎng)絡(luò)設(shè)備、服務(wù)器或網(wǎng)絡(luò)節(jié)點(diǎn)。
該設(shè)備包括用于對(duì)網(wǎng)絡(luò)業(yè)務(wù)執(zhí)行高吞吐量分析(例如,以線速度)的多個(gè)模塊,如圖3所示。這個(gè)圖僅僅是例子,它在這里不應(yīng)當(dāng)過分限制權(quán)利要求的范圍。本領(lǐng)域技術(shù)人員將會(huì)看到許多變化、替換和修改。信號(hào)是根據(jù)物理傳輸媒體(例如,光的、電的)從網(wǎng)絡(luò)接口模塊[301]內(nèi)的進(jìn)入網(wǎng)絡(luò)端口接收的。數(shù)據(jù)是從具有比特形式的這些信號(hào)中提取的。這個(gè)數(shù)據(jù)通過網(wǎng)絡(luò)接口總線[301]被傳送到網(wǎng)絡(luò)模塊[302](這些比特然后經(jīng)受多個(gè)網(wǎng)絡(luò)處理功能,以便提取相關(guān)的數(shù)據(jù)內(nèi)容)。數(shù)據(jù)在被流分類裝置分類成流之前被打包成分組。分組然后被放置在流存儲(chǔ)器中(在存儲(chǔ)器模塊[308]內(nèi)),直至流裝配器裝置使用分組來重建流為止。這個(gè)流然后按照預(yù)先規(guī)定的協(xié)議、過濾器和預(yù)處理器(例如,通過協(xié)議譯碼器)被譯碼,以產(chǎn)生數(shù)據(jù)內(nèi)容流。從這些數(shù)據(jù)內(nèi)容流中,由網(wǎng)絡(luò)事件模塊[307]提取相關(guān)的特性(特性提取在一個(gè)實(shí)施例中可被看作為對(duì)于由在存儲(chǔ)器模塊內(nèi)的模式存儲(chǔ)器提供的簽名的數(shù)據(jù)庫的模式匹配處理)。所提取的特性然后觸發(fā)消息到策略裝置,該裝置按照策略和(如由法則存儲(chǔ)器提供的)法則來解譯這些特性,以便產(chǎn)生事件和動(dòng)作,其經(jīng)由主機(jī)接口模塊[309]和主機(jī)接口總線[310]被傳送到主機(jī)系統(tǒng)[304]。
主機(jī)接口總線是標(biāo)準(zhǔn)硬件總線(例如,PCI),這樣,集成電路設(shè)備可以容易地與各種現(xiàn)有的網(wǎng)絡(luò)設(shè)備合并在一起。還被耦合到該設(shè)備的是更新模塊[311],它由主機(jī)系統(tǒng)或遠(yuǎn)程設(shè)備通過基于分組的網(wǎng)絡(luò)(經(jīng)由連接器區(qū)域[301]被耦合到網(wǎng)絡(luò)接口端口)來控制。更新模塊適合于更新存儲(chǔ)器模塊內(nèi)的任何存儲(chǔ)器,以便提供對(duì)于模式、協(xié)議定義、法則和其它設(shè)備特性的更新。
該設(shè)備通過連接器區(qū)域[303]連接到基于分組的網(wǎng)絡(luò)。這種連接器區(qū)域的一個(gè)實(shí)施例是用于IEEE 802以太網(wǎng)的RJ-45連接器。替換地,網(wǎng)絡(luò)尤其可包括SONET、ATM等。分組是由網(wǎng)絡(luò)接口模塊[301]通過這個(gè)區(qū)域從基于分組的網(wǎng)絡(luò)接收的,網(wǎng)絡(luò)接口模塊可包括多個(gè)進(jìn)入的網(wǎng)絡(luò)端口?;诜纸M的網(wǎng)絡(luò)的一個(gè)實(shí)施例是互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)。網(wǎng)絡(luò)接口模塊處理進(jìn)入的電信號(hào)或光信號(hào)到數(shù)字比特的變換,并且按照預(yù)定的技術(shù)規(guī)范(例如,在一個(gè)實(shí)施例中是IEEE 802以太網(wǎng)技術(shù)規(guī)范)把這些比特裝配成分組。網(wǎng)絡(luò)接口模塊經(jīng)由網(wǎng)絡(luò)接口總線[305]耦合到網(wǎng)絡(luò)模塊[302]。在幾個(gè)實(shí)施例中,網(wǎng)絡(luò)接口總線包括UTOPIA、SPI-3和CSIX總線標(biāo)準(zhǔn)。
網(wǎng)絡(luò)模塊包括多個(gè)設(shè)備,它們?nèi)〉眠@些數(shù)字比特,并執(zhí)行網(wǎng)絡(luò)處理功能。網(wǎng)絡(luò)模塊接收來自網(wǎng)絡(luò)接口模塊的數(shù)據(jù)的分組,并且給網(wǎng)絡(luò)事件模塊[307]提供譯碼的鄰接的數(shù)據(jù)流。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)模塊可以由單個(gè)網(wǎng)絡(luò)處理單元(NPU)所提供,而在其它實(shí)施例中,由諸如NPU和分類處理器的集成電路的組合所提供。網(wǎng)絡(luò)模塊被耦合到存儲(chǔ)器模塊[308],它提供用于各種設(shè)備和數(shù)據(jù)庫的存儲(chǔ)器,正如這里說明的那樣。網(wǎng)絡(luò)模塊提供流分類裝置,它負(fù)責(zé)識(shí)別在每個(gè)進(jìn)入的分組與流之間的關(guān)聯(lián)性,其中流是從源地址到目的地網(wǎng)絡(luò)地址的預(yù)定的分組序列。流分類裝置然后識(shí)別在流存儲(chǔ)器(由存儲(chǔ)器模塊提供)內(nèi)的流隊(duì)列,在該隊(duì)列上按照這種關(guān)聯(lián)性放置分組。流分類裝置被耦合到流裝配器裝置,流裝配器裝置按照預(yù)定的技術(shù)規(guī)范對(duì)于這些進(jìn)入的分組基于每個(gè)流來管理流隊(duì)列,并且有效地重新排序分組。在一個(gè)實(shí)施例中,這個(gè)技術(shù)規(guī)范是TCP/IP。在一個(gè)實(shí)施例中,流裝配器可以耦合到協(xié)議譯碼器,協(xié)議譯碼器又被耦合到由存儲(chǔ)器模塊提供的協(xié)議存儲(chǔ)器。協(xié)議存儲(chǔ)器包含多個(gè)網(wǎng)絡(luò)協(xié)議定義,網(wǎng)絡(luò)協(xié)議定義被協(xié)議譯碼器使用以從網(wǎng)絡(luò)流中識(shí)別突出的協(xié)議特性。在一個(gè)實(shí)施例中,這種特性的例子可以是作為SMTP電子郵件消息的一部分的源和目的地郵件地址。
網(wǎng)絡(luò)模塊的操作的實(shí)施例被顯示于圖9。如圖所示,圖9顯示對(duì)于本發(fā)明的一個(gè)實(shí)施例的流分類處理過程。在[900]中,來自多個(gè)流的分組接連地和可能次序錯(cuò)亂地到達(dá)。在[901]中,流分類的第一步驟是確定把每個(gè)分組放置在哪個(gè)流隊(duì)列上。在[902]中,每個(gè)分組被放置在這樣的隊(duì)列上,該隊(duì)列被分類到由某種預(yù)先確定的算法確定的(例如,在TCP/IP中的時(shí)序號(hào))正確的序列中。
轉(zhuǎn)回到圖3,網(wǎng)絡(luò)事件模塊[307]包括多個(gè)裝置,并且分析整個(gè)網(wǎng)絡(luò)流來提取相關(guān)的特性,然后把法則(或策略)施加到這些特性上,以便經(jīng)由事件通知主機(jī)接口模塊[309]。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)事件模塊通過使用模式匹配算法搜索數(shù)據(jù)流,然后按照法則組來分析這些匹配,以便然后通知主機(jī)系統(tǒng)相關(guān)的網(wǎng)絡(luò)事件。在一個(gè)實(shí)施例,網(wǎng)絡(luò)事件模塊由現(xiàn)場(chǎng)可編程門陣列(FPGA)提供。來自網(wǎng)絡(luò)模塊的進(jìn)入的數(shù)據(jù)流被傳送到識(shí)別重要性特性的特性提取裝置;這些特性的可匹配的表示被存儲(chǔ)在由存儲(chǔ)器模塊提供的模式存儲(chǔ)器中。
在本發(fā)明的某些實(shí)施例中,這些模式可以是正則表達(dá)式、確定性(deterministic)有限自動(dòng)機(jī)、Berkeley分組過濾器表達(dá)式或近似的簽名的所編譯的表示。在某些實(shí)施例中,這些簽名數(shù)據(jù)庫可以涉及到同時(shí)執(zhí)行的多個(gè)不同的應(yīng)用。匹配的特性被傳送到策略裝置,策略裝置相對(duì)于由存儲(chǔ)器模塊內(nèi)的法則存儲(chǔ)器提供的法則數(shù)據(jù)庫來分析特性。這些法則被使用以根據(jù)由和這些法則有關(guān)的應(yīng)用提供的預(yù)定的方案作出更高級(jí)別的決定。在某些實(shí)施例中,這允許聚集匹配的特性(在用于侵入檢測(cè)系統(tǒng)的拒絕服務(wù)攻擊檢測(cè)中是重要的),或選擇性法則組使能(即,基于網(wǎng)絡(luò)事件使能法則子組或提供預(yù)先規(guī)定的性能特征)。在某些實(shí)施例中,這些法則數(shù)據(jù)庫可以涉及到同時(shí)執(zhí)行的多個(gè)分開的應(yīng)用。作為法則的結(jié)果,策略裝置可以識(shí)別需要執(zhí)行的動(dòng)作。在某些實(shí)施例中,這樣的動(dòng)作可包括經(jīng)由主機(jī)接口模塊用信號(hào)通知主機(jī)系統(tǒng),用信號(hào)通知網(wǎng)絡(luò)模塊丟棄或修改(在設(shè)備是在線的情形下)分組或多個(gè)分組,或觸發(fā)計(jì)數(shù)器或定時(shí)器。
主機(jī)接口模塊可被耦合到網(wǎng)絡(luò)事件模塊和/或網(wǎng)絡(luò)模塊。主機(jī)接口模塊負(fù)責(zé)設(shè)備模塊與主機(jī)系統(tǒng)的接口連接。主機(jī)接口模塊經(jīng)由主機(jī)接口總線[310],經(jīng)由連接器區(qū)域[304]的主機(jī)部件被耦合到主機(jī)系統(tǒng)。在一個(gè)實(shí)施例中,這可以是通過PCI總線的通信,其中PCI標(biāo)準(zhǔn)規(guī)定主機(jī)接口總線和連接器區(qū)域的特性。在一個(gè)實(shí)施例中,主機(jī)接口模塊由分開的ASIC或FPGA提供的。這里,適當(dāng)?shù)腁SIC或FPGA的例子具有到低等待時(shí)間RAM的接口、至少5000個(gè)邏輯單元、多個(gè)時(shí)鐘域的內(nèi)部塊RAM和高速度數(shù)據(jù)總線。僅僅作為例子,F(xiàn)PGA可以是諸如由Xilinx公司制造的Virtex 2Pro那樣的FPGA,但也可以是其它的FPGA。在另一個(gè)實(shí)施例中,它可包括NPU,其中NPU具有多處理單元(例如,微引擎)、到低等待時(shí)間RAM的多個(gè)庫(bank)的接口和高速度數(shù)據(jù)總線。僅僅作為例子,NPU可以是由Intel公司制造的IXP 2400。當(dāng)然,本領(lǐng)域技術(shù)人員將會(huì)看到許多其它變化、替換和修改。
在一個(gè)實(shí)施例中,主機(jī)接口模塊將按照觸發(fā)的法則和/或動(dòng)作幫助網(wǎng)絡(luò)事件模塊用信號(hào)通知主機(jī)系統(tǒng)。在一個(gè)實(shí)施例中,主機(jī)接口模塊被耦合到更新模塊[311],以及幫助在更新模塊與主機(jī)系統(tǒng)之間進(jìn)行通信,這樣,更新模塊可以更新在存儲(chǔ)器模塊內(nèi)提供的一個(gè)或多個(gè)數(shù)據(jù)庫。
更新模塊負(fù)責(zé)管理在存儲(chǔ)器模塊內(nèi)提供的數(shù)據(jù)庫。在本發(fā)明的實(shí)施例中,更新模塊負(fù)責(zé)更新在模式存儲(chǔ)器中的模式、在協(xié)議存儲(chǔ)器中的協(xié)議定義、和在法則存儲(chǔ)器中的法則數(shù)據(jù)庫。在某些實(shí)施例中,更新模塊可以經(jīng)由鑒權(quán)裝置按照預(yù)先規(guī)定的技術(shù)規(guī)范對(duì)這個(gè)處理過程進(jìn)行鑒權(quán)。鑒權(quán)裝置在某些實(shí)施例中將以強(qiáng)的加密的方式這樣做,以便維持更新的合法性、整體性和機(jī)密性。在某些實(shí)施例中,鑒權(quán)裝置可以提供對(duì)于密碼原語的加速的硬件支持。在某些實(shí)施例中,更新由主機(jī)系統(tǒng)經(jīng)由主機(jī)接口模塊來提供,和在其它實(shí)施例中,由在基于分組的網(wǎng)絡(luò)上的遠(yuǎn)程系統(tǒng)經(jīng)由網(wǎng)絡(luò)模塊(可能在分開的管理接口上被連接到設(shè)備)來提供。
在某些實(shí)施例中,集成電路設(shè)備可以在線地操作,以使得觸發(fā)的法則可以在由網(wǎng)絡(luò)接口模塊提供的外出網(wǎng)絡(luò)接口上發(fā)送出這樣的分組之前作出丟棄或修改分組的決定。在這樣的實(shí)施例中,網(wǎng)絡(luò)事件模塊將識(shí)別這樣的決定,并且用信號(hào)通知網(wǎng)絡(luò)模塊在它的流后處理器中執(zhí)行操作。
在圖[4,5,6]中,給出了集成電路設(shè)備的不同的實(shí)施例,圖中顯示了從基于分組的網(wǎng)絡(luò)到主機(jī)系統(tǒng)的數(shù)據(jù)流。參考圖4,集成電路設(shè)備對(duì)從基于分組的網(wǎng)絡(luò)到達(dá)的分組執(zhí)行網(wǎng)絡(luò)應(yīng)用。分組首先經(jīng)由網(wǎng)絡(luò)接口端口[401]被接收,其中把它們從物理信號(hào)(例如,電的,光的)變換成比特,并被排列成數(shù)據(jù)分組。這些數(shù)據(jù)分組然后被傳送到流分類裝置[402],該流分類裝置把每個(gè)分組與網(wǎng)絡(luò)流相關(guān)聯(lián)。這些分組然后由流裝配器裝置[403]裝配成流。流裝配器裝置然后以重新裝配的流的形式傳送數(shù)據(jù)到特性提取設(shè)備[404]。特性提取設(shè)備根據(jù)被存儲(chǔ)在模式存儲(chǔ)器[409]內(nèi)的模式數(shù)據(jù)庫[410]來識(shí)別這些流內(nèi)的模式或簽名,和把成功的匹配通知給策略裝置[305]。策略裝置按照被存儲(chǔ)在法則存儲(chǔ)器[411]中的法則數(shù)據(jù)庫[412]把一個(gè)或多個(gè)匹配與事件相關(guān)聯(lián),把匹配轉(zhuǎn)換成網(wǎng)絡(luò)事件和相關(guān)的動(dòng)作。策略裝置把有關(guān)這些事件、動(dòng)作和其它狀態(tài)信息的消息經(jīng)由主機(jī)接口裝置[407]傳送到主機(jī)系統(tǒng)[406]。根據(jù)實(shí)施例,消息可包括訪問控制表更新消息、審查消息、事件消息、報(bào)警消息、狀態(tài)消息、詢問消息、更新消息、管理消息、錯(cuò)誤消息、警告消息、這些消息的任何組合等。主機(jī)接口裝置通過主機(jī)接口端口[407]耦合到主機(jī)系統(tǒng),所述端口把消息比特變換成適合于傳輸?shù)奈锢硇盘?hào)。
參考圖5,分組經(jīng)由網(wǎng)絡(luò)接口端口[501]被接收,其中把它們從物理信號(hào)(例如,電的,光的)變換成比特,并被排列成數(shù)據(jù)分組。這些數(shù)據(jù)分組然后被傳送到流分類裝置備[502],該流分類裝置把每個(gè)分組與網(wǎng)絡(luò)流相關(guān)聯(lián)。這些分組然后由流裝配器裝置[503]裝配成流。流裝配器裝置然后以重新裝配的流的形式傳送數(shù)據(jù)到協(xié)議譯碼器,協(xié)議譯碼器按照網(wǎng)絡(luò)協(xié)議說明來解析流成為協(xié)議內(nèi)容流。這些協(xié)議內(nèi)容流然后被傳送到特性提取設(shè)備[504]。特性提取設(shè)備根據(jù)被存儲(chǔ)在模式存儲(chǔ)器[509]內(nèi)的模式數(shù)據(jù)庫[510]來識(shí)別這些協(xié)議內(nèi)容流內(nèi)的模式或簽名,和把成功的匹配通知到策略裝置[505]。策略裝置按照被存儲(chǔ)在法則存儲(chǔ)器[511]中的法則數(shù)據(jù)庫[512]把一個(gè)或多個(gè)匹配與事件相關(guān)聯(lián),把匹配轉(zhuǎn)換成網(wǎng)絡(luò)事件和相關(guān)的網(wǎng)絡(luò)動(dòng)作。策略裝置把有關(guān)這些事件、動(dòng)作和其它狀態(tài)信息的消息經(jīng)由主機(jī)接口裝置[506]傳送到主機(jī)系統(tǒng)[508]。主機(jī)接口裝置通過主機(jī)接口端口[507]耦合到主機(jī)系統(tǒng),所述端口把消息比特變換成適合于傳輸?shù)奈锢硇盘?hào)。
圖8顯示在本發(fā)明的實(shí)施例中的設(shè)備內(nèi)的邏輯操作。這些操作的高級(jí)別說明如下在一個(gè)處理過程[800]中,從進(jìn)入網(wǎng)絡(luò)接口接收分組,并把它分類為屬于一個(gè)流,并在流存儲(chǔ)器中排隊(duì)。在第二處理過程[801]中,分組從流存儲(chǔ)器被讀出,并被重新裝配成接連的流。在第三處理過程[802]中,這些重新裝配的流然后針對(duì)相關(guān)的特性進(jìn)行分析,該特性的識(shí)別希望根據(jù)法則數(shù)據(jù)庫作出關(guān)于是否觸發(fā)動(dòng)作,通知主機(jī)等的決定。在某些實(shí)施例中,集成電路設(shè)備工作在流通過工作模式下。在這個(gè)模式中,第四處理過程[803]采取已被處理的分組,并且可以在它們于外出網(wǎng)絡(luò)接口上被發(fā)送之前把它們?nèi)縼G棄或修改它們。
圖[800]顯示分組接收處理過程,它包括等待分組變?yōu)樵谶M(jìn)入網(wǎng)絡(luò)接口端口上可得到的,接收這樣的分組,按照流將分組分類,然后把分組放置在流存儲(chǔ)器中。圖[801]顯示另一個(gè)處理過程等待這樣的要在流存儲(chǔ)器中排隊(duì)的分組,然后在把它們放置在模式隊(duì)列之一中之前把這樣的分組重新裝配為流。圖[802]顯示再一個(gè)處理過程它檢查模式隊(duì)列以得到準(zhǔn)備好的數(shù)據(jù);然后把這樣的數(shù)據(jù)從隊(duì)列中去除,將設(shè)備的上下文更新為當(dāng)前數(shù)據(jù)的流的上下文,提取從這樣的流中找到的特性。如果沒有找到特性,則處理過程等待下一個(gè)可得到的分組,否則它觸發(fā)可以與所觸發(fā)的特性關(guān)聯(lián)的任何法則。如果法則與動(dòng)作有關(guān),則處理過程觸發(fā)有關(guān)的動(dòng)作(例如,加標(biāo)記,通知主機(jī)系統(tǒng),丟棄或修改分組)。如果主機(jī)根據(jù)法則應(yīng)當(dāng)準(zhǔn)許通知,則具有任何相關(guān)的信息的消息被傳送到主機(jī)系統(tǒng)(例如,分組數(shù)據(jù)或這樣的摘要)。[803]是針對(duì)本發(fā)明的實(shí)施例運(yùn)行的處理過程(當(dāng)設(shè)備在還被稱為“工作的”或“在線”的“流-通過”工作模式下運(yùn)行時(shí))。在這種情形下,處理過程等待在流存儲(chǔ)器中的分組被加標(biāo)記為已處理的,它然后從隊(duì)列中去除該分組,并根據(jù)執(zhí)行的動(dòng)作,或者丟棄或者在外出接口上重新發(fā)送分組。
圖7顯示集成電路設(shè)備可以具有對(duì)網(wǎng)絡(luò)業(yè)務(wù)同時(shí)運(yùn)行的多個(gè)程序過程。同樣地,每個(gè)應(yīng)用可以具有其自己的在法則存儲(chǔ)器內(nèi)的法則。在這個(gè)裝置[600,601,602,603,604,605,606,607,608,609,610,611,612,613]內(nèi)模塊的操作是與圖5相同的,除了主機(jī)系統(tǒng)[608]可以經(jīng)由主機(jī)接口裝置[606]把模式數(shù)據(jù)庫或法則數(shù)據(jù)庫的更新傳送到更新裝置以外。更新裝置控制在存儲(chǔ)器[609,611]內(nèi)這些更新的管理。替換地,數(shù)據(jù)庫可以經(jīng)由網(wǎng)絡(luò)接口模塊在基于分組的網(wǎng)絡(luò)[600]上通過管理協(xié)議被更新。在這樣的實(shí)施例中,每個(gè)程序過程可以具有它自己的在模式存儲(chǔ)器中的模式數(shù)據(jù)庫和在法則存儲(chǔ)器中的法則數(shù)據(jù)庫。這樣的數(shù)據(jù)庫可能不必以硬件形式存儲(chǔ)在分開的存儲(chǔ)器塊內(nèi),而卻可以是在單個(gè)數(shù)據(jù)庫內(nèi)的緊湊的硬件表示。
本發(fā)明的某些實(shí)施例包括流處理器塊 ,它可包含幾個(gè)流處理器 ,如圖10所示。每個(gè)流處理器塊可包括一個(gè)或多個(gè)流處理器 。流處理器可以是在作用于分組或分組流上的一系列算術(shù)單元中的一個(gè)或多個(gè);可被放置在 中的塊的幾個(gè)例子被顯示于圖11。
圖11顯示了流處理器的示例性分類法,流處理器包括空處理器 ,其不經(jīng)修改地把數(shù)據(jù)輸入直接復(fù)制到輸出;MIME譯碼器 ,其對(duì)MIME編碼的數(shù)據(jù)進(jìn)行譯碼;摘要生成器 ,其取得數(shù)據(jù)流和輸出這樣的數(shù)據(jù)的某種子集和摘要(例如,分組報(bào)頭);Unicode譯碼器 ,其對(duì)于Unicode編碼的數(shù)據(jù)進(jìn)行譯碼;XML解析器 ,其按照某些預(yù)定的技術(shù)規(guī)范來解析和譯碼XML編碼的數(shù)據(jù);檢驗(yàn)和驗(yàn)證器 ,其按照某種預(yù)定的技術(shù)規(guī)范(例如,CRC-32)執(zhí)行輸入數(shù)據(jù)的檢驗(yàn)和運(yùn)算;解壓縮處理器 ,其按照某種預(yù)定的算法解壓縮輸入數(shù)據(jù)流;URL譯碼器 ,其譯碼HTTP編碼的URL;分組過濾器 ,其按照某種預(yù)定的技術(shù)規(guī)范(例如,BPF)過濾輸入數(shù)據(jù);HTTP Cookie處理器 ,其按照HTML或相關(guān)的技術(shù)規(guī)范來解析輸入數(shù)據(jù)和譯碼流內(nèi)的Cookie,然后執(zhí)行某種預(yù)定的功能;解密處理器 ,其按照某些預(yù)定的技術(shù)規(guī)范(例如,DES,AES)解密輸入數(shù)據(jù);和溢出保護(hù)器 ,其按照某些預(yù)定的算法處理輸入數(shù)據(jù),以便識(shí)別和/或過濾溢出攻擊。
正如顯示的那樣,這些塊允許在特性提取裝置作用于數(shù)據(jù)之前完成附加計(jì)算。在本發(fā)明的一個(gè)實(shí)施例中,解壓縮處理器可作用于流上,以產(chǎn)生現(xiàn)在可被檢查的新的流字節(jié)組。因?yàn)檫@些塊可以在設(shè)備的其它邏輯塊與裝置之間串聯(lián)地配置,因此,解密塊后面可以跟隨解壓縮塊。按照本發(fā)明的替換的實(shí)施例的方法通過本說明書被提供,并在下面更具體地描述。
按照本發(fā)明的、用于執(zhí)行高吞吐量模式匹配的方法被概述為如下1.提供由正則語言規(guī)定的多個(gè)模式;2.實(shí)施正則語言作為有限自動(dòng)機(jī),它包括描述有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù)的轉(zhuǎn)移表;3.以壓縮形式表示轉(zhuǎn)移表,這樣,有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù)能夠在例如相對(duì)于壓縮形式的大小是恒定的預(yù)定的(例如,最大)時(shí)間內(nèi)從壓縮形式中被計(jì)算;
4.存儲(chǔ)壓縮形式;5.通過根據(jù)有限自動(dòng)機(jī)的當(dāng)前的狀態(tài)和進(jìn)入的數(shù)據(jù)來計(jì)算轉(zhuǎn)移函數(shù)而對(duì)模式進(jìn)行匹配;以及6.執(zhí)行其它處理步驟,如希望的那樣。
正如所顯示的,以上的步驟序列提供了用于通過使用正則語言來進(jìn)行高吞吐量模式匹配的方法。按照具體的實(shí)施例,該方法通過例如使用這里描述的硬件和軟件執(zhí)行高吞吐量模式匹配。也就是說,模式匹配處理和模式的儲(chǔ)存可以用在一個(gè)或多個(gè)附圖和說明中描述的硬件和軟件特性被實(shí)施。高吞吐量模式匹配操作通過使用多個(gè)模式的一個(gè)或多個(gè)模式來執(zhí)行。模式優(yōu)選地由被實(shí)施為有限自動(dòng)機(jī)的正則語言規(guī)定。有限自動(dòng)機(jī)包括正則語言的轉(zhuǎn)移表表示。轉(zhuǎn)移表適合于以壓縮形式被存儲(chǔ),該壓縮形式被調(diào)整,以使得有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù)能夠在相對(duì)于壓縮形式的大小是恒定的預(yù)定的時(shí)間(例如,最大時(shí)間)內(nèi)從壓縮形式中被計(jì)算。本方法的另外的細(xì)節(jié)可以在本說明書中找到,并在下面更具體地描述。
在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)當(dāng)前的狀態(tài)和進(jìn)入的數(shù)據(jù)對(duì)有限自動(dòng)機(jī)的下一個(gè)狀態(tài)的計(jì)算是與壓縮轉(zhuǎn)移表的大小無關(guān)的,并且是恒定的。為了達(dá)到高吞吐量,這個(gè)計(jì)算應(yīng)當(dāng)占用小于40納秒。在本發(fā)明的另一個(gè)實(shí)施例中,壓縮轉(zhuǎn)移表應(yīng)當(dāng)占用小于原始轉(zhuǎn)移表的空間的五分之一。這可以通過使用諸如在以下的專利中描述的那樣的壓縮技術(shù)而達(dá)到2003年5月23日提交的、共同轉(zhuǎn)讓的、題目為“Apparatus andMethod for Large Hardware Finite State Machine with EmbeddedEquivalence”的美國臨時(shí)專利60/473,373;和2003年3月12日提交的、共同轉(zhuǎn)讓的、題目為“Apparatus and Method for Memory EfficientProgrammable Pattern Matching Finite State Hardware”的美國臨時(shí)專利60/454,398。替換地,也可以使用對(duì)于本領(lǐng)域技術(shù)人員明顯的、其它類似的技術(shù)來減小用于轉(zhuǎn)移表的存儲(chǔ)器覆蓋區(qū)的大小。
本方法的另外的細(xì)節(jié)按照?qǐng)D12被提供。僅僅作為例子, 顯示了用于表示兩個(gè)示例性模式的正則語言。第一模式表示字符“a”后面跟隨零或多個(gè)“b”字符,后面跟隨字符“c”。第二模式表示文字串“de”。模式通過“|”符號(hào)被組合,它表示替換,正如本領(lǐng)域技術(shù)人員熟悉的那樣。在正則語言表達(dá)式的前面的“.*”表示,它可以在給定的數(shù)據(jù)內(nèi)的任何地方匹配模式。用于實(shí)施由 規(guī)定的正則語言的有限自動(dòng)機(jī)被顯示于 。為了清晰起見,只顯示主要的轉(zhuǎn)移。本領(lǐng)域技術(shù)人員將會(huì)看到,有限自動(dòng)機(jī) 是由正則語言 規(guī)定的模式的實(shí)施方案。有限自動(dòng)機(jī)的轉(zhuǎn)移表 表達(dá)方式全面地規(guī)定自動(dòng)機(jī)內(nèi)所有的轉(zhuǎn)移。轉(zhuǎn)移表應(yīng)當(dāng)被壓縮,以便節(jié)省存儲(chǔ)器,并被使用以針對(duì)進(jìn)入的數(shù)據(jù)來匹配模式。按照本發(fā)明的、用于執(zhí)行高吞吐量模式匹配的方法在流程圖 中被概述。如圖所示,流程圖包括以下處理過程開始(例如,初始化),通過正則表達(dá)式表示模式,實(shí)施正則語言為有限自動(dòng)機(jī),壓縮來自有限自動(dòng)機(jī)的轉(zhuǎn)移表,以壓縮形式存儲(chǔ)(例如,存儲(chǔ)器)轉(zhuǎn)移表,和執(zhí)行模式匹配處理過程。根據(jù)實(shí)施例,某些步驟可被組合或甚至進(jìn)一步分開。另外,一個(gè)或多個(gè)步驟可以被插入或甚至彼此交換。根據(jù)實(shí)施例,功能可以用軟件、硬件或硬件與軟件的組合來實(shí)施,而不背離這里的權(quán)利要求的范圍。
按照本發(fā)明的、用于把網(wǎng)絡(luò)系統(tǒng)變換成加速的基于簽名的網(wǎng)絡(luò)系統(tǒng)的方法被概述為如下1.提供網(wǎng)絡(luò)系統(tǒng),例如傳統(tǒng)的網(wǎng)絡(luò),基于IP的網(wǎng)絡(luò);2.提供用于高吞吐量的基于簽名的網(wǎng)絡(luò)應(yīng)用的集成電路設(shè)備;3.把集成電路設(shè)備連接到網(wǎng)絡(luò)系統(tǒng),例如防火墻、網(wǎng)絡(luò)管理系統(tǒng)、侵入防止系統(tǒng)、路由器、網(wǎng)絡(luò)交換機(jī)、登錄系統(tǒng)、網(wǎng)絡(luò)設(shè)備、安全系統(tǒng)、抗病毒系統(tǒng)、抗-垃圾郵件系統(tǒng)、侵入檢測(cè)系統(tǒng)、內(nèi)容過濾系統(tǒng)、網(wǎng)絡(luò)監(jiān)控系統(tǒng)、文件服務(wù)器、郵件服務(wù)器、環(huán)球網(wǎng)(web)服務(wù)器、代理服務(wù)器和儲(chǔ)存區(qū)域網(wǎng)絡(luò)系統(tǒng);4.在網(wǎng)絡(luò)系統(tǒng)上傳送幫助在網(wǎng)絡(luò)系統(tǒng)與設(shè)備之間進(jìn)行通信的所選擇的驅(qū)動(dòng)器軟件;5.經(jīng)由網(wǎng)絡(luò)系統(tǒng)生成的信號(hào)初始化設(shè)備;6.執(zhí)行如想要的其它步驟。
在本發(fā)明的一個(gè)實(shí)施例中,該方法包括用所述設(shè)備代替網(wǎng)絡(luò)系統(tǒng)中的一個(gè)或多個(gè)現(xiàn)有的網(wǎng)絡(luò)接口卡。如圖所示,本發(fā)明提供了用于把網(wǎng)絡(luò)系統(tǒng)變換成加速的基于簽名的網(wǎng)絡(luò)系統(tǒng)的方法。本方法的其它細(xì)節(jié)按照?qǐng)D13被提供。這個(gè)圖僅僅是例子,而不應(yīng)當(dāng)過分限制這里的權(quán)利要求的范圍。
優(yōu)選地,所述方法包括提供網(wǎng)絡(luò)系統(tǒng)。網(wǎng)絡(luò)系統(tǒng)具有一個(gè)或多個(gè)輸入端口。主機(jī)處理器被耦合到該一個(gè)或多個(gè)輸入端口。主機(jī)存儲(chǔ)器被耦合到主機(jī)處理器。主機(jī)接口總線被耦合到主機(jī)處理器,以及主機(jī)連接器被耦合到主機(jī)接口總線。該方法還包括提供用于對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行高吞吐量模式匹配的集成電路設(shè)備。僅僅作為例子,可以使用這里描述的本設(shè)備以及其它設(shè)備。該方法還包括連接集成電路設(shè)備的主機(jī)接口連接器區(qū)域與網(wǎng)絡(luò)系統(tǒng)的主機(jī)連接器,以便把網(wǎng)絡(luò)系統(tǒng)的主機(jī)接口總線機(jī)械地和電氣地耦合到集成電路設(shè)備的主機(jī)接口總線。該方法還把選擇的驅(qū)動(dòng)器軟件傳送到網(wǎng)絡(luò)系統(tǒng)。優(yōu)選地,驅(qū)動(dòng)器軟件被配置成經(jīng)由主機(jī)接口總線幫助在集成電路設(shè)備與網(wǎng)絡(luò)系統(tǒng)之間進(jìn)行通信。該方法還經(jīng)由驅(qū)動(dòng)器軟件初始化集成電路設(shè)備。一旦設(shè)備被合并到聯(lián)網(wǎng)系統(tǒng)中,就可執(zhí)行各種方法。在下面以及在本說明書的其它部分更詳細(xì)地提供了這樣的方法的例子。
用于使用按照本發(fā)明的集成電路設(shè)備的、基于簽名的模式識(shí)別的方法被概述為如下1.提供用于高吞吐量的基于簽名的網(wǎng)絡(luò)應(yīng)用的集成電路設(shè)備;2.把信息從基于分組的網(wǎng)絡(luò)傳送到設(shè)備的網(wǎng)絡(luò)接口端口;3.把來自網(wǎng)絡(luò)接口端口的信息通過設(shè)備上的網(wǎng)絡(luò)接口總線進(jìn)行傳送;4.在處理單元處接收來自網(wǎng)絡(luò)接口總線的信息;5.通過使用處理單元從信息識(shí)別在一個(gè)或多個(gè)分組與流之間的關(guān)聯(lián)性;6.把一個(gè)或多個(gè)分組放置在一個(gè)或多個(gè)相應(yīng)的流中,重新排序弄亂的分組;
7.確定一個(gè)或多個(gè)相應(yīng)的流中的一個(gè)或多個(gè)分組是否與被存儲(chǔ)在模式數(shù)據(jù)庫內(nèi)的模式有關(guān),其中該確定是通過使用具有小于8納秒的隨機(jī)訪問時(shí)間的存儲(chǔ)器來執(zhí)行的;8.如果發(fā)生匹配,則發(fā)送信號(hào)到策略引擎。
如所示那樣,本發(fā)明包括用于使用集成電路設(shè)備的基于簽名的模式識(shí)別的方法。該方法包括提供用于對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行高吞吐量模式匹配的集成電路設(shè)備。該設(shè)備可以是這里描述的那種設(shè)備,但根據(jù)實(shí)施例也可以是其它的設(shè)備。該設(shè)備經(jīng)由公共接口總線被合并到預(yù)先存在的網(wǎng)絡(luò),而不用很大地修改硬件。這里,對(duì)于優(yōu)選實(shí)施例,設(shè)備僅僅被插入到用于公共接口總線的連接器。所述方法然后把信息通過連接器從基于分組的網(wǎng)絡(luò)傳送到網(wǎng)絡(luò)接口端口,并且把來自網(wǎng)絡(luò)接口端口的信息通過網(wǎng)絡(luò)接口也通過連接器進(jìn)行傳送。該方法在處理單元處接收來自網(wǎng)絡(luò)接口總線的信息,并且通過使用處理單元從信息中識(shí)別在一個(gè)或多個(gè)分組與流之間的關(guān)聯(lián)性。優(yōu)選地,該方法重新排序該一個(gè)或多個(gè)分組成為一個(gè)或多個(gè)相應(yīng)的流,并且確定該一個(gè)或多個(gè)相應(yīng)的流中的一個(gè)或多個(gè)分組是否與被存儲(chǔ)在通過存儲(chǔ)器總線被耦合到處理單元的存儲(chǔ)器中的基于簽名的模式相關(guān)聯(lián)。在優(yōu)選實(shí)施例中,該確定是通過使用具有小于8納秒的隨機(jī)訪問時(shí)間的存儲(chǔ)器來進(jìn)行的。如果發(fā)生關(guān)聯(lián),則該方法發(fā)起一信號(hào)到設(shè)備的策略引擎。一旦設(shè)備被合并到聯(lián)網(wǎng)系統(tǒng)中,就可執(zhí)行各種方法。這樣的方法的例子在下面以及本說明書的其它部分更詳細(xì)地提供。在本發(fā)明的一個(gè)實(shí)施例中,用于基于簽名的模式識(shí)別的方法還需要按照特定的協(xié)議來譯碼重新排序的分組。譯碼由處理單元執(zhí)行。諸如 XML解析那樣的某些協(xié)議顯示于圖11。
具體的實(shí)施例的之前的說明被提供以使得本領(lǐng)域技術(shù)人員能夠制造或使用本發(fā)明。對(duì)于這些實(shí)施例的各種修改對(duì)于本領(lǐng)域技術(shù)人員是顯而易見的,并且這里規(guī)定的通用原理可被應(yīng)用到其它實(shí)施例,而不用使用發(fā)明能力。因此,本發(fā)明不打算限于這里顯示的實(shí)施例,而是應(yīng)當(dāng)根據(jù)與這里公開的原理和新穎性特性一致的最廣泛的范圍。例如,根據(jù)實(shí)施例,以上的功能可被組合或進(jìn)一步分開。也可以添加或去除某些特性。另外,所闡述的特性的特定的次序在某些實(shí)施例中不是特別必要的,雖然在其它實(shí)施例中可能是重要的。根據(jù)實(shí)施例,處理過程序列可以用計(jì)算機(jī)代碼和/或硬件來實(shí)現(xiàn)。當(dāng)然,本領(lǐng)域普通技術(shù)人員將會(huì)認(rèn)識(shí)到許多其它變化、修改和替換。
雖然為了清晰和理解起見,上述的本發(fā)明以某種詳細(xì)程度而被描述,但本領(lǐng)域技術(shù)人員將會(huì)知道,可以在不背離本發(fā)明的范圍和精神的條件下對(duì)于剛才描述的優(yōu)選實(shí)施例作出各種改變和修改。例如,可以使用其它模式匹配操作,可以使用不同的網(wǎng)絡(luò)和系統(tǒng)接口,或者可以對(duì)于分組處理程序過程作出修改。而且,所描述的本發(fā)明的網(wǎng)絡(luò)處理和模式匹配特性可以在分開的集成電路內(nèi),或者在單個(gè)集成電路中被實(shí)施。本系統(tǒng)也可以應(yīng)用于各種應(yīng)用,其中包括侵入檢測(cè)、侵入防止、防火墻、內(nèi)容過濾、訪問控制、抗病毒、網(wǎng)絡(luò)監(jiān)控、業(yè)務(wù)過濾、垃圾郵件過濾、內(nèi)容分類、應(yīng)用-級(jí)別交換(switching)、帶寬/服務(wù)質(zhì)量管理、監(jiān)視、和XML環(huán)球網(wǎng)服務(wù)等。所以,所描述的實(shí)施例不應(yīng)當(dāng)限于這里給出的細(xì)節(jié),而是應(yīng)當(dāng)由以下的權(quán)利要求和它們的等同物的全部范圍所規(guī)定。
權(quán)利要求
1.一種用于在網(wǎng)絡(luò)應(yīng)用中進(jìn)行高吞吐量模式匹配的集成電路設(shè)備,該設(shè)備包括剛性支持部件,包括連接器區(qū)域,連接器區(qū)域包括網(wǎng)絡(luò)連接區(qū)域和主機(jī)連接區(qū)域,剛性支持部件具有選擇的寬度和選擇的長度,所述選擇的寬度和選擇的長度適合于經(jīng)由連接器區(qū)域被耦合到網(wǎng)絡(luò)系統(tǒng);一個(gè)或多個(gè)硬件模塊,其被布置在剛性支持部件上且被耦合到剛性支持部件,該一個(gè)或多個(gè)硬件模塊包括被耦合到剛性支持部件的網(wǎng)絡(luò)接口模塊,該網(wǎng)絡(luò)接口模塊包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口;被耦合到剛性支持部件的網(wǎng)絡(luò)接口總線,該網(wǎng)絡(luò)接口總線適合于接口到網(wǎng)絡(luò)接口模塊;被耦合到剛性支持部件的網(wǎng)絡(luò)模塊,該網(wǎng)絡(luò)模塊被耦合到網(wǎng)絡(luò)接口總線;被耦合到剛性支持部件的網(wǎng)絡(luò)事件模塊,該網(wǎng)絡(luò)事件模塊被耦合到網(wǎng)絡(luò)模塊;被耦合到剛性支持部件的存儲(chǔ)器模塊,存儲(chǔ)器模塊被耦合到網(wǎng)絡(luò)事件模塊和網(wǎng)絡(luò)模塊,存儲(chǔ)器模塊包括模式存儲(chǔ)器,該模式存儲(chǔ)器與多個(gè)預(yù)先存儲(chǔ)的模式有關(guān);被耦合到剛性支持部件的主機(jī)接口模塊,主機(jī)接口模塊被耦合到至少網(wǎng)絡(luò)事件模塊或至少網(wǎng)絡(luò)模塊或網(wǎng)絡(luò)事件模塊與網(wǎng)絡(luò)模塊二者;以及被耦合到剛性支持部件的主機(jī)接口總線,主機(jī)接口總線被耦合到主機(jī)接口模塊。
2.權(quán)利要求1的設(shè)備,其中網(wǎng)絡(luò)模塊、網(wǎng)絡(luò)接口模塊、網(wǎng)絡(luò)事件模塊和主機(jī)接口模塊在單個(gè)集成電路上提供。
3.權(quán)利要求2的設(shè)備,其中單個(gè)集成電路是網(wǎng)絡(luò)處理單元(NPU)。
4.權(quán)利要求2的設(shè)備,其中單個(gè)集成電路是可重新配置的邏輯電路。
5.權(quán)利要求2的設(shè)備,其中單個(gè)集成電路是專用集成電路。
6.權(quán)利要求4的設(shè)備,其中可重新配置的邏輯電路是現(xiàn)場(chǎng)可編程門陣列(FPGA)。
7.權(quán)利要求1的設(shè)備,其中網(wǎng)絡(luò)接口模塊包括媒體訪問控制層和物理訪問層。
8.權(quán)利要求1的設(shè)備,其中集成電路設(shè)備是多流集成電路設(shè)備,多流集成電路設(shè)備同時(shí)對(duì)一個(gè)或多個(gè)數(shù)據(jù)流進(jìn)行操作。
9.權(quán)利要求1的設(shè)備,其中剛性支持部件是從至少印刷電路板(PCB)、硅基片、和集成電路封裝中選擇的。
10.權(quán)利要求1的設(shè)備,其中網(wǎng)絡(luò)模塊包括流分類裝置,該流分類裝置被耦合到一個(gè)或多個(gè)進(jìn)入網(wǎng)絡(luò)端口;該流分類裝置能夠識(shí)別一個(gè)或多個(gè)分組;該一個(gè)或多個(gè)分組處在第一序列中;以及從多個(gè)流中識(shí)別該一個(gè)或多個(gè)分組所屬于的流;以及流裝配器裝置,該流裝配器裝置被耦合到流分類裝置;該流裝配器裝置能夠把所述一個(gè)或多個(gè)分組重新排序?yàn)榈诙蛄校辉摰诙蛄惺怯闪鞔_定的預(yù)定的序列。
11.權(quán)利要求10的設(shè)備,其中網(wǎng)絡(luò)模塊還包括協(xié)議譯碼器;該協(xié)議譯碼器被耦合到流裝配器裝置;該協(xié)議譯碼器適合于識(shí)別在預(yù)定的序列中的一個(gè)或多個(gè)分組,以及還適合于按照一個(gè)或多個(gè)協(xié)議定義處理在預(yù)定的序列中的一個(gè)或多個(gè)分組,以提供來自該一個(gè)或多個(gè)分組的有效負(fù)荷信息。
12.權(quán)利要求11的設(shè)備,其中網(wǎng)絡(luò)模塊還包括流后處理器;該流后處理器被耦合到網(wǎng)絡(luò)事件模塊;該流后處理器識(shí)別在一個(gè)或多個(gè)分組之間的關(guān)聯(lián)性;流后處理器適合于通過使用這種關(guān)聯(lián)性從多個(gè)流后處理算法中的一個(gè)或多個(gè)流后處理算法中進(jìn)行選擇;該一個(gè)或多個(gè)流后處理算法對(duì)于多個(gè)分組中的一個(gè)或多個(gè)分組而被執(zhí)行。
13.權(quán)利要求1的設(shè)備,其中基于分組的網(wǎng)絡(luò)是互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)。
14.權(quán)利要求1的設(shè)備,其中基于分組的網(wǎng)絡(luò)是異步傳輸模式(ATM)網(wǎng)絡(luò)。
15.權(quán)利要求12的設(shè)備,還包括被耦合到剛性支持部件的更新模塊,該更新模塊適合于更新多個(gè)預(yù)先存儲(chǔ)的模式和多個(gè)預(yù)先存儲(chǔ)的法則;所更新的模式和法則包括至少一個(gè)新的模式或至少一個(gè)新的法則。
16.權(quán)利要求15的設(shè)備,其中在模式匹配引擎是可操作的同時(shí)更新模塊是可操作的。
17.權(quán)利要求15的設(shè)備,其中更新模塊適合于更新多個(gè)預(yù)先存儲(chǔ)的協(xié)議定義;更新的協(xié)議定義包括至少一個(gè)新的協(xié)議定義。
18.權(quán)利要求17的設(shè)備,其中在協(xié)議譯碼器是可操作的同時(shí)更新模塊是可操作的。
19.權(quán)利要求1的設(shè)備,其中,存儲(chǔ)器模塊還包括特性存儲(chǔ)器,該特性存儲(chǔ)器與多個(gè)預(yù)先存儲(chǔ)的特性有關(guān);法則存儲(chǔ)器,該法則存儲(chǔ)器與多個(gè)預(yù)先存儲(chǔ)的法則有關(guān);網(wǎng)絡(luò)事件模塊包括特性提取裝置,該特性提取裝置被耦合到網(wǎng)絡(luò)模塊和存儲(chǔ)器模塊;該特性提取裝置能夠按照特性提取算法識(shí)別特性關(guān)聯(lián)性;特性提取算法按照某種預(yù)定的功能根據(jù)對(duì)一個(gè)或多個(gè)分組的檢查來識(shí)別特性關(guān)聯(lián)性;特性關(guān)聯(lián)性標(biāo)識(shí)多個(gè)預(yù)先存儲(chǔ)的特性中的一個(gè)或多個(gè)特性;預(yù)先存儲(chǔ)的特性被存儲(chǔ)在特性存儲(chǔ)器中;策略裝置,策略裝置被耦合到特性提取裝置和存儲(chǔ)器模塊;該策略裝置按照策略算法根據(jù)由特性提取裝置識(shí)別的特性關(guān)聯(lián)性識(shí)別法則關(guān)聯(lián)性,策略算法按照某種預(yù)定的功能通過檢查特性關(guān)聯(lián)性來識(shí)別法則關(guān)聯(lián)性,法則關(guān)聯(lián)性標(biāo)識(shí)多個(gè)預(yù)先存儲(chǔ)的法則中的一個(gè)或多個(gè)法則;預(yù)先存儲(chǔ)的法則被存儲(chǔ)在法則存儲(chǔ)器中。
20.權(quán)利要求19的設(shè)備,其中特性提取算法是模式匹配操作;預(yù)先存儲(chǔ)的特性是多個(gè)預(yù)先存儲(chǔ)的模式中的一個(gè)或多個(gè)模式;預(yù)先存儲(chǔ)的模式由模式存儲(chǔ)器提供;模式存儲(chǔ)器由存儲(chǔ)器模塊提供。
21.權(quán)利要求20的設(shè)備,其中預(yù)先存儲(chǔ)的模式包括一個(gè)或多個(gè)正則表達(dá)式。
22.權(quán)利要求20的設(shè)備,其中預(yù)先存儲(chǔ)的模式包括一個(gè)或多個(gè)n-gram表達(dá)式,n-gram表達(dá)式是碼元的元組。
23.權(quán)利要求20的設(shè)備,其中特性提取算法是用于至少一個(gè)或多個(gè)預(yù)定的存儲(chǔ)的模式的近似模式匹配處理過程。
24.權(quán)利要求23的設(shè)備,其中近似模式匹配處理過程是針對(duì)從至少以下文件中所選擇的文件來執(zhí)行的文本數(shù)據(jù)文件、文本數(shù)據(jù)流、二進(jìn)制數(shù)據(jù)文件、二進(jìn)制數(shù)據(jù)流、音頻數(shù)據(jù)流、音頻數(shù)據(jù)文件、視頻數(shù)據(jù)流、視頻數(shù)據(jù)文件、多媒體數(shù)據(jù)流、和多媒體數(shù)據(jù)文件。
25.權(quán)利要求23的設(shè)備,其中在近似模式匹配處理過程中近似的度量是編輯距離;編輯距離是精確匹配于模式所需要的插入、刪除或替換的數(shù)目。
26.權(quán)利要求23的設(shè)備,其中在近似模式匹配處理過程中近似的度量與人的感知有關(guān)。
27.權(quán)利要求19的設(shè)備,其中識(shí)別的法則關(guān)聯(lián)性表示動(dòng)作,該動(dòng)作改變?cè)O(shè)備的狀態(tài)。
28.權(quán)利要求27的設(shè)備,其中所述動(dòng)作使能從法則存儲(chǔ)器中的預(yù)定的法則里選擇一個(gè)或多個(gè)法則,該使能經(jīng)過預(yù)定的時(shí)間量。
29.權(quán)利要求1的設(shè)備,其中更新模塊被耦合到剛性支持部件,該更新模塊被耦合到存儲(chǔ)器模塊,該更新模塊提供數(shù)據(jù)庫管理器,數(shù)據(jù)庫管理器被配置成能夠更新存儲(chǔ)器模塊內(nèi)的多個(gè)存儲(chǔ)器中的一個(gè)或多個(gè)存儲(chǔ)器。
30.權(quán)利要求29的設(shè)備,其中更新模塊還包括鑒權(quán)裝置;鑒權(quán)裝置適合于提供對(duì)被提供給更新模塊的更新的密碼鑒權(quán)。
31.權(quán)利要求20的設(shè)備,其中預(yù)先存儲(chǔ)的模式包括一個(gè)或多個(gè)時(shí)間正則表達(dá)式。
32.權(quán)利要求19的設(shè)備,其中一個(gè)或多個(gè)預(yù)先存儲(chǔ)的法則與計(jì)數(shù)部件有關(guān);計(jì)數(shù)部件包括計(jì)數(shù)器和閾值;閾值與計(jì)數(shù)器的數(shù)值進(jìn)行比較。
33.權(quán)利要求19的設(shè)備,其中一個(gè)或多個(gè)預(yù)先存儲(chǔ)的法則與時(shí)間分量有關(guān)。
34.權(quán)利要求33的設(shè)備,其中時(shí)間分量是從至少時(shí)間量、絕對(duì)時(shí)間、無限大、和零中選擇的。
35.權(quán)利要求34的設(shè)備,其中時(shí)間分量與計(jì)數(shù)部件有關(guān);計(jì)數(shù)部件包括計(jì)數(shù)器和閾值;閾值與計(jì)數(shù)器進(jìn)行比較;組合的時(shí)間分量和計(jì)數(shù)器部件規(guī)定改變速率。
36.權(quán)利要求19的設(shè)備,其中策略裝置被耦合到主機(jī)接口裝置,策略裝置把識(shí)別的法則關(guān)聯(lián)性通知主機(jī)接口裝置。
37.權(quán)利要求1的設(shè)備,其中存儲(chǔ)器模塊包括從至少以下裝置中所選擇的一個(gè)或多個(gè)存儲(chǔ)器裝置隨機(jī)訪問存儲(chǔ)器(RAM)、包括三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM)的內(nèi)容可尋址存儲(chǔ)器(CAM)、以及一個(gè)或多個(gè)RAM與一個(gè)或多個(gè)CAM的組合。
38.權(quán)利要求1的設(shè)備,其中一個(gè)或多個(gè)外出網(wǎng)絡(luò)接口端口是響應(yīng)端口;響應(yīng)端口被用來通過信號(hào)幫助到遠(yuǎn)程網(wǎng)絡(luò)系統(tǒng)的通信。
39.權(quán)利要求38的設(shè)備,其中遠(yuǎn)程網(wǎng)絡(luò)系統(tǒng)是從至少防火墻、網(wǎng)絡(luò)管理系統(tǒng)、侵入防止系統(tǒng)、路由器、網(wǎng)絡(luò)交換機(jī)、和登錄系統(tǒng)中選擇的。
40.權(quán)利要求38的設(shè)備,其中信號(hào)可包括多個(gè)消息中的一個(gè)或多個(gè)消息。
41.權(quán)利要求40的設(shè)備,其中多個(gè)消息中的一個(gè)或多個(gè)消息包括從至少以下消息中所選擇的一個(gè)或多個(gè)消息訪問控制表更新消息;審查消息;事件消息;報(bào)警消息;狀態(tài)消息;詢問消息;更新消息;管理消息;錯(cuò)誤消息;以及警告消息。
42.權(quán)利要求1的設(shè)備,其中一個(gè)或多個(gè)網(wǎng)絡(luò)端口是管理端口。
43.權(quán)利要求42的設(shè)備,其中管理端口允許對(duì)裝置進(jìn)行配置。
44.權(quán)利要求11的設(shè)備,其中流是雙向流。
45.權(quán)利要求1的設(shè)備,其中在模式存儲(chǔ)器中的預(yù)先存儲(chǔ)的模式包括一個(gè)或多個(gè)Berkeley分組過濾器(BPF)模式或BPF衍生物。
46.權(quán)利要求1的設(shè)備,其中在模式存儲(chǔ)器中的預(yù)先存儲(chǔ)的模式包括一個(gè)或多個(gè)Berkeley分組過濾器加(BPF+)模式。
47.權(quán)利要求1的設(shè)備,其中在模式存儲(chǔ)器中的預(yù)先存儲(chǔ)的模式包括一個(gè)或多個(gè)預(yù)先存儲(chǔ)模式子集;該一個(gè)或多個(gè)預(yù)先存儲(chǔ)模式子集與一個(gè)或多個(gè)分組流有關(guān)。
48.權(quán)利要求15的設(shè)備,其中更新模塊被耦合到管理端口;管理端口被耦合到網(wǎng)絡(luò)接口端口。
49.權(quán)利要求1的設(shè)備,還包括被耦合到剛性支持部件的多個(gè)流處理塊中的一個(gè)或多個(gè)流處理塊;流處理塊包括多個(gè)流處理器中的一個(gè)或多個(gè)流處理器,其中每個(gè)流處理器的特征在于基于至少輸入數(shù)據(jù)序列的預(yù)定的功能;每個(gè)流處理器的特征還在于,提供輸出數(shù)據(jù)序列;輸出數(shù)據(jù)序列是按照預(yù)定的算法被提供的;以及預(yù)定的算法是由每個(gè)流處理器的預(yù)定的功能所提供的。
50.權(quán)利要求49的設(shè)備,其中用于每個(gè)流處理器的預(yù)定的功能是可通過軟件編程的。
51.權(quán)利要求49的設(shè)備,其中流處理塊在網(wǎng)絡(luò)模塊內(nèi)被提供。
52.權(quán)利要求49的設(shè)備,其中流處理器可以從包括以下部件的一個(gè)或多個(gè)處理過程中被選擇空流處理器,該空流處理器具有預(yù)定的功能,其中輸出數(shù)據(jù)序列等于輸入數(shù)據(jù)序列;解壓縮處理器,該解壓縮處理器具有預(yù)定的功能,其中輸出數(shù)據(jù)序列典型地大于輸入數(shù)據(jù)序列,以及表示有某種特定的原始大小和條件的數(shù)據(jù)序列;譯碼器,該譯碼器具有預(yù)定的功能,其中輸出數(shù)據(jù)序列按照預(yù)定的功能由輸入數(shù)據(jù)序列所確定;解析器,該解析器具有預(yù)定的功能,其中輸出數(shù)據(jù)序列按照預(yù)定的技術(shù)規(guī)范從輸入數(shù)據(jù)序列中得出;解密處理器,該解密處理器具有預(yù)定的功能,其中輸出數(shù)據(jù)序列按照預(yù)定的功能由輸入數(shù)據(jù)序列所確定;摘要生成器,該摘要生成器具有預(yù)定的功能,其中輸入數(shù)據(jù)序列的概要按照預(yù)定的功能被生成;檢驗(yàn)和處理器/驗(yàn)證器,該檢驗(yàn)和處理器或驗(yàn)證器具有預(yù)定的功能,其中輸入數(shù)據(jù)序列針對(duì)正確性而被檢驗(yàn);循環(huán)冗余檢驗(yàn)和(CRC)處理器/驗(yàn)證器,該CRC處理器或驗(yàn)證器具有預(yù)定的功能,其中輸入數(shù)據(jù)序列按照循環(huán)冗余檢驗(yàn)和算法而被檢驗(yàn)用于進(jìn)行糾正;以及過濾器;過濾器具有預(yù)定的功能,其中輸出數(shù)據(jù)序列是縮減的輸入數(shù)據(jù)序列組。
53.權(quán)利要求1的設(shè)備,其中網(wǎng)絡(luò)應(yīng)用包括一個(gè)或多個(gè)安全應(yīng)用。
54.權(quán)利要求1的設(shè)備,其中所述應(yīng)用是在從以下項(xiàng)中所選擇的一個(gè)或多個(gè)應(yīng)用中提供的侵入檢測(cè);侵入防止;防火墻;內(nèi)容過濾;訪問控制;抗病毒;網(wǎng)絡(luò)監(jiān)控;業(yè)務(wù)過濾;垃圾郵件過濾;內(nèi)容分類;應(yīng)用-級(jí)別交換;帶寬/服務(wù)質(zhì)量管理;監(jiān)視;和XML環(huán)球網(wǎng)服務(wù)。
55.權(quán)利要求1的設(shè)備,其中網(wǎng)絡(luò)系統(tǒng)是一個(gè)或多個(gè)網(wǎng)絡(luò)設(shè)備,該一個(gè)或多個(gè)網(wǎng)絡(luò)設(shè)備是從以下項(xiàng)中選擇的防火墻;網(wǎng)絡(luò)管理系統(tǒng);侵入防止系統(tǒng);路由器;網(wǎng)絡(luò)交換機(jī);登錄系統(tǒng);網(wǎng)絡(luò)設(shè)備;安全系統(tǒng);抗病毒系統(tǒng);抗垃圾郵件系統(tǒng);侵入檢測(cè)系統(tǒng);內(nèi)容過濾系統(tǒng);網(wǎng)絡(luò)監(jiān)控系統(tǒng);文件服務(wù)器;郵件服務(wù)器;環(huán)球網(wǎng)服務(wù)器;代理服務(wù)器;以及儲(chǔ)存區(qū)域網(wǎng)絡(luò)系統(tǒng)。
56.權(quán)利要求1的設(shè)備,其中主機(jī)接口是從以下項(xiàng)中選擇的外圍部件接口總線(PCI);緊湊的外圍部件接口總線(compact PCI);外圍部件接口x總線(PCI-X);外圍部件接口快速總線(PCI-express);通用串行總線(USB);小型計(jì)算機(jī)系統(tǒng)接口(SCSI);以及ISA總線。
57.權(quán)利要求12的設(shè)備,還包括被耦合到剛性支持部件的去分段裝置,該去分段裝置由網(wǎng)絡(luò)模塊提供,該去分段裝置被耦合到一個(gè)或多個(gè)進(jìn)入網(wǎng)絡(luò)端口;流分類裝置被耦合到去分段引擎;去分段引擎按照某種預(yù)定的技術(shù)規(guī)范把一個(gè)或多個(gè)分段的輸入分組裝配成整個(gè)未分段的輸出分組;去分段引擎把這樣的整個(gè)未分段的輸出分組傳遞到協(xié)議譯碼器的輸入。
58.權(quán)利要求57的設(shè)備,其中預(yù)定的技術(shù)規(guī)范是互聯(lián)網(wǎng)協(xié)議技術(shù)規(guī)范。
59.權(quán)利要求1的設(shè)備,其中基于簽名的模式是從多個(gè)模式里的一個(gè)或多個(gè)模式中選擇的,模式是按照從以下語言中所選擇的語言而被定義的正則語言;時(shí)間正則語言;Berkeley分組過濾器語言;Linux分組過濾器語言;近似模式語言;以及Perl可兼容正則表達(dá)語言。
60.一種用于執(zhí)行高吞吐量模式匹配的方法,其中高吞吐量模式匹配操作是通過使用多個(gè)模式中的一個(gè)或多個(gè)模式來執(zhí)行的;模式由正則語言來定義;正則語言被實(shí)現(xiàn)為有限自動(dòng)機(jī);有限自動(dòng)機(jī)包括正則語言的轉(zhuǎn)移表表示,轉(zhuǎn)移表描述用于有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù);轉(zhuǎn)移表適合于以壓縮形式而被存儲(chǔ);壓縮形式被調(diào)整以使得有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù)能夠在相對(duì)于壓縮形式的大小為恒定的最大時(shí)間內(nèi)從壓縮形式中被計(jì)算。
61.權(quán)利要求1的設(shè)備,其中預(yù)先存儲(chǔ)的模式由正則語言定義;正則語言由有限自動(dòng)機(jī)來實(shí)現(xiàn);有限自動(dòng)機(jī)包括正則語言的轉(zhuǎn)移表表示,轉(zhuǎn)移表描述用于有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù);轉(zhuǎn)移表適合于以壓縮形式被存儲(chǔ);壓縮形式被調(diào)整以使得有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù)在相對(duì)于壓縮形式的大小為恒定的最大時(shí)間內(nèi)從壓縮形式中被計(jì)算。
62.一種用于執(zhí)行高吞吐量模式匹配的設(shè)備,其中高吞吐量模式匹配操作是通過使用多個(gè)模式中的一個(gè)或多個(gè)模式執(zhí)行的;模式由正則語言定義;正則語言被實(shí)現(xiàn)為有限自動(dòng)機(jī);有限自動(dòng)機(jī)包括正則語言的轉(zhuǎn)移表表示,轉(zhuǎn)移表描述用于有限自動(dòng)機(jī)的轉(zhuǎn)移函數(shù);其中模式被表示為單個(gè)模式數(shù)據(jù)庫;該單個(gè)模式數(shù)據(jù)庫包括來自多個(gè)應(yīng)用中的一個(gè)或多個(gè)應(yīng)用的模式;模式匹配操作能夠從匹配的模式中唯一地識(shí)別應(yīng)用。
63.權(quán)利要求1的設(shè)備,其中預(yù)先存儲(chǔ)的模式被表示為單個(gè)模式數(shù)據(jù)庫;該單個(gè)模式數(shù)據(jù)庫包括來自多個(gè)應(yīng)用中的一個(gè)或多個(gè)應(yīng)用的模式;模式匹配操作能夠從匹配的模式中唯一地識(shí)別應(yīng)用。
64.一種用于把網(wǎng)絡(luò)系統(tǒng)變換成加速的、基于簽名的網(wǎng)絡(luò)系統(tǒng)的方法,該方法包括提供網(wǎng)絡(luò)系統(tǒng),該網(wǎng)絡(luò)系統(tǒng)包括一個(gè)或多個(gè)輸入端口;被耦合到一個(gè)或多個(gè)輸入端口的主機(jī)處理器;被耦合到主機(jī)處理器的主機(jī)存儲(chǔ)器;被耦合到主機(jī)處理器的主機(jī)接口總線;以及被耦合到主機(jī)接口總線的主機(jī)連接器;提供用于對(duì)于網(wǎng)絡(luò)應(yīng)用進(jìn)行高吞吐量模式匹配的集成電路設(shè)備,該設(shè)備包括剛性支持部件,包括連接器區(qū)域,連接器區(qū)域包括網(wǎng)絡(luò)連接區(qū)域和主機(jī)連接區(qū)域,剛性支持部件具有選擇的寬度和選擇的長度,選擇的寬度和選擇的長度適合于經(jīng)由連接器區(qū)域被耦合到網(wǎng)絡(luò)系統(tǒng);一個(gè)或多個(gè)硬件模塊被布置在剛性支持部件上且被耦合到剛性支持部件,該一個(gè)或多個(gè)硬件模塊包括被耦合到剛性支持部件的網(wǎng)絡(luò)接口模塊,該網(wǎng)絡(luò)接口模塊包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口,該一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口經(jīng)由連接器區(qū)域被耦合到基于分組的網(wǎng)絡(luò);被耦合到剛性支持部件的網(wǎng)絡(luò)接口總線,該網(wǎng)絡(luò)接口總線適合于把網(wǎng)絡(luò)接口模塊接口到網(wǎng)絡(luò)模塊;被耦合到剛性支持部件的網(wǎng)絡(luò)模塊,該網(wǎng)絡(luò)模塊被耦合到網(wǎng)絡(luò)接口總線;被耦合到剛性支持部件的網(wǎng)絡(luò)事件模塊,該網(wǎng)絡(luò)事件模塊被耦合到網(wǎng)絡(luò)模塊;被耦合到剛性支持部件的存儲(chǔ)器模塊,該存儲(chǔ)器模塊被耦合到網(wǎng)絡(luò)事件模塊和網(wǎng)絡(luò)模塊,該存儲(chǔ)器模塊包括模式存儲(chǔ)器,該模式存儲(chǔ)器與多個(gè)預(yù)先存儲(chǔ)的模式有關(guān);被耦合到剛性支持部件的主機(jī)接口模塊,該主機(jī)接口模塊被耦合到網(wǎng)絡(luò)事件模塊和/或網(wǎng)絡(luò)模塊;被耦合到剛性支持部件的主機(jī)接口總線,該主機(jī)接口總線被耦合到主機(jī)接口模塊,該主機(jī)接口總線能夠經(jīng)由連接器區(qū)域連接到主機(jī)系統(tǒng);把集成電路設(shè)備的主機(jī)接口連接器區(qū)域與網(wǎng)絡(luò)系統(tǒng)上的主機(jī)連接器相連接,以使得將網(wǎng)絡(luò)系統(tǒng)的主機(jī)接口總線機(jī)械地和電氣地耦合到集成電路設(shè)備的主機(jī)接口總線;把選擇的驅(qū)動(dòng)器軟件傳送到網(wǎng)絡(luò)系統(tǒng),該驅(qū)動(dòng)器軟件被配置成通過主機(jī)接口總線來幫助進(jìn)行在集成電路設(shè)備與網(wǎng)絡(luò)系統(tǒng)之間的通信;以及通過驅(qū)動(dòng)器軟件來初始化集成電路設(shè)備。
65.權(quán)利要求64的設(shè)備,其中集成電路設(shè)備的初始化包括把多個(gè)預(yù)先存儲(chǔ)的模式中的一個(gè)或多個(gè)模式從網(wǎng)絡(luò)系統(tǒng)傳送到集成電路設(shè)備。
66.權(quán)利要求65的設(shè)備,其中集成電路設(shè)備的初始化還包括把多個(gè)預(yù)先存儲(chǔ)的協(xié)議定義中的一個(gè)或多個(gè)協(xié)議定義從網(wǎng)絡(luò)系統(tǒng)傳送到集成電路設(shè)備。
67.權(quán)利要求65的設(shè)備,其中集成電路設(shè)備的初始化還包括把多個(gè)預(yù)先存儲(chǔ)的法則中的一個(gè)或多個(gè)法則從網(wǎng)絡(luò)系統(tǒng)傳送到集成電路設(shè)備。
68.一種用于使用集成電路設(shè)備的基于簽名的模式識(shí)別的方法,該方法包括提供用于對(duì)于網(wǎng)絡(luò)應(yīng)用進(jìn)行高吞吐量模式匹配的集成電路設(shè)備,該設(shè)備包括剛性支持部件,包括連接器區(qū)域,連接器區(qū)域包括網(wǎng)絡(luò)連接區(qū)域和主機(jī)連接區(qū)域,剛性支持部件具有選擇的寬度和選擇的長度,選擇的寬度和選擇的長度適合于經(jīng)由連接器區(qū)域被耦合到網(wǎng)絡(luò)系統(tǒng);一個(gè)或多個(gè)硬件模塊,被布置在剛性支持部件上且被耦合到剛性支持部件,該一個(gè)或多個(gè)硬件模塊包括被耦合到剛性支持部件的網(wǎng)絡(luò)接口模塊,該網(wǎng)絡(luò)接口模塊包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口,該一個(gè)或多個(gè)網(wǎng)絡(luò)接口端口經(jīng)由連接器區(qū)域被耦合到基于分組的網(wǎng)絡(luò);被耦合到剛性支持部件的網(wǎng)絡(luò)接口總線,該網(wǎng)絡(luò)接口總線適合于把網(wǎng)絡(luò)接口模塊接口到網(wǎng)絡(luò)模塊;被耦合到剛性支持部件的網(wǎng)絡(luò)模塊,該網(wǎng)絡(luò)模塊被耦合到網(wǎng)絡(luò)接口總線;被耦合到剛性支持部件的網(wǎng)絡(luò)事件模塊,該網(wǎng)絡(luò)事件模塊被耦合到網(wǎng)絡(luò)模塊;被耦合到剛性支持部件的存儲(chǔ)器模塊,該存儲(chǔ)器模塊被耦合到網(wǎng)絡(luò)事件模塊和網(wǎng)絡(luò)模塊,該存儲(chǔ)器模塊包括模式存儲(chǔ)器,該模式存儲(chǔ)器與多個(gè)預(yù)先存儲(chǔ)的模式有關(guān);被耦合到剛性支持部件的主機(jī)接口模塊,該主機(jī)接口模塊被耦合到網(wǎng)絡(luò)事件模塊和/或網(wǎng)絡(luò)模塊;被耦合到剛性支持部件的主機(jī)接口總線,該主機(jī)接口總線被耦合到主機(jī)接口模塊,該主機(jī)接口總線能夠經(jīng)由連接器區(qū)域連接到主機(jī)系統(tǒng);把信息從基于分組的網(wǎng)絡(luò)傳送到網(wǎng)絡(luò)接口端口;通過網(wǎng)絡(luò)接口總線傳送來自網(wǎng)絡(luò)接口端口的信息;在處理單元處接收來自網(wǎng)絡(luò)接口總線的信息;通過使用處理單元從信息中識(shí)別在一個(gè)或多個(gè)分組與流之間的關(guān)聯(lián)性;把一個(gè)或多個(gè)分組重新排序成一個(gè)或多個(gè)相應(yīng)的流;確定一個(gè)或多個(gè)相應(yīng)的流中的一個(gè)或多個(gè)分組是否與被存儲(chǔ)在通過存儲(chǔ)器總線而被耦合到處理單元的存儲(chǔ)器中的基于簽名的模式相關(guān),其中所述確定是通過使用具有小于8納秒的隨機(jī)訪問時(shí)間的存儲(chǔ)器來執(zhí)行的;以及如果出現(xiàn)關(guān)聯(lián)性,則發(fā)起信號(hào)到策略引擎。
69.權(quán)利要求68的方法,還包括按照多個(gè)預(yù)定的協(xié)議定義中的一個(gè)或多個(gè)協(xié)議定義對(duì)來自處理單元的重新排序的流進(jìn)行譯碼,預(yù)定的協(xié)議定義,該譯碼處理過程適合于從重新排序的流中提取感興趣的突出特性。
全文摘要
一種允許對(duì)于基于簽名的網(wǎng)絡(luò)應(yīng)用有顯著的性能改進(jìn)的集成電路設(shè)備的結(jié)構(gòu)和方法。在各種實(shí)施例中,該結(jié)構(gòu)允許以線速度同時(shí)進(jìn)行把分組高吞吐量地分類成網(wǎng)絡(luò)流,對(duì)這種流進(jìn)行分組重新裝配,對(duì)這種流進(jìn)行過濾和預(yù)處理,對(duì)這種流的報(bào)頭和有效負(fù)荷內(nèi)容進(jìn)行模式匹配,和根據(jù)用于多個(gè)網(wǎng)絡(luò)應(yīng)用的基于法則的策略來進(jìn)行動(dòng)作執(zhí)行。與現(xiàn)有技術(shù)設(shè)計(jì)相比,本發(fā)明在性能、靈活性和模式數(shù)據(jù)庫大小上被改進(jìn)。
文檔編號(hào)G06FGK1836245SQ200480023086
公開日2006年9月20日 申請(qǐng)日期2004年8月12日 優(yōu)先權(quán)日2003年8月13日
發(fā)明者羅伯特·M.·巴里, 斯蒂芬·古爾德, 達(dá)林·威廉斯, 尼古拉斯·德瓊 申請(qǐng)人:感測(cè)網(wǎng)絡(luò)公司