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

經(jīng)由分組中繼使網(wǎng)絡(luò)功能外部化的系統(tǒng)和方法與流程

文檔序號(hào):12182676閱讀:208來源:國知局
經(jīng)由分組中繼使網(wǎng)絡(luò)功能外部化的系統(tǒng)和方法與流程

通常,通信網(wǎng)絡(luò)包括多個(gè)網(wǎng)絡(luò)設(shè)備,諸如路由器、交換機(jī)、網(wǎng)絡(luò)地址轉(zhuǎn)換盒、防火墻、負(fù)載均衡器等。網(wǎng)絡(luò)功能虛擬化(NFV)是指一種將網(wǎng)絡(luò)節(jié)點(diǎn)功能虛擬化為可以連接或鏈接的構(gòu)建塊以創(chuàng)建通信服務(wù)的網(wǎng)絡(luò)架構(gòu)結(jié)構(gòu)。



技術(shù)實(shí)現(xiàn)要素:

本公開的一方面涉及一種使網(wǎng)絡(luò)功能外部化(externalizing)的網(wǎng)絡(luò)系統(tǒng),該網(wǎng)絡(luò)系統(tǒng)包括網(wǎng)絡(luò)交換機(jī)和分組處理器。所述網(wǎng)絡(luò)交換機(jī)被配置成經(jīng)由第一網(wǎng)絡(luò)接口接收分組,所述分組被指向目的地節(jié)點(diǎn)而不是所述網(wǎng)絡(luò)交換機(jī)。所述網(wǎng)絡(luò)交換機(jī)還被配置成經(jīng)由第二網(wǎng)絡(luò)接口,通過在網(wǎng)絡(luò)交換機(jī)和分組處理器之間的直接物理鏈路,將所接收到的分組轉(zhuǎn)發(fā)至分組處理器以用于處理。所述分組與在分組處理器上執(zhí)行的虛擬化網(wǎng)絡(luò)功能的標(biāo)識(shí)符一起轉(zhuǎn)發(fā),并且,所述分組的目的地MAC地址不同于分組處理器的MAC地址。所述網(wǎng)絡(luò)交換機(jī)進(jìn)一步被配置成從所述分組處理器接收經(jīng)處理的分組,并且,通過第三網(wǎng)絡(luò)接口,將所述經(jīng)處理的分組轉(zhuǎn)發(fā)至所述目的地節(jié)點(diǎn)。所述分組處理器被配置成從所述網(wǎng)絡(luò)交換機(jī)接收所述分組。所述分組處理器還被配置成基于所述分組包括的標(biāo)識(shí)符,將所接收到的分組路由至虛擬化網(wǎng)絡(luò)功能模塊以用于處理。所述分組處理器還被配置成將所述經(jīng)處理的分組發(fā)送回所述網(wǎng)絡(luò)交換機(jī)。

本公開的另一方面涉及一種網(wǎng)絡(luò)交換機(jī)。所述網(wǎng)絡(luò)交換機(jī)包括處理器和存儲(chǔ)計(jì)算機(jī)可讀指令的有形計(jì)算機(jī)可讀介質(zhì)。所述計(jì)算機(jī)可執(zhí)行指令在由所述處理器執(zhí)行時(shí)致使所述處理器:經(jīng)由第一網(wǎng)絡(luò)接口接收分組,所述分組被指向目的地節(jié)點(diǎn)而不是所述網(wǎng)絡(luò)交換機(jī)。所述計(jì)算機(jī)可執(zhí)行指令還致使處理器:對(duì)所述分組的報(bào)頭內(nèi)的字段進(jìn)行修改,以包括在所述分組處理上執(zhí)行的虛擬化網(wǎng)絡(luò)功能的標(biāo)識(shí)符,并且經(jīng)由第二網(wǎng)絡(luò)接口,通過在所述網(wǎng)絡(luò)交換機(jī)和分組處理器之間的直接物理鏈路,將所接收到的具有經(jīng)修改的報(bào)頭的分組轉(zhuǎn)發(fā)至分組處理器。所述網(wǎng)絡(luò)交換機(jī)將與所述分組處理器的MAC地址不同的目的地MAC地址與分組一起轉(zhuǎn)發(fā)至分組處理器。所述計(jì)算機(jī)可讀指令還致使所述處理器:在所述分組已經(jīng)被所識(shí)別到的虛擬化網(wǎng)絡(luò)功能處理后,從所述分組處理器接收所述分組,并且,通過第三網(wǎng)絡(luò)接口將經(jīng)處理的分組轉(zhuǎn)發(fā)至目的地節(jié)點(diǎn)。

本公開的再一方面涉及一種分組處理器。該分組處理器包括處理器和存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的有形計(jì)算機(jī)可讀介質(zhì)。所述計(jì)算機(jī)可執(zhí)行指令在由所述處理器執(zhí)行時(shí),致使所述處理器:通過在網(wǎng)絡(luò)交換機(jī)和所述分組處理器之間的直接物理鏈路,從所述網(wǎng)絡(luò)交換機(jī)接收分組。所接收到的分組包括在分組處理器上執(zhí)行的要對(duì)所述分組執(zhí)行的虛擬化網(wǎng)絡(luò)功能的標(biāo)識(shí)符,并且其中,所接收到的分組的MAC地址不同于所述分組處理器的MAC地址。所述計(jì)算機(jī)可讀指令還致使所述處理器:基于所述標(biāo)識(shí)符,將所接收到的所述分組路由至網(wǎng)絡(luò)功能模塊,使用所述網(wǎng)絡(luò)功能模塊對(duì)所述分組進(jìn)行處理,并且,通過直接物理鏈路,將經(jīng)處理的分組發(fā)送回所述網(wǎng)絡(luò)交換機(jī)。

附圖說明

技術(shù)人員將理解,本文中所描述的附圖僅出于圖示目的。要理解,在一些實(shí)例中,為了方便理解本文中所描述的實(shí)現(xiàn)方式,可以將所描述的實(shí)現(xiàn)方式的各個(gè)方面按照夸大或放大的方式顯示。在附圖中,貫穿各個(gè)附圖,類似的附圖標(biāo)記通常指代類似的特征、在功能上相似的元件和/或在結(jié)構(gòu)上相似的元件。這些附圖并未按比例繪制,而是重點(diǎn)放在圖示本教導(dǎo)的原理上。附圖不旨在以任何方式限制本教導(dǎo)的范圍。通過以下圖示性的描述并且參照以下附圖可更好地了解該系統(tǒng)和方法,在附圖中:

圖1是網(wǎng)絡(luò)系統(tǒng)的示意圖。

圖2是圖1所示的網(wǎng)絡(luò)交換機(jī)和分組處理器的框圖。

圖3是圖1所圖示的用于使用該系統(tǒng)使網(wǎng)絡(luò)功能外部化的示例方法的流程圖。

圖4是用于使用圖1所圖示的系統(tǒng)使網(wǎng)絡(luò)功能外部化的示例方法的流程圖。

圖5A至圖5D示出了當(dāng)根據(jù)圖3和圖4所示的方法的一種示例實(shí)現(xiàn)方式通過圖1和圖2所示的網(wǎng)絡(luò)交換機(jī)和分組處理器來處理分組報(bào)頭時(shí)分組報(bào)頭的狀態(tài)。

圖6A至圖6D示出了其中可以包括在分組處理器上執(zhí)行的虛擬化網(wǎng)絡(luò)功能的標(biāo)識(shí)符的各個(gè)分組報(bào)頭字段的位置。

圖7是適合在所描述的各種實(shí)現(xiàn)方式中使用的計(jì)算系統(tǒng)的框圖。

為了清楚起見,并未在每個(gè)附圖中標(biāo)注每一個(gè)組件。附圖并不旨在按比例繪制。在各個(gè)附圖中,類似的附圖編號(hào)和標(biāo)號(hào)表示類似的元件。

具體實(shí)現(xiàn)方式

以上所介紹并且下面將詳細(xì)討論的各種概念可以按照眾多方式中的任何方式來實(shí)現(xiàn),這是因?yàn)樗枋龅母拍畈幌抻谌魏尉唧w形式的實(shí)現(xiàn)方式。提供特定實(shí)現(xiàn)方式和應(yīng)用的示例主要是為了進(jìn)行說明。

本文中提到的系統(tǒng)和方法提供了使網(wǎng)絡(luò)功能外部化的機(jī)制。在網(wǎng)絡(luò)交換機(jī)和分組處理器之間建立直接鏈路。在一些實(shí)現(xiàn)方式中,發(fā)送至或來自網(wǎng)絡(luò)交換機(jī)和分組處理器的分組包括標(biāo)識(shí)符,所述標(biāo)識(shí)符識(shí)別要由分組處理器處理的網(wǎng)絡(luò)功能或者已經(jīng)由分組處理器處理的網(wǎng)絡(luò)功能。

