亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

流表更新方法和流表更新裝置制造方法

文檔序號(hào):7997224閱讀:229來源:國知局
流表更新方法和流表更新裝置制造方法
【專利摘要】流表更新方法和流表更新裝置。根據(jù)本發(fā)明,提出了一種在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中將基于舊規(guī)則的流表更新為基于新規(guī)則的流表的流表更新方法,包括:從基于舊規(guī)則的流表和基于新規(guī)則的流表中均使用的至少一個(gè)匹配域中確定特定匹配域;選定特定匹配域中的未使用地址代替該特定匹配域中的原使用地址,來構(gòu)造流表項(xiàng),作為臨時(shí)流表項(xiàng);以及在新規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)的流表的所述特定匹配域中使用由選定的地址構(gòu)造的臨時(shí)流表項(xiàng),來臨時(shí)實(shí)現(xiàn)新規(guī)則,直到舊規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)中的基于舊規(guī)則的動(dòng)作完成為止。
【專利說明】流表更新方法和流表更新裝置

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及軟件定義網(wǎng)絡(luò),特別是用于軟件定義網(wǎng)絡(luò)中的流表更新方法和流表更 新裝置。

【背景技術(shù)】
[0002] 基于OpenFlow協(xié)議的軟件定義網(wǎng)絡(luò)(SDN)技術(shù),其核心特點(diǎn)是實(shí)現(xiàn)數(shù)據(jù)平面和控 制平面的解耦:數(shù)據(jù)平面由OpenFlow交換機(jī)、主機(jī)等組成;控制平面則是由控制器對(duì)全網(wǎng) 進(jìn)行集中式控制。具體地,各個(gè)交換機(jī)根據(jù)本地流表中的所有流表項(xiàng)來與數(shù)據(jù)包匹配,根據(jù) 最佳匹配結(jié)果來處理數(shù)據(jù)包??刂破髫?fù)責(zé)各個(gè)交換機(jī)本地流表中的所有流表項(xiàng)的寫入、修 改和刪除。如果各個(gè)交換機(jī)遇到新的數(shù)據(jù)包,無法在本地流表中找到匹配結(jié)果,則將數(shù)據(jù)包 通過控制平面鏈路上傳給控制器,由控制器決定如何處理。數(shù)據(jù)包與流表項(xiàng)的匹配,是將數(shù) 據(jù)包包頭域與流表項(xiàng)中的匹配信息所包含的匹配域進(jìn)行匹配,匹配方式包括完全匹配、最 長匹配。常用的流表項(xiàng)匹配域包括源IP地址、目的IP地址、源Mac地址、目的Mac地址、 VLAN標(biāo)簽、TCP端口等。
[0003] 現(xiàn)有文獻(xiàn)介紹
[0004] 現(xiàn)有文獻(xiàn) I :Mark Reitblatt,Nate Foster,Jennifer Rexford,Cole Schlesinger.and David Walker. Abstractions For Network Update. In ACM SIGC0MM' 12, Helsinki,F(xiàn)inland,August2012.
[0005] 文獻(xiàn)I闡述軟件定義網(wǎng)絡(luò)中流表更新問題的必要性和重要性:在軟件定義網(wǎng)絡(luò) 中,由于路由切換、網(wǎng)絡(luò)設(shè)備定期維修等原因,網(wǎng)絡(luò)狀態(tài)經(jīng)常發(fā)生變化;控制器需要根據(jù)網(wǎng) 絡(luò)狀態(tài)變化的原因,在多個(gè)交換機(jī)中進(jìn)行多條流表項(xiàng)的更新,使其從舊規(guī)則更新至新規(guī)則。 如果流表更新過程處理不恰當(dāng),可能導(dǎo)致網(wǎng)絡(luò)內(nèi)數(shù)據(jù)包的錯(cuò)誤處理。文獻(xiàn)I提出一種技術(shù) 方案,給數(shù)據(jù)包打上不同的VLAN標(biāo)簽,以區(qū)別新、舊兩套規(guī)則,并在交換機(jī)中把VLAN標(biāo)簽作 為兩套規(guī)則的流表區(qū)分標(biāo)志。隨后,控制器在各個(gè)交換機(jī)上寫入基于新規(guī)則的流表項(xiàng),此時(shí) 在各交換機(jī)內(nèi)仍有舊流表規(guī)則對(duì)應(yīng)的流表項(xiàng)。最終,控制器在入口交換機(jī)上改變數(shù)據(jù)包的 VLAN標(biāo)簽,讓數(shù)據(jù)包依新規(guī)則對(duì)應(yīng)的流表項(xiàng)進(jìn)行轉(zhuǎn)發(fā),從而實(shí)現(xiàn)流表更新。
[0006] 在文獻(xiàn)I中固定使用VLAN標(biāo)簽來區(qū)分新、舊兩套規(guī)則,有如下問題:1)如果VLAN 標(biāo)簽是兩套規(guī)則中某些流表項(xiàng)的匹配信息,那么該方案不適用;2)如果VLAN標(biāo)簽不是兩套 規(guī)則中任何流表項(xiàng)的匹配信息,例如在數(shù)據(jù)轉(zhuǎn)發(fā)中一般不將VLAN標(biāo)簽作為流表項(xiàng)的匹配 信息,那么可以使用該方案,然而,該方案修改了數(shù)據(jù)包的包頭信息,在流表更新過程結(jié)束 后無法將數(shù)據(jù)包的VLAN域改回原值,可能在后繼操作中造成錯(cuò)誤;3) VLAN標(biāo)簽只有4096 個(gè),是一種重要網(wǎng)絡(luò)資源,該方案將VLAN標(biāo)簽作為額外代價(jià)。


【發(fā)明內(nèi)容】

[0007] 為了克服現(xiàn)有技術(shù)的上述缺陷,提出了本發(fā)明。因此,本發(fā)明的目的是提出一種流 表更新方法和流表更新裝置,能夠正確有效地實(shí)現(xiàn)流表更新,而無需使用固定包頭域。
[0008] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明,提出了一種在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中將基于舊規(guī)則的 流表更新為基于新規(guī)則的流表的流表更新方法,包括:從基于舊規(guī)則的流表和基于新規(guī)則 的流表中均使用的至少一個(gè)匹配域中確定特定匹配域;選定特定匹配域中的未使用地址代 替該特定匹配域中的原使用地址,來構(gòu)造流表項(xiàng),作為臨時(shí)流表項(xiàng);以及在新規(guī)則所涉及的 各網(wǎng)絡(luò)節(jié)點(diǎn)的流表的所述特定匹配域中使用由選定的地址構(gòu)造的臨時(shí)流表項(xiàng),來臨時(shí)實(shí)現(xiàn) 新規(guī)則,直到舊規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)中的基于舊規(guī)則的動(dòng)作完成為止。
[0009] 優(yōu)選地,當(dāng)基于舊規(guī)則的動(dòng)作完成之后,將舊規(guī)則所涉及的流表項(xiàng)刪除;在所有舊 規(guī)則的流表項(xiàng)成功刪除之后,在新規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)上寫入新規(guī)則的流表項(xiàng),來替 換之前寫入的臨時(shí)流表項(xiàng),在數(shù)據(jù)包按照新規(guī)則的流表項(xiàng)處理之后,刪除所有臨時(shí)流表項(xiàng)。
[0010] 優(yōu)選地,所述網(wǎng)絡(luò)節(jié)點(diǎn)是軟件定義網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點(diǎn)。
[0011] 優(yōu)選地,所述網(wǎng)絡(luò)節(jié)點(diǎn)為交換機(jī),所述舊規(guī)則是舊路徑上的分組轉(zhuǎn)發(fā)規(guī)則,所述新 規(guī)則是新路徑上的分組轉(zhuǎn)發(fā)規(guī)則。
[0012] 優(yōu)選地,所述特定匹配域是分組轉(zhuǎn)發(fā)的源地址域和/或目的地址域。
[0013] 優(yōu)選地,所述特定匹配域中的未使用的地址是預(yù)先設(shè)定的或者是隨機(jī)選取的。
[0014] 優(yōu)選地,將統(tǒng)計(jì)得出的基于舊規(guī)則的流表和基于新規(guī)則的流表中均使用的匹配域 中使用程度最小的匹配域確定為特定匹配域。
[0015] 另外,根據(jù)本發(fā)明,還提出了一種在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中將基于舊規(guī)則的流表更新為 基于新規(guī)則的流表的流表更新裝置,包括:從基于舊規(guī)則的流表和基于新規(guī)則的流表中均 使用的至少一個(gè)匹配域中確定特定匹配域的單元;選定特定匹配域中的未使用地址代替該 特定匹配域中的原使用地址,來構(gòu)造流表項(xiàng),作為臨時(shí)流表項(xiàng)的單元;以及在新規(guī)則所涉及 的各網(wǎng)絡(luò)節(jié)點(diǎn)的流表的所述特定匹配域中使用由選定的地址構(gòu)造的臨時(shí)流表項(xiàng),來臨時(shí)實(shí) 現(xiàn)新規(guī)則,直到舊規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)中的基于舊規(guī)則的動(dòng)作完成為止的單元。
[0016] 由此,針對(duì)軟件定義網(wǎng)絡(luò)的流表更新問題,本發(fā)明提出一種通用的技術(shù)方案,即基 于兩套規(guī)則來選擇一個(gè)包頭域,以此作為區(qū)分新、舊規(guī)則的標(biāo)志;同時(shí),在流表更新過程結(jié) 束后,能夠保持?jǐn)?shù)據(jù)包的原有包頭信息。相對(duì)于文獻(xiàn)I中的使用固定包頭域(VLAN標(biāo)簽) 來作為區(qū)分標(biāo)志的方案,本發(fā)明所提方案將根據(jù)新、舊兩套規(guī)則來選擇一個(gè)包頭域或多個(gè) 包頭域的組合(源IP、目的IP、源Mac、目的Mac、VLAN等),這就增加了本發(fā)明所提方案的 通用性。另外,本發(fā)明所提方案能夠?qū)崿F(xiàn)在流表更新過程結(jié)束后恢復(fù)數(shù)據(jù)包的原有包頭信 息,從而避免文獻(xiàn)I的方案中數(shù)據(jù)包在離開軟件定義網(wǎng)絡(luò)之后可能導(dǎo)致的各種錯(cuò)誤處理。

