欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

管理網(wǎng)絡(luò)節(jié)點(diǎn)中的處理利用的制作方法

文檔序號(hào):7634039閱讀:134來(lái)源:國(guó)知局
專利名稱:管理網(wǎng)絡(luò)節(jié)點(diǎn)中的處理利用的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及基于分組的通信網(wǎng),尤其涉及用于管理諸如交換機(jī)或 路由器等網(wǎng)絡(luò)節(jié)點(diǎn)中的處理資源的利用(utilization)的技術(shù)。
背景技術(shù)
基于分組的網(wǎng)絡(luò)節(jié)點(diǎn)(例如交換機(jī)和路由器)產(chǎn)生轉(zhuǎn)發(fā)信息的數(shù) 據(jù)庫(kù),轉(zhuǎn)發(fā)信息用于轉(zhuǎn)發(fā)到來(lái)的分組業(yè)務(wù)量(traffic)。轉(zhuǎn)發(fā)信息通 過(guò)被中央處理器(CPU)所執(zhí)行的基于軟件的協(xié)議產(chǎn)生。為了提高交 換機(jī)和路由器的速度和吞吐量,轉(zhuǎn)發(fā)信息往往被編程為基于硬件的轉(zhuǎn) 發(fā)表。基于硬件的轉(zhuǎn)發(fā)表能被快速搜索來(lái)提供轉(zhuǎn)發(fā)決定,而無(wú)需使用 CPU的資源。當(dāng)基于硬件的轉(zhuǎn)發(fā)表中沒(méi)有所接收分組流的轉(zhuǎn)發(fā)信息時(shí), 流中的分組被發(fā)送到CPU進(jìn)行處理,直到能學(xué)習(xí)轉(zhuǎn)發(fā)信息并將轉(zhuǎn)發(fā)表 條目編程為基于硬件的轉(zhuǎn)發(fā)表為止。網(wǎng)絡(luò)節(jié)點(diǎn)的CPU的處理容量有限, 并且發(fā)送到CPU的分組越多,處理接收分組所消耗的有限處理容量就 越多。如果CPU的負(fù)載過(guò)大,則CPU的響應(yīng)時(shí)間將緩慢且可能丟失某 些分組。
許多最先進(jìn)的交換機(jī)和路由器利用了基于框架(chassis)的分布 式體系結(jié)構(gòu),其中分開(kāi)的線路卡專用于不同的功能。例如,控制模塊 線路卡專用于中央管理和控制操作,端口接口線路卡專用于發(fā)送和接 收網(wǎng)絡(luò)業(yè)務(wù)量以及執(zhí)行基于硬件的轉(zhuǎn)發(fā),而交換機(jī)架構(gòu)線路卡(switch fabric linecard )專用于提供不同線路卡之間的數(shù)據(jù)通路。在分布式體
系結(jié)構(gòu)中,控制模塊包括主CPU,該CPU負(fù)責(zé)產(chǎn)生和管理整個(gè)網(wǎng)絡(luò)節(jié)
點(diǎn)的轉(zhuǎn)發(fā)信息,并負(fù)責(zé)對(duì)端口接口的基于硬件的轉(zhuǎn)發(fā)表進(jìn)行編程???br> 制模塊的 一 系列廣泛的職責(zé)使得主CPU的有限處理容量成為很有價(jià)值
的資源。
鑒于以上所述,需要一種有效管理基于分組的網(wǎng)絡(luò)節(jié)點(diǎn)中的處理 資源的利用的技術(shù)。

發(fā)明內(nèi)容
一種管理處理資源的利用的技術(shù)包括在允許發(fā)送給CPU以用于 學(xué)習(xí)的分組到達(dá)CPU之前,先對(duì)所述分組進(jìn)行過(guò)濾。過(guò)濾包括確定 是否已允許相關(guān)分組到達(dá)CPU以用于學(xué)習(xí),并且利用關(guān)于相關(guān)分組的 知識(shí)來(lái)確定是否允許當(dāng)前分組到達(dá)該CPU。在一種實(shí)施方式中,通過(guò) 只允許每個(gè)流一個(gè)分組到達(dá)CPU以用于學(xué)習(xí)的方式來(lái)節(jié)約(conserve) CPU的處理資源。CPU利用該 一 個(gè)分組來(lái)產(chǎn)生必要的轉(zhuǎn)發(fā)信息和啟動(dòng) 對(duì)基于硬件的轉(zhuǎn)發(fā)表的編程,使得同 一流中的后續(xù)分組可從基于硬件 的轉(zhuǎn)發(fā)引擎直接轉(zhuǎn)發(fā)。由于只允許每個(gè)流一個(gè)分組到達(dá)CPU以用于學(xué) 習(xí),因此,不會(huì)因針對(duì)相同流的多個(gè)分組學(xué)習(xí)相同轉(zhuǎn)發(fā)信息而浪費(fèi)CPU 的處理資源。
本發(fā)明的其他方面和優(yōu)點(diǎn)可以從下列結(jié)合作為本發(fā)明原理的例 子所示的附圖所作的詳述中看到。