圖1是網(wǎng)絡(luò)系統(tǒng)100的示意圖。使網(wǎng)絡(luò)功能外部化的網(wǎng)絡(luò)系統(tǒng)100包括網(wǎng)絡(luò)交換機(jī)102和分組處理器104,該分組處理器104經(jīng)由直接鏈路106直接連接至網(wǎng)絡(luò)交換機(jī)102。直接鏈路106可以是,例如,直接的以太網(wǎng)或光纜。

在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)交換機(jī)102是多端口網(wǎng)絡(luò)橋接器,該多端口網(wǎng)絡(luò)橋接器使用硬件地址來在開放系統(tǒng)互連(OSI)模型的數(shù)據(jù)鏈路層(層2)上處理并且轉(zhuǎn)發(fā)數(shù)據(jù)。例如,網(wǎng)絡(luò)交換機(jī)102可以是具有5、8、10、24或48個(gè)端口的以太網(wǎng)交換機(jī)(也稱為網(wǎng)絡(luò)接口)。網(wǎng)絡(luò)交換機(jī)102還可以是具有多于50個(gè)端口的高吞吐量交換機(jī)。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)交換機(jī)102可以是具有網(wǎng)絡(luò)層(層3)路由和交換能力的路由器,或是4-7層交換機(jī)。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)交換機(jī)102可用作指向企業(yè)網(wǎng)絡(luò)或數(shù)據(jù)中心的網(wǎng)關(guān)。

網(wǎng)絡(luò)交換機(jī)102連接至其它網(wǎng)絡(luò)設(shè)備,包括進(jìn)一步連接至計(jì)算機(jī)114、116、118、120、124和126的其它網(wǎng)絡(luò)交換機(jī)108和110。網(wǎng)絡(luò)交換機(jī)102還連接至互聯(lián)網(wǎng)112和分組處理器104。網(wǎng)絡(luò)交換機(jī)102處理并且轉(zhuǎn)發(fā)從網(wǎng)絡(luò)交換機(jī)108和110、以及從例如互聯(lián)網(wǎng)112接收到的數(shù)據(jù)。在一些其它實(shí)現(xiàn)方式中,網(wǎng)絡(luò)交換機(jī)不連接至互聯(lián)網(wǎng)112,相反,網(wǎng)絡(luò)交換機(jī)位于在局域網(wǎng)與網(wǎng)絡(luò)之間的網(wǎng)關(guān)上,或位于在期望實(shí)現(xiàn)網(wǎng)絡(luò)功能虛擬化的網(wǎng)絡(luò)內(nèi)的任何其它位置處。為了說明目的,網(wǎng)絡(luò)交換機(jī)102包括編號(hào)為1到52的52個(gè)端口。如圖1所示,網(wǎng)絡(luò)交換機(jī)102通過端口1連接至交換機(jī)108、通過端口2連接至交換機(jī)110、通過端口49連接至互聯(lián)網(wǎng)112、且通過端口52連接至分組處理器104。在一些實(shí)現(xiàn)方式中,實(shí)現(xiàn)與分組處理器連接的端口是專用控制平面端口,諸如,OpenFlow或OpenFlow兼容端口。

網(wǎng)絡(luò)交換機(jī)102還包括交換機(jī)處理器130。該交換機(jī)處理器130執(zhí)行路由、轉(zhuǎn)發(fā)、和網(wǎng)絡(luò)功能外部化功能,如下面進(jìn)一步所示。

當(dāng)網(wǎng)絡(luò)交換機(jī)102接收到分組時(shí),在將該分組路由至網(wǎng)絡(luò)路徑上的下一個(gè)節(jié)點(diǎn)之前,交換機(jī)處理器130使網(wǎng)絡(luò)交換機(jī)102將該分組轉(zhuǎn)發(fā)至分組處理器104以進(jìn)行外部化網(wǎng)絡(luò)功能的處理。

在網(wǎng)絡(luò)功能外部化過程的簡要綜述中,在從網(wǎng)絡(luò)內(nèi)的設(shè)備接收到針對(duì)網(wǎng)絡(luò)外的目的地節(jié)點(diǎn)(例如,跨互聯(lián)網(wǎng)112)的分組后,交換機(jī)(諸如,交換機(jī)108)將該分組轉(zhuǎn)發(fā)至網(wǎng)絡(luò)交換機(jī)102,該網(wǎng)絡(luò)交換機(jī)102是網(wǎng)絡(luò)路徑上的下一跳。網(wǎng)絡(luò)交換機(jī)102接收來自交換機(jī)108的分組。交換機(jī)處理器130對(duì)分組進(jìn)行檢查以確定在將分組轉(zhuǎn)發(fā)至下一跳之前是否需要對(duì)該分組執(zhí)行任何網(wǎng)絡(luò)功能。如果識(shí)別到這種網(wǎng)絡(luò)功能,則利用在分組處理器104上的對(duì)應(yīng)虛擬化網(wǎng)絡(luò)功能模塊的標(biāo)識(shí)符來標(biāo)記該分組,并且將分組經(jīng)由直接鏈路106轉(zhuǎn)發(fā)至分組處理器104。分組處理器104基于標(biāo)識(shí)符對(duì)分組進(jìn)行處理,利用指示已經(jīng)對(duì)該分組執(zhí)行了特定網(wǎng)絡(luò)功能的另一標(biāo)識(shí)符來標(biāo)記該分組,并且將經(jīng)處理的分組發(fā)送回網(wǎng)絡(luò)交換機(jī)102。網(wǎng)絡(luò)交換機(jī)102接收經(jīng)處理的分組,并且將經(jīng)處理的分組傳送至網(wǎng)絡(luò)路徑上的下一節(jié)點(diǎn)。

在一些實(shí)現(xiàn)方式中,分組處理器104可以是執(zhí)行存儲(chǔ)在有形計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)可執(zhí)行指令的通用處理器。例如,分組處理器104可以實(shí)現(xiàn)在類似于圖7所示的架構(gòu)中。在一些實(shí)現(xiàn)方式中,計(jì)算機(jī)服務(wù)器托管分組處理器104。在一些實(shí)現(xiàn)方式中,交換機(jī)處理器130可以是專用電路或者可以包括專用電路,諸如專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)。

圖2是圖1所示的網(wǎng)絡(luò)交換機(jī)102和分組處理器104的框圖。如上所述,網(wǎng)絡(luò)交換機(jī)102具有多個(gè)端口,通過該多個(gè)端口來傳送分組。網(wǎng)絡(luò)交換機(jī)102包括交換機(jī)處理器130,該交換機(jī)處理器130包括路由模塊212、轉(zhuǎn)發(fā)模塊215、功能外部化模塊214。在一些配置為用于軟件定義網(wǎng)絡(luò)(SDN)的實(shí)現(xiàn)方式中,交換機(jī)處理器130可以省略路由模塊214,相反,依靠包括在中央SDN處理器中的相似模塊來遠(yuǎn)程地實(shí)現(xiàn)路由模塊214的功能。這種集中式SDN處理器然后可以,例如,通過提供類似于以下討論的轉(zhuǎn)發(fā)表來通過控制平面或數(shù)據(jù)平面連接對(duì)網(wǎng)絡(luò)交換機(jī)進(jìn)行配置。

在一些實(shí)現(xiàn)方式中,路由模塊212生成并且維護(hù)路由規(guī)則集合。例如,路由模塊生成并且維護(hù)路由信息庫(RIB)。該路由信息庫存儲(chǔ)反映網(wǎng)絡(luò)(或其部分)的拓?fù)涞臄?shù)據(jù)。路由模塊212進(jìn)一步配置成基于所存儲(chǔ)的拓?fù)湫畔泶_定至網(wǎng)絡(luò)內(nèi)的其它節(jié)點(diǎn)的路線?;谒_定的路線,路由模塊212可以配置被配置成填入轉(zhuǎn)發(fā)表以供轉(zhuǎn)發(fā)模塊215使用。轉(zhuǎn)發(fā)表存儲(chǔ)映射分組目的地IP地址、地址范圍、或者至下一跳節(jié)點(diǎn)的流標(biāo)識(shí)數(shù)據(jù)的信息、節(jié)點(diǎn)的MAC地址、和網(wǎng)絡(luò)交換機(jī)102上的端口(經(jīng)由該端口可以到達(dá)下一跳節(jié)點(diǎn))。在一些實(shí)現(xiàn)方式中,轉(zhuǎn)發(fā)表可以進(jìn)一步存儲(chǔ)在將與各種流相關(guān)聯(lián)或者發(fā)往各個(gè)IP地址的分組轉(zhuǎn)發(fā)至下一跳之前要應(yīng)用于該分組的網(wǎng)絡(luò)功能列表。在其它的實(shí)現(xiàn)方式中,要應(yīng)用于分組的網(wǎng)絡(luò)功能列表可以與其它分組信息相關(guān)聯(lián),包括且不限于路由信息或4層分組數(shù)據(jù)。在一些其它實(shí)現(xiàn)方式中,要應(yīng)用的網(wǎng)絡(luò)功能列表可以存儲(chǔ)在與轉(zhuǎn)發(fā)表不同的數(shù)據(jù)結(jié)構(gòu)中。

