對(duì)服務(wù)功能鏈中的服務(wù)功能的并行處理的制作方法
【專利說(shuō)明】對(duì)服務(wù)功能鏈中的服務(wù)功能的并行處理
【背景技術(shù)】
[0001] 現(xiàn)代的計(jì)算設(shè)備已經(jīng)變?yōu)閭€(gè)人、企業(yè),以及社交用途的無(wú)所不在的工具。如此,許 多現(xiàn)代的計(jì)算設(shè)備能夠連接到各種數(shù)據(jù)網(wǎng)絡(luò),包括因特網(wǎng)以及公司的內(nèi)聯(lián)網(wǎng),以從遠(yuǎn)程計(jì) 算設(shè)備(例如,服務(wù)器、數(shù)據(jù)庫(kù),等等)檢索和傳輸/接收數(shù)據(jù)通信(即,網(wǎng)絡(luò)分組)。多個(gè)遠(yuǎn)程 計(jì)算設(shè)備(即,從客戶端計(jì)算設(shè)備的角度來(lái)看)可以被聯(lián)網(wǎng)在一起,以形成數(shù)據(jù)中心,其中通 常提供一個(gè)或多個(gè)遠(yuǎn)程計(jì)算設(shè)備以執(zhí)行特定網(wǎng)絡(luò)功能(例如,分組檢查、入侵檢測(cè),以及防 火墻)。盡管傳統(tǒng)的遠(yuǎn)程計(jì)算設(shè)備包括了專用硬件以執(zhí)行特定網(wǎng)絡(luò)功能,但是,網(wǎng)絡(luò)功能正 在變得越來(lái)越虛擬化。例如,網(wǎng)絡(luò)功能虛擬化(NFV)是由數(shù)據(jù)中心管理員使用虛擬機(jī)(VM)來(lái) 構(gòu)建動(dòng)態(tài)虛擬化的網(wǎng)絡(luò)所依賴的網(wǎng)絡(luò)體系結(jié)構(gòu)概念。隨著虛擬化網(wǎng)絡(luò)功能正在VM上被越來(lái) 越多地執(zhí)行,虛擬化網(wǎng)絡(luò)功能可以在帶有通用處理器的現(xiàn)成服務(wù)器上執(zhí)行。
[0002] 虛擬化網(wǎng)絡(luò)功能,或服務(wù)功能,可以在被稱為服務(wù)鏈接的過(guò)程中被動(dòng)態(tài)地鏈接在 一起,以形成服務(wù)功能鏈。在服務(wù)功能鏈中,每一服務(wù)功能都由專門編制(spin)用于執(zhí)行服 務(wù)功能鏈的特定的服務(wù)功能的一個(gè)或多個(gè)VM執(zhí)行。可以針對(duì)與網(wǎng)絡(luò)分組相關(guān)聯(lián)的屬性(例 如,有效負(fù)載類型、網(wǎng)絡(luò)分組開(kāi)銷)定制哪些服務(wù)功能被包括在服務(wù)功能鏈中。例如,數(shù)據(jù)中 心的管理員可以定義安全服務(wù)功能(例如,虛擬化防火墻功能、虛擬化入侵檢測(cè)功能,等等) 的服務(wù)功能鏈,其中每一個(gè)服務(wù)功能都可以被配置成按特定順序來(lái)處理從計(jì)算設(shè)備接收到 的網(wǎng)絡(luò)分組。然而,以這樣的基于串行的順序來(lái)處理網(wǎng)絡(luò)分組可能會(huì)產(chǎn)生等待時(shí)間,并對(duì)服 務(wù)功能鏈的多個(gè)服務(wù)功能造成瓶頸效應(yīng)。例如,服務(wù)功能鏈中的最慢的服務(wù)功能變?yōu)閷?duì)性 能擴(kuò)展的限制。
[0003] 附圖簡(jiǎn)述
[0004] 在所附附圖中,以示例方式而非限制方式示出本文中所描述的概念。為說(shuō)明簡(jiǎn)單 和清楚起見(jiàn),附圖中所示出的元件不一定是按比例繪制的。在認(rèn)為合適的情況下,已在不同 的附圖之間重復(fù)了參考標(biāo)號(hào)以指示對(duì)應(yīng)的或類似的元件。
[0005] 圖1是用于通過(guò)包括若干個(gè)服務(wù)功能的服務(wù)功能鏈來(lái)處理網(wǎng)絡(luò)分組的系統(tǒng)的至少 一個(gè)實(shí)施例的簡(jiǎn)化框圖;
[0006] 圖2是圖1的系統(tǒng)的遠(yuǎn)程計(jì)算設(shè)備的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
[0007] 圖3是圖1和2的系統(tǒng)的遠(yuǎn)程計(jì)算設(shè)備的環(huán)境的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
[0008] 圖4是可以由圖1和2的遠(yuǎn)程計(jì)算設(shè)備執(zhí)行的用于通過(guò)服務(wù)功能路徑來(lái)處理網(wǎng)絡(luò)分 組的方法的至少一個(gè)實(shí)施例的簡(jiǎn)化流程圖;
[0009] 圖5是可以由圖1和2的遠(yuǎn)程計(jì)算設(shè)備執(zhí)行的用于標(biāo)識(shí)可以在服務(wù)功能鏈中并行地 執(zhí)行的服務(wù)功能的方法的至少一個(gè)實(shí)施例的簡(jiǎn)化流程圖;
[0010] 圖6是可以由圖4和5的方法所生成的服務(wù)功能鏈的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
[0011] 圖7是可以由圖4和5的方法所生成的服務(wù)功能鏈的另一實(shí)施例的簡(jiǎn)化框圖;
[0012] 圖8是可以由圖4和5的方法所生成的服務(wù)功能鏈的另一實(shí)施例的簡(jiǎn)化框圖;以及
[0013] 圖9是可以由圖4和5的方法所生成的服務(wù)功能鏈的另一實(shí)施例的簡(jiǎn)化框圖。
【具體實(shí)施方式】
[0014] 盡管本公開(kāi)的概念易于具有各種修改和替代形式,但是已在附圖中以示例方式示 出了本公開(kāi)的特定實(shí)施例,并將在本文中詳細(xì)地描述。然而,應(yīng)該理解,沒(méi)有將本公開(kāi)的概 念限制于所公開(kāi)的特定形式的意圖,相反,意圖旨在涵蓋符合本公開(kāi)和所附權(quán)利要求書(shū)的 所有修改、等效和替代方案。
[0015] 說(shuō)明書(shū)中對(duì)"一個(gè)實(shí)施例"、"實(shí)施例"、"說(shuō)明性實(shí)施例"等等的引用指示所描述的 實(shí)施例可包括特定特征、結(jié)構(gòu)或特性,但是,每一個(gè)實(shí)施例可包括或可以不一定包括該特定 特征、結(jié)構(gòu)或特性。此外,這樣的短語(yǔ)不一定是指同一個(gè)實(shí)施例。此外,當(dāng)結(jié)合一個(gè)實(shí)施例描 述特定特征、結(jié)構(gòu)或特性時(shí),認(rèn)為在本領(lǐng)域技術(shù)人員學(xué)識(shí)范圍內(nèi),可以與其他實(shí)施例一起實(shí) 施這樣的特征、結(jié)構(gòu)或特性,無(wú)論是否對(duì)此明確描述。另外,還應(yīng)該理解,"A,B,以及C中的至 少一個(gè)"的形式的列表中所包括的項(xiàng)可以表不(A); (B); (C): (A和B); (A和C); (B和C);或(A, B,以及C)。類似地,以"A,B,或C中的至少一個(gè)"的形式列出的項(xiàng)可以表示以);(8);(〇;(八和 B); (A和C); (B以及C);或(A,B,以及C)。
[0016] 在某些情況下,可在硬件、固件、軟件或其任何組合中實(shí)現(xiàn)所公開(kāi)的實(shí)施例。所公 開(kāi)的各實(shí)施例還可實(shí)現(xiàn)為攜載于或存儲(chǔ)在一個(gè)或多個(gè)瞬時(shí)的或非瞬時(shí)的機(jī)器可讀(例如, 計(jì)算機(jī)可讀)存儲(chǔ)介質(zhì)中的可以由一個(gè)或多個(gè)處理器讀取和執(zhí)行的指令。機(jī)器可讀存儲(chǔ)介 質(zhì)可以具體化為用于以可由機(jī)器讀取的形式存儲(chǔ)或傳輸信息的任何存儲(chǔ)設(shè)備、機(jī)制或其他 物理結(jié)構(gòu)(例如,易失性或非易失性存儲(chǔ)器、介質(zhì)盤或其他介質(zhì)設(shè)備)。
[0017] 在附圖中,某些結(jié)構(gòu)或方法特征能以特定安排和/或排序示出。然而,應(yīng)當(dāng)理解,這 樣的特定安排和/或排序可能不是必需的。相反,在某些實(shí)施例中,這樣的特征能以與在說(shuō) 明性附圖中所示出的不同的方式和/或順序安排。另外,在特定附圖中對(duì)結(jié)構(gòu)或方法特征的 包括不意味著暗示這樣的特征在所有實(shí)施例中都時(shí)必需的,并且在某些實(shí)施例中,可以不 包括這樣的特征,或者它可以與其他特征相結(jié)合。
[0018] 現(xiàn)在參考圖1,在一說(shuō)明性實(shí)施例中,用于通過(guò)服務(wù)功能鏈來(lái)處理網(wǎng)絡(luò)分組的系統(tǒng) 100包括連接到包括網(wǎng)絡(luò)控制器1〇8(例如,控制平面)的遠(yuǎn)程計(jì)算設(shè)備106的計(jì)算設(shè)備102。 在某些實(shí)施例中,遠(yuǎn)程計(jì)算設(shè)備106可以位于數(shù)據(jù)中心110。數(shù)據(jù)中心110可以是包括任意數(shù) 量的遠(yuǎn)程計(jì)算設(shè)備106的高度異構(gòu)的數(shù)據(jù)中心環(huán)境。在某些實(shí)施例中,網(wǎng)絡(luò)控制器108可以 被包括在遠(yuǎn)程計(jì)算設(shè)備106中,如圖1所示,或位于遠(yuǎn)程計(jì)算設(shè)備106外部,這取決于網(wǎng)絡(luò)體 系結(jié)構(gòu)和數(shù)據(jù)中心110中的遠(yuǎn)程計(jì)算設(shè)備106的數(shù)量。在使用中,通過(guò)網(wǎng)絡(luò)104在計(jì)算設(shè)備 102和遠(yuǎn)程計(jì)算設(shè)備106之間傳輸網(wǎng)絡(luò)分組。可以使用任何合適的通信協(xié)議(例如,TCP/IP) 來(lái)在相應(yīng)的設(shè)備之間進(jìn)行網(wǎng)絡(luò)分組的傳輸,取決于,例如,遠(yuǎn)程計(jì)算設(shè)備106的特定類型或 配置。
[0019] 在使用中,如下文更詳細(xì)地描述的,在從計(jì)算設(shè)備102接收到網(wǎng)絡(luò)分組時(shí),遠(yuǎn)程計(jì) 算設(shè)備106確定哪些網(wǎng)絡(luò)功能或服務(wù)(例如,防火墻服務(wù)、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)服務(wù)、負(fù)載平 衡服務(wù)、深度分組檢查(DPI)服務(wù)、傳輸控制協(xié)議(TCP)優(yōu)化服務(wù)等等)需要對(duì)網(wǎng)絡(luò)分組執(zhí) 行。在某些實(shí)施例中,可以基于對(duì)應(yīng)于與網(wǎng)絡(luò)分組相關(guān)聯(lián)的屬性(諸如網(wǎng)絡(luò)分組類型)的流 動(dòng)策略或規(guī)則,來(lái)確定所需的服務(wù)。例如,web流量網(wǎng)絡(luò)分組可能要求入侵檢測(cè)服務(wù)、應(yīng)用程 序遞送控制器服務(wù),以及防火墻服務(wù)。與網(wǎng)絡(luò)分組相關(guān)聯(lián)的屬性可以橫跨開(kāi)放系統(tǒng)互連 (OSI)模型的各層。例如,屬性可包括應(yīng)用程序?qū)有畔?、因特網(wǎng)協(xié)議(IP)頭部信息、目的地信 息(例如,目的地端口、IP、DNS,等等),和/或等等。
[0020] 在傳統(tǒng)的網(wǎng)絡(luò)體系結(jié)構(gòu)中,每一服務(wù)都通常在包括被配置成執(zhí)行一個(gè)特定服務(wù)的 服務(wù)專用硬件的單獨(dú)物理設(shè)備上執(zhí)行。相比之下,基于軟件的網(wǎng)絡(luò)體系結(jié)構(gòu)(例如,軟件定 義的網(wǎng)絡(luò)(SDN)和網(wǎng)絡(luò)功能虛擬化(NFV))可以使用軟件來(lái)實(shí)例化服務(wù)功能鏈中的接收到的 網(wǎng)絡(luò)分組所需的網(wǎng)絡(luò)功能或服務(wù)的虛擬實(shí)例。服務(wù)功能鏈?zhǔn)前从行蛐蛄蟹胖锰摂M化服務(wù)實(shí) 例或服務(wù)功能并跨例如諸如遠(yuǎn)程計(jì)算設(shè)備106之類的一個(gè)或多個(gè)物理遠(yuǎn)程計(jì)算設(shè)備來(lái)創(chuàng)建 一個(gè)或多個(gè)虛擬機(jī)(VM)的過(guò)程。
[0021] 在常規(guī)服務(wù)功能鏈操作中,在由一個(gè)服務(wù)功能已經(jīng)處理完接收到的網(wǎng)絡(luò)分組之 后,基于由服務(wù)功能鏈所定義的順序,必須將它轉(zhuǎn)發(fā)到下一服務(wù)功能,供進(jìn)行處理。另外,在 常規(guī)服務(wù)功能鏈操作中,創(chuàng)建串行網(wǎng)絡(luò)分組處理流水線,其中,每一服務(wù)功能都等待服務(wù)鏈 中的前一服務(wù)功能完成,然后,它才能開(kāi)始。如下面將更詳細(xì)地討論的,網(wǎng)絡(luò)控制器108基于 所需的服務(wù)來(lái)確定合適的服務(wù)功能鏈,并根據(jù)該服務(wù)功能鏈,實(shí)例化一個(gè)或多個(gè)VM,以執(zhí)行 虛擬服務(wù)功能。一些服務(wù)功能,諸如DPI、入侵檢測(cè)系統(tǒng)(IDS),以及入侵預(yù)防系統(tǒng)(IPS),通 常要求過(guò)程密集型分析,該過(guò)程密集型分析由于與執(zhí)行服務(wù)功能相關(guān)聯(lián)的等待時(shí)間,而可 能導(dǎo)致瓶頸。
[0022]某些服務(wù)功能,諸如DPI或IDS,可能不需要在服務(wù)功能鏈的關(guān)鍵路徑上執(zhí)行。換言 之,服務(wù)功能鏈的某些服務(wù)功能可能不依賴于服務(wù)功能鏈的其他服務(wù)功能。因此,可以與服 務(wù)功能鏈的其他服務(wù)功能中的一個(gè)或多個(gè)并發(fā)地(即,并行地)執(zhí)行獨(dú)立的服務(wù)功能。例如, 網(wǎng)絡(luò)控制器108可能不判斷是丟棄還是進(jìn)一步傳輸網(wǎng)絡(luò)分組,直到服務(wù)功能鏈的所有服務(wù) 功能都被執(zhí)行。如此,DPI服務(wù)可以被調(diào)度為與服務(wù)功能鏈的其他服務(wù)功能中的一個(gè)或多個(gè) 并行地發(fā)生,由此,隱藏與DPI服務(wù)相關(guān)聯(lián)的等待時(shí)間,并縮小與服務(wù)功能鏈的所有服務(wù)功 能相關(guān)聯(lián)的總體等待時(shí)間。進(jìn)一步,由于服務(wù)功能鏈?zhǔn)窃赩M中創(chuàng)建的,因此,可以動(dòng)態(tài)地改 變服務(wù)功能鏈的服務(wù)功能以及它們的順序。例如,正在被執(zhí)行的服務(wù)功能可以向網(wǎng)絡(luò)控制 器108觸發(fā)警告,以基于該警告,執(zhí)行另外的服務(wù)功能(即,向服務(wù)功能鏈中添加服務(wù)功能)。 在另一個(gè)示例中,正在被執(zhí)行的服務(wù)功能可以向網(wǎng)絡(luò)控制器108觸發(fā)警告,使得特定的服務(wù) 功能可能具有長(zhǎng)于預(yù)期的等待時(shí)間,以及另一個(gè)服務(wù)功能(如果有的話)可以被并行地執(zhí) 行。作為并行地執(zhí)行的補(bǔ)充或替代,被標(biāo)識(shí)為能夠被并行地執(zhí)行的這樣的服務(wù)功能可以異 步地執(zhí)行,以使得結(jié)果影響推遲的時(shí)間長(zhǎng)度之后(即,不一定立即執(zhí)行)的服務(wù)功能鏈的未 來(lái)狀態(tài)。
[0023] 計(jì)算設(shè)備102可以具體化為,或以別的方式包括,能夠執(zhí)行本文中所描述的功能的 任何類型的計(jì)算設(shè)備,包括但不限于,服務(wù)器計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算設(shè)備、家庭自 動(dòng)化網(wǎng)關(guān)設(shè)備、可編程邏輯控制器、智能電器、消費(fèi)類電子設(shè)備、無(wú)線接入點(diǎn)、網(wǎng)絡(luò)交