組合來配置信息。也就是說,運營商可以通過改變連接到DB接口單元10的多個DB操作邏輯單元11的組合來容易地改變網(wǎng)絡(luò)DB 2的配置。因此,運營商可以容易地將控制裝置I配置為適合于網(wǎng)絡(luò)4的類型或適合于網(wǎng)絡(luò)4中使用的通信協(xié)議。
[0074]以下將列出用于操作網(wǎng)絡(luò)DB 2的命令的示例。然而,因為以下命令是示例,根據(jù)本公開的DB操作命令不限于以下示例。
[0075]信息輸入/輸出命令
[0076]信息刪除命令
[0077]通知訂閱命令
[0078]信息輸入/輸出命令用于向網(wǎng)絡(luò)DB 2輸入信息。此外,信息輸入/輸出命令用于從網(wǎng)絡(luò)DB 2獲取信息。例如,DB接口單元10使用命令“get (獲取)(鍵)”來從網(wǎng)絡(luò)DB 2獲取與標識信息(鍵)相對應(yīng)的數(shù)據(jù)(值)。此外,DB接口單元10使用命令“put(設(shè)置)(鍵、值)”來將與標識信息(鍵)相對應(yīng)的數(shù)據(jù)(值)輸入到網(wǎng)絡(luò)DB 2。如果列出了數(shù)據(jù)(值),則DB接口單元10可以使用命令“push (推)(鍵、值)”或命令“pop (彈)(鍵、值)”來執(zhí)行數(shù)據(jù)(值)的輸入或輸出。也就是說,數(shù)據(jù)可以用作隊列或棧。
[0079]信息刪除命令用于從網(wǎng)絡(luò)DB 2刪除信息。例如,DB接口單元10使用命令“delete (刪除)(鍵)”來從網(wǎng)絡(luò)DB 2刪除與標識信息(鍵)相對應(yīng)的數(shù)據(jù)(值)。
[0080]例如,通知訂閱命令用于訂閱。利用該命令,如果在網(wǎng)絡(luò)DB 2上執(zhí)行與所指定的標識信息(鍵)相對應(yīng)的操作,則網(wǎng)絡(luò)DB 2向DB接口單元10通知與標識信息(鍵)相對應(yīng)的數(shù)據(jù)(值)。例如,DB接口單元10向網(wǎng)絡(luò)DB 2發(fā)送命令“subscribe (訂閱)(鍵)”,并且如果執(zhí)行與標識信息(鍵)相對應(yīng)的操作,則DB接口單元10從網(wǎng)絡(luò)DB 2接收與標識信息(鍵)相對應(yīng)的數(shù)據(jù)(值)。鍵模式(例如通配符或常規(guī)表達式)可以用于標識信息。例如,網(wǎng)絡(luò)DB 2可以使用命令“publish(發(fā)布)(鍵、值、op)”來向DB接口單元10通知與標識信息相對應(yīng)的數(shù)據(jù)(值)。與鍵相對應(yīng)的操作(包括put/get/delete)可以被包括在“op”中。在通知之后,DB操作邏輯單元11可以識別與標識信息相對應(yīng)的鍵的添加、獲取或刪除。
[0081]多個DB操作邏輯單元11可以共享公共的DB操作命令。通過允許多個DB操作邏輯單元11用公共命令來操作網(wǎng)絡(luò)DB 2,網(wǎng)絡(luò)運營商可以容易地擴展DB操作邏輯單元11。也即是說,當將具有新功能的DB操作邏輯單元11添加到控制裝置I時,運營商不需要新設(shè)計DB操作邏輯單元11和網(wǎng)絡(luò)DB 2之間的接口。
[0082]DB操作邏輯單元11具有基于根據(jù)DB操作邏輯單元11的類型定義的預(yù)定算法來對存儲在網(wǎng)絡(luò)DB 2中的信息進行操作的功能。例如,DB操作邏輯單元11具有將從網(wǎng)絡(luò)4獲取的信息經(jīng)由DB接口單元10輸入到網(wǎng)絡(luò)DB 2的功能。
[0083]網(wǎng)絡(luò)控制單元12具有基于通過DB操作邏輯單元11的操作所配置的網(wǎng)絡(luò)DB 2來控制網(wǎng)絡(luò)4的功能。例如,網(wǎng)絡(luò)控制單元12可以根據(jù)網(wǎng)絡(luò)4中所使用的通信協(xié)議來改變控制網(wǎng)絡(luò)4的方法。
[0084]圖3示出了網(wǎng)絡(luò)DB 2的配置。圖3的該配置是一個示例,因此網(wǎng)絡(luò)DB 2的配置不限于圖3中的配置。
[0085]例如,網(wǎng)絡(luò)DB 2包括關(guān)于網(wǎng)絡(luò)4的拓撲的信息(拓撲信息;第一信息)、關(guān)于分組處理方法的信息(分組處理信息;第二信息)和關(guān)于分組的信息(分組信息;第三、第四信息)。
[0086]例如,拓撲信息包括關(guān)于網(wǎng)絡(luò)4中存在的每個節(jié)點3的信息(節(jié)點信息)和關(guān)于每個節(jié)點對之間的鏈路的信息(鏈路信息)。例如,節(jié)點信息包括關(guān)于節(jié)點3的標識符和通信端口的信息。例如,鏈路信息包括:鏈路的標識符、連接到鏈路的節(jié)點3的標識符、以及連接到鏈路的節(jié)點3的通信端口的標識符。
[0087]分組處理信息包括流信息。流信息是關(guān)于分組所屬的流的信息。流表示具有預(yù)定屬性(基于通信目的地、源等所能夠標識的屬性)的通信分組組。例如,流信息包括匹配條件、路徑信息和處理信息。例如,匹配條件表示用于標識與流信息相對應(yīng)的分組的條件。例如,路徑信息表示屬于與匹配條件相匹配的流的分組經(jīng)過的路徑。例如,處理信息表示要對經(jīng)過與路徑信息相對應(yīng)的路徑的分組執(zhí)行的處理(例如重寫首部信息)。
[0088]分組信息包括輸入分組信息和輸出分組信息。輸入分組信息是從網(wǎng)絡(luò)4接收的分組中與任意流信息中的匹配條件都不匹配的分組。輸出分組信息是需要從網(wǎng)絡(luò)4輸出的分組。
[0089]例如,網(wǎng)絡(luò)DB 2中存儲的拓撲信息、分組處理信息和輸入分組信息可以以預(yù)定格式標準化。通過對網(wǎng)絡(luò)DB 2中存儲的信息進行標準化,網(wǎng)絡(luò)DB 2可以與符合各種協(xié)議的網(wǎng)絡(luò)具有兼容性。
[0090]圖4至6示出了根據(jù)第一示例性實施例的操作。因為圖4至6的操作是示例,根據(jù)本公開的操作不限于在這些附圖中所示的操作。
[0091]圖4至6示出了由多個DB操作邏輯單元11 ( “DB操作邏輯單元11_1和11-2”)對網(wǎng)絡(luò)DB 2進行操作的示例。DB操作邏輯單元11-1具有對網(wǎng)絡(luò)DB 2進行操作并輸入/輸出關(guān)于拓撲的信息的功能。DB操作邏輯單元11-2具有基于在網(wǎng)絡(luò)DB 2中存儲的信息來生成分組處理信息的功能。
[0092]圖4示出了 DB操作邏輯單元11-1通過對網(wǎng)絡(luò)DB 2進行操作來管理網(wǎng)絡(luò)4的拓撲的操作。
[0093]控制裝置I的DB操作邏輯單元11-1經(jīng)由網(wǎng)絡(luò)控制單元12從網(wǎng)絡(luò)4收集關(guān)于拓撲的信息(SlO)。關(guān)于拓撲的信息是通過使用例如LLDP(鏈路層發(fā)現(xiàn)協(xié)議)收集的。LLDP是網(wǎng)絡(luò)上的裝置利用其與相鄰裝置交換信息并收集關(guān)于連接到裝置的通信端口的相鄰裝置的信息。例如,網(wǎng)絡(luò)控制單元12從每個節(jié)點3收集已經(jīng)由網(wǎng)絡(luò)4中的每個節(jié)點3通過LLDP所收集的信息。
[0094]例如,DB操作邏輯單元11-1基于經(jīng)由網(wǎng)絡(luò)控制單元12收集的信息,以與網(wǎng)絡(luò)DB2相對應(yīng)的預(yù)定格式生成拓撲信息(Sll)。
[0095]通過使用DB操作命令(信息輸入/輸出命令),DB操作邏輯單元11_1經(jīng)由DB接口單元10將所生成的拓撲信息存儲到網(wǎng)絡(luò)DB 2中(S12)。
[0096]圖5示出了 DB操作邏輯單元11-2通過對網(wǎng)絡(luò)DB 2進行操作來生成與對網(wǎng)絡(luò)4中流動的分組進行處理的方法有關(guān)的信息。
[0097]通過使用DB操作命令(信息輸入/輸出命令),控制裝置I的DB操作邏輯單元11-2經(jīng)由DB接口單元10從網(wǎng)絡(luò)DB 2獲取拓撲信息(S13)。
[0098]DB操作邏輯單元11-2可以通過使用通知訂閱命令來預(yù)設(shè)網(wǎng)絡(luò)DB2,使得當拓撲信息改變時,網(wǎng)絡(luò)DB 2向DB操作邏輯單元11-2通知拓撲信息的改變。當拓撲信息改變時,網(wǎng)絡(luò)DB 2經(jīng)由DB接口單元10向DB操作邏輯單元11_2通知拓撲信息的改變。
[0099]基于從網(wǎng)絡(luò)DB 2獲取的拓撲信息,DB操作邏輯單元11-2以與網(wǎng)絡(luò)DB 2相對應(yīng)的預(yù)定格式,生成分組處理信息(S14)。例如,DB操作邏輯單元11-2計算分組轉(zhuǎn)發(fā)路徑(圖3中的“路徑信息”)并將所計算的轉(zhuǎn)發(fā)路徑存儲到分組處理信息中。例如,DB操作邏輯單元11-2通過使用預(yù)定的計算邏輯來計算轉(zhuǎn)發(fā)路徑。例如,DB操作邏輯單元11-2將從源到目的地的最短路徑設(shè)置到分組轉(zhuǎn)發(fā)路徑。
[0100]此外,DB操作邏輯單元11-2將分組匹配條件和處理信息(例如重寫首部)存儲到分組處理信息中。
[0101]通過使用DB操作命令(信息輸入/輸出命令),DB操作邏輯單元11-2經(jīng)由DB接口單元10將所生成的分組處理信息存儲到網(wǎng)絡(luò)DB 2中(S15)。
[0102]圖6示出了控制裝置I通過對網(wǎng)絡(luò)DB 2進行操作來控制網(wǎng)絡(luò)4中的節(jié)點3的操作。
[0103]通過使用DB操作命令(信息輸入/輸出命令),控制裝置I的DB操作邏輯單元11-1經(jīng)由DB接口單元10從網(wǎng)絡(luò)DB 2獲取分組處理信息(S16)。
[0104]DB操作邏輯單元11-1可以通過使用通知訂閱命令來預(yù)設(shè)網(wǎng)絡(luò)DB2,使得當分組處理信息改變時,網(wǎng)絡(luò)DB 2向DB操作邏輯單元11-1通知分組處理信息的改變。例如,DB操作邏輯單元11-1使用通知訂閱命令來將用于對網(wǎng)絡(luò)DB 2的更新進行通知的通知條件設(shè)置到網(wǎng)絡(luò)DB 2中。當執(zhí)行與該預(yù)設(shè)通知條件相匹配的更新時,網(wǎng)絡(luò)DB 2向DB操作邏輯單元11-2通知網(wǎng)絡(luò)DB 2的更新內(nèi)容。例如,如果分組處理信息改變,則網(wǎng)絡(luò)DB 2經(jīng)由DB接口單元10向DB操作邏輯單元11-1通知分組處理信息的改變。
[0105]基于分組處理信息,DB操作邏輯單元11-1生成要在網(wǎng)絡(luò)4的節(jié)點3中設(shè)置的處理指令(定義由節(jié)點3執(zhí)行的分組處理方法的信息)并經(jīng)由網(wǎng)絡(luò)控制單元12將該處理指令設(shè)置在節(jié)點3中。
[0106]例如,DB操作邏輯單元11-1參考分組處理信息中的路徑信息,并將處理指令設(shè)置到與該路徑(Path)信息相對應(yīng)的轉(zhuǎn)發(fā)路徑上的每個節(jié)點3中。例如,DB操作邏輯單元11-1將定義對來自與轉(zhuǎn)發(fā)路徑相對應(yīng)的通信端口的分組進行轉(zhuǎn)發(fā)的處理指令設(shè)置到每個節(jié)點3中,使得沿著與路徑信息相對應(yīng)的轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)分組。
[0107]如在以上圖4至6中所示的操作中,通過對網(wǎng)絡(luò)DB 2進行操作,控制裝置I可以以集中方式控制網(wǎng)絡(luò)4中的分組處理。
[0108]如上所述,通過利用DB操作命令來操作網(wǎng)絡(luò)DB 2,控制裝置I可以控制網(wǎng)絡(luò)4。因此,網(wǎng)絡(luò)4的運營商可以通過合并網(wǎng)絡(luò)DB 2的操作命令來對控制裝置I進行編程。DB操作命令的數(shù)量遠小于API或與其有關(guān)的函數(shù)所需的命令的數(shù)量。因此,網(wǎng)絡(luò)4的運營商可以容易地對控制裝置I進行編程,而不需要學(xué)習高級知識和技術(shù)。
[0109]〈第二示例性實施例〉
[0110]接下來,將描述本公開的第二示例性實施例。在第二示例性實施例中,將詳細描述網(wǎng)絡(luò)DB 2的配置示例和DB操作命令的示例。
[0111]圖7至9示出了網(wǎng)絡(luò)DB 2的配置。圖7至9的配置是一個示例,因此網(wǎng)絡(luò)DB 2的配置不限于圖7至9中的配置。
[0112]此外,在第二示例性實施例中,網(wǎng)絡(luò)DB 2是通過鍵-值存儲配置的。然而,可以通過與鍵-值存儲不同的方式來配置網(wǎng)絡(luò)DB 2。
[0113]圖7示出了網(wǎng)絡(luò)DB 2中存儲的拓撲信息。通過與網(wǎng)絡(luò)4中的節(jié)點3有關(guān)的標識信息(鍵)和與節(jié)點3之間的鏈路有關(guān)的標識信息(鍵)來配置拓撲信息。每個標識信息(鍵)與數(shù)據(jù)(值)相關(guān)聯(lián)。
[0114]例如,與標識信息"/nodes"相對應(yīng)的數(shù)據(jù)(值)表示網(wǎng)絡(luò)4中存在的節(jié)點3的標識符(節(jié)點ID)。圖7中的"{1,2,3,4,...}"表示節(jié)點標識符列表。
[0115]標識信息"/nodes/[node_id]"的"[node_id]"表示網(wǎng)絡(luò)4中存在的節(jié)點3之一的標識符。例如,與標識信息"/nodes/[node_id]"相對應(yīng)的數(shù)據(jù)(值)表示與當控制裝置I控制網(wǎng)絡(luò)4中的節(jié)點3時所使用的標識符有關(guān)的信息或與節(jié)點3的制造商有關(guān)的信息。當控制裝置I控制網(wǎng)絡(luò)4中的節(jié)點3時所使用的標識符與以上標識信息"/nodes"相關(guān)聯(lián)的標識符不同。在開放流協(xié)議中,當控制裝置I控制網(wǎng)絡(luò)4中的節(jié)點3時所使用的標識符被稱為例如DPID (數(shù)據(jù)路徑ID)。
[0116]例如,與標識信息"/nodes/[node_id]/ports "相對應(yīng)的數(shù)據(jù)(值)表示與"[node_id]"相對應(yīng)的節(jié)點3的通信端口的標識符的列表。圖7中的"{1,2,3,4,...}"表示通信端口的標識符的列表。
[0117]標識信息"/nodes/[node_id]/ports/[port_id]"的"[port_id]"表示指示與"[node_id]"相對應(yīng)的節(jié)點3的通信端口之一的標識符。例如,標識信息"/nodes/[node_id]/ports/[port_id]"的數(shù)據(jù)(值)包括端口狀態(tài)(例如鏈路上行狀態(tài)或鏈路下行狀態(tài))、端口的通信帶寬等。
[0118]例如,與標識信息"/links"相對應(yīng)的數(shù)據(jù)(值)表示網(wǎng)絡(luò)4中存在的節(jié)點3之間的鏈路的標識符。圖7中的"{1,2,3,4,...}"表示鏈路標識符的列表。
[0119]標識信息"/links/[link_id]"的"[link_id]"表示網(wǎng)絡(luò)4中存在的節(jié)點之間的鏈路之一的標識符。例如,與標識信息"/links/[link_id]"相對應(yīng)的數(shù)據(jù)(值)包括與在鏈路兩端處的節(jié)點有關(guān)的信息和與這些節(jié)點的通信端口有關(guān)的信息。例如,在圖7中,數(shù)據(jù)(值)包括鏈路中分組源節(jié)點的標識符("srC_node_id")和鏈路中分組目的地節(jié)點的標識符("dst_node_id")。在圖 7 中,"src_port_id"表不與"src_node_id"相對應(yīng)的節(jié)點的通信端口中與鏈路相對應(yīng)的端口的標識符。在圖7中,"dst_port_id"表示與"dst_node_id"相對應(yīng)的節(jié)點的通信端口中與鏈路相對應(yīng)的端口的標識符。
[0120]網(wǎng)絡(luò)DB 2通過使用圖7中所示的這些數(shù)據(jù)庫條目,管理網(wǎng)絡(luò)4的拓撲。通過使用DB操作命令并操作圖7中所示的條目,DB操作邏輯單元11可以管理并操作網(wǎng)絡(luò)4的拓撲。
[0121]圖8示出了網(wǎng)絡(luò)DB 2中存儲的分組處理信息。例如,分組處理信息包括:匹配條件(Filter過濾器),該匹配條件用于標識與分組處理信息相對應(yīng)的分組;轉(zhuǎn)發(fā)路徑(Path路徑),該轉(zhuǎn)發(fā)路徑針對與匹配條件相匹配的分組;以及預(yù)定處理(Act1n動作),該預(yù)定處理要應(yīng)用于與匹配條件相匹配的分組。
[0122]與標識信息("/flows")相對應(yīng)的數(shù)據(jù)(值)表示分組處理信息的標識符。圖8中的"{1,2,3,4,...}"表示分組處理信息的標識符的列表。
[0123]標識信息("/flows/[flow_id