轉(zhuǎn)發(fā)模塊215被配置成應(yīng)用包括在由路由模塊212填入的轉(zhuǎn)發(fā)表中的轉(zhuǎn)發(fā)指令。例如,當(dāng)在網(wǎng)絡(luò)交換機(jī)102處接收到分組后,轉(zhuǎn)發(fā)模塊215可以提取目的地IP地址(或者包括多個(gè)數(shù)據(jù)字段值的數(shù)據(jù)元組,諸如源IP地址和目的地IP地址以及端口號(hào),或者用于識(shí)別流的其它數(shù)據(jù)字段),并且對(duì)轉(zhuǎn)發(fā)表執(zhí)行查找。如果轉(zhuǎn)發(fā)表指示在轉(zhuǎn)發(fā)分組之前將一個(gè)或多個(gè)網(wǎng)絡(luò)功能應(yīng)用至該分組,則轉(zhuǎn)發(fā)模塊將該分組傳遞至指示要執(zhí)行的功能的功能外部化模塊214。如果不需要由任何網(wǎng)絡(luò)功能對(duì)分組進(jìn)行處理,或者如果這種處理已經(jīng)完成,則轉(zhuǎn)發(fā)模塊215更新分組報(bào)頭的目的地MAC地址以匹配下一跳節(jié)點(diǎn)的MAC地址,并且通過在轉(zhuǎn)發(fā)表中識(shí)別到的端口轉(zhuǎn)發(fā)分組。

功能外部化模塊214實(shí)現(xiàn)將分組轉(zhuǎn)發(fā)至分組處理器并且管理使網(wǎng)絡(luò)功能外部化的工作流的邏輯。例如,功能外部化模塊214存儲(chǔ)專用于與(一個(gè)或多個(gè))分組處理器通信的一個(gè)或多個(gè)端口的(一個(gè)或多個(gè))標(biāo)識(shí)符。功能外部化模塊214也維護(hù)功能表,該功能表列舉了由(一個(gè)或多個(gè))分組處理器處理的特定網(wǎng)絡(luò)功能。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)交換機(jī)102具有專用于分組處理器104的單個(gè)端口。例如,如圖2所圖示,端口52專用于分組處理器104。專用的端口可以是普通的數(shù)據(jù)平面端口,或者可以是專門的控制平面端口。通過端口52對(duì)需要網(wǎng)絡(luò)功能處理的任何分組進(jìn)行路由,以將分組轉(zhuǎn)發(fā)至分組處理器204。在一些其它實(shí)現(xiàn)方式中,網(wǎng)絡(luò)交換機(jī)102連接至多個(gè)網(wǎng)絡(luò)功能處理服務(wù)器內(nèi)的多于一個(gè)的分組處理器。在這種實(shí)現(xiàn)方式中,網(wǎng)絡(luò)交換機(jī)102可具有多個(gè)端口,多個(gè)端口中的每個(gè)端口專用于特定的分組處理器。在其它實(shí)現(xiàn)方式中,可以經(jīng)由網(wǎng)絡(luò)交換機(jī)102上的單個(gè)端口到達(dá)多個(gè)網(wǎng)絡(luò)功能處理服務(wù)器。對(duì)于多個(gè)網(wǎng)絡(luò)功能處理服務(wù)器而言,在一些實(shí)現(xiàn)方式中,每個(gè)服務(wù)器專用于網(wǎng)絡(luò)功能的子集。例如,第一服務(wù)器可以專用于加密IP分組的網(wǎng)絡(luò)功能,而另一服務(wù)器可以專用于網(wǎng)絡(luò)地址轉(zhuǎn)換的網(wǎng)絡(luò)功能。在其它實(shí)現(xiàn)方式中,每個(gè)服務(wù)器對(duì)相同的網(wǎng)絡(luò)功能進(jìn)行處理,并且,根據(jù)本領(lǐng)域的普通技術(shù)人員已知的眾多負(fù)載均衡技術(shù)中的一種負(fù)載均衡技術(shù),將分組轉(zhuǎn)發(fā)至一個(gè)或另一個(gè)服務(wù)器。

功能外部化模塊214可以進(jìn)一步被配置成控制將外部化網(wǎng)絡(luò)功能應(yīng)用于分組的順序。例如,在從具有要應(yīng)用于分組的網(wǎng)絡(luò)功能集合的轉(zhuǎn)發(fā)模塊215接收到分組后,功能外部化模塊214被配置成每次執(zhí)行一個(gè)功能,對(duì)分組報(bào)頭進(jìn)行修改以識(shí)別要應(yīng)用至分組的下一個(gè)功能、將分組轉(zhuǎn)發(fā)至分組處理器104進(jìn)行處理、并且等待接收從分組處理器104返回的分組。如果完成了所有的處理,則功能外部化模塊將分組返回至轉(zhuǎn)發(fā)模塊215。如果需要進(jìn)一步處理,則功能外部化模塊214再次對(duì)分組報(bào)頭進(jìn)行修改,并且將分組返回至分組處理器104。在一些其它實(shí)現(xiàn)方式中,在接收到分組后,功能外部化模塊214對(duì)報(bào)頭進(jìn)行修改以在其返回分組之前識(shí)別要由分組處理器104執(zhí)行的多個(gè)功能。例如,分組處理器104可以將MPLS標(biāo)簽棧添加至分組報(bào)頭。每個(gè)MPLS標(biāo)簽識(shí)別要由分組處理器104執(zhí)行的不同功能。在這種實(shí)現(xiàn)方式中,在完成所有識(shí)別到的處理后,分組處理器104將分組返回至網(wǎng)絡(luò)交換機(jī)102。

在所有這種網(wǎng)絡(luò)功能之中,為每種要執(zhí)行的網(wǎng)絡(luò)功能分配唯一標(biāo)識(shí)符。同樣,在所有這種網(wǎng)絡(luò)功能輸出之中,為每種網(wǎng)絡(luò)功能的輸出分配唯一標(biāo)識(shí)符。同樣,在對(duì)分組報(bào)頭進(jìn)行修改時(shí),功能外部化模塊214可以將要執(zhí)行的功能的標(biāo)識(shí)添加至分組報(bào)頭。當(dāng)完成處理時(shí),分組處理器104可以用指示該功能已經(jīng)被成功完成的標(biāo)識(shí)符來替代要執(zhí)行的功能的標(biāo)識(shí)符?;谏鲜龅臉?biāo)識(shí)符機(jī)制,直接鏈路106可以攜帶多個(gè)分組,并且分組處理器104可以處理多個(gè)網(wǎng)絡(luò)功能。

標(biāo)識(shí)符(諸如,如上所述的標(biāo)識(shí)符),可以包括在已經(jīng)包括在層2分組或?qū)?分組中的各種字段中,所述字段包括MAC地址字段(例如,目的地MAC地址字段或源MAC地址字段)、VLAN標(biāo)記字段、通用路由封裝(GRE)報(bào)頭字段、多協(xié)議標(biāo)簽交換(MPLS)報(bào)頭字段(或在MPLS標(biāo)簽中)等。將關(guān)于圖6A至圖6D進(jìn)一步詳細(xì)描述使用各種字段進(jìn)行的分組標(biāo)記。在一些實(shí)現(xiàn)方式中,利用多于一個(gè)的標(biāo)識(shí)符來標(biāo)記分組,指示要執(zhí)行多于一個(gè)的網(wǎng)絡(luò)功能或者已經(jīng)執(zhí)行了多于一個(gè)的網(wǎng)絡(luò)功能。在將專用控制平面端口(諸如,OpenFlow端口)用作在網(wǎng)絡(luò)交換機(jī)102與分組處理器104之間的直接物理連接的實(shí)現(xiàn)方式中,可以將標(biāo)識(shí)符置于上述的分組報(bào)頭字段中的任何分組報(bào)頭字段中,而將分組封裝在諸如OpenFlow PacketIn或PacketOut消息的控制平面分組內(nèi)。在一些實(shí)現(xiàn)方式中,對(duì)于轉(zhuǎn)發(fā)至分組處理器104的分組而言,相反或者另外地,標(biāo)識(shí)符可以連同封裝一起被包括在諸如OenFlow PacketIn消息中的“cookie”字段中。

