一種應(yīng)用于sdn的圖形化編程方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明屬于軟件定義網(wǎng)絡(luò)
技術(shù)領(lǐng)域:
,尤其涉及一種應(yīng)用于SDN的圖形化編程方法?!?br>背景技術(shù):
】[0002]本發(fā)明的目的在于降低現(xiàn)有SDN體系中網(wǎng)絡(luò)建設(shè)的難度,降低網(wǎng)絡(luò)從業(yè)的門檻,使軟件定義網(wǎng)絡(luò)真正成為一個(gè)可編程的網(wǎng)絡(luò)。[0003]SDN控制器下發(fā)流表理論上應(yīng)該使用控制器中具體應(yīng)用運(yùn)算出相應(yīng)的轉(zhuǎn)發(fā)規(guī)則,并調(diào)用宿主控制器的應(yīng)用接口下發(fā)。但當(dāng)前的情況在于,SDN尚未有一個(gè)統(tǒng)一并且規(guī)范的北向接口,且自動(dòng)運(yùn)算的算法問題等依然是一個(gè)有待商榷的問題,因此預(yù)計(jì)在很長一段時(shí)間內(nèi),手動(dòng)編輯SDN網(wǎng)絡(luò)的轉(zhuǎn)發(fā)流程將是一個(gè)主流。[0004]而在目前基于Openflow的SDN網(wǎng)絡(luò)中,流表和組表、計(jì)量表等其它功能相結(jié)合后邏輯十分復(fù)雜,導(dǎo)致編輯網(wǎng)絡(luò)繁瑣且易出錯(cuò),因此需要相當(dāng)量的時(shí)間來設(shè)計(jì)、實(shí)施和測(cè)試網(wǎng)絡(luò)。此外,各控制器廠商UI設(shè)計(jì)的不同,可能導(dǎo)致網(wǎng)絡(luò)配置可讀性差,且配置不可移植。即使在網(wǎng)絡(luò)具備一定程度的自動(dòng)運(yùn)算能力后,因安全性、兼容性等因素,在某些場(chǎng)景下,網(wǎng)絡(luò)很大程度上依然依賴于全局的手動(dòng)控制。因此SDN對(duì)網(wǎng)絡(luò)管理人員要求較高,從而提升了網(wǎng)絡(luò)運(yùn)行和維護(hù)的成本。[0005]因此,現(xiàn)有技術(shù)需要一種簡單高效且通用性強(qiáng)的方法來使得網(wǎng)絡(luò)管理人員能夠直觀的修改和配置當(dāng)前網(wǎng)絡(luò),引入一種圖形化的網(wǎng)絡(luò)編程語言使得整個(gè)SDN網(wǎng)絡(luò)成為一個(gè)真正可編程的網(wǎng)絡(luò),挖掘出SDN設(shè)計(jì)的最大價(jià)值?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明實(shí)施例的目的在于提供一種應(yīng)用于SDN的圖形化編程方法,以解決現(xiàn)有技術(shù)的問題。[0007]本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一方面本發(fā)明實(shí)施例提供了一種應(yīng)用于SDN的圖形化編程方法,所述方法包括以下步驟:[0008]根據(jù)收入封包消息獲取網(wǎng)絡(luò)的拓?fù)湫畔?;[0009]結(jié)合所述拓?fù)湫畔⒑徒粨Q機(jī)特性參數(shù)生成網(wǎng)絡(luò)邏輯結(jié)構(gòu);[0010]根據(jù)交換機(jī)信息與網(wǎng)絡(luò)拓?fù)湫畔⑸删W(wǎng)絡(luò)邏輯視圖。[0011]優(yōu)選的,所述網(wǎng)絡(luò)邏輯視圖包括:[0012]—個(gè)或者多個(gè)圖形控制組件,其中,每個(gè)組件對(duì)應(yīng)一族實(shí)現(xiàn)其功能的程序代碼;[0013]其中,所述控制組件根據(jù)交換機(jī)特性分類,交換機(jī)的相關(guān)功能封裝為由一個(gè)或者多個(gè)圖形控制組件封裝而成的形式呈現(xiàn)。[0014]優(yōu)選的,所述方法還包括:[0015]編程所述圖形控制組件所對(duì)應(yīng)的程序代碼;[0016]編譯所述網(wǎng)絡(luò)邏輯視圖所包含的各圖形控制組件所構(gòu)成的程序,得到可執(zhí)行對(duì)象。[0017]優(yōu)選的,所述根據(jù)收入封包消息獲取網(wǎng)絡(luò)的拓?fù)湫畔?,具體包括:[0018]獲取交換機(jī)的packet-1n消息,從所述packet-1n消息中解析出網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。[0019]優(yōu)選的,所述圖形控制組件包括:flow控件、meter控件、group控件、act1n類控件、band類控件、bucket控件、port控件、flowtable控件、metertable控件、grouptable控件、packet統(tǒng)計(jì)控件、byte統(tǒng)計(jì)控件、邏輯與控件、邏輯或控件和邏輯非控件,所述各控件根據(jù)Openflow協(xié)議標(biāo)準(zhǔn)生成。[0020]另一方面,本發(fā)明實(shí)施例還提供了一種應(yīng)用于SDN的圖形化編程系統(tǒng),所述系統(tǒng)包括:可視化編輯界面、可編譯后臺(tái)、資源庫:[0021]所述可視化編輯界面,用于呈現(xiàn)一個(gè)或者多個(gè)圖形控制組件,其中,所述控制組件根據(jù)交換機(jī)特性分類,每個(gè)組件對(duì)應(yīng)一族實(shí)現(xiàn)其功能的程序代碼;[0022]所述資源庫,用于存儲(chǔ)交換機(jī)的相關(guān)功能與所述圖形控制組件的映射關(guān)系,用于根據(jù)所述交換機(jī)的相關(guān)功能參數(shù)生成網(wǎng)絡(luò)邏輯結(jié)構(gòu);還用于存儲(chǔ)所述一個(gè)或者多個(gè)圖形控制組件和對(duì)應(yīng)程序代碼;[0023]可編譯后臺(tái),用于編譯網(wǎng)絡(luò)邏輯結(jié)構(gòu)所包含的程序代碼。[0024]優(yōu)選的,所述圖形控制組件包括flow控件、meter控件、group控件、act1n類控件、band類控件、bucket控件、port控件、flowtable控件、metertable控件、grouptable控件、packet統(tǒng)計(jì)控件、byte統(tǒng)計(jì)控件、邏輯與控件、邏輯或控件和邏輯非控件,所述各控件根據(jù)Openflow協(xié)議標(biāo)準(zhǔn)生成。[0025]優(yōu)選的,所述可視化編輯界面包括兩級(jí)編輯:[0026]第一級(jí)編輯為表的編輯,具體的展不表與表、表與端口之間的關(guān)聯(lián);[0027]第二級(jí)編輯為轉(zhuǎn)發(fā)流程的編輯,具體為表與表之間關(guān)聯(lián)關(guān)系編輯。[0028]本發(fā)明實(shí)施例提供的一種應(yīng)用于SDN的圖形化編程方法的有益效果包括:本發(fā)明所實(shí)現(xiàn)的有益效果為:降低了SDN網(wǎng)絡(luò)控制的難度,使之成為一個(gè)可編程的網(wǎng)絡(luò)?!靖綀D說明】[0029]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0030]圖1為本發(fā)明實(shí)施例提供的一種應(yīng)用于SDN的圖形化編程方法的流程示意圖;[0031]圖2為本發(fā)明實(shí)施例提供的SDN圖形化編程系統(tǒng)的流程示意圖;[0032]圖3為本發(fā)明實(shí)施例提供的圖形化編程界面示意圖;[0033]圖4為本發(fā)明實(shí)施例提供的flow組件的設(shè)計(jì)圖;[0034]圖5為本發(fā)明實(shí)施例提供的group組件的設(shè)計(jì)圖;[0035]圖6為本發(fā)明實(shí)施例提供的meter組件的設(shè)計(jì)圖;[0036]圖7a_圖7f為本發(fā)明實(shí)施例提供的act1n組件的設(shè)計(jì)圖;[0037]圖8為本發(fā)明實(shí)施例提供的bucket組件的設(shè)計(jì)圖;[0038]圖9a_圖9b為本發(fā)明實(shí)施例提供的band組件的設(shè)計(jì)圖;[0039]圖10為本發(fā)明實(shí)施例提供的flowtable組件的設(shè)計(jì)圖;[°04°]圖11為本發(fā)明實(shí)施例提供的grouptable組件的設(shè)計(jì)圖;[0041]圖12為本發(fā)明實(shí)施例提供的metertable組件的設(shè)計(jì)圖;[0042]圖13為本發(fā)明實(shí)施例提供的packet組件的設(shè)計(jì)圖;[0043]圖14為本發(fā)明實(shí)施例提供的byte組件的設(shè)計(jì)圖;[0044]圖15為本發(fā)明實(shí)施例提供的典型L2轉(zhuǎn)發(fā)的程序圖;[0045]圖16為本發(fā)明實(shí)施例提供的典型L3轉(zhuǎn)發(fā)的程序圖;[0046]圖17本發(fā)明實(shí)施例提供的典型L4轉(zhuǎn)發(fā)的程序圖;[0047]圖18a-圖18b本發(fā)明實(shí)施例提供的典型多級(jí)流水線的程序圖;[0048]圖19本發(fā)明實(shí)施例提供的典型組播的程序圖;[0049]圖20本發(fā)明實(shí)施例提供的典型路由聚合的程序圖;[0050]圖21本發(fā)明實(shí)施例提供的典型多徑的程序圖;[0051]圖22本發(fā)明實(shí)施例提供的典型流量工程的程序圖?!揪唧w實(shí)施方式】[0052]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。[0053]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。[0054]實(shí)施例一[0055]如圖1所示為本發(fā)明實(shí)施例提供的一種應(yīng)用于SDN的圖形化編程方法的流程示意圖,所述方法包括以下步驟:[0056]在步驟201中,根據(jù)收入封包消息獲取網(wǎng)絡(luò)的拓?fù)湫畔ⅰ0057]在步驟202中,結(jié)合所述拓?fù)湫畔⒑徒粨Q機(jī)特性參數(shù)生成網(wǎng)絡(luò)邏輯結(jié)構(gòu)。[0058]其中,交換機(jī)特性參數(shù)通過Openflow協(xié)議的feature_desc、port_desc、table_feature消息獲取,具體包括表項(xiàng)容量、接口數(shù)、交換機(jī)各類描述信息。[0059]在步驟203中,根據(jù)交換機(jī)信息與網(wǎng)絡(luò)拓?fù)湫畔⑸删W(wǎng)絡(luò)邏輯視圖。[0060]本發(fā)明所實(shí)現(xiàn)的有益效果為:降低了SDN網(wǎng)絡(luò)控制的難度,使之成為一個(gè)可編程的網(wǎng)絡(luò)。[0061]結(jié)合本發(fā)明實(shí)施例所提出的方法,所述網(wǎng)絡(luò)邏輯視圖在一種具體實(shí)現(xiàn)方式中是由一個(gè)或者多個(gè)圖形控制組件構(gòu)成,并且,所述一個(gè)或者多個(gè)圖形控制組件之間具有特定的關(guān)聯(lián)關(guān)系。[0062]其中,每個(gè)組件對(duì)應(yīng)一族實(shí)現(xiàn)其功能的程序代碼;所述控制組件根據(jù)交換機(jī)特性分類;并且,交換機(jī)的相關(guān)功能封裝為由一個(gè)或者多個(gè)圖形控制組件封裝而成的形式呈現(xiàn)。[0063]結(jié)合本發(fā)明實(shí)施例所述的方法,除了上述步驟201-步驟203以外,作為本實(shí)施例一的延續(xù)實(shí)現(xiàn)功能,還可以包括以下執(zhí)行步驟:[0064]在步驟204中,編程所述圖形控制組件所對(duì)應(yīng)的程序代碼。[0065]在步驟205中,編譯所述網(wǎng)絡(luò)邏輯視圖所包含的各圖形控制組件所構(gòu)成的程序,得到可執(zhí)行對(duì)象。[0066]可選的,在得到所述可執(zhí)行對(duì)象后,還可以進(jìn)一步執(zhí)行所述可執(zhí)行對(duì)象;或者,還可以進(jìn)一步的通過編譯所述網(wǎng)絡(luò)邏輯視圖所包含的各圖形控制組件所構(gòu)成的程序,生成一個(gè)模擬環(huán)境,用于與所架設(shè)的環(huán)境進(jìn)行模擬測(cè)試。[0067]結(jié)合本發(fā)明實(shí)施例,在步驟201所執(zhí)行的根據(jù)收入封包消息獲取網(wǎng)絡(luò)的拓?fù)湫畔?,具體可以通過以下方法完成:[0068]獲取交換機(jī)的packet-1n消息,從所述packet-1n消息中解析出網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。[0069]進(jìn)一步的,本發(fā)明實(shí)施例還基于Openflow協(xié)議標(biāo)準(zhǔn)提供了幾種具體的控制組件的分類,包括:flow控件、meter控件、group控件、act1n類控件、band類控件、bucket控件、port控件、flowtable控件、metertable控件、grouptable控件、packet統(tǒng)計(jì)控件、byte統(tǒng)計(jì)控件、邏輯與控件當(dāng)前第1頁1 2 3