專利名稱:使用分布式網(wǎng)絡(luò)處理的數(shù)據(jù)交換機(jī)中的內(nèi)部負(fù)載平衡的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)據(jù)通信網(wǎng)絡(luò)中用于在不同的數(shù)據(jù)包處理單元之間分布處理操作并由此分布處理負(fù)載的交換設(shè)備。特別地,本發(fā)明涉及一種用于在入口處理器和出口處理器之間分配數(shù)據(jù)包處理操作以使負(fù)載不平衡最小化的系統(tǒng)和方法。
背景技術(shù):
諸如路由器或交換機(jī)之類的聯(lián)網(wǎng)設(shè)備內(nèi)網(wǎng)絡(luò)處理負(fù)載的分布通常是固定的,并且很大程度上由聯(lián)網(wǎng)設(shè)備的體系結(jié)構(gòu)所決定。例如,取決于廠商,一般預(yù)先確定轉(zhuǎn)發(fā)決定(forwarding decision)和其他數(shù)據(jù)包處理是在入口執(zhí)行還是在出口執(zhí)行。由于固有的不對稱處理負(fù)載和不對稱業(yè)務(wù)模式,入口點處的網(wǎng)絡(luò)處理負(fù)載很少會等于出口點處的網(wǎng)絡(luò)處理負(fù)載。事實上,入口和出口之間的處理負(fù)載差異通常很大,以至于經(jīng)常是交換機(jī)一端的處理器很忙碌,而另一端的處理器幾乎保持空閑。
盡管一些聯(lián)網(wǎng)設(shè)備可以與其他聯(lián)網(wǎng)設(shè)備共享某些處理負(fù)載以平衡可用處理器上的處理工作量,但是這些方案不能動態(tài)地平衡數(shù)據(jù)包處理操作,因為(a)網(wǎng)絡(luò)處理典型地由硬連線的(hard-wired)專用集成電路(ASIC)設(shè)備實現(xiàn),這種設(shè)備非常擅長重復(fù)性任務(wù),但一般缺乏動態(tài)改變?nèi)蝿?wù)分布的智能;(b)采用分布式處理的網(wǎng)絡(luò)集群都設(shè)計為處理一組大型且固定的任務(wù),但這種網(wǎng)絡(luò)集群相對較慢且不適合于數(shù)據(jù)包處理;以及(c)將大多數(shù)聯(lián)網(wǎng)設(shè)備都簡單地過度工程化(over-engineered)以適應(yīng)最差的可能負(fù)載,而沒有考慮到在系統(tǒng)級上浪費了過多的計算能力。
因此,需要一種能夠監(jiān)視數(shù)據(jù)包處理負(fù)載不平衡并在入口處理器和出口處理器之間動態(tài)地分布負(fù)載以使不平衡最小化的網(wǎng)絡(luò)交換設(shè)備。
發(fā)明內(nèi)容
在優(yōu)選實施例中,本發(fā)明的特征表現(xiàn)為一種包括多個交換模塊的交換設(shè)備,每個交換模塊包括至少一個外部端口,其適用于接收數(shù)據(jù)包或其他協(xié)議數(shù)據(jù)單元(PDU);數(shù)據(jù)包分類器,其適用于基于一個或多個數(shù)據(jù)包特性來檢查數(shù)據(jù)包并識別應(yīng)用于該數(shù)據(jù)包的一個或多個數(shù)據(jù)包處理操作,并適用于識別接收所轉(zhuǎn)發(fā)的數(shù)據(jù)包的多個交換模塊中的第二交換模塊;控制器,其適用于在第一組數(shù)據(jù)包處理操作與第二組數(shù)據(jù)包處理操作之間分配所識別的一個或多個數(shù)據(jù)包處理操作中的每個數(shù)據(jù)包處理操作,在包括接收數(shù)據(jù)包的外部端口的交換模塊中執(zhí)行第一組數(shù)據(jù)包處理操作,并發(fā)送命令到第二交換模塊指示該第二交換模塊執(zhí)行第二組數(shù)據(jù)包處理操作。如同優(yōu)選實施例中多個交換模塊中的每個交換模塊一樣,第二交換模塊適用于響應(yīng)于該命令而執(zhí)行第二組數(shù)據(jù)包處理操作,之后可以將數(shù)據(jù)包從外部端口向其目的地節(jié)點發(fā)送。
在優(yōu)選實施例中,交換設(shè)備是路由器、網(wǎng)橋或多層交換機(jī),而數(shù)據(jù)包處理操作是為了準(zhǔn)備用于發(fā)送到其目的地節(jié)點方向上的下一個節(jié)點的數(shù)據(jù)包而執(zhí)行的數(shù)據(jù)包轉(zhuǎn)發(fā)操作。根據(jù)優(yōu)選實施例,可以在多個交換模塊的入口交換模塊或出口交換模塊中串行地分布和執(zhí)行數(shù)據(jù)包處理操作。數(shù)據(jù)包處理操作一般選自群組但不限于群組,該群組包括報頭轉(zhuǎn)換、標(biāo)記推送(push)、標(biāo)記彈出(pop)、服務(wù)質(zhì)量、計費和記賬、多協(xié)議標(biāo)簽交換(MPLS)管理、生成樹操作、認(rèn)證、訪問控制、高層學(xué)習(xí)、警報生成、端口鏡像、源學(xué)習(xí)、服務(wù)分類、色彩標(biāo)記及其組合。
在優(yōu)選實施例中,在交換設(shè)備的第一交換模塊與第二交換模塊之間分配數(shù)據(jù)包交換操作的方法包括步驟在第一交換模塊的外部端口處接收數(shù)據(jù)包;識別應(yīng)用于數(shù)據(jù)包的一個或多個數(shù)據(jù)包處理操作;在第一組數(shù)據(jù)包處理操作與第二組數(shù)據(jù)包處理操作之間分配該一個或多個數(shù)據(jù)包處理操作中的每個數(shù)據(jù)包處理操作;在第一交換模塊中執(zhí)行第一組數(shù)據(jù)包處理操作;以及發(fā)送命令到第二交換模塊以執(zhí)行第二組數(shù)據(jù)包處理操作。本方法還包括響應(yīng)在于該命令而第二交換模塊中執(zhí)行第二組數(shù)據(jù)包處理操作的步驟。
通過示例和附圖對本發(fā)明進(jìn)行說明,并且本發(fā)明不限于附圖的圖形,并且其中圖1是根據(jù)本發(fā)明的優(yōu)選實施例的企業(yè)交換機(jī)的功能性框圖;圖2是根據(jù)本發(fā)明的優(yōu)選實施例用于執(zhí)行串行分布的數(shù)據(jù)包處理的企業(yè)交換機(jī)的交換模塊的功能性框圖;圖3是根據(jù)本發(fā)明優(yōu)選實施例的交換模塊的本地存儲器中所保存的數(shù)據(jù)庫的功能性框圖;圖4是根據(jù)本發(fā)明優(yōu)選實施例的串行分布的數(shù)據(jù)包處理(SDPP)控制器的功能性框圖;圖5是根據(jù)本發(fā)明的優(yōu)選實施例用于在交換模塊之間分配SDPP服務(wù)的報頭的功能性框圖;圖6是根據(jù)本發(fā)明優(yōu)選實施例的入口交換模塊處理入口數(shù)據(jù)流的方法的流程圖;以及圖7是根據(jù)本發(fā)明優(yōu)選實施例的出口交換模塊處理出口數(shù)據(jù)流的方法的流程圖。
具體實施例方式
圖1中示出的是企業(yè)交換機(jī)的功能性框圖。企業(yè)交換機(jī)100包括多個節(jié)點中的一個節(jié)點和其他可尋址實體,這些節(jié)點和實體可操作地連接到數(shù)據(jù)通信網(wǎng)絡(luò),該數(shù)據(jù)通信網(wǎng)絡(luò)具體為例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN),或城域網(wǎng)(MAN)、網(wǎng)際協(xié)議(IP)網(wǎng)、因特網(wǎng),或其組合。
企業(yè)交換機(jī)100優(yōu)選地包括多個交換模塊110-113,有時稱為刀片(blade),將這些交換模塊固定在背板152上的插槽中。每個交換模塊110-113包括一個或多個外部端口102,每個外部端口都可以通過通信鏈路(未示出)可操作地連接到數(shù)據(jù)通信網(wǎng)絡(luò)中的另一個節(jié)點,并且一個或多個內(nèi)部端口通過共享的交換架構(gòu)150將每個交換模塊110-113連接到每個其他的交換模塊。
交換模塊110-113優(yōu)選地包括至少一個網(wǎng)絡(luò)處理器(NP)106,其能夠進(jìn)行如開放系統(tǒng)互聯(lián)(OSI)參考模型中所定義的至少層2(數(shù)據(jù)鏈路層)和層3(網(wǎng)絡(luò)層)的交換操作但不限于這些操作。用于將外部端口102可操作地連接到有線和/或無線通信鏈路的一種可能的層2協(xié)議是電氣和電子工程師協(xié)會(IEEE)的802.3標(biāo)準(zhǔn),而一組可能的層3協(xié)議包括因特網(wǎng)工程任務(wù)組(IETF)的請求注釋(RFC)791中定義的網(wǎng)際協(xié)議(IP)版本4和IETF RFC 1883中定義的IP版本6。
對于本公開來說,從外部端口102到架構(gòu)150的流入交換模塊110-113的數(shù)據(jù)在此稱作入口數(shù)據(jù),其包括入口PDU。入口數(shù)據(jù)傳播所通過的交換模塊稱作入口交換模塊。相反,從架構(gòu)150流向外部端口102的數(shù)據(jù)稱作出口數(shù)據(jù),其包括出口PDU。出口數(shù)據(jù)傳播所通過的交換模塊稱作出口交換模塊。對于不同的流,優(yōu)選實施例的多個交換模塊中的每個交換模塊可以同時用作入口交換模塊和出口交換模塊。
企業(yè)交換機(jī)100還包括用于管理不同系統(tǒng)資源的中心命令處理器(CMM)120,管理不同系統(tǒng)資源包括下面將詳細(xì)討論的擁塞監(jiān)控和操作分配。在優(yōu)選實施例中,CMM120包含在多個交換模塊110-113中的一個交換模塊中,但是本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)意識到,CMM執(zhí)行的功能可以由合成在背板152上的一個或多個實體和/或一個單獨的管理模塊來執(zhí)行。
圖2中示出的是用于執(zhí)行PDU流的串行分布式處理的交換模塊的功能性框圖。和交換模塊110-113一樣,該優(yōu)選實施例的交換模塊200包括一個或多個網(wǎng)絡(luò)接口模塊(NIM)104、一個或多個網(wǎng)絡(luò)處理器106、一個管理模塊220以及一個架構(gòu)接口模塊208。為了接收入口數(shù)據(jù)業(yè)務(wù)和發(fā)送出口數(shù)據(jù)業(yè)務(wù),將每個NIM104可操作地連接到一個或多個外部端口102。NIM104優(yōu)選地包括適用于通過網(wǎng)絡(luò)通信鏈路(未示出)交換例如以太網(wǎng)幀之類的PDU的一個或多個物理接口和媒體訪問控制(MAC)接口。接收到入口PDU之后,通過一個或多個內(nèi)部高速串行數(shù)據(jù)總線206將其從多個NIM104傳送到網(wǎng)絡(luò)處理器106。網(wǎng)絡(luò)處理器106優(yōu)選地對入口PDU進(jìn)行分類,執(zhí)行分配為在入口處執(zhí)行的任意轉(zhuǎn)發(fā)操作,并且在入口隊列存儲器248中將這些PDU排成隊列,直到可獲得帶寬來通過交換架構(gòu)150將這些PDU發(fā)送到適當(dāng)?shù)囊粋€或多個出口刀片。
關(guān)于出口操作,交換模塊200還適用于接收來自交換架構(gòu)150的出口PDU,并且在出口隊列存儲器242中將這些PDU排成隊列。在將PDU提交給緩沖器250中的一個或多個隊列并將這些PDU發(fā)送到適當(dāng)?shù)腘IM104和相應(yīng)的出口端口102之前,出口處的交換模塊200的NP106可以執(zhí)行分配給它的一個或多個另外的轉(zhuǎn)發(fā)操作。緩沖器250中的多個隊列由統(tǒng)計管理器252進(jìn)行主動監(jiān)控,統(tǒng)計管理器252匯總擁塞信息254并通過管理模塊220將其發(fā)送到CMM120。擁塞信息254包括例如隊列深度,用于表現(xiàn)出口數(shù)據(jù)流的特征,評定模塊的擁塞狀態(tài),并在入口網(wǎng)絡(luò)處理器和出口網(wǎng)絡(luò)處理器之間分配數(shù)據(jù)包處理操作。
管理模塊220一般包括用于保持和實現(xiàn)業(yè)務(wù)策略的策略管理器222,這些業(yè)務(wù)策略由網(wǎng)絡(luò)管理員通過配置管理器224上傳到交換模塊200。由策略管理器222所產(chǎn)生的策略還部分地基于由源學(xué)習(xí)操作得出的層2和層3尋址信息,這些尋址信息將PDU地址信息與接收這些信息的外部端口102相關(guān)聯(lián)。如下面將更詳細(xì)描述的,管理模塊222還適用于將更新254從CMM發(fā)送到網(wǎng)絡(luò)處理器106,使得在發(fā)送PDU到一個或多個下游交換模塊之前,入口交換模塊200可以在入口處執(zhí)行一部分或全部數(shù)據(jù)包處理操作。更新254包括用于填充多種數(shù)據(jù)庫的數(shù)據(jù),這些數(shù)據(jù)庫支持下面將更詳細(xì)描述的串行分布式數(shù)據(jù)包處理操作。
該優(yōu)選實施例的NP106適用于利用OSI網(wǎng)絡(luò)參考模型中定義的與層2到層7相關(guān)聯(lián)的PDU特性來執(zhí)行層2的交換操作和層3的路由操作。NP106優(yōu)選地包括分類器230、串行分布式數(shù)據(jù)包處理(SDPP)控制器236以及隊列管理器240。分類器230從數(shù)據(jù)總線206接收入口PDU,檢查PDU的一個或多個感興趣的字段,將PDU歸類為多個流中的一個流,并從保存在高速本地存儲器232中的轉(zhuǎn)發(fā)表中檢索轉(zhuǎn)發(fā)信息。轉(zhuǎn)發(fā)信息優(yōu)選地包括但不限于流標(biāo)識符和出口端口標(biāo)識符,即將發(fā)送PDU的外部端口標(biāo)識符。
將分類器230檢索到的轉(zhuǎn)發(fā)信息發(fā)送到SDPP控制器236,其中將該轉(zhuǎn)發(fā)信息用于識別將在入口處執(zhí)行的第一組一個或多個SDPP操作。在此使用的SDPP操作指的是數(shù)據(jù)包處理操作或其他由于PDU、響應(yīng)PDU或便于PDU從交換設(shè)備100發(fā)送而執(zhí)行的轉(zhuǎn)發(fā)操作。入口交換模塊200或CMM120也可以識別將在出口交換模塊執(zhí)行的第二組SDPP操作。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)意識到,SDPP操作可以在入口交換模塊或出口交換模塊中執(zhí)行。下面將結(jié)合圖5更詳細(xì)地討論可能的SDPP服務(wù)的范圍。
一般來說,入口交換模塊200可以執(zhí)行所有的、某一些或不執(zhí)行入口交換模塊中的SDPP操作。在從交換設(shè)備100中發(fā)送PDU之前,在出口交換模塊中執(zhí)行用于PDU而又不在入口交換模塊200中執(zhí)行的任意SDPP操作。
應(yīng)用于入口的第一組一個或多個SDPP服務(wù)與將由出口交換模塊執(zhí)行的第二組SDPP服務(wù)之間的SDPP操作的分配可以在每個數(shù)據(jù)包和/或每個流的基礎(chǔ)上動態(tài)地確定。
在優(yōu)選實施例中,根據(jù)流ID以及入口交換模塊和出口交換模塊的擁塞狀態(tài)確定將要在入口處執(zhí)行的SDPP服務(wù)的分配。在有些實施例中,入口交換模塊和出口交換模塊的擁塞狀態(tài)由CMM120定期地進(jìn)行匯總并報告給每個交換模塊以便每個交換模塊可以動態(tài)地確定SDPP服務(wù)的最有利的分配方式。在其他實施例中,SDPP操作的最優(yōu)分配由CMM120確定,下載到多個交換模塊110-113中的每一個交換模塊,并結(jié)合下面將更詳細(xì)討論的各種共享數(shù)據(jù)庫以SDPP分配表238的形式保存在圖3所示的本地存儲器232中。
例如,該SDPP分配表238可以例如在每個流或每個數(shù)據(jù)包的基礎(chǔ)上為每對入口和出口交換模塊明確定義SDPP服務(wù)的分配??梢砸砸欢ǖ拈g隔每秒一次或多次對SDPP分配表進(jìn)行更新,以反映變化的業(yè)務(wù)模式和刀片間的負(fù)載不平衡。
在優(yōu)選實施例中,根據(jù)入口交換模塊和出口交換模塊的相對擁塞狀態(tài)在入口和出口之間分配SDPP服務(wù)。特別地,將SDPP分配設(shè)計為將處理負(fù)載從具有過度使用的NP的交換模塊轉(zhuǎn)移到具有未充分使用的NP的交換模塊。因此,SDPP服務(wù)分布的目標(biāo)是在整個交換設(shè)備100中均勻地分布處理資源的消耗,并由此使任何交換模塊由于超出限度的業(yè)務(wù)條件而丟失PDU的概率最小化。通過將處理負(fù)載的分布最優(yōu)化,交換設(shè)備100不必付出將所有交換模塊都過度工程化的代價,就可以適應(yīng)可能發(fā)生在某些端口處的不成比例的高業(yè)務(wù)條件,這些端口例如用戶所連接的端口或為因特網(wǎng)提供網(wǎng)關(guān)的端口。
圖4中示出的是優(yōu)選實施例的SDPP控制器的功能性框圖。SDPP控制器236包括包含在一個或多個硬件或軟件計算單元中的入口NP處理器410和出口處理器420、SDPP分配表238以及適用于執(zhí)行單個SDPP服務(wù)430的一個或多個模塊。入口NP處理器410適用于從分類器230接收入口PDU460和流標(biāo)識符462,并適用于向SDPP分配表238詢問可應(yīng)用于單個數(shù)據(jù)包或流的SDPP服務(wù)分配。在優(yōu)選實施例中,指定給入口交換模塊和出口交換模塊的SDPP服務(wù)分配由下面詳述的SDPP標(biāo)識符來表示。隨后,根據(jù)來自SDPP服務(wù)430的全部選擇的第一組SDPP服務(wù),在入口交換模塊200中處理PDU。
然后,將PDU464和SDPP標(biāo)識符466發(fā)送到出口交換模塊,以指示出口模塊執(zhí)行分配給出口交換模塊的第二組SDPP服務(wù)430。在優(yōu)選實施例中,在PDU或PDU描述符發(fā)送到交換架構(gòu)150之前,由操作SDPP標(biāo)記生成器412將SDPP標(biāo)識符466附加到PDU或PDU描述符上。在其他的實施例中,可以通過例如帶外通信信道來發(fā)送SDPPID。
在接收到PDU470或其描述符之后,在出口交換模塊中,出口交換模塊的出口處理器420除去SDPP標(biāo)識符472,SDPP標(biāo)記讀取器422通過查詢SDPP分配表238來確定由SDPP標(biāo)識符指定的SDPP服務(wù),并且出口交換模塊執(zhí)行第二組SDPP服務(wù)430,這組SDPP服務(wù)是完成向PDU476的最終目的地方向發(fā)送PDU476所必需的轉(zhuǎn)發(fā)操作所需的SDPP服務(wù)。
例如,在優(yōu)選實施例中,SDPP服務(wù)430的列表包括但不限于下列轉(zhuǎn)發(fā)操作報頭轉(zhuǎn)換、標(biāo)記推送、標(biāo)記彈出、服務(wù)質(zhì)量、計費和記賬,多協(xié)議標(biāo)簽交換(MPLS)管理、生成樹操作、認(rèn)證、訪問控制、高層學(xué)習(xí)、警報生成、端口鏡像、源學(xué)習(xí)、服務(wù)分類,以及色彩標(biāo)記,以及監(jiān)控(policing)和整形(shaping)。
報頭轉(zhuǎn)換服務(wù)431一般包括步驟(a)檢索PDU的下一跳地址,其指定了到最終目的地的路徑中的下一節(jié)點的物理地址;(b)用包括源地址和目的地地址的報頭來封裝PDU,其中源地址等于交換設(shè)備100或出口交換模塊的物理地址,目的地址等于到最終目的地的路徑上的下一跳的物理地址;以及(c)遞減例如IP包的生存時間計數(shù)器。例如,如果交換了在此包含的尋址信息或者由CMM120對表格進(jìn)行了有規(guī)律的同步,則可以從入口交換模塊或出口交換模塊的本地存儲器232(見圖3)的轉(zhuǎn)發(fā)表302中檢索下一跳的地址。
VLAN標(biāo)記推送服務(wù)432通常包括步驟(a)基于PDU特性來識別一個或多個VLAN標(biāo)識符(VID),這些特性包括例如PDU源MAC地址、目的地MAC地址、協(xié)議和入口端口等;以及(b)用一個或多個VLAN標(biāo)記來封裝PDU。例如,基于一個或多個PDU特性,可以從本地存儲器232(見圖3)中用于查找的VID的VLAN關(guān)聯(lián)表304中檢索到適當(dāng)?shù)臉?biāo)記。一旦例如由網(wǎng)絡(luò)管理員定義的VLAN關(guān)聯(lián)表304分布到交換機(jī)100的多個交換模塊110-113中的每個交換模塊或VLAN關(guān)聯(lián)表304在每個交換模塊之間取得同步,就可以在入口交換模塊或出口交換模塊中執(zhí)行VLAN標(biāo)記推送服務(wù)。
VLAN標(biāo)記彈出服務(wù)433包括步驟例如,如果交換機(jī)100是倒數(shù)第二跳,或者當(dāng)PDU從公網(wǎng)轉(zhuǎn)換到專用網(wǎng)的無標(biāo)記域(untaggeddomain)時,將一個或多個VLAN標(biāo)記從PDU上除去。如同上述VLAN標(biāo)記推送服務(wù)432,VLAN關(guān)聯(lián)表304中包含的VLAN彈出規(guī)則分布于多個交換模塊110-113之間或由多個交換模塊110-113共享。
服務(wù)質(zhì)量(QoS)操作434包括步驟采用例如資源保留協(xié)議(RSVP)之類的機(jī)制來保留包括例如存儲器和帶寬的網(wǎng)絡(luò)資源。QoS操作434還包括實現(xiàn)綜合服務(wù)(Integrated Service)或區(qū)分服務(wù)(Differentiated Service)或同時實現(xiàn)這兩種服務(wù)。關(guān)于區(qū)分服務(wù),可以在入口交換模塊或出口交換模塊中執(zhí)行各種操作,這些操作包括但不限于優(yōu)先權(quán)標(biāo)記、數(shù)據(jù)包監(jiān)控、排隊和調(diào)度。區(qū)分服務(wù)(DiffServ)的實現(xiàn)還可以包括識別與不同的流相關(guān)的服務(wù)分類和將這些流分配到專用于發(fā)送一個服務(wù)分類的業(yè)務(wù)的多個隧道中的一個隧道。當(dāng)PDU進(jìn)入隧道時,不同服務(wù)分類的隧道優(yōu)選地是與用于封裝PDU的不同IP報頭相關(guān)聯(lián)的MPLS隧道,其中PDU可以包括也可以不包括先前存在的IP報頭。在優(yōu)選實施例中,入口交換模塊和出口交換模塊都可以采用DiffServ模型中規(guī)定的過程來將PDU分配給多個MPLS隧道中的一個MPLS隧道,DiffServ模型包括在因特網(wǎng)工程任務(wù)組(IETF)的請求注釋(RFC)2474和RFC2475中提出的模型,在此引用這兩種模型作為參考。
計費和記賬服務(wù)435優(yōu)選地包括步驟(a)基于PDU特性來識別客戶業(yè)務(wù)數(shù)據(jù)流;(b)識別所提交的服務(wù)類型或特征;以及(c)在每客戶的基礎(chǔ)上和/或在每個流的基礎(chǔ)上產(chǎn)生基于這些服務(wù)的累積費用。例如,如果多個交換模塊之間定時地交換信息,或者多個交換模塊110-113的計費和記賬數(shù)據(jù)庫306由CMM120進(jìn)行同步,則可以由能夠訪問存儲器232(見圖3)中的本地計費和記賬數(shù)據(jù)庫306的入口交換模塊或出口交換模塊來執(zhí)行費用的識別和跟蹤。
MPLS管理服務(wù)436優(yōu)選地包括步驟(a)采用諸如與RSVP相關(guān)的協(xié)議、會話初始協(xié)議(SIP)或標(biāo)簽分布協(xié)議(LDP)之類的面向會話的協(xié)議來與相鄰的標(biāo)簽交換路由器(LSR)交換MPLS綁定信息;(b)確定是否將非MPLS數(shù)據(jù)包轉(zhuǎn)發(fā)到MPLS域中;(c)確定非MPLS PDU是否為轉(zhuǎn)發(fā)等效類(FEC)的成員;(d)將MPLS標(biāo)簽加在是FEC成員的PDU上;(e)確定交換模塊是否為來自MPLS域的PDU的倒數(shù)第二跳,并在必要時彈出MPLS標(biāo)簽;以及(f)將超過通信鏈路最大字節(jié)限制的MPLS數(shù)據(jù)包進(jìn)行分段。管理MPLS的實現(xiàn)所需的數(shù)據(jù)包括用于確定PDU是哪個FEC的成員的標(biāo)準(zhǔn)、所要應(yīng)用的可應(yīng)用標(biāo)簽和下一跳的地址,由CMM集中維護(hù),并分布到多個交換模塊以實現(xiàn)入口和出口的執(zhí)行。
生成樹服務(wù)437一般包括用于產(chǎn)生中斷會引起廣播風(fēng)暴的循環(huán)所需的生成樹的方法。關(guān)于網(wǎng)絡(luò),企業(yè)交換機(jī)100適用于與網(wǎng)絡(luò)中其他節(jié)點交換網(wǎng)橋協(xié)議數(shù)據(jù)單元(BPDU)。例如,企業(yè)交換機(jī)100使用BPDU來選出根橋(root bridge)并確定到該根橋的最短距離。對其他交換機(jī)的BPDU的響應(yīng)可能要求交換機(jī)100的交換模塊能夠訪問一個單獨的共享數(shù)據(jù)庫或維護(hù)共享生成樹數(shù)據(jù)庫308(圖3)的本地副本,生成樹數(shù)據(jù)庫308包括相鄰網(wǎng)橋和到達(dá)這些網(wǎng)橋的端口的列表。在優(yōu)選實施例中,生成樹由CMM120產(chǎn)生,并定期地下載到每個交換模塊110-113。
如果在不同的交換模塊或交換模塊的端口之間發(fā)送BPDU和廣播數(shù)據(jù)包會引起廣播風(fēng)暴,則優(yōu)選實施例中的每個交換模塊110-113還適用于防止這種發(fā)送。同樣,每個交換模塊110-113還實現(xiàn)生成樹協(xié)議的簡易版,用于識別哪個交換模塊在其廣播域內(nèi),并因此能夠接收所發(fā)送的數(shù)據(jù)包而不存在廣播風(fēng)暴。在識別廣播域內(nèi)的交換模塊后,交換模塊一般會復(fù)制BPDU并將其發(fā)送到每一個所識別的交換模塊。在優(yōu)選實施例中,如果出口交換模塊在同一個BPDU廣播域中,則重新產(chǎn)生BPDU并將這些BPDU發(fā)送到其他交換模塊的處理可以從入口交換模塊委托給出口交換。指示BPDU的重新產(chǎn)生應(yīng)當(dāng)發(fā)生的地點的重要因素是入口交換模塊和出口交換模塊中緩沖器空間的可用性。
認(rèn)證服務(wù)438包括用于確定哪個PDU將獲準(zhǔn)進(jìn)入并確定在獲準(zhǔn)進(jìn)入的基礎(chǔ)上所提供的訪問級別的過程。在優(yōu)選實施例中,每個交換模塊都適用于查詢訪問控制列表(ACL),該列表用于確定是要將所接收的PDU發(fā)送到其目的地地址還是要將其過濾掉。優(yōu)選實施例中的ACL基于一個或多個PDU特性來控制訪問,這些特性優(yōu)選地是包括源地址和目的地地址、廣播比特、協(xié)議類型的層2和層3的特性,以便防止利用例如RFC2402、RFC2463和RFC1826中所提出的包括認(rèn)證報頭的因特網(wǎng)控制消息協(xié)議(ICMP)消息和因特網(wǎng)群組管理協(xié)議(IGMP)數(shù)據(jù)包而進(jìn)行的拒絕服務(wù)攻擊。同上,每個交換模塊110-113都可以維護(hù)包括用戶MAC和/或IP地址、口令和相關(guān)聯(lián)的訪問權(quán)限的ACL310(圖3)。
訪問控制服務(wù)439包括認(rèn)證服務(wù)的第二種形式,其基于更高層的特性來控制訪問。在優(yōu)選實施例中,訪問控制服務(wù)439適于基于以下參數(shù)來授權(quán)或拒絕訪問(a)協(xié)議ID,從而使交換設(shè)備100可以阻止例如利用沒有認(rèn)證報頭的ICMP和IGMP數(shù)據(jù)包而進(jìn)行的拒絕服務(wù)攻擊;(b)協(xié)議所使用的端口號,這些協(xié)議例如包括文件傳輸協(xié)議(FTP)、普通文件傳輸協(xié)議(TFTP)、遠(yuǎn)程登錄(telnet)和即時信息;以及(c)用于過濾掉諸如對等文件交換之類的不期望的應(yīng)用的應(yīng)用報頭。在有些實施例中,訪問控制服務(wù)439用于補(bǔ)充認(rèn)證服務(wù)438,并且可以在已經(jīng)執(zhí)行了初始認(rèn)證服務(wù)438之后的任意時刻在入口交換模塊或出口交換模塊中執(zhí)行。
高層學(xué)習(xí)服務(wù)440包括步驟將在網(wǎng)絡(luò)接口處學(xué)習(xí)到的信息報告給與高層操作相關(guān)的交換設(shè)備100中的應(yīng)用。將通過例如地址解析協(xié)議(ARP)消息學(xué)習(xí)到的MAC地址報告給保存在本地存儲器232(圖3)中的ARP表312,并通過在多個交換模塊110-113之間或與CMM120交換數(shù)據(jù)來定期地更新這些MAC地址。
警報服務(wù)441指的是用于將確保引起例如CMM120或網(wǎng)絡(luò)管理員的注意的條件通報給交換機(jī)100上的應(yīng)用的系統(tǒng)范圍的檢查。例如,這些條件可以包括從多個端口上接收到具有相同源地址的PDU的情形。
端口鏡像服務(wù)442指的是用于例如復(fù)制在一個端口上接收到的PDU并由網(wǎng)絡(luò)管理員將這些PDU發(fā)送到指定端口上的業(yè)務(wù)分析工具的步驟。
源學(xué)習(xí)443一般是指下述處理(a)將PDU的源地址與接收PDU的入口端口相關(guān)聯(lián);(b)識別在不同端口上接收到具有相同源地址的PDU的情形;以及(c)確定是拒絕在一個端口上接收但先前在另一個端口上學(xué)習(xí)到的PDU,還是允許該PDU并簡單地認(rèn)為先前學(xué)習(xí)到的關(guān)聯(lián)已經(jīng)過期??梢栽诮粨Q模塊110-113之間定期地進(jìn)行交換由每個交換模塊110-113匯總的源學(xué)習(xí)表314(圖3),以為每個模塊提供對源學(xué)習(xí)端口關(guān)聯(lián)的訪問,而不管是在入口處還是在出口處執(zhí)行源學(xué)習(xí)服務(wù)443。
服務(wù)分類(CoS)444操作適于進(jìn)行步驟(a)在入口交換模塊或出口交換模塊中,基于一個或多個標(biāo)準(zhǔn),例如包括到達(dá)PDU的IEEE802.1p優(yōu)先權(quán)值的標(biāo)準(zhǔn),確定在另一個PDU更優(yōu)選時是否將一個PDU過濾掉;以及(b)在入口交換模塊或出口交換模塊中將一個或多個流的PDU進(jìn)行排隊,并且隨后根據(jù)流的服務(wù)分類需要采用調(diào)度器來釋放應(yīng)用級的流的PDU。用于識別和規(guī)定CoS的分類標(biāo)準(zhǔn)統(tǒng)稱為分類規(guī)則。在優(yōu)選實施例中,CMM維護(hù)全面的數(shù)據(jù)庫,其包括分類規(guī)則和定期地或在需要時散布到多個交換模塊110-113的可應(yīng)用分類數(shù)據(jù)。
色彩標(biāo)記445服務(wù)用于(a)在入口交換模塊或出口交換模塊中確定是讓PDU通過、過濾PDU還是用先前由網(wǎng)絡(luò)中的上游節(jié)點所應(yīng)用的三色標(biāo)記為PDU重新著色;(b)在入口交換模塊或出口交換模塊中,按照需要實現(xiàn)令牌桶算法(token bucket algorithm)用于將三色標(biāo)記附加到PDU上以幫助下游節(jié)點選擇性地過濾數(shù)據(jù)包。色彩標(biāo)記445服務(wù)包括當(dāng)前收錄于由Osama Aboul Magd所著的IETF出版物中的雙速率三色標(biāo)記(trTCM),并且包括收錄于Juha Heinanen草擬的IETF出版物中的單速率三色標(biāo)記(srTCM),在此引用這兩者作為參考。
圖5中示出的是用于在交換模塊間發(fā)送包數(shù)據(jù)的SDPP標(biāo)記的示意圖。在優(yōu)選實施例中,入口交換模塊200的SDPP標(biāo)記發(fā)生器412將SDPP標(biāo)記510附加到PDU500或PDU描述符上,出口交換模塊的SDPP標(biāo)記讀取器422讀取SDPP標(biāo)記510。優(yōu)選實施例中的SDPP標(biāo)記510包括SDPP標(biāo)識符(ID)512和操作碼502。
如上所述,將SDPP ID 512作為命令用于指示接收PDU的出口交換模塊為入口交換模塊執(zhí)行一個或多個轉(zhuǎn)發(fā)操作。換句話說,在優(yōu)選實施例中SDPP標(biāo)記提供一種信令機(jī)制,通過這種機(jī)制,入口處理器將一個或多個PDU轉(zhuǎn)發(fā)操作串行分布到出口處理器,從而減小了入口處理器所承受的處理負(fù)載。在優(yōu)選實施例中,在入口處從SDPP分配表238中檢索SDPP ID 512,但其也可以根據(jù)一個或多個處理模塊110-113中的處理負(fù)載動態(tài)地確定SDPP ID 512。
在有些實施例中,SDPP ID 512包括流ID504和源處理器ID506。流ID504唯一地定義一串具有相同SDPP服務(wù)處理需求的一個或多個PDU,而源處理器ID506表示接收PDU的入口交換模塊200的NP106。交換機(jī)100可以利用流ID504和源處理器ID506一起唯一地定義將應(yīng)用于相關(guān)聯(lián)的PDU500或為相關(guān)聯(lián)的PDU500而執(zhí)行的特定SDPP服務(wù)。
在有些實施例中,SDPP標(biāo)記510還包括操作碼,即操作碼502。在此使用的術(shù)語“操作碼”指的是使得將出口交換模塊配置為執(zhí)行由與該操作碼相關(guān)聯(lián)的一個或多個PDU流所指定的轉(zhuǎn)發(fā)操作。接收到操作碼之后,出口NP將一個或多個計算機(jī)可讀指令裝載到NP的芯片內(nèi)(on-chip)緩存(未示出)或其他本地存儲器232。由于大多數(shù)NP的片載緩存太小,不能保存處理交換機(jī)100可見的每個可能的流所需的計算機(jī)可讀指令,所以操作碼502只用來裝載為發(fā)送到特定出口NP的有限數(shù)目的流而執(zhí)行SDPP所需要的那些程序指令,這些流是交換機(jī)100所支持的流的子集。同樣,可以將不同的指令集上傳到不同交換模塊110-113的NP以使每個特定NP106的轉(zhuǎn)發(fā)操作最優(yōu)化。僅通過發(fā)布新的操作碼,還可以隨著業(yè)務(wù)變化隨意地更新單個NP106的指令集。
作為示例,操作碼可以由入口交換模塊給出,指示NP106對根據(jù)MPLS協(xié)議處理一個或多個流所必需的所有可執(zhí)行的代碼或算法進(jìn)行緩存。一旦對與特定操作碼502相關(guān)聯(lián)的這些可執(zhí)行代碼進(jìn)行了緩存,具有指定MPLS處理操作的流ID404的每個隨后的PDU就可以遵從相同的處理規(guī)則,直到接收到新的操作碼為止。
在有些實施例中,交換機(jī)100的交換模塊110-113適用于共同地處理成批的數(shù)據(jù)包,即與一個或多個PDU流相關(guān)聯(lián)的多個數(shù)據(jù)包。為執(zhí)行批處理,以多個相關(guān)數(shù)據(jù)包中的第一個數(shù)據(jù)包來發(fā)送包括操作碼502和SDPP ID 512的SDPP標(biāo)記。之后,應(yīng)用于相關(guān)數(shù)據(jù)包的SDPP標(biāo)記510只需要包括SDPP ID 512。然后,出口交換模塊就使多個PDU中的每一個都服從由其SDPP ID 510指定的處理規(guī)則和在多個PDU中的第一個PDU中指定的計算機(jī)可讀指令。以這種方式,免除了以多個PDU中的每一個PDU發(fā)送操作碼502的需要,并且減少了附加、發(fā)送和讀取操作碼502所需的資源。
在備選的實施例中,使用帶外通信信道(未示出)將SDPP ID 512和/或操作碼502從入口交換模塊發(fā)送到出口操作模塊。帶外通信信道對應(yīng)于例如總線之類的信令信道,不同于用來在交換模塊間發(fā)送PDU的數(shù)據(jù)信道。
圖6中示出的是入口交換模塊處理入口流的方法的流程圖。接收到入口PDU之后(步驟610),優(yōu)選實施例中的入口交換模塊對PDU進(jìn)行分類以識別其將發(fā)送到的出口交換模塊。獲悉出口交換模塊后,入口交換模塊就可以確定(步驟640)入口交換模塊和出口交換模塊上的相對需要以及負(fù)載平衡的需要。在有些實施例中,入口交換模塊所承受的PDU處理負(fù)載(步驟620)和出口交換模塊所承受的PDU處理負(fù)載(步驟630)可以由CMM120從模塊自身的擁塞狀態(tài)中得出。如果入口交換模塊的擁塞狀態(tài)相對于出口交換模塊是過度使用的,則肯定地應(yīng)答負(fù)載平衡變化查詢(測試步驟650),并且改變(步驟660)在入口和出口之間執(zhí)行的SDPP服務(wù)的分布以減少負(fù)載不平衡。例如,如果入口交換模塊相對超載,則與不平衡的程度成正比地提高整個SDPP服務(wù)中分配給出口交換模塊的百分比。在入口交換模塊嚴(yán)重超載的情況下,可以將全部SDPP服務(wù)都分配到出口交換模塊。如果入口交換模塊和出口交換模塊所承受的負(fù)載基本上相等,并且差異在預(yù)定的負(fù)載差異門限內(nèi),則否定地應(yīng)答負(fù)載平衡變化查詢,并且維護(hù)先前存在的SDPP服務(wù)分布。
在已經(jīng)確定了SDPP服務(wù)的分配之后,入口交換模塊執(zhí)行(步驟670)為入口指定的SDPP服務(wù)的子集。在SDPP標(biāo)記的一個或多個字段中指定出口處待執(zhí)行的其余SDPP服務(wù),SDPP標(biāo)記是在將PDU發(fā)送到(步驟690)出口交換模塊之前附加到(步驟680)PDU上的。例如,如果出口交換模塊由于其他業(yè)務(wù)條件而嚴(yán)重?fù)砣?,則入口交換模塊可以執(zhí)行PDU要求的全部SDPP服務(wù),并且附加到數(shù)據(jù)包上的SDPP ID為空值,表明出口交換模塊中沒有進(jìn)行任何SDPP處理。
圖7中示出的是出口交換模塊處理出口流的方法的流程圖。在從交換架構(gòu)150處接收到(步驟710)PDU之后,該模塊檢查PDU以確定SDPP標(biāo)記510是否存在,并且讀取其中包含的字段。如果SDPP標(biāo)記510存在,則肯定地應(yīng)答SDPP標(biāo)記查詢(步驟720),并且為了檢查而除去(步驟730)SDPP標(biāo)記。如果SDPP標(biāo)記包括操作碼502,則肯定地應(yīng)答操作碼查詢(步驟740),并且將由操作碼表示的計算機(jī)可讀指令載入(步驟750)出口網(wǎng)絡(luò)處理器中的緩存。如果SDPP標(biāo)記中沒有操作碼,則否定地應(yīng)答操作碼查詢,并且NP106根據(jù)由以前的同一批PDU的操作碼所指定的指令集來執(zhí)行由SDPP ID 512所標(biāo)識的第二組SDPP服務(wù)。然后,從出口交換模塊向PDU的目的地節(jié)點的方向發(fā)送(步驟770)根據(jù)SDPP服務(wù)需求而處理的PDU。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)意識到,在出口網(wǎng)絡(luò)處理器中處理的PDU經(jīng)歷了相同的數(shù)據(jù)包處理,并且表現(xiàn)為與單獨地在入口交換模塊或出口交換模塊中處理的PDU基本上相同。
盡管上述描述包含了許多特定內(nèi)容,但這些特定內(nèi)容不應(yīng)當(dāng)解釋為對本發(fā)明范圍的限制,而應(yīng)解釋為為本發(fā)明的一些優(yōu)選實施例提供說明。
因此,以上已經(jīng)以示例的方式并且非限制性地公開了本發(fā)明,并且應(yīng)當(dāng)參考以下權(quán)利要求以確定本發(fā)明的范圍。
權(quán)利要求
1.一種包括多個交換模塊的交換設(shè)備,每個交換模塊包括適用于接收協(xié)議數(shù)據(jù)單元(PDU)的至少一個外部端口;分類器,適用于識別應(yīng)用于所述PDU的一個或多個PDU處理操作;以及所述多個交換模塊中接收所轉(zhuǎn)發(fā)的數(shù)據(jù)包的第二交換模塊;以及控制器,適用于在第一組PDU處理操作與第二組PDU處理操作之間分配所述一個或多個PDU處理操作中的每個PDU處理操作;在從所述外部端口接收到所述PDU之后,執(zhí)行第一組PDU處理操作;以及發(fā)送執(zhí)行所述第二組PDU處理操作的命令到所述第二交換模塊。
2.根據(jù)權(quán)利要求1所述的交換設(shè)備,其中每個交換模塊還適用于響應(yīng)于來自多個交換模塊中的一個交換模塊的命令而執(zhí)行所述第二組PDU處理操作。
3.根據(jù)權(quán)利要求2所述的交換設(shè)備,其中每個交換模塊還適用于發(fā)送所述PDU到接收所述命令的交換模塊。
4.根據(jù)權(quán)利要求1所述的交換設(shè)備,其中所述PDU處理操作包括PDU轉(zhuǎn)發(fā)操作。
5.根據(jù)權(quán)利要求1所述的交換設(shè)備,其中所述PDU處理操作選自如下操作報頭轉(zhuǎn)換、標(biāo)記推送、標(biāo)記彈出、服務(wù)質(zhì)量、計費和記賬、多協(xié)議標(biāo)簽交換(MPLS)管理、生成樹操作、認(rèn)證、訪問控制、高層學(xué)習(xí)、警報生成、端口鏡像、源學(xué)習(xí)、服務(wù)分類、色彩標(biāo)記及其組合。
6.一種對包括第一交換模塊和第二交換模塊的交換設(shè)備中的協(xié)議數(shù)據(jù)單元(PDU)交換操作進(jìn)行分配的方法,所述方法包括步驟在所述第一交換模塊的外部端口接收PDU;識別應(yīng)用于所述PDU的一個或多個PDU處理操作;在第一組PDU處理操作與第二組PDU處理操作之間分配所述一個或多個PDU處理操作中的每個PDU處理操作;在所述第一交換模塊中執(zhí)行所述第一組PDU處理操作;以及發(fā)送命令到所述第二交換模塊以執(zhí)行所述第二組PDU處理操作。
7.根據(jù)權(quán)利要求6所述的方法,其中所述方法還包括步驟響應(yīng)于來自所述第一交換模塊的命令,在所述第二交換模塊中執(zhí)行所述第二組PDU處理操作。
8.根據(jù)權(quán)利要求6所述的方法,其中所述方法還包括步驟發(fā)送所述PDU到所述第二交換模塊。
9.根據(jù)權(quán)利要求6所述的方法,其中所述方法還包括步驟將包括標(biāo)識符的報頭附加到從所述第一交換模塊發(fā)送到所述第二交換模塊的所述PDU,所述標(biāo)識符表明所述一個或多個PDU處理操作在所述第一交換模塊與所述第二交換模塊之間的分配。
10.根據(jù)權(quán)利要求6所述的方法,其中所述方法還包括步驟從在所述第一交換模塊與所述第二交換模塊之間分配所述一個或多個PDU處理操作中的每個PDU處理操作的分配表中檢索所述標(biāo)識符。
全文摘要
本發(fā)明公開了一種用于在入口處理器與出口處理器之間動態(tài)地分布數(shù)據(jù)包處理操作以使負(fù)載平衡的數(shù)據(jù)通信交換機(jī)。在優(yōu)選實施例中,本發(fā)明的特征表現(xiàn)為一種包括多個交換模塊的交換設(shè)備,每個交換模塊包括數(shù)據(jù)包分類器,其用于識別將應(yīng)用于入口數(shù)據(jù)包的一個或多個數(shù)據(jù)包處理操作;以及控制器,其適用于在第一組數(shù)據(jù)包處理操作與第二組數(shù)據(jù)包處理操作之間分配所識別的一個或多個數(shù)據(jù)包處理操作中的每個數(shù)據(jù)包處理操作,在接收數(shù)據(jù)包的入口處理器中執(zhí)行第一組數(shù)據(jù)包處理操作,并發(fā)送指令到出口處理器以執(zhí)行第二組數(shù)據(jù)包處理操作。然后,出口處理器執(zhí)行第二組數(shù)據(jù)包處理操作,之后可以將數(shù)據(jù)包向其目的地節(jié)點發(fā)送。
文檔編號H04L29/06GK1777143SQ20051010955
公開日2006年5月24日 申請日期2005年10月25日 優(yōu)先權(quán)日2004年10月25日
發(fā)明者奇安·耶, 丹尼斯·韋弗 申請人:阿爾卡特公司