在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)功能是單向的。即,僅需要在分組從外地網(wǎng)絡(luò)(諸如,互聯(lián)網(wǎng))進(jìn)入網(wǎng)絡(luò)時(shí)執(zhí)行該功能,而不是在分組離開網(wǎng)絡(luò)時(shí)執(zhí)行該功能,反之亦然。這種網(wǎng)絡(luò)功能的示例是訪問控制列表(ACL)功能。ACL功能通過將分組中的信息與訪問控制列表(諸如源IP地址的黑名單、或者報(bào)頭元組)進(jìn)行比較來過濾掉分組以實(shí)施安全策略,例如,過濾掉已知的來自詐騙IP地址的分組或具有與惡意行為相關(guān)聯(lián)的分組相關(guān)聯(lián)的已知簽名的分組。在一些其它實(shí)現(xiàn)方式中,ACL功能還可以應(yīng)用于離開網(wǎng)絡(luò)的分組,例如,通過阻擋源于某些所識(shí)別的設(shè)備的IP地址的分組來防止敏感信息在未經(jīng)授權(quán)的情況下泄漏。

在其它實(shí)現(xiàn)方式中,網(wǎng)絡(luò)功能成對(duì)出現(xiàn)。例如,網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)有兩種功能,即NAT和DE-NAT。NAT將源于網(wǎng)絡(luò)內(nèi)的分組中的私有源標(biāo)識(shí)符信息(諸如內(nèi)部源IP地址和/或端口號(hào))轉(zhuǎn)換為公共源標(biāo)識(shí)符信息(諸如外部源IP地址和/或端口信息)以通過外部網(wǎng)絡(luò)傳送分組。DE-NAT的功能與此相反。DE-NAT將從網(wǎng)絡(luò)外接收到的分組中的目的地信息轉(zhuǎn)換成在網(wǎng)絡(luò)內(nèi)使用的目的地的對(duì)應(yīng)私有目的地信息。為了適應(yīng)網(wǎng)絡(luò)功能的該二元性,在一些實(shí)現(xiàn)方式中,可以將雙向網(wǎng)絡(luò)功能與四個(gè)標(biāo)識(shí)符相關(guān)聯(lián):LOCAL_To_Be_Processed標(biāo)識(shí)符、REMOTE_To_Be_Processed標(biāo)識(shí)符、LOCAL_Processed標(biāo)識(shí)符、以及REMOTE_Processed標(biāo)識(shí)符。

在一些實(shí)現(xiàn)方式中,每種功能僅與單個(gè)標(biāo)識(shí)符相關(guān)聯(lián),并且將LOCAL vs.REMOTE以及To_Be_Processed和Processed的區(qū)別表示在被添加至所指定的數(shù)據(jù)字段中的分組報(bào)頭或者附在功能標(biāo)識(shí)符結(jié)尾處的相應(yīng)的1比特中。同樣,如果分組處理器104可以攜帶例如八種不同的功能,則可以僅用五比特來捕獲該功能連同其對(duì)應(yīng)的LOCAL vs.REMOTE以及To_Be_Processed和Processed。在一些其它實(shí)現(xiàn)方式中,分組的狀態(tài)(To_Be_Processed或者_(dá)Processed)可從分組流動(dòng)的方向推斷出。例如,假設(shè)已經(jīng)對(duì)從網(wǎng)絡(luò)處理器104接收到的分組進(jìn)行了處理,并且假設(shè)需要對(duì)從網(wǎng)絡(luò)交換機(jī)102接收到的分組進(jìn)行處理,則不需要第二。在這種實(shí)現(xiàn)方式中,在能夠處理八種網(wǎng)絡(luò)功能的分組處理器的上述例示例中,可以僅用四比特來捕獲要應(yīng)用至分組的功能和分組狀態(tài)。如果分組處理器104執(zhí)行更少的功能則可以使用更少的比特?cái)?shù),并且如果執(zhí)行更多的功能則可以使用更多的比特?cái)?shù)。

LOCAL標(biāo)簽和REMOTE標(biāo)簽可通過指示分組的源或目的地來識(shí)別要執(zhí)行的功能的特定版本。例如,在一些實(shí)現(xiàn)方式中,LOCAL標(biāo)簽可以指示分組源于網(wǎng)絡(luò)內(nèi)。因此,相對(duì)于NAT功能而言,LOCAL標(biāo)簽指示要執(zhí)行的NAT功能為NAT。與之相反,REMOTE標(biāo)簽指示分組源于網(wǎng)絡(luò)外。因此,相對(duì)于NAT功能而言,REMOTE標(biāo)簽指示要執(zhí)行的功能為DE-NAT。

仍然參照?qǐng)D2,分組處理器104包括內(nèi)核交換機(jī)202和各種網(wǎng)絡(luò)功能處理模塊2041至204n(統(tǒng)稱為“功能模塊204”)。內(nèi)核交換機(jī)202是在分組處理器104的操作系統(tǒng)的內(nèi)核內(nèi)執(zhí)行的交換過程。在一些實(shí)現(xiàn)方式中,每個(gè)功能模塊204被實(shí)現(xiàn)為單獨(dú)的虛擬機(jī)器,并且,內(nèi)核交換機(jī)202被實(shí)現(xiàn)在也在分組處理器104上運(yùn)行的管理程序中。

當(dāng)分組處理器104從網(wǎng)絡(luò)交換機(jī)102接收到分組時(shí),將該分組存儲(chǔ)在分組處理器104的存儲(chǔ)器中的緩沖區(qū)中。內(nèi)核交換機(jī)202依次對(duì)緩沖區(qū)中的每個(gè)分組進(jìn)行處理。在對(duì)分組進(jìn)行處理時(shí),內(nèi)核交換機(jī)202對(duì)分組報(bào)頭進(jìn)行分析以識(shí)別添加至分組的標(biāo)識(shí)符。在一些實(shí)現(xiàn)方式中,內(nèi)核交換機(jī)維護(hù)查找表或者具有對(duì)查找表的訪問權(quán)限,查找表將標(biāo)識(shí)符與其對(duì)應(yīng)的功能模塊204相關(guān)聯(lián)。如果分組包括To_Be_Processed標(biāo)識(shí)符(或者,如果設(shè)置有To_Be_Processed),則內(nèi)核交換機(jī)202將分組存儲(chǔ)在與適當(dāng)?shù)墓δ苣K204相關(guān)聯(lián)的緩沖區(qū)中。在虛擬機(jī)器實(shí)現(xiàn)方式中,將分組傳遞至對(duì)應(yīng)的虛擬機(jī)器。如果分組包括Processed標(biāo)識(shí)符(或者,未設(shè)置To_Be_Processed),則內(nèi)核交換機(jī)202使分組處理器104通過直接鏈路106將分組轉(zhuǎn)發(fā)回網(wǎng)絡(luò)交換機(jī)102。在一些實(shí)現(xiàn)方式中,每一個(gè)網(wǎng)絡(luò)功能的LOCAL和REMOTE版本(在適用的情況下)由相同的功能模塊204(或者虛擬機(jī)器)執(zhí)行。在這種情況下,要按照網(wǎng)絡(luò)功能的任何版本處理的所有分組都存儲(chǔ)在相同的緩沖區(qū)中(或者傳遞至相同的虛擬機(jī)器)。在一些實(shí)現(xiàn)方式中,每一個(gè)網(wǎng)絡(luò)功能的LOCAL和REMOTE版本(如果適用的話)都實(shí)現(xiàn)為具有單獨(dú)的相關(guān)聯(lián)的緩沖區(qū)(和存儲(chǔ)器空間)的單獨(dú)的功能模塊204(或者虛擬機(jī)器)。緩沖區(qū)可以實(shí)現(xiàn)為在數(shù)據(jù)處理器的高速緩存或者其它系統(tǒng)存儲(chǔ)器內(nèi)的專用存儲(chǔ)器位置。

網(wǎng)絡(luò)功能處理模塊204被指定為對(duì)特定網(wǎng)絡(luò)功能進(jìn)行處理。分組處理器104可以根據(jù)分組存儲(chǔ)器的處理能力和所實(shí)現(xiàn)的網(wǎng)絡(luò)功能的數(shù)目來執(zhí)行每一個(gè)網(wǎng)絡(luò)功能模塊204的一個(gè)或多個(gè)實(shí)例。如果是在公共環(huán)境內(nèi)執(zhí)行,則相同的網(wǎng)絡(luò)功能的實(shí)例可以共享公共的緩沖區(qū)空間。在一些其它實(shí)現(xiàn)方式中,網(wǎng)絡(luò)功能的每一個(gè)實(shí)例都在其自己的虛擬機(jī)器環(huán)境中執(zhí)行。要在分組處理器104上實(shí)現(xiàn)的合適的網(wǎng)絡(luò)功能的示例包括但不限于IP分組加密(IPSec)、NAT、策略實(shí)施、ACL、或者其它防火墻或者網(wǎng)絡(luò)安全功能(諸如拒絕服務(wù)攻擊或者侵入檢測)。功能模塊204中的每一個(gè)功能模塊204可以實(shí)現(xiàn)為存儲(chǔ)在有形計(jì)算機(jī)可讀介質(zhì)上并且由包括在分組處理器104內(nèi)的多個(gè)處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令。

