新四季網

使用控制器處的交換機建模接口控制網絡交換機的系統和方法與流程

2023-07-14 19:04:16


技術領域

此涉及通信網絡,並且更具體地,涉及具有由控制器控制的網絡交換機的通信網絡。



背景技術:

基於分組的網絡(諸如,連接到網際網路的本地數據網絡和網際網路)包括網絡交換機。網絡交換機用於將分組從分組源轉發到分組目的地。分組有時可以被稱為幀。例如,數據在開放系統互聯(OSI)模型的層2上作為幀(例如,乙太網幀)轉發,而數據在OSI模型的層3上作為分組(例如,網際網路協議分組)轉發。

將一個供應商的交換機配置為使用另一個供應商的裝備可能是困難或不可能的。這是因為一個供應商的交換機裝備相比於另一個供應商的交換機裝備可以使用不同的作業系統和不同的控制過程集合。為了解決與控制不同類型的交換機平臺相關聯的挑戰,跨平臺協議已經被開發。這些協議允許其他方式不兼容的交換機的集中式控制。

跨平臺控制器客戶端可以被包括在網絡中的交換機上。控制器客戶端能夠在網絡路徑上與對應的控制器伺服器通信。因為控制器客戶端能夠實施在各種交換器硬體上,所以單個控制器控制可能以其他方式不兼容的交換器裝備是有可能的。

確保交換機被成功地配置為控制器所預期的那樣對於控制器是有挑戰性的。考慮這樣的場景,其中控制器向交換機提供數千個控制分組,但是該交換機處理能力不足以用由控制器提供控制分組的速率處理這些控制分組。作為另一個示例,交換機處的配置儲存能力可能被填滿,並且交換機在不覆寫已存在的配置數據的情況下可能不能儲存任何額外的配置數據。作為再另一個示例,新的交換機可以連接到網絡或者已存在的交換機可能從網絡斷開,這可以導致網絡的控制器的視圖和網絡的實際配置狀態之間的不匹配。



技術實現要素:

控制器可以控制具有耦合到交換機的終端主機的網絡中的交換機。控制器可以包括交換機建模接口,該交換機建模接口維護網絡中的交換機的交換機模型,並且在生成用於交換機的實施期望的網絡配置的控制消息中使用該交換機模型。交換機建模接口可以從響應於網絡事件(諸如,交換機的連接或斷開或新的網絡策略)的應用模塊接收期望的網絡配置。期望的網絡配置可以包括表的集合和函數。交換機建模接口可以在表的集合上操作函數以產生期望的網絡配置。例如,表的集合可以包括標識終端主機附接點的主機表和交換機間轉發表。在這個場景中,交換機建模接口可以在主機表和交換機間轉發表上操作函數以給交換機中的每一個產生交換機特定的轉發表。

交換機建模接口可以比較期望的網絡配置(例如,交換機特定的轉發表)和由交換機模型表示的當前網絡配置。交換機建模接口可以僅對於期望的網絡配置和由交換機模型標識的當前網絡配置之間所識別的差異向交換機生成控制消息。通過與控制消息一起發送同步請求消息(例如,屏蔽請求消息)並且等待同步回復消息(例如,屏蔽回復消息)、錯誤消息或交換機響應的失敗(例如,計時器的過期),交換機模型接口可以確定控制消息是否被成功接收以及由交換機處理。交換機建模接口可以向提供了期望的網絡配置的應用模塊指示成功或者失敗。

交換機建模接口可以通過與交換機通信而更新交換機模型。為了幫助減少網絡控制路徑上的流量負載,交換機可以被配置為維護摘要表。由交換機維護的摘要表可以包括多個條目(例如,桶),每個條目與各自的摘要值相關聯。在交換機處接收的諸如轉發表條目的交換機配置數據(例如,經由來自控制器的控制消息)可以由交換機散列並且基於散列值分配到選定的表條目。交換機可以計算每一個表條目的摘要值為分配到該表條目的散列值的異或。由交換機維護的摘要值可以由控制器取回並且與由控制器計算的用於期望的網絡配置的摘要值相比較。基於比較,控制器處的交換機建模接口可以確定在實施期望的網絡配置中哪個交換機配置數據應該被更新。

通過附圖和隨後的具體描述,本發明的進一步的特徵、其本質和各種優勢將更加清晰。

附圖說明

圖1是根據本發明的實施例的包括控制器和分組轉發系統的說明性網絡的示意圖。

圖2是根據本發明的實施例的可以通過網絡連接通信的控制器伺服器和控制器客戶端的示意圖。

圖3是根據本發明的實施例的可以被分組處理系統使用的類型的說明性流表的示意圖。

圖4是根據本發明的實施例的可以由分組處理系統使用的類型的說明性流表的示意圖,示出了可以基於流表的流表條目執行的分組交換的三個說明性類型。

圖5是根據本發明的實施例的在分組處理系統中處理分組時涉及到的說明性步驟的流程圖。

圖6是根據本發明的實施例的具有可以由具有交換機建模接口的控制器控制的交換機的說明性網絡的示意圖。

圖7是根據本發明的實施例的說明性交換機模型的示意圖。

圖8是根據本發明的實施例的示出終端主機的斷開可以如何反映在交換機模型中的說明性交換機模型的示意圖。

圖9是根據本發明的實施例的可以儲存在交換機模型中的說明性交換機狀態信息的示意圖。

圖10是根據本發明的實施例的可以被儲存在交換機模型中並且用於生成交換機特定的狀態信息的說明性全局網絡狀態信息的示意圖。

圖11是根據本發明的實施例的可以被儲存在交換機模型中並且被交換機建模接口使用以生成交換機特定的狀態信息的說明性函數的示意圖。

圖12是根據本發明的實施例的可以由應用模塊提供給交換機建模接口的期望的網絡配置的說明性網絡快照的示意圖。

圖13是根據本發明的實施例的包括表的集合和操作在表的集合上以產生交換機特定的狀態信息的函數的說明性網絡快照的示意圖。

圖14是根據本發明的實施例的可以由交換機建模接口執行以根據期望的網絡快照和當前網絡配置的區別生成交換機控制消息的說明性步驟的流程圖。

圖15是根據本發明的實施例的在使用交換機建模接口響應於網絡事件而修改網絡配置中可以由控制器執行的說明性步驟的流程圖。

圖16是根據本發明的實施例的可以由交換機執行以基於接收的交換機配置數據而維護摘要表的說明性步驟的流程圖。

圖17是根據本發明的實施例的可以由交換機基於交換機配置數據維護的說明性摘要表。

圖18是根據本發明的實施例的在使用由交換機維護的摘要表以標識期望的網絡配置與當前網絡配置之間的區別中可以由控制器執行的說明性步驟的流程圖。

具體實施方式

