本公開總體涉及通信領(lǐng)域,并且更具體地,涉及網(wǎng)絡(luò)環(huán)境中的雙向流粘性。
背景技術(shù):
數(shù)據(jù)中心越來越多地被企業(yè)用于有效的協(xié)作和互動以及存儲數(shù)據(jù)和資源。典型的數(shù)據(jù)中心網(wǎng)絡(luò)包含無數(shù)的網(wǎng)絡(luò)元件,包括主機、負(fù)載均衡器、路由器、交換機等。連接網(wǎng)絡(luò)元件的網(wǎng)絡(luò)提供到數(shù)據(jù)中心服務(wù)的安全的用戶訪問,以及用于按照需要部署、互連和聚集共享資源的基礎(chǔ)設(shè)施,包括應(yīng)用、主機、設(shè)備和存儲設(shè)備。提高運營效率和優(yōu)化數(shù)據(jù)中心的資源利用率是數(shù)據(jù)中心管理者所面臨的挑戰(zhàn)中的一些挑戰(zhàn)。數(shù)據(jù)中心管理者需要有彈性的基礎(chǔ)設(shè)施,該基礎(chǔ)設(shè)施持續(xù)支持不同的應(yīng)用和服務(wù)并且保護(hù)應(yīng)用和服務(wù)免受中斷。適當(dāng)計劃和運營的數(shù)據(jù)中心網(wǎng)絡(luò)提供應(yīng)用和數(shù)據(jù)完整性并且優(yōu)化應(yīng)用可用性和性能。
附圖說明
為了提供對本公開及其特征和優(yōu)點的更完整的理解,參考結(jié)合附圖的以下描述,其中相似的附圖標(biāo)記表示相似的部分,其中:
圖1是示出用于網(wǎng)絡(luò)環(huán)境中的雙向流粘性的通信系統(tǒng)的簡化框圖;
圖2是示出通信系統(tǒng)的實施例的示例細(xì)節(jié)的簡化框圖;
圖3是示出通信系統(tǒng)的實施例的其他示例細(xì)節(jié)的簡化框圖;
圖4是示出可以與通信系統(tǒng)的實施例相關(guān)聯(lián)的示例操作的簡化流程圖;
圖5是示出通信系統(tǒng)的實施例的其他示例細(xì)節(jié)的簡化框圖;
圖6是示出通信系統(tǒng)的實施例的其他示例細(xì)節(jié)的簡化框圖;以及
圖7是示出可以與通信系統(tǒng)的實施例相關(guān)聯(lián)的其他示例操作的簡化流程圖。
具體實施方式
概述
本公開提供了用于網(wǎng)絡(luò)環(huán)境中的雙向流粘性(stickness)的示例方法,包括:接收來自網(wǎng)絡(luò)中的源地址并去往網(wǎng)絡(luò)外部的目的地地址的流的分組,查找流表以尋找對應(yīng)于流的條目,以及如果查找未命中,則將前向流條目和反向流條目緩存在流表中,前向流條目指示要對該分組執(zhí)行的下一動作,并且反向流條目指示前一跳,該分組是從該前一跳接收的,從而維護(hù)雙向流粘性。一些實施例還包括從網(wǎng)絡(luò)外部的目的地地址接收去往網(wǎng)絡(luò)中的源地址的另一分組,以及將另一分組轉(zhuǎn)發(fā)到在反向流條目中列出的前一跳。
如本文所使用的,術(shù)語“流”可以包括分組的流。屬于特定流的基本上所有分組可以具有一組公共屬性。每個屬性可以是將功能應(yīng)用于一個或多個分組報頭字段(例如,目的地IP地址)、傳輸報頭字段(例如,目的地端口號)或應(yīng)用報頭字段(例如,實時協(xié)議(RTP)報頭字段;分組的一個或多個特性(例如,多協(xié)議標(biāo)簽交換(MPLS)標(biāo)簽的數(shù)量);或從分組處理得到的一個或多個字段(例如,下一跳IP地址、輸出接口))。在許多實施例中,每個流可以由唯一的5元組來標(biāo)識,該5元組包括例如,協(xié)議、源互聯(lián)網(wǎng)協(xié)議(IP)地址、源端口、目的地IP地址以及目的地端口。如果分組基本上滿足特定流的所有屬性,則該分組可以被表征為屬于該流。例如,具有相同5元組的分組可以屬于相同的流。
示例實施例
轉(zhuǎn)到圖1,圖1是根據(jù)一個示例實施例,示出用于網(wǎng)絡(luò)環(huán)境中的雙向流粘性的通信系統(tǒng)10的簡化框圖。圖1示出了網(wǎng)絡(luò)12,網(wǎng)絡(luò)12包括服務(wù)網(wǎng)絡(luò)12內(nèi)的流的多個服務(wù)節(jié)點(例如,14(1)-14(3))。例如,來自/去往源節(jié)點16的流在穿過網(wǎng)絡(luò)12時可以穿過服務(wù)節(jié)點14(1)-14(3);每個服務(wù)節(jié)點14(1)-14(3)可以對該流執(zhí)行一個或多個服務(wù)。注意,雖然圖中僅示出三個服務(wù)節(jié)點和一個源節(jié)點,但任何數(shù)目的服務(wù)節(jié)點和源節(jié)點都可以在網(wǎng)絡(luò)12內(nèi)被實例化。
僅作為示例而非限制,假設(shè)從源節(jié)點16發(fā)送的分組去往網(wǎng)絡(luò)12外部的節(jié)點,并且順序通過服務(wù)節(jié)點14(1)-14(3),從而在服務(wù)節(jié)點14(3)處被服務(wù)之后退出網(wǎng)絡(luò)12。根據(jù)虛擬拓?fù)洌?wù)鏈可以被示為順序鏈中連續(xù)的節(jié)點;根據(jù)物理拓?fù)洌總€服務(wù)節(jié)點14(1)-14(3)可以包括在單獨的(或相同的)服務(wù)器(例如,分別在服務(wù)器18(1)-18(3))中實例化的虛擬機。源節(jié)點16還可以被實例化為另一(或相同的)服務(wù)器18(4)中的虛擬機。注意,在實施例的寬泛范圍內(nèi),網(wǎng)絡(luò)12可以包括任何數(shù)量的服務(wù)器。流入和流出網(wǎng)絡(luò)12的所有分組可以由網(wǎng)關(guān)20相應(yīng)地路由。
根據(jù)各種實施例,每個服務(wù)器18(1)-18(4)可包括(或連接到)轉(zhuǎn)發(fā)器22。例如,轉(zhuǎn)發(fā)器22可被實現(xiàn)在連接到每個服務(wù)器機架的單獨的結(jié)構(gòu)互聯(lián)上。雖然轉(zhuǎn)發(fā)器22在其邏輯表現(xiàn)形式中可包括單個實體,但在其物理表現(xiàn)形式中,其可包括分布在網(wǎng)絡(luò)12中的多個服務(wù)器(例如,18(1)-18(4))上的多個實例。轉(zhuǎn)發(fā)器22可包括流表24和轉(zhuǎn)發(fā)表26以用于轉(zhuǎn)發(fā)穿過網(wǎng)絡(luò)12的分組。在具體實施例中,由服務(wù)鏈中最后一個服務(wù)節(jié)點(例如,14(3))服務(wù)的分組可在轉(zhuǎn)發(fā)到下一節(jié)點之前由轉(zhuǎn)發(fā)器22進(jìn)行處理。通信系統(tǒng)10的各種實施例可在負(fù)載均衡到彈性伸縮的虛擬服務(wù)功能集(例如,服務(wù)節(jié)點14(1)-14(3))時保證雙向流粘性,而不管網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)。
一般地,術(shù)語“服務(wù)節(jié)點”包括在物理或虛擬網(wǎng)絡(luò)元件上執(zhí)行的服務(wù)功能的實例(例如,NAT、防火墻、深度分組檢測(DPI)、合法攔截(LI)等)。在一些實施例中,每個服務(wù)節(jié)點14(1)-14(3)可以表示相同服務(wù)功能的單獨實例;在其他實施例中,每個服務(wù)節(jié)點14(1)-14(3)可以表示不同服務(wù)功能的單獨的實例;在另外其他實施例中,一些服務(wù)節(jié)點(例如,14(1)和14(2))可以表示相同服務(wù)功能的兩個實例,并且其他服務(wù)節(jié)點(例如,14(3))可以表示不同服務(wù)功能的實例。
如本文所使用的,術(shù)語“網(wǎng)絡(luò)元件”意圖包括計算機、網(wǎng)絡(luò)設(shè)備、服務(wù)器、路由器、交換機、網(wǎng)關(guān)、網(wǎng)橋、負(fù)載均衡器、入侵檢測設(shè)備、處理器、模塊或可操作為在網(wǎng)絡(luò)環(huán)境中交換信息的任何其他適當(dāng)?shù)脑O(shè)備、組件、元件或?qū)ο?。此外,網(wǎng)絡(luò)元件可包括協(xié)助其操作的任何適當(dāng)?shù)挠布?、軟件、組件、模塊、接口或?qū)ο?。這可包括允許數(shù)據(jù)或信息進(jìn)行有效交換的適當(dāng)?shù)乃惴ê屯ㄐ艆f(xié)議。術(shù)語“服務(wù)鏈”指的是以特定順序相鏈接(例如,連接、附接、耦合等)以向穿過網(wǎng)絡(luò)的分組提供復(fù)合服務(wù)的一個或多個服務(wù)功能。
為了闡述通信系統(tǒng)10的技術(shù),理解可以穿過圖1中所示的系統(tǒng)的通信是很重要的。以下基礎(chǔ)信息可被視為本公開可被合理解釋的基礎(chǔ)。這樣的信息被真誠地提供以僅作為示例,從而不應(yīng)以任何方式被解釋為限制本公開及其可能的應(yīng)用的寬泛的范圍。
網(wǎng)絡(luò)服務(wù)被廣泛地部署在許多網(wǎng)絡(luò)中并且是必不可少的。每個網(wǎng)絡(luò)服務(wù)可以包括多個單獨的服務(wù)功能,例如,安全、廣域網(wǎng)(WAN)加速、以及服務(wù)器負(fù)載均衡。形成整個復(fù)合服務(wù)的一部分的服務(wù)功能可以物理地位于網(wǎng)絡(luò)基礎(chǔ)設(shè)施中的不同點處,例如廣域網(wǎng)、數(shù)據(jù)中心、企業(yè)、校園等。對于某些網(wǎng)絡(luò)服務(wù),流量通過提供服務(wù)功能的服務(wù)節(jié)點序列進(jìn)行轉(zhuǎn)發(fā)。沿著服務(wù)節(jié)點序列轉(zhuǎn)發(fā)流量通?;诜?wù)特性。例如,某些流量可被指向域邊界網(wǎng)關(guān)以用于監(jiān)測和收費;某些其他流量可通過負(fù)載均衡器引導(dǎo)以在轉(zhuǎn)發(fā)到數(shù)據(jù)中心服務(wù)之前分散性能壓力;移動網(wǎng)絡(luò)運營商可拆分移動寬帶流量,并沿著不同的卸載路徑引導(dǎo)它們;對于入侵檢測系統(tǒng)(IDS)/入侵防護(hù)系統(tǒng)(IPS),防火墻可用于過濾流量;安全網(wǎng)關(guān)可用于加密/解密流量;穿越不同網(wǎng)絡(luò)技術(shù)段(例如IPv4/IPv6)的某些流量可被指向載波級網(wǎng)絡(luò)地址轉(zhuǎn)換器(CGNAT);等等。
在各種網(wǎng)絡(luò)(例如,服務(wù)提供商網(wǎng)絡(luò)、企業(yè)網(wǎng)絡(luò)、以及校園網(wǎng)絡(luò))中的一種新興的方法是將網(wǎng)絡(luò)服務(wù)虛擬化并將它們托管在數(shù)據(jù)中心中。網(wǎng)絡(luò)基礎(chǔ)設(shè)施即服務(wù)(NIAAS)在不同的服務(wù)節(jié)點和網(wǎng)絡(luò)邊緣之間建立適當(dāng)?shù)木W(wǎng)絡(luò)連接(數(shù)據(jù)中心互連(DCI))。與基于物理設(shè)備的方法不同,虛擬化的網(wǎng)絡(luò)服務(wù)提供了基于流量的動態(tài)容量需求來伸展或收縮網(wǎng)絡(luò)服務(wù)的機會。然而,彈性伸縮的網(wǎng)絡(luò)服務(wù)(和服務(wù)功能)可能會造成網(wǎng)絡(luò)基礎(chǔ)設(shè)施不得不將兩個方向上的流固定到給定服務(wù)節(jié)點的問題。
如果服務(wù)節(jié)點執(zhí)行NAT,則會產(chǎn)生額外的復(fù)雜度。NAT是在網(wǎng)絡(luò)服務(wù)(例如服務(wù)器負(fù)載均衡器(SLB)、防火墻等)中常用的服務(wù)功能。NAT用于保存IP地址、維護(hù)流量親和性、以及執(zhí)行安全性等。NAT可以用于將一個地址空間中的每個地址映射到另一空間中對應(yīng)的地址;NAT還可以結(jié)合網(wǎng)絡(luò)偽裝(或IP偽裝)使用以隱藏整個IP地址空間,該整個IP地址空間通常包括在另一(通常是公共的)地址空間中的單個Ip地址之后的(隱藏)網(wǎng)絡(luò)IP地址。NAT服務(wù)功能通常使用狀態(tài)轉(zhuǎn)換表來執(zhí)行以將隱藏地址映射到單個IP地址,并將傳出IP分組重尋址到出口,從而使得它們仿佛起源于網(wǎng)絡(luò)邊緣處的路由設(shè)備。在反向通信路徑中,通過使用存儲在轉(zhuǎn)換表中的規(guī)則(例如,狀態(tài)),響應(yīng)被映射回起源IP地址。
NAT給服務(wù)鏈架構(gòu)帶來了許多挑戰(zhàn)。例如,網(wǎng)絡(luò)基礎(chǔ)設(shè)施在NAT變換后不能使服務(wù)鏈與流相關(guān),因為NAT改變了流元組,包括服務(wù)特性。此外,地址轉(zhuǎn)換服務(wù)節(jié)點可以轉(zhuǎn)換源互聯(lián)網(wǎng)協(xié)議(IP)地址(源NAT)、目的地IP地址(目的地NAT)和/或流的其它特性;只有NAT服務(wù)節(jié)點可以知道流在前向和反向方向上的精確映射。此外,NAT需要流總是被引導(dǎo)通過服務(wù)節(jié)點,因為NAT服務(wù)功能基于特定于服務(wù)節(jié)點的轉(zhuǎn)換。從NAT服務(wù)節(jié)點獲得轉(zhuǎn)換(例如,映射)可能不實際,如果服務(wù)節(jié)點本身不在網(wǎng)絡(luò)基礎(chǔ)設(shè)施的控制之下并且未暴露任何標(biāo)準(zhǔn)接口以查詢流表中的任何狀態(tài)。此外,大多數(shù)網(wǎng)絡(luò)不提供這樣的信息來供使用外部應(yīng)用程序接口(API)進(jìn)行實時查詢。
通信系統(tǒng)10被配置為解決這些問題(以及其他問題),以提供用于網(wǎng)絡(luò)環(huán)境中的雙向流粘性的系統(tǒng)和方法。根據(jù)各種實施例,轉(zhuǎn)發(fā)器22可以接收來自對應(yīng)于網(wǎng)絡(luò)12中的源節(jié)點16的源地址,并去往網(wǎng)絡(luò)12外部的目的地地址的流1的分組。轉(zhuǎn)發(fā)器22可以查找流表24以查找對應(yīng)于流1的條目,并且如果查找未命中(miss),則轉(zhuǎn)發(fā)器22可以在流表24中緩存前向流條目和反向流條目。前向流條目可以指示路由查找,而反向流條目可以指示從其接收分組的前一跳以維持雙向流動粘性。一些實施例還包括轉(zhuǎn)發(fā)器22接收來自網(wǎng)絡(luò)12外部的目的地地址并且去往對應(yīng)于源節(jié)點16的源地址的另一分組(例如,流1的反向流量)。轉(zhuǎn)發(fā)器22可以將分組轉(zhuǎn)發(fā)到反向流條目中列出的前一跳。
在一些實施例中,前向流條目可以包括查找轉(zhuǎn)發(fā)表26的動作,轉(zhuǎn)發(fā)表26包括路由查找的結(jié)果。因此,轉(zhuǎn)發(fā)器22可以查找轉(zhuǎn)發(fā)表26。在各種實施例中,轉(zhuǎn)發(fā)表26可以包括將分組轉(zhuǎn)發(fā)到網(wǎng)關(guān)20的動作(例如,針對離開網(wǎng)絡(luò)12的分組)。流表24中的每個條目可以包括至少源地址字段、目的地地址字段和下一動作字段。因此,流1的前向流條目可以包括源地址字段中的(源節(jié)點16的)源地址、目的地地址字段中的目的地地址、以及下一動作字段中的查找轉(zhuǎn)發(fā)表26的指令。另一方面,反向流條目包括源地址字段中的目的地地址、目的地地址字段中的(源節(jié)點16的)源地址以及下一動作字段中的轉(zhuǎn)發(fā)到前一跳的指令。
在一些實施例中,前一跳可以是對分組執(zhí)行網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),從而將源地址轉(zhuǎn)換為轉(zhuǎn)換后的源地址的最后一個服務(wù)節(jié)點(例如,14(3))。在這種情況下,前向流條目和反向流條目可以基于轉(zhuǎn)換后的源地址來標(biāo)識流的分組。注意,任何數(shù)量的流可以穿過網(wǎng)絡(luò)12,流與流表24中相應(yīng)的前向流條目和反向流條目相關(guān)聯(lián)。
在一些實施例中,從源節(jié)點16通過服務(wù)節(jié)點14(1)-14(3)到網(wǎng)關(guān)20的網(wǎng)絡(luò)連接可以由在服務(wù)器18(1)-18(4)中實例化的轉(zhuǎn)發(fā)器22提供。注意,實例是軟件對象的特定實現(xiàn)方式。在一些實施例中,當(dāng)轉(zhuǎn)發(fā)器22在多個服務(wù)器18(1)-18(4)中被實例化時,可以在每個服務(wù)器18(1)-18(4)中實現(xiàn)(和執(zhí)行)轉(zhuǎn)發(fā)器22的多個基本上相同的實例。在其他實施例中,當(dāng)轉(zhuǎn)發(fā)器22在多個服務(wù)器18(1)-18(4)中被實例化時,每個實例可以是分開的并且與其他實例不同。因此,轉(zhuǎn)發(fā)器22的每個實例可以包括單獨的流表24,其內(nèi)容可以不同于其他實例中的流表的內(nèi)容。服務(wù)器18(1)-18(4)中的每個虛擬機可以作為第一跳網(wǎng)絡(luò)交換機/路由器被附接到轉(zhuǎn)發(fā)器22。在從源節(jié)點16接收到分組時,轉(zhuǎn)發(fā)器22中的轉(zhuǎn)發(fā)表規(guī)則可以指示如何處理分組(例如,向著分組的目的地轉(zhuǎn)發(fā)到服務(wù)鏈中的第一服務(wù)節(jié)點(例如,14(1)))。
根據(jù)一些實施例,在第一服務(wù)節(jié)點14(1)處理分組之后,它將分組發(fā)送到轉(zhuǎn)發(fā)器22,轉(zhuǎn)發(fā)器22然后使用轉(zhuǎn)發(fā)表規(guī)則來確定服務(wù)鏈中的下一服務(wù)節(jié)點(例如,14(2)),以此類推。在一些實施例中,轉(zhuǎn)發(fā)器22的一個實例可以將分組封裝在隧道報頭中,并且向服務(wù)于服務(wù)鏈中的下一服務(wù)節(jié)點的轉(zhuǎn)發(fā)器22的另一實例發(fā)送分組。注意,當(dāng)在每個服務(wù)跳中存在多于一個服務(wù)節(jié)點(例如,在服務(wù)器18(1)-18(4)中實例化的多于一個服務(wù)節(jié)點)時,向給定服務(wù)節(jié)點發(fā)送流量的轉(zhuǎn)發(fā)器22的實例可以多于一個并且基本上分布在整個網(wǎng)絡(luò)12上。
考慮服務(wù)鏈中的每個服務(wù)可以彈性伸縮,則在流已經(jīng)通過n元組分類被標(biāo)識之后,可以沿著路徑創(chuàng)建轉(zhuǎn)發(fā)器22的每個實例中的粘性條目(例如,基于諸如源IP地址、目的地IP地址、源端口、目的地端口、協(xié)議等之類的字段),使得流的后續(xù)分組由相同的服務(wù)節(jié)點服務(wù)。轉(zhuǎn)發(fā)器22可以維護(hù)流表24以創(chuàng)建流條目。
在各種實施例中,轉(zhuǎn)發(fā)器22可以首先為每個分組查找流表以確定是否存在匹配的流表條目。如果存在匹配的流表條目,則轉(zhuǎn)發(fā)器22可以遵從緩存在匹配的流表條目中的下一服務(wù)節(jié)點條目。如果沒有匹配的流表條目,則轉(zhuǎn)發(fā)器22可以恢復(fù)到其常規(guī)查找(例如,L2或L3查找)邏輯以確定適當(dāng)?shù)南乱环?wù)跳。只要流是活的,就可以維護(hù)轉(zhuǎn)發(fā)器22中的流表條目。可以基于該流的數(shù)據(jù)平面活動來啟發(fā)式地確定流的狀態(tài)(例如,其是活的還是死的)。例如,在沒有檢測到數(shù)據(jù)平面活動的時限到期時,可以從流表中移除流表條目。時限可以基于每個流表條目來預(yù)配置。
然而,當(dāng)反向流必須經(jīng)過相同的服務(wù)節(jié)點時(例如,因為服務(wù)相對于連接是全狀態(tài)的,或者存在以相反方向檢查流的需要以適當(dāng)?shù)靥幚磉B接(例如,NAT,防火墻)等)),僅在一個方向上確保流粘性是不夠的。如果反向流的分組在不保持流狀態(tài)的另一服務(wù)節(jié)點上結(jié)束,則分組可以被丟棄并且雙向連接將不會建立。
在一些實施例中,可以創(chuàng)建在轉(zhuǎn)發(fā)器22上的前向和反向方向上的散列(hash)算法,從而向經(jīng)伸縮的服務(wù)節(jié)點集發(fā)送流量,使得盡管分組的字段被反轉(zhuǎn),但相同的散列值被計算。如果采用這樣的交換散列,則只要分布式轉(zhuǎn)發(fā)器22上的服務(wù)節(jié)點的列表由用于負(fù)載均衡的控制平面進(jìn)行相同地編程,前向和反向流便將在同一服務(wù)設(shè)備中結(jié)束。然而,如果服務(wù)節(jié)點執(zhí)行地址轉(zhuǎn)換(S-NAT、D-NAT、6到4轉(zhuǎn)換等),則散列算法可能不工作。在這種情況下,只有服務(wù)節(jié)點知道在任一方向上的流的精確映射。
根據(jù)一些實施例,轉(zhuǎn)發(fā)器22可以在流條目創(chuàng)建時在其緩存的流表條目中維護(hù)下一服務(wù)跳和上一服務(wù)跳。上一服務(wù)跳可以被創(chuàng)建為轉(zhuǎn)發(fā)器22在交換{源ip,目的地ip}和{源端口,目的地端口}字段之后創(chuàng)建的流表條目的下一跳條目。因為已經(jīng)在前向方向上的前幾個分組期間創(chuàng)建了反向流條目,但是交換了關(guān)鍵字段,所以反向流可以匹配該流表條目,并且可以被轉(zhuǎn)發(fā)到處理了前向流條目的同一服務(wù)節(jié)點。
無論由服務(wù)節(jié)點(例如NAT)所進(jìn)行的分組處理的類型是什么,這種方法都可以工作。例如,轉(zhuǎn)發(fā)器22可以基本上總是在兩個方向上被呈現(xiàn)相同的關(guān)鍵字段,因為轉(zhuǎn)發(fā)器22處于由NAT服務(wù)節(jié)點進(jìn)行的分組處理之前或之后。此外,不需要具有分布式控制平面或由控制平面進(jìn)行的分組檢查來建立雙向流粘性。
轉(zhuǎn)到通信系統(tǒng)10的基礎(chǔ)架構(gòu),網(wǎng)絡(luò)拓?fù)淇梢园ɑミB的任意數(shù)量的服務(wù)器、硬件加速器、虛擬機、交換機(包括分布式虛擬交換機)、服務(wù)節(jié)點、路由器和其他節(jié)點,以形成大型復(fù)雜網(wǎng)絡(luò)。節(jié)點可以是任何電子設(shè)備、客戶端、服務(wù)器、對等體、服務(wù)、應(yīng)用或能夠通過網(wǎng)絡(luò)中的通信信道發(fā)送、接收或轉(zhuǎn)發(fā)信息的其他對象。圖1的元件可以通過采用任何適當(dāng)?shù)倪B接(有線或無線)的一個或多個接口彼此耦合,這為電子通信提供了可行的路徑。此外,基于特定配置需要,這些元件中的任何一個或多個可以被組合或從架構(gòu)中移除。
通信系統(tǒng)10可以包括能夠進(jìn)行TCP/IP通信以在網(wǎng)絡(luò)中電子發(fā)送或接收數(shù)據(jù)分組的配置。通信系統(tǒng)10還可以在適當(dāng)?shù)那闆r下并且基于特定需要而結(jié)合用戶數(shù)據(jù)報協(xié)議/互聯(lián)網(wǎng)協(xié)議(UDP/IP)或任何其它適當(dāng)?shù)膮f(xié)議來操作。此外,網(wǎng)關(guān)、路由器、交換機和任何其他適當(dāng)?shù)墓?jié)點(物理的或虛擬的)可以用于協(xié)助網(wǎng)絡(luò)中各個節(jié)點之間的電子通信。
注意,分配給圖1的元件的數(shù)字和字母標(biāo)記不意味著任何類型的層級;這些命名是任意的并且僅用于教導(dǎo)。這樣的命名不應(yīng)以任何方式被解釋為限制其可能受益于通信系統(tǒng)10的特征的潛在環(huán)境中的能力、功能或應(yīng)用。應(yīng)當(dāng)理解,圖1中所示的通信系統(tǒng)10被簡化以易于說明。
示例網(wǎng)絡(luò)環(huán)境可以通過物理基礎(chǔ)設(shè)施來配置,該物理基礎(chǔ)設(shè)施可以包括一個或多個網(wǎng)絡(luò),并且還可以任何形式配置,包括但不限于局域網(wǎng)(LAN)、無線局域網(wǎng)(WLAN)、VLAN,城域網(wǎng)(MAN)、VPN、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、任何其他適當(dāng)?shù)募軜?gòu)或系統(tǒng)或協(xié)助網(wǎng)絡(luò)中通信的其任何組合。
在一些實施例中,通信鏈路可以表示支持LAN環(huán)境的任何電子鏈路,例如,電纜、以太網(wǎng)、無線技術(shù)(例如,IEEE 802.11x)、ATM、光纖等或其任何適當(dāng)組合。在其他實施例中,通信鏈路可以表示通過任何適當(dāng)介質(zhì)(例如,數(shù)字用戶線(DSL)、電話線、T1線、T3線、無線、衛(wèi)星、光纖、電纜、以太網(wǎng)等或其任何適當(dāng)組合)和/或通過諸如廣域網(wǎng)(例如,互聯(lián)網(wǎng))之類的任何附加網(wǎng)絡(luò)的遠(yuǎn)程連接。
在各種實施例中,服務(wù)節(jié)點14(1)-14(3)可以包括適當(dāng)?shù)夭迦刖W(wǎng)絡(luò)12的物理服務(wù)設(shè)備(例如,獨立的盒)。在其他實施例中,服務(wù)節(jié)點14(1)-14(3)可以包括在另一網(wǎng)絡(luò)元件內(nèi)部附接的服務(wù)卡,例如網(wǎng)絡(luò)12中的路由器或交換機。在其他實施例中,服務(wù)節(jié)點14(1)-14(3)可以包括在網(wǎng)絡(luò)12中的適當(dāng)?shù)木W(wǎng)絡(luò)元件(例如,服務(wù)器、交換機、路由器等)上執(zhí)行的虛擬應(yīng)用。在一些實施例中,服務(wù)節(jié)點14(1)-14(3)可以包括上述各項的組合。
在各種實施例中,轉(zhuǎn)發(fā)器22可以包括在適當(dāng)?shù)木W(wǎng)絡(luò)元件(例如,結(jié)構(gòu)互連、交換機、服務(wù)器18(1)-18(4)等)上執(zhí)行以實施本文描述的操作的一個或多個應(yīng)用。在一些實施例中,轉(zhuǎn)發(fā)器22可以包括在多個網(wǎng)絡(luò)元件中執(zhí)行的分布式應(yīng)用。注意,在實施例的寬泛范圍內(nèi),可以在網(wǎng)絡(luò)12中實例化轉(zhuǎn)發(fā)器22的任何適當(dāng)數(shù)量的實例。
源節(jié)點16可以表示任何適當(dāng)?shù)木W(wǎng)絡(luò)端點。在各種實施例中,源節(jié)點16可以包括在適當(dāng)?shù)挠嬎阍O(shè)備(例如,服務(wù)器)中執(zhí)行的單獨的應(yīng)用(例如,客戶端-服務(wù)器網(wǎng)絡(luò)架構(gòu)中的服務(wù)器/客戶端應(yīng)用)。在其他實施例中,源節(jié)點16可以包括在相同或不同的計算設(shè)備(例如,數(shù)據(jù)中心中的服務(wù)器刀片)上的單獨的虛擬機。在一些實施例中,源節(jié)點16可以包括配置在一個或多個機箱中的服務(wù)器刀片。在其他實施例中,源節(jié)點16可以表示移動設(shè)備,例如蜂窩電話、膝上型計算機、平板或智能電話。在各種實施例中,網(wǎng)關(guān)20可以表示網(wǎng)絡(luò)邊緣設(shè)備,例如邊緣路由器,基本上所有進(jìn)入和離開網(wǎng)絡(luò)12的分組都要穿過該網(wǎng)絡(luò)邊緣設(shè)備。注意,在實施例的寬泛范圍內(nèi),可以在網(wǎng)絡(luò)12中激活任何數(shù)量的服務(wù)器、服務(wù)節(jié)點、源節(jié)點、網(wǎng)關(guān)等。
注意,服務(wù)器18(1)-18(3)可以包括配置有或連接到其他適當(dāng)?shù)木W(wǎng)絡(luò)元件(例如,交換機、結(jié)構(gòu)互連等)以實現(xiàn)網(wǎng)絡(luò)12中的連接性的多個物理服務(wù)器(例如,機架或刀片服務(wù)器)。例如,雖然在圖中未明確指示,但每個服務(wù)器18(1)-18(3)可以包括配置有適當(dāng)?shù)霓D(zhuǎn)發(fā)器實例以實現(xiàn)與其他服務(wù)器、網(wǎng)關(guān)20和各服務(wù)器中執(zhí)行的應(yīng)用(包括服務(wù)節(jié)點)通信的單獨的結(jié)構(gòu)互連。
轉(zhuǎn)到圖2,圖2是示出通信系統(tǒng)10的實施例的示例細(xì)節(jié)的簡化框圖。假設(shè)源節(jié)點16在網(wǎng)絡(luò)12中具有IP地址127.2.3.4,并且發(fā)送流1的第一分組28A,分組28A被發(fā)往具有IP地址10.0.0.1并且在網(wǎng)絡(luò)12外部的目的地節(jié)點30。分組28A可以經(jīng)過包括服務(wù)節(jié)點14(1)-14(N)的服務(wù)鏈,其中N是大于或等于1的任何整數(shù)。僅作為示例而非限制,假設(shè)最后一個服務(wù)節(jié)點14(N)執(zhí)行NAT,將源地址127.2.3.4轉(zhuǎn)換為1.2.3.4。分組28A可以被重新生成為28B,其指示源IP地址1.2.3.4和目的地地址(未改變)10.0.0.1。
分組28B可以在轉(zhuǎn)發(fā)器22處被接收,轉(zhuǎn)發(fā)器22除了流表24和轉(zhuǎn)發(fā)表26之外,還可以包括查找模塊32、緩存模塊34、存儲器元件36和處理器38。流表24可以包括源地址字段40、目的地地址字段42和動作字段44。當(dāng)在轉(zhuǎn)發(fā)器22處接收到分組28B時,查找模塊32可以執(zhí)行對流表24的查找。由于分組28B是轉(zhuǎn)發(fā)器22看到的流1的第一個分組,因此對流表24的查找可能未命中。緩存模塊34可以緩存與流表24中的流1對應(yīng)的兩個條目:第一(前向流)條目和第二(反向流)條目,其中,第一(前向流)條目包括源地址字段40中的轉(zhuǎn)換后的源IP地址1.2.3.4、目的地地址字段42中的目的地IP地址10.0.0.1以及動作字段44中的查找轉(zhuǎn)發(fā)表26的下一動作,其中,第二(反向流)條目包括源地址字段40中的目的地IP地址10.0.0.1、目的地地址字段42中的源IP地址1.2.3.4以及動作字段44中的轉(zhuǎn)發(fā)到前一跳(即服務(wù)節(jié)點14(N))的下一動作。注意,在反向流條目中交換(例如,反轉(zhuǎn))了前向流條目的源地址字段值和目的地地址字段值。轉(zhuǎn)發(fā)表26可以包括單個條目以將基本上所有傳出分組轉(zhuǎn)發(fā)到網(wǎng)關(guān)20。因此,分組28B可以被發(fā)送出到網(wǎng)關(guān)20,網(wǎng)關(guān)20可以將其路由到10.0.0.1處的目的地節(jié)點30。
假設(shè)目的地節(jié)點30發(fā)送流1的返回分組46。返回分組46可以指示源地址10.0.0.1和目的地地址1.2.3.4。網(wǎng)關(guān)20可以將返回分組46轉(zhuǎn)發(fā)給轉(zhuǎn)發(fā)器22。查找模塊32可以查找流表24,并且在返回分組46的源地址和目的地地址分別與源地址字段40和目的地地址字段42中的值匹配的情況下在反向流條目(條目2)中找到命中。根據(jù)動作字段44中的下一動作值,轉(zhuǎn)發(fā)器22可以將返回分組46轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(N)。服務(wù)節(jié)點14(N)可以將目的地地址從1.2.3.4轉(zhuǎn)換到127.2.3.4,并且在適當(dāng)時將返回分組46轉(zhuǎn)發(fā)到服務(wù)鏈的前一跳,返回分組46在基本上穿過服務(wù)鏈的所有服務(wù)節(jié)點14(1)-14(N)之后最終到達(dá)源節(jié)點16。
轉(zhuǎn)到圖3,圖3是示出通信系統(tǒng)10的實施例的示例細(xì)節(jié)的簡化框圖。僅作為示例而非限制,假設(shè)網(wǎng)絡(luò)12中的源節(jié)點16(1)-16(3)分別在相應(yīng)的流A、B和C中與目的地節(jié)點30(1)-30(3)通信。流A中的分組可以在通過網(wǎng)關(guān)20退出網(wǎng)絡(luò)12之前,穿過服務(wù)節(jié)點14(1)、14(2)和14(3),反之亦然(例如,來自目的地節(jié)點30(1)的返回分組可以相反的順序穿過相同的服務(wù)節(jié)點);流B中的分組可以在通過網(wǎng)關(guān)20退出網(wǎng)絡(luò)12之前,穿過服務(wù)節(jié)點14(4)、14(2)和14(5),反之亦然;流C中的分組可以在通過網(wǎng)關(guān)20退出網(wǎng)絡(luò)12之前穿過服務(wù)節(jié)點14(6)和14(7),反之亦然。從源節(jié)點16(1)-16(3)到各目的地節(jié)點30(1)-30(3)的分組可以被從最后一個服務(wù)節(jié)點(例如,14(3)、14(5)和14(7))發(fā)送到轉(zhuǎn)發(fā)器22。
在轉(zhuǎn)發(fā)器22(1)中維護(hù)的流表24(1)可以包括對應(yīng)于每個流A、B和C的前向流條目和反向流條目。例如,流A的前向流條目可以指示源地址值SOURCE 1、目的地地址值DESTINATION 1和查找轉(zhuǎn)發(fā)表26的下一動作;流A的反向流條目可以指示源地址值DESTINATION 1、目的地地址值SRC 1和轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(3)的下一動作。類似地,流B的前向流條目可以指示源地址值SOURCE 2、目的地地址值DESTINATION 2和查找轉(zhuǎn)發(fā)表26的下一動作;流B的反向流條目可以指示源地址值DESTINATION 2、目的地地址值SOURCE 2和轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(5)的下一動作。類似地,流C的前向流條目可以指示源地址值SOURCE 3、目的地地址值DESTINATION 3和查找轉(zhuǎn)發(fā)表26的下一動作;流C的反向流條目可以指示源地址值DESTINATION 3、目的地地址值SOURCE 3和轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(7)的下一動作。因此,流A的返回分組可以由轉(zhuǎn)發(fā)器22(1)一致地轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(3),從而保持雙向流粘性。流B的返回分組可以由轉(zhuǎn)發(fā)器22(1)一致地轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(5);并且流C的返回分組可以由轉(zhuǎn)發(fā)器22一致地轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(7)。
注意,在一些實施例中,轉(zhuǎn)發(fā)器還可以在服務(wù)節(jié)點之間被實例化(例如,服務(wù)節(jié)點14(2)和14(3)之間的轉(zhuǎn)發(fā)器22(2))。在示例實施例中,轉(zhuǎn)發(fā)器22(2)可以被實例化并且與執(zhí)行服務(wù)節(jié)點22(2)的服務(wù)器相關(guān)聯(lián)。在一些實施例中,流表24(2)中的前向流條目可以指示查找轉(zhuǎn)發(fā)表的本地副本的動作;流表24(2)中的反向流條目可以指示轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(2)。在其他實施例中,流表24(2)中的前向流條目可以指定(例如,代替查找轉(zhuǎn)發(fā)表26以做出路由決策)在從網(wǎng)絡(luò)12內(nèi)的源節(jié)點到網(wǎng)絡(luò)12外部的目的地節(jié)點的方向上的下一服務(wù)節(jié)點(例如,14(3));反向流條目可以指定在轉(zhuǎn)發(fā)器22(2)處從其接收分組的前一服務(wù)節(jié)點(例如,14(2))。因此,轉(zhuǎn)發(fā)器22的每個實例可以協(xié)助在網(wǎng)絡(luò)12內(nèi)跨越從源到目的地(反之亦然)的整個服務(wù)鏈保持流粘性。
轉(zhuǎn)到圖4,圖4是示出可以與通信系統(tǒng)10的實施例相關(guān)聯(lián)的示例操作100的簡化框圖。在許多實施例中,操作100可以在轉(zhuǎn)發(fā)器22處執(zhí)行。在102,可以在轉(zhuǎn)發(fā)器22處接收分組。在104,查找模塊32可以查找流表24。在106,可以確定是否找到相應(yīng)的條目(例如,通過在流表24中搜索源地址和目的地地址)。如果沒有找到條目(例如,未命中),則在108處,可以查找轉(zhuǎn)發(fā)表26以做出路由決策。在110,緩存模塊34可以在流表24中緩存前向流條目和反向流條目。
回到106,如果在流表24中找到條目(例如,指示如下情形的命中:先前已經(jīng)看到流的其他分組或者該分組是先前看到的前向流的反向流分組),則在112,可以執(zhí)行在流表24中指定的動作。例如,在114,可以查找轉(zhuǎn)發(fā)表26(例如,命中指示先前已經(jīng)看到流的其他分組);或者在116處,分組可以被轉(zhuǎn)發(fā)到反向流條目中列出的前一跳(例如,命中指示該分組是先前看到的前向流的反向流分組)。
轉(zhuǎn)到圖5,圖5是示出根據(jù)通信系統(tǒng)10的實施例的與轉(zhuǎn)發(fā)器22相關(guān)聯(lián)的示例細(xì)節(jié)的簡化框圖。注意,在網(wǎng)絡(luò)12中,同一服務(wù)功能的多個實例可以在單獨的服務(wù)器中實例化,例如,用于彈性伸縮的目的。服務(wù)功能N可以分別在服務(wù)器1和服務(wù)器2上的兩個單獨的實例14(NA)和14(NB)中實例化。每個服務(wù)節(jié)點14(NA)和14(NB)可以分別連接到相應(yīng)服務(wù)器18(1)和18(2)上的轉(zhuǎn)發(fā)器22的單獨且不同的實例22A和22B。然而,轉(zhuǎn)發(fā)器22的這樣的實例中僅有一個可以轉(zhuǎn)發(fā)分組,并且可以被稱為“指定轉(zhuǎn)發(fā)器”。轉(zhuǎn)發(fā)器22的不是針對服務(wù)功能的指定轉(zhuǎn)發(fā)器的所有其他實例可以被稱為“非指定轉(zhuǎn)發(fā)器”。根據(jù)各種實施例,轉(zhuǎn)發(fā)器22可以包括連接到同一服務(wù)功能的單獨且不同的實例的所有指定轉(zhuǎn)發(fā)器實例和非指定轉(zhuǎn)發(fā)器實例的全部。此外,每個轉(zhuǎn)發(fā)器22可以包括用于不同服務(wù)功能的指定轉(zhuǎn)發(fā)器實例和非指定轉(zhuǎn)發(fā)器實例的組合。例如,用于服務(wù)節(jié)點14(NB)的指定轉(zhuǎn)發(fā)器實例22B可以作為同一服務(wù)器中的另一連接的服務(wù)節(jié)點的非指定轉(zhuǎn)發(fā)器實例。
每個指定轉(zhuǎn)發(fā)器實例和非指定轉(zhuǎn)發(fā)器實例可以維護(hù)流表24的單獨且不同的本地副本。例如,指定轉(zhuǎn)發(fā)器實例22B可以維護(hù)流表24B;非指定轉(zhuǎn)發(fā)器實例22A可以維護(hù)流表24A。注意,這里使用的流表24可以指代由指定轉(zhuǎn)發(fā)器實例和(一個或多個)非指定轉(zhuǎn)發(fā)器實例維護(hù)的流表的基本上所有本地副本的聚合,除非作為單獨的副本被調(diào)出,例如24A和24B。
在這種多轉(zhuǎn)發(fā)器環(huán)境中,流的基本上所有流量都通過指定轉(zhuǎn)發(fā)器實例,而托管一些流量的目的地/源的其他非指定轉(zhuǎn)發(fā)器實例例如可以僅對其目的地/源是粘性的。給定服務(wù)器上的轉(zhuǎn)發(fā)器實例可以具有流表的不同視圖,這取決于它是指定轉(zhuǎn)發(fā)器實例還是非指定轉(zhuǎn)發(fā)器實例。
僅作為示例,假設(shè)在三個獨立的服務(wù)器中針對相同的服務(wù)功能實例化了四個服務(wù)實例,其中兩個服務(wù)功能實例在兩個獨立的服務(wù)器上并且另兩個服務(wù)功能實例在同一服務(wù)器上。每個服務(wù)器可以包括相應(yīng)的轉(zhuǎn)發(fā)器實例,其中一個實例包括指定轉(zhuǎn)發(fā)器實例,并且其他實例包括非指定轉(zhuǎn)發(fā)器實例。去往服務(wù)功能的基本上所有分組可以到達(dá)執(zhí)行指定轉(zhuǎn)發(fā)器實例的服務(wù)器。指定轉(zhuǎn)發(fā)器實例將所有流緩存到所有服務(wù)功能實例,并基于反向流將返回流量引導(dǎo)到正確的服務(wù)器或本地轉(zhuǎn)發(fā)器實例。當(dāng)分組到達(dá)其他服務(wù)器上的任何非指定轉(zhuǎn)發(fā)器實例時,非指定轉(zhuǎn)發(fā)器實例可以基于其緩存的粘性負(fù)載均衡流表來將流量引導(dǎo)到它們的本地服務(wù)節(jié)點(如果適用的話),否則將分組轉(zhuǎn)發(fā)到指定轉(zhuǎn)發(fā)器實例。
回到圖中所示的示例,僅作為示例,假定源節(jié)點16將分組A 120發(fā)送到網(wǎng)絡(luò)12外部的目的地。分組A 120在到達(dá)服務(wù)節(jié)點14(NA)和網(wǎng)關(guān)20之間的轉(zhuǎn)發(fā)器22之前,穿過一系列服務(wù)節(jié)點14(1)-14(NA)。為了便于說明,在圖中僅示出了一個轉(zhuǎn)發(fā)器22。在實施例的寬泛范圍內(nèi)可以包括任何數(shù)量的轉(zhuǎn)發(fā)器(例如,在服務(wù)鏈中的每個節(jié)點之間具有一個轉(zhuǎn)發(fā)器)。僅作為示例,假設(shè)連接到服務(wù)節(jié)點14(NA)的轉(zhuǎn)發(fā)器實例22A是用于服務(wù)功能N的非指定轉(zhuǎn)發(fā)器實例之一。
在操作期間,當(dāng)非指定轉(zhuǎn)發(fā)器實例22B接收到分組A 120時,執(zhí)行對本地流表副本24A的查找。如果未找到條目(如針對流的第一分組的情況),則本地流表副本24A可以緩存有前向流條目和反向流條目。前向流條目可以指示分組被轉(zhuǎn)發(fā)到指定轉(zhuǎn)發(fā)器實例22B;反向流條目可以指示分組被轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(NA)。分組A 120可以被轉(zhuǎn)發(fā)到指定轉(zhuǎn)發(fā)器實例22B。指定轉(zhuǎn)發(fā)器實例22B可以執(zhí)行對本地流表副本24B的查找。如果沒有找到條目(如針對流的第一分組的情況),則本地流表副本24B可以緩存有前向流條目和反向流條目。前向流條目可以指示對轉(zhuǎn)發(fā)表的查找;反向流條目可以指示分組被轉(zhuǎn)發(fā)到非指定轉(zhuǎn)發(fā)器實例22A。分組A 120可以被轉(zhuǎn)發(fā)到網(wǎng)關(guān)20(例如,根據(jù)轉(zhuǎn)發(fā)表條目)并最終到網(wǎng)絡(luò)12外。
在返回流中,返回分組AR 122可以由網(wǎng)關(guān)20發(fā)送到指定轉(zhuǎn)發(fā)器實例22B。指定轉(zhuǎn)發(fā)器實例22B可以執(zhí)行對本地流表副本24B的查找。其中的反向流條目可以提供匹配,從而指示分組AR 122被轉(zhuǎn)發(fā)到非指定轉(zhuǎn)發(fā)器實例22A。因此,指定轉(zhuǎn)發(fā)器實例22B可以將分組AR 122轉(zhuǎn)發(fā)到非指定轉(zhuǎn)發(fā)器實例22A。非指定的轉(zhuǎn)發(fā)器實例22A可以執(zhí)行對本地流表副本24A的查找。其中的反向流條目可以提供匹配,從而指示分組AR 122被轉(zhuǎn)發(fā)到服務(wù)節(jié)點14(NA)。
轉(zhuǎn)到圖6,圖6是示出根據(jù)通信系統(tǒng)10的實施例的與轉(zhuǎn)發(fā)器22相關(guān)聯(lián)的示例細(xì)節(jié)的簡化框圖。轉(zhuǎn)發(fā)器22可以包括用于不同服務(wù)功能的指定轉(zhuǎn)發(fā)器和非指定轉(zhuǎn)發(fā)器的組合。例如,服務(wù)器18中的轉(zhuǎn)發(fā)器22可以包括用于服務(wù)節(jié)點14(1)的非指定轉(zhuǎn)發(fā)器和用于另一服務(wù)節(jié)點14(2)的指定轉(zhuǎn)發(fā)器。將服務(wù)器18中的轉(zhuǎn)發(fā)器22配置為用于服務(wù)節(jié)點14(2)的指定轉(zhuǎn)發(fā)器和用于服務(wù)節(jié)點14(1)的非指定轉(zhuǎn)發(fā)器的選擇可以基于各種因素,例如負(fù)載均衡、流統(tǒng)計、服務(wù)器能力和其他參數(shù)。
轉(zhuǎn)到圖7,圖7是示出根據(jù)通信系統(tǒng)10的各種實施例的可與轉(zhuǎn)發(fā)器22相關(guān)聯(lián)的示例操作130的簡化流程圖。在132,可以在連接到服務(wù)節(jié)點14的轉(zhuǎn)發(fā)器22處從服務(wù)節(jié)點14接收分組。在134,可以查找本地流表副本。在136,可以確定在本地流表副本中是否找到匹配條目。如果未找到匹配條目,則在138,可以確定轉(zhuǎn)發(fā)器實例是否是指定轉(zhuǎn)發(fā)器實例。如果不是,則在140,分組可以被轉(zhuǎn)發(fā)到指定轉(zhuǎn)發(fā)器實例。在142,前向流和反向流條目可以被緩存在本地流表副本中。前向流條目可以指示分組被轉(zhuǎn)發(fā)到指定轉(zhuǎn)發(fā)器實例;反向流條目可以指示分組被轉(zhuǎn)發(fā)到服務(wù)節(jié)點14。
另一方面,如果轉(zhuǎn)發(fā)器實例是指定轉(zhuǎn)發(fā)器實例,則在144,可以查找轉(zhuǎn)發(fā)表以確定下一跳。在146,前向流和反向流條目可以被緩存在本地流表副本中。前向流條目可以指示分組被轉(zhuǎn)發(fā)到下一跳;反向流條目可以指示分組被轉(zhuǎn)發(fā)到非指定轉(zhuǎn)發(fā)器實例(如果適用的話,例如,分組被從非指定轉(zhuǎn)發(fā)器實例接收)或服務(wù)節(jié)點14(例如,分組被從服務(wù)節(jié)點14接收)。回到136,如果在本地流表副本中找到匹配條目,則在148,可執(zhí)行流表中指定的適當(dāng)?shù)膭幼?例如,轉(zhuǎn)發(fā)到指定轉(zhuǎn)發(fā)器實例;查找轉(zhuǎn)發(fā)表;轉(zhuǎn)發(fā)到非指定轉(zhuǎn)發(fā)器實例;轉(zhuǎn)發(fā)到服務(wù)節(jié)點等等)。
注意,在本說明書中,對包括在“一個實施例”、“示例實施例”、“實施例”、“另一實施例”、“一些實施例”、“各種實施例”、“其它實施例”、“替代實施例”等中的各種特征(例如,元件、結(jié)構(gòu)、模塊、組件、步驟、操作、特性等)的提及旨在表示任何這樣的特征被包括在本公開的一個或多個實施例中,但是可以或可以不必在相同的實施例中組合。
還應(yīng)注意,本說明書中使用的“應(yīng)用”可以包括可執(zhí)行文件(可執(zhí)行文件包括可以在計算機上被理解和處理的指令),并且還可以包括在執(zhí)行期間加載的庫模塊、目標(biāo)文件、系統(tǒng)文件、硬件邏輯、軟件邏輯或任何其它可執(zhí)行模塊。此外,詞語“優(yōu)化”和相關(guān)術(shù)語是指指定結(jié)果的速度和/或效率的改進(jìn)的技術(shù)術(shù)語,并且不意圖指示用于實現(xiàn)指定結(jié)果的過程已經(jīng)實現(xiàn),或能夠?qū)崿F(xiàn)“最佳”或完美速度/完美效率的狀態(tài)。
在示例實現(xiàn)中,本文概述的活動的至少一些部分可以在例如轉(zhuǎn)發(fā)器22中的軟件中實現(xiàn)。在一些實施例中,這些特征中的一個或多個可以在這些元件外部提供的或以任何適當(dāng)方式合并的硬件中實現(xiàn),以實現(xiàn)預(yù)期的功能。各種網(wǎng)絡(luò)元件(例如,轉(zhuǎn)發(fā)器22)可以包括可以協(xié)調(diào)以實現(xiàn)如本文所述的操作的軟件(或往復(fù)式軟件)。在其他實施例中,這些元件可以包括協(xié)助其操作的任何適當(dāng)?shù)乃惴?、硬件、軟件、組件、模塊、接口或?qū)ο蟆?/p>
此外,本文描述和示出的轉(zhuǎn)發(fā)器22(和/或其相關(guān)聯(lián)的結(jié)構(gòu))還可以包括用于在網(wǎng)絡(luò)環(huán)境中接收、發(fā)送和/或以其它方式傳送數(shù)據(jù)或信息的適當(dāng)?shù)慕涌?。此外,與各個節(jié)點相關(guān)聯(lián)的處理器和存儲器元件中的一些可以被移除或以其他方式合并,使得單個處理器和單個存儲器元件負(fù)責(zé)某些活動。在一般意義上,附圖中示出的布置在它們的表示中可以更合乎邏輯,而物理架構(gòu)可以包括這些元件的各種置換、組合和/或混合。必須注意,可以使用無數(shù)可能的設(shè)計配置來實現(xiàn)這里概述的操作目標(biāo)。因此,相關(guān)聯(lián)的基礎(chǔ)設(shè)施具有無數(shù)的替代安排、設(shè)計選擇、設(shè)備可能性、硬件配置、軟件實現(xiàn)、設(shè)備選項等。
在一些示例實施例中,一個或多個存儲器元件(例如,存儲器元件36)可以存儲用于本文描述的操作的數(shù)據(jù)。這包括能夠在非暫態(tài)介質(zhì)中存儲指令(例如,軟件、邏輯、代碼等),使得執(zhí)行指令以執(zhí)行本說明書中所描述的活動的存儲器元件。處理器可以執(zhí)行與數(shù)據(jù)相關(guān)聯(lián)的任何類型的指令以實現(xiàn)本說明書中這里詳細(xì)描述的操作。在一個示例中,處理器(例如,處理器38)可以將元素或物品(例如,數(shù)據(jù))從一個狀態(tài)或事物轉(zhuǎn)換到另一狀態(tài)或事物。在另一示例中,本文概述的活動可以利用固定邏輯或可編程邏輯(例如,由處理器執(zhí)行的軟件/計算機指令)來實現(xiàn),并且本文中標(biāo)識的元件可以是某種類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場可編程門陣列(FPGA)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM))、包括數(shù)字邏輯的ASIC、軟件、代碼、電子指令、閃存、光盤、CD-ROM、DVD ROM、磁卡或光卡、適合于存儲電子指令的其他類型的機器可讀介質(zhì),或其任何適當(dāng)?shù)慕M合。
在適當(dāng)?shù)那闆r下且基于特定需求,這些設(shè)備還可以將信息保存在任何適當(dāng)類型的非暫態(tài)存儲介質(zhì)(例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)、現(xiàn)場可編程門陣列(FPGA)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程ROM(EEPROM)等等)、軟件、硬件、或任何其他適合的組件、設(shè)備、元件、或?qū)ο笾??;谔囟ㄐ枨蠛蛯崿F(xiàn)方式,可以在任何數(shù)據(jù)庫、寄存器、表、緩存、隊列、控制列表或存儲結(jié)構(gòu)中提供正被跟蹤、發(fā)送、接收或存儲在通信系統(tǒng)10中的信息,在任何適當(dāng)?shù)臅r間幀可對其進(jìn)行引用。本文所討論的任何存儲項應(yīng)被解釋為包含在廣義的“存儲器元件”中。相似地,本說明書中所描述的任何可能的處理元件、模塊、以及機器應(yīng)該被理解為包含在廣義的術(shù)語“處理器”中。
同樣重要的是應(yīng)當(dāng)注意參考之前的附圖所描述的操作和步驟僅僅示出了可由系統(tǒng)執(zhí)行或在系統(tǒng)內(nèi)的一些可能的場景。這些操作中的一些可以適當(dāng)?shù)乇粍h除或移除,或者這些步驟可以在不偏離所討論的概念的范圍的情境下,相當(dāng)程度地被修改或者改變。此外,這些操作的時序可相當(dāng)程度地被改變而實現(xiàn)本公開中所教導(dǎo)的結(jié)果。上述操作流程出于示例與討論的目而提供。系統(tǒng)提供大量的靈活性,因為在不偏離所討論的概念的教導(dǎo)的情境下,可以提供任何適合的布置、時序、配置以及定時機制。
盡管已經(jīng)參考特定布置和配置詳細(xì)描述了本公開,但是這些示例配置和布置可以在不脫離本公開的范圍的情況下顯著改變。例如,雖然已經(jīng)參考包括某些網(wǎng)絡(luò)接入和協(xié)議的特定通信交換描述了本公開,但是通信系統(tǒng)10可以適用于其他交換或路由協(xié)議。此外,盡管已經(jīng)參考協(xié)助通信過程的特定元件和操作示出了通信系統(tǒng)10,但是這些元件和操作可以由實現(xiàn)通信系統(tǒng)10的預(yù)期功能的任何適當(dāng)?shù)募軜?gòu)或過程替換。
大量其他改變、代替、變化、變更以及修改可以被本領(lǐng)域技術(shù)人員所查明,并且本公開意在包括落在所附權(quán)利要求的范圍內(nèi)的所有這些改變、代替、變化、變更以及修改。為了輔助美國專利商標(biāo)局(USPTO)以及此外輔助針對此申請所公布的任何專利的任何讀者理解所附的權(quán)力要求,申請者希望注意,申請者:(a)并不意欲使任何所附權(quán)利要求援引存在于申請日的35U.S.C章節(jié)112的第六段,除非“用于…的手段”或者“用于…的步驟”的詞語在特定的權(quán)利要求中被具體地采用;以及(b)并不意欲通過在說明書中的任何陳述以其他方式被反映在所附的權(quán)利要求中的任何方面來限制本公開。