在一些實(shí)現(xiàn)方式中,利用與多個(gè)網(wǎng)絡(luò)功能相對(duì)應(yīng)的多個(gè)標(biāo)識(shí)符來標(biāo)記分組。內(nèi)核交換機(jī)202對(duì)工作流進(jìn)行管理以確保實(shí)現(xiàn)多個(gè)網(wǎng)絡(luò)功能。多個(gè)標(biāo)識(shí)符可以作為單獨(dú)的標(biāo)簽來級(jí)聯(lián)或者存儲(chǔ),并且內(nèi)核交換機(jī)202對(duì)多個(gè)標(biāo)識(shí)進(jìn)行解析和分離。例如,在其中功能外部化標(biāo)識(shí)符被存儲(chǔ)在MPLS標(biāo)簽中的分組中,整個(gè)分組連同其所有標(biāo)簽都依次序轉(zhuǎn)發(fā)至每個(gè)所指示的功能模塊204。當(dāng)功能模塊對(duì)分組完成了對(duì)應(yīng)的功能后,功能模塊用Processed標(biāo)識(shí)符來替代在對(duì)應(yīng)的MPLS標(biāo)簽中的To_Be_Processed標(biāo)識(shí)符。當(dāng)所有的MPLS標(biāo)簽都包括Processed標(biāo)識(shí)符時(shí),內(nèi)核交換機(jī)202使分組處理器104將具有修改后的標(biāo)簽的分組返回網(wǎng)絡(luò)交換機(jī)102。在其它實(shí)現(xiàn)方式中,如上所討論的,網(wǎng)絡(luò)交換機(jī)104的外部化模塊214協(xié)調(diào)多個(gè)網(wǎng)絡(luò)功能的執(zhí)行,并且在需要時(shí),多次轉(zhuǎn)發(fā)需要應(yīng)用至分組處理器的多個(gè)網(wǎng)絡(luò)功能的分組,每一次針對(duì)一個(gè)要執(zhí)行的功能,并且每一次具有不同的標(biāo)識(shí)符。當(dāng)在完成最后一個(gè)功能后將分組返回網(wǎng)絡(luò)交換機(jī)102時(shí),外部化模塊214將分組返回轉(zhuǎn)發(fā)模塊215以進(jìn)行進(jìn)一步處理。

圖3是使用圖1所圖示的系統(tǒng)使網(wǎng)絡(luò)功能外部化的示例方法300的流程圖。方法300包括:接收分組(步驟302)、利用要對(duì)分組執(zhí)行的網(wǎng)絡(luò)功能來標(biāo)記分組(步驟303)、將所接收的分組轉(zhuǎn)發(fā)至分組處理器(步驟304)、從分組處理器接收經(jīng)處理的分組(步驟306)、并且將經(jīng)處理的分組轉(zhuǎn)發(fā)至目的地節(jié)點(diǎn)(步驟308)。

方法300包括接收分組(步驟302)。如上所述,網(wǎng)絡(luò)交換機(jī)從在其本地網(wǎng)絡(luò)、互聯(lián)網(wǎng)或者其它網(wǎng)絡(luò)上的其它網(wǎng)絡(luò)設(shè)備接收分組。例如,網(wǎng)絡(luò)交換機(jī)102從網(wǎng)絡(luò)交換機(jī)108和100以及從互聯(lián)網(wǎng)112接收分組。

用要對(duì)分組執(zhí)行的網(wǎng)絡(luò)功能的標(biāo)識(shí)符來標(biāo)記分組(步驟303)。例如,利用網(wǎng)絡(luò)交換機(jī)102,在分組到達(dá)轉(zhuǎn)發(fā)模塊215時(shí),轉(zhuǎn)發(fā)模塊基于分組報(bào)頭中的數(shù)據(jù)針對(duì)其轉(zhuǎn)發(fā)表執(zhí)行查找以識(shí)別下一跳節(jié)點(diǎn)和要執(zhí)行的任何網(wǎng)絡(luò)功能。如果要執(zhí)行網(wǎng)絡(luò)功能,則將分組傳遞至功能外部化模塊214,功能外部化模塊214如上所述地用一個(gè)或多個(gè)網(wǎng)絡(luò)功能的標(biāo)識(shí)符來標(biāo)記分組。由于存在將網(wǎng)絡(luò)交換機(jī)102與分組處理器104連接的直接鏈路106,所以可以將分組轉(zhuǎn)發(fā)至分組處理器104,而不需要進(jìn)一步對(duì)已經(jīng)存在于分組報(bào)頭中的層2信息進(jìn)行路由或者修改。在各種實(shí)現(xiàn)方式中,功能外部化模塊214可以將要對(duì)分組執(zhí)行的期望功能的標(biāo)識(shí)符包括在多個(gè)不同的層2數(shù)據(jù)字段中的一個(gè)層2數(shù)據(jù)字段中,而不會(huì)對(duì)接收分組或者執(zhí)行指定網(wǎng)絡(luò)功能的分組處理器104造成干擾。例如,網(wǎng)絡(luò)功能標(biāo)識(shí)符可以包括在以下中但不限于在以下中:源MAC地址字段、目的地MAC地址字段、VLAN標(biāo)記字段、GRE報(bào)頭字段、MPLS報(bào)頭字段、或者添加的MPLS標(biāo)簽。將相對(duì)于圖6A至6D來說明描述使用不同的字段進(jìn)行標(biāo)記。

網(wǎng)絡(luò)交換機(jī)通過直接鏈路將接收到的分組轉(zhuǎn)發(fā)至分組處理器(例如分組處理器104)(步驟304)。直接鏈路可以是耦合至網(wǎng)絡(luò)交換機(jī)的專用數(shù)據(jù)平面或者控制平面端口以及分組處理器的網(wǎng)絡(luò)接口的電纜或者光纜。在一些實(shí)現(xiàn)方式中,在將接收到的分組轉(zhuǎn)發(fā)至分組處理器后,功能外部化模塊214繼續(xù)對(duì)其隊(duì)列中的下一個(gè)分組進(jìn)行處理。即,網(wǎng)絡(luò)交換機(jī)102在開始處理另一個(gè)分組之前不需要等待分組處理器104的處理結(jié)果。

網(wǎng)絡(luò)交換機(jī)從分組處理器接收經(jīng)處理的分組(步驟306)。如上所述,在由在分組處理器上執(zhí)行的適當(dāng)?shù)墓δ苣K(例如功能模塊204)處理之后,用識(shí)別已經(jīng)執(zhí)行的網(wǎng)絡(luò)功能的標(biāo)識(shí)符來標(biāo)記經(jīng)處理的分組,并且然后通過專用鏈路將經(jīng)處理的分組發(fā)送回網(wǎng)絡(luò)交換機(jī)。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)功能處理導(dǎo)致分組被丟棄,例如,由于ACL或者其它防火墻網(wǎng)絡(luò)功能的否定發(fā)現(xiàn)結(jié)果。在這種情況下,分組處理器可以將這種事件的指示發(fā)送至網(wǎng)絡(luò)交換機(jī),使得網(wǎng)絡(luò)交換機(jī)可以停止等待分組的返回。

網(wǎng)絡(luò)交換機(jī)然后將經(jīng)處理的分組轉(zhuǎn)發(fā)至目的地節(jié)點(diǎn)(步驟308)。在完成網(wǎng)絡(luò)功能處理后,將分組返回轉(zhuǎn)發(fā)模塊215,轉(zhuǎn)發(fā)模塊215完成該轉(zhuǎn)發(fā)過程。例如,分組的目的地MAC地址可以填有在通向分組最終目的地路徑上的下一個(gè)跳節(jié)點(diǎn)的MAC地址。然后,可以將分組傳遞至連接至下一跳節(jié)點(diǎn)的端口的隊(duì)列以用于傳輸。

圖4是通過使用圖1所示的系統(tǒng)使網(wǎng)絡(luò)功能外部化的示例方法400的流程圖。

方法400包括:從網(wǎng)絡(luò)交換機(jī)接收分組(步驟402)、將所接收的分組路由至虛擬化網(wǎng)絡(luò)功能模塊以由該模塊進(jìn)行處理(步驟404)、利用指定的網(wǎng)絡(luò)功能模塊對(duì)分組進(jìn)行處理(步驟405)、以及將經(jīng)處理的分組發(fā)送回網(wǎng)絡(luò)交換機(jī)(步驟406)。

