專利名稱:用于協(xié)議數(shù)據(jù)單元中協(xié)議模式識(shí)別的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中關(guān)于用于對(duì)其進(jìn)行封裝的協(xié)議的數(shù)據(jù)分組或幀,還通常稱為協(xié)議數(shù)據(jù)單元(PDU)的識(shí)別,并且還涉及這樣識(shí)別的數(shù)據(jù)分組隨后的選擇或過濾。
背景技術(shù):
現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)包括互聯(lián)的計(jì)算機(jī)集合。這樣的網(wǎng)絡(luò)的主要功能是能夠在成員計(jì)算機(jī)之間進(jìn)行信息交換。因?yàn)槌蓡T計(jì)算機(jī)典型地自主運(yùn)行,沒有關(guān)于何時(shí)其他計(jì)算機(jī)試圖通過網(wǎng)絡(luò)傳送信息的控制,數(shù)據(jù)通常劃分成許多更小的片然后在數(shù)據(jù)分組或幀內(nèi)單獨(dú)地傳送。這一應(yīng)用提供了對(duì)網(wǎng)絡(luò)更統(tǒng)一的訪問,以及在連接到網(wǎng)絡(luò)的不同計(jì)算機(jī)的分組之間有干擾的情況下重新傳送分組的機(jī)會(huì)。給定的分組包括為其分配的數(shù)據(jù)部分,定義分組模式的信息,以及如分組數(shù)和分組的發(fā)送方及接收方地址的其他信息。通過預(yù)定的協(xié)議規(guī)定數(shù)據(jù)分組的模式。由于網(wǎng)絡(luò)是分層結(jié)構(gòu)的事實(shí)數(shù)據(jù)分組的模式化很復(fù)雜。典型地?cái)?shù)據(jù)分組由一個(gè)網(wǎng)絡(luò)層接著另一個(gè)網(wǎng)絡(luò)層順序地封裝,每層有自己的協(xié)議。組成的數(shù)據(jù)分組通常稱為協(xié)議數(shù)據(jù)單元(PDU)。因?yàn)橥ǔT诰W(wǎng)絡(luò)的各層使用更復(fù)雜的、大量的不同協(xié)議。雖然在指定使用特定封裝協(xié)議的任何給定協(xié)議數(shù)據(jù)單元中加入的位模式具有從一組預(yù)先規(guī)定的長度中選擇的一個(gè)長度,不同的協(xié)議可具有從不同的預(yù)先規(guī)定長度組中選擇的長度。除此之外,使用未知協(xié)議的無關(guān)的計(jì)算機(jī)組也可連接到并且使用相同的網(wǎng)絡(luò)。
網(wǎng)絡(luò)環(huán)境復(fù)雜而且是動(dòng)態(tài)的。因此,在管理網(wǎng)絡(luò)中非常重要的活動(dòng)是分析網(wǎng)絡(luò)傳送的業(yè)務(wù)量。因此使用協(xié)議分析器。協(xié)議分析器典型地試圖識(shí)別用各種預(yù)先選擇的協(xié)議封裝的那些協(xié)議數(shù)據(jù)單元。前面用于這種識(shí)別的解決方案依賴于使用過濾器或模式比較器,其識(shí)別預(yù)先定義的關(guān)心的協(xié)議組合。任何給定的協(xié)議組合組成了一個(gè)包括用于封裝分組的那些協(xié)議的子模式的位模式,這些子模式的每一個(gè)以協(xié)議數(shù)據(jù)單元內(nèi)指定的固定偏移開始。只有與預(yù)先模式組合匹配的那些協(xié)議數(shù)據(jù)單元被識(shí)別為滿足任何給定過濾器的匹配標(biāo)準(zhǔn)。這樣的過濾器稱為“扁平過濾器”。這一技術(shù)的顯著特點(diǎn)是關(guān)心的每種協(xié)議組合需要一種過濾器。
因此,這個(gè)方法的缺點(diǎn)是需要采用大量的過濾器,實(shí)際上的位模式比較器。作為例子,如果用戶尋找包含協(xié)議xGCP上的語音業(yè)務(wù),當(dāng)前需要13個(gè)扁平過濾器。除此之外,如果用戶不知道使用三個(gè)不同的局域網(wǎng)(LAN)封裝中的哪個(gè),則使用三組13個(gè)過濾器或總共39個(gè)扁平過濾器。而且,如果用戶不知道使用六個(gè)不同的廣域網(wǎng)(WAN)封裝的哪個(gè)來傳送LAN業(yè)務(wù),他需要建立六組39個(gè)一共234個(gè)過濾器。在這種情況下,硬件資源變得驚人的貴而且復(fù)雜。因此,提供這些是不切實(shí)際的。
同樣在典型的網(wǎng)絡(luò)環(huán)境中,差不多在成百個(gè)不同的節(jié)點(diǎn)之間有數(shù)據(jù)流,用戶僅對(duì)捕獲來自其中兩個(gè)節(jié)點(diǎn)的數(shù)據(jù)感興趣。因?yàn)楝F(xiàn)代網(wǎng)絡(luò)的速度以及典型的現(xiàn)代網(wǎng)絡(luò)分析器的有限的存儲(chǔ)器空間,分配用于協(xié)議數(shù)據(jù)單元捕獲的緩存空間會(huì)很快超限。捕獲的協(xié)議數(shù)據(jù)單元的大多數(shù)來自用戶不感興趣的節(jié)點(diǎn)。作為例子,如果用戶知道感興趣的兩個(gè)節(jié)點(diǎn)的互聯(lián)網(wǎng)協(xié)議(IP)地址并且只想捕獲這兩個(gè)節(jié)點(diǎn)之間的數(shù)據(jù),除非他有該網(wǎng)絡(luò)的詳細(xì)的知識(shí),否則他不可能識(shí)別協(xié)議數(shù)據(jù)單元中的IP地址,除非他有受其支配的大量上述的扁平過濾器。
因此需要更好的技術(shù)用于識(shí)別用戶封裝協(xié)議數(shù)據(jù)單元的多個(gè)協(xié)議的組合。特別地,需要能夠進(jìn)行這種識(shí)別的系統(tǒng),具有相關(guān)的分組過濾,并且不需要現(xiàn)有系統(tǒng)需要的大量過濾器。
發(fā)明內(nèi)容
本發(fā)明文檔涉及用于計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中變長、多層封裝的協(xié)議數(shù)據(jù)分組的識(shí)別和相關(guān)過濾的新穎方法。這種識(shí)別和相關(guān)過濾的以前的解決方案依賴于使用大量的扁平過濾器,每個(gè)識(shí)別一種預(yù)定的關(guān)心的協(xié)議組合。在許多情況下,因?yàn)樾枰罅康谋馄竭^濾器,所以硬件資源驚人的貴并且因此使其不切實(shí)際。
在有代表性的實(shí)施方案中,本發(fā)明文檔公開了利用協(xié)議識(shí)別設(shè)備來在各階段識(shí)別和過濾計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議數(shù)據(jù)單元的技術(shù)。在第一階段,該設(shè)備通過將一組可能的協(xié)議位模式與協(xié)議數(shù)據(jù)單元的比特相匹配,來識(shí)別用于第一層封裝的協(xié)議。然后該設(shè)備試圖通過與第二組協(xié)議比特組合模式的類似匹配,通過編碼在以前封裝協(xié)議中的信息,通過基于以前的匹配編碼在設(shè)備中的最佳猜測(cè),或編碼在設(shè)備中的用戶猜測(cè)來識(shí)別要選擇的下一層封裝。然后過程繼續(xù)直到用戶感興趣的所有層的封裝都已經(jīng)識(shí)別。每個(gè)這樣的模式可以有不同的長度。但是,一旦識(shí)別了對(duì)任何給定協(xié)議封裝層的封裝,該設(shè)備就知道到協(xié)議數(shù)據(jù)單元的索引做多深以便開始搜索下一個(gè)協(xié)議模式。這個(gè)過程在給定實(shí)現(xiàn)的限制內(nèi)可以重復(fù)需要的次數(shù)。
使用表查找方法因此任何給定協(xié)議層的許多模式可以簡(jiǎn)單地并行查找和比較。因?yàn)樵撛O(shè)備知道在協(xié)議數(shù)據(jù)單元中上一個(gè)匹配的協(xié)議模式的結(jié)尾出現(xiàn)在哪里,所以其知道在哪里開始下一個(gè)模式的匹配嘗試。
公開的技術(shù)利用階段的概念。在每個(gè)階段,設(shè)備試圖發(fā)現(xiàn)單一層協(xié)議封裝的協(xié)議數(shù)據(jù)單元比特和預(yù)定模式的比特之間的模式匹配。一旦發(fā)現(xiàn)該設(shè)備就對(duì)自己重新復(fù)位并且開始重新下一層封裝的搜索。
在有代表性的實(shí)施方案中,公開的技術(shù)可以認(rèn)為是在各階段中搜索協(xié)議數(shù)據(jù)單元。每個(gè)階段典型地具有為其預(yù)分配的一個(gè)號(hào)。例如,協(xié)議數(shù)據(jù)單元的搜索在階段號(hào)0開始,并且隨著該階段的搜索完成,基于當(dāng)前階段搜索的結(jié)果選擇新的階段。這個(gè)過程繼續(xù)直到到達(dá)協(xié)議數(shù)據(jù)單元的末尾,或者不需要協(xié)議數(shù)據(jù)單元的進(jìn)一步搜索而停止。
協(xié)議數(shù)據(jù)單元的字節(jié),例如,從字節(jié)0開始搜索。該階段可以被認(rèn)為是消耗協(xié)議數(shù)據(jù)單元的字節(jié)直到發(fā)現(xiàn)導(dǎo)致該階段結(jié)束的模式。然后下一個(gè)階段開始消耗上一個(gè)階段結(jié)束處的字節(jié)。通過跳過在該模式中不需要匹配的字節(jié)可以對(duì)這個(gè)過程進(jìn)行可選的性能增強(qiáng)。跳過的字節(jié)預(yù)編程到表中,該表然后可由系統(tǒng)使用來跳過不需要的字節(jié)。
在有代表性的實(shí)施方案中,用于任何給定階段的協(xié)議模式搜索的方法和設(shè)備被一再用來進(jìn)行每個(gè)連續(xù)的階段搜索。使用預(yù)編程的“模式查找表”來確定當(dāng)前階段的協(xié)議數(shù)據(jù)單元的特定部分中是否存在特定的封裝。已經(jīng)為當(dāng)前階段號(hào)和搜索的協(xié)議數(shù)據(jù)單元號(hào)預(yù)編程的模式查找表的一部分被編入索引中。在有代表性的例子中,模式查找表的這一部分有256個(gè)記錄,每個(gè)對(duì)應(yīng)協(xié)議數(shù)據(jù)單元的當(dāng)前字節(jié)的每個(gè)可能的值。對(duì)應(yīng)協(xié)議數(shù)據(jù)單元當(dāng)前字節(jié)的實(shí)際值的記錄從表中讀取。然后從模式查找表中讀取的值A(chǔ)ND累積到階段累加器中,其典型地在階段開始時(shí)都初始化為全1。
這個(gè)階段累加器值的每個(gè)比特都分配有一個(gè)模式號(hào)。如果模式的階段累加器比特被置位并且如“記錄列表”中預(yù)編程的值所確定的,該值導(dǎo)致“階段模式發(fā)現(xiàn)比特”被置位,該階段已經(jīng)搜索到協(xié)議數(shù)據(jù)單元中足夠深以便匹配整個(gè)模式,則認(rèn)為模式找到了。在有代表性的例子中,記錄列表每個(gè)模式比較有一個(gè)記錄,提供例如下一個(gè)跳過值以及該階段的上一個(gè)模式比較的信息。如果已經(jīng)找到了指定導(dǎo)致轉(zhuǎn)變到一個(gè)新階段的模式,則當(dāng)前階段結(jié)束,如果沒有則假設(shè)沒有到達(dá)協(xié)議數(shù)據(jù)單元的末尾,讀取下一個(gè)模式查找表記錄。
基于關(guān)于當(dāng)前階段的模式的預(yù)編程信息,可以輸出關(guān)于找到的哪個(gè)協(xié)議、下一步到哪個(gè)階段號(hào)、找到哪個(gè)模式號(hào)(或哪些模式號(hào))將用于組成“階段組結(jié)果”,以及在某些情況下哪個(gè)封裝跟在剛找到的封裝之后的信息。階段組結(jié)果是與完成的階段匹配的模式的結(jié)果。典型地組結(jié)果是在比特位置上是0的位模式,代表每個(gè)階段預(yù)先選擇的搜索模式組,除非該預(yù)先選擇的搜索模式組已經(jīng)找到了一個(gè)匹配,在這種情況下在相應(yīng)的比特位置上放1。組結(jié)果可用于確定協(xié)議數(shù)據(jù)單元是否與預(yù)先選擇的協(xié)議組匹配。
當(dāng)每個(gè)階段搜索結(jié)束時(shí),指示該階段找到哪個(gè)模式的比特映射到“階段組結(jié)果”。通過利用許多在這里稱為集團(tuán)映射的預(yù)編程的表實(shí)現(xiàn)這個(gè)映射。每個(gè)集團(tuán)映射基于當(dāng)前階段號(hào)以及找到的階段模式的比特被編入分配給該集團(tuán)映射的比特的索引中。如果“階段組結(jié)果比特”需要的號(hào)大于集團(tuán)映射的寬度,則可選地到集團(tuán)映射的索引可以額外地基于“時(shí)間片號(hào)”。
從每個(gè)集團(tuán)映射獲得的值OR(或)在一起以便組成“階段組結(jié)果值”。這個(gè)階段組結(jié)果中的某些比特可以任意地用于生成許多階段輸出結(jié)果,雖然也可以用其他方法生成階段輸出。而且,剩余的階段組結(jié)果比特用于組成“階段組過濾器結(jié)果”。階段組過濾器結(jié)果AND(與)累加到組累加器中,該累加器在協(xié)議數(shù)據(jù)單元開始搜索時(shí)初始化為全1。這個(gè)組累加器值的每個(gè)比特具有分配給它的“組過濾器號(hào)”。
組過濾器被規(guī)定為是預(yù)先選擇的滿意的一組階段并且在每個(gè)規(guī)定的階段只找到一個(gè)滿足該階段的規(guī)定的模式。在協(xié)議數(shù)據(jù)單元的搜索完成時(shí),如果其組累加器比特被設(shè)置并且合適的階段已經(jīng)搜索了協(xié)議數(shù)據(jù)單元,則認(rèn)為找到了組過濾器。作為找到組過濾器的結(jié)果,可以采取一個(gè)或多個(gè)行動(dòng),與傳統(tǒng)的過濾器設(shè)計(jì)的情況一樣,如計(jì)數(shù)、保存協(xié)議數(shù)據(jù)單元,丟棄協(xié)議數(shù)據(jù)單元,開始或停止數(shù)據(jù)的捕獲,以及其他行動(dòng)。
這里公開的技術(shù)提供了使用戶在更高層協(xié)議查找某事,而不需要知道使用的更低層協(xié)議的任何情況的能力。而且,通過通知設(shè)備關(guān)于想要的封裝模式,其可以在運(yùn)行時(shí)識(shí)別協(xié)議數(shù)據(jù)單元中的封裝,使額外的軟件例程免于在后來花費(fèi)時(shí)間識(shí)別每個(gè)分組中的封裝。這個(gè)設(shè)備的硬件和軟件實(shí)現(xiàn)都提供協(xié)議數(shù)據(jù)單元的非??焖俚淖R(shí)別。
在典型的網(wǎng)絡(luò)環(huán)境中,差不多在成百個(gè)不同的節(jié)點(diǎn)之間有數(shù)據(jù)流,用戶僅對(duì)捕獲來自其中兩個(gè)節(jié)點(diǎn)的數(shù)據(jù)感興趣。因?yàn)楝F(xiàn)代網(wǎng)絡(luò)的速度以及典型的現(xiàn)代網(wǎng)絡(luò)分析器的有限的存儲(chǔ)器空間,分配用于協(xié)議數(shù)據(jù)單元捕獲的緩存空間會(huì)很快超出。在以前的系統(tǒng)中,捕獲的協(xié)議數(shù)據(jù)單元的大多數(shù)來自用戶不感興趣的節(jié)點(diǎn)。作為例子,如果用戶知道感興趣的兩個(gè)節(jié)點(diǎn)的互聯(lián)網(wǎng)協(xié)議(IP)地址并且只想捕獲這兩個(gè)節(jié)點(diǎn)之間的數(shù)據(jù),以前除非他有該網(wǎng)絡(luò)的詳細(xì)的知識(shí),否則他不可能識(shí)別協(xié)議數(shù)據(jù)單元中的IP地址,因?yàn)樗仨氂惺芷渲涞拇罅可鲜龅谋馄竭^濾器。但是,通過本設(shè)備的各階段識(shí)別的能力,他只通過超過協(xié)議識(shí)別所需要的較少的額外的努力就能夠過濾出感興趣的那些協(xié)議數(shù)據(jù)單元。
本發(fā)明文檔中描述的實(shí)施方案與現(xiàn)有技術(shù)相比的主要優(yōu)點(diǎn)是顯著地減少搜索與協(xié)議數(shù)據(jù)單元的分組協(xié)議模式匹配所需要的大量的模式比較器。通過使用階段的概念提供了這種減少。另一個(gè)優(yōu)點(diǎn)是在不知道使用的哪種較低層協(xié)議的情況下在較高層協(xié)議中尋找特定模式的能力。而且,這一設(shè)備的硬件和軟件實(shí)現(xiàn)都提供了非??斓刈R(shí)別協(xié)議數(shù)據(jù)單元的優(yōu)點(diǎn)。另一個(gè)優(yōu)點(diǎn)是提供關(guān)于在特定PDU中出現(xiàn)哪些封裝的信息,因此節(jié)省了軟件例程后面處理每個(gè)分組的時(shí)間的能力。最后,通過通知設(shè)備關(guān)于想要的封裝模式,協(xié)議識(shí)別設(shè)備可在運(yùn)行時(shí)過濾協(xié)議數(shù)據(jù)單元,這提供了使額外的軟件例程免于在后面花時(shí)間處理不需要的分組的優(yōu)點(diǎn)以及通過丟棄不感興趣的協(xié)議數(shù)據(jù)單元提供有價(jià)值的捕獲緩存空間。
從下面與附圖一起,利用例子的方式說明本發(fā)明的原理的詳細(xì)描述中,本發(fā)明的其他方面和優(yōu)點(diǎn)顯而易見。
附圖提供了可視的表示,可用于更完整地描述本發(fā)明并且可由本領(lǐng)域的技術(shù)人員用于更好地理解本發(fā)明及其固有的優(yōu)點(diǎn)。在這些圖中,相同的參考數(shù)字指相應(yīng)的元件并且圖1是在本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的協(xié)議數(shù)據(jù)單元的圖。
圖2是在本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的協(xié)議數(shù)據(jù)單元捕獲的圖。
圖3A是在本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的第一個(gè)列表的圖。
圖3B是在本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的第一個(gè)列表的一個(gè)記錄的圖。
圖3C是在本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的第一個(gè)列表的一個(gè)記錄的另一個(gè)圖。
圖4是用于識(shí)別在本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的協(xié)議數(shù)據(jù)單元的方法的流程圖。
圖5是用于識(shí)別在本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的協(xié)議數(shù)據(jù)單元的協(xié)議識(shí)別設(shè)備的圖。
具體實(shí)施例方式
如在用于說明的附圖中所示,本發(fā)明文檔涉及用于計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中變長、多層封裝的協(xié)議數(shù)據(jù)分組的識(shí)別和相關(guān)過濾的新穎方法。這種識(shí)別和相關(guān)過濾的以前的解決方案依賴于使用大量的扁平過濾器,每個(gè)識(shí)別一種預(yù)定的關(guān)心的協(xié)議組合。在許多情況下,因?yàn)樾枰罅康谋馄竭^濾器,所以硬件資源驚人的貴并且因此使其不切實(shí)際。
在下面的詳細(xì)描述和幾個(gè)附圖中,相同的元件由相同的參考數(shù)字標(biāo)識(shí)。
1、介紹性說明在有代表性的實(shí)施方案中,本發(fā)明文檔公開了利用協(xié)議識(shí)別設(shè)備來在各階段識(shí)別和過濾計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議數(shù)據(jù)單元的技術(shù)。在第一階段,該設(shè)備通過將一組可能的協(xié)議位模式與協(xié)議數(shù)據(jù)單元的比特相匹配,來識(shí)別用于選定層封裝的協(xié)議。然后該設(shè)備試圖通過與第二組協(xié)議比特組合模式的類似匹配,通過編碼在以前封裝協(xié)議中的信息,通過基于以前的匹配編碼在設(shè)備中的最佳猜測(cè),或編碼在設(shè)備中的用戶猜測(cè)來識(shí)別要選擇的下一層封裝。然后過程繼續(xù)直到用戶感興趣的所有層的封裝都已經(jīng)識(shí)別。每個(gè)這樣的模式可以有不同的長度。但是,一旦識(shí)別了對(duì)任何給定協(xié)議封裝層的封裝,該設(shè)備就知道到協(xié)議數(shù)據(jù)單元的索引做多深以便開始搜索下一個(gè)協(xié)議模式。這個(gè)過程在給定實(shí)現(xiàn)的限制內(nèi)可以重復(fù)需要的次數(shù)。
使用表查找方法因此任何給定協(xié)議層的許多模式可以簡(jiǎn)單地并行查找和比較。因?yàn)樵撛O(shè)備知道在協(xié)議數(shù)據(jù)單元中上一個(gè)匹配的協(xié)議模式的結(jié)尾出現(xiàn)在哪里,所以其知道在哪里開始下一個(gè)模式的匹配嘗試。
公開的技術(shù)利用階段的概念。在每個(gè)階段,設(shè)備試圖發(fā)現(xiàn)單一層協(xié)議封裝的協(xié)議數(shù)據(jù)單元比特和預(yù)定模式的比特之間模式匹配。一旦發(fā)現(xiàn)該設(shè)備就對(duì)自己重新復(fù)位并且開始重新下一層封裝的搜索。
在有代表性的實(shí)施方案中,公開的技術(shù)可以認(rèn)為是在各階段中搜索協(xié)議數(shù)據(jù)單元。每個(gè)階段典型地具有為其預(yù)分配的一個(gè)號(hào)。例如,協(xié)議數(shù)據(jù)單元的搜索在階段號(hào)0開始,并且隨著該階段的搜索完成,基于當(dāng)前階段搜索的結(jié)果選擇新的階段。這個(gè)過程繼續(xù)直到到達(dá)協(xié)議數(shù)據(jù)單元的末尾,或者不需要協(xié)議數(shù)據(jù)單元的進(jìn)一步搜索而停止。
協(xié)議數(shù)據(jù)單元的字節(jié),例如,從字節(jié)0開始搜索。該階段可以被認(rèn)為是消耗協(xié)議數(shù)據(jù)單元的字節(jié)直到發(fā)現(xiàn)導(dǎo)致該階段結(jié)束的模式。然后下一個(gè)階段開始消耗上一個(gè)階段結(jié)束處的字節(jié)。通過跳過在該模式中不需要匹配的字節(jié)可以對(duì)這個(gè)過程進(jìn)行可選的性能增強(qiáng)。跳過的字節(jié)預(yù)編程到表中,該表然后可由系統(tǒng)使用來跳過不需要的字節(jié)。
在有代表性的實(shí)施方案中,用于任何給定階段的協(xié)議模式搜索的方法和設(shè)備被一再用來進(jìn)行每個(gè)連續(xù)的階段搜索。使用預(yù)編程的“模式查找表”來確定當(dāng)前階段的協(xié)議數(shù)據(jù)單元的特定部分中是否存在特定的封裝。已經(jīng)為當(dāng)前階段號(hào)和搜索的協(xié)議數(shù)據(jù)單元號(hào)預(yù)編程的模式查找表的一部分被編入索引中。在有代表性的例子中,“模式查找表”的這一部分有256個(gè)記錄,每個(gè)對(duì)應(yīng)協(xié)議數(shù)據(jù)單元的當(dāng)前字節(jié)的每個(gè)可能的值。對(duì)應(yīng)協(xié)議數(shù)據(jù)單元當(dāng)前字節(jié)的實(shí)際值的記錄從表中讀取。然后從模式查找表中讀取的值A(chǔ)ND累積到階段累加器中,其典型地在階段開始時(shí)都初始化為全1。
這個(gè)階段累加器值的每個(gè)比特都分配有一個(gè)模式號(hào)。如果模式的階段累加器比特被置位并且如“記錄列表”中預(yù)編程的值所確定的,該值導(dǎo)致“階段模式發(fā)現(xiàn)比特”被置位,該階段已經(jīng)搜索到協(xié)議數(shù)據(jù)單元中足夠深以便匹配整個(gè)模式,則認(rèn)為模式找到了。在有代表性的例子中,記錄列表每個(gè)模式比較有一個(gè)記錄,提供例如下一個(gè)跳過值以及該階段的上一個(gè)模式比較的信息。如果已經(jīng)找到了指定導(dǎo)致轉(zhuǎn)變到一個(gè)新階段的模式,則當(dāng)前階段結(jié)束,如果沒有則假設(shè)沒有到達(dá)協(xié)議數(shù)據(jù)單元的末尾,讀取下一個(gè)模式查找表記錄。
基于關(guān)于當(dāng)前階段的模式的預(yù)編程信息,可以輸出關(guān)于找到的哪個(gè)協(xié)議、下一步到哪個(gè)階段號(hào)、找到哪個(gè)模式號(hào)(或哪些模式號(hào))將用于組成“階段組結(jié)果”,以及在某些情況下哪個(gè)封裝跟在剛找到的封裝之后的信息。階段組結(jié)果是與完成的階段匹配的模式的結(jié)果。典型地組結(jié)果是在比特位置上是0的位模式,代表每個(gè)階段預(yù)先選擇的搜索模式組,除非該預(yù)先選擇的搜索模式組已經(jīng)找到了一個(gè)匹配,在這種情況下在相應(yīng)的比特位置上放1。組結(jié)果可用于確定協(xié)議數(shù)據(jù)單元是否與預(yù)先選擇的協(xié)議組匹配。
當(dāng)每個(gè)階段搜索結(jié)束時(shí),指示該階段找到哪個(gè)模式的比特映射到“階段組結(jié)果”。通過利用許多在這里稱為集團(tuán)映射的預(yù)編程的表實(shí)現(xiàn)這個(gè)映射。每個(gè)集團(tuán)映射基于當(dāng)前階段號(hào)以及找到的階段模式的比特被編入分配給該集團(tuán)映射的比特的索引中。如果“階段組結(jié)果比特”需要的號(hào)大于集團(tuán)映射的寬度,則可選地到集團(tuán)映射的索引可以額外地基于“時(shí)間片號(hào)”。當(dāng)需要比一個(gè)映射所能提供的更多的比特時(shí),時(shí)間片號(hào)用于訪問不只一個(gè)映射。在有代表性的例子中,訪問3個(gè)16比特的映射的每一個(gè)以便獲得一個(gè)48比特的輸出。
為每個(gè)集團(tuán)映射分配的階段累加器結(jié)果比特的數(shù)量是速度和存儲(chǔ)使用量的折衷。對(duì)于32個(gè)模式匹配器的硬件實(shí)現(xiàn),典型地使用2或3個(gè)比特,對(duì)于64個(gè)模式匹配器軟件實(shí)現(xiàn),典型地使用8比特是一個(gè)好的選擇。同樣集團(tuán)映射的寬度典型地是速度和存儲(chǔ)使用量的折衷。
從每個(gè)集團(tuán)映射獲得的值OR(或)在一起以便組成“階段組結(jié)果值”。這個(gè)階段組結(jié)果中的某些比特可以任意地用于生成許多階段輸出結(jié)果,雖然也可以用其他方法生成階段輸出。而且,剩余的階段組結(jié)果比特用于組成“階段組過濾器結(jié)果”。階段組過濾器結(jié)果AND(與)累加到組累加器中,該累加器在協(xié)議數(shù)據(jù)單元開始搜索時(shí)初始化為全1。這個(gè)組累加器值的每個(gè)比特具有分配給它的“組過濾器號(hào)”。
組過濾器被規(guī)定為是預(yù)先選擇的滿意的一組階段并且在每個(gè)規(guī)定的階段只找到一個(gè)滿足該階段的規(guī)定的模式。在協(xié)議數(shù)據(jù)單元的搜索完成時(shí),如果其組累加器比特被設(shè)置并且合適的階段已經(jīng)搜索了協(xié)議數(shù)據(jù)單元,則認(rèn)為找到了組過濾器。作為找到組過濾器的結(jié)果,可以采取一個(gè)或多個(gè)行動(dòng),與傳統(tǒng)的過濾器設(shè)計(jì)的情況一樣,如計(jì)數(shù)、保存協(xié)議數(shù)據(jù)單元,丟棄協(xié)議數(shù)據(jù)單元,開始或停止數(shù)據(jù)的捕獲,以及其他行動(dòng)。
在有代表性的例子中,該設(shè)備能夠在一個(gè)協(xié)議層支持多達(dá)64個(gè)不同的封裝,并且能夠支持多達(dá)14個(gè)協(xié)議層。這等價(jià)于64^14個(gè)扁平過濾器。該設(shè)備同等數(shù)量的扁平過濾器是實(shí)現(xiàn)所加的限制。它不是本發(fā)明的限制。設(shè)備可以用硬件或軟件功能實(shí)現(xiàn)。
這里公開的技術(shù)提供了使用戶在更高層協(xié)議查找某事,而不需要知道使用的更低層協(xié)議的任何情況的能力。而且,通過通知設(shè)備關(guān)于想要的封裝模式,其可以在運(yùn)行時(shí)識(shí)別協(xié)議數(shù)據(jù)單元中的封裝,使額外的軟件例程免于在后來花費(fèi)時(shí)間識(shí)別每個(gè)分組中的封裝。這個(gè)設(shè)備的硬件和軟件實(shí)現(xiàn)都提供協(xié)議數(shù)據(jù)單元的非??焖俚淖R(shí)別。
在典型的網(wǎng)絡(luò)環(huán)境中,差不多在成百個(gè)不同的節(jié)點(diǎn)之間有數(shù)據(jù)流,用戶僅對(duì)捕獲來自其中兩個(gè)節(jié)點(diǎn)的數(shù)據(jù)感興趣。因?yàn)楝F(xiàn)代網(wǎng)絡(luò)的速度以及典型的現(xiàn)代網(wǎng)絡(luò)分析器的有限的存儲(chǔ)器空間,分配用于協(xié)議數(shù)據(jù)單元捕獲的緩存空間會(huì)很快超出。在以前的系統(tǒng)中,捕獲的協(xié)議數(shù)據(jù)單元的大多數(shù)來自用戶不感興趣的節(jié)點(diǎn)。作為例子,如果用戶知道感興趣的兩個(gè)節(jié)點(diǎn)的互聯(lián)網(wǎng)協(xié)議(IP)地址并且只想捕獲這兩個(gè)節(jié)點(diǎn)之間的數(shù)據(jù),以前除非他有該網(wǎng)絡(luò)的詳細(xì)的知識(shí),否則他不可能識(shí)別協(xié)議數(shù)據(jù)單元中的IP地址,因?yàn)樗仨氂惺芷渲涞拇罅可鲜龅谋馄竭^濾器。但是,通過本設(shè)備的各階段識(shí)別的能力,他只通過超過協(xié)議識(shí)別所需要的較少的額外的努力就能夠過濾出感興趣的那些協(xié)議數(shù)據(jù)單元。
2、用于PDU識(shí)別的方法圖1是本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的協(xié)議數(shù)據(jù)單元100的圖。協(xié)議數(shù)據(jù)單元100包括數(shù)據(jù)120的比特以及一個(gè)或多個(gè)分組協(xié)議模式105,在這里也稱為封裝協(xié)議模式105和計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議105,其識(shí)別在計(jì)算機(jī)網(wǎng)絡(luò)中用于封裝數(shù)據(jù)的協(xié)議。分組協(xié)議模式105由封裝層以及用于組成協(xié)議數(shù)據(jù)單元100的特定協(xié)議定義。圖1僅用于說明性目的。協(xié)議可以是變長并且不必在如圖1所示的協(xié)議數(shù)據(jù)單元內(nèi)的位置。
圖2是本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的協(xié)議數(shù)據(jù)單元100捕獲的圖。在圖2中,在接收總線205上接收協(xié)議數(shù)據(jù)單元100,寫入捕獲緩存210,這里也稱為緩存210,并且由協(xié)議識(shí)別設(shè)備215接收。在替代的有代表性的實(shí)施方案中,由協(xié)議識(shí)別設(shè)備215在接收總線205上接收協(xié)議數(shù)據(jù)單元100,協(xié)議識(shí)別設(shè)備215進(jìn)而又將協(xié)議數(shù)據(jù)單元100傳送到捕獲緩存210。
圖3A是本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的第一列表300的圖。圖3B是本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的第一列表300的一個(gè)記錄320的圖。第一列表300是搜索模式305的列表并且這里還稱為搜索模式列表300。如圖3B所示,搜索模式列表300的任何給定的記錄320包括搜索模式索引310、階段號(hào)315以及搜索模式305。搜索模式索引310是識(shí)別記錄320的索引。其典型地是一個(gè)整數(shù)。在這個(gè)例子中,搜索模式索引310識(shí)別第一個(gè)記錄以0開始,第二個(gè)記錄以1開始,第三個(gè)記錄以2開始,等的搜索模式305記錄。階段號(hào)315標(biāo)識(shí)將用于搜索搜索模式305的階段315。雖然認(rèn)識(shí)到?jīng)]有在任何圖中明確顯示的階段號(hào)315和階段315自己,不是相同的實(shí)體,但是這里與階段號(hào)315用于識(shí)別所指的階段315一樣,它們都被使用相同的標(biāo)識(shí)數(shù)字(315)所指。
作為圖3A的例子,搜索模式列表300的第七個(gè)記錄320的搜索模式索引310等于6,指示其是列表中第七個(gè)記錄。這個(gè)記錄320還包括第二階段第三個(gè)搜索模式305。第二階段第三個(gè)搜索模式305的階段號(hào)315等于2,指示其是與第二階段相關(guān)的搜索模式305。在這個(gè)有代表性的例子中,協(xié)議識(shí)別設(shè)備215試圖將搜索模式305與在任何給定的協(xié)議數(shù)據(jù)單元100中找到的分組協(xié)議模式105相匹配。特別是在由圖3A表示的例子中,假設(shè)設(shè)備215試圖找到一個(gè)所有階段的匹配,則協(xié)議識(shí)別設(shè)備215將試圖將第一階段第一個(gè)搜索模式305、第一階段第二個(gè)搜索模式305、第一階段第三個(gè)搜索模式305、以及第一階段第四個(gè)搜索模式305與分析的協(xié)議數(shù)據(jù)單元100的第一個(gè)協(xié)議模式105相匹配。類似地,協(xié)議識(shí)別設(shè)備215將試圖將第二階段第一個(gè)搜索模式305、第二階段第二個(gè)搜索模式305、第二階段第三個(gè)搜索模式305與分析的協(xié)議數(shù)據(jù)單元100的第二個(gè)協(xié)議模式105相匹配。同樣的方式,協(xié)議識(shí)別設(shè)備215將試圖將其他階段的第三個(gè)以及任何其他搜索模式305與分析的協(xié)議數(shù)據(jù)單元100的相應(yīng)協(xié)議模式105相匹配。在圖3A中顯示的三個(gè)橢圓表示編碼到搜索模式列表300中的任何額外的搜索模式305。在設(shè)備的限制之內(nèi),每層的模式數(shù),以及搜索的階段數(shù)典型地由實(shí)現(xiàn)者指定并且基于用戶的需要可以變化。每層最大允許的模式數(shù),以及搜索的階段數(shù),如前面說明的是由實(shí)現(xiàn)決定的。
圖3C是本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的第一列表300的記錄320的另一張圖。在替代實(shí)施方案中,從搜索模式305中選擇出搜索模式305的連續(xù)部分325并且連續(xù)地執(zhí)行協(xié)議數(shù)據(jù)單元100的搜索以便找到它們。作為例子,首先選擇搜索模式305的第一部分325并且為其搜索協(xié)議數(shù)據(jù)單元。然后首先選擇搜索模式305的第二部分325并且為其搜索協(xié)議數(shù)據(jù)單元。這個(gè)過程繼續(xù)直到選擇搜索模式305的所有部分325并且進(jìn)行搜索為止。替代地,如果特定部分325未能與協(xié)議數(shù)據(jù)單元100匹配,則該搜索模式305的搜索終止。
圖4是用于本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的協(xié)議數(shù)據(jù)單元100的識(shí)別的方法的流程圖。在框405中,接收到協(xié)議數(shù)據(jù)單元100。典型地協(xié)議數(shù)據(jù)單元100寫入捕獲緩存210并且如圖2所示由協(xié)議識(shí)別設(shè)備215并行捕獲。協(xié)議識(shí)別設(shè)備215接收到協(xié)議數(shù)據(jù)單元100后,框405將選擇開始階段,其典型地從階段號(hào)0開始并且初始化一個(gè)到協(xié)議數(shù)據(jù)單元100的指針,其典型地是協(xié)議數(shù)據(jù)單元100的第一個(gè)字節(jié)。然后框405將控制轉(zhuǎn)交給框407。
在框407,初始化組結(jié)果。組結(jié)果是為完成的所有階段匹配的模式的結(jié)果。典型地組結(jié)果是位模式,在位位置上0表示每個(gè)階段的每個(gè)預(yù)先選定的搜索模式305的組,除非該預(yù)選選定的搜索模式305的組找到了一個(gè)匹配,在這種情況下在相應(yīng)的位位置放1。組結(jié)果可用于確定協(xié)議數(shù)據(jù)單元100是否與預(yù)先選定的協(xié)議組匹配。如果在有代表性的實(shí)施方案中找到匹配,則移動(dòng)捕獲緩存210中的指針以便當(dāng)前協(xié)議數(shù)據(jù)單元100保留在捕獲緩存210中。但是,如果沒有找到匹配,則接收的下一個(gè)協(xié)議數(shù)據(jù)單元100重寫當(dāng)前的協(xié)議數(shù)據(jù)單元100。然后框407將控制轉(zhuǎn)交框408。
在框408,初始化該階段結(jié)果。階段結(jié)果是該階段模式匹配的結(jié)果。典型地,這個(gè)結(jié)果是一個(gè)位模式,在位位置上的0表示與有效的階段相關(guān)的每個(gè)搜索模式305,其中沒有匹配,并且1表示其中有匹配。然后框408將控制轉(zhuǎn)交框410。
在框410,協(xié)議識(shí)別設(shè)備215通過當(dāng)前階段的搜索模式列表300中的記錄獲得一個(gè)或多個(gè)搜索模式305的下一個(gè)部分。通過試圖同時(shí)匹配多個(gè)搜索模式305的部分,匹配過程更有效。然后框410將控制轉(zhuǎn)交框415。
在框415,如果分配給搜索模式305的這個(gè)部分325一個(gè)非零的跳過值,典型地第一階段的第一個(gè)比較是零,則到協(xié)議數(shù)據(jù)單元100的指針可向前移動(dòng)多個(gè)字節(jié)。典型地對(duì)于后續(xù)的比較,從基于對(duì)搜索模式305識(shí)別當(dāng)前階段315的封裝所需的所有字節(jié)的認(rèn)識(shí)的預(yù)編程的一個(gè)表獲得跳過值??蛇x地如果時(shí)間允許,則可以比較協(xié)議數(shù)據(jù)單元100的所有字節(jié)。然后框415將控制轉(zhuǎn)交框420。
在框420,搜索模式305的部分325與協(xié)議數(shù)據(jù)單元100相比較以便確定協(xié)議數(shù)據(jù)單元100中的模式是否與到協(xié)議數(shù)據(jù)單元100的指針按需要向前移動(dòng)的搜索模式305相匹配。然后框420將控制轉(zhuǎn)交框425。
在框425,形成該階段到那一點(diǎn)的階段結(jié)果。然后框425將控制轉(zhuǎn)交框430。
當(dāng)找到指定用于結(jié)束該階段的一個(gè)搜索模式305與協(xié)議數(shù)據(jù)單元100中的模式相匹配時(shí),框430將控制轉(zhuǎn)交框435。指定用于結(jié)束特定階段的那些搜索模式,當(dāng)找到時(shí)稱為“階段轉(zhuǎn)換搜索模式”。否則,框430將控制轉(zhuǎn)交框432。
當(dāng)遇到協(xié)議數(shù)據(jù)單元100的末尾時(shí),框432將控制轉(zhuǎn)交框435。否則,框432將控制轉(zhuǎn)交框433。
當(dāng)當(dāng)前階段中有一個(gè)或多個(gè)搜索模式305的剩余部分325需要在協(xié)議數(shù)據(jù)單元100中為其執(zhí)行搜索時(shí),框433將控制轉(zhuǎn)交框410。否則,框433將控制轉(zhuǎn)交框435。
在框435,報(bào)告階段結(jié)果。然后框435將控制轉(zhuǎn)交框445。
在框445,形成完成的所有階段的組結(jié)果。然后框445將控制轉(zhuǎn)交框450。
當(dāng)遇到協(xié)議數(shù)據(jù)單元100的末尾時(shí),框450將控制轉(zhuǎn)交框460。否則,框450將控制轉(zhuǎn)交框453。
當(dāng)有包含搜索模式305的剩余階段,還需要在協(xié)議數(shù)據(jù)單元100中為其進(jìn)行搜索時(shí),框453將控制轉(zhuǎn)交給框455。否則,框453將控制轉(zhuǎn)交給框460。
在框455,選擇一個(gè)新的階段,試圖為其將搜索模式305與協(xié)議數(shù)據(jù)單元100中的分組協(xié)議模式105相匹配。然后框455將控制轉(zhuǎn)交框457。
在框457,過程轉(zhuǎn)換到選定的階段。然后框457將控制轉(zhuǎn)交框408。
在框460,報(bào)告組結(jié)果。然后框460退出過程。
3、用于PDU識(shí)別的設(shè)備圖5是本發(fā)明文檔的各種有代表性的實(shí)施方案中描述的用于協(xié)議數(shù)據(jù)單元100識(shí)別的協(xié)議識(shí)別設(shè)備215的圖。在圖5中,由控制電路500在接收總線205上接收數(shù)據(jù)。如前面所述和圖2所示,在有代表性的實(shí)施方案的并行過程中協(xié)議數(shù)據(jù)單元100還寫入捕獲緩存210。協(xié)議識(shí)別設(shè)備215識(shí)別協(xié)議數(shù)據(jù)單元100中的分組協(xié)議模式105,并且基于識(shí)別過程的結(jié)果,過濾出將不保留在捕獲緩存210中的那些協(xié)議數(shù)據(jù)單元100。捕獲緩存210可以是例如先進(jìn)先出(FIFO)緩存?;谒阉髂J搅斜?00的內(nèi)容,控制電路500確定在協(xié)議數(shù)據(jù)單元100的哪些字節(jié)上嘗試匹配搜索模式305。如前所述,搜索模式列表300包括用戶想要為其獲得匹配的搜索模式305。控制電路500從列表、表、和/或數(shù)據(jù)庫等中獲得這一信息,其在圖5中顯示為搜索模式與組匹配列表510。
在模式匹配的第一階段期間,協(xié)議數(shù)據(jù)單元100以及在其上計(jì)劃進(jìn)行搜索的搜索模式305被傳遞到搜索模式比較器530,這里也稱為第一比較器530以及模式比較器530??刂齐娐?00如前所述將協(xié)議數(shù)據(jù)單元100編入索引。
任何給定的階段可以有具有不同位模式長度的各種搜索模式305。但是因?yàn)閰f(xié)議是變長的,所以用戶不知道下一個(gè)協(xié)議或下一個(gè)分組協(xié)議模式從何處開始。一旦為一個(gè)給定的封裝層識(shí)別了指定作為階段轉(zhuǎn)換模式的分組協(xié)議模式105,設(shè)備的階段部分就為找到的階段轉(zhuǎn)換模式指定的階段號(hào)重新設(shè)置并且該過程重新開始為下一個(gè)封裝層尋找分組協(xié)議模式105。
在有代表性的實(shí)施方案中,搜索模式比較器530是32比特寬RAM530,它能夠同時(shí)將32個(gè)不同的搜索模式305與協(xié)議數(shù)據(jù)單元100相匹配。指示如果有的話,與用來封裝協(xié)議數(shù)據(jù)單元100的相應(yīng)分組協(xié)議模式105匹配的搜索模式305的位模式從32比特寬RAM 530傳送到階段結(jié)果累加器550,這里也稱為第一累加器550,其生成一個(gè)指示符,在圖中沒有明確示出,所述指示符關(guān)于在協(xié)議數(shù)據(jù)單元100中是否找到搜索模式305。如果,例如,匹配位31設(shè)置為“1”,則尋找的模式號(hào)31匹配?!?”指示不匹配。如果每個(gè)階段比較應(yīng)該執(zhí)行不止一次,則階段結(jié)果累加器550在單個(gè)或同時(shí)比較完成之后更新。階段結(jié)果累加器550中包含的結(jié)果被傳送到控制電路500以及階段到組映射電路560,這里也稱為映射電路560,其中階段結(jié)果被映射并且傳送到組結(jié)果累加器570,這里也稱為第二累加器570,其生成一個(gè)指示符,在圖中沒有明確示出但是稱做組指示符570,其關(guān)于在協(xié)議數(shù)據(jù)單元100中是否找到預(yù)先選定的搜索模式305組。從階段到組映射電路560的輸出也傳送到控制電路500,其中用于提供階段結(jié)果,如下一階段號(hào)、下一個(gè)協(xié)議ID、寫下一個(gè)協(xié)議ID的位置以及其他項(xiàng)。組結(jié)果累加器570將組結(jié)果傳遞給控制電路500。給定的階段完成之后,控制電路500將階段結(jié)果累加器重新設(shè)置為其初始設(shè)置。
在任何給定的階段有32個(gè)模式可以匹配。對(duì)于協(xié)議數(shù)據(jù)單元100的給定字節(jié),可以有多個(gè)值滿足尋找的一個(gè)或多個(gè)模式。該字節(jié)可以在RAM中索引256個(gè)字的任何一個(gè)。因此RAM為由數(shù)據(jù)的給定字節(jié)索引的所有256個(gè)位置編程。如果字節(jié)值是“0”,則RAM在記錄0編程為查找的任何模式的匹配比特。如果字節(jié)值是“1”,RAM中是不同的字,因此字按想要匹配比特出現(xiàn)的方式與匹配比特編程。因此,在單一字節(jié)上進(jìn)行查找是查找可能是256個(gè)值的任何一組的模式。由實(shí)施者負(fù)責(zé)確保已對(duì)RAM編程以便選擇256個(gè)值中的任何一個(gè)與感興趣的模式匹配。
用戶可能對(duì)找到幾個(gè)不同類型的協(xié)議封裝感興趣并且將其認(rèn)做一個(gè)單一的協(xié)議組,例如可以是幀中繼接著是RFC1490接著是IP。用戶想要計(jì)數(shù)不同模式組出現(xiàn)的次數(shù)。階段到組映射電路560的另一個(gè)目的在于識(shí)別下一個(gè)將研究的階段。作為例子,協(xié)議數(shù)據(jù)單元100在第一階段被識(shí)別為幀中繼封裝,并且然后系統(tǒng)被編程使用第四階段來確定下一個(gè)封裝是否是RFC 1490或用于例如可能是LMI的其他協(xié)議的封裝。
協(xié)議識(shí)別設(shè)備215可保留為每個(gè)封裝層匹配每個(gè)搜索模式305的所有分組數(shù)的合計(jì)。除此之外,協(xié)議識(shí)別設(shè)備215用于創(chuàng)建控制數(shù)據(jù)捕獲(開始、集中、暫停、存儲(chǔ)、抑制),以及計(jì)數(shù)的傳統(tǒng)的過濾器功能。協(xié)議數(shù)據(jù)單元100滿足的任何模式的協(xié)議,無論是單一的還是組合的,在用戶的選擇下,可導(dǎo)致標(biāo)志被置位和/或?yàn)樵撃J蕉x的參數(shù)增加或者否則形成找到匹配的事實(shí)的記錄。這些信息,例如,可記錄在與協(xié)議數(shù)據(jù)單元100相關(guān)的緩存的系統(tǒng)開銷區(qū)域。而且,任何階段可選地導(dǎo)致值寫入與協(xié)議數(shù)據(jù)單元100相關(guān)的緩存的系統(tǒng)開銷區(qū)域中許多位置的一個(gè),以便指示該階段的封裝在協(xié)議數(shù)據(jù)單元100的什么位置開始并且為該階段找到哪個(gè)協(xié)議。除此之外,協(xié)議識(shí)別設(shè)備215可用于自動(dòng)檢測(cè)在網(wǎng)絡(luò)中使用哪些協(xié)議,提供可用于對(duì)協(xié)議數(shù)據(jù)單元100解碼的封裝信息,以及為運(yùn)行時(shí)間處理將分組排出優(yōu)先級(jí)。
控制電路500將各種感興趣的結(jié)果,例如上述的結(jié)果傳送給結(jié)果報(bào)告電路580以便用于將結(jié)果傳遞給其他電路和函數(shù)。
通常就是這樣,在許多數(shù)據(jù)處理產(chǎn)品中,這里公開的技術(shù)可以實(shí)現(xiàn)為硬件和軟件組件的組合。而且,使用本發(fā)明所需要的功能可以在計(jì)算機(jī)可讀的介質(zhì)中包含,如在網(wǎng)絡(luò)分析器、服務(wù)器或個(gè)人計(jì)算機(jī)的信息處理設(shè)備的編程中使用以便根據(jù)這里公開的技術(shù)執(zhí)行的硬盤、軟盤、CD ROM、DVD ROM等。
雖然這里描述的技術(shù)可以有利地用于協(xié)議分析器,但是其也可用于能夠接收協(xié)議數(shù)據(jù)單元100的其他設(shè)備,如計(jì)算機(jī)中。
4、結(jié)論本發(fā)明文檔中描述的實(shí)施方案比現(xiàn)有技術(shù)的主要優(yōu)點(diǎn)是顯著地減少了搜索與協(xié)議數(shù)據(jù)單元100的分組協(xié)議模式105的匹配所需的大量的模式比較器。通過利用階段的概念提供了這一減少。另一個(gè)優(yōu)點(diǎn)是能夠在更高層協(xié)議中尋找特定模式而不需要知道使用的是哪個(gè)更低層協(xié)議。而且,該設(shè)備的硬件和軟件實(shí)現(xiàn)提供了非??焖僮R(shí)別協(xié)議數(shù)據(jù)單元的優(yōu)點(diǎn)。另一個(gè)優(yōu)點(diǎn)是提供關(guān)于在特定協(xié)議數(shù)據(jù)單元100中存在哪些封裝的信息的能力,因此當(dāng)在后面處理每個(gè)分組時(shí)節(jié)省了軟件例程時(shí)間。最后,通過通知設(shè)備215關(guān)于想要的封裝模式,協(xié)議識(shí)別設(shè)備215可在運(yùn)行時(shí)過濾協(xié)議數(shù)據(jù)單元100,這提供了使額外的軟件例程免于在后面花時(shí)間處理不需要的分組的優(yōu)點(diǎn)以及通過丟棄不感興趣的協(xié)議數(shù)據(jù)單元提供有價(jià)值的捕獲緩存空間的優(yōu)點(diǎn)。
雖然關(guān)于優(yōu)選實(shí)施方案已經(jīng)詳細(xì)地描述了本發(fā)明,但是描述的實(shí)施方案是作為例子而不是作為限制介紹的。本領(lǐng)域的技術(shù)人員應(yīng)該理解可以對(duì)所描述的實(shí)施方案的形式和細(xì)節(jié)進(jìn)行各種改變,導(dǎo)致保留在所附權(quán)利要求范圍內(nèi)的等價(jià)實(shí)施方案。
權(quán)利要求
1.一種由協(xié)議識(shí)別設(shè)備[215]可讀的存儲(chǔ)介質(zhì),明確地包含協(xié)議識(shí)別設(shè)備[215]可執(zhí)行的指令的計(jì)算機(jī)程序,以便執(zhí)行用于識(shí)別用于在協(xié)議數(shù)據(jù)單元[100]中封裝數(shù)據(jù)[120]的計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議[105]的方法步驟,步驟包括接收協(xié)議數(shù)據(jù)單元[100],其中協(xié)議數(shù)據(jù)單元[100]包括數(shù)據(jù)[120]以及多種封裝協(xié)議模式[105];并且當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的至少一個(gè)階段[315]時(shí),迭代地執(zhí)行選擇剩余階段[315]中的一個(gè),并且當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的至少一個(gè)搜索模式[305]時(shí),迭代地執(zhí)行選擇剩余搜索模式[305]中的一個(gè),并且為選定的搜索模式[305]搜索協(xié)議數(shù)據(jù)單元[100]。
2.如權(quán)利要求1中所述的存儲(chǔ)介質(zhì),步驟還包括當(dāng)剩余至少一個(gè)階段[315]之前迭代地循環(huán)為至少一個(gè)預(yù)定義的搜索模式組[305]分配一個(gè)組指示符[570],其中所述組包括至少一個(gè)包含至少一個(gè)預(yù)先選定的搜索模式[305]的子組,其中預(yù)先選定的搜索模式[305]識(shí)別至少一個(gè)用于封裝數(shù)據(jù)[120]的預(yù)先選定的網(wǎng)絡(luò)協(xié)議[105];以及初始化組指示符[570]以便指定在協(xié)議數(shù)據(jù)單元[100]中希望的位置存在至少一個(gè)子組;以及當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的至少一個(gè)搜索模式[305]之后迭代地循環(huán)當(dāng)在協(xié)議數(shù)據(jù)單元[100]的希望位置上缺少與選定階段的組的每個(gè)子組相關(guān)的所有搜索模式[305]時(shí),設(shè)置組指示符[570]以便指定協(xié)議數(shù)據(jù)單元[100]中缺少所述組的所有子組。
3.如權(quán)利要求2中所述的存儲(chǔ)介質(zhì),其中跟隨為選擇的搜索模式[305]搜索協(xié)議數(shù)據(jù)單元[100]的步驟,所述步驟還包括當(dāng)剩余至少一個(gè)階段[315]之后,迭代地循環(huán)當(dāng)在協(xié)議數(shù)據(jù)單元[100]希望的位置上存在至少一個(gè)子組時(shí),將協(xié)議數(shù)據(jù)單元[100]放在緩存[210]中。
4.如權(quán)利要求1中所述的存儲(chǔ)介質(zhì),其中為選定的搜索模式[305]搜索協(xié)議數(shù)據(jù)單元[100]的步驟包括步驟當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的搜索模式[305]的至少一部分[325]時(shí),迭代地執(zhí)行選擇選定的搜索模式[305]的剩余的未搜索部分[325]中的一個(gè),并且為選定的搜索模式[305]的選定部分[325]而搜索協(xié)議數(shù)據(jù)單元[100]。
5.如權(quán)利要求4中所述的存儲(chǔ)介質(zhì),所述步驟還包括當(dāng)為選定的搜索模式[305]的選定部分[325]而搜索協(xié)議數(shù)據(jù)單元[100]的方法步驟未能在協(xié)議數(shù)據(jù)單元[100]中找到選定的部分[325]時(shí),退出當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的搜索模式[305]的至少一部分[325]的迭代循環(huán)并且退出當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的至少一個(gè)搜索模式[305]的迭代循環(huán)。
6.如權(quán)利要求1中所述的存儲(chǔ)介質(zhì),其中跟隨選擇剩余搜索模式[305]中的一個(gè)的方法步驟,所述步驟還包括當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的至少一個(gè)額外搜索模式[305]時(shí),選擇至少一個(gè)額外的剩余搜索模式[305],并且與為選定搜索模式[305]搜索協(xié)議數(shù)據(jù)單元[100]的方法步驟并行,為額外選定的搜索模式[305]搜索協(xié)議數(shù)據(jù)單元[100]。
7.如權(quán)利要求6中所述的存儲(chǔ)介質(zhì),其中為選定的搜索模式[305]搜索協(xié)議數(shù)據(jù)單元[100]以及為額外選定的搜索模式[305]搜索協(xié)議數(shù)據(jù)單元[100]的并行方法步驟包括步驟當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的選定搜索模式[305]的至少一部分[325]以及為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的額外選定搜索模式[305]的至少一部分[325]時(shí),迭代地執(zhí)行選擇選定搜索模式[305]的剩余未搜索部分[325]的一個(gè),選擇額外選定搜索模式[305]的剩余未搜索部分[325]的一個(gè),為選定搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100],以及與為選定搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100]的方法步驟并行,為額外選定的搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100];否則,當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的選定搜索模式[305]的至少一部分[325]時(shí),迭代地執(zhí)行選擇選定搜索模式[305]的剩余未搜索部分[325]的一個(gè),并且為選定搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100];以及否則,當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的額外選定搜索模式[305]的至少一部分[325]時(shí),迭代地執(zhí)行選擇額外選定搜索模式[305]的剩余未搜索部分[325]的一個(gè),并且為額外選定搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100]。
8.如權(quán)利要求7中所述的存儲(chǔ)介質(zhì),所述步驟還包括當(dāng)為選定搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100]的所述方法步驟未能在協(xié)議數(shù)據(jù)單元[100]中找到選定搜索模式[305]的選定部分[325]時(shí),并且當(dāng)為額外選定搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100]的并行方法步驟未能在協(xié)議數(shù)據(jù)單元[100]中找到額外選定的搜索模式[305]的選定部分[325]時(shí),退出當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的選定搜索模式[305]的至少一個(gè)部分[325]以及為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的額外選定搜索模式[305]的至少一個(gè)部分[325]的迭代循環(huán);否則當(dāng)為選定搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100]的方法步驟未能在協(xié)議數(shù)據(jù)單元[100]中找到選定搜索模式[305]的選定部分[325]時(shí),退出當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的選定搜索模式[305]的至少一個(gè)部分[325]的迭代循環(huán);并且否則當(dāng)為額外選定搜索模式[305]的選定部分[325]搜索協(xié)議數(shù)據(jù)單元[100]的方法步驟未能在協(xié)議數(shù)據(jù)單元[100]中找到額外選定搜索模式[305]的選定部分[325]時(shí),退出當(dāng)剩余為其搜索協(xié)議數(shù)據(jù)單元[100]的選定階段[315]的額外選定搜索模式[305]的至少一個(gè)部分[325]的迭代循環(huán)。
9.一種用于識(shí)別用于在協(xié)議數(shù)據(jù)單元[100]中封裝數(shù)據(jù)[120]的那些計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議[105]的設(shè)備,包括控制電路[500],其中控制電路[500]能夠接收協(xié)議數(shù)據(jù)單元[100]并且能夠?yàn)槎鄠€(gè)階段[315]的每個(gè)獲得至少一個(gè)搜索模式[305],其中每個(gè)搜索模式[305]識(shí)別用于封裝數(shù)據(jù)[120]的網(wǎng)絡(luò)協(xié)議[105]中的一個(gè);以及模式比較器[530],其中模式比較器[530]連接到控制電路[500],其中模式比較器[530]能夠接收來自控制電路[500]的協(xié)議數(shù)據(jù)單元[100],其中控制電路[500]能夠連續(xù)地選擇各個(gè)階段[315],并且其中對(duì)于選定的階段[315],模式比較器[530]能夠?yàn)檫x定階段[315]接收來自控制電路[500]的至少一個(gè)搜索模式[305]并且能夠?yàn)榻邮盏乃阉髂J絒315]單獨(dú)搜索協(xié)議數(shù)據(jù)單元[100]。
10.如權(quán)利要求9中所述的設(shè)備,還包括第一累加器[550],其中第一累加器[550]連接到模式比較器[530]并且能夠累加來自選定階段[315]搜索的結(jié)果。
全文摘要
協(xié)議數(shù)據(jù)單元中協(xié)議模式識(shí)別的方法和設(shè)備。公開的技術(shù)利用階段的概念。在每個(gè)階段,協(xié)議識(shí)別設(shè)備為特定協(xié)議封裝層尋找在協(xié)議數(shù)據(jù)單元的比特和搜索模式的預(yù)定比特間的模式匹配。一找到,該設(shè)備就復(fù)位自身并為下一層封裝重新搜索。為用戶提供在不知道使用哪個(gè)較低層協(xié)議的情況下,在較高層協(xié)議中尋找特定模式的能力。此設(shè)備的硬件和軟件實(shí)現(xiàn)都提供了協(xié)議數(shù)據(jù)單元非??焖俚淖R(shí)別。提供關(guān)于特定協(xié)議數(shù)據(jù)單元中存在哪些封裝的信息,處理每個(gè)分組時(shí)節(jié)省了軟件例程時(shí)間。通過通知設(shè)備想要的封裝模式,協(xié)議識(shí)別設(shè)備能在運(yùn)行時(shí)過濾協(xié)議數(shù)據(jù)單元,省去額外軟件例程后來處理不需要分組的時(shí)間,可丟棄不感興趣的協(xié)議數(shù)據(jù)單元來節(jié)省有價(jià)值的捕獲緩存空間。
文檔編號(hào)H04L12/26GK1400546SQ0212728
公開日2003年3月5日 申請(qǐng)日期2002年7月31日 優(yōu)先權(quán)日2001年7月31日
發(fā)明者J·D·莫里斯, V·布拉克 申請(qǐng)人:安捷倫科技有限公司