用于網絡設備流查找管理的技術的制作方法
【專利說明】用于網絡設備流查找管理的技術
【背景技術】
[0001] 現代計算設備已經成為供個人、企業和社會使用的普遍工具。因此,許多現代計算 設備能夠連接到包括互聯網和企業內聯網的各種數據網絡,以在這些網絡上獲取和發送/ 接收數據通信。為了促進計算設備之間的通信,網絡通常包括一個或多個網絡設備(例如, 網絡交換機、網絡路由器等等),以將通信從一個計算設備路由到另一個計算設備。
[0002] 軟件定義網絡(SDN)是可以用于促進跨越網絡的通信(即,網絡分組的流動)的這 樣一種網絡體系架構。在軟件定義網絡中,位于外部的SDN控制器連接到網絡交換/路由設 備,以針對跨越網絡的網絡分組做出網絡業務流邏輯決策,該任務傳統上是在網絡設備層 處執行的。因此,之前在網絡設備的專用網絡處理器上執行的網絡分組處理(例如,網絡業 務流邏輯)現在可以在通用處理器上進行處理,從而減少了在軟件定義網絡中所部署的網 絡設備所需要的硬件組件的復雜度,并且實現了獨立于硬件發布周期來部署新的基于軟件 的特征。另外,軟件定義網絡允許網絡基礎設施在規模上變得比傳統網絡更大,這可能導致 與網絡的每個網絡設備必須管理的網絡業務流邏輯有關的數據增加。網絡功能虛擬化 (NFV)是另一種網絡架構概念,其用于使用傳統的服務器虛擬技術(例如,虛擬機或VM)來對 網絡設備功能進行虛擬化,從而實現了在通用處理器上對網絡業務的處理。當將NFV和SDN 基礎設施進行組合時,網絡可以在規模上進一步增加,從而進一步增加了網絡的每個網絡 設備必須管理的網絡業務流邏輯的量。
【附圖說明】
[0003] 在附圖中,通過舉例而非限制性的方式示出了本文所描述的概念。為了說明的簡 單和清楚起見,附圖中所示出的要素不一定按比例繪制。在認為適當的地方,在附圖中重復 附圖標記以指示相應的或相似的要素。
[0004] 圖1是用于對通信進行路由的系統的至少一個實施例的簡化框圖;
[0005] 圖2是圖1的網絡設備的至少一個實施例的簡化框圖,其中該網絡設備包括具有管 芯上高速緩存(〇n-die cache)的處理器;
[0006] 圖3是圖2的網絡設備的多級散列表配置的至少一個實施例的簡化框圖;
[0007] 圖4是圖2的網絡設備的多級散列表配置的另一個實施例的簡化框圖;
[0008] 圖5是圖2的網絡設備的環境的至少一個實施例的簡化框圖;
[0009] 圖6是圖1的系統的軟件定義網絡架構的至少一個實施例的簡化框圖;
[0010] 圖7是用于對圖2的網絡設備的高速緩存驅逐策略進行管理的方法的至少一個實 施例的簡化流程圖;以及
[0011] 圖8是用于接收圖1的系統的流策略信息的方法的至少一個實施例的簡化流程圖。
【具體實施方式】
[0012] 雖然本公開內容的概念容易有各種修改和替代形式,但是其中的特定實施例已在 附圖中通過示例方式示出,并且將在本文中詳細描述。但是,應當理解的是,這并非旨在將 本公開內容的概念限制于所公開的特定形式,但是相反地,其目的是要涵蓋與本公開內容 和所附權利要求相一致的所有修改、等效項和替代方案。
[0013] 說明書中對"一個實施例"、"實施例"、"說明性實施例"等的引用,指示所描述的實 施例可以包括特定的特征、結構或特性,但每個實施例可能包括該特定的特征、結構或特 性,也可能不一定包括該特定的特征、結構或特性。此外,這種短語不一定指代相同的實施 例。此外,當結合實施例來描述特定的特征、結構或特性時,認為結合其它實施例(無論其是 否被明確地描述)來影響這種特征、結構或特性是在本領域技術人員的知識范圍內。另外, 應當意識到,在以"A、B和C中的至少一個"的形式的列表中所包括的項目可以表示(A)、(B)、 (C)、(A和B)、(A和C)、(B和C)或者(A、B和C)。類似地,以"A、B或C中的至少一個"形式所列出 的項目可以表示(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或者(A、B和C)。
[0014] 在一些情況下,可以在硬件、固件、軟件或者其任意組合中實現所公開的實施例。 所公開的實施例還可以實現為由一個或多個暫時性或非暫時性機器可讀(例如,計算機可 讀)存儲介質攜帶或者存儲在所述機器可讀存儲介質上的指令,這些指令可以由一個或多 個處理器讀取和執行。機器可讀存儲介質可以體現為用于存儲或發送具有機器可讀形式的 信息的任何存儲設備、機制或其它物理結構(例如,易失性或非易失性存儲器、介質光盤或 者其它介質設備)。
[0015] 在附圖中,可以以特定的排列和/或順序來示出一些結構或方法特征。但是,應當 意識到,可能不需要這些特定的排列和/或順序。相反,在一些實施例中,可以按照與說明性 附圖中所示出的方式和/或順序不同的方式和/或順序來排列這些特征。另外,在特定的附 圖中包括結構或方法特征并非意在暗示在所有實施例中都需要該特征,并且在一些實施例 中,可以不包括該特征或者其可以將該特征與其它特征組合。
[0016] 現在參考圖1,在說明性實施例中,用于網絡設備流查找管理的系統或網絡100包 括遠程計算設備102,其連接到網絡控制設備110和網絡基礎設施120。網絡控制設備110和 網絡基礎設施120中的每一個都能夠在軟件定義網絡(SDN)架構和/或網絡功能虛擬化 (NFV)架構中進行操作。網絡基礎設施120包括至少一個網絡設備122,其被說明性地表示為 122a-122h并且在本文中被統稱為網絡設備122,以便促進經由網絡通信路徑124在遠程計 算設備102和計算設備130之間傳輸網絡分組。
[0017] 在使用中,如下面進一步詳細描述的,網絡設備122從遠程計算設備102接收網絡 分組,基于在網絡設備122處所存儲的策略來對該網絡分組進行處理,并且將該網絡分組轉 發到傳輸路徑中的下一個計算設備(例如,另一個網絡設備122、計算設備130、遠程計算設 備102等等)。為了知道哪個計算設備是傳輸路徑中的下一個計算設備,網絡設備122執行查 找操作以確定網絡流。查找操作對網絡分組的一部分執行散列并且使用該結果對照流查找 表(即,映射到網絡流的下一個目的地的散列表)來進行檢查。
[0018] 通常,流查找表存儲在處理器上高速緩存(on-processor cache)中以減少查找操 作的延時,而網絡流存儲在網絡設備122的存儲器中。但是,流查找表可能變得非常大,從而 超出處理器上高速緩存中的可用空間。因此,流查找表的一部分(即,與網絡流散列條目相 對應的高速緩存行)被驅逐到網絡設備122的存儲器,這給查找操作帶來了延時。另外,將哪 些高速緩存行驅逐到存儲器是由網絡設備基于網絡設備122使用哪種高速緩存驅逐算法來 控制的。但是,在多級流散列表中,多級流散列表的某些層級可以存儲在網絡設備122的處 理器上高速緩存中,而多級流散列表的其它層級可以存儲在網絡設備122的存儲器中。例 如,如下面將進一步詳細描述的,多級流散列表可以包括:第一級流散列表,用于將較高優 先級水平的散列存儲在處理器上高速緩存中;以及第二級流散列表,用于將較低優先級水 平的散列存儲在主存儲器中。在該實施例中,可以減少由查找操作引起的整體延時,特別是 針對被網絡設備122標識為具有高優先級的那些網絡流散列的整體延時。
[0019] 網絡基礎設施120可以體現為任何類型的有線或無線通信網絡,包括蜂窩網絡(例 如,全球移動通信系統(GSM))、數字用戶線(DSL)網絡、有線網絡、電話網絡、局域網或廣域 網、全球網絡(例如,互聯網)或者其任意組合。另外,根據需要,網絡基礎設施120可以包括 任意數量的額外的設備以促進相應設備之間的通信。
[0020] 在使用中,基于網絡流或分組流、沿著將網絡設備122進行互連的網絡通信路徑 124,在遠程計算設備102和計算設備130之間傳輸網絡分組。網絡流描述了從源到目的地的 分組集合或序列。通常,分組集合共享公共的屬性。網絡流由每個網絡設備122用來指示在 對接收到的網絡分組進行處理之后要將該網絡分組發送到何處(即,沿著哪些網絡通信路 徑124)。例如,網絡流可以包括諸如與特定的網絡流相對應的流標識符和流元組(例如,源 IP地址、源端口號、目的地IP地址、目的地端口號以及協議)之類的信息。應當意識到,網絡 流信息可以包括與特定的網絡流相對應的任何其它類型的信息或信息的組合。
[0021] 網絡通信路徑124可以體現為能夠促進相應設備之間的通信的任何類型的有線或 無線信號路徑。例如,網絡通信路徑可以體現為任意數量的電線、印刷電路板跡線、通孔總 線(via bus)、點對點互連、介于中間的設備等等。取決于例如遠程計算設備102、計算設備 130和網絡設備122的特定類型或配置,可以使用任何適當的通信協議(例如,TCP/IP)來實 現沿著網絡通信路徑124傳輸網絡分組。網絡設備122可以體現為能夠促進遠程計算設備 102和計算設備130之間的通信的任何類型的設備,例如,路由器、交換機等等。在一些實施 例中,例如在NFV架構中,網絡設備122中的一個或多個網絡設備可以運行一個或多個虛擬 機(VM),以便用軟件來實現網絡設備122的物理網絡功能。換言之,可以對網絡設備122所執 行的功能中的一些功能進行虛擬化。
[0022] 應當意識到,對網絡通信路徑124的說明性的布置旨在指示存在供網絡分組在網 絡基礎設施120內移動的多個選項(即,路由),并且不應被解釋為對示例性網絡基礎設施 120的限制。例如,可以向從網絡設備122a移動到網絡設備122e的網絡分組分配直接從網絡 設備122a到網絡設備122e的網絡流。在另一個例子中,在某些情況下(例如,網絡設備122a 和網絡設備122e之間在網絡通信路徑124上的服務質量(QoS)較差),可以向該相同的網絡 分組分配用于指示網絡設備122a將該網絡分組發送給網絡設備122b的網絡流,繼而可以向 網絡設備122b分配用于指示網絡設備122b進一步將該網絡分組發送給網絡設備122e的網 絡流。
[0023]網絡分組管理信息(例如,網絡流、與網絡分組類型相對應的策略等等)由網絡應 用114進行管理,并提供給在網絡控制設備110上運行的網絡控制器112。為了使網絡應用 114有效地管理網絡分組管理信息,網絡控制器112向網絡應用114提供網絡基礎設施120的 抽象。在一些實施例中,網絡控制器112可以基于與多個可用的網絡流相對應的QoS或者與 網絡分組的特定工作負載類型相關聯的策略,來對網絡分組管理信息進行更新。例如,計算 設備130可以向遠程計算設備102發送請求,該請求用于請求遠程計算設備102提供視頻流 以便在計算設備130上回放。在接收到該請求之后,遠程計算設備102然后對該請求進行處 理并且向網絡設備122中的一個網絡設備提供網絡分組,其中該網絡分組包括與所請求的 視頻流的內容相對應的數據(即,有效載荷數據、開銷數據等等)。在進行接收的網絡設備 122處,對所接收到的網絡分組進行處理,該操作是在利用目標設備的標識信息來對經處理 的網絡分組的報頭進行更新之前進行的,其中所述目標設備是將經處理的網絡分組發送至 的目標設備。然后,進行接收的網絡設備122根據網絡控制器112所提供的網絡流,向目標設 備發送經處理的網絡分組。取決于網絡基礎設施120中進行接收的網絡設備122駐留在何 處,目標設備可以是另一個網絡設備122或者發起請求的計算設備130。
[0024] 某些網絡基礎設施120(即,包括成千上萬或者更多網絡設備122的數據中心)可以 包含足夠大數量的網絡設備122,使得網絡控制器112所提供的網絡流的數量可能在數目上 太龐大,以至于不能存儲在網絡設備122的存儲設備的優先層級中。另外,即使在較小的網 絡基礎設施120中,每個網絡設備122也可能承載(host)多個虛擬機(VM),從而進一步增加 了用于通過網絡基礎設施120來傳輸網絡分組的可能網絡流的數量。
[002