諸如網際網路和耦合到網際網路的本地網和區域網之類的網絡依賴基於分組的交換機。這些交換機(在本文中有時被稱為網絡交換機、分組處理系統或分組轉發系統)能夠基於地址信息轉發分組。以這種方式,由分組源傳送的數據分組可以被傳遞到分組目的地。在網絡方面,分組源和分組目的地有時候被稱為終端主機。終端主機的示例為個人計算機、伺服器和其他計算裝備,諸如,使用有線或無線技術訪問網絡的可攜式電子設備。

網絡交換機在能力方面範圍從相對小的乙太網交換機和無線接入點到大的基於機架的系統,該系統包括若干線卡、冗餘電源和監管器能力。對於網絡來說包括來自若干供應商的裝備不是不常見的。來自不同供應商的網絡交換機能夠互聯以形成分組轉發網絡,但是由於它們作業系統和控制協議的不兼容,可能難以以集中式的方式管理。

能夠通過將常見的跨平臺控制模塊(在本文中有時稱為控制器客戶端)結合到每一個網絡交換機中來克服這些潛在的不兼容性。集中式跨平臺控制器(諸如,控制器伺服器或分布式控制器伺服器)可以通過各個網絡鏈路與控制器客戶端中的每一個交互。跨平臺控制器和對應的控制器客戶端的使用允許潛在不同的網絡交換機裝備被集中地管理。

通過一個說明性配置(本文中有時稱為示例),集中式控制通過一個或多個控制器伺服器(諸如,圖1的控制器伺服器18)提供。控制器伺服器18可以在單獨的計算機、計算機的集群、分布在若干地點的計算機集合、嵌入在網絡交換機內的硬體或其他合適的計算裝備12上實施。控制器伺服器18能夠作為單個進程在單個計算機上運行或者能夠為了冗餘性而分布在多個主機上。分布式布置的使用可以幫助為網絡10提供對抗意外的網絡分割(例如,兩個校園之間的網絡鏈路中斷的情形)的彈性。

在分布式控制器布置中,控制器節點可能使用控制器內協議交換信息。例如,如果新的終端主機連接到僅連接到第一控制器節點的網絡硬體(例如,交換機),那麼該第一控制器節點可以使用控制器內協議通知其他控制器節點新的終端主機的出現。如果期望,那麼交換機或其他網絡部件可以連接到若干控制器節點。有時在本文中,將單個控制器伺服器用於控制相關聯交換機的網絡的布置描述為示例。

圖1的控制器伺服器18可以收集關於網絡10拓撲的信息。例如,控制器伺服器18可以通過網絡發送鏈路層發現協議(LLDP)探測分組以發現網絡10的拓撲。控制器伺服器18可以使用關於網絡拓撲的信息和關於網絡裝備能力的信息以確定分組流過網絡的合適路徑。一旦合適的路徑已經被標識,控制器伺服器18就可以將對應的設置數據發送到網絡10中的硬體以確保分組如所期望的那樣流過網絡。諸如這些的網絡配置操作可以在系統設置操作期間在後臺連續地執行,或者響應於新發送的數據分組(即,對於其來說先前存在的路徑還沒有建立的分組)的出現而執行。

控制器伺服器18可以用於實施網絡配置規則20。規則20可以指定哪些服務對於各種網絡實體是可用的。作為示例,規則20可以指定網絡10中的哪些用戶(或用戶的類型)可以訪問特定伺服器。作為另一個示例,規則20可以包括標識網絡流量和將在標識的網絡流量上執行的服務的服務插入策略。例如,規則20可以在計算裝備12的資料庫中維護。

在各個網絡交換機14處的控制器客戶端30和控制器伺服器18可以使用網絡協議棧在網絡鏈路16上通信。

每一個交換機(例如,每一個分組轉發系統)14可以具有輸入輸出埠34(有時稱為網絡交換接口)。可以使用電纜將裝備塊連接到埠34。例如,終端主機(諸如,個人計算機、網頁伺服器和其他計算裝備)可以插入到埠34中。埠34還可以用於將交換機14中的一個連接到其他交換機14。

分組處理電路系統32可以用於將來自埠34中的一個的分組轉發到埠34中的另一個,並且可以用於對到來的分組執行其他合適的動作。分組處理電路32可以使用一個或多個集成電路(諸如專用高速交換機電路)實施並且可以用作硬體數據路徑。如果期望,可以在實施軟體數據路徑中使用運行在控制單元24上的分組處理軟體26。

控制單元24可以包括用於儲存和運行控制軟體的處理和存儲器電路(例如,一個或多個微處理器,存儲器晶片,和其他控制電路系統)。例如,控制單元24可以儲存和運行諸如分組處理軟體26的軟體、可以儲存流表28,以及可以用於支持控制器客戶端30的操作。

控制器客戶端30和控制器伺服器18可以適用網絡交換機協議,諸如OpenFlow協議(例如,參見OpenFlow交換機規範版本1.0.0,1.3.1,或OpenFlow協議的其他版本)。控制器客戶端30中的一個或多個客戶端還可以適用其他協議(例如,簡單網絡管理協議)。使用OpenFlow協議或其他合適的協議,控制器伺服器18可以給控制器客戶端30提供確定交換機14將如何處理來自輸入輸出埠34的到來分組的數據。

通過一種合適的布置,來自控制器伺服器18的流表數據可以儲存在諸如流表28的流表中。流表28的條目可以用於配置交換機14(例如,分組處理電路系統32和/或分組處理軟體26的功能)。在典型的場景中,流表28用作用於流表條目的高速緩衝儲存器,並且這些流表條目的對應版本嵌入在由分組處理電路系統32維護的設置中。然而,這僅僅是說明性的。流表28可以用作交換機14中流表條目的專有儲存器,或者可以為了分組處理電路系統32內的流表儲存資源而被省略。總之,流表條目可以使用任意合適的數據結構(例如,一個或多個表、列表等)儲存。為了清楚,流表28的數據(不論在控制單元24中的資料庫維護還是嵌入在分組處理電路系統32的配置中)在本文中被稱為形成流表條目(例如,流表28中的行)。

儲存確定交換機14將如何處理到來的分組的數據的流表28的示例僅僅是說明性的。如果期望,可以替換流表28使用任何分組轉發決定引擎,或除了流表28之外還可以使用任何分組轉發決定引擎,以協助分組轉發系統14做出如何轉發網絡分組的決定。作為示例,分組轉發決定引擎可以引導分組轉發系統14基於網絡分組的屬性(例如,基於網絡協議頭)將網絡分組轉發到預定的埠。