圖l描述了一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),它包括CPU、基于硬件的轉(zhuǎn)發(fā)表和學(xué) 習(xí)過(guò)濾器。
圖2描述了圖1中的學(xué)習(xí)過(guò)濾器的一種實(shí)施方式。 圖3描述了一種用于管理處理資源的利用的技術(shù)的處理流程圖。 圖4描述了具有分布式體系結(jié)構(gòu)的網(wǎng)絡(luò)節(jié)點(diǎn)的一種實(shí)施方式,該 體系結(jié)構(gòu)用來(lái)對(duì)所發(fā)送的用于學(xué)習(xí)的分組進(jìn)行過(guò)濾。
圖5描述了具有分布式體系結(jié)構(gòu)的網(wǎng)絡(luò)節(jié)點(diǎn)的另一種實(shí)施方式。
圖6描述了一種用于管理CPU的處理資源利用的方法的處理流程圖。
在整個(gè)描述中,類似的標(biāo)號(hào)可能用于標(biāo)識(shí)類似的要素。
具體實(shí)施例方式
圖1描述了一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)100,它包括中夬處理器(CPU) 102、 基于硬件的轉(zhuǎn)發(fā)引擎104和學(xué)習(xí)過(guò)濾器106。該網(wǎng)絡(luò)節(jié)點(diǎn)按離散段(通 常稱為數(shù)據(jù)報(bào))來(lái)處理業(yè)務(wù)量。在一種實(shí)施方式中,網(wǎng)絡(luò)節(jié)點(diǎn)是以太 網(wǎng)交換機(jī)/路由器,它利用第2層、第3層和/或第4層報(bào)頭信息來(lái)轉(zhuǎn)發(fā)網(wǎng) 絡(luò)節(jié)點(diǎn)中的業(yè)務(wù)量,其中"層,,是由國(guó)際標(biāo)準(zhǔn)化組織(ISO)在開(kāi)放系 統(tǒng)互連(OSI)中所定義的。網(wǎng)絡(luò)節(jié)點(diǎn)可以包括支持其他網(wǎng)絡(luò)協(xié)議(如 異步傳輸模式(ATM)、同步光纖網(wǎng)絡(luò)(SONET)和幀中繼)的端 口接口。盡管描述了基于以太網(wǎng)的交換機(jī)/路由器,然而,所公開(kāi)的技 術(shù)還可應(yīng)用于利用其他協(xié)議傳送業(yè)務(wù)量的網(wǎng)絡(luò)節(jié)點(diǎn)。
網(wǎng)絡(luò)節(jié)點(diǎn)100的CPU 102運(yùn)行操作系統(tǒng)并支持轉(zhuǎn)發(fā)網(wǎng)絡(luò)業(yè)務(wù)量所 需的軟件協(xié)議。CPU可以體現(xiàn)為多功能處理器和/或?qū)S锰幚砥?。處?器的例子包括IBM的PowerPC 系列處理器和Intel的x86系列處理器。 CPU可以運(yùn)行的操作系統(tǒng)的例子包括NetBSD、 Linux和vxWORKS。 盡管未示出,但CPU還可以由其他硬件(例如存儲(chǔ)器和專用集成電路 (ASIC))所支持。
在CPU 102所運(yùn)行的協(xié)議當(dāng)中有與產(chǎn)生轉(zhuǎn)發(fā)信息有關(guān)的協(xié)議。這 些協(xié)議(這里稱為基于軟件的學(xué)習(xí)協(xié)議110)包括第2層學(xué)習(xí)協(xié)議和第3 層學(xué)習(xí)協(xié)議。在圖l的實(shí)施方式中,用于交換業(yè)務(wù)量的第2層協(xié)議是以 太網(wǎng),而第2層學(xué)習(xí)包括使目的地媒體接入控制(MAC)地址與網(wǎng)絡(luò) 節(jié)點(diǎn)的輸出端口關(guān)聯(lián)。通過(guò)學(xué)習(xí)所接收分組的進(jìn)入端口 ( port of entry) 和源MAC地址,^_目的地MAC地址與網(wǎng)絡(luò)節(jié)點(diǎn)的輸出端口關(guān)聯(lián)。正 如本領(lǐng)域中眾所周知,可以通過(guò)如下方式學(xué)習(xí)目的地MAC地址的正確 輸出端口使具有要學(xué)習(xí)的目的地MAC地址的分組涌向所有相關(guān)的輸 出端口,然后查看接收對(duì)應(yīng)分組的端口。笫2層學(xué)習(xí)還可以包括使虛擬
局域網(wǎng)(VLAN)標(biāo)識(shí)符(ID)與目的地MAC地址和/輸出端口關(guān)聯(lián)。 在圖l的實(shí)施方式中,用于路由業(yè)務(wù)量的笫3層協(xié)議基于因特網(wǎng)協(xié) 議(IP)(包括IP和IPX),而第3層學(xué)習(xí)包括使目的地IP地址與下一 跳IP地址關(guān)聯(lián)。CPU102所運(yùn)行的公用第3層協(xié)議的例子包括開(kāi)放式最 短路徑優(yōu)先(OSPF)協(xié)議、邊界網(wǎng)關(guān)協(xié)議(BGP)、中間級(jí)系統(tǒng)到 中間級(jí)系統(tǒng)(ISIS)協(xié)議、多協(xié)議標(biāo)簽交換(MPLS)。
業(yè)務(wù)量通常在基于分組的網(wǎng)絡(luò)節(jié)點(diǎn)之間在相關(guān)分組的組中進(jìn)行 傳遞。相關(guān)分組的組常常稱為"流"。流的分組具有某些公用信息。例 如,公用笫2層信息可以包括目的地MAC地址、源MAC地址、VLAN ID 和/或進(jìn)入端口的任意組合。公用第3層信息可以包括目的地IP地址、 源IP地址、業(yè)務(wù)類型(TOS)、目的地端口號(hào)和/或源端口號(hào)的任意組 合。
圖1中的基于硬件的轉(zhuǎn)發(fā)引擎104負(fù)責(zé)對(duì)到來(lái)的業(yè)務(wù)量作出基于 硬件的轉(zhuǎn)發(fā)決定?;谟布霓D(zhuǎn)發(fā)引擎包括用轉(zhuǎn)發(fā)表?xiàng)l目編程的基于 硬件的轉(zhuǎn)發(fā)表112。轉(zhuǎn)發(fā)表?xiàng)l目使到來(lái)的分組信息與輸出信息關(guān)聯(lián)。正
如本領(lǐng)域中所知,基于硬件的轉(zhuǎn)發(fā)表通常用能夠#:快速訪問(wèn)和搜索的
隨機(jī)存取存儲(chǔ)器(RAM)和/或內(nèi)容可尋址存儲(chǔ)器(CAM)來(lái)實(shí)施。 如果各個(gè)基于硬件的轉(zhuǎn)發(fā)表包括與到來(lái)的分組對(duì),的轉(zhuǎn)發(fā)信息,則只
能對(duì)到來(lái)的分組進(jìn)行基于硬件的轉(zhuǎn)發(fā)決定。操作中,基于硬件的轉(zhuǎn)發(fā) 引擎將來(lái)自所接收分組的報(bào)頭信息與轉(zhuǎn)發(fā)表?xiàng)l目進(jìn)行比較以尋找表?xiàng)l 目匹配。如果基于硬件的轉(zhuǎn)發(fā)引擎不能對(duì)到來(lái)的分組進(jìn)行轉(zhuǎn)發(fā)決定, 則基于硬件的轉(zhuǎn)發(fā)表需要用與到來(lái)的分組對(duì)應(yīng)的轉(zhuǎn)發(fā)表?xiàng)l目來(lái)編程。 獲得轉(zhuǎn)發(fā)信息的過(guò)程在此稱為學(xué)習(xí)。在某些實(shí)施方式中,基于硬件的 轉(zhuǎn)發(fā)表可以包括與到來(lái)的分組對(duì)應(yīng)的轉(zhuǎn)發(fā)信息,盡管由于某種原因轉(zhuǎn) 發(fā)信息是不活動(dòng)的(例如無(wú)法用于進(jìn)行轉(zhuǎn)發(fā)決定)。當(dāng)轉(zhuǎn)發(fā)信息不活 動(dòng)時(shí),不能進(jìn)行轉(zhuǎn)發(fā)決定,因此將相關(guān)分組發(fā)送到CPU以用于學(xué)習(xí)。
由于業(yè)務(wù)量一般以分組流進(jìn)行傳送,因此,如果基于硬件的轉(zhuǎn)發(fā) 引擎104不能對(duì)到來(lái)的分組進(jìn)行轉(zhuǎn)發(fā)決定,那么將流的所有分組都發(fā)送 到用于轉(zhuǎn)發(fā)的CPU 102,直到CPU將轉(zhuǎn)發(fā)信息傳捧到基于硬件的轉(zhuǎn)發(fā)
引擎,并用必要的轉(zhuǎn)發(fā)信息對(duì)轉(zhuǎn)發(fā)表進(jìn)行編程。發(fā)送CPU進(jìn)行處理的
分組越多,處理的延時(shí)就可能越長(zhǎng)。如果處理延時(shí)過(guò)長(zhǎng),那么可能丟 失一些分組。處理的延時(shí)和丟失的分組對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)的性能有不利影響。
根據(jù)本發(fā)明的一種實(shí)施方式,在允許發(fā)送給CPU以用于學(xué)習(xí)的分 組到達(dá)CPU之前,先對(duì)所述分組進(jìn)行過(guò)濾。過(guò)濾包括確定是否已允 許相關(guān)分組到達(dá)CPU,并且利用關(guān)于相關(guān)分組的知識(shí)來(lái)確定是否應(yīng)當(dāng) 允許當(dāng)前分組到達(dá)該CPU。在一種實(shí)施方式中,通過(guò)只允許每個(gè)流一 個(gè)分組到達(dá)CPU以用于學(xué)習(xí)的方式來(lái)節(jié)約CPU的資源。CPU利用該一 個(gè)分組來(lái)產(chǎn)生必要的轉(zhuǎn)發(fā)信息并啟動(dòng)基于硬件的轉(zhuǎn)發(fā)表112的編程,使 得同一流中的后續(xù)分組可以從基于硬件的轉(zhuǎn)發(fā)引擎104直接轉(zhuǎn)發(fā)。由于 只允許每個(gè)流一個(gè)分組到達(dá)CPU以用于學(xué)習(xí),因此,不會(huì)因針對(duì)同一 流的多個(gè)分組學(xué)習(xí)同 一 轉(zhuǎn)發(fā)信息而浪費(fèi)C P U的處理資源。
在圖l的實(shí)施方式中,由學(xué)習(xí)過(guò)濾器106來(lái)執(zhí)行對(duì)發(fā)送到CPU102 以用于學(xué)習(xí)的分組的過(guò)濾。學(xué)習(xí)過(guò)濾器接收從基于硬件的轉(zhuǎn)發(fā)引擎104 發(fā)送到CPU以用于學(xué)習(xí)的所有分組,并確定允許哪些所接收分組到達(dá) 該CPU。作為過(guò)濾結(jié)果,只允許原來(lái)發(fā)送的分組的一個(gè)子集到達(dá)CPU。 學(xué)習(xí)過(guò)濾器可以采用多種技術(shù)來(lái)確定允許哪些所接收分組到達(dá)該 CPU。學(xué)習(xí)過(guò)濾器和過(guò)濾技術(shù)的一些例子如下所述。在圖l的實(shí)施方式 中,學(xué)習(xí)過(guò)濾器是一種位于CPU與基于硬件的轉(zhuǎn)發(fā)引擎之間的數(shù)據(jù)通 路中的ASIC芯片。
圖2描述了圖1中的學(xué)習(xí)過(guò)濾器106的一種實(shí)施方式。學(xué)習(xí)過(guò)濾器 包括散列器116、每個(gè)流(per-flow)狀態(tài)機(jī)118和輸出控制器120。學(xué) 習(xí)過(guò)濾器接收由基于硬件的轉(zhuǎn)發(fā)引擎104發(fā)送到CPU 102以用于學(xué)習(xí) 的分組。散列器從所接收分組中獲得報(bào)頭信息,并使某些報(bào)頭信息散 列以產(chǎn)生識(shí)別分組所屬的流的散列值。例如,第2層分組按目的地MAC 地址、源MAC地址、VLANID和/或進(jìn)入端口的組合進(jìn)行散列,而第3 層分組按目的地IP地址、源IP地址、TOS、目的地端口號(hào)和源端口號(hào) 進(jìn)行散列。盡管描述了散列字段的某些例子,然而,其他字段或字段 組合也是可能的。散列器所產(chǎn)生的散列值被提供給每個(gè)流狀態(tài)機(jī)。每
個(gè)流狀態(tài)機(jī)保持指示每個(gè)所識(shí)別流的狀態(tài)的狀態(tài)表122,其中每個(gè)流都 由散列值來(lái)識(shí)別。流的當(dāng)前狀態(tài)被提供給輸出控制器。輸出控制器根 據(jù)當(dāng)前狀態(tài)確定是否允許分組到達(dá)CPU。作為所進(jìn)行的過(guò)濾的結(jié)果, 只允許學(xué)習(xí)過(guò)濾器所接收的分組的一個(gè)子集到達(dá)CPU。
在圖2的實(shí)施方式中,每個(gè)流狀態(tài)機(jī)118保持每個(gè)流的兩個(gè)狀態(tài), 其中這兩個(gè)狀態(tài)被標(biāo)識(shí)為狀態(tài)l (Sl)和狀態(tài)2 (S2)。狀態(tài)l表示沒(méi) 有允許對(duì)應(yīng)流中的分組到達(dá)CPU 102,而狀態(tài)2表示已允許對(duì)應(yīng)流中的 分組到達(dá)CPU。在圖2的實(shí)施方式中,流的狀態(tài)最初置為狀態(tài)l,并且 當(dāng)狀態(tài)為狀態(tài)1時(shí)允許分組到達(dá)CPU。 一旦允許分組到達(dá)CPU,狀態(tài) 就變?yōu)闋顟B(tài)2。當(dāng)流的狀態(tài)置為狀態(tài)2時(shí),不允許來(lái)自流的更多分組到 達(dá)CPU??梢愿鶕?jù)預(yù)建立的算法將流的狀態(tài)重置為狀態(tài)l,以確保定期 更新流的轉(zhuǎn)發(fā)信息。例如,在轉(zhuǎn)發(fā)表用對(duì)應(yīng)的表?xiàng)l目編程后或者在某 一固定時(shí)間段后,狀態(tài)機(jī)可以被配置為重置到狀態(tài)l。圖2的學(xué)習(xí)過(guò)濾 器邏輯的結(jié)果是,只允許每個(gè)流一個(gè)分組到達(dá)CPU以進(jìn)行處理。這樣 可以大大減小CPU的負(fù)載而不禁止學(xué)習(xí)過(guò)程。盡管描述了學(xué)習(xí)過(guò)濾器 和過(guò)濾邏輯的一個(gè)例子,然而,還可以用其他過(guò)濾技術(shù)來(lái)減少允許到 達(dá)CPU以用于學(xué)習(xí)的分組的個(gè)數(shù)。
圖3描述了一種用于管理CPU的處理資源的利用的技術(shù)的處理流 程圖。在塊200中,在網(wǎng)絡(luò)節(jié)點(diǎn)接收分組。在判決點(diǎn)202,確定是否需 要學(xué)習(xí)。如果確定不需要學(xué)習(xí),那么在塊204中,基于硬件的轉(zhuǎn)發(fā)引擎 利用其基于硬件的轉(zhuǎn)發(fā)表中存在的轉(zhuǎn)發(fā)信息來(lái)轉(zhuǎn)發(fā)該分組。如果確定 需要學(xué)習(xí),那么在塊206中,識(shí)別該分組所屬的流。例如,通過(guò)使分組 報(bào)頭的某些字段散列來(lái)識(shí)別流。在流被識(shí)別后,在判決點(diǎn)208,確定來(lái) 自所識(shí)別流的分組是否已發(fā)送到CPU以用于學(xué)習(xí)。例如,查閱狀態(tài)機(jī) 來(lái)確定來(lái)自所識(shí)別流的分組是否已發(fā)送到CPU以用于學(xué)習(xí)。如果來(lái)自 所識(shí)別流的分組已發(fā)送到CPU以用于學(xué)習(xí),那么,不將當(dāng)前分組發(fā)送 到CPU以用于學(xué)習(xí)(塊210)。如果來(lái)自所識(shí)別流的分組尚未發(fā)送到 CPU以用于學(xué)習(xí),那么,將當(dāng)前分組發(fā)送到CPU以用于學(xué)習(xí)(塊212)。 針對(duì)在網(wǎng)絡(luò)節(jié)點(diǎn)接收到的每個(gè)分組,重復(fù)圖3的處理流程。圖4描述了具有分布式體系結(jié)構(gòu)的網(wǎng)絡(luò)節(jié)點(diǎn)130的一種實(shí)施方式, 該體系結(jié)構(gòu)用來(lái)對(duì)所發(fā)送的用于學(xué)習(xí)的分組進(jìn)行過(guò)濾。網(wǎng)絡(luò)節(jié)點(diǎn)的分 布式體系結(jié)構(gòu)包括控制模塊線路卡132、交換機(jī)架構(gòu)線路卡134和兩個(gè) 端口接口線路卡136 (端口接口A和B)。在圖4的實(shí)施方式中,單個(gè)學(xué) 習(xí)過(guò)濾器106位于控制模塊,用于對(duì)從所有端口接口接收的分組進(jìn)行過(guò) 濾。圖4中所描述的學(xué)習(xí)過(guò)濾器執(zhí)行與以上參照?qǐng)Dl和2所述的學(xué)習(xí)過(guò)濾 器相同的過(guò)濾功能。
控制模塊132包括CPU 102 (標(biāo)識(shí)為"主CPU")和學(xué)習(xí)過(guò)濾器106。 通常,控制模塊支持不同的功能,例如網(wǎng)絡(luò)管理功能和協(xié)議實(shí)現(xiàn)功能。 盡管未示出,但控制模塊還包括存儲(chǔ)器,例如用于存儲(chǔ)操作碼的電可 擦除可編程只讀存儲(chǔ)器(EEPROM)或快閃ROM以及用于緩沖業(yè)務(wù) 量和存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)(如轉(zhuǎn)發(fā)信息)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。 此外,控制模塊上還可以有一個(gè)以上的離散處理器單元和一個(gè)以上的 存儲(chǔ)器單元。主CPU可以包括如上所述的多功能處理器和/或?qū)S锰幚?器。主CPU支持基于軟件的學(xué)習(xí),如基于軟件的學(xué)習(xí)協(xié)議功能塊IIO 所示?;谲浖膶W(xué)習(xí)包括產(chǎn)生本領(lǐng)域中已知的第2層和第3層轉(zhuǎn)發(fā)信 息。
交換機(jī)架構(gòu)134在控制模塊132與端口接口 136之間提供數(shù)據(jù)通路 (例如,控制模塊與端口接口之間的數(shù)據(jù)通路,以及端口接口之間的 數(shù)據(jù)通路)。交換機(jī)架構(gòu)可以使用例如共享存儲(chǔ)器、共享總線或交叉 點(diǎn)矩陣(crosspoint matrix )。
端口接口136包括端口摔口CPU138、基于硬件的轉(zhuǎn)發(fā)引擎104和 輸入/輸出端口140。通常,由端口接口所執(zhí)行的功能包括接收進(jìn)入網(wǎng) 絡(luò)節(jié)點(diǎn)的業(yè)務(wù)量、緩沖業(yè)務(wù)量、存儲(chǔ)轉(zhuǎn)發(fā)信息、協(xié)議處理、進(jìn)行轉(zhuǎn)發(fā) 決策和從網(wǎng)絡(luò)節(jié)點(diǎn)130發(fā)出業(yè)務(wù)量。在圖4的實(shí)施方式中,每個(gè)端口接 口的端口接口 CPU運(yùn)行其各自的操作系統(tǒng)。每個(gè)端口接口線路卡內(nèi)的 端口接口CPU可以包括多功能處理器(例如IBM PowerPC③處理器) 和/或?qū)S锰幚砥鳌2僮鞔a一般存儲(chǔ)在諸如EEPROM或快閃ROM等非 易失性存儲(chǔ)器中(未示出),而業(yè)務(wù)量一般緩存在諸如RAM等易失性
存儲(chǔ)器中(未示出)。
圖4中所描述的基于硬件的轉(zhuǎn)發(fā)引擎104執(zhí)行與參照?qǐng)D1所述的基 于硬件的轉(zhuǎn)發(fā)引擎相同的功能。由基于硬件的轉(zhuǎn)發(fā)引擎所執(zhí)行的一個(gè) 任務(wù)是,確定是否需要學(xué)習(xí)到來(lái)的分組以便可以直接由基于硬件的轉(zhuǎn) 發(fā)引擎進(jìn)行轉(zhuǎn)發(fā)決定。需要學(xué)習(xí)的分組通過(guò)交換機(jī)架構(gòu)134發(fā)送到控制 模塊132。
在操作中,端口接口136的基于硬件的轉(zhuǎn)發(fā)引擎104確定接收的分 組是否需要學(xué)習(xí)。如果接收的分組需要學(xué)習(xí),那么將這些分組通過(guò)交 換機(jī)架構(gòu)134發(fā)送到控制模塊132。在控制模塊中,這些分組首先由學(xué) 習(xí)過(guò)濾器106進(jìn)行處理。學(xué)習(xí)過(guò)濾器起到確定分組是否到達(dá)主CPU 102 以用于學(xué)習(xí)的網(wǎng)關(guān)的作用。由于學(xué)習(xí)過(guò)濾器位于控制模塊上,因此, 它可以接收來(lái)自所有不同端口接口的分組,從而起到中央過(guò)濾點(diǎn)的作 用。這使得所有過(guò)濾都可以用單個(gè)學(xué)習(xí)過(guò)濾器ASIC來(lái)完成。此外,這 還使得無(wú)需對(duì)主CPU或基于硬件的轉(zhuǎn)發(fā)引擎作出改變來(lái)完成過(guò)濾。
圖5描述了具有分布式體系結(jié)構(gòu)的網(wǎng)絡(luò)節(jié)點(diǎn)150的另一種實(shí)施方 式。除了在每個(gè)端口接口136中以分布方式執(zhí)行的過(guò)濾功能之外,圖5 的實(shí)施方式類似于圖4的實(shí)施方式。具體地說(shuō),每個(gè)端口接口包括接口 特定的學(xué)習(xí)過(guò)濾器106A和106B,它們只對(duì)來(lái)自其對(duì)應(yīng)端口接口的分組 進(jìn)行過(guò)濾。接口特定的學(xué)習(xí)過(guò)濾器執(zhí)行與參照?qǐng)Dl和2所述的學(xué)習(xí)過(guò)濾 器相同的基本功能。通過(guò)過(guò)濾的分組從各自端口接口通過(guò)交換機(jī)架構(gòu) 發(fā)送到控制模塊132的主CPU 102。
圖6描述了一種用于管理CPU的處理資源的利用的方法的處理流 程圖。在塊220中,接收分組。在塊222中,確定與分組相關(guān)的轉(zhuǎn)發(fā)信 息是否需要被學(xué)習(xí)以便轉(zhuǎn)發(fā)該分組。在塊224中,如果需要學(xué)習(xí),那么 決定是否使該分組接受學(xué)習(xí)。這一決定基于任何其他相關(guān)分組是否已 接受學(xué)習(xí)。
在這里所述的實(shí)施方式中,只將通過(guò)過(guò)濾的分組發(fā)送到CPU 102 進(jìn)行處理。在另一種實(shí)施方式中,過(guò)濾功能可以并入到CPU中,這樣 所發(fā)送的用于學(xué)習(xí)的所有分組都被CPU所接收,但只使所選的分組接
受學(xué)習(xí)處理。
盡管在一種實(shí)施方式中只允許每個(gè)流一個(gè)分組到達(dá)CPU102,然 而,在其他實(shí)施方式中,從初始發(fā)送到CPU以用于學(xué)習(xí)的流的分組總 數(shù)中減少被允許到達(dá)CPU的分組個(gè)數(shù)。
在一種實(shí)施方式中,在網(wǎng)絡(luò)節(jié)點(diǎn)中發(fā)送分組可以包括只發(fā)送該分 組的報(bào)頭信息。例如,將分組發(fā)送到CPU以用于學(xué)習(xí)可以包括只將該 分組的報(bào)頭信息發(fā)送到CPU。
此外,盡管在一種實(shí)施方式中允許流中的第 一分組到達(dá)CUP以用
于學(xué)習(xí),然而,在其他實(shí)施方式中,還可以允許除第一分組外的分組
到達(dá)CPU。
盡管描述和舉例說(shuō)明了本發(fā)明的具體實(shí)施方式
,然而,本發(fā)明并 不局限于這里所描述和舉例說(shuō)明的部件的具體形式或配置。本發(fā)明僅 限于權(quán)利要求書(shū)。
權(quán)利要求
1.一種用于管理基于分組的網(wǎng)絡(luò)節(jié)點(diǎn)中的處理資源利用的方法,包括接收分組;確定與分組相關(guān)的轉(zhuǎn)發(fā)信息是否需要被學(xué)習(xí)以便轉(zhuǎn)發(fā)該分組;如果需要學(xué)習(xí),則根據(jù)任何其他相關(guān)分組是否已接受學(xué)習(xí)來(lái)決定是否使該分組接受學(xué)習(xí)。
2. 權(quán)利要求l的方法,其中確定與分組相關(guān)的轉(zhuǎn)發(fā)信息是否需要 被學(xué)習(xí)包括將分組的報(bào)頭信息與基于硬件的轉(zhuǎn)發(fā)表中的條目進(jìn)行比 較以便找到匹配。
3. 權(quán)利要求2的方法,其中如果在報(bào)頭信息與基于硬件的轉(zhuǎn)發(fā)表 中的條目的比較中沒(méi)有找到匹配,則需要學(xué)習(xí)。
4. 權(quán)利要求l的方法,其中決定是否使該分組接受學(xué)習(xí)包括識(shí) 別該分組所屬的流,并確定來(lái)自相同流的分組是否已接受學(xué)習(xí)。
5. 權(quán)利要求4的方法,還包括只有當(dāng)確定來(lái)自相同流的分組尚 未接受學(xué)習(xí)時(shí)才使該分組接受學(xué)習(xí)。
6. 權(quán)利要求4的方法,其中識(shí)別該分組所屬的流包括對(duì)該分組 的報(bào)頭信息進(jìn)行散列以產(chǎn)生散列值,并且其中確定來(lái)自相同流的分組 是否已接受學(xué)習(xí)包括利用散列值對(duì)狀態(tài)表進(jìn)行索引以獲得狀態(tài)信息。
7. 權(quán)利要求6的方法,其中狀態(tài)信息指示來(lái)自流的分組是否已接 受學(xué)習(xí)。
8. 權(quán)利要求l的方法,還包括如果確定分組應(yīng)接受學(xué)習(xí),則將 分組發(fā)送到中央處理器(CPU)以進(jìn)行處理。
9. 一種用于管理基于分組的網(wǎng)絡(luò)節(jié)點(diǎn)中的處理資源利用的系 統(tǒng),包括中央處理器(CPU),被配置為學(xué)習(xí)用于轉(zhuǎn)發(fā)分組的轉(zhuǎn)發(fā)信息; 基于硬件的轉(zhuǎn)發(fā)引擎,被配置為確定是否應(yīng)將分組發(fā)送到CPU以 用于學(xué)習(xí);和 學(xué)習(xí)過(guò)濾器,被配置為接收來(lái)自基于硬件的轉(zhuǎn)發(fā)引擎的被基于硬 件的轉(zhuǎn)發(fā)引擎確定為需要學(xué)習(xí)的分組,并根據(jù)是否已允許任何其他相關(guān)分組到達(dá)CPU來(lái)決定是否允許所接收分組到達(dá)CPU。
10. 權(quán)利要求9的系統(tǒng),其中基于硬件的轉(zhuǎn)發(fā)引擎包括可用轉(zhuǎn)發(fā) 表?xiàng)l目編程的基于硬件的轉(zhuǎn)發(fā)表;并且其中當(dāng)基于硬件的轉(zhuǎn)發(fā)引擎不 包括與接收的分組對(duì)應(yīng)的轉(zhuǎn)發(fā)信息時(shí),基于硬件的轉(zhuǎn)發(fā)引擎被配置為 將分組發(fā)送到CPU以用于學(xué)習(xí)。
11. 權(quán)利要求9的系統(tǒng),其中相關(guān)分組是來(lái)自相同分組流的分組, 并且其中學(xué)習(xí)過(guò)濾器包括被配置為識(shí)別分組所屬的流的散列器和用于指示來(lái)自所識(shí)別流的分組是否已發(fā)送到CPIJ的狀態(tài)表,其中散列器產(chǎn) 生識(shí)別流的散列值并且其中散列值用來(lái)對(duì)狀態(tài)表進(jìn)行索引。
12. 權(quán)利要求9的系統(tǒng),其中學(xué)習(xí)過(guò)濾器被配置為允許來(lái)自流的 數(shù)量減少的分組到達(dá)CPU。
13. 權(quán)利要求9的系統(tǒng),其中CPU和學(xué)習(xí)過(guò)濾器位于控制模塊線 路卡上,而基于硬件的轉(zhuǎn)發(fā)引擎位于端口接口線路卡上,該系統(tǒng)還包 括多個(gè)端口接口線路卡,每個(gè)端口接口線路卡具有基于硬件的轉(zhuǎn)發(fā)引 擎,其中學(xué)習(xí)過(guò)濾器被配置為接收來(lái)自每個(gè)端口接口線路卡的分組。
14. 權(quán)利要求9的系統(tǒng),其中CPU位于控制模塊線路卡上,而學(xué) 習(xí)過(guò)濾器與基于硬件的轉(zhuǎn)發(fā)引擎一起位于端口接口線路卡上,該網(wǎng)絡(luò) 節(jié)點(diǎn)還包括多個(gè)端口接口線路卡,每個(gè)端口接口線路卡包括學(xué)習(xí)過(guò)濾 器。
15. —種用于管理基于分組的網(wǎng)絡(luò)節(jié)點(diǎn)中的處理資源利用的方 法,包括接收分組;將分組發(fā)送到中央處理器(CPU)以用于學(xué)習(xí); 在分組到達(dá)CPU之前CPU。
16. 權(quán)利要求15的方法,其中確定是否已允許相關(guān)分組到達(dá)CPU 以用于學(xué)習(xí)包括識(shí)別該分組與之相關(guān)的流。
17. 權(quán)利要求16的方法,還包括確定是否允許來(lái)自相同流的分 組到達(dá)CPU。
18. 權(quán)利要求17的方法,還包括只有當(dāng)尚未允許來(lái)自相同流的 另 一 分組到達(dá)CPU以用于學(xué)習(xí)時(shí),才允許接收的分組到達(dá)CPU以用于 學(xué)習(xí)。
19. 權(quán)利要求17的方法,還包括允許來(lái)自相同流的數(shù)量減少的 分組到達(dá)CPU以用于學(xué)習(xí)。
20. 權(quán)利要求15的方法,其中確定是否已允許相關(guān)分組到達(dá)CPU 以用于學(xué)習(xí)包括對(duì)接收的分組的報(bào)頭信息進(jìn)行散列以產(chǎn)生散列值, 并利用散列值對(duì)狀態(tài)表進(jìn)行索引,其中狀態(tài)表包括指示是否已允許相 關(guān)分組到達(dá)CPU的狀態(tài)信息。
全文摘要
一種管理處理資源的利用的技術(shù)包括在允許發(fā)送給CPU以用于學(xué)習(xí)的分組到達(dá)CPU之前,先對(duì)所述分組進(jìn)行過(guò)濾。過(guò)濾包括確定是否已允許相關(guān)分組到達(dá)CPU以用于學(xué)習(xí),并利用關(guān)于相關(guān)分組的知識(shí)來(lái)確定是否應(yīng)允許當(dāng)前分組到達(dá)該CPU。在一種實(shí)施方式中,通過(guò)只允許每個(gè)流一個(gè)分組到達(dá)CPU以用于學(xué)習(xí)的方式來(lái)節(jié)約CPU的處理資源。CPU利用該一個(gè)分組來(lái)產(chǎn)生必要的轉(zhuǎn)發(fā)信息和啟動(dòng)對(duì)基于硬件的轉(zhuǎn)發(fā)表的編程,使得來(lái)自相同流的后續(xù)分組可以從基于硬件的轉(zhuǎn)發(fā)引擎直接轉(zhuǎn)發(fā)。
文檔編號(hào)H04L12/56GK101351995SQ200580006487
公開(kāi)日2009年1月21日 申請(qǐng)日期2005年1月14日 優(yōu)先權(quán)日2004年1月14日
發(fā)明者桑德普·洛哈, 瑟爾魯馬爾帕斯·巴拉克瑞沙恩 申請(qǐng)人:利福斯通網(wǎng)絡(luò)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
盐边县| 万山特区| 白玉县| 秦皇岛市| 前郭尔| 澳门| 潜江市| 元江| 如皋市| 惠水县| 乌兰察布市| 武汉市| 嘉峪关市| 洪洞县| 宁陵县| 绍兴县| 榆中县| 大田县| 丰宁| 潞城市| 石阡县| 焉耆| 墨玉县| 女性| 于田县| 永宁县| 厦门市| 陆丰市| 新营市| 阜新| 嵊泗县| 洛南县| 麻阳| 襄汾县| 襄城县| 逊克县| 青浦区| 宝清县| 汤阴县| 邹城市| 新蔡县|