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