用于加速軟件定義網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)的方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例涉及聯(lián)網(wǎng)領(lǐng)域;并且更具體來(lái)說(shuō),涉及加速軟件定義網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)。
【背景技術(shù)】
[0002]最近幾年,傳統(tǒng)的基于電路的通信網(wǎng)絡(luò)在支持基于分組的網(wǎng)絡(luò)方面已經(jīng)有所衰退,基于分組的網(wǎng)絡(luò)可以更加靈活、有效且安全。因此,基于分組的聯(lián)網(wǎng)的增加的普及度已經(jīng)導(dǎo)致對(duì)基于分組的網(wǎng)絡(luò)裝置的需求增長(zhǎng)。制造商已經(jīng)在很大程度上滿足了這個(gè)需求,他們創(chuàng)造了越來(lái)越大型的單片路由器來(lái)應(yīng)對(duì)網(wǎng)絡(luò)業(yè)務(wù)的增加的量和復(fù)雜度。但是,這個(gè)模型正接近它的技術(shù)和經(jīng)濟(jì)極限。越來(lái)越難以用傳統(tǒng)的路由器設(shè)計(jì)來(lái)滿足增加的性能要求,并且隨著低成本數(shù)據(jù)中心硬件的出現(xiàn),路由器供應(yīng)商難以對(duì)于相同性能為更高的硬件成本提出理由。同時(shí),對(duì)接入和聚合網(wǎng)絡(luò)中的路由和交換控制平面的需求正變得越來(lái)越復(fù)雜。運(yùn)營(yíng)商希望能夠定制路由以便應(yīng)對(duì)邊緣附近的特定類型的業(yè)務(wù)流,配置跨越聚合網(wǎng)絡(luò)的定制服務(wù),并實(shí)現(xiàn)多層集成,而不需要現(xiàn)今網(wǎng)絡(luò)中所需的詳細(xì)低級(jí)配置。
[0003]這些趨勢(shì)導(dǎo)致對(duì)于路由體系結(jié)構(gòu)的不同方法,其中數(shù)據(jù)平面和控制平面已經(jīng)解耦合。通過(guò)這個(gè)隔離,可以利用具有變化的體系結(jié)構(gòu)的各種硬件組件來(lái)在邏輯上集中并實(shí)現(xiàn)控制平面。此外,數(shù)據(jù)平面可以由通過(guò)邏輯集中的控制器配置的簡(jiǎn)化交換機(jī)/路由器元件組成。這個(gè)新的分離式體系結(jié)構(gòu)模型集中在分離來(lái)自轉(zhuǎn)發(fā)和數(shù)據(jù)處理元件的控制,并且處于軟件定義聯(lián)網(wǎng)(SDN)的核心。軟件定義網(wǎng)絡(luò)中的流處理的一個(gè)著名的標(biāo)準(zhǔn)是OpenFlow,它定義了用于在控制平面和轉(zhuǎn)發(fā)平面之間傳送消息的協(xié)議,并描述了用于分組處理的模型。
[0004]軟件定義網(wǎng)絡(luò)的這個(gè)分離式體系結(jié)構(gòu)使得能夠在可在邏輯或物理上集合在一起的功能性之間進(jìn)行隔離。例如,可以在公共控制實(shí)體和網(wǎng)絡(luò)應(yīng)用(例如,通用多協(xié)議標(biāo)簽交換(GMPLS)、邊界網(wǎng)關(guān)協(xié)議(BGP)、互聯(lián)網(wǎng)協(xié)議安全(IPSec)等)之間存在分離或隔離。類似地,可以在控制和轉(zhuǎn)發(fā)/處理之間存在分離或隔離(即,中央控制與執(zhí)行分組處理的網(wǎng)絡(luò)裝置的隔離)。還可存在數(shù)據(jù)轉(zhuǎn)發(fā)功能性、數(shù)據(jù)處理功能性和數(shù)據(jù)生成功能性(例如,深度分組檢查(DPI);加密;操作、維護(hù)和管理(OAM)等)的分離或隔離。
[0005]相較于傳統(tǒng)單片體系結(jié)構(gòu)網(wǎng)絡(luò),軟件定義網(wǎng)絡(luò)呈現(xiàn)很多優(yōu)點(diǎn)。例如,實(shí)現(xiàn)重要的網(wǎng)絡(luò)路由和交換功能性的控制平面應(yīng)用與轉(zhuǎn)發(fā)平面完全隔離。因此,維持集中的控制平面使得能夠?qū)崿F(xiàn)可根據(jù)特定用戶需要量身定制的高度定制和優(yōu)化聯(lián)網(wǎng)服務(wù)。集中的控制平面提供可迎合各種用戶需要的高可縮放性、可靠且靈活的聯(lián)網(wǎng)基礎(chǔ)設(shè)施。轉(zhuǎn)發(fā)平面(或數(shù)據(jù)平面)裝置可以是廉價(jià)且可互換的商用聯(lián)網(wǎng)裝置,由此減少用戶的整體配置和維護(hù)負(fù)擔(dān)。另夕卜,整個(gè)網(wǎng)絡(luò)的單個(gè)管理和配置實(shí)體增強(qiáng)了用戶的易于使用的體驗(yàn)。
[0006]但是,當(dāng)前的SDN配置也遭受缺點(diǎn)。盡管諸如OpenFlow的系統(tǒng)確實(shí)提出了有效的方法來(lái)指定分組處理的模型,但是問(wèn)題在于,在轉(zhuǎn)發(fā)平面處接收的不同或新穎的業(yè)務(wù)直到控制平面為轉(zhuǎn)發(fā)轉(zhuǎn)置提供該業(yè)務(wù)的指令時(shí)才可處理。相應(yīng)地,當(dāng)新業(yè)務(wù)流的分組首先進(jìn)入SDN時(shí),這些初始分組不能被轉(zhuǎn)發(fā),直到控制平面為SDN內(nèi)的轉(zhuǎn)發(fā)裝置提供了該流的轉(zhuǎn)發(fā)指令為止。此外,為了使得控制平面能夠決定對(duì)新流的這些初始分組做何處理,通常由轉(zhuǎn)發(fā)裝置將這些分組傳送給控制平面。在轉(zhuǎn)發(fā)平面中采用可接收許多這樣的“未知”分組的許多轉(zhuǎn)發(fā)裝置的SDN中,到控制平面的這樣的分組傳輸可能會(huì)用業(yè)務(wù)淹沒(méi)網(wǎng)絡(luò)和控制平面。
【發(fā)明內(nèi)容】
[0007]根據(jù)本發(fā)明的一個(gè)實(shí)施例,通過(guò)充當(dāng)軟件定義網(wǎng)絡(luò)內(nèi)的轉(zhuǎn)發(fā)平面的網(wǎng)絡(luò)元件執(zhí)行一種方法以便減少緩慢路徑分組處理的負(fù)面影響。該方法包括通過(guò)網(wǎng)絡(luò)元件接收第一分組。該方法還包括確定第一分組是否與網(wǎng)絡(luò)元件的一個(gè)或多個(gè)流表的集合內(nèi)的任何流條目匹配。流表的這個(gè)集合包括一個(gè)或多個(gè)流條目的集合,每個(gè)流條目包括將對(duì)照入局分組的匹配部分進(jìn)行匹配的匹配準(zhǔn)則。每個(gè)流條目還包括將對(duì)具有與該流條目的匹配準(zhǔn)則匹配的所述匹配部分的分組執(zhí)行的一個(gè)或多個(gè)動(dòng)作的集合。該方法還包括響應(yīng)于確定第一分組不與流表的集合內(nèi)的任何流條目匹配而執(zhí)行未命中過(guò)程。未命中過(guò)程包括在分組未命中表(PMT)中插入第一分組的至少一部分作為第一條目。PMT存儲(chǔ)由網(wǎng)絡(luò)元件接收的不與流表的集合的任何流條目匹配的分組的部分。未命中過(guò)程還包括一旦控制器尋求對(duì)PMT的第一條目的存取便向控制器提供該存取。在一個(gè)實(shí)施例中,當(dāng)網(wǎng)絡(luò)元件從控制器接收指示對(duì)PMT的一個(gè)或多個(gè)未處理?xiàng)l目的請(qǐng)求的拉(pull)條目請(qǐng)求消息時(shí),網(wǎng)絡(luò)元件確定控制器尋求該存取。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)元件通過(guò)將包含PMT的所請(qǐng)求的一個(gè)或多個(gè)條目的拉條目響應(yīng)消息傳送給控制器來(lái)向控制器提供存取。另外,在本發(fā)明的一些實(shí)施例中,未命中過(guò)程還包括通過(guò)確定第一分組的匹配部分是否與來(lái)自條目的集合的任何條目的可配置默認(rèn)規(guī)則表(⑶RT)匹配準(zhǔn)則匹配來(lái)將第一分組與⑶RT的一個(gè)或多個(gè)條目的集合進(jìn)行比較。⑶RT的每個(gè)條目包括將用于確定分組是否與該條目匹配的CDRT匹配準(zhǔn)則。CDRT的每個(gè)條目還包括用于指示如何為與該條目匹配的分組在PMT構(gòu)造條目的格式說(shuō)明符。
[0008]根據(jù)本發(fā)明的另一個(gè)實(shí)施例,通過(guò)充當(dāng)軟件定義網(wǎng)絡(luò)內(nèi)的控制器的第一網(wǎng)絡(luò)元件執(zhí)行一種方法以便減少緩慢路徑分組處理的負(fù)面影響。該方法包括存取充當(dāng)軟件定義網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)平面的第二網(wǎng)絡(luò)元件的分組未命中表(PMT)的未處理?xiàng)l目。PMT的每個(gè)條目存儲(chǔ)由第二網(wǎng)絡(luò)元件接收的不與第二網(wǎng)絡(luò)元件的一個(gè)或多個(gè)流表的集合內(nèi)的任何條目匹配的分組的部分。流表的集合包括一個(gè)或多個(gè)流條目的集合,每個(gè)流條目包括將對(duì)照入局分組的匹配部分進(jìn)行匹配的匹配準(zhǔn)則。每個(gè)流條目還包括將對(duì)具有與該流條目的匹配準(zhǔn)則匹配的匹配部分的分組執(zhí)行的一個(gè)或多個(gè)動(dòng)作的集合。該方法還包括:響應(yīng)于對(duì)PMT的未處理?xiàng)l目的存取,使得第二網(wǎng)絡(luò)元件將一個(gè)或多個(gè)流條目的集合插入到流表的集合的一個(gè)或多個(gè)流表中。在一個(gè)實(shí)施例中,第一網(wǎng)絡(luò)兀件通過(guò)向第二網(wǎng)絡(luò)兀件傳送指不對(duì)PMT的未處理?xiàng)l目的拉請(qǐng)求的拉條目請(qǐng)求消息并從第二網(wǎng)絡(luò)元件接收包含PMT的一個(gè)或多個(gè)未處理?xiàng)l目的集合的拉條目響應(yīng)消息來(lái)存取PMT的未處理?xiàng)l目。
[0009]在本發(fā)明的一個(gè)實(shí)施例中,一種網(wǎng)絡(luò)元件充當(dāng)軟件定義網(wǎng)絡(luò)(SDN)內(nèi)的轉(zhuǎn)發(fā)平面,并減少緩慢路徑分組處理的負(fù)面影響。該網(wǎng)絡(luò)元件包括一個(gè)或多個(gè)物理網(wǎng)絡(luò)接口的集合。物理網(wǎng)絡(luò)接口的集合配置成接收將轉(zhuǎn)發(fā)的分組。物理網(wǎng)絡(luò)接口的集合還配置成:一旦SDN中的控制器尋求對(duì)分組未命中表(PMT)的未處理?xiàng)l目的存取,便向控制器提供所述存取。PMT將存儲(chǔ)由物理網(wǎng)絡(luò)接口的集合接收的不與一個(gè)或多個(gè)流表的集合的任何流條目匹配的分組的部分。該網(wǎng)絡(luò)元件還包括配置成用于配置一個(gè)或多個(gè)流表的集合的分組處理模塊。流表的集合包括一個(gè)或多個(gè)流條目的集合,每個(gè)流條目包括用于與入局分組的匹配部分進(jìn)行比較的匹配準(zhǔn)則。流條目的集合中的每個(gè)流條目還包括將對(duì)具有與流條目的匹配準(zhǔn)則匹配的匹配部分的分組執(zhí)行的一個(gè)或多個(gè)動(dòng)作的集合。分組處理模塊還配置成確定所接收的分組的匹配部分是否與流表的集合的流條目的集合的任何流條目的匹配準(zhǔn)則匹配。分組處理模塊還配置成在所接收的分組不與流表的集合的任何條目匹配時(shí)執(zhí)行未命中過(guò)程。該未命中過(guò)程是:插入所接收的分組的至少一部分作為PMT的條目;或基于所接收的分組更新PMT的現(xiàn)有條目。
[0010]在本發(fā)明的另一個(gè)實(shí)施例中,一種網(wǎng)絡(luò)元件充當(dāng)軟件定義網(wǎng)絡(luò)內(nèi)的控制器,并減少緩慢路徑分組處理的負(fù)面影響。該網(wǎng)絡(luò)元件包括一個(gè)或多個(gè)物理網(wǎng)絡(luò)接口的集合和耦合到物理網(wǎng)絡(luò)接口的集合的控制模塊??刂颇K配置成存取充當(dāng)軟件定義網(wǎng)絡(luò)內(nèi)的轉(zhuǎn)發(fā)平面的第二網(wǎng)絡(luò)元件的分組未命中表(PMT)的未處理?xiàng)l目。PMT的每個(gè)條目存儲(chǔ)由第二網(wǎng)絡(luò)元件接收的不與第二網(wǎng)絡(luò)元件的一個(gè)或多個(gè)流表的集合內(nèi)的任何條目匹配的分組的部分。流表的集合包括一個(gè)或多個(gè)流條目的集合,每個(gè)流條目將包括用于與入局分組的匹配部分進(jìn)行比較的匹配準(zhǔn)則。每個(gè)流條目還將包括將對(duì)具有與該流條目的匹配準(zhǔn)則匹配的匹配部分的分組執(zhí)行的一個(gè)或多個(gè)動(dòng)作的集合??刂颇K還配置成:響應(yīng)于對(duì)PMT的未處理?xiàng)l目的存取,向第二網(wǎng)絡(luò)元件傳送一個(gè)或多個(gè)流條目修改消息。所述一個(gè)或多個(gè)流條目修改消息指示將一個(gè)或多個(gè)流條目的集合插入到流表的集合的一個(gè)或多個(gè)流表中的命令。
[0011]在本發(fā)明的實(shí)施例中,不與流表中的任何條目匹配的“未命中”分組可以立即進(jìn)行處理(根據(jù)可配置默認(rèn)規(guī)則表),而不必須等到來(lái)自控制器的指令到達(dá)才能進(jìn)行。此外,不是將這些未命中分組傳送到控制器(并且可能淹沒(méi)控制器),而是可以將未命中分組(或其完整或部分副本)存儲(chǔ)在轉(zhuǎn)發(fā)平面中,直到控制平面準(zhǔn)備好對(duì)它們進(jìn)行處理。
[0012]根據(jù)本發(fā)明的另一個(gè)實(shí)施例,通過(guò)充當(dāng)軟件定義網(wǎng)絡(luò)內(nèi)的控制器的第一網(wǎng)絡(luò)元件執(zhí)行一種方法以便減少緩慢路徑分組處理的負(fù)面影響。該方法包括存取充當(dāng)軟件定義網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)平面的第二網(wǎng)絡(luò)元件的分組未命中表(PMT)的未處理?xiàng)l目。PMT的每個(gè)條目存儲(chǔ)由第二網(wǎng)絡(luò)元件接收的不與第二網(wǎng)絡(luò)元件的一個(gè)或多個(gè)流表的集合內(nèi)的任何條目匹配的分組的部分。流表的集合包括一個(gè)或多個(gè)流條目的集合,每個(gè)流條目包括用于與入局分組的匹配部分進(jìn)行比較的匹配準(zhǔn)則。每個(gè)流條目還包括將對(duì)具有與該流條目的匹配準(zhǔn)則匹配的匹配部分的分組執(zhí)行的一個(gè)或多個(gè)動(dòng)作的集合。該方法還包括:響應(yīng)于對(duì)PMT的未處理?xiàng)l目的存取,使得第二網(wǎng)絡(luò)元件將一個(gè)或多個(gè)流條目的集合插入到流表的集合的一個(gè)或多個(gè)流表中。在該實(shí)施例中,第一網(wǎng)絡(luò)元件通過(guò)利用由第一和第二網(wǎng)絡(luò)元件的操作系統(tǒng)或所包含的軟件子系統(tǒng)提供的現(xiàn)有高速緩存一致性機(jī)制來(lái)存取PMT的未處理?xiàng)l目,其中現(xiàn)有高速緩存一致性機(jī)制允許第一和第二網(wǎng)絡(luò)元件各自表現(xiàn)得幾乎就像是PMT的數(shù)據(jù)位于該網(wǎng)絡(luò)元件的本地存儲(chǔ)器中。對(duì)于該實(shí)施例,弱高速緩存一致性是充分的并且期望的。在弱一致性的情況下,可能出現(xiàn)某種高速緩存不一致性,但是歸功于本發(fā)明的機(jī)制,在最壞的情況下,這將導(dǎo)致略微次優(yōu)的性能,這是因?yàn)椴灰恢碌臈l目將導(dǎo)致對(duì)PMT條目進(jìn)行某種程度的再處理。這通過(guò)弱高速緩存一致性機(jī)制的相對(duì)簡(jiǎn)單性而超過(guò)補(bǔ)償。
【附圖說(shuō)明】
[0013]通過(guò)參考以下描述和用于說(shuō)明本發(fā)明的實(shí)施例的附圖,可以最好地理解本發(fā)明。圖中:
圖1示出根據(jù)本發(fā)明一個(gè)實(shí)施例具有加速轉(zhuǎn)發(fā)的軟件定義網(wǎng)絡(luò)的一部分;
圖2示出根據(jù)本發(fā)明一個(gè)實(shí)施例由軟件定義網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)元件執(zhí)行以便加速轉(zhuǎn)發(fā)的流程;
圖3示出根據(jù)本發(fā)明一個(gè)實(shí)施例由軟件定義網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)元件執(zhí)行以便加速轉(zhuǎn)發(fā)的未命中過(guò)程;
圖4示出根據(jù)本發(fā)明一個(gè)實(shí)施例由軟件定義網(wǎng)絡(luò)中的控制器執(zhí)行以便加速轉(zhuǎn)發(fā)的流程;以及
圖5示出根據(jù)本發(fā)明一個(gè)實(shí)施例由軟件定義網(wǎng)絡(luò)中的控制器執(zhí)行以便加速轉(zhuǎn)發(fā)的可配置默認(rèn)規(guī)則表配置過(guò)程。
【具體實(shí)施方式】
[0014]在以下描述中,闡述了眾多具體細(xì)節(jié)。但是,將理解,沒(méi)有這些具體細(xì)節(jié)也可以實(shí)踐本發(fā)明的實(shí)施例。在其它情況下,沒(méi)有詳細(xì)示出公知的電路、結(jié)構(gòu)和技術(shù),以免使本描述變得模糊。
[0015]本說(shuō)明書中對(duì)“一個(gè)實(shí)施例”、“實(shí)施例”、“示例實(shí)施例”等的提及指示,所描述的實(shí)施例可以包括特定特征、結(jié)構(gòu)或特性,但不是每個(gè)實(shí)施例都一定包括該特定特征、結(jié)構(gòu)或特性。而且,這些短語(yǔ)不一定指相同的實(shí)施例。此外,當(dāng)結(jié)合一個(gè)實(shí)施例描述特定特征、結(jié)構(gòu)或特性時(shí),認(rèn)為本領(lǐng)域技術(shù)人員知道結(jié)合其它實(shí)施例實(shí)現(xiàn)該特征、結(jié)構(gòu)或特性,而不管是否有明確描述。
[0016]在以下描述和權(quán)利要求書中,可以使用術(shù)語(yǔ)“耦合”和“連接”及其派生詞。應(yīng)理解,這些術(shù)語(yǔ)不是意圖作為彼此的同義詞?!榜詈稀庇糜谥甘究梢曰蛘呖梢圆槐舜酥苯游锢砘螂娊佑|的兩個(gè)或兩個(gè)以上元件彼此協(xié)作或交互?!斑B接”用于指示在彼此耦合的兩個(gè)或兩個(gè)以上元件之間建立通信。
[0017]電子裝置(例如,終端站、網(wǎng)絡(luò)元件)利用諸如非暫時(shí)性有形計(jì)算機(jī)可讀介質(zhì)(例如,諸如磁盤、光盤、只讀存儲(chǔ)器、閃速存儲(chǔ)器裝置的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì))和暫時(shí)性計(jì)算機(jī)可讀傳輸介質(zhì)(例如,電、光、聲或其它形式的傳播信號(hào),如載波、紅外信號(hào))的計(jì)算機(jī)可讀介質(zhì)存儲(chǔ)和傳送(在內(nèi)部和/或通過(guò)網(wǎng)絡(luò)與其它電子裝置)代碼(由軟件指令組成)和數(shù)據(jù)。另夕卜,這些電子裝置通常包括耦合到諸如一個(gè)或多個(gè)非暫時(shí)性機(jī)器可讀介質(zhì)(用于存儲(chǔ)代碼和/或數(shù)據(jù))、用戶輸入/輸出裝置(例如,鍵盤、觸摸屏和/或顯示器)和網(wǎng)絡(luò)連接(用于利用傳播信號(hào)傳送代碼和/或數(shù)據(jù))的一個(gè)或多個(gè)其它組件的一個(gè)或多個(gè)處理器的集合。處理器的集合與其它組件的耦合通常通過(guò)一個(gè)或多個(gè)總線和橋接器(又稱為總線控制器)。因此,給定電子裝置的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)通常存儲(chǔ)指令以便在該電子裝置的一個(gè)或多個(gè)處理器上執(zhí)行。本發(fā)明的實(shí)施例的一個(gè)或多個(gè)部分可以利用軟件、固件和/或硬件的不同組合來(lái)實(shí)現(xiàn)。
[0018]如本文中所使用,網(wǎng)絡(luò)元件(例如,路由器、交換機(jī)、橋接器)是包括硬件和軟件的一件聯(lián)網(wǎng)設(shè)備,它在通信上互連網(wǎng)絡(luò)上的其它設(shè)備(例如,其它網(wǎng)絡(luò)元件、終端站)。一些網(wǎng)絡(luò)元件是對(duì)多個(gè)聯(lián)網(wǎng)功能(例如,路由、橋接、交換、第2層聚合、會(huì)話邊界控制、服務(wù)質(zhì)量和/或訂戶管理)提供支持和/或?qū)Χ鄠€(gè)應(yīng)用服務(wù)(例如,數(shù)據(jù)、語(yǔ)音和視頻)提供支持的“多服