方法400包括由分組處理器(諸如分組處理器104)接收來自網(wǎng)絡(luò)交換機(jī)(諸如網(wǎng)絡(luò)交換機(jī)102)的分組(步驟402)。利用網(wǎng)絡(luò)交換機(jī),通過直接物理鏈路(諸如物理鏈路106)來接收分組。在一些實(shí)現(xiàn)方式中,利用要在分組處理器上執(zhí)行的網(wǎng)絡(luò)功能的標(biāo)識(shí)符來標(biāo)記所接收的分組。分組的目的地MAC地址不同于分組處理器的MAC地址。出于至少兩個(gè)不同的原因,目的地MAC地址可以不同。在一些實(shí)現(xiàn)方式中,目的地MAC地址不同于分組處理器的MAC地址的原因在于,網(wǎng)絡(luò)交換機(jī)的功能外部化模塊(諸如功能外部化模塊214)將要執(zhí)行的功能的標(biāo)識(shí)符存儲(chǔ)在分組的目的地MAC地址中。在一些其它實(shí)現(xiàn)方式中,將功能標(biāo)識(shí)符存儲(chǔ)在不同的報(bào)頭字段中,但是,由于在將分組轉(zhuǎn)發(fā)至分組處理器時(shí),分組還未在網(wǎng)絡(luò)交換機(jī)處進(jìn)行層2路由,所以目的地MAC地址仍然保存著網(wǎng)絡(luò)交換機(jī)102的MAC地址。為了允許分組處理器在分組的目的地MAC地址與其自己的MAC地址不匹配的情況下仍然能夠接收分組并且對(duì)分組進(jìn)行處理,在各種實(shí)現(xiàn)方式中,可以將分組處理器或者其網(wǎng)絡(luò)端口編程或者以其他方式配置為:接受具有任何目的地MAC地址的分組、具有網(wǎng)絡(luò)交換機(jī)的目的地MAC地址的分組、或者其目的地MAC地址包括與在分組處理器上執(zhí)行的網(wǎng)絡(luò)功能相關(guān)聯(lián)的功能標(biāo)識(shí)符中的一個(gè)或多個(gè)功能標(biāo)識(shí)符的分組。

數(shù)據(jù)處理器將所接收的分組路由至網(wǎng)絡(luò)功能模塊(諸如功能模塊204中的一個(gè)功能模塊)(步驟404)。例如,基于分組報(bào)頭中的功能標(biāo)識(shí)符,分組處理器(例如,經(jīng)由內(nèi)核交換機(jī)202)將所接收的分組傳遞至執(zhí)行網(wǎng)絡(luò)功能模塊的虛擬機(jī)器,該網(wǎng)絡(luò)功能模塊被指定為對(duì)標(biāo)識(shí)符所識(shí)別的網(wǎng)絡(luò)功能進(jìn)行處理。

分組處理器然后利用指定的網(wǎng)絡(luò)功能模塊對(duì)分組進(jìn)行處理(步驟405)。如上所述,網(wǎng)絡(luò)功能模塊可執(zhí)行但不限于ACL或者其它防火墻處理、IPsec(加密或者解密)、策略實(shí)施、以及NAT(NAT或者DE-NAT)。在完成處理后,將分組報(bào)頭更新為包括指示完成處理的標(biāo)識(shí)符。

分組處理器將經(jīng)處理的分組發(fā)送回網(wǎng)絡(luò)交換機(jī)(步驟406)。如上所述,例如,在指定的網(wǎng)絡(luò)功能模塊對(duì)網(wǎng)絡(luò)功能進(jìn)行處理之后,用所執(zhí)行的網(wǎng)絡(luò)功能和指示已經(jīng)執(zhí)行了對(duì)應(yīng)的網(wǎng)絡(luò)功能的標(biāo)識(shí)符來更新分組。在由內(nèi)核交換機(jī)(諸如內(nèi)核交換機(jī)202)進(jìn)行處理后,分組處理器104將處理后的分組發(fā)送回網(wǎng)絡(luò)交換機(jī)102。

在一些實(shí)現(xiàn)方式中,對(duì)于由分組處理器所接收(在步驟402中)的給定的分組集合而言,分組處理器可能不會(huì)將相同數(shù)目的分組返回網(wǎng)絡(luò)交換機(jī)。例如,可以利用不同的目的地址以復(fù)制的形式將分組發(fā)送回網(wǎng)絡(luò)交換機(jī),使得將分組發(fā)送至多個(gè)目的地節(jié)點(diǎn)。在其它情況下,可以將所接收的分組的數(shù)據(jù)分為多個(gè)更小的分組或者組合為更少數(shù)目的分組以適應(yīng)各種發(fā)送和接收設(shè)備的不同緩沖區(qū)的大小。相似地,數(shù)據(jù)加密通常會(huì)導(dǎo)致用于表示數(shù)據(jù)的比特?cái)?shù)增加,從而可能導(dǎo)致需要將加密的數(shù)據(jù)碎片化為多個(gè)分組以適應(yīng)分組大小的限制。對(duì)某些分組進(jìn)行解密而產(chǎn)生的數(shù)據(jù)可以能夠使得解密后的數(shù)據(jù)與加密時(shí)曾用于傳送數(shù)據(jù)的少量分組一起轉(zhuǎn)發(fā)。在一些實(shí)現(xiàn)方式中,在將網(wǎng)絡(luò)功能應(yīng)用于分組時(shí),分組處理器可以為網(wǎng)絡(luò)交換機(jī)生成全新的分組以便發(fā)送。例如,DE-NAT功能可以向連接的主機(jī)發(fā)起ARP請(qǐng)求來獲得合適的目的地?cái)?shù)據(jù)以插入正在進(jìn)行處理的分組中。

為了圖示圖3和圖4所示的上述方法300和方法400,圖5A至圖5D示出了由圖1和圖2所示的網(wǎng)交換機(jī)102和分組處理器104根據(jù)方法300和方法400的一個(gè)示例實(shí)現(xiàn)方式來處理分組報(bào)頭時(shí)分組報(bào)頭的狀態(tài)。

圖5A示出了分組的報(bào)頭500,在該分組被網(wǎng)絡(luò)交換機(jī)102接收時(shí)(在步驟302中),被發(fā)往與網(wǎng)絡(luò)交換機(jī)102處于同一個(gè)管理網(wǎng)絡(luò)中的計(jì)算機(jī),例如計(jì)算機(jī)114。在其它報(bào)頭字段之中,分組500具有源MAC地址502字段、目的地MAC地址字段504、源IP地址字段506、和目的地IP地址字段508。在網(wǎng)絡(luò)交換機(jī)102處最初接收到目的地MAC地址字段504后,目的地MAC地址字段504保存網(wǎng)絡(luò)交換機(jī)102的MAC地址。源MAC地址字段502保存網(wǎng)絡(luò)路徑上的前一跳(諸如在網(wǎng)絡(luò)交換機(jī)前的跳)的MAC地址。源IP地址字段506包括發(fā)送方的源IP地址。目的地IP地址字段508保存與分組的終端接收方(諸如計(jì)算機(jī)114)相關(guān)聯(lián)的公共IP地址。

圖5B示出了在由功能外部化模塊214處理(步驟303中)后的分組報(bào)頭500的狀態(tài),該處理指示將由DE-NAT功能對(duì)分組進(jìn)行處理以將包括在目的地IP地址字段508中的計(jì)算機(jī)114的公共目的地IP地址從公共IP地址轉(zhuǎn)換為計(jì)算機(jī)114的私有內(nèi)部IP地址。由于分組處理器104和網(wǎng)絡(luò)交換機(jī)102通過直接鏈路106連接,所以網(wǎng)絡(luò)交換機(jī)102可以直接將分組轉(zhuǎn)發(fā)至分組處理器104,而不需要將分組處理器104的MAC地址包括在目的地MAC地址字段中。因此,將DE-NAT功能標(biāo)識(shí)符包括在分組報(bào)頭500的目的地MAC地址字段504中。更具體地,通過標(biāo)簽NAT_REMOTE_To_Be_Processed來指示DE-NAT功能。如上所指示的,DE-NAT功能是對(duì)遠(yuǎn)程生成的分組執(zhí)行的NAT功能,而NAT是對(duì)LOCAL分組(即,在網(wǎng)絡(luò)內(nèi)生成的分組)執(zhí)行的NAT功能。

在將標(biāo)識(shí)符NAT_REMOTE_To_Be_Processed包括在目的地MAC地址字段504中后,網(wǎng)絡(luò)交換機(jī)102通過直接鏈路106將分組轉(zhuǎn)發(fā)至分組處理器104(步驟304中)。分組處理器104接收具有如圖5B所示的報(bào)頭500的分組(步驟402中)。

圖5C示出了在將分組報(bào)頭返回網(wǎng)絡(luò)交換機(jī)時(shí)(步驟406中)已經(jīng)由在分組處理器上執(zhí)行的功能模塊204對(duì)其進(jìn)行了處理(步驟405中)之后的分組報(bào)頭500。如圖5C所示,作為由分組處理器104處的DE-NAT功能進(jìn)行的處理的一部分,將目的地IP地址字段508更新為包括終端接收方計(jì)算機(jī)(計(jì)算機(jī)114)的內(nèi)部私有IP地址。為了使網(wǎng)絡(luò)交換機(jī)102將分組識(shí)別為已經(jīng)經(jīng)過處理,分組處理器 104用NAT_REMOTE_Processed標(biāo)識(shí)符替代目的地MAC地址字段504中的功能標(biāo)識(shí)符。