可以給任何期望的交換機提供與控制器伺服器通信並且由控制器伺服器控制的控制器客戶端。例如,交換機14可以使用運行控制軟體並且省略分組處理電路系統32的通用處理平臺實施。作為另一個示例,交換機14可以使用耦合到一個或多個高速交換集成電路(「交換機IC」)的控制電路系統實施。作為再另一個示例,交換機14可以實施為在具有若干線卡的基於機架的系統中的線卡,每一個線卡有其自己的分組處理電路系統。如果期望,可以在耦合到網絡的其它計算裝備上、在基於機架的系統中或另一個基於機架的系統中的一個或多個線卡上實施控制器處理器。

如圖2所示,控制器伺服器18和控制器客戶端30可以使用網絡協議棧(諸如,網絡協議棧58和網絡協議棧60)在網絡路徑66上通信。例如,棧58和60可以是Linux TCP/IP棧或者VxWorks作業系統中的TCP/IP棧(作為示例)。例如,路徑66可以是支持交換機14與外部裝備之間的網絡連接的路徑(例如,圖1的網絡路徑16),或者可以是基於機架的系統中的骨幹網路徑。本文有時將路徑66是諸如路徑16的網絡路徑的布置作為示例描述。

控制協議棧56用作網絡協議棧58和控制軟體54之間的接口。控制協議棧62用作網絡協議棧60和控制軟體64之間的接口。在操作期間,當控制器伺服器18與控制器客戶端30通信時,控制協議棧56生成並且解析控制協議消息(例如,激活埠或將特定流表條目安裝到流表28中的控制消息)。通過使用圖2所示的類型的布置,網絡連接在控制器伺服器18和控制器客戶端30之間的鏈路上形成。控制器伺服器18和控制器客戶端30能夠使用網際網路協議(IP)上傳輸控制協議(TCP)或用戶數據報協議(UDP)網絡連接進行通信。當在網絡連接上在控制器伺服器18和控制器客戶端30之間通信時可以使用的控制協議的示例包括SNMP和OpenFlow協議棧版本1.0.0(作為示例)。

流表28包含具有若干欄位(有時稱為頭欄位)的流表條目(例如,表中的行)。已經由交換機14接收的分組中的欄位可以與流表中的欄位比較。每一個流表條目可以具有相關聯的動作。當存在分組中的欄位和流表條目中的欄位之間的匹配時,該流表條目的對應動作可以被採取。

圖3示出了說明性的流表。如圖3所示,表28可以具有流表條目(行)68。每一個流表條目可以與頭70、動作72和統計值74相關聯。頭70均可以包括若干頭欄位76。每一個流表條目中的動作指示當檢測到分組中的欄位與該流表條目的頭中的對應欄位之間匹配時交換機14將執行什麼動作。交換機14可以維護在期望獲得關於交換機14的性能的信息時可由控制器伺服器18查詢的流表28的統計值部分中的統計數據(計數器值)。

頭70中的頭欄位(和每一個到來分組中的對應欄位)可以包括以下欄位:進入埠(即,交換器14中物理埠的標識,分組通過該埠接收),乙太網源地址、乙太網目的地地址、乙太網類型、虛擬區域網(VLAN)標識(有時稱為VLAN標籤)、VLAN優先級、IP源地址、IP目的地地址、IP協議、IP服務類型(ToS)比特、傳輸源埠/網際網路控制消息協議(ICMP)類型(有時稱為源TCP埠)和傳輸目的地埠/ICMP碼(有時稱為目的地TCP埠)。如果期望,可以使用其他欄位。例如,可以使用網絡協議欄位和協議埠欄位。

