專(zhuān)利名稱(chēng):交換機(jī)和流表控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及交換機(jī),并且更特別地,涉及開(kāi)放流系統(tǒng)中的交換機(jī)。
背景技術(shù):
在傳統(tǒng)網(wǎng)絡(luò)系統(tǒng)中,單個(gè)交換機(jī)執(zhí)行路由控制和分組轉(zhuǎn)發(fā)。近年來(lái),因?yàn)榫W(wǎng)絡(luò)的虛擬化,提出了開(kāi)放流(Openflow)系統(tǒng),其中交換機(jī)的路由控制和分組轉(zhuǎn)發(fā)相互分離,并且路由控制集中在交換機(jī)之外的控制器中(非專(zhuān)利文獻(xiàn)I)。
在開(kāi)放流系統(tǒng)中,控制器監(jiān)控網(wǎng)絡(luò)中的交換機(jī)并且根據(jù)通信情況動(dòng)態(tài)地設(shè)置到網(wǎng)絡(luò)中交換機(jī)的分組傳輸路由??刂破魍ㄟ^(guò)使用開(kāi)放流協(xié)議(Openflow Protocol)消息在交換機(jī)上注冊(cè)流以產(chǎn)生流表。流定義了要對(duì)分組進(jìn)行的預(yù)先確定的處理(行為),該處理遵照預(yù)先確定的規(guī)則(規(guī)則)。通過(guò)在攜帶分組的幀的頭部區(qū)域中包含的目的地地址、源地址、目的地端口、源端口中的任意一個(gè)或所有的各種組合定義了流的規(guī)則,并能夠識(shí)別該規(guī)則。應(yīng)該注意的是假定在上述地址中包含了 MAC地址(媒體接入控制地址)和IP地址(因特網(wǎng)協(xié)議地址)。此夕卜,除上面以外的輸入端口(入端口)的數(shù)據(jù)可用作流的規(guī)則。流表存儲(chǔ)了每個(gè)交換機(jī)的流的數(shù)據(jù)(流條目)。在開(kāi)放流系統(tǒng)中,交換機(jī)根據(jù)已產(chǎn)生的流表實(shí)施分組轉(zhuǎn)發(fā)。在響應(yīng)于開(kāi)放流協(xié)議消息表,注冊(cè)從流的控制器接收的流之前,交換機(jī)需要確認(rèn)該流是否符合該交換機(jī)的平臺(tái)功能。交換機(jī)確定符合規(guī)則的流是有效流,不符合規(guī)則的流是無(wú)效流,并在流表上注冊(cè)有效流。開(kāi)放流系統(tǒng)的控制器和交換機(jī)常常分別被稱(chēng)為開(kāi)放流控制器(Openflowcontroller)和開(kāi)放流交換機(jī)(Openflow switch)。在開(kāi)放流協(xié)議中,為產(chǎn)生流表使用了流修改(Flow Mod)消息,但是沒(méi)有定義指示流條目的產(chǎn)生是否成功的響應(yīng)消息。因此,為了控制器確認(rèn)是否已經(jīng)注冊(cè)流條目,必需比較在注冊(cè)中需要的流數(shù)據(jù)和在統(tǒng)計(jì)請(qǐng)求(Statistics Request)消息中獲取的流數(shù)據(jù)。此外,當(dāng)在現(xiàn)有網(wǎng)絡(luò)中引入開(kāi)放流系統(tǒng)時(shí),有可能發(fā)生與現(xiàn)有功能的不匹配。 此外,在開(kāi)放流協(xié)議中,在執(zhí)行從控制器到交換機(jī)的流設(shè)置的流修改消息(FlowMod)中沒(méi)有定義用以向控制器通知結(jié)果的響應(yīng)消息。因此,為了控制器知道設(shè)置結(jié)果,必需通過(guò)使用統(tǒng)計(jì)請(qǐng)求消息(Statistics Request)進(jìn)行確認(rèn)。通常,在開(kāi)放流系統(tǒng)中,交換機(jī)中的流表只會(huì)保留有效流的條目,而不會(huì)保留無(wú)效流的條目。因此,存在如下問(wèn)題控制器無(wú)法確定是否能夠?qū)嶋H注冊(cè)將在交換機(jī)的流表上注冊(cè)的流、是否因?yàn)槭菬o(wú)效流而不能夠注冊(cè)該流或是否是因?yàn)槠渌驅(qū)е伦?cè)失敗。應(yīng)該注意的是專(zhuān)利文獻(xiàn)I (JP 2004-056340A)公開(kāi)了具有流表的層3交換機(jī)。此外,專(zhuān)利文獻(xiàn)2 (JP 2006-254134A)公開(kāi)了 當(dāng)存在符合搜索條件的流條目時(shí)輸出流標(biāo)識(shí)數(shù)據(jù),當(dāng)不存在符合搜索條件的流條目時(shí)在流表中添加流條目/從流表中刪除流條目。此外,專(zhuān)利文獻(xiàn)3(JP 2008-167340A)公開(kāi)了一種技術(shù)給分組延時(shí)單元提供流表,其中將分組描述為流標(biāo)識(shí)的對(duì)象。此外,專(zhuān)利文獻(xiàn)4(JP 2009-049592A)公開(kāi)了一種技術(shù)每次接收IP分組時(shí)將搜索關(guān)鍵字與流表中注冊(cè)的每個(gè)流條目進(jìn)行比較,并且更新統(tǒng)計(jì)數(shù)據(jù)(例如,匹配次數(shù)和相匹配的流條目的總分組長(zhǎng)度)。引用列表[專(zhuān)利文獻(xiàn)1]JP 2004-056340A[專(zhuān)利文獻(xiàn)2] JP 2006-254134A [專(zhuān)利文獻(xiàn)3] JP 2008-167340A[專(zhuān)利文獻(xiàn)4] JP 2009-049592A[非專(zhuān)利文獻(xiàn)I]Openflow switch Specification Version 0.9.0 (Wire Protocol0x98),2009年 7 月 20 日 Current Maintainer Brandon Heller (brandonhistanford. edu)[在線](http://www. openflowthe switch, org/documents/openflow-spec-vO. 9. 0. pdf)
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種開(kāi)放流系統(tǒng),該系統(tǒng)保留不符合預(yù)先確定功能的流條目,作為無(wú)效條目。提供了本發(fā)明的一種交換機(jī),其中在該交換機(jī)的流表上注冊(cè)流條目,流條目定義有用來(lái)像流一樣統(tǒng)一控制分組的規(guī)則和處理(動(dòng)作),該交換機(jī)具有以下裝置確認(rèn)控制器通知的流是否符合預(yù)先確定的功能,并且確定該流是有效還是無(wú)效的裝置;在常規(guī)流表上注冊(cè)有效流的裝置;在保留流表上注冊(cè)無(wú)效流的裝置;將從網(wǎng)絡(luò)接收到的分組當(dāng)作流,并且當(dāng)該流注冊(cè)在常規(guī)流表上時(shí),對(duì)該分組執(zhí)行該流特有的處理。一種交換機(jī)的流表控制方法,包括確認(rèn)控制器通知的流是否符合預(yù)先確定的功能,以確定該流是有效流還是無(wú)效流;在常規(guī)流表上注冊(cè)有效流;在保留流表上注冊(cè)無(wú)效流;以及將從網(wǎng)絡(luò)接收到的分組當(dāng)作流,并且當(dāng)該流已經(jīng)注冊(cè)在常規(guī)流表上時(shí),對(duì)該分組執(zhí)行該流特有的處理。本發(fā)明的流表控制程序是用于使交換機(jī)執(zhí)行以下處理的程序確認(rèn)控制器通知的流是否符合預(yù)先確定的功能,以確定該流是有效的還是無(wú)效的;在常規(guī)流表上注冊(cè)有效流;在保留流表上注冊(cè)無(wú)效流;以及將從網(wǎng)絡(luò)接收到的分組當(dāng)作流,并且當(dāng)該流已經(jīng)注冊(cè)在常規(guī)流表上時(shí),對(duì)該分組執(zhí)行該流特有的處理。應(yīng)注意的是本發(fā)明的流表控制程序可以存儲(chǔ)在存儲(chǔ)單元和存儲(chǔ)介質(zhì)中。按照這種方式,控制器能夠確定流是否能夠注冊(cè)在交換機(jī)的流表上。
圖I是示出了本發(fā)明的開(kāi)放流系統(tǒng)的配置示例的框圖;圖2是示出了當(dāng)在流表上設(shè)置流條目時(shí)的處理的流程圖;圖3是示出了當(dāng)控制器通知的流符合交換機(jī)配置數(shù)據(jù)并且注冊(cè)在常規(guī)流表上時(shí)的處理的時(shí)序圖;圖4是示出了當(dāng)控制器通知的流不符合交換機(jī)配置數(shù)據(jù)并且注冊(cè)在保留流表上時(shí)的處理的時(shí)序圖;圖5是示出了當(dāng)從流表讀取流條目時(shí)的處理的流程圖;圖6是示出了當(dāng) 從常規(guī)流表讀取流條目時(shí)的處理的時(shí)序圖,該流條目對(duì)應(yīng)于向控制器請(qǐng)求的流。圖7是示出了當(dāng)從保留流表讀取流條目時(shí)的處理的時(shí)序圖,該流條目對(duì)應(yīng)于向控制器請(qǐng)求的流。圖8是示出了當(dāng)重新確認(rèn)示出在流條目中的流有效還是無(wú)效時(shí)的處理的流程圖。
具體實(shí)施例方式在下文中,將描述根據(jù)本發(fā)明的實(shí)施有保留流表的開(kāi)放流系統(tǒng)。[第一示例性實(shí)施例]在下文中,將參考附圖描述本發(fā)明的第一示例性實(shí)施例。在當(dāng)前示例性實(shí)施例中,將描述本發(fā)明的開(kāi)放流系統(tǒng)的基本配置和操作。(系統(tǒng)配置)如圖I所示,本發(fā)明的開(kāi)放流系統(tǒng)具有控制器10和交換機(jī)20??刂破?0與交換機(jī)20 —起形成一個(gè)開(kāi)放流系統(tǒng),并且發(fā)送和接收開(kāi)放流協(xié)議消
肩、O交換機(jī)20具有消息處理部分21、流表控制部分22、平臺(tái)功能管理部分23、配置數(shù)據(jù)24、流表25和流表讀取部分26。消息處理部分21從控制器10接收開(kāi)放流協(xié)議消息,分析該消息,通過(guò)交換機(jī)20的一個(gè)合適的內(nèi)部模塊處理該消息,響應(yīng)于該內(nèi)部模塊的請(qǐng)求而組裝開(kāi)放流協(xié)議消息并向控制器10發(fā)送該消息。流修改(Flow Mod)消息和統(tǒng)計(jì)請(qǐng)求消息作為開(kāi)放流協(xié)議消息存在。流修改(FlowMod)消息是用來(lái)在交換機(jī)20的流表25中設(shè)置流條目(添加、修改和刪除)或用來(lái)產(chǎn)生流表25的消息。統(tǒng)計(jì)請(qǐng)求消息是用來(lái)請(qǐng)求交換機(jī)20的流條目、端口和流表25的統(tǒng)計(jì)數(shù)據(jù)的消息。流表控制部分22向平臺(tái)功能管理部分23查詢(xún)從消息處理部分21接收的流的確認(rèn),并且基于查詢(xún)結(jié)果對(duì)流表25執(zhí)行流條目的添加、刪除和修改。平臺(tái)功能管理部分23響應(yīng)于流表控制部分22的查詢(xún),確定作為對(duì)象的流是有效的還是無(wú)效的。這里,平臺(tái)功能管理部分23在從流表控制部分22接收到流的查詢(xún)時(shí),查閱交換機(jī)20的配置數(shù)據(jù)24,以確認(rèn)網(wǎng)絡(luò)(NW)設(shè)置。即,平臺(tái)功能管理部分23確認(rèn)作為對(duì)象的流的規(guī)則和動(dòng)作是否符合交換機(jī)20的配置數(shù)據(jù)24。提前設(shè)置配置數(shù)據(jù)24并在交換機(jī)20中維護(hù)或保存它。作為配置數(shù)據(jù)24的示例,有交換機(jī)20所屬的網(wǎng)絡(luò)(NW)中節(jié)點(diǎn)配置的數(shù)據(jù)、交換機(jī)20具有的功能的數(shù)據(jù)等等的例子。流表25有常規(guī)流表251和保留流表252。常規(guī)流表251是用于注冊(cè)符合交換機(jī)20的配置數(shù)據(jù)24的有效流的流表。
保留流表252是用于注冊(cè)不符合交換機(jī)20的配置數(shù)據(jù)24的無(wú)效流的流表。流表讀取部分26基于從消息處理部分21接收的流的頭部數(shù)據(jù),產(chǎn)生搜索關(guān)鍵字,并基于搜索關(guān)鍵字搜索流表25中的一個(gè)流條目,并讀取已搜索到的流條目。在本示例中,消息處理部分21從網(wǎng)絡(luò)接收分組,向流表讀取部分26通知基于該分組的流,如果在常規(guī)流表251中存在對(duì)應(yīng)于該流的流條目,則根據(jù)流條目轉(zhuǎn)發(fā)該流。此外,如果在常規(guī)流表251中不存在任何對(duì)應(yīng)于該流的流條目,消息處理部分21向控制器10通知該流。此時(shí),期望消息處理部分21與網(wǎng)絡(luò)進(jìn)行通信的通信線路和消息處理部分21與控制器10進(jìn)行通信的通信線路是不同的通信線路。然而,實(shí)際上,有可能使用相同通信線路。(硬件示例) 作為控制器10的示例,有計(jì)算機(jī)(例如PC(個(gè)人計(jì)算機(jī)))、設(shè)備(設(shè)備)、工作站、主框架和超級(jí)計(jì)算機(jī)的例子。此外,控制器10可以在物理機(jī)器上搭建的虛擬機(jī)(VM)環(huán)境下。作為交換機(jī)20的示例,有網(wǎng)絡(luò)交換機(jī)的例子。網(wǎng)絡(luò)交換機(jī)可以是L3交換機(jī)(層3交換機(jī))、L4交換機(jī)(層4交換機(jī))、L7交換機(jī)/應(yīng)用交換機(jī)(層7交換機(jī))或多層交換機(jī)等等。此外,作為交換機(jī)20的示例,有路由器、代理、網(wǎng)關(guān)、防火墻、負(fù)載平衡器、頻帶控制單元、安全監(jiān)控和控制單元、基站、接入點(diǎn)、帶有多個(gè)通信端口的計(jì)算機(jī)等等的列子。通過(guò)硬件資源(例如程序驅(qū)動(dòng)的處理器)、軟件資源(例如驅(qū)動(dòng)硬件資源執(zhí)行期望處理的程序)和存儲(chǔ)軟件資源和各種數(shù)據(jù)的存儲(chǔ)器,實(shí)現(xiàn)消息處理部分21、流表控制部分22、流表讀取部分26和平臺(tái)功能管理部分23。假定在以上提及的存儲(chǔ)器中存儲(chǔ)流表25和配置數(shù)據(jù)24。作為以上提及的硬件資源的示例,有CPU(中央處理單元)、微處理器(微處理器)、微控制器、具有專(zhuān)用功能的半導(dǎo)體集成電路(IC)等等的示例。作為以上提及的存儲(chǔ)器的示例,有RAM(隨機(jī)接入存儲(chǔ)器)、R0M(只讀存儲(chǔ)器)、半導(dǎo)體存儲(chǔ)設(shè)備(例如EEPROM(電可擦寫(xiě)可編程只讀存儲(chǔ)器)和閃存)、次級(jí)存儲(chǔ)器(例如HDD (硬盤(pán)驅(qū)動(dòng)器)和SSD (固態(tài)驅(qū)動(dòng)器))或可移動(dòng)磁盤(pán)、DVD (數(shù)字化通用磁盤(pán))和SD (安全數(shù)字)存儲(chǔ)卡的存儲(chǔ)媒介(媒介)等等的示例。同樣,上面提及的存儲(chǔ)器可以是使用DAS (直接附加存儲(chǔ))、FC-SAN(光纖信道儲(chǔ)域網(wǎng)絡(luò))、NAS(網(wǎng)絡(luò)附加存儲(chǔ))、IP-SAN(IP儲(chǔ)域網(wǎng)絡(luò))等等的存儲(chǔ)單元。同樣,可以統(tǒng)一以上提及的硬件資源和以上提及的存儲(chǔ)器。例如,近些年來(lái),開(kāi)發(fā)了 I-芯片設(shè)備(例如微計(jì)算機(jī))。因此,有安裝在交換機(jī)20上的I-芯片微計(jì)算機(jī)具有處理器和存儲(chǔ)單元的情況。然而,實(shí)際上,本發(fā)明不限于這些示例。(流表的設(shè)置處理)將參考圖2描述當(dāng)在流表25上設(shè)置流條目時(shí)的處理。(I)步驟 SlOl消息處理部分21從控制器10接收作為開(kāi)放流協(xié)議消息的流修改(Flow Mod)消息。此時(shí),消息處理部分21可以確定從控制器10接收的開(kāi)放流協(xié)議消息的類(lèi)型。(2)步驟 S102
響應(yīng)于流修改(Flow Mod)消息,消息處理部分21向流表控制部分22請(qǐng)求流修改(Flow Mod)消息中指定的處理。這里,流修改(Flow Mod)消息中指定的處理是流條目的添力口、刪除和修改中的任意一個(gè)。(3)步驟 S103流表控制部分22向平臺(tái)功能管理部分23請(qǐng)求流修改(Flow Mod)消息中示出的流的網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)。此時(shí),流表控制部分22可以啟動(dòng)平臺(tái)功能管理部分23。(4)步驟 S104平臺(tái)功能管理部分23查閱交換機(jī)20的配置數(shù)據(jù)24以確認(rèn)網(wǎng)絡(luò)(NW)設(shè)置,確定流是有效的還是無(wú)效的,并向流表控制部分22返回網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)結(jié)果(確定結(jié)果)。
·當(dāng)作為網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)結(jié)果,確定流是有效的時(shí),流表控制部分22對(duì)常規(guī)流表251執(zhí)行流修改(Flow Mod)消息中指定的處理(即流條目的添力口、刪除和修改中的任意一個(gè))。(6)步驟 S106當(dāng)作為網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)結(jié)果,確定流是無(wú)效的時(shí),流表控制部分22對(duì)保留流表252執(zhí)行流修改(Flow Mod)消息中指定的處理(流條目的添加、刪除和修改中的任意一個(gè))。應(yīng)該注意的是,當(dāng)基于從消息處理部分21接收的流執(zhí)行流條目的刪除時(shí),流表控制部分22可以不向平臺(tái)功能管理部分23請(qǐng)求網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn),而順序地或同時(shí)地命令常規(guī)流表251和保留流表252刪除流條目。這是因?yàn)樵诔R?guī)流表251和保留流表252之一中注冊(cè)流條目之后改變或修改網(wǎng)絡(luò)(NW)設(shè)置,因此存在以下可能性網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)結(jié)果(確定結(jié)果)在流條目的注冊(cè)時(shí)間和刪除時(shí)間之間是不同的。(常規(guī)流表的注冊(cè))將參照?qǐng)D3描述當(dāng)控制器10通知的流符合交換機(jī)20的配置數(shù)據(jù)24并且注冊(cè)在常規(guī)流表上時(shí)的處理。(I)步驟 SI 11首先,控制器10向消息處理部分21發(fā)送流修改(Flow Mod)消息以命令流注冊(cè)。(2)步驟 SI 12響應(yīng)于流修改(Flow Mod)消息,消息處理部分21向流表控制部分22請(qǐng)求流注冊(cè)。(3)步驟 SI 13流表控制部分22向平臺(tái)功能管理部分23請(qǐng)求流修改(Flow Mod)消息中示出的流的網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)。(4)步驟 S114平臺(tái)功能管理部分23查閱交換機(jī)20的配置數(shù)據(jù)24以確認(rèn)網(wǎng)絡(luò)(NW)設(shè)置,并向流表控制部分22返回網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)結(jié)果。這里,假定網(wǎng)絡(luò)(NW)設(shè)置確認(rèn)結(jié)果表明該流是有效的。(5)步驟 SI 15當(dāng)流是有效的時(shí),流表控制部分22在常規(guī)流表251上注冊(cè)該流的流條目。(保留流表的注冊(cè))將參照?qǐng)D4描述控制器10通知的流不符合交換機(jī)20的配置數(shù)據(jù)24并且注冊(cè)在保留流表上的處理。(I)步驟 S121首先,控制器10向消息處理部分21發(fā)送流修改(Flow Mod)消息以命令流注冊(cè)。(2)步驟 S122響應(yīng)于流修改(Flow Mod)消息,消息處理部分21向流表控制部分22請(qǐng)求流注冊(cè)。(3)步驟 S123 流表控制部分22向平臺(tái)功能管理部分23請(qǐng)求流修改(Flow Mod)消息中示出的流的網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)。(4)步驟 S124平臺(tái)功能管理部分23查閱交換機(jī)20的配置數(shù)據(jù)24以確認(rèn)網(wǎng)絡(luò)(NW)設(shè)置,并向流表控制部分22返回網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)結(jié)果。這里,假定網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)結(jié)果表明該流是無(wú)效的。(5)步驟 SI25當(dāng)流是無(wú)效的時(shí),流表控制部分22在保留流表251上注冊(cè)該流的流條目。(流表的讀取處理)將參考圖5描述當(dāng)從流表25中讀取流條目時(shí)的處理。(I)步驟 S2Ol消息處理部分21從控制器10接收作為一個(gè)開(kāi)放流協(xié)議消息的統(tǒng)計(jì)請(qǐng)求(Statistics Request)消息。此時(shí),消息處理部分21可以確定從控制器10接收的開(kāi)放流協(xié)議消息的類(lèi)型。⑵步驟S2O2消息處理部分21向流表讀取部分26請(qǐng)求統(tǒng)計(jì)請(qǐng)求消息中示出的流的流情況讀取。這里,消息處理部分21向流表讀取部分26通知該流。此時(shí),消息處理部分21可以啟動(dòng)流表讀取部分26。⑶步驟S2O3響應(yīng)于流情況讀取請(qǐng)求,流表讀取部分26確認(rèn)流情況。這里,流表讀取部分26基于流的頭部區(qū)域的數(shù)據(jù),產(chǎn)生搜索關(guān)鍵字,并基于此搜索關(guān)鍵字搜索常規(guī)流表251以確認(rèn)常規(guī)流表251中的對(duì)應(yīng)流條目是存在或不存在。(4)步驟 S204如果在常規(guī)流表251中存在對(duì)應(yīng)流條目,流表讀取部分26基于流情況確認(rèn)結(jié)果,確認(rèn)在常規(guī)流表251中存在對(duì)應(yīng)流條目。(5)步驟 S205如果在常規(guī)流表251中不存在對(duì)應(yīng)流條目,則流表讀取部分26基于流情況確認(rèn)結(jié)果,確認(rèn)在常規(guī)流表251中不存在任何對(duì)應(yīng)流條目。(6)步驟 S2O6當(dāng)在常規(guī)流表251中不存在任何對(duì)應(yīng)流條目時(shí),流表讀取部分26基于該流的頭部區(qū)域的數(shù)據(jù)產(chǎn)生搜索關(guān)鍵字,并基于此搜索關(guān)鍵字搜索保留流表252,以確認(rèn)保留流表252中的對(duì)應(yīng)流條目是存在或不存在。⑵步驟S2O7
如果在保留流表252中存在對(duì)應(yīng)流條目,則流表讀取部分26基于流情況確認(rèn)結(jié)果,確認(rèn)在保留流表252中存在對(duì)應(yīng)流條目。(8)步驟 S208如果在保留流表252中不存在對(duì)應(yīng)流條目,則流表讀取部分26基于流情況確認(rèn)結(jié)果,確認(rèn)在保留流表252中不存在對(duì)應(yīng)流條目。在這種情況下,可以證明流是未注冊(cè)流,它既沒(méi)有在常規(guī)流表251中注冊(cè),也沒(méi)有在保留流表252中注冊(cè)。(9)步驟 S2O9基于流情況確認(rèn)結(jié)果,流表讀取部分26向消息處理部分21通知流情況確認(rèn)結(jié)果。例如,當(dāng)存在多個(gè)流時(shí),在完成所有流的流情況確認(rèn)之后,流表讀取部分26向消息處理部分21通知流情況確認(rèn)結(jié)果。(10)步驟 S210·消息處理部分21基于流情況讀取結(jié)果產(chǎn)生統(tǒng)計(jì)回復(fù)(Statistics Reply)消息,并向控制器10發(fā)送該消息。(常規(guī)流表的讀取處理)將參考圖6描述當(dāng)從常規(guī)流表251讀取與向控制器10請(qǐng)求的流相對(duì)應(yīng)的流條目時(shí)的處理。(I)步驟 S211首先,控制器10向消息處理部分21發(fā)送統(tǒng)計(jì)請(qǐng)求(Statistics Request)消息。(2)步驟 S212基于統(tǒng)計(jì)請(qǐng)求消息中包含的或示出的流,消息處理部分21向流表讀取部分26發(fā)出流情況讀取請(qǐng)求。(3)步驟 S213流表讀取部分26基于流搜索常規(guī)流表251,以確認(rèn)對(duì)應(yīng)流條目的存在或不存在的流情況。這里,假定在常規(guī)流表251中存在對(duì)應(yīng)流條目。(4)步驟 S214基于流情況確認(rèn)結(jié)果,流表讀取部分26確認(rèn)在常規(guī)流表251中存在對(duì)應(yīng)流條目。(5)步驟 S215在此以后,流表讀取部分26向消息處理部分21通知流情況讀取結(jié)果。
(6)步驟 S216消息處理部分21產(chǎn)生統(tǒng)計(jì)回復(fù)消息,并向控制器10發(fā)送該消息。(保留流表的讀取處理)將參考圖7描述當(dāng)從保留流表252中讀取與向控制器10請(qǐng)求的流相對(duì)應(yīng)的流條目時(shí)的處理。(I)步驟 S221首先,控制器10向消息處理部分21發(fā)送統(tǒng)計(jì)請(qǐng)求(Statistics Request)消息。(2)步驟 S222基于統(tǒng)計(jì)請(qǐng)求消息中包含的或示出的流,消息處理部分21向流表讀取部分26發(fā)出流情況讀取請(qǐng)求。
(3)步驟 S223流表讀取部分26基于流搜索常規(guī)流表251,以確認(rèn)對(duì)應(yīng)流條目的存在或不存在的流情況。這里,假定在常規(guī)流表251中不存在對(duì)應(yīng)流條目。(4)步驟 S224基于流情況確認(rèn)結(jié)果,流表讀取部分26確認(rèn)在常規(guī)流表251中不存在對(duì)應(yīng)流條目。
(5)步驟 S225接著,流表讀取部分26基于流搜索保留流表252,以確認(rèn)對(duì)應(yīng)流條目的存在或不存在的流情況。這里,假定在保留流表252中存在對(duì)應(yīng)流條目。(6)步驟 S226基于流情況確認(rèn)結(jié)果,流表讀取部分26確認(rèn)在保留流表252中存在對(duì)應(yīng)流條目。⑵步驟S227在此以后,流表讀取部分26向消息處理部分21通知流情況讀取結(jié)果。⑶步驟S228消息處理部分21產(chǎn)生統(tǒng)計(jì)回復(fù)消息,并向控制器10發(fā)送該消息。這樣,控制器10能夠通過(guò)僅發(fā)送統(tǒng)計(jì)請(qǐng)求消息,確認(rèn)流表25上流的注冊(cè)的成功或失敗。例如,在向交換機(jī)20請(qǐng)求對(duì)流表25的流注冊(cè)處理之后,控制器10向交換機(jī)20發(fā)送該流的統(tǒng)計(jì)請(qǐng)求消息,以確認(rèn)對(duì)應(yīng)于該流的流條目是否已經(jīng)成功注冊(cè)到流表25上??刂破?0能夠通過(guò)來(lái)自交換機(jī)20的統(tǒng)計(jì)回復(fù)消息,確認(rèn)流表25上流條目的注冊(cè)已經(jīng)成功還是失敗。[第二示例性實(shí)施例]接著,將描述本發(fā)明的第二示例性實(shí)施例。在本示例性實(shí)施例中,在流表上注冊(cè)之后,重新確認(rèn)流表中流條目所示出的流是有效還是無(wú)效。(流條目的有效性的重新確認(rèn)處理)將結(jié)合圖8描述重新確認(rèn)流條目所示出的流是有效還是無(wú)效的處理。(I)步驟 S301當(dāng)修改了交換機(jī)20的配置數(shù)據(jù)24時(shí),平臺(tái)功能管理部分23通知流表控制部分22。當(dāng)從平臺(tái)功能管理部分23接收該通知時(shí),流表控制部分22向消息處理部分21通知已接收的通知。即,當(dāng)修改或改變了交換機(jī)20的配置數(shù)據(jù)24時(shí),平臺(tái)功能管理部分23直接通知消息處理部分21,或通過(guò)流表控制部分22通知消息處理部分21。⑵步驟S3O2消息處理部分21向流表讀取部分26請(qǐng)求讀取常規(guī)流表251和保留流表252上注冊(cè)的所有流條目。⑶步驟S3O3響應(yīng)于消息處理部分21的請(qǐng)求,流表讀取部分26讀取常規(guī)流表251和保留流表252上注冊(cè)的所有流條目并向消息處理部分21通知這些條目。應(yīng)該注意的是實(shí)際上,流表讀取部分26可以不共同地、而是單獨(dú)地(獨(dú)立地)執(zhí)行常規(guī)流表251中流條目的讀取操作和保留流表252中流條目的讀取操作。在這種情況下,流表讀取部分26單獨(dú)地向消息處理部分21通知常規(guī)流表251中的流條目和保留流表252中的流條目。(4)步驟 S304消息處理部分21向流表控制部分22通知已經(jīng)從流表讀取部分26通知的流表?xiàng)l目所示出的所有流。(5)步驟 S305 流表控制部分22向平臺(tái)功能管理部分23請(qǐng)求與消息處理部分21已經(jīng)通知的流條目相對(duì)應(yīng)的所有流的網(wǎng)絡(luò)(NW)設(shè)置的確認(rèn)。此時(shí),流表控制部分22可以啟動(dòng)平臺(tái)功能管理部分23。(6)步驟 S306平臺(tái)功能管理部分23查閱交換機(jī)20的配置數(shù)據(jù)24以確認(rèn)網(wǎng)絡(luò)(NW)設(shè)置,確定每個(gè)流是有效的還是無(wú)效的,并向流表控制部分22返回網(wǎng)絡(luò)(NW)設(shè)置確認(rèn)結(jié)果(確定結(jié)果)。⑵步驟S3O7如果作為網(wǎng)絡(luò)(NW)設(shè)置確認(rèn)結(jié)果,目標(biāo)流是有效流,則流表控制部分22對(duì)常規(guī)流表251執(zhí)行流條目的添加和修改。(8)步驟 S308此外,如果目標(biāo)流注冊(cè)在保留流表252中,則流表控制部分22在保留流表252中刪除該流條目。如果目標(biāo)流沒(méi)有注冊(cè)在保留流表252中,將不執(zhí)行此操作。(9)步驟 S3O9此外,如果作為網(wǎng)絡(luò)(NW)設(shè)置確認(rèn)結(jié)果,目標(biāo)流是無(wú)效流,則流表控制部分22對(duì)保留流表252執(zhí)行流條目的添加或修改。(10)步驟 S310此外,如果目標(biāo)流注冊(cè)在常規(guī)流表251中,則流表控制部分22在常規(guī)流表251中刪除該流條目。如果目標(biāo)流沒(méi)有注冊(cè)在常規(guī)流表251中,將不執(zhí)行此操作。這里,假定已知目標(biāo)流源自常規(guī)流表251的流條目和保留流表252中的流條目中的哪一個(gè)。例如,考慮以下情況流與指示該流是源自或注冊(cè)在哪個(gè)流表中的數(shù)據(jù)相關(guān)?;蛘撸紤]以下情況單獨(dú)地(獨(dú)立地)執(zhí)行常規(guī)流表251的流條目的處理和保留流表252的流條目的處理。此外,盡管不確定目標(biāo)流是源自常規(guī)流表251的流條目和保留流表252的流條目中的哪一個(gè),如果在常規(guī)流表251和保留流表252中的一個(gè)上重新注冊(cè)該目標(biāo)流之前,提前刪除了已經(jīng)注冊(cè)的流條目,則能夠避免重復(fù)注冊(cè)。例如,在消息處理部分21通知流之后,在流表上重新注冊(cè)目標(biāo)流之前,流表控制部分22基于目標(biāo)流頭部區(qū)域的數(shù)據(jù)產(chǎn)生搜索關(guān)鍵字,基于此搜索關(guān)鍵字搜索每個(gè)流表并且提前刪除對(duì)應(yīng)流條目。或者,不以流條目為單位,可以提前刪除并初始化已有流表25 (常規(guī)流表251和保留流表252)并且可以再一次提前新產(chǎn)生常規(guī)流表251和保留流表252。此外,可以在不確定目標(biāo)流是源自常規(guī)流表251的流條目和保留流表252的流條目中的哪一個(gè)的情況下,無(wú)條件地執(zhí)行流表中注冊(cè)對(duì)象的流條目的添加和修改的處理,否則,可以執(zhí)行流條目的刪除處理。盡管對(duì)應(yīng)于目標(biāo)流的流條目不存在于已經(jīng)執(zhí)行流條目刪除處理的流表中,該流條目的刪除處理僅僅失敗而已。以這種方式,當(dāng)在配置數(shù)據(jù)24中應(yīng)用修改時(shí),交換機(jī)20能夠在不從控制器10接收命令的情況下,而重新確認(rèn)流表25中注冊(cè)的所有流條目中的每一個(gè)是否符合配置數(shù)據(jù)24。根據(jù)本示例性實(shí)施例,當(dāng)通過(guò)提前在交換機(jī)20的流表25上注冊(cè)無(wú)效流來(lái)改變或修改配置數(shù)據(jù)24時(shí),控制器10能夠自動(dòng)將無(wú)效流改變或修改為有效流。因此,能夠?qū)粨Q機(jī)20的流表25提供冗余。[第三示例性實(shí)施例]接著,將描述本發(fā)明的第三示例性實(shí)施例。在本示例性實(shí)施例中,周期性地或當(dāng)通知新流時(shí),以及在第二示例性實(shí)施例中顯示的“流條目有效性的重新確認(rèn)處理”中對(duì)交換機(jī)20的配置數(shù)據(jù)24應(yīng)用修改的情況下,執(zhí)·行流條目有效性的重新確認(rèn)處理。例如,在每天的預(yù)先確定時(shí)間或當(dāng)從控制器10接收流修改(Flow Mod)消息時(shí),而不在圖8示出的步驟S301中從平臺(tái)功能管理部分23接收通知時(shí),執(zhí)行步驟S302及隨后步驟的處理。根據(jù)本示例性實(shí)施例,盡管未檢測(cè)到配置數(shù)據(jù)24的修改,能夠處理配置數(shù)據(jù)24的修改。因此,未立即檢測(cè)到配置數(shù)據(jù)24的修改,當(dāng)重新確認(rèn)時(shí),事后識(shí)別出配置數(shù)據(jù)24的修改。[第四示例性實(shí)施例]接著,將描述本發(fā)明的第四示例性實(shí)施例。在本示例性實(shí)施例中,在第一示例性實(shí)施例中示出的“流表的讀取處理”之后立即執(zhí)行第二示例性實(shí)施例中示出的“流表有效性的重新確認(rèn)處理”。例如,緊接在圖5示出的步驟S210之后或在步驟S209和步驟S210之間執(zhí)行圖8示出的步驟S305及后續(xù)步驟的處理。[第五示例性實(shí)施例]接著,將描述本發(fā)明的第五示例性實(shí)施例。在本示例性實(shí)施例中,通過(guò)在開(kāi)始第一示例性實(shí)施例中示出的“流表的讀取處理”中的流表讀取之前使用統(tǒng)計(jì)請(qǐng)求消息中示出的流作為目標(biāo)流,可以執(zhí)行第二示例性實(shí)施例中示出的“流表有效性的重新確認(rèn)處理”。例如,通過(guò)在圖5示出的步驟S201和步驟S202之間使用統(tǒng)計(jì)請(qǐng)求消息示出的流作為目標(biāo)流,消息處理部分21通知流表控制部分22。此后,執(zhí)行圖8示出的步驟S306及后續(xù)步驟的處理。在這種情況下,流表控制部分22在步驟S308至步驟S311中不知道目標(biāo)流注冊(cè)在哪一個(gè)流表上。因此,在每個(gè)流表上重新注冊(cè)目標(biāo)流之前,流表控制部分22基于目標(biāo)流頭部區(qū)域的數(shù)據(jù)產(chǎn)生搜索關(guān)鍵字,通過(guò)使用此參考關(guān)鍵字搜索每個(gè)流表,并且提前刪除對(duì)應(yīng)流條目。或者,流表控制部分22無(wú)條件地對(duì)注冊(cè)對(duì)象的流表執(zhí)行與目標(biāo)流相對(duì)應(yīng)的流條目的添加和修改,并對(duì)其他流表執(zhí)行該流條目的刪除。[第六示例性實(shí)施例]接著,將描述本發(fā)明的第六示例性實(shí)施例。
在本示例性實(shí)施例中,當(dāng)故障發(fā)生時(shí),將保留表中的流條目變?yōu)橛行?。例如,?dāng)故障發(fā)生時(shí),消息處理部分21命令流表讀取部分26讀取保留流表252的流條目,并從表讀取部分26接收保留流表252的流條目的通知。關(guān)于流條目中顯示的流,消息處理部分21命令流表控制部分22對(duì)常規(guī)流表251執(zhí)行流條目的添加,和從保留流表252中刪除流條目。響應(yīng)于來(lái)自消息處理部分21的命令,流表控制部分22對(duì)常規(guī)流表251執(zhí)行流條目的添加,和從保留流表252中刪除流條目。應(yīng)該注意的是因?yàn)榇嬖诋?dāng)故障發(fā)生時(shí)在交換機(jī)20的配置數(shù)據(jù)24中發(fā)生修改的情況,考慮處理第二示例性實(shí)施例中“流條目有效性的重新確認(rèn)處理”的情況。<示例性實(shí)施例之間的關(guān)系〉
應(yīng)該注意的是能夠合并上面提及的示例性實(shí)施例?!纯偨Y(jié)〉如上所述,本發(fā)明提供一種使用保留流表的開(kāi)放流系統(tǒng)。本發(fā)明的開(kāi)放流系統(tǒng)中的交換機(jī)將不符合預(yù)先確定功能的流條目作為無(wú)效條目保存。保存無(wú)效條目的流表被稱(chēng)作是保留流表。即,給本發(fā)明的開(kāi)放流系統(tǒng)中的交換機(jī)提供注冊(cè)符合交換機(jī)的平臺(tái)功能的流的常規(guī)流表,并提供注冊(cè)不符合交換機(jī)的平臺(tái)功能的流的保留流表。因此,控制器能夠通過(guò)使用統(tǒng)計(jì)請(qǐng)求(Statistics Request)消息確認(rèn)哪個(gè)流條目是無(wú)效的。本發(fā)明的開(kāi)放流系統(tǒng)中的控制器能夠通過(guò)僅發(fā)送統(tǒng)計(jì)請(qǐng)求(StatisticsRequest)消息來(lái)確認(rèn)流在注冊(cè)中的成功與失敗。此外,控制器能夠確定是否能夠?qū)嶋H注冊(cè)要在交換機(jī)的流表上注冊(cè)的流。此外,當(dāng)故障發(fā)生時(shí),有可能通過(guò)將保留表中的流條目設(shè)置為有效,給開(kāi)放流系統(tǒng)提供冗余?!囱a(bǔ)充項(xiàng)目〉能夠如以下增加的項(xiàng)目一樣描述部分或所有上述示例性實(shí)施例。然而,實(shí)際上,本發(fā)明不限于以下示例。(補(bǔ)充項(xiàng)目I)一種流表控制程序,包括確認(rèn)控制器通知的流是否符合預(yù)先確定的功能,以確定流是有效的還是無(wú)效的步驟;在常規(guī)流表上注冊(cè)有效流的步驟;在保留流表上注冊(cè)無(wú)效流的步驟;將從網(wǎng)絡(luò)接收的分組當(dāng)作流,并當(dāng)該流注冊(cè)在常規(guī)流表上時(shí)對(duì)該分組執(zhí)行該流特有的處理的步驟。(補(bǔ)充項(xiàng)目2)補(bǔ)充項(xiàng)目I定義的流表控制程序,還包括響應(yīng)于來(lái)自控制器的流注冊(cè)成功或失敗的查詢(xún),從常規(guī)流表和保留流表中的一個(gè)讀取流的步驟;向控制器回復(fù)該流注冊(cè)在常規(guī)流表和保留流表中的哪一個(gè)上的步驟。(補(bǔ)充項(xiàng)目3)在補(bǔ)充項(xiàng)目I或2中定義的流表控制程序,還包括檢測(cè)預(yù)先確定的功能的修改的步驟;基于預(yù)先確定的功能的修改,確認(rèn)常規(guī)流表和保留流表上注冊(cè)的每個(gè)流是否符合預(yù)先確定的功能,以確定每個(gè)流是有效流還是無(wú)效流的步驟;在所述常規(guī)流表上注冊(cè)有效流的步驟;當(dāng)有效流注冊(cè)在保留流表上時(shí),從保留流表中刪除該有效流的步驟;在保留流表上注冊(cè)無(wú)效流的步驟;以及當(dāng)無(wú)效流注冊(cè)在常規(guī)流表上時(shí),從常規(guī)流表中刪除該無(wú)效流的步驟。如上所述,已詳細(xì)描述本發(fā)明的示例性實(shí)施例。然而,實(shí)際上,本發(fā)明不限于上述示例性實(shí)施例,并且本 發(fā)明包含在不背離本發(fā)明的范圍的范圍內(nèi)的修改。< 備注 >本申請(qǐng)要求的日本專(zhuān)利申請(qǐng)JP 2010-095760的優(yōu)先權(quán)。該專(zhuān)利公開(kāi)通過(guò)引用的形式并入本申請(qǐng)。
權(quán)利要求
1.一種交換機(jī),包括 確認(rèn)控制器通知的流是否符合預(yù)先確定的功能,并確定所述流是有效還是無(wú)效的裝置; 在常規(guī)流表上注冊(cè)有效流的裝置; 在保留流表上注冊(cè)無(wú)效流的裝置;以及 將從網(wǎng)絡(luò)接收的分組當(dāng)作流,并且當(dāng)所述流已經(jīng)注冊(cè)在常規(guī)流表上時(shí)對(duì)所述分組執(zhí)行所述流特有的處理的裝置。
2.根據(jù)權(quán)利要求I所述的交換機(jī),還包括 響應(yīng)于來(lái)自控制器的流注冊(cè)成功或失敗的查詢(xún),從常規(guī)流表和保留流表之一讀取流的裝置;并且 向控制器回復(fù)所述流注冊(cè)在常規(guī)流表和保留流表中的哪一個(gè)上的裝置。
3.根據(jù)權(quán)利要求I或2所述的交換機(jī),還包括 檢測(cè)對(duì)所述預(yù)先確定的功能的修改的裝置; 基于對(duì)所述預(yù)先確定的功能的修改,確定在常規(guī)流表和保留流表上注冊(cè)的每個(gè)流是否符合所述預(yù)先確定的功能,并確定每個(gè)流是有效流還是無(wú)效流的裝置; 在常規(guī)流表上注冊(cè)有效流的裝置; 當(dāng)有效流已經(jīng)注冊(cè)在保留流表上時(shí),從保留流表中刪除所述有效流的裝置; 在保留流表上注冊(cè)無(wú)效流的裝置;以及 當(dāng)無(wú)效流已經(jīng)注冊(cè)在常規(guī)流表上時(shí),從常規(guī)流表中刪除所述無(wú)效流的裝置。
4.根據(jù)權(quán)利要求I至3中任意一項(xiàng)所述的交換機(jī),還包括 當(dāng)故障發(fā)生時(shí),將已經(jīng)注冊(cè)在保留流表上的流設(shè)置為有效的裝置。
5.一種交換機(jī)的流表控制方法,包括 確認(rèn)控制器通知的流是否符合預(yù)先確定的功能,以確定所通知的流是有效流還是無(wú)效流; 在常規(guī)流表上注冊(cè)有效流; 在保留流表上注冊(cè)無(wú)效流;以及 將從網(wǎng)絡(luò)接收到的分組當(dāng)作流,并且當(dāng)所述流已經(jīng)注冊(cè)在常規(guī)流表上時(shí),對(duì)所述分組執(zhí)行所述流特有的處理。
6.根據(jù)權(quán)利要求5所述的流表控制方法,還包括 響應(yīng)于來(lái)自控制器的流注冊(cè)成功或失敗的查詢(xún),從常規(guī)流表和保留流表之一讀取流;以及 向控制器回復(fù)所述流已經(jīng)注冊(cè)在常規(guī)流表和保留流表中的哪一個(gè)上。
7.根據(jù)權(quán)利要求5或6所述的流表控制方法,還包括 檢測(cè)對(duì)所述預(yù)先確定的功能的修改; 基于對(duì)所述預(yù)先確定的功能的修改,確認(rèn)常規(guī)流表和保留流表上注冊(cè)的每個(gè)流是否符合所述預(yù)先確定的功能,并且確定每個(gè)流是有效流還是無(wú)效流; 在常規(guī)流表上注冊(cè)有效流; 當(dāng)有效流已經(jīng)注冊(cè)在保留流表上時(shí),從保留流表中刪除所述有效流; 在保留流表上注冊(cè)無(wú)效流;以及當(dāng)無(wú)效流已經(jīng)注冊(cè)在常規(guī)流表上時(shí),從常規(guī)流表中刪除所述無(wú)效流。
8.一種存儲(chǔ)流表控制程序的存儲(chǔ)介質(zhì),所述流表控制程序使交換機(jī)執(zhí)行根據(jù)權(quán)利要求5-7之一所述的流表控制方法。
全文摘要
在開(kāi)放流系統(tǒng)中,可以確認(rèn)是已經(jīng)成功還是已經(jīng)失敗在流表上注冊(cè)流。具體地,控制器向交換機(jī)發(fā)送開(kāi)放流消息并且從交換機(jī)接收開(kāi)放流消息。交換機(jī)具有管理控制器注冊(cè)的流的流表;讀取相應(yīng)數(shù)據(jù)的流表讀取部分;執(zhí)行流條目的添加、刪除和修改處理的流表控制部分;以及根據(jù)來(lái)自流表控制部分的查詢(xún),確定目標(biāo)流條目是有效還是無(wú)效的平臺(tái)功能管理部分。流表包含常規(guī)流表和保留流表。在常規(guī)流表上注冊(cè)符合交換機(jī)的配置數(shù)據(jù)的有效流條目。在保留流表上注冊(cè)不符合交換機(jī)的配置數(shù)據(jù)的無(wú)效流條目。
文檔編號(hào)H04L12/801GK102859952SQ20118001995
公開(kāi)日2013年1月2日 申請(qǐng)日期2011年4月12日 優(yōu)先權(quán)日2010年4月19日
發(fā)明者末光真理子, 高島正德, 藤田謙 申請(qǐng)人:日本電氣株式會(huì)社