控制器、用于分配負(fù)載的方法、存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)、計(jì)算機(jī)系統(tǒng)和控制設(shè)備的制作方法
【專利摘要】開放流網(wǎng)絡(luò)包括多個(gè)控制器(1)。每一控制器(1)包括負(fù)載控制表(153)和負(fù)載控制單元(14)。負(fù)載控制表(153)控制開放流網(wǎng)絡(luò)中的交換機(jī)(2)的每一個(gè)在預(yù)定時(shí)間內(nèi)已經(jīng)傳輸?shù)娇刂平粨Q機(jī)(2)的控制器(1)的消息的數(shù)目和交換機(jī)(2)在預(yù)定時(shí)間內(nèi)已經(jīng)接收的分組的數(shù)目中的至少一個(gè)。當(dāng)預(yù)定事件發(fā)生時(shí),負(fù)載控制單元(14)根據(jù)負(fù)載控制表(153),檢測具有高于或等于第一閾值的處理負(fù)載的控制器(1),并且使由所檢測的控制器(1)控制的交換機(jī)(2)的至少一個(gè)處于另一控制器(1)的控制下。
【專利說明】控制器、用于分配負(fù)載的方法、存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可 讀介質(zhì)、計(jì)算機(jī)系統(tǒng)和控制設(shè)備
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及控制器、分配負(fù)載方法、存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)、計(jì)算機(jī)系 統(tǒng)和控制設(shè)備。特別地,本發(fā)明涉及與開放流(OpenFlow)網(wǎng)絡(luò)有關(guān)的控制器、分配負(fù)載方 法、存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)、計(jì)算機(jī)系統(tǒng)和控制設(shè)備。
【背景技術(shù)】
[0002] 開放流網(wǎng)絡(luò)是將由介質(zhì)訪問控制(MAC)地址、IP地址和端口號(hào)的組合確定的一系 列通信定義為"流"并且對每一流執(zhí)行路徑控制的網(wǎng)絡(luò)控制技術(shù)。開放流網(wǎng)絡(luò)包括用于計(jì) 算分組的路徑的控制器(〇FC :0penFlow控制器)、用于轉(zhuǎn)發(fā)分組的交換機(jī)(OFS :0penFlow 交換機(jī))以及連接到交換機(jī)的終端。
[0003] 每一交換機(jī)包括對每一流,描述分組轉(zhuǎn)發(fā)路徑、分組轉(zhuǎn)發(fā)方法等等的流表??刂破?在交換機(jī)的流表?xiàng)l目中設(shè)定分組轉(zhuǎn)發(fā)規(guī)則。每一交換機(jī)根據(jù)在流表中設(shè)定的轉(zhuǎn)發(fā)規(guī)則轉(zhuǎn)發(fā) 分組。
[0004] 經(jīng)由稱為安全信道的安全套接層/傳輸層安全(SSL/TLS)或傳輸控制協(xié)議(TCP), 連接控制器和交換機(jī)。經(jīng)由安全信道傳輸或接收開放流協(xié)議消息。
[0005] 當(dāng)交換機(jī)從終端接收分組時(shí),交換機(jī)參考流表的報(bào)頭字段(報(bào)頭字段屬性)并且 搜索具有與該分組的報(bào)頭信息匹配的報(bào)頭字段的條目。如果這種條目存在,交換機(jī)更新該 條目的統(tǒng)計(jì)信息("計(jì)數(shù)器"屬性)并且執(zhí)行指定處理("動(dòng)作"屬性)。如果這種條目不 存在,交換機(jī)將該分組傳輸?shù)娇刂破鳎╬acket-in消息)。
[0006] 控制器接收packet-in消息并且計(jì)算該分組的路徑。然后,根據(jù)所計(jì)算的路徑 (flow-mod消息),控制器將對應(yīng)于該分組的條目添加到交換機(jī)的流表中。然后,控制器將 該分組傳輸?shù)浇粨Q機(jī)(packet-out消息)。
[0007] 如果在開放流網(wǎng)絡(luò)中,更多終端連接到交換機(jī),交換機(jī)將更多packet-in消息傳 輸?shù)娇刂破?。在這種情況下,單一控制器可能不能夠處理該消息。為此,最好在開放流網(wǎng)絡(luò) 中安裝多個(gè)控制器,以便分發(fā)控制器從交換機(jī)接收的消息。
[0008] 在開放流網(wǎng)絡(luò)中安裝多個(gè)控制器中,每一控制器被分派由該控制器控制的交換 機(jī)。因此,每一控制器將消息僅傳輸?shù)接纱丝刂频慕粨Q機(jī)或僅從其接收消息。因此,可以分 發(fā)控制器從交換機(jī)接收的消息。
[0009] 假定多個(gè)控制器安裝在開放流網(wǎng)絡(luò)中,當(dāng)在每一交換機(jī)的流表中設(shè)定轉(zhuǎn)發(fā)規(guī)則 時(shí),每一控制器要求如下所述的路徑信息和拓?fù)湫畔ⅰ榇?,控制器使這些信息集相互同 止 /J/ 〇
[0010] ⑴路徑信息
[0011] 路徑信息是指示開放流網(wǎng)絡(luò)中的最短路徑的信息。每一控制器由拓?fù)湫畔⒂?jì)算路 徑息。
[0012] ⑵拓?fù)湫畔?br>
[0013] 拓?fù)湫畔⑹怯嘘P(guān)開放流網(wǎng)絡(luò)中的交換機(jī)的連接的信息。每一控制器通過將鏈路層 發(fā)現(xiàn)協(xié)議(LLDP)的查詢分組等等定期地傳輸?shù)浇粨Q機(jī),獲得有關(guān)由該控制器控制的每一 交換機(jī)的拓?fù)湫畔?br>
[0014] 引用清單
[0015] 專利文獻(xiàn)
[0016] [專利文獻(xiàn)1]日本未審專利申請公開No. 2011-166692
[0017] 非專利文獻(xiàn)
[0018] [非專利文獻(xiàn) l]0penFlow Switch Specification Version 1· 1. OImplemented(Wire Protocol 0x02)2011 年 2 月 28 日,[2012 年 1 月 16 日檢索的], 網(wǎng)絡(luò)
[0019] 〈URL: http:
[0020] //www. openflow. org/documents/openflow-spec-vl. 1. 0. pdf>
【發(fā)明內(nèi)容】
[0021] 技術(shù)問題
[0022] 如上所述,可以在開放流網(wǎng)絡(luò)中安裝多個(gè)控制器,并且由此分配控制器的負(fù)載。然 而,將近似相同數(shù)目的交換機(jī)簡單分派給每一控制器不允許均衡控制器的負(fù)載。對此,存在 下述原因⑴和(2)。
[0023] (1)交換機(jī)的使用狀態(tài)
[0024] 由控制器控制的交換機(jī)傳輸?shù)皆摽刂破鞯南⒌臄?shù)目在交換機(jī)間改變。消息的數(shù) 目還隨時(shí)區(qū)改變。
[0025] (2)網(wǎng)絡(luò)配置(拓?fù)洌┑母?br>
[0026] 由控制器控制的交換機(jī)傳輸?shù)皆摽刂破鞯南⒌臄?shù)目隨由交換機(jī)之間的連接故 障、交換機(jī)的添加或刪除等等引起的拓?fù)渑渲玫淖兓淖儭?br>
[0027] 鑒于上述問題,做出了本發(fā)明,并且其主要目的是在包括多個(gè)控制器的開放流網(wǎng) 絡(luò)中提供一種能均衡控制器的負(fù)載的控制器、分配負(fù)載方法、存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可 讀介質(zhì)、計(jì)算機(jī)系統(tǒng)和控制設(shè)備。
[0028] 技術(shù)方案
[0029] 根據(jù)本發(fā)明的方面,一種用于控制開放流網(wǎng)絡(luò)中的多個(gè)交換機(jī)中的一些的控制 器,該控制器包括:
[0030] 負(fù)載控制表,該負(fù)載控制表被配置成控制控制下述中的至少一個(gè):開放流網(wǎng)絡(luò)中 的交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制交換機(jī)的控制器傳輸?shù)南⒌臄?shù)目、以及交 換機(jī)在預(yù)定時(shí)間段中已經(jīng)接收到的分組的數(shù)目;以及
[0031] 負(fù)載控制裝置,該負(fù)載控制裝置被配置成當(dāng)預(yù)定事件發(fā)生時(shí),基于負(fù)載控制表來 檢測處理負(fù)載應(yīng)當(dāng)被分配的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至少 一個(gè)處于另一控制器的控制下。
[0032] 根據(jù)本發(fā)明的方面,一種用于分配控制器的負(fù)載的方法,控制器控制開放流網(wǎng)絡(luò) 中的多個(gè)交換機(jī)中的一些,方法包括:
[0033] 控制步驟,該控制步驟控制負(fù)載控制表,該負(fù)載控制表包括下述中的至少一個(gè):開 放流網(wǎng)絡(luò)中的交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制交換機(jī)的控制器傳輸?shù)南⒌?數(shù)目、以及交換機(jī)在預(yù)定時(shí)間段中已經(jīng)接收到的分組的數(shù)目;以及
[0034] 負(fù)載控制步驟,當(dāng)預(yù)定事件發(fā)生時(shí),基于負(fù)載控制表來檢測處理負(fù)載應(yīng)當(dāng)被分配 的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至少一個(gè)處于另一控制器的控 制下。
[0035] 根據(jù)本發(fā)明的方面,一種存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),該程序使得計(jì)算機(jī) 執(zhí)行用于分配控制器的負(fù)載的方法,該控制器控制開放流網(wǎng)絡(luò)中的多個(gè)交換機(jī)中的一些, 方該法包括:
[0036] 控制步驟,該控制步驟控制負(fù)載控制表,該負(fù)載控制表包括下述中的至少一個(gè):開 放流網(wǎng)絡(luò)中的交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制交換機(jī)的控制器傳輸?shù)南⒌?數(shù)目、以及交換機(jī)在預(yù)定時(shí)間段中已經(jīng)接收到的分組的數(shù)目;以及
[0037] 負(fù)載控制步驟,當(dāng)預(yù)定事件發(fā)生時(shí),基于負(fù)載控制表來檢測處理負(fù)載應(yīng)當(dāng)被分配 的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至少一個(gè)處于另一控制器的控 制下。
[0038] 根據(jù)本發(fā)明的方面,一種計(jì)算機(jī)系統(tǒng),包括:
[0039] 多個(gè)交換機(jī),每一交換機(jī)被配置成根據(jù)流表,在開放流網(wǎng)絡(luò)中轉(zhuǎn)發(fā)分組;以及
[0040] 多個(gè)控制器,每一控制器被配置成控制交換機(jī)中的一些,
[0041] 其中,該控制器的每一個(gè)包括:
[0042] 負(fù)載控制表,該負(fù)載控制表被配置成控制控制下述中的至少一個(gè):開放流網(wǎng)絡(luò)中 的交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制交換機(jī)的控制器傳輸?shù)南⒌臄?shù)目、以及交 換機(jī)在預(yù)定時(shí)間段中已經(jīng)接收到的分組的數(shù)目;以及
[0043] 負(fù)載控制裝置,該負(fù)載控制裝置被配置成當(dāng)預(yù)定事件發(fā)生時(shí),基于負(fù)載控制表來 檢測處理負(fù)載應(yīng)當(dāng)被分配的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至少 一個(gè)處于另一控制器的控制下。
[0044] 根據(jù)本發(fā)明的方面,一種控制用于分配多個(gè)控制器的負(fù)載的設(shè)備,該控制器控制 開放流網(wǎng)絡(luò)中的交換機(jī),該控制設(shè)備包括:
[0045] 負(fù)載控制表,該負(fù)載控制表被配置成控制控制下述中的至少一個(gè):開放流網(wǎng)絡(luò)中 的交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制交換機(jī)的控制器傳輸?shù)南⒌臄?shù)目、以及交 換機(jī)在預(yù)定時(shí)間段中已經(jīng)接收到的分組的數(shù)目;以及
[0046] 負(fù)載控制裝置,該負(fù)載控制裝置被配置成當(dāng)預(yù)定事件發(fā)生時(shí),基于負(fù)載控制表來 檢測處理負(fù)載應(yīng)當(dāng)被分配的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至少 一個(gè)處于另一控制器的控制下。
[0047] 有益效果
[0048] 根據(jù)本發(fā)明,可以在包括多個(gè)控制器的開放流網(wǎng)絡(luò)中提供一種能均衡控制器的負(fù) 載的控制器、負(fù)載分配方法、存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)、計(jì)算機(jī)系統(tǒng)和控制設(shè)備。
【專利附圖】
【附圖說明】
[0049] 圖1是示出根據(jù)第一實(shí)施例的開放流網(wǎng)絡(luò)的結(jié)構(gòu)的框圖;
[0050] 圖2是示出根據(jù)第一實(shí)施例的控制器的結(jié)構(gòu)的框圖;
[0051] 圖3是示出根據(jù)第一實(shí)施例的負(fù)載控制表的結(jié)構(gòu)的原理圖;
[0052] 圖4是示出根據(jù)第一實(shí)施例的交換機(jī)的結(jié)構(gòu)的框圖;
[0053] 圖5是示出根據(jù)第一實(shí)施例的控制器的控制操作的流程圖;
[0054] 圖6是示出由根據(jù)第一實(shí)施例的控制器執(zhí)行的負(fù)載信息更新處理的流程圖;
[0055] 圖7是示出由根據(jù)第一實(shí)施例的控制器執(zhí)行的負(fù)載分配處理的流程圖;
[0056] 圖8是示出將交換機(jī)添加到根據(jù)第一實(shí)施例的開放流網(wǎng)絡(luò)的處理的流程圖;
[0057] 圖9是示出由根據(jù)第一實(shí)施例的交換機(jī)執(zhí)行的控制器信息獲得處理的流程圖;
[0058] 圖10是示出從根據(jù)第一實(shí)施例的開放流網(wǎng)絡(luò)刪除交換機(jī)的處理的流程圖;
[0059] 圖11是示出根據(jù)第一實(shí)施例的開放流網(wǎng)絡(luò)的結(jié)構(gòu)的框圖;
[0060] 圖12示出根據(jù)第一實(shí)施例的負(fù)載控制表的示例結(jié)構(gòu);
[0061] 圖13示出根據(jù)第一實(shí)施例的負(fù)載控制表的示例結(jié)構(gòu);
[0062] 圖14是示出根據(jù)第一實(shí)施例的開放流網(wǎng)絡(luò)的結(jié)構(gòu)的框圖;
[0063] 圖15是示出根據(jù)第一實(shí)施例的控制器的硬件結(jié)構(gòu)的框圖;以及
[0064] 圖16是示出根據(jù)本發(fā)明的開放流網(wǎng)絡(luò)的結(jié)構(gòu)的框圖。
【具體實(shí)施方式】
[0065] 第一實(shí)施例
[0066] 現(xiàn)在,將參考附圖,描述本發(fā)明的實(shí)施例。首先,將概述根據(jù)本實(shí)施例的開放流網(wǎng) 絡(luò)。圖1是示出根據(jù)本實(shí)施例的開放流網(wǎng)絡(luò)的結(jié)構(gòu)的框圖。
[0067] 開放流網(wǎng)絡(luò)包括多個(gè)控制器1 (1-1,1-2)、多個(gè)交換機(jī)2(2-1至2-4)和多個(gè)終端 (3-1至3-8)??刂破?-1控制交換機(jī)2-1和2-2。具體地,它控制這些交換機(jī)的流表等等。 類似地,控制器1-2控制交換機(jī)2-3和2-4。具體地,它控制這些交換機(jī)的流表等等。當(dāng)然, 控制器1-1和1-2能控制任意多個(gè)交換機(jī)。在下文中,控制器1-1和1-2將簡稱為"控制器 1",除非需要相互區(qū)分這些控制器。
[0068] 交換機(jī)2-1包括流表。交換機(jī)2-1是從終端3-1和3-2或另一交換機(jī)2-2接收分 組,以及根據(jù)流表轉(zhuǎn)發(fā)所接收的分組的設(shè)備。當(dāng)然,交換機(jī)2-1能從任意多個(gè)終端接收分 組。交換機(jī)2-2至2-4的結(jié)構(gòu)與交換機(jī)2-1類似。在下文中,交換機(jī)2-1至2-4將稱為"交 換機(jī)2",除非需要相互區(qū)分這些交換機(jī)。
[0069] 終端3-1傳輸或接收分組。終端3-1是例如通用個(gè)人計(jì)算機(jī)、移動(dòng)電話等等。同 樣適用于終端3-2至3-7。在下文中,終端3-1至3-8將稱為"終端3",除非需要相互區(qū)分 這些終端。
[0070] 接著,參考圖2,將描述控制器1的內(nèi)部結(jié)構(gòu)和操作。圖2是示出控制器1的內(nèi)部 結(jié)構(gòu)的框圖??刂破?包括消息控制單元11、路徑控制單元12、拓?fù)涓聠卧?3、負(fù)載控制 單元14和網(wǎng)絡(luò)信息存儲(chǔ)單元15。控制器1只需要是包括中央處理單元(CPU)等等的計(jì)算 機(jī)。
[0071] 網(wǎng)絡(luò)信息存儲(chǔ)單元15存儲(chǔ)路徑信息151、拓?fù)湫畔?52和負(fù)載控制表153。路徑 信息151包括所謂的"流信息",指示每一交換機(jī)2如何傳輸分組。拓?fù)湫畔?52指示開放 流網(wǎng)絡(luò)的結(jié)構(gòu)。負(fù)載控制表153是保存用于掌握每一控制器1的負(fù)載的狀態(tài)的信息的表。 稍后將參考圖3描述負(fù)載控制表153。
[0072] 在所有控制器1之間,同步網(wǎng)絡(luò)信息存儲(chǔ)單元15中的信息集(控制器1相互告知 信息集的任何變化)。即,當(dāng)更新一個(gè)控制器1的網(wǎng)絡(luò)信息存儲(chǔ)單元15中的任何信息時(shí),同 樣地更新另一控制器1的每一個(gè)的網(wǎng)絡(luò)信息存儲(chǔ)單元15中的相應(yīng)信息。
[0073] 消息控制單元11是與由控制器1控制的交換機(jī)2傳輸或接收由開放流網(wǎng)絡(luò)協(xié)議 定義的各種類型消息的處理單元?;谒邮盏南ⅲ⒖刂茊卧?1指示處理單元(路 徑控制單元12、拓?fù)涓聠卧?3、負(fù)載控制單元14)執(zhí)行處理。
[0074] 路徑控制單元12通過消息控制單元11,從交換機(jī)2接收packet-in消息。然后, 路徑控制單元12參考拓?fù)湫畔?52并且根據(jù)packet-in消息計(jì)算路徑。然后,路徑控制單 元12根據(jù)所計(jì)算的路徑,更新路徑信息151。
[0075] 拓?fù)涓聠卧?3通過將查詢分組傳輸?shù)浇粨Q機(jī)2,獲得有關(guān)由控制器1控制的交 換機(jī)2的每一個(gè)的連接的信息。然后,拓?fù)涓聠卧?3根據(jù)所獲得的連接信息,更新拓?fù)?信息152。
[0076] 負(fù)載控制單元14參考并更新負(fù)載控制表153中的負(fù)載信息。當(dāng)預(yù)定事件(預(yù)定 時(shí)間度過、添加或刪除交換機(jī)2等等)發(fā)生時(shí),負(fù)載控制單元14計(jì)算每一控制器1的處理 負(fù)載并且檢測具有高處理負(fù)載的控制器1。然后,負(fù)載控制單元14確定是否應(yīng)當(dāng)分配所檢 測的控制器1的處理負(fù)載。如果確定應(yīng)當(dāng)分配處理負(fù)載,負(fù)載控制單元14將由所檢測的控 制器1控制的交換機(jī)2的一些置于具有低處理負(fù)載的控制器1的控制下。稍后將參考圖6 和7,描述處理負(fù)載分配處理的詳情。
[0077] 圖3是示出負(fù)載控制表153的結(jié)構(gòu)的原理圖。負(fù)載控制表153是具有作為屬性的 交換機(jī)ID、控制器ID、跳數(shù)、所接收的消息計(jì)數(shù)和所接收的分組計(jì)數(shù)的表。負(fù)載控制表153 具有對應(yīng)于開放流網(wǎng)絡(luò)中的交換機(jī)的條目。
[0078] 交換機(jī)ID是用于唯一地識(shí)別開放流網(wǎng)絡(luò)中的交換機(jī)2的屬性并且是用作負(fù)載控 制表153的主關(guān)鍵字的信息。交換機(jī)ID是例如由交換機(jī)2的MAC地址的48位組成的數(shù)據(jù) 路徑ID,其12位取決于實(shí)施方式??刂破?能在建立安全信道后,通過與交換機(jī)2交換開 放流協(xié)議Features/應(yīng)答消息,獲得交換機(jī)2的數(shù)據(jù)路徑ID。
[0079] 控制器ID是用于唯一地識(shí)別開放流網(wǎng)絡(luò)中的控制器1的屬性??刂破鱅D可以是 例如控制器1的網(wǎng)際協(xié)議(IP)地址。
[0080] 跳數(shù)是指示控制器1和交換機(jī)2之間的跳數(shù)的屬性(分組通過的通信設(shè)備的數(shù) 目)。
[0081] 所接收的消息計(jì)數(shù)是指示在預(yù)定時(shí)間內(nèi),控制器1已經(jīng)從交換機(jī)2接收的消息的 數(shù)目的屬性。每次控制器1從交換機(jī)2接收消息時(shí),增加所接收的消息計(jì)數(shù)(+1)。
[0082] 所接收的分組計(jì)數(shù)是指示由控制器1控制的交換機(jī)2已經(jīng)從終端3或相鄰的交換 機(jī)2接收的分組的數(shù)目的屬性??刂破?能通過與交換機(jī)2傳輸或接收開放流協(xié)議統(tǒng)計(jì)請 求/應(yīng)答消息,掌握交換機(jī)2的每一端口在預(yù)定時(shí)間內(nèi)已經(jīng)接收的分組的數(shù)目。
[0083] 接著,參考圖4,描述根據(jù)本實(shí)施例的交換機(jī)2的內(nèi)部結(jié)構(gòu)和操作。圖4是示出根 據(jù)本實(shí)施例的交換機(jī)2的內(nèi)部結(jié)構(gòu)的框圖。
[0084] 交換機(jī)2包括分組控制單元21和消息控制單元22。交換機(jī)2存儲(chǔ)流表23、交換 機(jī)ID 24和控制器信息25??刂破餍畔?5包括控制器ID 251和跳數(shù)252。
[0085] 當(dāng)分組控制單元21從終端3或相鄰交換機(jī)2接收分組時(shí),參考流表23,確定所接 收的分組的目的地,然后將該分組轉(zhuǎn)發(fā)到該目的地。當(dāng)將新的交換機(jī)2添加到開放流網(wǎng)絡(luò) 時(shí),分組控制單元21通過將查詢分組傳輸?shù)浇粨Q機(jī)2,獲得相鄰交換機(jī)2中的控制器信息 25〇
[0086] 消息控制單元22與控制器1的消息控制單元11傳輸或接收由開放流協(xié)議定義的 消息。當(dāng)消息控制單元22從控制器1接收flow-mod消息時(shí),根據(jù)所接收的消息,更新流表 23。此外,當(dāng)交換機(jī)2與控制器1建立安全信道時(shí),消息控制單元22將交換機(jī)ID 24傳輸 到控制器1。
[0087] 流表23是由控制器1設(shè)定的信息。對流表23中的每一通信流,描述分組轉(zhuǎn)發(fā)路 徑、分組轉(zhuǎn)發(fā)方法等等。有關(guān)細(xì)節(jié),請參見例如非專利文獻(xiàn)1。
[0088] 交換機(jī)ID24是唯一地識(shí)別交換機(jī)2的信息。控制器ID 251是指示控制流表23 的控制器1的ID的信息。跳數(shù)252是交換機(jī)2和控制器1之間的跳數(shù)。
[0089] 接著,參考圖5至7,描述控制器1的操作。如上所述,當(dāng)預(yù)定事件(預(yù)定時(shí)間度過 等等)發(fā)生時(shí),控制器1的負(fù)載控制單元14執(zhí)行分配每一控制器1的負(fù)載的處理(負(fù)載分 配處理)。在下文中,將詳細(xì)地描述控制器1的負(fù)載分配處理及相關(guān)操作。
[0090] 圖5是示出控制器1的控制操作的流程圖。控制器1等待預(yù)定時(shí)間經(jīng)過(步驟 A1)。在預(yù)定時(shí)間經(jīng)過后,控制器1執(zhí)行負(fù)載信息更新處理(圖6)(步驟A2)。
[0091] 圖6是示出由控制器1執(zhí)行的負(fù)載信息更新處理的詳情的流程圖。首先,控制器 1的拓?fù)涓聠卧?3通過將查詢分組傳輸?shù)浇粨Q機(jī)2,獲得有關(guān)由控制器1控制的每一交 換機(jī)2的每一端口的連接的信息(步驟B1)。如果控制器1檢測到具有連接故障的交換機(jī) 2 (在下文中,稱為交換機(jī)S0)(步驟B2 :是),拓?fù)涓聠卧?3將交換機(jī)S0告知負(fù)載控制 單元14。然后,負(fù)載控制單元14計(jì)算開放流網(wǎng)絡(luò)中的每一控制器1的處理負(fù)載來獲得具有 最低處理負(fù)載的控制器1 (在下文中,稱為控制器C0)的ID (步驟B3)。注意,稍后將參考圖 7,描述計(jì)算處理負(fù)載的方法。
[0092] 進(jìn)一步,負(fù)載控制單元14在負(fù)載控制表153中,在交換機(jī)S0的條目的"控制器ID" 屬性中設(shè)定控制器C0的ID (步驟Μ)??刂破鰿0的負(fù)載控制單元14也通過安全信道,在 交換機(jī)S0的控制器ID 251中設(shè)定控制器C0的ID (步驟B5)。
[0093] 控制器1的負(fù)載控制單元14還從由控制器1控制的交換機(jī)2的每一個(gè)獲得所接 收的分組計(jì)數(shù)并在負(fù)載控制表153中設(shè)定它們(步驟B6, B7)。此時(shí),負(fù)載控制單元14排 除由于拓?fù)涞淖兓词褂眠^的端口的所接收的分組數(shù)。由于上述步驟B1至B7,已經(jīng)消除了 連接故障,并且已經(jīng)獲得所接收的分組計(jì)數(shù)。在這種狀態(tài)下,執(zhí)行控制器負(fù)載分配處理(步 驟B8)。圖7示出了負(fù)載分配處理的詳情(步驟B8)。
[0094] 負(fù)載控制單元14參考負(fù)載控制表153并計(jì)算每一控制器1的處理負(fù)載。例如,負(fù) 載控制單元14通過使所接收的消息計(jì)數(shù)和所接收的分組計(jì)數(shù)相乘,計(jì)算以數(shù)值信息形式 的處理負(fù)載。然后,負(fù)載控制單元14獲得具有最高處理負(fù)載的控制器1 (在下文中,稱為控 制器C1)的ID (步驟C1)。
[0095] 注意,處理負(fù)載不一定是數(shù)值信息,也可以是基于預(yù)定閾值的諸如"高"、"中"或 "低"的信息。
[0096] 然后,負(fù)載控制單元14確定控制器C1的處理負(fù)載是否小于或等于預(yù)定閾值(第 一閾值)(步驟C2)。如果處理負(fù)載小于或等于預(yù)定閾值(步驟C2 :是),負(fù)載控制單元14 結(jié)束該處理。
[0097] 相反,如果控制器Cl的處理負(fù)載不小于或等于預(yù)定閾值(步驟C2 :否),負(fù)載控制 單元14選擇具有最低處理負(fù)載的控制器1 (在下文中,稱為控制器C2)并且獲得其ID (步 驟 C3)。
[0098] 然后,負(fù)載控制單元14從由控制器C1控制的交換機(jī)2中,選擇對處理負(fù)載具有相 對小影響的交換機(jī)2(在下文中,稱為交換機(jī)S1)并且獲得其ID(步驟C4)。換句話說,負(fù)載 控制單元14根據(jù)對處理負(fù)載的影響大小的升序,選擇交換機(jī)2。例如,當(dāng)負(fù)載控制單元14 首次執(zhí)行步驟C4時(shí),將對處理負(fù)載具有最小影響的交換機(jī)2選擇為交換機(jī)S1。
[0099] 然后,負(fù)載控制單元14從負(fù)載控制表153獲得交換機(jī)S1的跳數(shù)并且確定所獲得 的跳數(shù)是否大于或等于閾值(第二閾值)(步驟C5)。如果跳數(shù)不大于或等于閾值(步驟 C5 :否),負(fù)載控制單元14返回到步驟C4。此時(shí),負(fù)載控制單元14選擇僅次于在上一步驟 C4中選擇的交換機(jī)S1的、具有最小處理負(fù)載的交換機(jī)2。
[0100] 如果跳數(shù)大于或等于閾值(步驟C5 :是),負(fù)載控制單元14在負(fù)載控制表153的 交換機(jī)S1的條目的"控制器ID"屬性中,設(shè)定控制器C2的ID (步驟C6)。負(fù)載控制單元14 還通過安全信道,在交換機(jī)S1的控制器ID 251中,設(shè)置控制器C2的ID (步驟C7)。
[0101] 在步驟C7后,負(fù)載控制單元14返回到步驟C1。
[0102] 盡管在上述處理中,負(fù)載控制單元14通過與預(yù)定閾值(第一閾值)進(jìn)行比較,選 擇控制器C1,但也可以以其他方式選擇控制器C1。即,負(fù)載控制單元14可以根據(jù)任何標(biāo)準(zhǔn), 選擇應(yīng)當(dāng)分配其處理負(fù)載的控制器1。例如,負(fù)載控制單元14可以將具有最高處理負(fù)載的 控制器1無條件地選擇為控制器C1。
[0103] 盡管在上述處理中,對跳數(shù)做出了確定,但在不確定跳數(shù)的情況下,也可以將具有 最低處理負(fù)載的交換機(jī)2確定為交換機(jī)S1。然而,跳數(shù)的確定具有簡單地分配處理負(fù)載的 效果,還具有防止網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜化的效果。
[0104] 盡管在上述描述中,將具有最低處理負(fù)載的控制器1選擇為控制器1(C2)來交替 地控制交換機(jī)2,但可以選擇具有小于或等于預(yù)定值的處理負(fù)載的任何控制器1。然而,通 過根據(jù)處理負(fù)載的大小的升序選擇控制器1,能最佳地均衡處理負(fù)載。
[0105] 接著,參考圖8和9,描述當(dāng)新的交換機(jī)2添加到開放流網(wǎng)絡(luò)時(shí),由設(shè)備(控制器 1、交換機(jī)2)執(zhí)行的處理。圖8是示出添加交換機(jī)2的處理的流程圖。
[0106] 首先,待添加的交換機(jī)2 (在下文中,稱為"對象交換機(jī)2")的分組控制單元21從 相鄰交換機(jī)2獲得控制器信息25 (步驟D1)。將參考圖9,描述該控制器信息獲得處理。
[0107] 對象交換機(jī)2的分組控制單元21將查詢分組廣播到相鄰交換機(jī)并且接收控制器 信息25 (步驟E1)。如果分組控制單元21從多個(gè)交換機(jī)2接收控制器信息25的集合(步 驟E2 :是),它選擇包括最小跳數(shù)252的控制器信息25的集合(步驟E3)。然后,分組控制 單元21通過消息控制單元22與控制器1通信并且在與控制器1聯(lián)系前,獲得跳數(shù)252 (步 驟 E4)。
[0108] 再參考圖8,已經(jīng)獲得控制器信息25 (步驟D1)的交換機(jī)2的消息控制單元22參 考控制器信息25中的控制器ID 251,并且與由控制器ID 251識(shí)別的控制器1建立安全信 道(步驟D2)。
[0109] 然后,消息控制單元22從控制器1的負(fù)載控制表153獲得另一控制器1的ID并 且與那些控制器1建立安全信道(步驟D3, D4)。
[0110] 開放流網(wǎng)絡(luò)中的每一控制器1的負(fù)載控制單元14將對象交換機(jī)2的條目添加到 負(fù)載控制表153 (步驟D5)。此時(shí),負(fù)載控制單元14在負(fù)載控制表153的"交換機(jī)ID"屬性 中,設(shè)定對象交換機(jī)2的交換機(jī)ID 24的值。負(fù)載控制單元14還在負(fù)載控制表153的"跳 數(shù)"屬性中,設(shè)定對象交換機(jī)2的跳數(shù)252的值。負(fù)載控制單元14還在負(fù)載控制表153的 "所接收的消息計(jì)數(shù)"和"所接收的分組計(jì)數(shù)"屬性的每一個(gè)中設(shè)置0。然后,負(fù)載控制單元 14執(zhí)行負(fù)載信息更新處理(圖6的處理)(步驟D6)。
[0111] 接著,參考圖10,將描述當(dāng)從開放流網(wǎng)絡(luò)刪除交換機(jī)2時(shí),由設(shè)備(控制器1、交換 機(jī)2)執(zhí)行的處理。圖10是示出刪除交換機(jī)2的處理的流程圖。
[0112] 待刪除的交換機(jī)2 (在下文中,稱為"對象交換機(jī)2")的消息控制單元22關(guān)閉開 放流網(wǎng)絡(luò)中,與所有控制器1的安全信道(步驟F1)。作為響應(yīng),每一控制器1的負(fù)載控制 單元14從負(fù)載控制表153刪除對象交換機(jī)2的條目(步驟F2)。然后,負(fù)載控制單元14執(zhí) 行負(fù)載信息更新處理(圖6的處理)(步驟F3)。
[0113] 接著,參考圖11至14,描述圖7中所示的、分配控制器1的處理負(fù)載的處理的具體 示例。圖11是示出在執(zhí)行負(fù)載分配處理前,開放流網(wǎng)絡(luò)的結(jié)構(gòu)的框圖。圖12是示出在執(zhí) 行負(fù)載分配處理前,負(fù)載控制表153的結(jié)構(gòu)的原理圖。
[0114] 負(fù)載控制單元14計(jì)算開放流網(wǎng)絡(luò)中的控制器(控制器A和控制器B)的處理負(fù)載 (步驟C1)。在該實(shí)施例中,負(fù)載控制單元14使用下述公式,計(jì)算每一控制器的處理負(fù)載。
[0115] 待計(jì)算的控制器C的處理負(fù)載=(控制器C的所接收的消息計(jì)數(shù)/所有控制器的 總接收的消息計(jì)數(shù))* (由該控制器C控制的交換機(jī)的所接收的分組計(jì)數(shù)/所有交換機(jī)的總 接收的分組計(jì)數(shù))
[0116] 參考圖12,總接收的消息計(jì)數(shù)為120以及總接收的分組計(jì)數(shù)為800。因此,控 制器A的處理負(fù)載是(50/120)*(300/800) ~ 0. 16。類似地,控制器B的處理負(fù)載是 (70/120) *(500/800)?0.36。因此,負(fù)載控制單元14將控制器B選擇為具有最高處理負(fù) 載的控制器(步驟C1)。
[0117] 上述計(jì)算方法僅是說明性的,并且可以采用其他方法。例如,可以將乘法公式的左 側(cè)或右側(cè)(或兩側(cè))乘以加權(quán)因子。還可以通過加法而不是乘法計(jì)算處理負(fù)載。即,負(fù)載 控制單元14只需要根據(jù)負(fù)載控制表153中的信息,計(jì)算每一控制器1的處理負(fù)載。注意, 負(fù)載控制單元14能通過使用負(fù)載控制表153中的所接收的消息計(jì)數(shù)和所接收的分組計(jì)數(shù) 的至少一個(gè),掌握每一控制器1的處理負(fù)載的趨勢,盡管會(huì)降低計(jì)算精度。
[0118] 然后,負(fù)載控制單元14確定所選控制器B的處理負(fù)載是否小于或等于預(yù)定閾值 (步驟C2)。假定閾值為0. 3,負(fù)載控制單元14確定控制器B的處理負(fù)載是否小于或等于該 閾值(步驟C2 :否)。然后,負(fù)載控制單元14將控制器A選擇為具有最低處理負(fù)載的控制 器(步驟C3)。
[0119] 然后,負(fù)載控制單元14獲得對由控制器B控制的交換機(jī)的處理負(fù)載具有最小影響 的交換機(jī)的ID。參考圖12,交換機(jī)C對處理負(fù)載的影響為(5/120)*(100/800)?0.01。交 換機(jī)D對處理負(fù)載的影響為(30/120) *(200/800)?0.06。交換機(jī)E對處理負(fù)載的影響為 (15/120) *(100/800) ~ 0.02。交換機(jī)F對處理負(fù)載的影響為(20/120) *(100/800) ~ 0.02。 因此,負(fù)載控制單元14將交換機(jī)C選擇為對處理負(fù)載具有最小影響的交換機(jī)(步驟C4)。
[0120] 然后,負(fù)載控制單元14參考負(fù)載控制表153并且確定交換機(jī)C的跳數(shù)是否是閾值 (步驟C5)。假定閾值為2,負(fù)載控制單元14確定交換機(jī)C的跳數(shù)大于或等于該閾值(步驟 C5 :是)。
[0121] 然后,負(fù)載控制單元14在負(fù)載控制表153的交換機(jī)C的條目的"控制器ID"屬性 中設(shè)定控制器A的ID (步驟C6)。負(fù)載控制單元14還通過安全信道,在交換機(jī)C的控制器 ID 251中設(shè)定控制器A的ID (交換機(jī)C7)。圖13示出當(dāng)該處理完成時(shí)的時(shí)間點(diǎn)的負(fù)載控 制表153。下劃線部分表示控制器的變化。盡管跳數(shù)值可能隨控制器的變化而改變,但在本 實(shí)施例中,假定該跳數(shù)不改變。
[0122] 然后,負(fù)載控制單元14再次計(jì)算開放流網(wǎng)絡(luò)中的控制器(控制器A和控制器B) 的處理負(fù)載(步驟C1)。
[0123] 參考圖13,總接收的消息計(jì)數(shù)為120,以及總接收的分組計(jì)數(shù)為800。因此,控 制器A的處理負(fù)載是(55/120M400/800)?0. 23。類似地,控制器B的處理負(fù)載是 (65/120) *(400/800)?0.27。因此,負(fù)載控制單元14將控制器B選擇為具有最高處理負(fù) 載的控制器(步驟C1)。
[0124] 然后,負(fù)載控制單元14確定所選控制器B的處理負(fù)載是否小于或等于預(yù)定閾值 (步驟C2)。由于該閾值為0. 3,因此,負(fù)載控制單元14確定控制器B的處理負(fù)載小于或等 于該閾值(步驟C2 :是),結(jié)束該處理。圖14是示出在執(zhí)行負(fù)載分配處理后,開放流網(wǎng)絡(luò)的 結(jié)構(gòu)的框圖。
[0125] 接著,將描述根據(jù)本實(shí)施例的開放流網(wǎng)絡(luò)的效果。負(fù)載控制單元14根據(jù)交換機(jī)2 的使用狀態(tài)或開放流網(wǎng)絡(luò)的拓?fù)?,分配控制?的處理負(fù)載。由此,可以避免處理負(fù)載不均 勻地施加在特定控制器1上以及準(zhǔn)確地分配負(fù)載。
[0126] 此外,當(dāng)將交換機(jī)2添加到開放流網(wǎng)絡(luò)或從其刪除時(shí),控制器1在分配負(fù)載前更新 拓?fù)湫畔ⅲ▓?zhí)行上述步驟B1至B7)。由此,能在更新開放流網(wǎng)絡(luò)中的每一設(shè)備的連接狀態(tài) 后分配負(fù)載。
[0127] 第二實(shí)施例
[0128] 根據(jù)本發(fā)明的第二實(shí)施例的控制器1的特征在于控制器1在圖7的負(fù)載分配處理 中,考慮由每一控制器控制的交換機(jī)的數(shù)目。在下文中,將描述第二實(shí)施例與第一實(shí)施例之 間的區(qū)別。
[0129] 在上述圖7中,負(fù)載控制單元14使用下述公式,計(jì)算每一控制器1的處理負(fù)載。
[0130] 待計(jì)算的控制器C的處理負(fù)載=(由該控制器C控制的交換機(jī)的數(shù)目/開放流網(wǎng) 絡(luò)中的所有交換機(jī)的數(shù)目)*(控制器C的所接收的消息的計(jì)數(shù)/所有控制器的總的接收的 消息計(jì)數(shù))* (由該控制器c控制的交換機(jī)的所接收的分組計(jì)數(shù)/所有交換機(jī)的總的接收的 分組計(jì)數(shù))
[0131] 接著,再參考圖11至14,將描述根據(jù)本實(shí)施例,分配控制器1的負(fù)載的處理的具體 示例(圖7)。如上所述,圖11是示出在執(zhí)行負(fù)載分配處理前,開放流網(wǎng)絡(luò)的結(jié)構(gòu)的框圖。 圖12是示出在執(zhí)行負(fù)載分配處理前,負(fù)載控制表153的結(jié)構(gòu)的原理圖。
[0132] 參考圖12,總交換機(jī)計(jì)數(shù)為6以及總接收的消息計(jì)數(shù)為120。因此,控制器A 的處理負(fù)載為(2/6)*(50/120)*(300/800)?0.05。類似地,控制器B的處理負(fù)載為 (4/6) *(70/120) *(500/800)?0.24。因此,負(fù)載控制單元14將控制器B選擇為具有最高 處理負(fù)載的控制器(步驟Cl)。
[0133] 然后,負(fù)載控制單元14確定所選控制器B的處理負(fù)載是否小于或等于預(yù)定閾值 (步驟C2)。假定閾值為0. 2,負(fù)載控制單元14確定控制器B的處理負(fù)載不小于或等于該閾 值(步驟C2 :否)。然后,負(fù)載控制單元14將控制器A選擇為具有最低處理負(fù)載的控制器 (步驟C3)。
[0134] 然后,負(fù)載控制單元14獲得對由控制器B控制的交換機(jī)的處理負(fù)載具有最小影響 的交換機(jī)的ID。負(fù)載控制單元14根據(jù)圖12,計(jì)算對處理負(fù)載的影響如下。
[0135] 交換機(jī) C : (5/120) * (100/800)
[0136] 交換機(jī) D : (30/120) * (200/800)
[0137] 交換機(jī) E : (15/120) *(100/800)
[0138] 交換機(jī) F : (20/120) * (100/800)
[0139] 因此,負(fù)載控制單元14將交換機(jī)C選擇為對處理負(fù)載具有最小影響的交換機(jī)(步 驟C4)。然后,負(fù)載控制單元14參考負(fù)載控制表153并且確定交換機(jī)C的跳數(shù)是否大于或 等于閾值(步驟C5)。假定閾值為2,負(fù)載控制單元14確定交換機(jī)C的跳數(shù)大于或等于該 閾值(步驟C5 :是)。
[0140] 然后,負(fù)載控制單元14在負(fù)載控制表153的交換機(jī)C的條目的"控制器ID"屬性 中設(shè)定控制器B的ID (步驟C6)。負(fù)載控制單元14還通過安全信道,在交換機(jī)C的控制器 ID 251中設(shè)定控制器B的ID(交換機(jī)C7)。圖13示出當(dāng)該處理完成時(shí)的時(shí)間點(diǎn)的負(fù)載控 制表153。下劃線部分表示控制器的變化。
[0141] 負(fù)載控制單元14再次計(jì)算開放流網(wǎng)絡(luò)中的控制器(控制器A和控制器B)的處理 負(fù)載(步驟C1)。
[0142] 參考圖13,可知總交換機(jī)計(jì)數(shù)為6,總的接收的消息計(jì)數(shù)為120,以及總的接收的 分組計(jì)數(shù)為800。因此,控制器A的處理負(fù)載為(3/6)*(55/120)*(400/800)?0. 11。類似 地,控制器B的處理負(fù)載為(3/6)*出5/120)*(400/800)?0.13。因此,負(fù)載控制單元14將 控制器B選擇為具有最高處理負(fù)載的控制器(步驟C1)。
[0143] 然后,負(fù)載控制單元14確定所選控制器B的處理負(fù)載是否小于或等于預(yù)定閾值 (步驟C2)。由于該閾值為0. 2,因此,負(fù)載控制單元14確定控制器B的處理負(fù)載小于或等 于該閾值(步驟C2 :是),結(jié)束該處理。圖14是示出在執(zhí)行負(fù)載分配處理后,開放流網(wǎng)絡(luò)的 結(jié)構(gòu)的框圖。
[0144] 同樣在本實(shí)施例中,可以避免負(fù)載不均勻地施加在特定控制器1上以及準(zhǔn)確地分 配負(fù)載。如上可知,負(fù)載控制單元14還考慮總交換機(jī)計(jì)數(shù)和由每一控制器1控制的交換 機(jī)的數(shù)目之間的關(guān)系,然后分配負(fù)載。由此,可以執(zhí)行還考慮網(wǎng)絡(luò)的連接狀態(tài)的負(fù)載分配 (即,避免由每一控制器控制的交換機(jī)的數(shù)目在網(wǎng)絡(luò)中不均勻的負(fù)載分配)。
[0145] 盡管已經(jīng)對于其實(shí)施例描述了本發(fā)明,但本發(fā)明不限于其結(jié)構(gòu)。當(dāng)然,本發(fā)明包括 本領(lǐng)域的技術(shù)人員在不背離本申請的權(quán)利要求的范圍的情況下,對實(shí)施例所做的變化、修 改或組合。
[0146] 由控制器1的處理單元(消息控制單元11、路徑控制單元12、拓?fù)涓聠卧?3和 負(fù)載控制單元14)執(zhí)行的處理能體現(xiàn)為在任何計(jì)算機(jī)上運(yùn)行的程序。該程序能存儲(chǔ)在各種 類型的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)中并提供給計(jì)算機(jī)。非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)的示例包括各種 類型的有形存儲(chǔ)介質(zhì)。非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)的示例包括磁存儲(chǔ)介質(zhì)(例如柔性盤、磁帶、 硬盤驅(qū)動(dòng))、磁光存儲(chǔ)介質(zhì)(例如,磁光盤)、光盤只讀存儲(chǔ)器(⑶-ROM)、⑶-RXD-R/W、半導(dǎo) 體存儲(chǔ)器(例如,掩膜型ROM、可編程ROM (PROM)、可擦除PROM (EPROM)、閃速ROM和隨機(jī)存取 存儲(chǔ)器(RAM)。可以通過各種類型的瞬時(shí)計(jì)算機(jī)可讀介質(zhì),將程序提供給計(jì)算機(jī)。瞬時(shí)計(jì)算 機(jī)可讀介質(zhì)的示例包括電信號(hào)、光信號(hào)和電磁波。瞬時(shí)計(jì)算機(jī)可讀介質(zhì)能經(jīng)由有線通信路 徑,諸如電線或光纖,或經(jīng)由無線通信路徑將程序提供給計(jì)算機(jī)。
[0147] 圖15是示出控制器1的示例硬件結(jié)構(gòu)的圖??刂破?包括中央處理單元(CPU)401 和存儲(chǔ)器402。CPU 401和存儲(chǔ)器402通過總線,連接到用作輔助存儲(chǔ)設(shè)備的硬盤驅(qū)動(dòng)器 (HDD) 403。存儲(chǔ)介質(zhì),諸如HDD 403能存儲(chǔ)用于協(xié)同操作系統(tǒng),向CPU 401等等提供指令并 且執(zhí)行CPU 401等等的單元的功能的計(jì)算機(jī)程序。即,當(dāng)該程序加載到存儲(chǔ)器402中時(shí),形 成控制器1的塊,然后,CPU 401執(zhí)行根據(jù)程序的處理并且與其他硬件組件合作。然后,當(dāng) CPU 401執(zhí)行預(yù)定程序時(shí),控制器1執(zhí)行處理。
[0148] 圖16是示意性地示出本發(fā)明的框圖。開放流網(wǎng)絡(luò)包括多個(gè)控制器1和多個(gè)交換 機(jī)2。每一控制器1包括負(fù)載控制表153和負(fù)載控制單兀14。
[0149] 負(fù)載控制表153控制在預(yù)定時(shí)間內(nèi),開放流網(wǎng)絡(luò)中的每一交換機(jī)2已經(jīng)傳輸?shù)娇?制該交換機(jī)2的控制器的消息的數(shù)目和在預(yù)定時(shí)間內(nèi),每一交換機(jī)2已經(jīng)接收的分組的數(shù) 目的至少一個(gè)。即,負(fù)載控制表153保存專用于開放流網(wǎng)絡(luò)的負(fù)載信息。當(dāng)預(yù)定事件發(fā)生 時(shí),負(fù)載控制單兀14參考負(fù)載控制表153并且檢測具有高于或等于第一閾值的處理負(fù)載的 控制器1。例如,負(fù)載控制單元14通過將所接收的分組計(jì)數(shù)和所接收的消息計(jì)數(shù)相乘,計(jì)算 處理負(fù)載。然后,負(fù)載控制單元14使由所檢測的控制器1控制的交換機(jī)2的至少一個(gè)處于 另一控制器1的控制下。
[0150] 根據(jù)上述結(jié)構(gòu),負(fù)載控制單元14能根據(jù)交換機(jī)2的使用狀態(tài)或開放流網(wǎng)絡(luò)的拓 撲,分配控制器1的負(fù)載。即,可以避免負(fù)載不均勻地施加在特定控制器1上。
[0151] 盡管在上述描述中,每一控制器1包括負(fù)載控制表153和負(fù)載控制單兀14,其他結(jié) 構(gòu)也是可能的。例如,可以在開放流網(wǎng)絡(luò)中提供用于指示每一控制器1控制交換機(jī)2的控 制設(shè)備。這種控制設(shè)備包括負(fù)載控制表153和負(fù)載控制單元14。控制設(shè)備計(jì)算每一控制器 1的處理負(fù)載以及使由具有高處理負(fù)載的控制器1控制的交換機(jī)2處于另一控制器1的控 制下。該結(jié)構(gòu)也能產(chǎn)生上述效果。
[0152] 本申請要求基于2012年2月2日提交的、日本專利申請No. 2012-020695的優(yōu)先 權(quán),其公開被整體結(jié)合于此。
[0153] 附圖標(biāo)記列表
[0154] 1 控制器
[0155] 11 消息控制單元
[0156] 12 路徑控制單元
[0157] 13 拓?fù)涓聠卧?br>
[0158] 14 負(fù)載控制單元
[0159] 15 網(wǎng)絡(luò)信息存儲(chǔ)單元
[0160] 151 路徑信息
[0161] 152 拓?fù)湫畔?br>
[0162] 153 負(fù)載控制表
[0163] 2 交換機(jī)
[0164] 21 分組控制單元
[0165] 22 消息控制單元
[0166] 23 流表
[0167] 24 交換機(jī) ID
[0168] 25 控制器信息
[0169] 251 控制器 ID
[0170] 252 跳數(shù)
[0171] 3 終端
[0172] 401 CPU
[0173] 402 存儲(chǔ)器
[0174] 403 HDD
【權(quán)利要求】
1. 一種控制器,所述控制器用于控制在開放流網(wǎng)絡(luò)中的多個(gè)交換機(jī)中的一些,所述控 制器包括: 負(fù)載控制表,所述負(fù)載控制表被配置成控制下述中的至少一個(gè):開放流網(wǎng)絡(luò)中的所述 交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制所述交換機(jī)的控制器傳輸?shù)南⒌臄?shù)目、以及 所述交換機(jī)在預(yù)定時(shí)間中已經(jīng)接收到的分組的數(shù)目;以及 負(fù)載控制裝置,所述負(fù)載控制裝置被配置成當(dāng)預(yù)定事件發(fā)生時(shí),基于所述負(fù)載控制表 來檢測處理負(fù)載應(yīng)當(dāng)被分配的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至 少一個(gè)處于另一控制器的控制下。
2. 根據(jù)權(quán)利要求1所述的控制器,其中, 所述處理負(fù)載是數(shù)值信息,所述數(shù)值信息的較高值指示較高負(fù)載,并且 所述負(fù)載控制裝置檢測具有高于或等于第一閾值的處理負(fù)載的控制器。
3. 根據(jù)權(quán)利要求2所述的控制器,其中,所述負(fù)載控制裝置將下述控制器選擇為所述 另一控制器:該控制器具有相對低的處理負(fù)載。
4. 根據(jù)權(quán)利要求2所述的控制器,其中, 所述負(fù)載控制表控制有關(guān)在開放流網(wǎng)絡(luò)中的所述交換機(jī)中的每一個(gè)與控制所述交換 機(jī)的控制器之間的跳數(shù)的信息,并且 所述負(fù)載控制裝置將下述交換機(jī)選擇為將處于所述另一控制器的控制下的至少一個(gè) 交換機(jī):該交換機(jī)具有對所述處理負(fù)載相對小的影響并且具有大于或等于第二閾值的跳 數(shù)。
5. 根據(jù)權(quán)利要求2或3所述的控制器,其中,所述負(fù)載控制裝置通過使所述消息的數(shù)目 和所接收到的分組的數(shù)目相乘來計(jì)算所述處理負(fù)載。
6. 根據(jù)權(quán)利要求1至5中的任何一項(xiàng)所述的控制器,其中,所述預(yù)定事件包括下述中的 一個(gè):預(yù)定時(shí)間的度過、對開放流網(wǎng)絡(luò)添加交換機(jī)、以及從開放流網(wǎng)絡(luò)中刪除交換機(jī)。
7. 根據(jù)權(quán)利要求1至6中的任何一項(xiàng)所述的控制器,其中,所述負(fù)載控制裝置基于所接 收到的消息的數(shù)目和所接收到的分組的數(shù)目、以及由每個(gè)控制器所控制的交換機(jī)的數(shù)目, 來計(jì)算所述控制器的處理負(fù)載。
8. 根據(jù)權(quán)利要求1至7中的任何一項(xiàng)所述的控制器,進(jìn)一步包括拓?fù)涓卵b置,所述拓 撲更新裝置被配置成控制關(guān)于開放流網(wǎng)絡(luò)的拓?fù)涞男畔ⅲ?其中,當(dāng)所述預(yù)定事件發(fā)生時(shí),所述拓?fù)涓卵b置檢測具有連接故障的受控交換機(jī),并 且在所述負(fù)載控制裝置執(zhí)行處理之前,消除所檢測到的交換機(jī)的連接故障。
9. 一種用于分配控制器的負(fù)載的方法,所述控制器控制開放流網(wǎng)絡(luò)中的多個(gè)交換機(jī)中 的一些,所述方法包括: 控制步驟,所述控制步驟控制負(fù)載控制表,所述負(fù)載控制表包括下述中的至少一個(gè):開 放流網(wǎng)絡(luò)中的所述交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制所述交換機(jī)的控制器傳輸 的消息的數(shù)目、以及所述交換機(jī)在預(yù)定時(shí)間中已經(jīng)接收到的分組的數(shù)目;以及 負(fù)載控制步驟,當(dāng)預(yù)定事件發(fā)生時(shí),基于所述負(fù)載控制表來檢測處理負(fù)載應(yīng)當(dāng)被分配 的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至少一個(gè)處于另一控制器的控 制下。
10. 根據(jù)權(quán)利要求9所述的方法,其中, 所述處理負(fù)載是數(shù)值信息,所述數(shù)值信息的較高值指示較高負(fù)載,并且 所述負(fù)載控制步驟包括檢測具有高于或等于第一閾值的處理負(fù)載的控制器。
11. 根據(jù)權(quán)利要求10所述的方法,其中,所述負(fù)載控制步驟包括將下述控制器選擇為 所述另一控制器:該控制器具有相對低的處理負(fù)載。
12. 根據(jù)權(quán)利要求11所述的方法,其中, 所述負(fù)載控制表控制有關(guān)在開放流網(wǎng)絡(luò)中的所述交換機(jī)中的每一個(gè)與控制所述交換 機(jī)的控制器之間的跳數(shù)的信息,并且 所述負(fù)載控制步驟包括將下述交換機(jī)選擇為將處于所述另一控制器的控制下的至少 一個(gè)交換機(jī):該交換機(jī)具有對所述處理負(fù)載相對小的影響并且具有大于或等于第二閾值的 跳數(shù)。
13. 根據(jù)權(quán)利要求10或11所述的方法,其中,所述負(fù)載控制步驟包括通過使所述消息 的數(shù)目和所接收到的分組的數(shù)目相乘來計(jì)算所述處理負(fù)載。
14. 根據(jù)權(quán)利要求9至13中的任何一項(xiàng)所述的方法,其中,所述預(yù)定事件包括下述中的 一個(gè):預(yù)定時(shí)間的度過、對開放流網(wǎng)絡(luò)添加交換機(jī)、以及從開放流網(wǎng)絡(luò)中刪除交換機(jī)。
15. 根據(jù)權(quán)利要求10至14中的任何一項(xiàng)所述的方法,其中,所述負(fù)載控制步驟包括基 于所接收到的消息的數(shù)目和所接收到的分組的數(shù)目、以及由每個(gè)控制器所控制的交換機(jī)的 數(shù)目,來計(jì)算每個(gè)控制器的處理負(fù)載。
16. -種存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),所述程序用于使得計(jì)算機(jī)執(zhí)行用于分配 控制器的負(fù)載的方法,所述控制器控制開放流網(wǎng)絡(luò)中的多個(gè)交換機(jī)中的一些,所述方法包 括: 控制步驟,所述控制步驟控制負(fù)載控制表,所述負(fù)載控制表包括下述中的至少一個(gè):開 放流網(wǎng)絡(luò)中的所述交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制所述交換機(jī)的控制器傳輸 的消息的數(shù)目、以及所述交換機(jī)在預(yù)定時(shí)間段中已經(jīng)接收到的分組的數(shù)目;以及 負(fù)載控制步驟,當(dāng)預(yù)定事件發(fā)生時(shí),基于所述負(fù)載控制表來檢測處理負(fù)載應(yīng)當(dāng)被分配 的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至少一個(gè)處于另一控制器的控 制下。
17. 根據(jù)權(quán)利要求16所述的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中, 所述處理負(fù)載是數(shù)值信息,所述數(shù)值信息的較高值指示較高負(fù)載,并且 所述負(fù)載控制步驟包括檢測具有高于或等于第一閾值的處理負(fù)載的控制器。
18. 根據(jù)權(quán)利要求17所述的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述負(fù)載控制步驟包括將 下述控制器選擇為所述另一控制器:該控制器具有相對低的處理負(fù)載。
19. 根據(jù)權(quán)利要求18所述的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中, 所述負(fù)載控制表控制有關(guān)在開放流網(wǎng)絡(luò)中的所述交換機(jī)中的每一個(gè)與控制所述交換 機(jī)的控制器之間的跳數(shù)的信息,并且 所述負(fù)載控制步驟包括將下述交換機(jī)選擇為將處于所述另一控制器的控制下的至少 一個(gè)交換機(jī):該交換機(jī)具有對所述處理負(fù)載相對小的影響并且具有大于或等于第二閾值的 跳數(shù)。
20. 根據(jù)權(quán)利要求17或18所述的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述負(fù)載控制步驟包 括通過使所述消息的數(shù)目和所接收到的分組的數(shù)目相乘來計(jì)算所述處理負(fù)載。
21. 根據(jù)權(quán)利要求16至20中的任何一項(xiàng)所述的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述預(yù) 定事件包括下述中的一個(gè):預(yù)定時(shí)間的度過、對開放流網(wǎng)絡(luò)添加交換機(jī)、以及從開放流網(wǎng)絡(luò) 中刪除交換機(jī)。
22. 根據(jù)權(quán)利要求21所述的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述負(fù)載控制步驟包括當(dāng) 作為所述預(yù)定事件,將交換機(jī)添加到開放流網(wǎng)絡(luò)或從開放流網(wǎng)絡(luò)中刪除交換機(jī)時(shí),更新所 述負(fù)載控制表,并且隨后與所述第一閾值進(jìn)行比較。
23. 根據(jù)權(quán)利要求16至22的任何一項(xiàng)所述的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述負(fù)載 控制步驟包括基于所接收到的消息的數(shù)目和所接收到的分組的數(shù)目、以及由每個(gè)控制器所 控制的交換機(jī)的數(shù)目,來計(jì)算每個(gè)控制器的處理負(fù)載。
24. -種計(jì)算機(jī)系統(tǒng),包括: 多個(gè)交換機(jī),所述多個(gè)交換機(jī)中的每一個(gè)被配置成基于流表來在開放流網(wǎng)絡(luò)中轉(zhuǎn)發(fā)分 組;以及 多個(gè)控制器,所述多個(gè)控制器中的每一個(gè)被配置成控制所述交換機(jī)中的一些, 其中,所述控制器中的每一個(gè)包括: 負(fù)載控制表,所述負(fù)載控制表被配置成控制下述中的至少一個(gè):開放流網(wǎng)絡(luò)中的所述 交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制所述交換機(jī)的控制器傳輸?shù)南⒌臄?shù)目、以及 所述交換機(jī)在預(yù)定時(shí)間中已經(jīng)接收到的分組的數(shù)目;以及 負(fù)載控制裝置,所述負(fù)載控制裝置被配置成當(dāng)預(yù)定事件發(fā)生時(shí),基于所述負(fù)載控制表 來檢測處理負(fù)載應(yīng)當(dāng)被分配的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至 少一個(gè)處于另一控制器的控制下。
25. -種用于分配多個(gè)控制器的負(fù)載的控制設(shè)備,所述控制器控制開放流網(wǎng)絡(luò)中的交 換機(jī),所述控制設(shè)備包括: 負(fù)載控制表,所述負(fù)載控制表被配置成控制下述中的至少一個(gè):開放流網(wǎng)絡(luò)中的所述 交換機(jī)中的每一個(gè)在預(yù)定時(shí)間中已經(jīng)向控制所述交換機(jī)的控制器傳輸?shù)南⒌臄?shù)目、以及 所述交換機(jī)在預(yù)定時(shí)間中已經(jīng)接收到的分組的數(shù)目;以及 負(fù)載控制裝置,所述負(fù)載控制裝置被配置成當(dāng)預(yù)定事件發(fā)生時(shí),基于所述負(fù)載控制表 來檢測處理負(fù)載應(yīng)當(dāng)被分配的控制器,并且使由所檢測到的控制器所控制的交換機(jī)中的至 少一個(gè)處于另一控制器的控制下。
【文檔編號(hào)】H04L12/803GK104094565SQ201280068918
【公開日】2014年10月8日 申請日期:2012年10月31日 優(yōu)先權(quán)日:2012年2月2日
【發(fā)明者】河野正太郎 申請人:日本電氣株式會(huì)社