圖5D示出了在由網(wǎng)絡(luò)交換機(jī)將分組報(bào)頭500轉(zhuǎn)發(fā)至其目的地節(jié)點(diǎn)(步驟308中)時(shí)的分組報(bào)頭500。如圖5D所示,相對(duì)于圖5C,目的地MAC地址字段504已經(jīng)被更新為指示通往目的地節(jié)點(diǎn)(即計(jì)算機(jī)114)的路徑上的下一跳節(jié)點(diǎn)的MAC地址。

如上所述,上述示例依靠對(duì)分組的目的地MAC地址進(jìn)行修改來指示需要對(duì)分組執(zhí)行或者已經(jīng)對(duì)分組執(zhí)行了哪個(gè)網(wǎng)絡(luò)功能,因此,上述示例僅是方法300和方法400的一種示例實(shí)現(xiàn)方式。在其它實(shí)現(xiàn)方式中,還可以將功能標(biāo)識(shí)符包括在其它報(bào)頭字段中。

圖6A到圖6D圖示出了與分組相關(guān)聯(lián)的各種字段,諸如,(一個(gè)或多個(gè))MAC地址字段、VLAN標(biāo)記字段、通用路由封裝報(bào)頭字段、以及多協(xié)議標(biāo)簽轉(zhuǎn)換報(bào)頭字段,其中,可以包括在分組處理器上執(zhí)行的虛擬化網(wǎng)絡(luò)功能的標(biāo)識(shí)符。

圖6A示出了用于IPv6分組的典型分組報(bào)頭。典型分組包括層2數(shù)據(jù)鏈路層(例如以太網(wǎng))報(bào)頭字段、層3網(wǎng)絡(luò)層(例如IPv4或者IPv6)報(bào)頭字段、以及4層傳輸層(例如TCP)報(bào)頭字段。圖6A突出顯示了在典型IPv6分組中目的地MAC地址字段602的位置。

如上所述,在一些實(shí)現(xiàn)方式中,前述的網(wǎng)絡(luò)功能標(biāo)識(shí)符可以包括在VLAN標(biāo)記字段604中(諸例如由IEEE 802.1Q定義)。圖6B示出了在IPv6分組報(bào)頭中包括在以太網(wǎng)類型字段的第一部分中的VLAN標(biāo)記字段604的位置。

在一些其它實(shí)現(xiàn)方式中,網(wǎng)絡(luò)功能標(biāo)識(shí)符可以包括在通用路由封裝(GRE)報(bào)頭字段606中(例如由RFC2784定義)。在圖6C中示出了GRE字段606的位置。GRE報(bào)頭字段606插入在報(bào)頭中的以太網(wǎng)類型字段與IP版本字段之間。

在一些其它實(shí)現(xiàn)方式中,網(wǎng)絡(luò)功能標(biāo)識(shí)符可包括在MPLS報(bào)頭字段608中(例如由RFC3031所定義)。圖6D示出了IPv6分組中的MPLS報(bào)頭字段608的位置。MPLS報(bào)頭字段608包括在與GRE報(bào)頭字段606相似的位置中。在一些實(shí)現(xiàn)方式中,MPLS報(bào)頭字段608包含一個(gè)或多個(gè)標(biāo)簽(即標(biāo)簽棧)。一個(gè)或者多個(gè)網(wǎng)絡(luò)功能標(biāo)識(shí)符可以包括在MPLS報(bào)頭字段608內(nèi)的相應(yīng)MPLS標(biāo)簽中。

圖7是適合用于網(wǎng)絡(luò)交換機(jī)和分組處理器的示例計(jì)算系統(tǒng)141的框圖。例如,計(jì)算機(jī)系統(tǒng)141適合用于實(shí)現(xiàn)分組處理器104。在廣義概述中,計(jì)算系統(tǒng)141包括用于根據(jù)指令執(zhí)行操作的至少一個(gè)處理器148、和用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器設(shè)備144或者149。所圖示的示例計(jì)算系統(tǒng)141包括經(jīng)由總線142與存儲(chǔ)器144通信的一個(gè)或多個(gè)處理器148、具有用于連接至網(wǎng)絡(luò)(未示出)的網(wǎng)絡(luò)接口端口146的至少一個(gè)網(wǎng)絡(luò)接口控制器143、以及例如輸入/輸出(“I/O”)組件147的其它組件145。通常,(一個(gè)或多個(gè))處理器148將執(zhí)行從存儲(chǔ)器接收到的指令。所圖示的(一個(gè)或多個(gè))處理器148合并高速緩存149或者直接連接至高速緩存149。在一些實(shí)例中,指令從存儲(chǔ)器144讀取至高速緩存149,并且從高速緩存149由(一個(gè)或多個(gè))處理器148執(zhí)行。

更加具體地,(一個(gè)或多個(gè))處理器148可以是對(duì)指令進(jìn)行處理的任何邏輯電路,所述指令例如是從存儲(chǔ)器144或者高速緩存149取出的指令。在許多實(shí)施例中,(一個(gè)或多個(gè))處理器148是微處理器單元或者專用處理器。計(jì)算設(shè)備141可以基于任何處理器或者處理器集合而能夠進(jìn)行本文描述的操作。(一個(gè)或多個(gè))處理器148可以是單核處理器或者(一個(gè)或多個(gè))多核處理器。(一個(gè)或多個(gè))處理器148可以是多個(gè)不同的處理器。在一些實(shí)現(xiàn)方式中,(一個(gè)或多個(gè))處理器148被實(shí)現(xiàn)為在一個(gè)或多個(gè)“芯片”上的電路。

存儲(chǔ)器144可以是適合用于存儲(chǔ)計(jì)算機(jī)可讀數(shù)據(jù)的任何設(shè)備。存儲(chǔ)器144可以是具有固定存儲(chǔ)的設(shè)備或者用于讀取可移動(dòng)存儲(chǔ)介質(zhì)的設(shè)備。示例包括所有形式的非易失性存儲(chǔ)器、介質(zhì)和存儲(chǔ)器設(shè)備、半導(dǎo)體存儲(chǔ)器設(shè)備(例如,EPROM、EEPROM、SDRAM、以及閃速存儲(chǔ)器設(shè)備)、磁盤、磁光盤、以及光盤(例如,CD ROM、DVD-ROM、或者盤)。計(jì)算系統(tǒng)141可以具有任何數(shù)目的存儲(chǔ)器設(shè)備144。

高速緩存存儲(chǔ)器149通常是放置為非常接近(一個(gè)或多個(gè))處理器148以獲得快速訪問時(shí)間的計(jì)算機(jī)存儲(chǔ)器的形式。在一些實(shí)現(xiàn)方式中,高速緩存存儲(chǔ)器149是(一個(gè)或多個(gè))處理器148的一部分,或者位于與(一個(gè)或多個(gè))處理器148相同的芯片上。在一些實(shí)現(xiàn)方式中,存在多級(jí)高速緩存存儲(chǔ)器149,例如,L2高速緩存層和L3高速緩存層。

網(wǎng)絡(luò)接口控制器149經(jīng)由網(wǎng)絡(luò)接口146(有時(shí)稱為網(wǎng)絡(luò)接口端口)管理數(shù)據(jù)交換。網(wǎng)絡(luò)接口控制器143處理用于網(wǎng)絡(luò)通信的OSI模型的物理層和數(shù)據(jù)鏈路層。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)接口控制器的一些任務(wù)由(一個(gè)或多個(gè))處理器148中的一個(gè)或多個(gè)處理。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)接口控制器143合并到處理器148中,例如,作為在相同芯片上的電路。在一些實(shí)現(xiàn)方式中,計(jì)算系統(tǒng)141具有由單個(gè)控制器143控制的多個(gè)網(wǎng)絡(luò)接口146。在一些實(shí)現(xiàn)方式中,計(jì)算系統(tǒng)141具有多個(gè)網(wǎng)絡(luò)接口控制器143。在一些實(shí)現(xiàn)方式中,每個(gè)網(wǎng)絡(luò)接口146都是物理網(wǎng)絡(luò)鏈路(例如cat-5以太網(wǎng)鏈路)的連接點(diǎn)。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)接口控制器143支持無線連接并且接口端口146是無線(例如無線電)接收器/發(fā)射器(例如,用于IEEE 802.11協(xié)議、近場通信“NFC”、藍(lán)牙、BLE、ANT、或者任何其它無線協(xié)議中的任一個(gè))。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)接口控制器143實(shí)現(xiàn)諸如以太網(wǎng)的一個(gè)或多個(gè)網(wǎng)絡(luò)協(xié)議。通常,計(jì)算設(shè)備141通過網(wǎng)絡(luò)接口146經(jīng)由物理鏈路或者無線鏈路與其它計(jì)算設(shè)備交換數(shù)據(jù)。網(wǎng)絡(luò)接口146可以直接鏈接至另一設(shè)備或者經(jīng)由中間設(shè)備鏈接至另一設(shè)備,所述中間設(shè)備例如將計(jì)算設(shè)備141連接至諸如互聯(lián)網(wǎng)等數(shù)據(jù)網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)備,諸如集線器、橋接器、交換機(jī)或者路由器。