【專利附圖】

【附圖說明】
[0017] 通過參考以下組合附圖對(duì)所采用的優(yōu)選實(shí)施方式的詳細(xì)描述,本發(fā)明的上述目 的、優(yōu)點(diǎn)和特征將變得更顯而易見,其中:
[0018] 圖1是示出了軟件定義網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)的圖;
[0019] 圖2是示出了控制器功能模塊的圖;
[0020] 圖3是示出了交換機(jī)功能模塊的圖;
[0021] 圖4是示出了控制器、交換機(jī)的流表存儲(chǔ)模塊的結(jié)構(gòu)圖;
[0022] 圖5是示出了控制器、交換機(jī)中的流表信息存儲(chǔ)格式的示意圖;
[0023] 圖6是示出了基于舊規(guī)則的全局流表信息存儲(chǔ)情況的示意圖;
[0024] 圖7是示出了控制器內(nèi)流表更新模塊的結(jié)構(gòu)圖;
[0025] 圖8是示出了控制器內(nèi)流表信息統(tǒng)計(jì)模塊的具體內(nèi)容的示意圖;
[0026] 圖9是示出了控制器內(nèi)交換機(jī)分類模塊的結(jié)構(gòu)圖;
[0027] 圖10是示出了控制器內(nèi)網(wǎng)絡(luò)拓?fù)浯鎯?chǔ)模塊的具體內(nèi)容的示意圖;
[0028] 圖11是示出了交換機(jī)內(nèi)數(shù)據(jù)包與流表匹配模塊的流程圖;
[0029] 圖12是示出了控制器內(nèi)流表信息統(tǒng)計(jì)模塊的流程圖;
[0030] 圖13是示出了控制器內(nèi)交換機(jī)分類模塊的流程圖;
[0031] 圖14是示出了本發(fā)明所提流表更新方案的流程圖;
[0032] 圖15是示出了算法1 (選擇特定匹配域)的流程圖;
[0033] 圖16是示出了算法2 (在匹配域中選擇特殊地址)的流程圖;
[0034] 圖17是示出了算法2中生成預(yù)設(shè)空白地址的流程圖;
[0035] 圖18是示出了算法2中隨機(jī)選取特殊地址的流程圖;
[0036] 圖19是示出了算法3 (流表更新第1階段)的流程圖;
[0037] 圖20是示出了算法3 (流表更新第1階段)的時(shí)序圖;
[0038] 圖21是示出了算法4 (流表更新第2階段)的流程圖;
[0039] 圖22是示出了算法4 (流表更新第2階段)的時(shí)序圖;
[0040] 圖23是示出了算法5 (處理占用特殊地址的新數(shù)據(jù)流)的流程圖;
[0041] 圖24是示出了實(shí)施例1的流表更新過程的中間狀態(tài)圖;
[0042] 圖25是示出了實(shí)施例1中2個(gè)匹配域的可用值計(jì)算結(jié)果的圖。