每一個流表條目(流條目)與指示交換機如何處理匹配分組的零個或多個動作相關聯。如果沒有出現任何轉發動作,包優選地被丟棄。當檢測到分組欄位與流表條目中的頭欄位之間的匹配時可以採取的動作可以包括以下動作:轉發(例如,ALL(所有),用於將分組在不包括到來接口的所有接口上發送出去;CONTROLLER(控制器),用於將分組封裝並發送到控制器伺服器;LOCAL(本地),用於將分組發送到交換機的本地聯網棧;TABLE(表),用於執行流表28中的動作;IN_PORT(入_埠),用於將分組發送出輸入埠外;NORMAL(正常),用於使用例如傳統層2VLAN和層3處理通過由交換機支持的預設轉發路徑處理分組;以及FLOOD(泛洪),用於沿不包括到來接口的最小轉發樹泛洪分組。可以由交換機14採取的額外動作包括:通過附接到埠的隊列轉發分組的入隊動作和丟棄動作(例如,丟棄匹配沒有具體動作的流表條目的分組)。修改欄位動作也可以由交換機14支持。可採用的修改欄位動作的示例包括:設置VLAN ID、設置VLAN優先級、剝離VLAN頭、修改VLAN標籤、修改乙太網源介質訪問控制(MAC)地址、修改乙太網目的地MAC地址、修改IPv4源地址、修改IPv4ToS比特、修改傳輸目的地埠。修改欄位動作可以用於重新寫入匹配流表條目的網絡分組的部分。

圖4是具有三個流表條目的說明性流表。條目包括有通配符(例如,「*」符號)的欄位。當通配符出現在特定欄位中時,不管到來的分組中的欄位的具體值如何,所有到來的分組將被看做相對於該欄位形成「匹配」。額外的欄位可以匹配額外的分組信息(例如,網絡分組的分組頭信息)。

圖4表的第一行的條目引導操作流表條目的交換機來執行乙太網交換。具體地,具有匹配的乙太網目的地地址的到來分組被轉發到埠3。

圖4表的第二行的條目示出可以如何配置交換機以執行網際網路路由(即,分組基於他們的目的地IP位址轉發)。

圖4表的第三行包含示出可以如何配置交換機以執行防火牆的條目。當收到具有目的地IP埠值為80的分組時,該分組被丟棄(即,交換機被配置為用作屏蔽埠80流量的防火牆)。

圖4示出的類型的流表條目可以在系統設置操作期間由控制器伺服器18載入交換機14,或者可以響應於在控制器伺服器18處來自諸如交換機14的交換機的分組的接收和處理從控制伺服器18被實時提供給交換機14。在具有多個交換機14的網絡中,可以為每一個交換機提供合適的流表條目以形成通過網絡的路徑。

圖5中示出了可以由交換機14在處理在輸入輸出埠34上接收的分組中執行的說明性步驟。在步驟78,交換機14在其埠中的一個(例如,圖1的輸入輸出埠34中的一個)上接收分組。

在步驟80,交換機14將接收的分組的欄位與該交換機的流表28中的流表條目的欄位比較以確定是否存在匹配。流表條目中的一些欄位可以包含完整值(例如,完整地址)。其他欄位可以包含通配符(即,以「不相關」通配符字符「*」標記的欄位)。再其他的欄位可以具有部分完整的條目(例如,部分通配符表示的部分地址)。一些欄位可以使用範圍(例如,通過將TCP埠號限制到1至4096之間的值)並且實際使用用於實施部分通配符的類型的範圍。在進行接收的分組與流表條目之間的逐欄位比較時,交換機14能夠考慮流表條目中的每一個欄位是否包含沒有任何通配符的完整值、有通配符的部分值或通配符字符(即,完全通配符表示的欄位)。

如果在步驟80的操作期間確定分組的欄位與流表條目的對應欄位之間不存在匹配,那麼交換機14可以在鏈路16上將分組發送到控制器伺服器18(步驟84)。

如果在步驟80的操作期間確定分組與流表條目之間存在匹配,那麼交換機14可以執行與該流表條目相關聯的動作並且可以更新該流表條目的統計值欄位中的計數器值(步驟82)。處理然後可以回到步驟78,使得其他分組可以由交換機14處理,如線86所指示的。

圖6是交換機可以由控制器18控制的說明性網絡100的示意圖。控制器18可以是控制器伺服器或者跨若干計算裝備實施的分布式控制器。如圖6所示,網絡100可以包括交換機SW1和SW2。控制器18可以經由控制路徑66耦合到網絡100的交換機。控制器18可以使用控制路徑66控制交換機(例如,通過提供諸如圖3的流表條目68的流表條目)。交換機可以包括耦合到終端主機或其它交換機的交換機埠。在圖6的示例中,終端主機EH1和EH3耦合到交換機SW1的各個埠P1和P3,終端主機EH2和EH4耦合到交換機SW2的各個埠P1和P2,以及交換機SW1和SW2經由交換機SW1的埠P2和交換機SW2的埠P3而耦合。

控制器18可以包括控制網絡中交換機的操作的一個或更多個應用模塊102。例如,第一應用模塊102可以將交換機組織為由交換機上的埠或終端主機的組形成的虛擬交換機。在這個場景中,第一應用模塊可以在虛擬交換機級別實行網絡政策和轉發(例如,網絡協議可以為虛擬交換機限定而不是為下面的交換機限定)中控制網絡的下面的交換機SW1和SW2。作為另一個示例,第二應用模塊102可以處理網絡監視功能,諸如分析網絡流量以生成網絡流量報告。應用模塊可以生成期望的(例如,整個網絡的)網絡配置並且向交換機建模接口104提供該網絡配置。交換機建模接口104可以使用交換機模型108實施期望的網絡配置並且可以向應用模塊指示實施成功還是失敗。

諸如模塊102的模塊可以在控制器18處實施為通用或應用特定的計算裝備上的軟體或專用硬體。例如,模塊102可以實施為共享計算裝備上的軟體模塊。作為另一個示例,模塊102可以實施在分布式控制器布置中的不同計算裝備上。

應用模塊102可以基於在應用模塊維護的或由控制器18的其他模塊維護的網絡拓撲信息控制交換機。然而,網絡中可以有數百、數千或更多的交換機。確保發送到網絡的交換機的控制信息由交換機成功地接收或執行對於應用模塊102可能是有挑戰性的。此外,控制器18處可以實施若干應用模塊102並且若干應用模塊102潛在地彼此衝突。考慮交換機沒能實施從控制器18接收的流表條目的場景。在這個場景中,交換機的狀態不能匹配期望的狀態,並且由控制器提供的後續流表條目可能生成不期望的網絡配置。

可以為控制器18提供處理與交換機的通信和交換機狀態的維護的交換機建模接口模塊104。交換機建模接口模塊104可以幫助確保應用模塊102與網絡的交換機同步。交換機建模接口104可以實施代表網絡中每一個交換機的模型108。例如,交換機模型MSW1可以代表交換機SW1,而交換機模型MSW2可以代表交換機SW2。交換機模型MSW1和MSW2可以維護關於各個交換機SW1和SW2的當前狀態的信息。例如,交換機模型MSW1可以維護標識在交換機SW1實施的轉發規則或策略的信息,而交換機模型MSW2可以標識交換機SW2的狀態。

交換機模型108可以由控制模塊106控制。在滿足來自應用模塊102的網絡控制請求中,控制模塊106可以控制交換機模型108並且向網絡的交換機發出控制消息。交換機模型108可以實施為諸如表的集合的數據構造。圖7是用於交換機SW1的說明性交換機模型(例如,圖6的交換機模型MSW1)的示意圖。如圖7所示,交換機模型112包括關於對應交換機SW1的狀態的信息。交換機狀態可以包括終端主機附接點、轉發規則或儲存關於交換機SW1的狀態的信息(例如,當前交換機配置)的其他表。

參考圖6的示例性網絡,用於交換機SW1的交換機模型112可以包括標識終端主機和哪個交換機埠耦合到所述終端主機的信息。終端主機EH1可以標識為附接到交換機SW1的埠P1,而終端主機EH3可以標識為連接到交換機SW1的埠P3。不是直接附接到交換機SW1的終端主機可以由那些終端主機可以通過其從交換機SW1到達的埠標識。例如,終端主機EH2和EH4可以被標識為耦合到交換機SW1的埠P2,因為從交換機SW1的埠P2轉發的分組可以通過埠P2到達終端主機EH2和EH4。交換機模型112可以包括管理網絡流量將如何由交換機SW1轉發的轉發規則。作為示例,轉發規則可以儲存為包括限定交換機SW1將如何為每一個終端主機轉發網絡分組的條目的表。轉發規則可以在交換機模型中儲存為每一交換機轉發規則,或可以儲存為經由在全局規則上操作的一個或多個函數轉換為交換機特定規則的全局、網絡範圍規則(例如,表)。

交換機模型112可以包括關於對應交換機(例如,交換機SW1)的狀態的任何信息。例如,交換機模型112可以包括具有限定鏈路聚合組的條目的鏈路聚合組(LAG)表。每一個鏈路聚合組可以被分配用作邏輯埠的一組交換機埠(例如,交換機的若干物理埠可以形成鏈路聚合組,網絡流量通過該鏈路聚合組轉發和接收)。

交換機建模接口104可以與交換機通信以監視網絡的狀態。例如,在監視網絡的狀態中,控制模塊106可以向交換機發送控制消息和/或從交換機接收狀態消息。控制模塊106可以響應於來自交換機的更新的狀態信息而更新交換機模型。圖8是示出圖7的交換機模型112可以如何響應於標識該終端主機EH1已經從交換機SW1斷開的狀態更新而更新的示意圖。例如,交換機SW1可以在控制路徑66上向控制模塊104發送埠關閉消息。在這個場景中,埠關閉消息可以標識交換機SW1的埠P1斷開,並且可以響應於交換機SW1處的電氣傳感器數據或響應於從控制器18發送到交換機SW1的控制消息而立即發送。

如圖8所示,修改的交換機模型114不包括用於終端主機EH1的任何狀態信息。換言之,控制模塊104可以從任何附接點信息、轉發規則或其他表移除終端主機EH1。

圖9示出了包括可以提供給交換機的條目的說明性的轉發表。在圖9的示例中,轉發表122和124是操作在乙太網介質訪問控制地址上的OSI層2(L2)轉發表。轉發表122和124可以用作流表或用作用於交換器SW1和SW2的流表的子集(例如,部分)。例如,在填充轉發表122和124中,控制模塊106可以向交換機SW1和SW2提供流表條目。轉發表122可以被交換機SW1儲存並且使用以確定如何轉發網絡分組。類似地,交換機SW2在轉發網絡分組中可以儲存並且使用轉發表124。

用於交換機SW1的L2轉發表122的每一個條目可以由乙太網地址和交換機SW1的埠標識,目的地為標識的乙太網地址的網絡流量應該轉發到該埠。第一L2轉發表條目可以引導交換機SW1將目的地為乙太網地址MACEH1(即,終端主機EH1)的網絡分組轉發到交換機SW1的埠P1,因為終端主機EH1連接到交換機SW1的埠P1。類似地,L2轉發表條目可以標識目的地為終端主機EH3的網絡分組應該從埠P3發送(即,終端主機EH3附接到的埠)。對於諸如終端主機EH2和EH4的不是直接附接到交換機SW1的終端主機,可以提供引導交換機SW1沿至終端主機的網絡路徑(例如,埠P2)轉發網絡分組的L2轉發表條目。類似地,用於交換機SW2的L2轉發表124包括標識目的地為乙太網地址MACEH1、MACEH2、MACEH3和MACEH4的網絡分組應該分別轉發到交換機SW2的埠P3、P1、P3和P2的條目。

可以由交換機建模接口儲存轉發表122和124的副本(例如,作為圖7的交換機模型112中轉發規則的一部分)。控制模塊106可以維護本地副本以幫助應用模塊102與網絡的交換機之間的接合。例如,控制模塊106可以使用本地副本模擬提供給交換機的控制消息的效果。作為向交換機提供控制消息的一部分,控制模塊106可以額外的與交換機通信以驗證交換機處的控制消息之後的狀態與交換機模型108處的模擬狀態匹配。

對於交換機建模接口104來說維護網絡中的所有交換機處的狀態的本地副本是有挑戰性的。考慮網絡包括數百個均具有若干轉發表(例如,L2轉發表、IP轉發表等)的交換機的場景。在這個場景中,每一個交換機可以包括限定該交換機當前狀態的成百上千個表條目(例如,轉發表條目、地址解析表條目、鏈路聚合組表條目等)。由於有限的資源(諸如控制器處可用的存儲器),交換機建模接口儲存每一個交換機的每一個交換表條目可能是困難的或不可能的。

控制器處的交換機建模接口可以被配置為儲存一個或多個交換機狀態為全局數據構造和在全局數據上操作以產生交換機特定的狀態信息的每一交換機函數。圖10是示出圖9的交換機特定的轉發表中的交換機狀態信息可以如何儲存為包括主機表132和交換機間轉發表136的全局數據構造的說明性示意圖。

主機表132包括標識用於終端主機的附接點的主機表條目134。在圖10的示例中,終端主機EH1的乙太網地址MACEH1在第一主機表條目134中限定為附接到交換機SW1的埠P1。類似地,乙太網地址MACEH2被標識為附接到交換機SW2的埠P1,乙太網地址MACEH3被標識為附接到交換機SW1的埠P3,以及乙太網地址MACEH4被標識為附接到交換機SW2的埠P2。主機表132不特定於任何特定交換機(例如,主機表132是全局表)。

交換機間轉發表136包括標識網絡的交換機之間的鏈路的交換機間轉發表條目138。第一條目138可以標識將要轉發到交換機SW2(例如,目的地交換機)的來自交換機SW1(例如,源交換機)的網絡分組應該從源交換機SW1的埠P2轉發。第二條目138可以標識將要轉發到目的地交換機SW1的來自源交換機SW2的網絡分組應該從交換機SW2的埠P3轉發。

圖10中交換機間轉發鏈路基於流量方向標識的示例僅僅是說明性的。如果期望,交換機中的每一對可以由通過網絡鏈路連接的交換機的埠所標識。例如,條目138可以標識第一交換機SW1、第二交換機SW2、以及第一交換機SW1的埠P2連接到第二交換機SW2的埠P3。因此,交換機間轉發表136在本文有時可以稱為交換機間鏈路表或交換機間連接表,因為表136標識網絡的交換機之間的連接。

主機表132和交換機間轉發表136代表網絡的全局視圖,因此幫助移除儲存在控制器處的交換機狀態信息的冗餘。例如,圖9的交換機特定的L2轉發表122和124包含冗餘信息,因為每個表包括標識從對應的交換機的角度來看終端主機在哪裡連接的信息(即,表122標識終端主機相對於交換機SW1在哪裡連接、而表124標識終端主機相對於交換機SW2在哪裡連接)。在有許多(例如,數十個、數百個或者更多)交換機的網絡中,圖10的全局表可以提供由控制器儲存的條目數量的大幅減少(例如,因為每一個終端主機的位置僅標識一次)。

可以給控制器處的交換機建模接口提供在一個或多個全局表上操作的函數以獲得用於交換機模型的交換機特定的表。圖11是L2轉發表函數(FL2TABLE)142的說明性示意圖,該函數接收包括輸入交換機和輸入地址的輸入數據,並且在圖10的主機表132和交換機間轉發表136上操作以產生交換機特定的轉發表,諸如圖9的表122和124。

為了產生用於交換機的特定終端主機的交換機特定的轉發表條目,交換機建模接口可以提供該終端主機的乙太網地址並且標識該交換機作為用於函數FL2TABLE的輸入地址和輸入交換機。函數FL2TABLE可以引導交換機建模接口檢查輸入地址和輸入交換機。如果主機表132的條目標識輸入地址附接在輸入交換機處,那麼該輸入交換機的對應埠可以從該條目取回並且返回為FL2TABLE的輸出。如果用於輸入地址的條目沒有標識輸入交換機,那麼函數FL2TABLE可以引導交換機建模接口從與輸入交換機和由主機表條目標識的交換機匹配的交換機間轉發表條目返回埠。

考慮交換機建模接口提供交換機SW1和乙太網地址MACEH1作為函數FL2TABLE的輸入的場景。在這個場景中,函數FL2TABLE引導交換機建模接口以輸入地址MACEH1取回主機表條目。取回的主機表條目標識交換機SW1和埠P1(參見圖10),其匹配輸入交換機並且因此可以返回埠P1作為函數FL2TABLE的輸出。用於表122的交換機特定的L2轉發表條目可以因此生成,標識乙太網地址MACEH1為附接到交換機SW1的埠P1。

作為另一個示例,考慮交換機建模接口通過提供交換機SW1和乙太網地址MACEH2作為函數FL2TABLE的輸入而為交換機SW1和終端主機EH2生成L2轉發表條目的場景。在這個場景中,如由函數FL2TABLE指示的那樣,交換機建模接口可以在輸入地址MACEH2處取回主機表條目。取回的主機表條目標識乙太網地址MACEH2附接在交換機SW2的埠P1,其不匹配輸入交換機SW1。作為響應,函數FL2TABLE可以指示交換機建模接口取回匹配交換機SW1和標識的交換機SW2的交換機間連接表條目。取回的條目138可以標識交換機SW1的埠P2連接到交換機SW2(參見,例如,圖10的表136的第一條目)。交換機SW1的標識的埠P2可以返回為函數FL2TABLE的輸出。從而可以生成用於表122的標識乙太網地址MACEH2為耦合到交換機SW1的埠P2的交換機特定的L2轉發表條目。

圖10和圖11中使用全局表幫助減少L2轉發信息的存儲空間的示例僅僅是說明性的。控制器18可以通過針對任何期望的交換機特定信息(諸如,地址解析協議表、鏈路聚合組表或在網絡的單個交換機處維護的其他信息)的全局數據構造來配置。控制器18可以通過在輸入和全局數據構造上操作以重建交換機特定信息的任意數量的函數來配置。

諸如圖6的應用模塊102的應用模塊可以通過向交換機建模接口提供網絡快照而指示對網絡配置的期望的修改。交換機建模接口可以與交換機通信以實施期望的修改,同時使用交換機模型幫助確保正確性。圖12是可以由應用模塊提供給交換機建模接口的說明性網絡快照。網絡快照152可以包括期望的交換機狀態的集合。在圖12的示例中,快照152包括用於網絡的交換機SW1和SW2的層2轉發表L2TABLESW1和L2TABLESW2(例如,圖9的表122和124)。這個示例僅僅是說明性的。快照152可以包括標識網絡中交換機的期望狀態的任何期望的交換機特定的信息。換言之,快照152可以限定將要實施的期望的網絡配置。

應用模塊可以被配置為除了交換機特定的狀態信息之外還提供全局數據構造或替代交換機特定的狀態信息而提供全局數據構造以幫助減少控制器處需要的儲存量。如圖13所示,網絡快照162可以包括主機表和交換機間轉發表(例如,圖10的主機表132和交換機間轉發表136)。網絡快照162可以包括從全局數據結構生成交換機特定的狀態信息的函數FL2TABLE(例如,圖11的FL2TABLE 142)。

網絡快照可以包括僅交換機特定的狀態信息(例如,圖12的快照152),僅全局狀態信息,或交換機特定和全局狀態信息的組合。包括在網絡快照中的信息標識網絡的期望狀態,其可以由交換機建模接口處理以生成用於實施網絡的期望狀態的交換機控制消息。圖14是說明性步驟的流程表200,這些步驟可以由交換機建模接口在基於網絡快照實施對網絡配置的期望改變中執行。

在步驟202期間,交換機建模接口可以接收指示將對網絡配置做出的期望的改變(例如,期望的網絡配置)的新的快照。例如,可以接收圖12的快照152或圖13的快照162。

在步驟204期間,交換機建模接口可以對網絡中的每一個交換機執行步驟206的操作(例如,交換機建模接口可以選擇交換機,為所選擇的交換機執行步驟206的操作,選擇另外的交換機,等等)。

在步驟206期間,交換機建模接口可以對接收的快照中的每一個表(例如,交換機特定或全局構造)執行步驟208-224的操作。

在步驟208期間,交換機建模接口可以確定所選交換機的狀態是否是已知的(例如,在步驟204期間用於處理而選擇的交換機)。例如,交換機建模接口可以儲存標識每一個交換機模型108中的信息上次何時更新的信息。該信息可以在交換機模型中的表條目上或每個表上儲存為時間戳。在這個場景中,交換機建模接口可以比較所選交換機相關聯的時間戳和當前系統時間。如果時間的差異超過閾值,那麼交換機建模接口可以確定所選交換機的當前狀態應該更新。

響應於確定所選交換機的狀態從交換機模型已知,在步驟210期間可以(例如,從對應的交換機模型108)取回當前交換機狀態並且可以隨後執行步驟214的操作。響應於確定所選交換機的狀態不是已知的(例如,對應的交換機模型108沒有儲存最新信息),交換機建模接口可以與所選交換機通信以取回其當前交換機狀態,用於在進行到步驟214之前更新對應的交換機模型。例如,交換機建模接口可以發送引導交換機響應所請求的交換機狀態信息(例如,L2轉發表,ARP表等)的控制消息。從交換機接收的交換機狀態信息可以用於更新交換機模型108。

在步驟214期間,交換機建模接口可以計算當前交換機狀態和在接收的網絡快照中限定的新交換機狀態之間的差異(Δ)。在使用在全局數據構造上操作的函數限定網絡快照和/或交換機模型的場景中,交換機建模接口可以使用函數和全局數據構造為所選的交換機計算交換機特定的狀態信息。可以直接比較來自交換機模型和來自接收的快照的交換機特定的狀態信息。替代地,可以直接比較全局構造,在全局構造中標識的差異可以用於標識對應的交換機特定的狀態信息中的差異。

在步驟216期間,交換機建模接口可以使用當前交換機狀態和新交換機狀態之間的任何已計算的差異生成實施期望的新交換機狀態的交換機控制消息。例如,交換機建模接口可以通過來自期望的新交換機狀態的L2轉發表條目來生成引導所選交換機替換交換機處的一個或多個當前L2轉發表條目的OpenFlow控制消息。

在步驟218期間,交換機建模接口可以隨同步請求消息一起向交換機提供生成的交換機控制消息。同步請求消息可以引導交換機響應於控制消息的成功處理而提供同步回復消息。換言之,如果由交換機成功地實施了交換機控制消息的交換機狀態修改,那麼交換機必須在步驟220期間以在控制器的交換機建模接口處可以接收的同步回復消息進行響應。如果交換機控制消息沒有在交換機處成功地處理,那麼交換機可以提供錯誤消息或可以無法響應於同步請求。可以從交換機接收的錯誤消息可以標識在交換機發生的錯誤的類型。例如,錯誤消息可以標識交換機處的表已滿以及交換機控制消息中提供的新條目不能儲存。作為另一個示例,錯誤消息可以標識交換機不能夠執行控制消息中指定的操作(例如,不支持的操作錯誤)。如果期望,控制模塊可以維護計時器,該計時器在步驟218期間交換機控制消息發出時啟動。計時器可以用代表時間段的值來配置,在該時間段內期望交換機提供響應(例如,同步回復或錯誤消息)。在這個場景中,控制模塊可以響應於計時器的過期而標識錯誤。

圖14中在生成時發出交換機控制消息的示例僅僅是說明性的。如果期望,步驟216期間生成的交換機控制消息可以積累並且成組發出。在這個場景中,同步請求可以針對交換機控制消息的每一組發出,並且任意同步回復消息可以確認對整個對應組的成功響應。

圖15是可以在控制網絡中的交換機中由具有交換機建模接口的控制器執行(例如,由圖6的控制器18執行)的說明性步驟的流程圖300。

在步驟302期間,控制器可以標識網絡事件。網絡事件可以基於從交換機或從諸如網絡管理員的用戶接收的信息而標識或檢測。例如,終端主機的連接或斷開可以從在控制路徑上從交換機接收的消息而標識。作為另一個示例,用戶可以提供標識新的期望的網絡配置的新網絡策略(例如,新轉發表值、鏈路聚合組分配等)。

在步驟304期間,控制器處的應用模塊(例如,圖6的應用模塊102)可以基於網絡事件生成新網絡快照。例如,可以響應於網絡事件生成指示期望的網絡配置的諸如圖12的快照152或圖13的快照162之類的網絡快照。響應於終端主機斷開,應用模塊可以生成從網絡配置中移除該終端主機的網絡快照。響應於終端主機連接,應用模塊可以生成向網絡配置增加該終端主機的網絡快照(例如,將終端主機加入到轉發表,同時確保轉發表條目滿足現有的網絡轉發規則)。響應於新網絡策略,應用模塊可以生成將網絡策略應用到現有網絡配置的網絡快照(例如,替換或修改諸如轉發表條目的現有表條目)。

在步驟306期間,應用模塊可以向交換機建模接口發送新網絡快照。在隨後的步驟308期間,交換機建模接口可以計算當前網絡快照與新快照之間的差異(Δ)。當前網絡快照可以儲存在控制器處或者可以通過與交換機通信而生成。在步驟310期間,交換機建模接口可以對於網絡中每一個交換機,使新快照和交換機處的當前狀態相一致以實施新網絡快照。例如,交換機建模接口可以在執行步驟308和310中執行圖14的流程圖200的步驟。在步驟312期間,交換機建模接口可以向應用模塊通知實施新網絡快照中的成功或失敗。

對於交換機建模接口來說確定當前交換機狀態與期望的新的網絡快照之間的差異(Δ)可能是有挑戰性的。例如,交換機處的狀態可以包括成百上千個表條目。通過網絡路徑將這些表條目轉移到控制器並計算差異Δ可能是消耗時間的。可以給網絡中的交換機提供可以由控制器使用以幫助確定當前交換機狀態和期望的網絡快照之間的差異的散列能力。

圖16是可以由交換機在從表條目生成可以幫助提高控制器處的交換機建模接口的性能的摘要標識符中執行的說明性步驟的流程圖400。例如,流程圖400的步驟可以由圖1的交換機14的控制單元24處的電路系統執行。

在步驟402期間,交換機可以接收或以其他方式處理表條目,諸如轉發表條目、鏈路聚合組表條目、地址解析協議表條目或至少部分限定交換機的配置的其他表條目。例如,表條目可以是由控制器提供的流表條目的一部分或者流表條目。

在步驟404期間,交換機可以計算用於表條目的散列值。可以使用任何期望的散列算法計算散列。例如,交換機可以在表條目的二進位數據上使用安全散列算法(SHA)以產生散列值。

交換機可以基於散列值維護用於組織表條目的桶(例如,零個或多個表條目的組)。在步驟406期間,交換機可以基於散列值的一部分將表條目分配到桶。例如,散列值的比特的前兩個、三個、四個或者任意選定的N個可以用於確定將表條目分配到哪個桶。

在步驟408期間,交換機可以計算用於分配的桶的摘要值(例如,摘要標識符)。可以通過在分配的桶中的所有條目上計算每一比特邏輯異或(XOR)而計算摘要值。交換機可以儲存用於分配的桶的摘要值,並且可以響應於來自控制器的請求,提供桶的摘要值。

圖17是包括桶414的說明性摘要表412的示意圖。摘要表412可以由交換機維護(例如,交換機處的儲存器處)。桶414可以基於計算的散列值分配表條目(例如,在圖16的流程圖400的操作期間)。在圖17的示例中,散列表條目基於用於該散列表條目的散列值的前兩個比特而分配到桶414。與每一個桶相關聯的散列值比特的數量可以對應於桶的數量。

每一個桶414可以包括零個或多個散列表條目和從散列表條目的每比特異或計算的摘要值(例如,所有散列表條目上的每一個比特位置的異或值被計算以產生摘要值,摘要值具有與每一個散列表條目的總比特數相同的總比特數)。桶0對應00的二進位值,並且可以被分配以「00」起始的散列表條目H1和H2。類似地,桶1(二進位01)可以分配以「01」起始的任何條目,桶2(二進位10)可以分配以「10」起始的條目H3,以及桶3(二進位11)可以分配以「11」起始的條目H4。

桶0的摘要可以是散列值H1和H2的異或。作為示例,散列值H1和H2可以是圖9的表122的前兩個L2轉發表條目的散列值。當還沒有表條目分配到桶1時,桶1(二進位值01)的摘要可以是0。當僅一個表條目分配到了桶H3和H4中的每一個時,桶H3和H4可以具有與對應的散列值H3和H4相同的摘要。

圖17中從每一個桶414的散列表條目計算異或的示例僅僅是說明性的。如果期望,諸如另一個散列函數的任何邏輯函數可以在每一個桶414的條目上計算以產生用於該桶的摘要值。邏輯異或函數可以是希望的,因為散列表條目中任何一比特變化產生不同的摘要值。此外,可以通過計算當前摘要值與將增加或移除的散列值的異或,響應於散列表條目的增加或移除而更新摘要值(例如,不需要從桶中的所有散列表條目重新計算摘要值)。

由交換機維護的關於網絡狀態(例如,諸如轉發表的表)的摘要值可以用於確定期望的網絡配置的網絡快照是否不同於現有網絡配置。圖18是可以由控制器處的交換機建模接口在標識期望的網絡快照與現有網路配置之間的不同中使用交換機計算的摘要值執行的說明性步驟的流程圖500。例如,流程圖500的步驟可以在圖14的步驟212和214期間或圖15的步驟308期間執行。

在步驟502期間,交換機建模接口處的控制模塊可以為期望的網絡快照(例如,從應用模塊接收的指示用於網絡的交換機的期望網絡配置的網絡快照)計算一個或多個摘要值。類似於交換機計算它自己的摘要表的方式,控制模塊可以為每一個交換機計算摘要值。例如,控制模塊可以針對每一個交換機執行圖16的步驟404-408,所述執行通過使用與該交換機相關聯的網絡快照中的表條目(例如,可以為網絡中的每一個交換機計算單獨的摘要表)。

在步驟504期間,控制模塊可以選擇交換機並且請求由所選交換機維護的摘要表(例如,在執行圖16的流程圖400的步驟中由交換機維護的摘要表)。

在步驟506期間,控制模塊可以比較由控制器計算的摘要值與從交換機取回的摘要值以標識摘要值的不同。與從交換機取回的摘要值不匹配的所選交換機的計算的摘要表的桶可以被標識為需要更新。相反地,與取回的摘要值匹配的所選交換機的計算的摘要表的桶可以被標識為不需要更新。

在步驟508期間,控制模塊可以與所選交換機通信以取回僅所選桶的表條目(例如,在計算分配到所選桶的散列值中使用的表條目)。控制模塊可以比較取回的表條目和網絡快照中的期望的表條目,並且向實施網絡快照的期望的網絡配置的所選交換機提供正確的表條目。

如圖18所示的摘要值的使用以確定在實施期望的網絡配置中需要做什麼修改可以幫助減少網絡中在控制器和交換機之間的控制路徑上的流量總量,因為僅具有不匹配摘要值的桶的表條目被傳輸。通過僅傳輸與不匹配摘要值相關聯的表條目,控制器處的儲存資源(例如,存儲器)可以更有效率地利用,因為在任何給定時間不需要在控制器處儲存整個交換機狀態。

根據實施例,一種使用控制器的方法,控制器控制具有終端主機的網絡中的交換機,終端主機耦合到交換機,提供了所述方法,所述方法包括:通過控制器處的交換機建模接口,維護網絡中的交換機的交換機模型;通過控制器處的交換機建模接口,接收交換機的網絡的期望的網絡配置;以及通過交換機建模接口,基於交換機模型生成用於交換機的控制消息以實施期望的網絡配置。

根據另一個實施例,在交換機建模接口處接收的期望的網絡配置包括表的集合和函數,所述方法包括:通過交換機建模接口,在表的集合上操作函數以標識期望的網絡配置。

根據另一個實施例,表的集合包括標識終端主機附接點的主機表和交換機間轉發表,以及在表的集合上操作函數以標識期望的網絡配置包括:在主機表和交換機間轉發表上操作函數以產生用於交換機的轉發表。

根據另一個實施例,所述方法包括:通過控制器,標識網絡事件;以及通過控制器,基於網絡事件生成期望的網絡配置。

根據另一個實施例,網絡事件包括從由如下組成的組中選擇的事件:終端主機的連接、終端主機的斷開和新的網絡政策。

根據另一個實施例,交換機模型標識網絡配置,所述方法包括:通過交換機建模接口,標識期望的網絡配置和由交換機模型標識的網絡配置之間的差異,基於交換機模型生成用於交換機的控制消息以實施期望的網絡配置包括:生成僅用於期望的網絡配置和由交換機模型標識的網絡配置之間所標識的差異的控制消息。

根據另一個實施例,所述方法包括:通過交換機建模接口,向交換機發送控制消息;以及通過交換機建模接口,確定在交換機處是否成功地實施了控制消息。

根據另一個實施例,控制器包括多個應用模塊,所述多個應用模塊通過與交換機建模接口通信來控制交換機,以及,基於網絡事件生成期望的網絡配置包括:通過所述多個應用模塊中的給定應用模塊,生成期望的網絡配置;以及通過所述給定應用模塊,向交換機建模接口提供期望的網絡配置。

根據另一個實施例,所述方法包括:通過交換機建模接口,向所述給定應用模塊提供標識在交換機處是否成功地實施了控制消息的信息。

根據另一個實施例,確定在交換機處是否成功地實施了控制消息包括:與控制消息一起向交換機提供同步請求消息;以及響應於從交換機接收到對應於同步請求消息的同步回復消息,確定在交換機處成功地實施了控制消息。

根據另一個實施例,確定在交換機處是否成功地實施了控制消息進一步包括:響應於從交換機接收到錯誤消息,確定在交換機處沒有成功地實施控制消息。

根據另一個實施例,每一個交換機維護具有包括散列的交換機狀態信息的條目的摘要表,摘要表的每一個條目包括從該條目的散列的交換機狀態信息計算的摘要值,以及,標識期望的網絡配置和由交換機模型標識的網絡配置之間的差異包括:通過控制器,計算用於期望的網絡配置的期望的摘要表集合;通過交換機建模接口,從交換機取回摘要表;以及比較由控制器計算的期望的摘要表和從交換機取回的摘要表。

根據一個實施例,一種操作網絡交換機的方法被提供,所述方法包括:通過網絡交換機,接收交換機配置數據;以及通過網絡交換機,至少部分基於網絡交換機處的已經存在的交換機配置數據和接收的交換機配置數據來計算摘要值。

根據另一個實施例,所述方法包括:通過網絡交換機,維護具有多個桶的摘要表,每一個桶與各自的摘要值相關聯;通過網絡交換機,散列所接收的交換機配置數據;以及將散列的交換機配置數據分配到所述多個桶中的基於散列的交換機配置數據選定的桶,針對所述選定的桶儲存所計算的摘要值。

根據另一個實施例,散列的交換機配置數據包括多個比特,以及,將散列的交換機配置數據分配到所述多個桶中的基於散列的交換機配置數據選定的桶包括:基於所述多個比特的子集選擇桶。

根據另一個實施例,所述選定的桶包括先前散列的交換機配置數據,以及,至少部分基於網絡交換機處的已經存在的交換機配置數據和接收的交換機配置數據來計算摘要值包括:基於所述選定的桶中的先前散列的交換機配置數據和散列的交換機配置數據來計算邏輯異或。

根據另一個實施例,交換機配置數據包括用於交換機的轉發表。

根據另一個實施例,交換機通過網絡控制路徑與控制器通信,所述方法包括:響應於來自控制器的請求,向控制器發送表的摘要值。

根據另一個實施例,一種使用控制器的方法,控制器控制具有終端主機的網絡中的交換機,終端主機耦合到交換機,所述方法被提供,所述方法包括:通過控制器,維護標識當前網絡配置的信息,標識當前網絡配置的信息包括表的集合和函數,所述函數在表的集合上操作以產生當前網絡配置的至少一部分。

根據另一個實施例,表的集合包括標識用於所有終端主機的終端主機附接點的主機表和標識交換機之間的鏈路的交換機間轉發表,所述方法包括:通過控制器,使用所述函數基於主機表和交換機間轉發表為交換機中的給定交換機生成每一交換機轉發表。

根據另一個實施例,所述方法包括:通過控制器,基於標識當前網絡配置的信息生成用於交換機的控制消息以實施期望的網絡配置。

以上所述內容僅是本發明的原理的說明性內容,並且本領域技術人員可以在不脫離本發明的範圍和精神的情況下做出多種修改。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