計(jì)算系統(tǒng)141可包括一個(gè)或多個(gè)輸入/輸出(“I/O”)組件147,或者是為一個(gè)或多個(gè)輸入/輸出(“I/O”)組件147提供接口。輸入設(shè)備包括但不限于:鍵盤、麥克風(fēng)、觸摸屏、腳踏開關(guān)、傳感器、MIDI設(shè)備、以及諸如鼠標(biāo)或者軌跡球的指示設(shè)備。輸出設(shè)備包括但不限于:視頻顯示器、揚(yáng)聲器、可刷新的點(diǎn)字終端、燈、MIDI設(shè)備、以及2D打印機(jī)或者3D打印機(jī)。

其它組件145可以包括I/O接口、外部串行設(shè)備端口、和任何附加的協(xié)同處理器。例如,計(jì)算系統(tǒng)141可以包括連接輸入設(shè)備、輸出設(shè)備、或者附加的存儲(chǔ)器設(shè)備(例如,便攜式閃速驅(qū)動(dòng)器或者外部媒體驅(qū)動(dòng)器)的接口(例如,通用串行總線(“USB”)接口)。在一些實(shí)現(xiàn)方式中,計(jì)算設(shè)備141包括諸如協(xié)同處理器的附加設(shè)備145。例如,數(shù)學(xué)協(xié)同處理器可以協(xié)助處理器148進(jìn)行高精度或者復(fù)雜計(jì)算。

本主題的實(shí)現(xiàn)方式以及在本說明書中描述的操作可以實(shí)現(xiàn)在數(shù)字電子電路中,或者實(shí)現(xiàn)在包含在有形介質(zhì)、固件或者硬件上的計(jì)算機(jī)軟件中,包括在本說明書中公開的結(jié)構(gòu)和結(jié)構(gòu)等效物、或者實(shí)現(xiàn)在它們中的一個(gè)或多個(gè)的組合中。本說明書中描述的主題的實(shí)現(xiàn)方式可以實(shí)現(xiàn)為體現(xiàn)在有形介質(zhì)(即,一個(gè)或多個(gè)計(jì)算機(jī)程序指令的模塊)上的、編碼在一個(gè)或多個(gè)計(jì)算機(jī)存儲(chǔ)介質(zhì)上以供數(shù)據(jù)處理裝備執(zhí)行或者用于控制數(shù)據(jù)處理裝備的操作的一個(gè)或多個(gè)計(jì)算機(jī)程序。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是或者包括在計(jì)算機(jī)可讀存儲(chǔ)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)基板、隨機(jī)或者串行存取存儲(chǔ)器陣列或者設(shè)備、或者一個(gè)或多個(gè)上述設(shè)備的組合中。計(jì)算機(jī)存儲(chǔ)介質(zhì)也可以是或者包括在一個(gè)或多個(gè)單獨(dú)的組件或者介質(zhì)(例如,多個(gè)CD、盤、或者其它存儲(chǔ)設(shè)備)中。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是有形的和非暫時(shí)性的。

可以用任何形式的編程語言(包括編譯語言、解譯語言、陳述性語言、和過程語言)來編寫計(jì)算機(jī)程序(也稱為程序、軟件、軟件應(yīng)用、腳本、或者代碼),并且可以按照任何形式(包括:作為獨(dú)立的程序或者模塊、組件、子例程、對(duì)象、或者適合用于計(jì)算環(huán)境的其它單元)來部署該計(jì)算機(jī)程序。計(jì)算機(jī)程序可以但并非必須與文件系統(tǒng)中的文件對(duì)應(yīng)??梢詫⒊绦虼鎯?chǔ)在保持其它程序或者數(shù)據(jù)(例如,存儲(chǔ)在標(biāo)記語言文檔中的一個(gè)或多個(gè)腳本)的文件的一部分中、存儲(chǔ)在專用于所探討中的程序的單個(gè)文件中、或者存儲(chǔ)在多個(gè)協(xié)作文件(例如,存儲(chǔ)一個(gè)或多個(gè)模塊、庫、子程序、或者部分代碼的文件)中??梢詫⒂?jì)算機(jī)程序部署為在一個(gè)計(jì)算機(jī)上執(zhí)行或者在位于一個(gè)站點(diǎn)處或者分布在多個(gè)站點(diǎn)中并且通過通信網(wǎng)絡(luò)互相連接的多個(gè)計(jì)算機(jī)上執(zhí)行。

可以通過一個(gè)或多個(gè)可編程處理器來進(jìn)行本說明書中所描述的過程和邏輯流程,該一個(gè)或多個(gè)可編程處理器執(zhí)行通過操作輸入數(shù)據(jù)并且生成輸出來執(zhí)行動(dòng)作的一個(gè)或多個(gè)計(jì)算機(jī)程序。也可以通過專用邏輯電路(例如,現(xiàn)場可編程門陣列(“FPGA”)或者專用集成電路(“ASIC”))來執(zhí)行過程和邏輯流程,并且也可以將裝備實(shí)現(xiàn)為該專用邏輯電路或者專用集成電路。

雖然本說明書包含了許多具體實(shí)現(xiàn)細(xì)節(jié),但是不應(yīng)該將這些細(xì)節(jié)視為對(duì)任何發(fā)明或者可能被要求的內(nèi)容的范圍的限制,而是作為針對(duì)特定發(fā)明的特定實(shí)現(xiàn)方式的特征的描述。在本說明書中在單獨(dú)實(shí)現(xiàn)方式的背景下描述的某些特征也可以組合地實(shí)現(xiàn)在單個(gè)實(shí)現(xiàn)方式中。相反,在單個(gè)實(shí)現(xiàn)方式的背景下描述的各種特征也可以單獨(dú)地或者按照任何合適的子組合實(shí)現(xiàn)在多個(gè)實(shí)現(xiàn)方式中。此外,雖然上面可能將特征描述為以某些組合來起作用并且最初甚至同樣地對(duì)該特征進(jìn)行了要求,但是在一些情況下可以從組合中刪除來自所要求的組合的一個(gè)或多個(gè)特征,并且所要求的組合可以指向子組合或者子組合的變化。

相似地,雖然在附圖中按照特定順序示出了操作,但是不應(yīng)該將其理解為需要按照所示的特定順序或者按照相繼的順序來執(zhí)行這種操作,或者需要執(zhí)行所有圖示的操作以實(shí)現(xiàn)期望的結(jié)果。在某些情況下,多任務(wù)處理和并行處理可以是有利的。此外,不應(yīng)該將在上述實(shí)施例中的各種系統(tǒng)組件的分離理解為在所有實(shí)施例中需要這種分離,并且應(yīng)該理解,所描述的程序組件和系統(tǒng)通常可以一起集成在單個(gè)軟件產(chǎn)品中或者封裝到多個(gè)軟件產(chǎn)品中。

對(duì)“或者”的引用可以理解為是包容性的,從而使用“或者”來描述的任何術(shù)語可以指示上述術(shù)語中的單個(gè)、多于一個(gè)、和所有中的任何一種。標(biāo)簽“第一”、“第二”、“第三”等并不必然意味著表示排序,并且通常僅用于區(qū)分類似的或者相似的術(shù)語或者元件。

因此,已經(jīng)對(duì)本主題的特定實(shí)現(xiàn)方式進(jìn)行了描述。其它實(shí)現(xiàn)方式也在以下權(quán)利要求書的范圍內(nèi)。在一些情況下,在權(quán)利要求書中敘述的動(dòng)作可以按照不同的順序來執(zhí)行并且仍然可以實(shí)現(xiàn)期望的結(jié)果。另外,在附圖中描繪的過程不一定需要所示的特定順序或者相繼順序,以實(shí)現(xiàn)期望的結(jié)果。在某些實(shí)現(xiàn)方式中,也可使用多任務(wù)處理或者并行處理。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
海城市| 湖口县| 鸡西市| 永丰县| 读书| 五指山市| 若尔盖县| 新郑市| 红桥区| 梁山县| 荃湾区| 梧州市| 方山县| 丰镇市| 阳泉市| 汉川市| 咸宁市| 林西县| 攀枝花市| 百色市| 子长县| 宣恩县| 雷山县| 永州市| 华池县| 九江市| 夏津县| 新和县| 平南县| 谷城县| 杭州市| 双城市| 杭锦后旗| 响水县| 石棉县| 县级市| 盐亭县| 龙川县| 阳高县| 兰坪| 德州市|