【具體實(shí)施方式】
[0043] 下面結(jié)合附圖1-24對(duì)實(shí)施例1進(jìn)行說明。
[0044] 所述實(shí)施例描述當(dāng)軟件定義網(wǎng)絡(luò)中發(fā)生路徑切換時(shí),對(duì)舊路徑、新路徑上的交換 機(jī)中的流表進(jìn)行更新的過程。實(shí)施例中的舊路徑、新路徑都以主機(jī)108為源,以主機(jī)109為 目的,舊路徑上的交換機(jī)順序?yàn)?交換機(jī)102 -交換機(jī)103 -交換機(jī)104 -交換機(jī)105",新 路徑上的交換機(jī)順序?yàn)?交換機(jī)102 -交換機(jī)106 -交換機(jī)107 -交換機(jī)105"。
[0045] 圖1示出了一個(gè)軟件定義網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu),具體由1個(gè)控制器(控制器101)、6個(gè) 交換機(jī)(交換機(jī)102、交換機(jī)103、交換機(jī)104、交換機(jī)105、交換機(jī)106、交換機(jī)107)和7個(gè) 主機(jī)(主機(jī)108、主機(jī)109、主機(jī)110、主機(jī)111、主機(jī)112、主機(jī)113、主機(jī)121)構(gòu)成??刂破?101與各個(gè)交換機(jī)均有控制鏈路相連,用于交換控制平面信息120。所述控制鏈路可以是以 帶內(nèi)方式連接的虛擬鏈路,也可以是以帶外方式連接的物理鏈路。各個(gè)交換機(jī)之間通過物 理鏈路相連,構(gòu)成全局網(wǎng)絡(luò)拓?fù)?,總?jì)有6條物理鏈路,例如物理鏈路114連接交換機(jī)102 和交換機(jī)103。每個(gè)主機(jī)與一個(gè)交換機(jī)相連:主機(jī)108與交換機(jī)102相連、主機(jī)109與交換 機(jī)105相連、主機(jī)110和主機(jī)111都與交換機(jī)106相連、主機(jī)112與交換機(jī)107相連、主機(jī) 113與交換機(jī)104相連、主機(jī)121與交換機(jī)107相連。
[0046] 圖2示出了控制器101內(nèi)部的功能模塊,這些模塊按照用途可以分為兩部分。第一 部分是控制器101的基本模塊,用以實(shí)現(xiàn)軟件定義網(wǎng)絡(luò)的各項(xiàng)基本功能,包括用于存儲(chǔ)網(wǎng) 絡(luò)拓?fù)湫畔ⅲɡ缥锢礞溌沸畔ⅲ┑木W(wǎng)絡(luò)拓?fù)浯鎯?chǔ)模塊201、用于向交換機(jī)102-107寫入、 修改流表的流表寫入/修改模塊202、用于進(jìn)行集中算路的路由計(jì)算模塊203、用于主動(dòng)探 測網(wǎng)絡(luò)拓?fù)渥兓木W(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)模塊204、用于對(duì)其他模塊(例如路由計(jì)算模塊203、網(wǎng)絡(luò) 拓?fù)浒l(fā)現(xiàn)模塊204)進(jìn)行編譯和調(diào)試的編譯及調(diào)試模塊205、用于與交換機(jī)102-107進(jìn)行通 信的控制平面通信模塊206、用于存儲(chǔ)交換機(jī)102-107流表信息的全局流表存儲(chǔ)模塊207 ; 第二部分則是控制器101用以實(shí)現(xiàn)本發(fā)明所提方案的模塊,包括用于統(tǒng)計(jì)流表更新事件相 關(guān)信息的流表更新模塊208、用于分析全局流表存儲(chǔ)模塊207中信息的流表信息統(tǒng)計(jì)模塊 209、用于對(duì)待更新流表的交換機(jī)(交換機(jī)102-107)進(jìn)行分類的交換機(jī)分類模塊210。本 發(fā)明所提方案除了需要用到第二部分中的3個(gè)模塊,也需要用到第一部分中的部分功能模 塊。
[0047] 圖3示出了交換機(jī)102-107內(nèi)部的功能模塊,其中控制平面通信模塊301實(shí)現(xiàn)與 控制器101之間的通信,本地流表存儲(chǔ)模塊302用于存儲(chǔ)本地流表,交換機(jī)系統(tǒng)配置模塊 303用于實(shí)現(xiàn)交換機(jī)102-107的相應(yīng)配置工作,數(shù)據(jù)包與流表匹配模塊304用于為數(shù)據(jù)包尋 找適用的流表,路由轉(zhuǎn)發(fā)模塊305用于處理數(shù)據(jù)包。
[0048] 下面通過圖4-圖6對(duì)流表的存儲(chǔ)模塊、存儲(chǔ)格式進(jìn)行說明,并示出實(shí)施例中的基 于舊規(guī)則的全局流表信息。
[0049] 圖4示出了兩個(gè)流表存儲(chǔ)模塊的結(jié)構(gòu)圖,控制器101內(nèi)全局流表存儲(chǔ)模塊207如 圖4-1所示、交換機(jī)102-107內(nèi)本地流表存儲(chǔ)模塊302如圖4_2所示。全局流表存儲(chǔ)模塊 207中有2個(gè)存儲(chǔ)結(jié)構(gòu):預(yù)設(shè)地址存儲(chǔ)模塊401和全局交換機(jī)流表信息404。預(yù)設(shè)地址存 儲(chǔ)模塊401,包含IP地址列表402和Mac地址列表403這2部分,分別存儲(chǔ)預(yù)設(shè)的IP、Mac 地址。全局交換機(jī)流表信息404,存儲(chǔ)了所有交換機(jī)(交換機(jī)102-107)的本地流表信息 (405-410),以及流表項(xiàng)數(shù)量統(tǒng)計(jì)總表411。本地流表存儲(chǔ)模塊302包括本地流表412和本 地流表項(xiàng)數(shù)量統(tǒng)計(jì)表413。
[0050] 由于各個(gè)交換機(jī)(交換機(jī)102-107)中的流表信息、流表項(xiàng)數(shù)量統(tǒng)計(jì)同時(shí)也在控制 器101中進(jìn)行存儲(chǔ),因此在交換機(jī)102-107、控制器101中采用一樣的流表存儲(chǔ)格式,如圖 5中的表5-1和表5-2所不。表5-1不出了具體的流表存儲(chǔ)格式,每一條流表項(xiàng)包括匹配 域、執(zhí)行操作、優(yōu)先級(jí)這3部分。常用的匹配域包括源Mac、目的Mac、源IP、目的IP、VLAN、 TCP,執(zhí)行操作包括轉(zhuǎn)發(fā)、丟包、上傳控制器、修改等,優(yōu)先級(jí)則是0-65536的數(shù)值(值越大越 優(yōu)先)。表5-2示出了流表項(xiàng)數(shù)量統(tǒng)計(jì)表的內(nèi)容,包括流表項(xiàng)容量、現(xiàn)有流表項(xiàng)數(shù)、現(xiàn)有流表 項(xiàng)數(shù)/流表項(xiàng)容量這3個(gè)統(tǒng)計(jì)結(jié)果,流表項(xiàng)容量指交換機(jī)能夠容納的流表項(xiàng)總數(shù)(由交換 機(jī)的具體型號(hào)決定),現(xiàn)有流表項(xiàng)數(shù)指已經(jīng)寫入的流表項(xiàng)數(shù)量,現(xiàn)有流表項(xiàng)數(shù)/流表項(xiàng)容量 顯示流表的已使用程度。
[0051] 圖6示出了實(shí)施例中基于舊規(guī)則的全局流表信息存儲(chǔ)情況。表6-1示出交換機(jī) 102-107中的流表信息總表,表6-2示出交換機(jī)102-107的流表項(xiàng)數(shù)量統(tǒng)計(jì)總表。與路徑 切換相關(guān)的流表項(xiàng)如下:交換機(jī)102的流表項(xiàng)#1、交換機(jī)103的流表項(xiàng)#1、交換機(jī)104的 流表項(xiàng)#1、交換機(jī)105的流表項(xiàng)#1。這4條流表項(xiàng)都使用了源IP、目的IP這2個(gè)匹配域, 源IP地址為166. 111. 90. 50(主機(jī)108的IP地址),目的IP地址為166. 111. 10. 50 (主機(jī) 109的IP地址)。表6-1的信息由控制器101產(chǎn)生,當(dāng)控制器101每次向各個(gè)交換機(jī)(交 換機(jī)102-107)寫入、修改或者刪除流表項(xiàng),同時(shí)會(huì)在表6-1中添加、修改或者刪除相應(yīng)的流 表項(xiàng)。
[0052] 圖7示出了控制器101內(nèi)流表更新模塊208的結(jié)構(gòu)圖,包括流表更新事件統(tǒng)計(jì)信 息701、舊規(guī)則的流表信息702、新規(guī)則的流表信息703這3部分。流表更新事件統(tǒng)計(jì)信息 701的詳細(xì)內(nèi)容由表7-1示出,記錄最近1天內(nèi)每次流表更新事件的發(fā)生時(shí)刻、距上次時(shí)間 的時(shí)間間隔、事件耗費(fèi)時(shí)間;同時(shí),根據(jù)所有事件的信息,計(jì)算流表更新事件的發(fā)生頻率N 次/秒、平均間隔T秒、平均耗費(fèi)時(shí)間L秒。舊規(guī)則的流表信息702的詳細(xì)內(nèi)容由表7-2示 出,記錄交換機(jī)索引、匹配信息、執(zhí)行操作和優(yōu)先級(jí);新規(guī)則的流表信息703的詳細(xì)內(nèi)容由 表7-3示出,記錄交換機(jī)索引、匹配信息、執(zhí)行操作和優(yōu)先級(jí)。
[0053] 圖8示出了控制器101內(nèi)流表信息統(tǒng)計(jì)模塊209的具體內(nèi)容,由5張表構(gòu)成。表 8- 1示出是否統(tǒng)計(jì)各個(gè)交換機(jī)(交換機(jī)102-107)的流表信息,1表示統(tǒng)計(jì),0表示不統(tǒng)計(jì)。 基于表8-1的信息,表8-2示出各常用匹配域在已統(tǒng)計(jì)流表信息的交換機(jī)所有流表項(xiàng)中的 使用頻次情況,對(duì)每個(gè)常用匹配域記錄使用頻次,再根據(jù)已統(tǒng)計(jì)流表信息的交換機(jī)的流表 項(xiàng)總數(shù),計(jì)算"使用頻次/已統(tǒng)計(jì)流表信息的交換機(jī)流表項(xiàng)總數(shù)"一值。同樣基于表8-1的 信息,表8-3示出各常用匹配域在已統(tǒng)計(jì)流表信息的交換機(jī)流表中的地址使用情況,對(duì)每 個(gè)常用匹配域記錄已使用地址數(shù),再根據(jù)所轄地址總數(shù),計(jì)算"已使用地址數(shù)/所轄地址總 數(shù)"一值。表8-4示出各常用匹配已使用地址的具體存儲(chǔ)結(jié)構(gòu),源IP、目的IP地址均使用 24層樹存儲(chǔ),源Mac、目的Mac地址均使用哈希表存儲(chǔ),VLAN、TCP均使用定長數(shù)組存儲(chǔ)。根 據(jù)表8-1和全局流表存儲(chǔ)模塊207中表6-2的信息,表8-5示出已統(tǒng)計(jì)流表信息的交換機(jī)的 流表項(xiàng)數(shù)量情況,并計(jì)算已統(tǒng)計(jì)流表信息的交換機(jī)的"現(xiàn)有流表項(xiàng)數(shù)/流表項(xiàng)容量" 一值。
[0054] 圖9示出了控制器101內(nèi)交換機(jī)分類模塊210的結(jié)構(gòu)圖,具體包括待更新交換機(jī) 列表901 (詳見表9-1)、入口交換機(jī)列表902 (詳見表9-2)、中間交換機(jī)列表903 (詳見表 9- 3)、出口交換機(jī)列表904(詳見表9-4)。表9-1示出各個(gè)交換機(jī)(交換機(jī)102-107)是否 需要進(jìn)行流表更新,在實(shí)施例中,交換機(jī)102-107都需要更新流表;表9-2示出各個(gè)交換機(jī) (交換機(jī)102-107)是否為入口交換機(jī),在實(shí)施例中,交換機(jī)102是入口交換機(jī);表9-3示出 各個(gè)交換機(jī)(交換機(jī)102-107)是否為中間交換機(jī),在實(shí)施例中,交換機(jī)103、交換機(jī)104、交 換機(jī)106、交換機(jī)107是中間交換機(jī);表9-4示出各個(gè)交換機(jī)(交換機(jī)102-107)是否為出 口交換機(jī),在實(shí)施例中,交換機(jī)105是出口交換機(jī)。
[0055] 圖10示出了控制器101內(nèi)網(wǎng)絡(luò)拓?fù)浯鎯?chǔ)模塊201的具體內(nèi)容,表10-1示出各個(gè) 物理鏈路(物理鏈路114-119)的平均延時(shí)情況。根據(jù)表10-1的內(nèi)容,可以計(jì)算各個(gè)主機(jī) (主機(jī)108-113)之間的端到端延時(shí)。例如,在實(shí)施例中,舊路徑上交換機(jī)102與交換機(jī)105 之間的端到端延時(shí)為7. 2秒,新路徑上交換機(jī)102與交換機(jī)105之間的端到端延時(shí)為5. 1 秒。
[0056] 圖11示出了交換機(jī)102-107內(nèi)數(shù)據(jù)包與流表匹配模塊304的具體匹配流程,以當(dāng) 數(shù)據(jù)包從主機(jī)108到達(dá)交換機(jī)102時(shí)為例。在S1101中交換機(jī)102提取數(shù)據(jù)包包頭信息, 在S1102中數(shù)據(jù)包與本地流表存儲(chǔ)模塊412中的所有流表項(xiàng)依次進(jìn)行完全匹配。根據(jù)匹配 結(jié)果,在S1103中進(jìn)行選擇判斷"是否存在完全匹配的流表項(xiàng)"。如果S1103的判斷結(jié)果為 "否",則在S1105中交換機(jī)102將數(shù)據(jù)包上傳至控制器101處理,等待控制器101制定相應(yīng) 流表規(guī)則來處理該數(shù)據(jù)包。如果S1103的判斷結(jié)果為"是",則在S1104中再進(jìn)行選擇判斷 "是否存在多條完全匹配的流表項(xiàng)"。如果S1104的判斷結(jié)果為"否",則在S1107中交換機(jī) 102將該條流表項(xiàng)作為匹配結(jié)果。如果S1104的判斷結(jié)果為"是",則在S1106中交換機(jī)102 選擇優(yōu)先級(jí)最高的流表項(xiàng)作為匹配結(jié)果。在S1108中,交換機(jī)102按照匹配結(jié)果中的執(zhí)行 操作對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)處理即可。
[0057] 圖12示出了控制器101內(nèi)流表信息統(tǒng)計(jì)模塊209的具體計(jì)算流程。由于只需要 對(duì)受流表更新影響的交換機(jī)(交換機(jī)102-107)進(jìn)行流表信息統(tǒng)計(jì),在S1201中控制器101 把交換機(jī)分類模塊210的表9-1信息更新到流表信息統(tǒng)計(jì)模塊209的表8-1中。在S1202 中控制器101把全局流表存儲(chǔ)模塊207的表6-1中信息更新到流表信息統(tǒng)計(jì)模塊209的表 8-4中,即將各常用匹配域的已使用地址分別進(jìn)行存儲(chǔ)。在S1203中控制器101根據(jù)流表信 息統(tǒng)計(jì)模塊209的表8-4和全局流表存儲(chǔ)模塊207的表6-2,更新流表信息統(tǒng)計(jì)模塊209的 表8-2、表8-3、表8-5中相應(yīng)信息。上述即完成了流表信息統(tǒng)計(jì)模塊209內(nèi)各表內(nèi)容的一 次計(jì)算過程。在S1204中控制器101對(duì)流表信息統(tǒng)計(jì)模塊209內(nèi)各表內(nèi)容進(jìn)行更新操作, 每隔T秒(流表更新模塊208的表7-1中數(shù)據(jù))重新提取全局流表存儲(chǔ)模塊207的表6-1 信息,來對(duì)流表信息統(tǒng)計(jì)模塊209的表8-2、表8-3、表8-4、表8-5的信息進(jìn)行更新。
[0058] 圖13示出了控制器101內(nèi)交換機(jī)分類模塊210的具體流程。在S1301中控制器 101提取流表更新模塊208中的表7-2、表7-3信息,即分析新、舊兩套規(guī)則的流表信息。在 S1302中控制器101利用流表更新模塊208的表7-2、表7-3中信息來更新交換機(jī)分類模 塊210的表9-1,即確定哪些交換機(jī)需要更新流表。具體地,流表更新模塊208的表7-2、表 7-3中所有流表項(xiàng)"交換機(jī)索引"一欄中的交換機(jī),都是需要進(jìn)行流表更新的交換機(jī)。在實(shí) 施例中,由于流表更新模塊208中的表7-2、表7-3中8條流表項(xiàng)中出現(xiàn)了 6個(gè)交換機(jī)(交 換機(jī)102-107),則交換機(jī)分類模塊210的表9-1中交換機(jī)102-107都需要進(jìn)行流表更新。 在S1303中控制器101對(duì)入口交換機(jī)進(jìn)行分析,假設(shè)數(shù)據(jù)包按新規(guī)則轉(zhuǎn)發(fā),根據(jù)流表更新模 塊208中的表7-3中信息,經(jīng)過交換機(jī)分類模塊210的表9-1中的第一個(gè)交換機(jī),記為入口 交換機(jī)(更新交換機(jī)分類模塊210的表9-2)。在S1304中控制器101對(duì)中間交換機(jī)和出口 交換機(jī)進(jìn)行分析,數(shù)據(jù)包經(jīng)過入口交換機(jī)之后,根據(jù)流表更新模塊208的表7-3中信息,將 途經(jīng)交換機(jī)分類模塊210的表9-1中所有其他交換機(jī),除最后一個(gè)記為出口交換機(jī),其他均 記為中間交換機(jī)(更新交換機(jī)分類模塊210的表9-3、表9-4)。
[0059] 下面結(jié)合圖12-23對(duì)實(shí)施例1中的流表更新過程進(jìn)行說明。其中圖14為總體流 程,圖13是圖14中S1403的詳細(xì)流程,圖12是圖14中S1404的詳細(xì)流程,圖15是圖14中 S1405的詳細(xì)流程,圖16、圖17、圖18是圖14中S1406的詳細(xì)流程,圖19是圖14中S1407 的詳細(xì)流程,圖20是圖14中S1407的時(shí)序,圖21是圖14中S1408的詳細(xì)流程,圖22是圖 14中S1408的時(shí)序,圖23是圖14中S1410的詳細(xì)流程。在圖14中,本實(shí)施例的流表更新 過程分為預(yù)處理(S1401-S1406)、階段1(S1407)、階段2(S1408-S1411)這3部分。在S1401 中控制器101觸發(fā)流表更新過程開始。在S1402中控制器101對(duì)新、舊兩套規(guī)則進(jìn)行分析, 并更新流表更新模塊208的表7-2、表7-3中信息。在S1403中控制器101在交換機(jī)分類模 塊210中,對(duì)待更新流表的交換機(jī)進(jìn)行分類,詳細(xì)流程如圖13所示。根據(jù)交換機(jī)分類結(jié)果, 在S1404中控制器101在流表信息統(tǒng)計(jì)模塊209中,對(duì)待更新流表的交換機(jī)中的流表信息 進(jìn)行分析,詳細(xì)流程如圖12所示。在S1405中控制器101利用算法1進(jìn)行特定匹配域的選 定,詳細(xì)流程如圖15所示。根據(jù)算法1的結(jié)果,在S1406中控制器101利用算法2進(jìn)行特 定匹配域中特殊地址的選定,詳細(xì)流程如圖16所示。根據(jù)上述2個(gè)算法的結(jié)果,在S1407 中控制器101根據(jù)算法3進(jìn)行流表更新第1階段,詳細(xì)流程如圖19所示,時(shí)序圖如圖20所 示。流表更新第1階段結(jié)束后,在S1408中控制器101根據(jù)算法4進(jìn)行流表更新第2階段, 詳細(xì)流程如圖21所示,時(shí)序圖如圖22所示。在S1409中控制器101進(jìn)行"在第2階段中 該特殊地址是否被新數(shù)據(jù)流使用"的選擇判斷。如果S1409的判斷結(jié)果為"是",則在S1410 中控制器101根據(jù)算法5對(duì)該數(shù)據(jù)流進(jìn)行處理,詳細(xì)流程如圖23所示。如果S1409的判斷 結(jié)果為"否",則在S1411中控制器101認(rèn)為整個(gè)流表更新過程已完成。
[0060] 圖15示出了算法1 :選擇特定匹配域的流程圖。在S1501中控制器101根據(jù)流表 更新模塊208的表7-2、表7-3中所有流表項(xiàng)的"匹配信息"一欄中的內(nèi)容,來確定新、舊兩 套規(guī)則中所有流表項(xiàng)匹配信息所使用的匹配域,在本實(shí)施例中,所使用的匹配域?yàn)樵碔P地 址、目的IP地址。根據(jù)匹配域的個(gè)數(shù),在S1502中進(jìn)行"是否只有1個(gè)匹配域"的選擇判斷。 如果S1502的判斷結(jié)果為"是",在S1503中控制器101將其選定為特定匹配域。如果S1502 的判斷結(jié)果為"否",在S1504中控制器101需要在多個(gè)匹配域中選擇特定的匹配域。如果存 在多個(gè)匹配域,為每個(gè)匹配域A設(shè)定可用值 Ci,來表征這個(gè)匹配域的已使用程度,作為選擇 匹配域的指標(biāo)。在本實(shí)施例中,有2個(gè)匹配域(源IP地址、目的IP地址),記源IP地址為 Ai、目的IP地址為A2、源IP地址的可用值為Cl、目的IP地址的可用值為c2。在S1505中,控 制器101對(duì)每個(gè)匹配域Ai進(jìn)行可用值計(jì)算Ci = α叫+β nii。叫指Ai在流表項(xiàng)中出現(xiàn)頻次比 例,即流表信息統(tǒng)計(jì)模塊209中表8-2的"使用頻次/已統(tǒng)計(jì)流表信息的交換機(jī)現(xiàn)有流表項(xiàng) 總數(shù)" 一值,該數(shù)據(jù)每隔T秒更新一次。叫指&的已使用地址比例,即流表信息統(tǒng)計(jì) 模塊209中表8-3的"已使用地址數(shù)/所轄地址總數(shù)(%) ",該數(shù)據(jù)每隔T秒更新一次。兩 個(gè)權(quán)重α、β根據(jù)如下算式計(jì)算:α = 2_μ,β = 1+μ (0彡μ彡1)。其中,μ代表"所 有待更新流表的交換機(jī)中現(xiàn)有流表項(xiàng)數(shù)/流表項(xiàng)容量(% " 一值,數(shù)據(jù)來自流表信息統(tǒng)計(jì) 模塊209中表8-5,該數(shù)據(jù)每隔Τ秒刷新一次。在S1506中,控制器101進(jìn)行"是否某個(gè)匹 配域的叫=1"的選擇判斷。如果S1506的判斷結(jié)果為"是",在S1507中控制器101記該 匹配域的可用值q =°〇。如果S1506的判斷結(jié)果為"否",在S1508中控制器101對(duì)所有匹 配域的可用值進(jìn)行排序。在S1509中,控制器101進(jìn)行"是否對(duì)所有匹配域都有c =c?"的 選擇判斷。如果S1509的判斷結(jié)果為"是",則在S1510中控制器101選擇2個(gè)叫值最小、 次最小的匹配域Α+Α」;如果S1509的判斷結(jié)果為"否",則在S1511中控制器選擇可用值最 小的A作為特定匹配域。至S1512為止,控制器101已經(jīng)選擇出特定的匹配域,算法1結(jié) 束。例如,在本實(shí)施例中,2個(gè)匹配域的相應(yīng)計(jì)算結(jié)果如圖25中表25-1所示,源IP地址的 可用值為133. 20%,目的IP地址的可用值為199. 70%,且2個(gè)匹配域的叫均小于1,(^均 為有限值,則控制器101選擇可用值最小的源IP地址作為特定匹配域。
[0061] 圖16示出了算法2 :在匹配域中選擇特殊地址的流程圖。根據(jù)算法1的結(jié)果,在 S1601中控制器101已經(jīng)知道選定的匹配域,例如,在本實(shí)施例中,源IP地址即是特定匹配 域。在S1602中,控制器101進(jìn)行"是否只選定1個(gè)匹配域"的選擇判斷。如果S1602的判 斷結(jié)果為"否",則在S1603中控制器101使用2個(gè)匹配域A#」,在S1604中控制器101通 過隨機(jī)選取的方式,在每個(gè)域中選擇一個(gè)地址,構(gòu)成地址對(duì)afaj。在S1605中,控制器101 進(jìn)行"該地址對(duì)是否已在全局流表存儲(chǔ)模塊207的表6-1中出現(xiàn)"的選擇判斷。如果S1605 的判斷結(jié)果為"是",則回到S1604繼續(xù)隨機(jī)產(chǎn)生地址對(duì);如果S1605的判斷結(jié)果為"否",在 S1606中控制器101將其選為特殊地址。舉例說明S1603-S1606,假設(shè)某次流表更新過程中, 控制器101使用VLAN、目的IP地址這2個(gè)域作為特定匹配域,控制器101在S1604中通過 隨機(jī)選取方式產(chǎn)生地址對(duì)"VLAN = 5、目的IP地址=166. 111. 171. 1",該地址對(duì)在S1605 中與全局流表存儲(chǔ)模塊207的表6-1中所有表項(xiàng)的匹配信息進(jìn)行依次完全匹配,結(jié)果發(fā)現(xiàn) 全局流表存儲(chǔ)模塊207的表6-1中交換機(jī)103的流表項(xiàng)#2同樣使用"VLAN = 5、目的IP地 址=166. 111. 171. 1"作為匹配信息,因此該地址對(duì)不能使用,繼續(xù)回到S1604隨機(jī)出地址 對(duì)"VLAN = 50、目的IP地址=166. 111. 1113. 1",在此與全局流表存儲(chǔ)模塊207的表6-1 中所有表項(xiàng)進(jìn)行匹配,發(fā)現(xiàn)"VLAN = 50、目的IP地址=166. 111. 1113. 1"未被使用,則在 S1606中控制器101將其作為選定的特殊地址。如果S1602的判斷結(jié)果為"是",則在S1607 中控制器101使用1個(gè)匹配域需要選出一個(gè)特殊地址%。在S1608中,進(jìn)行"是否有預(yù) 設(shè)空白地址"的選擇判斷,。如果S1608的判斷結(jié)果為"是",則在S1609中控制器101隨機(jī) 選擇一個(gè)預(yù)設(shè)空白地址作為特殊地址;如果S16008的判斷結(jié)果為"否",則在S1610中控制 器101以隨機(jī)選擇的方式選擇一個(gè)未被使用地址作為特殊地址,詳細(xì)流程如圖18所示。其 中S1608和S1609所使用的"預(yù)設(shè)空白地址"由控制器101在系統(tǒng)初始化時(shí)自動(dòng)設(shè)定或者 人工設(shè)定,其中自動(dòng)設(shè)定的具體流程如圖17所示。至S1611為止,已經(jīng)在特定匹配域中選 定特殊地址,算法2結(jié)束。例如,在本實(shí)施例中,只有1個(gè)特定匹配域,即源IP地址,因此控 制器101只需在其中選擇一個(gè)特殊地址,用于后繼流表更新過程;控制器101以隨機(jī)選擇的 方式,在源IP地址中選擇出一個(gè)未被使用的地址166. 111. 50. 50,作為特殊地址。
[0062] 圖17示出了算法2中使用的預(yù)設(shè)空白地址的生成方法。在S1701中,控制器101 提取流表更新模塊208的表7-1中的2個(gè)數(shù)據(jù):流表更新事件發(fā)生頻率N次/秒、每次更新 平均耗費(fèi)時(shí)間?;秒。在S1702中,控制器101根據(jù)愛爾蘭B公式計(jì)算所需預(yù)設(shè)的空白地址 數(shù)N。。在S1703中,控制器101在各個(gè)常用匹配域中,只針對(duì)IP、Mac地址的4個(gè)域進(jìn)行空 白地址預(yù)設(shè)。在S1704中,進(jìn)行"該域是否使用IP地址"的選擇判斷。如果S1704的判斷 結(jié)果為"是",在S1705中利用控制器101定義的保留IP地址(參考國際標(biāo)準(zhǔn)RFC1918)作 為預(yù)設(shè)地址,例如C類地址段192. 168. 0. 0到192. 168. 255. 255。如果S1704的判斷結(jié)果為 "否",在S1706中控制器101繼續(xù)進(jìn)行"該域是否使用Mac地址"的選擇判斷。如果S1706 的判斷結(jié)果為"否",則在S1707中控制器101不再對(duì)其他匹配域進(jìn)行空白地址的預(yù)設(shè)。如 果S1706的判斷結(jié)果為"是",在S1708中控制器101在網(wǎng)絡(luò)中創(chuàng)建若干主機(jī),分配Mac地 址,這些主機(jī)不進(jìn)行任何通信,則Mac地址不在數(shù)據(jù)流中使用,可作預(yù)設(shè)空白地址。例如,在 實(shí)施例中,控制器101創(chuàng)建主機(jī)121,為期分配Mac地址00-1F-16-15-2E-B2,并將其作為預(yù) 設(shè)空白Mac地址。在S1709中,控制器101已對(duì)IP、Mac地址相關(guān)的4個(gè)常用域進(jìn)行空白地 址的預(yù)設(shè)。
[0063] 圖18示出了算法2中隨機(jī)選取特殊地址的具體流程。在S1801中,控制器101提 取已選定匹配域的信息,例如,在實(shí)施例中,已選定匹配域?yàn)樵碔P地址。在S1802中,進(jìn)行 "該域是否使用IP地址"的選擇判斷。如果S1802的判斷結(jié)果為"否",控制器101在S1803 中隨機(jī)選取該域的一個(gè)地址,再在S1804中進(jìn)行"該地址是否已在對(duì)流表信息統(tǒng)計(jì)模塊209 的表8-4中出現(xiàn)"的選擇判斷。如果S1804的判斷結(jié)果為"是",則繼續(xù)回到S1803進(jìn)行隨 機(jī)地址選??;如果S1804的判斷結(jié)果為"否",則控制器101在S1805中將其選為特殊地址。 如果S1802的判斷結(jié)果為"是",控制器101在S1806中提取對(duì)流表信息統(tǒng)計(jì)模塊209的表 8-4中由該域已用地址構(gòu)成的24層樹,例如,在實(shí)施例中,提取表8-4中由源IP地址中已 使用地址構(gòu)成的24層樹。針對(duì)這顆24層樹,在S1807中進(jìn)行"第24層葉子節(jié)點(diǎn)是否張滿" 的選擇判斷。如果S1807的判斷結(jié)果為"是",控制器101在S1808中根據(jù)第24層葉子節(jié)點(diǎn) 信息選擇一個(gè)子網(wǎng)地址已使用數(shù)量最少的C類網(wǎng)段,并在S1809中在該網(wǎng)段中尋找一個(gè)空 白地址作為特殊地址。如果S1807的判斷結(jié)果為"否",控制器101在S1810中選擇一個(gè)未 被使用的C類網(wǎng)段,任選其中一個(gè)子網(wǎng)地址作為特殊地址。在S1811中,控制器101已經(jīng)在 選定的特定匹配域中選出特殊地址。
[0064] 圖19示出了算法3 :流表更新第1階段的具體流程。根據(jù)流表更新模塊208的 表7-2和表7-3信息,新、舊兩套規(guī)則的所有流表項(xiàng)都使用共同的匹配信息:源IP地址 166. 11L 90. 50+ 目的 IP 地址 166. 11L 10.50。下文中,源 IP 地址 166. 11L 90. 50 用 A指 代,目的IP地址166. 111. 10. 50用B指代(參考圖24-1)?;谒惴?和算法2,已經(jīng)選定 用于流表更新過程的特定地址Z,本實(shí)施例中Z是源IP地址166. 111. 50. 50 (參考圖24-2)。 在流表更新第1階段中,首先不刪除舊路徑上各個(gè)交換機(jī)(交換機(jī)102-105)的流表項(xiàng),使 得數(shù)據(jù)包能夠繼續(xù)傳輸(在舊路徑上按照舊規(guī)則傳輸);然后,在新路徑上各個(gè)交換機(jī)(交 換機(jī)102、交換機(jī)105-107)中按照一定順序?qū)懭胍訸+B為匹配信息的流表項(xiàng),并在入口交 換機(jī)(交換機(jī)102)上通過新流表項(xiàng)將數(shù)據(jù)包的包頭信息A+B改為Z+B,從而實(shí)現(xiàn)從舊路徑 到新路徑的切換;接著,等待舊路徑上的端到端延時(shí),以保證舊路徑上的所有數(shù)據(jù)包最終完 成傳輸過程;最后,刪除舊路徑上各個(gè)交換機(jī)(交換機(jī)102、交換機(jī)105-107)中的基于舊規(guī) 則的流表項(xiàng)。在S1901中,控制器101基于算法1和算法2,已經(jīng)選定了特定匹配域(算法 1),并在該域中選定了一個(gè)特殊地址(算法2),來用于流表更新過程中。例如,在本實(shí)施例 中,特定匹配域是源IP地址,特定地址Z。在S1902中,控制器101向中間交換機(jī)(交換機(jī) 106-107)、出口交換機(jī)(交換機(jī)105)寫入以Z+B作為匹配信息的新流表項(xiàng)(參考圖24-2)。 在S1903中,控制器101要求上述交換機(jī)(即交換機(jī)105-107)在新流表項(xiàng)寫入成功后向控 制器返回寫入成功信息。在S1904中,進(jìn)行"是否每個(gè)交換機(jī)都已返回寫入成功信息"的選 擇判斷。如果S1904的判斷結(jié)果為"否",控制器101在S1905中等待其他交換機(jī)返回寫入 成功信息。如果S1904的判斷結(jié)果為"是",控制器101在S1906中,向入口交換機(jī)(交換機(jī) 102)寫入2條新流表項(xiàng):第1條是以Z+B為匹配 /[目息的流表項(xiàng);第2條是以A+B為匹配/[目 息的流表項(xiàng),將數(shù)據(jù)包的包頭信息從A+B改為Z+B。這2條流表項(xiàng)的優(yōu)先級(jí)應(yīng)高于入口交換 機(jī)(交換機(jī)102)的所有流表項(xiàng)的優(yōu)先級(jí),例如,在本實(shí)施例中,根據(jù)全局流表存儲(chǔ)模塊207 的表6-1中信息,入口交換機(jī)(交換機(jī)102)上所有流表項(xiàng)的優(yōu)先級(jí)最高值為12,則新寫入 的2條流表項(xiàng)的優(yōu)先級(jí)可設(shè)為20 (參考圖24-3)。在S1907中,入口交換機(jī)(交換機(jī)102) 在這2條流表項(xiàng)寫入成功后向控制器101返回寫入成功信息。在S1908中,根據(jù)網(wǎng)絡(luò)拓?fù)?存儲(chǔ)模塊201的表10-1中物理鏈路平均延時(shí)信息,控制器101可以計(jì)算舊路徑的端到端延 時(shí),在等待該延時(shí)長度后,在交換機(jī)102-104中刪除舊規(guī)則對(duì)應(yīng)的流表項(xiàng),例如,在本實(shí)施 例中,刪除交換機(jī)102的流表項(xiàng)#1、交換機(jī)103的流表項(xiàng)#1、交換機(jī)104的流表項(xiàng)#1 (參考 圖24-3)。在S1909中,控制器101要求上述交換機(jī)(交換機(jī)102-104)在流表項(xiàng)刪除成功 后向控制器101返回刪除成功信息。在S1910中,進(jìn)行"是否每個(gè)交換機(jī)都已返回刪除成功 信息"的選擇判斷。如果S1910的判斷結(jié)果為"否",控制器101在S1911中等待其他交換 機(jī)返回刪除成功信息。如果S1910的判斷結(jié)果為"是",則控制器101在S1912中已完成流 表更新第1階段(參考圖24-4)。此時(shí),數(shù)據(jù)包按照以Z+B為匹配信息的流表項(xiàng)轉(zhuǎn)發(fā),已經(jīng) 從舊路徑切換到新路徑上。
[0065] 圖20用時(shí)序圖說明了算法3的執(zhí)行過程。S2001表示控制器101向中間交換機(jī) (交換機(jī)106-107)、出口交換機(jī)(交換機(jī)105)寫入以Z+B作為匹配信息的新流表項(xiàng)。S2002、 S2003分別表示中間交換機(jī)(交換機(jī)106-107)、出口交換機(jī)(交換機(jī)105)在成功寫入流 表項(xiàng)之后向控制器101返回寫入成功信息。S2004表不控制器101向入口交換機(jī)(交換機(jī) 102)寫入2條新流表項(xiàng)。S2005表示入口交換機(jī)(交換機(jī)102)在成功寫入這2條流表項(xiàng) 之后向控制器101返回寫入成功信息。S2006表示控制器101等待舊路徑的端到端延時(shí)。 S2007表示控制器101向入口交換機(jī)(交換機(jī)102)、中間交換機(jī)(交換機(jī)103-104、交換機(jī) 106-107)、出口交換機(jī)(交換機(jī)105)發(fā)出刪除舊規(guī)則對(duì)應(yīng)流表項(xiàng)的指令。S2008、S2009、 S2010分別表示入口交換機(jī)(交換機(jī)102)、中間交換機(jī)(交換機(jī)103-104、交換機(jī)106-107)、 出口交換機(jī)(交換機(jī)105)在成功刪除流表項(xiàng)之后向控制器101返回刪除成功信息。
[0066] 在流表更新第1階段完成后,已經(jīng)實(shí)現(xiàn)了從舊路徑到新路徑的切換,但是數(shù)據(jù)包 的包頭信息被改變:在入口交換機(jī)(交換機(jī)102)上從A+B改為Z+B,然后根據(jù)新路徑上各 個(gè)交換機(jī)(交換機(jī)102、交換機(jī)105-107)中以Z+B為匹配信息的流表項(xiàng)進(jìn)行傳輸。這就和 現(xiàn)有文獻(xiàn)I中一樣,在流表更新過程結(jié)束后,數(shù)據(jù)包的包頭信息被改變,現(xiàn)有文獻(xiàn)I所提方 案將導(dǎo)致數(shù)據(jù)包VLAN標(biāo)簽的改變,本發(fā)明所提方案的流表更新第1階段將導(dǎo)致數(shù)據(jù)包源IP 地址的改變。假設(shè)數(shù)據(jù)包在到達(dá)主機(jī)109后,主機(jī)109將根據(jù)數(shù)據(jù)包的源IP地址(或者 VLAN標(biāo)簽),對(duì)數(shù)據(jù)包進(jìn)行進(jìn)一步處理,那么本發(fā)明(或者現(xiàn)有文獻(xiàn)I)所提方案的實(shí)施,將 導(dǎo)致數(shù)據(jù)包的錯(cuò)誤處理。因此,本發(fā)明所提方案在實(shí)現(xiàn)流表更新第1階段之后,通過算法4 來執(zhí)行流表更新第2階段,目的是流表更新過程完成后不改變數(shù)據(jù)包的包頭信息。
[0067] 圖21示出了算法4 :流表更新第2階段的具體流程。在S2101中,控制器101向中 間交換機(jī)(交換機(jī)106-107)、出口交換機(jī)(交換機(jī)105)寫入以A+B為匹配信息的新流表項(xiàng) (參考圖24-5)。在S2102中,控制器101要求上述交換機(jī)(交換機(jī)105-107)在流表項(xiàng)寫 入成功后向控制器101返回寫入成功信息。在S2103中,進(jìn)行"是否每個(gè)交換機(jī)都已返回寫 入成功信息"的選擇判斷。如果S2103的判斷結(jié)果為"否",則控制器101在S2104中等待其 他交換機(jī)返回寫入成功信息。如果S2103的判斷結(jié)果為"是",控制器101在S2105中在入 口交換機(jī)(交換機(jī)102)寫入以A+B為匹配信息的新流表項(xiàng),優(yōu)先級(jí)低于已有的將A+B改為 Z+B的流表項(xiàng)的優(yōu)先級(jí)(參考圖24-6)。例如,在本實(shí)施例中,入口交換機(jī)(交換機(jī)102)上 以A+B為匹配信息的流表項(xiàng)優(yōu)先級(jí)為10,將A+B改為Z+B的流表項(xiàng)的優(yōu)先級(jí)為20。在S2106 中,控制器101要求入口交換機(jī)(交換機(jī)102)在流表項(xiàng)寫入成功后返回寫入成功信息。在 S2107中,控制器101在入口交換機(jī)(交換機(jī)102)上刪除將A+B改為Z+B的流表項(xiàng)(參考 圖24-7)。在S2108中,控制器101要求入口交換機(jī)(交換機(jī)102)在流表項(xiàng)刪除成功后返 回刪除成功信息。在S2109中,控制器101根據(jù)網(wǎng)絡(luò)拓?fù)浯鎯?chǔ)模塊201的表10-1信息,計(jì) 算新路徑的端到端延時(shí),在等待該延時(shí)長度后,控制器101在交換機(jī)102、交換機(jī)105-107中 刪除以Z+B為匹配信息的流表項(xiàng)。在S2110中,控制器101要求上述交換機(jī)(交換機(jī)102、 交換機(jī)105-107)在流表項(xiàng)刪除成功后返回刪除成功信息。在S2111中,進(jìn)行"是否每個(gè)交 換機(jī)都已返回刪除成功信息"的選擇判斷。如果S2111的判斷結(jié)果為"否",則控制器101在 S2112中等待其他交換機(jī)返回刪除成功信息。如果S2111的判斷結(jié)果為"是",則控制器101 在S2113中已完成流表更新第2階段(參考圖24-8)。此時(shí),數(shù)據(jù)包在新路徑上按照以A+B 為匹配信息的流表項(xiàng)進(jìn)行轉(zhuǎn)發(fā),并且數(shù)據(jù)包的包頭信息沒有被改變。
[0068] 圖22用時(shí)序圖說明了算法4的執(zhí)行過程。S2201表示控制器101向中間交換機(jī) (交換機(jī)106-107)、出口交換機(jī)(交換機(jī)105)寫入以A+B作為匹配信息的新流表項(xiàng)。S2202、 S2203分別表示中間交換機(jī)(交換機(jī)106-107)、出口交換機(jī)(交換機(jī)105)在成功寫入流表 項(xiàng)之后返回的寫入成功信息。S2204表示控制器101向入口交換機(jī)(交換機(jī)102)寫入以 A+B為匹配信息的新流表。S2205表示入口交換機(jī)(交換機(jī)102)在成功寫入流表項(xiàng)之后返 回的寫入成功信息。S2206表示控制器101向入口交換機(jī)(交換機(jī)102)刪除將A+B改為 Z+B的流表項(xiàng)。S2207表示入口交換機(jī)(交換機(jī)102)在成功刪除流表之后返回的刪除成功 信息。S2208表示控制器101等待新路徑的端到端延時(shí)。S2209表示控制器101向入口交 換機(jī)(交換機(jī)102)、中間交換機(jī)(交換機(jī)103-104、交換機(jī)106-107)、出口交換機(jī)(交換機(jī) 105)發(fā)出刪除以Z+B為匹配信息流表項(xiàng)的指令。S2210、S2211、S2212分別表示入口交換機(jī) (交換機(jī)102)、中間交換機(jī)(交換機(jī)103-104、交換機(jī)106-107)、出口交換機(jī)(交換機(jī)105) 在成功刪除流表之后返回的刪除成功信息。在算法3(圖19)和算法4(圖21)中,特殊地 址Z -直被用于流表更新過程。雖然特殊地址Z在選擇時(shí)(圖16的算法2)是未被使用的 地址,但是也存在如下小概率事件:在流表更新過程中,控制器101所轄的各個(gè)交換機(jī)(交 換機(jī)102-107)中突然有以Z作為匹配信息的數(shù)據(jù)包。那么,需要對(duì)這種情況進(jìn)行處理,即 特殊地址(Z)在流表更新過程中被新數(shù)據(jù)包用作匹配信息。因此,提出算法5 :處理占用特 殊地址的新數(shù)據(jù)流,具體流程如圖23所示。在S2301中,控制器101獲悉Z已經(jīng)被選作特 殊地址,用于流表更新過程。在S2302中,控制器101進(jìn)行"以Z作為匹配信息的數(shù)據(jù)包進(jìn) 入任一所轄交換機(jī)"的選擇判斷。如果S2302的判斷結(jié)果為"否",則控制器101在S2303中 無需特殊處理。如果S2302的判斷結(jié)果為"是",假設(shè)有以Z作為匹配信息的數(shù)據(jù)包進(jìn)入交 換機(jī)102,則控制器101在S2304中將以預(yù)設(shè)空白地址(圖17)或者隨機(jī)選擇的方式(圖 18),為Z選取另一個(gè)空白地址Z。。在S2305中,控制器101將向該交換機(jī)(交換機(jī)102)寫 入一條新流表項(xiàng),對(duì)以Z作為匹配信息的數(shù)據(jù)包,將Z修改為&,同時(shí)將該流表記為流表#0。 在S2306中,控制器101進(jìn)行"流表更新第2階段是否結(jié)束"的選擇判斷。如果S2306的判 斷結(jié)果為"否",則控制器101在S2307中無需特殊處理。如果S2306的判斷結(jié)果為"是", 則控制器101在S2308中在該交換機(jī)(交換機(jī)102)上,寫入一條以Z作為匹配信息且執(zhí)行 流表#0相同操作的流表項(xiàng),該交換機(jī)(交換機(jī)102)寫入成功后向控制器101返回成功寫 入信息。在S2309中,控制器101在該交換機(jī)上(交換機(jī)102)刪除流表#0,釋放使用的空 白地址Z。。
[0069] 圖24示出了實(shí)施例更新過程的中間狀態(tài)。圖24-1是基于舊規(guī)則的流表情況,數(shù) 據(jù)包按照舊路徑進(jìn)行轉(zhuǎn)發(fā)。圖24-2是執(zhí)行完S1902,且流表項(xiàng)全部成功寫入之后的狀態(tài),此 時(shí)中間交換機(jī)(交換機(jī)106-107)、出口交換機(jī)(交換機(jī)105)中都有以Z+B為匹配信息的流 表項(xiàng)。圖24-3是執(zhí)行完S1906,且2條流表項(xiàng)全部成功寫入之后的狀態(tài),此時(shí)入口交換機(jī) (交換機(jī)102)新近的以A+B為匹配信息的數(shù)據(jù)包,包頭先被改成Z+B,再按照新規(guī)則進(jìn)行轉(zhuǎn) 發(fā)。圖24-4是流表更新第1階段結(jié)束時(shí)的狀態(tài)。圖24-5是執(zhí)行完S2101,且全部流表項(xiàng)成 功寫入之后的狀態(tài),此時(shí)中間交換機(jī)(交換機(jī)106-107)、出口交換機(jī)(交換機(jī)105)中都有 以A+B為匹配信息的流表項(xiàng)。圖24-6是執(zhí)行完S2106之后的狀態(tài),此時(shí)入口交換機(jī)上(交 換機(jī)102)也有以A+B為匹配信息的流表項(xiàng)。圖24-7是執(zhí)行完S2108之后的狀態(tài),此時(shí)以 Z+B為匹配信息的流表項(xiàng)不發(fā)揮作用,數(shù)據(jù)包按照以A+B為匹配信息的新規(guī)則轉(zhuǎn)發(fā)。圖24-8 是流表更新第2階段結(jié)束時(shí)的狀態(tài)。
[0070] 盡管以上已經(jīng)結(jié)合本發(fā)明的優(yōu)選實(shí)施例示出了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將 會(huì)理解,在不脫離本發(fā)明的精神和范圍的情況下,可以對(duì)本發(fā)明進(jìn)行各種修改、替換和改 變。因此,本發(fā)明不應(yīng)由上述實(shí)施例來限定,而應(yīng)由所附權(quán)利要求及其等價(jià)物來限定。
【權(quán)利要求】
1. 一種在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中將基于舊規(guī)則的流表更新為基于新規(guī)則的流表的流表更新 方法,包括: 從基于舊規(guī)則的流表和基于新規(guī)則的流表中均使用的至少一個(gè)匹配域中確定特定匹 配域; 選定特定匹配域中的未使用地址代替該特定匹配域中的原使用地址,來構(gòu)造流表項(xiàng), 作為臨時(shí)流表項(xiàng);以及 在新規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)的流表的所述特定匹配域中使用由選定的地址構(gòu)造的 臨時(shí)流表項(xiàng),來臨時(shí)實(shí)現(xiàn)新規(guī)則,直到舊規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)中的基于舊規(guī)則的動(dòng)作 完成為止。
2. 根據(jù)權(quán)利要求1所述的流表更新方法,其中, 當(dāng)基于舊規(guī)則的動(dòng)作完成之后,將舊規(guī)則所涉及的流表項(xiàng)刪除;在所有舊規(guī)則的流表 項(xiàng)成功刪除之后,在新規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)上寫入新規(guī)則的流表項(xiàng),來替換之前寫入 的臨時(shí)流表項(xiàng),在數(shù)據(jù)包按照新規(guī)則的流表項(xiàng)處理之后,刪除所有臨時(shí)流表項(xiàng)。
3. 根據(jù)權(quán)利要求1所述的流表更新方法,其中, 所述網(wǎng)絡(luò)節(jié)點(diǎn)是軟件定義網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點(diǎn)。
4. 根據(jù)權(quán)利要求1所述的流表更新方法,其中, 所述網(wǎng)絡(luò)節(jié)點(diǎn)為交換機(jī),所述舊規(guī)則是舊路徑上的分組轉(zhuǎn)發(fā)規(guī)則,所述新規(guī)則是新路 徑上的分組轉(zhuǎn)發(fā)規(guī)則。
5. 根據(jù)權(quán)利要求4所述的流表更新方法,其中, 所述特定匹配域是分組轉(zhuǎn)發(fā)的源地址域和/或目的地址域。
6. 根據(jù)權(quán)利要求1所述的流表更新方法,其中, 所述特定匹配域中的未使用的地址是預(yù)先設(shè)定的或者是隨機(jī)選取的。
7. 根據(jù)權(quán)利要求1所述的流表更新方法,其中, 將統(tǒng)計(jì)得出的基于舊規(guī)則的流表和基于新規(guī)則的流表中均使用的匹配域中使用程度 最小的匹配域確定為特定匹配域。
8. -種在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中將基于舊規(guī)則的流表更新為基于新規(guī)則的流表的流表更新 裝置,包括: 從基于舊規(guī)則的流表和基于新規(guī)則的流表中均使用的至少一個(gè)匹配域中確定特定匹 配域的單元; 選定特定匹配域中的未使用地址代替該特定匹配域中的原使用地址,來構(gòu)造流表項(xiàng), 作為臨時(shí)流表項(xiàng)的單元;以及 在新規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)的流表的所述特定匹配域中使用由選定的地址構(gòu)造的 臨時(shí)流表項(xiàng),來臨時(shí)實(shí)現(xiàn)新規(guī)則,直到舊規(guī)則所涉及的各網(wǎng)絡(luò)節(jié)點(diǎn)中的基于舊規(guī)則的動(dòng)作 完成為止的單元。
【文檔編號(hào)】H04L12/937GK104052685SQ201310081828
【公開日】2014年9月17日 申請(qǐng)日期:2013年3月14日 優(yōu)先權(quán)日:2013年3月14日
【發(fā)明者】周燁, 李勇, 石穎, 吳娟, 金德鵬 申請(qǐng)人:日立(中國)研究開發(fā)有限公司, 清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1