專利名稱:基于交換的網(wǎng)絡(luò)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)處理領(lǐng)域,更具體地說,涉及網(wǎng)絡(luò)路由器、防火墻、帶寬管理器以及交換機(jī)領(lǐng)域。
背景技術(shù):
當(dāng)前計(jì)算機(jī)通信系統(tǒng)使用網(wǎng)絡(luò),諸如Internet,將數(shù)據(jù)從一臺計(jì)算機(jī)傳送到另一臺計(jì)算機(jī)。將傳送的數(shù)據(jù)分成稱為數(shù)據(jù)包的較小數(shù)據(jù)塊。將每個數(shù)據(jù)包通過傳送計(jì)算機(jī)放在網(wǎng)絡(luò)上,其中將由接收數(shù)據(jù)包并確定地址的一個或多個路由器或交換機(jī)處理每個包數(shù)據(jù),該地址表示需要將數(shù)據(jù)包傳送到何處,以便可由適當(dāng)?shù)慕邮沼?jì)算機(jī)接收。路由器通過將搜索請求經(jīng)總線發(fā)送到搜索引擎或內(nèi)容可尋址存儲器(CAM)來確定適當(dāng)?shù)哪康牡刂?。然而,路由器尋找?shù)據(jù)包的地址所需的處理時間受總線的帶寬的限制。
增加可用于地址搜索的帶寬需要替換將路由器連接到搜索引擎的該常規(guī)總線。另外,在路由器處對數(shù)據(jù)包執(zhí)行許多修改需要由路由器以當(dāng)前不可用的速率存取數(shù)據(jù)包。同時也存取會話/狀態(tài)存儲器,以便路由器可是對話認(rèn)知的,這對于具有有限帶寬的常規(guī)路由器是不可能的。對有限帶寬總線問題的一個體系結(jié)構(gòu)解決方案是使用多CPU(中央處理單元)網(wǎng)絡(luò)處理器。然而,該解決方案太慢以至不能充分地執(zhí)行地址搜索,并且換算(scale)得不太好。對該問題的共享存儲器解決方案是不適當(dāng)?shù)模驗(yàn)樗艽鎯ζ鲙挼南拗?。不希望使用許多專用處理器的解決方案,因?yàn)檫@些處理器很難連接和編程。
發(fā)明內(nèi)容
在此公開了一種基于交換的網(wǎng)絡(luò)處理器。該基于交換的網(wǎng)絡(luò)處理器包括至少一個包剖析器、搜索以及修改調(diào)度程序,其用于解析數(shù)據(jù)包、開發(fā)對搜索引擎的需要,以及基于搜索結(jié)果調(diào)度將在數(shù)據(jù)包上執(zhí)行的修改。該處理器還包括幾個搜索資源,其中每個能同時執(zhí)行多個搜索。包括多個數(shù)據(jù)包器以便同時修改幾個數(shù)據(jù)包。還提供核心交換機(jī)以便將來自剖析器的搜索請求轉(zhuǎn)換到搜索資源,將來自搜索資源的搜索響應(yīng)轉(zhuǎn)換到剖析器,以及在剖析器和數(shù)據(jù)包修改器間轉(zhuǎn)換修改請求和響應(yīng)。該核心交換機(jī)還包括響應(yīng)包接收、用于傳送操作的時間表或基于對包內(nèi)容存取的指令,將包數(shù)據(jù)轉(zhuǎn)換到包緩沖存儲器中或之外??蓪⑺阉髡埱蠛托薷恼埱蟀ㄔ谥噶畎?。指令包也可包含包數(shù)據(jù)或經(jīng)包指針對包數(shù)據(jù)的間接引用。在一個實(shí)施例中,包指針包括對目前在基于交換的網(wǎng)絡(luò)處理器中的每個包來說唯一的包標(biāo)識符,以及包括指定包中的單元的偏移量。該基于交換的處理器也可包括會話狀態(tài)存儲設(shè)備,以及能用來允許根據(jù)與一組包,例如,包括在傳輸控制協(xié)議(TCP)會話中的包有關(guān)的會話和狀態(tài)變量,來處理包的會話/狀態(tài)存取指令。
本發(fā)明將通過例子來示例說明,但不限于附圖的圖形,其中相同的參考數(shù)字表示相似的元件,其中圖1表示基于交換的網(wǎng)絡(luò)處理器的一個實(shí)施例的例子。
圖2表示用來識別會話的會話狀態(tài)存儲的一個實(shí)施例的例子。
圖3表示由基于交換的網(wǎng)絡(luò)處理器使用的核心交換機(jī)的一個實(shí)施例的例子。
圖4示例說明搜索響應(yīng)解析機(jī)制的一個實(shí)施例。
圖5表示用于基于狀態(tài)的包處理的方法的一個實(shí)施例的例子。
圖6表示使用基于交換的網(wǎng)絡(luò)處理器來處理包的方法的一個實(shí)施例的例子。
具體實(shí)施例方式
在此公開了基于交換的網(wǎng)絡(luò)處理器。該基于交換的網(wǎng)絡(luò)處理器包括包剖析器、用于解析數(shù)據(jù)包、開發(fā)用于與包有關(guān)的處理規(guī)則的搜索以及基于該規(guī)則調(diào)度將在包上執(zhí)行的修改的搜索和修改調(diào)度程序。該處理器還包括幾個搜索資源,每個能同時搜索一個處理規(guī)則。包括多個包修改器以便同時修改幾個包。還提供核心交換機(jī)以便將搜索請求從剖析器轉(zhuǎn)換到搜索資源、將搜索響應(yīng)從搜索資源轉(zhuǎn)換到剖析器,以及在剖析器和包修改器間轉(zhuǎn)換修改請求和響應(yīng)。該基于交換的處理器還包括能用來允許處理器認(rèn)知會話的會話狀態(tài)存儲設(shè)備。
該基于交換的網(wǎng)絡(luò)處理器包括作為搜索資源的高速緩沖聯(lián)想存儲器(associative memory),以便可由交換機(jī)使用大的策略數(shù)據(jù)庫(policy database)來處理包。例如,可在實(shí)現(xiàn)使用基于交換的處理器實(shí)現(xiàn)策略的相同系統(tǒng)中實(shí)現(xiàn)非常大的路由表。而且,可尋址會話認(rèn)知(有狀態(tài)的)應(yīng)用,以便通過多個包可識別和保持會話或狀態(tài),即,處理器可是會話認(rèn)知的。可使用基于交換的處理器執(zhí)行另外的修改特征。例如,可執(zhí)行多協(xié)議標(biāo)記交換(MPLS)、壓入、彈出、合并、使用期限(TTL)遞減以及Internet協(xié)議(IP)校驗(yàn)和再計(jì)算修改。同時,可由基于交換的處理器執(zhí)行使用對IPSEC(IP安全)“可變”字段、支持源路由以及IP校驗(yàn)和再計(jì)算的修改加密擴(kuò)展。該處理器也可使用用于IP分割以及重組的工具來執(zhí)行加密或統(tǒng)一資源定位器(URL)交換??蓤?zhí)行每個包的多個搜索以及復(fù)雜的包搜索??捎商幚砥髦С值牧硗獾奶卣靼║RL搜索以及多字段抽取功能?;诮粨Q的網(wǎng)絡(luò)處理器也能以高速率,諸如OC-192支持復(fù)雜的應(yīng)用。因此,基于交換的網(wǎng)絡(luò)處理器也可用來改進(jìn)路由器、防火墻、帶寬管理器、交換機(jī)或線路卡的性能。
圖1中示出了基于交換的網(wǎng)絡(luò)處理器100的一個實(shí)施例的例子。處理器100從網(wǎng)絡(luò),諸如局域網(wǎng)(LAN)或廣域網(wǎng)的輸入線,通過網(wǎng)絡(luò)接口102接收包,該網(wǎng)絡(luò)接口102可以是例如MAC或幀調(diào)節(jié)器接口。接口102通過核心交換機(jī)140將包發(fā)送到包剖析器、搜索和修改調(diào)度程序110。剖析器110通過核心交換機(jī)140向搜索資源150發(fā)出搜索請求,以便定位用于包的適當(dāng)?shù)奶幚硪?guī)則。包剖析器110也可向包指定包識別符(ID)并將其轉(zhuǎn)發(fā)給包存儲設(shè)備120。搜索資源150對搜索請求產(chǎn)生一個或多個搜索響應(yīng),并將該響應(yīng)發(fā)送給核心交換機(jī)140。核心交換機(jī)140將該響應(yīng)傳遞給包剖析器110。包剖析器110基于搜索響應(yīng)發(fā)出一個或多個包修改請求,并將該修改請求經(jīng)核心交換機(jī)140發(fā)送給包修改器160。配置每個包修改器160以便通過應(yīng)用與對包的修改請求相應(yīng)的指令來修改包,如下所述,以及經(jīng)交換機(jī)140將修改后的包發(fā)送回剖析器110或包修改設(shè)備120。包存儲設(shè)備120接收修改后的包并經(jīng)核心交換機(jī)140將修改后的包發(fā)送給交換機(jī)結(jié)構(gòu)接口106,該接口106將包傳送到基于交換的網(wǎng)絡(luò)處理器100之外的將包轉(zhuǎn)換到網(wǎng)絡(luò)的適當(dāng)?shù)妮敵鼍€上的交換機(jī)結(jié)構(gòu)。主處理器接口104提供主處理器170和基于交換的處理器100間的接口,以便主處理器170可控制基于交換的處理器100。例如,主處理器170向基于交換的網(wǎng)絡(luò)處理器100提供信息以便該基于交換的網(wǎng)絡(luò)處理器能充分地處理異常包。接口設(shè)備115允許處理器100的各組件發(fā)送和接收數(shù)據(jù)。
基于交換的處理器100能基于復(fù)雜的規(guī)則,通過從包抽取信息來解析包。該處理器能通過查看從包抽取的數(shù)據(jù)來分類包。而且,該處理器能通過插入或重寫包含在包內(nèi)的數(shù)據(jù)來標(biāo)記包或?qū)?biāo)記應(yīng)用于包上。例如,包剖析器110接收一個包。剖析器110在該包上執(zhí)行一個或多個解析和分類操作。可由剖析器使用解析操作來設(shè)置用于包的會話標(biāo)識符,且分類操作可使用該會話標(biāo)識符來確定該包是否屬于現(xiàn)有的會話。會話是在網(wǎng)絡(luò)上從一臺計(jì)算機(jī)傳送到另一臺計(jì)算機(jī)的一組包。會話可具有與用來確定兩臺計(jì)算機(jī)間的連接的開始部分有關(guān)的包。例如,開始部分可用來識別傳送計(jì)算機(jī),以便來自傳送計(jì)算機(jī)的包可通過防火墻并由接收計(jì)算機(jī)接收。會話也可具有與會話的中間部分有關(guān)的包。這些包可包含傳送到接收計(jì)算機(jī)的數(shù)據(jù)。會話也可具有與用來結(jié)束兩臺計(jì)算機(jī)間的連接的結(jié)束部分有關(guān)的包。
可將會話標(biāo)識符包括在每個包中。剖析器110設(shè)置會話標(biāo)識符、讀取標(biāo)識符數(shù)據(jù)以及將該標(biāo)識符數(shù)據(jù)與存儲在會話存儲設(shè)備130和135中的會話標(biāo)識符比較。如果接收的包的標(biāo)識符與一個存儲設(shè)備130或135之一中的標(biāo)識符匹配,那么剖析器110確定該包屬于與數(shù)據(jù)庫中的匹配標(biāo)識符有關(guān)的會話。如果包的會話標(biāo)識符在會話存儲數(shù)據(jù)庫中沒有匹配,那么該包可自動創(chuàng)建新會話?;蛘?,在由基于交換的網(wǎng)絡(luò)處理器100通知主處理器170異常(未匹配的會話標(biāo)識符)后,主處理器170可創(chuàng)建與會話標(biāo)識符有關(guān)的新會話。在許多協(xié)議(例如,TCP/IP)中,可通過多個字段的組合來標(biāo)識會話。例如,源和目的IP地址以及TCP端口號可識別TCP/IP會話。因此會話標(biāo)識可包括多字段抽取以及查找最終組合數(shù)據(jù)。
例如,當(dāng)接收包時,執(zhí)行(抽取/查找)多個與會話無關(guān)的分類操作以便確定該包屬于哪一會話。每個包將或是新會話(未知的查找結(jié)果)的一部分或是現(xiàn)有會話的一部分。新會話包可自動創(chuàng)建會話環(huán)境或當(dāng)主處理器170創(chuàng)建新會話時停止。基于交換的網(wǎng)絡(luò)處理器100可通過維護(hù)可用會話/狀態(tài)數(shù)據(jù)庫項(xiàng)表或清單,并指定可用來存取會話/狀態(tài)數(shù)據(jù)庫的會話索引來執(zhí)行自動創(chuàng)建新會話,以便創(chuàng)建一個新會話而不用聯(lián)系主處理器170。主處理器170可在該主處理器從基于交換的網(wǎng)絡(luò)處理器100接收包括無匹配會話標(biāo)識符的消息后創(chuàng)建新會話。主處理器170將該無匹配會話標(biāo)識符與可通過該基于交換的網(wǎng)絡(luò)處理器100傳送到目的地址的會話的數(shù)據(jù)庫進(jìn)行比較。如果會話標(biāo)識符與允許通過基于交換的網(wǎng)絡(luò)處理器100傳送的會話相應(yīng),那么主處理器170發(fā)送指令以便創(chuàng)建至基于交換的網(wǎng)絡(luò)處理器100的新會話。
圖2表示用來識別會話的會話狀態(tài)存儲器的一個實(shí)施例的例子。交換機(jī)接口115接收請求以便識別來自核心交換機(jī)140的一個會話。由請求隊(duì)列210存儲該請求直到會話狀態(tài)存儲器130的高速緩沖存儲控制器220能處理它為止。該高速緩沖存儲控制器在高速緩沖存儲器230中搜索與搜索請求匹配的會話。如果找到匹配,將匹配信息從存儲器230發(fā)送到控制器220。如果未找到匹配,控制器通過存儲器接口115搜索在片外存儲器中存儲的會話表135,以便確定會話表中的會話是否與搜索請求匹配。如果找到匹配,那么將匹配信息發(fā)送到控制器220??刂破鲗碜愿咚倬彌_存儲器230或表135的匹配信息發(fā)送到響應(yīng)隊(duì)列250,然后,響應(yīng)隊(duì)列將該信息通過交換機(jī)140發(fā)送給剖析器110。
可由基于交換的網(wǎng)絡(luò)處理器,通過提供存儲描述基于行為的會話狀態(tài)的狀態(tài)/下一狀態(tài)表135的機(jī)制,以及通過創(chuàng)建和破壞存儲在設(shè)備130中的會話狀態(tài)數(shù)據(jù)來尋址會話認(rèn)知。可與包存儲無關(guān)地增加會話/狀態(tài)存儲。允許處理器100認(rèn)知會話準(zhǔn)許處理器100執(zhí)行指令來存取和修改會話/狀態(tài)存儲設(shè)備130,從而為處理器提供用于分配和釋放會話/狀態(tài)存儲的機(jī)制。例如,也可執(zhí)行遞增和增加指令來保持會話統(tǒng)計(jì)信息。同樣,也可由處理器100執(zhí)行改變狀態(tài)的指令(例如,會話→狀態(tài)=連接;)。因?yàn)樘幚砥?00是會話認(rèn)知的,所以該處理器可檢驗(yàn)狀態(tài)作為分類過程的一部分(例如,如果狀態(tài)等于x,那么執(zhí)行y)。例如,可由剖析器110使用會話標(biāo)識符以通過確定與包會話標(biāo)識符相應(yīng)的會話已經(jīng)準(zhǔn)許通過防火墻來允許包通過包含基于交換的網(wǎng)絡(luò)處理器100的防火墻設(shè)備。
剖析器110可基于包的內(nèi)容進(jìn)一步分類包。剖析器110可使用一個或多個規(guī)則來設(shè)置包中的信息以及從包抽取信息。通過與來自包的信息有關(guān)的一個或多個處理策略規(guī)則來控制對包的進(jìn)一步處理。每個處理規(guī)則可是會話狀態(tài)機(jī),該會話狀態(tài)機(jī)是基于會話變量和包內(nèi)容的選擇語句。會話狀態(tài)機(jī)也可包括描述包修改以及有關(guān)會話變量的操作的指令??赏ㄟ^轉(zhuǎn)向和調(diào)用/返回機(jī)制提供對嵌套會話(例如,IP上的TCP)的支持。
在剖析器110設(shè)置和從包抽取信息后,該剖析器可開發(fā)搜索請求來查找與抽取的信息有關(guān)的處理規(guī)則,以便進(jìn)一步處理包。通過核心交換機(jī)140將用于該包或?qū)ο箢愋偷乃阉髡埱蟀l(fā)送到用于對象類型的一個或多個搜索資源150-1至150-n。每個搜索資源150可基于搜索請求,搜尋大規(guī)則150的至少一部分以便找出適當(dāng)?shù)囊?guī)則。可由每個搜索資源150使用用于搜索存儲器,諸如內(nèi)容可尋址存儲器(CAM)超高速緩存的高速緩沖存儲接口系統(tǒng)151,以便可按非常大的統(tǒng)計(jì)快速搜索系統(tǒng)來執(zhí)行資源。
在找到具有最高優(yōu)先級的處理規(guī)則后,將與該規(guī)則有關(guān)的指令數(shù)據(jù)以及規(guī)則的優(yōu)先級經(jīng)交換機(jī)140從搜索資源150傳送到剖析器110。如果多個搜索資源用不同優(yōu)先級響應(yīng),則核心交換機(jī)將最高優(yōu)先級響應(yīng)傳遞給包剖析器110。處理規(guī)則可包括將在包上執(zhí)行的一個或多個修改。例如,該規(guī)則可包括表示將添加或從包刪除一個字段的邏輯。該插入或刪除邏輯可用來封裝或解封裝包、改變URL、改變IP地址或改變端口號。當(dāng)執(zhí)行該邏輯時,可引起包被封裝。
通過將定義基于偏移量的包以便實(shí)現(xiàn)字段抽取的包偏置變量的原理(concept)與封裝原理結(jié)合,每個包(正在處理時)可與用于每個封裝的多個會話存儲區(qū)、一個偏置變量以及一個會話/狀態(tài)數(shù)據(jù)塊關(guān)聯(lián)。因此,在IP包上的TCP上的文件傳輸協(xié)議(FTP)在會話存儲中將具有三個會話數(shù)據(jù)塊,一個用于每個封裝。每個封裝可與單獨(dú)的偏置以及單獨(dú)的狀態(tài)變量關(guān)聯(lián),這允許處理器100單獨(dú)地處理每個封裝。
處理規(guī)則也可包含指定功能,諸如拷貝包或包的一部分、分離包或合并包的相關(guān)數(shù)據(jù)。包復(fù)制可用于橋接器中的多播復(fù)制和廣播功能。合并和分離功能可用于IP分割和重組。
處理規(guī)則也可指定通過拷貝包模板,然后修改可用來創(chuàng)建新包的拷貝來生成新包的功能。處理規(guī)則也可具有遞增或遞減包中的字段值、或重新計(jì)算校驗(yàn)和值的功能。
可將處理規(guī)則以及相應(yīng)的包從剖析器110經(jīng)交換機(jī)140傳送到包修改器160。包修改器160基于處理規(guī)則修改包的內(nèi)容,以及將修改后的包經(jīng)交換機(jī)140返回給剖析器110。如果包需要進(jìn)一步處理,剖析器可調(diào)度對包的另外的搜索或另外的修改。
因此,基于交換的網(wǎng)絡(luò)處理器100的包修改器或硬件編輯塊160-1至160n可用來解決特定的包修改問題。由硬件編輯塊160解決的修改允許處理器從慢通路(slow path)處理器170去除大部分“重負(fù)”,因?yàn)樘幚硪?guī)則能由塊160執(zhí)行來修改包。例如,硬件塊160可包括能用來封裝和解封裝包、改變URL和IP地址以及端口號的字段插入/刪除邏輯。編輯塊160也可執(zhí)行拷貝包或部分包、分離包以及合并包的功能,這是用于IP分割和重組的基礎(chǔ)??截惏0宀⑶胰缓笮薷脑摽截惪捎捎布庉媺K160執(zhí)行,并且這是用于創(chuàng)建包的基礎(chǔ)。塊160也可執(zhí)行用于包中遞增和遞減字段以及重計(jì)算校驗(yàn)和的修改功能。連接到慢通路接口104的慢通路處理器170也可用來處理異常包。
圖3表示用在基于交換的網(wǎng)絡(luò)處理器100中的核心交換機(jī)140的一個實(shí)施例的例子。由處理器使用的核心交換機(jī)140可包括諸如時分多路復(fù)用(TDM)單元縱橫交換(crossbar)310的交換機(jī)結(jié)構(gòu)。核心交換機(jī)140還包括輸入隊(duì)列設(shè)備330以便從處理器100的其他部分接收諸如數(shù)據(jù)包和其他信息的元素。將輸入隊(duì)列330中每個元素的狀態(tài)發(fā)送給交換機(jī)調(diào)度程序320。該交換機(jī)調(diào)度程序320包括諸如為處理設(shè)備的邏輯,例如將該邏輯配置成捕獲用于每個元素的輸入隊(duì)列狀態(tài),并調(diào)度該元素經(jīng)過縱橫交換310的適當(dāng)?shù)哪康牡睾蜁r間。交換機(jī)140還包括也從其他網(wǎng)絡(luò)設(shè)備接收數(shù)據(jù)元素的輸出隊(duì)列設(shè)備340,并將每個元素的輸出隊(duì)列狀態(tài)發(fā)送給調(diào)度程序320。交換機(jī)調(diào)度程序320使輸出隊(duì)列340中的數(shù)據(jù)在適當(dāng)?shù)膯卧蜁r間經(jīng)過縱橫交換310。
核心交換機(jī)140能使用交換機(jī)調(diào)度程序320執(zhí)行搜索多播特征,該交換機(jī)調(diào)度程序320了解哪個交換機(jī)端口連接到了特定的對象類型搜索資源150。將用于具體對象類型的搜索請求多播到這些搜索資源150。交換機(jī)從該資源接收響應(yīng),且交換機(jī)調(diào)度程序320使最高優(yōu)先級響應(yīng)返回剖析器110。使用消息等級來存取核心交換機(jī)140的特定特征。包剖析器、搜索和修改調(diào)度程序110對各個搜索和修改資源150和160生成消息。交換機(jī)搜索請求特征是至搜索類型(對象類型)的多播,并允許多個搜索設(shè)備并行運(yùn)行搜索。搜索請求可包含用來協(xié)調(diào)多個搜索響應(yīng)的搜索順序號。當(dāng)特定類型的搜索設(shè)備將對搜索的響應(yīng)(即使它們不包含相關(guān)數(shù)據(jù))發(fā)送給交換機(jī)140時確定交換機(jī)搜索響應(yīng)。交換機(jī)收集各響應(yīng),并決定共享公共搜索請求順序號的響應(yīng)之間的優(yōu)先級。
例如,剖析器110將搜索請求發(fā)送給交換機(jī)140,在此處,接收該請求并由交換機(jī)輸入隊(duì)列330保存直到交換機(jī)調(diào)度程序320使該請求從隊(duì)列330經(jīng)縱橫交換310傳遞到一個或多個搜索資源。交換機(jī)可將搜索請求多播給多個搜索設(shè)備150,以便該設(shè)備能并行運(yùn)行搜索。搜索標(biāo)識符,諸如搜索順序號可與搜索請求包含在一起。
接收搜索請求的每個搜索設(shè)備150基于該請求執(zhí)行搜索并確定搜索響應(yīng)。搜索設(shè)備150可以是執(zhí)行存儲器內(nèi)容搜索以找出響應(yīng)的CAM超高速緩沖設(shè)備。搜索標(biāo)識符也可同搜索響應(yīng)包含在一起。將響應(yīng)連同標(biāo)識符一起發(fā)送給交換機(jī)輸出隊(duì)列340。交換機(jī)調(diào)度程序320使用標(biāo)識符來識別和收集對指定搜索的響應(yīng)。在輸出隊(duì)列340接收用于指定搜索的響應(yīng)后,交換機(jī)調(diào)度程序320可決定多個搜索響應(yīng)中的優(yōu)先級,并將具有最高優(yōu)先級的響應(yīng)經(jīng)縱橫交換310發(fā)送給剖析器。
例如,匹配值可與每個響應(yīng)相關(guān),其中匹配值表示搜索請求和搜索響應(yīng)之間的相似度。與最高匹配值有關(guān)的響應(yīng)可是最高優(yōu)先級響應(yīng)。
圖4示例說明交換機(jī)調(diào)度程序320的搜索響應(yīng)解決機(jī)制400的一個實(shí)施例。從存儲在搜索ID分配設(shè)備410中的搜索ID庫為每個搜索請求401指定搜索標(biāo)識符(ID),諸如順序號。搜索ID的數(shù)量可用來限定能被發(fā)出而沒有搜索響應(yīng)的搜索請求的最大數(shù)量。當(dāng)在分配設(shè)備410中沒有可用于新搜索請求的搜索ID時,斷言搜索流控制信號402以防止剖析器110將更多請求發(fā)送給設(shè)備400。將搜索ID傳遞給搜索資源150作為來自設(shè)備400的搜索請求406的部分。搜索資源150也返回搜索ID作為該搜索響應(yīng)的部分。當(dāng)核心交換機(jī)140中的設(shè)備400接收搜索響應(yīng)408-N時,將該響應(yīng)存儲在由搜索資源號和搜索ID尋址的存儲器420的搜索響應(yīng)存儲單元415-N中。當(dāng)用于搜索ID的指定數(shù)量的響應(yīng)存在于存儲器420中時,準(zhǔn)備由響應(yīng)判優(yōu)設(shè)備430選擇一個響應(yīng)。例如,當(dāng)存儲器接收到用于指定搜索ID的所有搜索響應(yīng)時,設(shè)備430選擇具有最高優(yōu)先級的響應(yīng)490。如果一個或多個響應(yīng)準(zhǔn)備判優(yōu)時,將用于準(zhǔn)備判優(yōu)的最早響應(yīng)的最高優(yōu)先級響應(yīng)返回給剖析器110并且使用再循環(huán)ID信號480將相應(yīng)的搜索ID再循環(huán)回分配設(shè)備410。
交換機(jī)140也可從剖析器110接收執(zhí)行請求,包括包或包分段。存取核心交換機(jī)140的特定特性以便使用消息等級執(zhí)行請求。(具有包或包分段)的執(zhí)行請求是可支撐負(fù)載平衡方案的單播消息。例如,可將消息傳送給具有最短輸入隊(duì)列的執(zhí)行資源160。該消息可包含將被修改的包分段或可包含整個包。負(fù)載平衡功能可用來定標(biāo)到較高數(shù)據(jù)率,以便可增加多個平行的處理執(zhí)行資源160以增加速度。因?yàn)樨?fù)載平衡可是基于修改的背壓機(jī)制,故可將請求處理動作的消息發(fā)送給具有最短輸入隊(duì)列的處理資源160。
例如,交換機(jī)140可在輸入隊(duì)列330從剖析器110接收執(zhí)行請求。調(diào)度程序320可識別具有可用來實(shí)現(xiàn)執(zhí)行請求的小隊(duì)列請求的執(zhí)行資源160。交換機(jī)調(diào)度程序可檢測輸入隊(duì)列中用于每個執(zhí)行資源160的多個數(shù)據(jù)??蓪⒕哂性谄漭斎腙?duì)列中的最小數(shù)據(jù)量的執(zhí)行資源識別為具有最短輸入隊(duì)列的執(zhí)行資源。然后,當(dāng)調(diào)度程序320使請求經(jīng)縱橫交換310傳遞到被識別的執(zhí)行資源160時,該被識別的執(zhí)行資源然后可從交換機(jī)接收執(zhí)行請求。
在執(zhí)行資源160在包或包分段上執(zhí)行請求后,該資源將響應(yīng)發(fā)送給交換機(jī)輸出隊(duì)列340。來自執(zhí)行資源的響應(yīng)包括修改的包或修改的包分段。(具有包分段的)執(zhí)行響應(yīng)是由執(zhí)行單元160返回的結(jié)果。執(zhí)行響應(yīng)可用作隊(duì)列和輸出機(jī)制120的部分。對隊(duì)列或輸出結(jié)果的響應(yīng)允許包剖析器、搜索和修改調(diào)度程序在包存儲設(shè)備120中再循環(huán)包緩沖器資源。因此,執(zhí)行響應(yīng)可表示用于由包存儲器120接收的包的隊(duì)列單元和調(diào)度時間。
如果包不需要進(jìn)一步處理,可將該包從剖析器110經(jīng)交換機(jī)140發(fā)送到包存儲器120中的包輸出隊(duì)列。由會話特定變量控制包次序。可提供指令來鎖定和解鎖會話。可掛起用于鎖定的會話的正處理的包,當(dāng)它們的處理嘗試執(zhí)行鎖定指令時。按它們嘗試鎖定會話的順序,在包存儲器120的會話鎖定隊(duì)列中排隊(duì)被掛起的包。在當(dāng)前包執(zhí)行解鎖指令時,可重新陳述會話鎖定隊(duì)列中的下一個包。會話鎖定隊(duì)列可使用定時器函數(shù)。該定時器期滿函數(shù)為會話狀態(tài)機(jī)提供單獨(dú)的(不是包未驅(qū)動的)入口點(diǎn)??商峁┲噶顏韯?chuàng)建會話鎖定隊(duì)列、重新排序鎖定隊(duì)列中的包、刷新鎖定隊(duì)列以及破壞鎖定隊(duì)列。當(dāng)刷新會話鎖定隊(duì)列時,可將包引下線(drop)、傳送到輸出隊(duì)列或調(diào)度以用于進(jìn)一步處理。
圖5表示用于基于狀態(tài)的包處理的一個實(shí)施例的例子。當(dāng)開始會話處理時,分配會話/狀態(tài)存儲器,510。創(chuàng)建會話鎖定隊(duì)列以便控制處理包的順序,520。執(zhí)行鎖定和解鎖指令以便存取存儲在會話狀態(tài)存儲器中的信號量來掛起和重啟動包的處理,530。為處理包而執(zhí)行包處理指令,諸如鎖定隊(duì)列創(chuàng)建、包插入、包刪除、隊(duì)列刷新或隊(duì)列破壞,540。當(dāng)完成會話處理時,重新分配會話/狀態(tài)存儲器,550。
圖6表示使用基于交換的網(wǎng)絡(luò)處理器來處理包的方法的一個實(shí)施例的例子。在剖析器接收包,610。在該剖析器產(chǎn)生包請求,620。將包請求經(jīng)交換機(jī)從剖析器傳送到包資源,630?;谠撜埱?,在包資源產(chǎn)生響應(yīng),640。經(jīng)交換機(jī)將該響應(yīng)傳送到剖析器,650。包請求可是包搜索請求、包修改請求或會話標(biāo)識請求。包響應(yīng)可是搜索響應(yīng)、包修改或會話標(biāo)識符。包資源可是包修改器、包搜索設(shè)備、或會話設(shè)備,如上所述。
已經(jīng)描述了基于交換的網(wǎng)絡(luò)處理器。該基于交換的網(wǎng)絡(luò)處理器允許用戶實(shí)現(xiàn)數(shù)百萬數(shù)據(jù)庫入口而不會為了硅和大的集成板面積而花費(fèi)數(shù)千美元。這種對擴(kuò)充總線的基于交換的替換增加了用于搜索的帶寬,并允許執(zhí)行要求存取包的更高帶寬的大量包修改。同時,要求非常高的帶寬的對會話/狀態(tài)存儲器的存取是基于交換的處理器的一個特征。簡單處理單元與充當(dāng)基于規(guī)則的指令調(diào)度程序的會話認(rèn)知剖析器/分類器的基于交換的互連可象交換機(jī)結(jié)構(gòu)那樣定標(biāo)(scale)。
本發(fā)明的這些和其他實(shí)施例可根據(jù)在此描述的教導(dǎo)來實(shí)現(xiàn),在這些教導(dǎo)內(nèi)做出的不脫離本發(fā)明的更廣泛的精神和范圍的各種修改和改變應(yīng)當(dāng)是顯而易見的。因此,說明書和附圖應(yīng)視為示例性的而不是限定意義上的,本發(fā)明僅根據(jù)權(quán)利要求書來限定。
權(quán)利要求
1.一種裝置,包括剖析器,用于接收包并生成包搜索請求;多個搜索資源,每個搜索資源確定對該包搜索請求的搜索響應(yīng);以及交換機(jī),用于從剖析器接收包搜索請求并將該包搜索請求多播到該多個搜索資源。
2.如權(quán)利要求1所述的裝置,其特征在于該交換機(jī)進(jìn)一步被配置成用來從多個搜索資源中的每一個接收搜索響應(yīng)、從接收的搜索響應(yīng)選擇一個搜索響應(yīng),以及將該選定的響應(yīng)傳送給剖析器。
3.如權(quán)利要求2所述的裝置,其特征在于該剖析器進(jìn)一步被配置成用來基于搜索響應(yīng)生成用于包的修改請求。
4.如權(quán)利要求3所述的裝置,進(jìn)一步包括多個包修改器,每個包修改器被配置成用來使用所述修改請求修改包。
5.如權(quán)利要求4所述的裝置,其特征在于交換機(jī)被配置成用來將修改請求從剖析器傳送到具有最短隊(duì)列的包修改器。
6.如權(quán)利要求5所述的裝置,其特征在于交換機(jī)進(jìn)一步被配置成用來將修改過的包從包修改器傳送到剖析器。
7.一種裝置,包括剖析器,用于接收包并生成包請求;多個包資源,每個包資源基于包請求生成包響應(yīng);以及交換機(jī),用于從剖析器接收包請求并將該包請求傳送到多個包資源中的至少一個。
8.如權(quán)利要求7所述的裝置,其特征在于包請求是從由包搜索請求、包修改請求、以及會話標(biāo)識請求所組成的組中選擇的。
9.如權(quán)利要求7所述的裝置,其特征在于交換機(jī)進(jìn)一步被配置成用來從多個包資源的至少一個接收包響應(yīng),并將該包響應(yīng)傳送給剖析器。
10.如權(quán)利要求9所述的裝置,其特征在于包響應(yīng)是從由搜索響應(yīng)、包修改以及會話標(biāo)識符組成的組中選擇的。
11.如權(quán)利要求9所述的裝置,其特征在于包資源是從由包修改器、包搜索設(shè)備以及會話設(shè)備組成的組中選擇的。
12.一種裝置,包括第一裝置,用于接收包并生成包請求;第二裝置,用于基于包請求生成包響應(yīng);以及第三裝置,用于從所述第一裝置接收包請求以及將該包請求傳送到所述第二裝置。
13.如權(quán)利要求12所述的裝置,其特征在于包請求是從由包搜索請求、包修改請求、以及會話標(biāo)識請求組成的組中選擇的。
14.如權(quán)利要求12所述的裝置,其特征在于所述第三裝置進(jìn)一步包括用來從所述第二裝置接收包響應(yīng),并將該包響應(yīng)傳送給所述第一裝置的裝置。
15.如權(quán)利要求12所述的裝置,其特征在于包響應(yīng)是從由搜索響應(yīng)、包修改以及會話標(biāo)識符組成的組中選擇的。
16.如權(quán)利要求12所述的裝置,其特征在于所述第二裝置是從由包修改器、包搜索設(shè)備以及會話設(shè)備組成的組中選擇的。
17.一種方法,包括在剖析器接收包;在該剖析器產(chǎn)生包請求;以及使用交換機(jī)將來自剖析器的包請求傳送到包資源。
18.如權(quán)利要求17所述的方法,進(jìn)一步包括基于包請求,使用包資源來生成包響應(yīng)。
19.如權(quán)利要求17所述的方法,其特征在于包請求是從由包搜索請求、包修改請求、以及會話標(biāo)識請求組成的組中選擇的。
20.如權(quán)利要求17所述的方法,進(jìn)一步包括使用交換機(jī)將來自包資源的包響應(yīng)傳送給剖析器。
21.如權(quán)利要求17所述的方法,其特征在于包響應(yīng)是從由搜索響應(yīng)、包修改以及會話標(biāo)識符組成的組中選擇的。
22.如權(quán)利要求17所述的方法,其特征在于包資源是從由包修改器、包搜索設(shè)備以及會話設(shè)備組成的組中選擇的。
23.一種用于基于狀態(tài)的包處理的方法,包括當(dāng)開始會話處理時,分配會話/狀態(tài)存儲器;創(chuàng)建會話鎖定隊(duì)列來控制處理包的順序;執(zhí)行鎖定和解鎖指令來存取存儲在會話狀態(tài)存儲器中的信息量,以便掛起和重啟包的處理;執(zhí)行一個指令用于包的處理,該指令是從由鎖定隊(duì)列創(chuàng)建、包插入、包刪除、隊(duì)列刷新以及隊(duì)列破壞組成的組中選擇的;以及當(dāng)完成會話處理時,重新分配會話/狀態(tài)存儲器。
全文摘要
一種基于交換的網(wǎng)絡(luò)處理器。該基于交換的網(wǎng)絡(luò)處理器包括包剖析器、搜索和修改調(diào)整程序,其用于解析數(shù)據(jù)包、開發(fā)對與該包有關(guān)的處理規(guī)則的搜索,以及基于規(guī)則調(diào)度將在包上執(zhí)行的修改。該處理器還包括幾個搜索資源,每個搜索資源能同時搜索一個處理規(guī)則。該處理器包括多個包修改器以便同時修改幾個包。還提供核心交換機(jī)以將搜索請求從剖析器轉(zhuǎn)換到搜索資源,將搜索響應(yīng)從搜索資源轉(zhuǎn)換到剖析器以及在剖析器和包修改器間轉(zhuǎn)換修改請求和響應(yīng)?;诮粨Q的處理器還包括能用來允許處理器認(rèn)知會話的會話狀態(tài)存儲設(shè)備。
文檔編號H04L12/56GK1493132SQ01820184
公開日2004年4月28日 申請日期2001年11月7日 優(yōu)先權(quán)日2000年11月7日
發(fā)明者亞歷克斯·E·漢德森, 沃爾特·E·克羅夫特, E 克羅夫特, 亞歷克斯 E 漢德森 申請人:英特爾公司