日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

命名數(shù)據(jù)網(wǎng)絡(luò)中的軟件定義網(wǎng)絡(luò)控制器系統(tǒng)及其方法

文檔序號(hào):7806145閱讀:313來(lái)源:國(guó)知局
命名數(shù)據(jù)網(wǎng)絡(luò)中的軟件定義網(wǎng)絡(luò)控制器系統(tǒng)及其方法
【專利摘要】本發(fā)明公開(kāi)了一種命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng)及其方法,該系統(tǒng)將命名數(shù)據(jù)網(wǎng)絡(luò)的控制平面和數(shù)據(jù)平面分離,該軟件定義網(wǎng)絡(luò)控制器系統(tǒng)包括:存儲(chǔ)模塊,用于存儲(chǔ)數(shù)據(jù)平面,維護(hù)該數(shù)據(jù)平面的拓?fù)浣Y(jié)構(gòu),規(guī)則表,推送表和路由表四個(gè)數(shù)據(jù)結(jié)構(gòu),該控制平面利用該些數(shù)據(jù)結(jié)構(gòu)控制命名數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流的轉(zhuǎn)發(fā);通信模塊,利用自定義的通信格式建立該控制平面的軟件定義網(wǎng)絡(luò)控制器與該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備之間的連接并維護(hù)該連接,接收并處理該命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)流;功能模塊API,用于將該存儲(chǔ)模塊功能封裝,應(yīng)用層利用該功能模塊API操作存儲(chǔ)模塊,以控制數(shù)據(jù)流走向。
【專利說(shuō)明】命名數(shù)據(jù)網(wǎng)絡(luò)中的軟件定義網(wǎng)絡(luò)控制器系統(tǒng)及其方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及命名數(shù)據(jù)網(wǎng)絡(luò),尤其涉及一種用于命名數(shù)據(jù)網(wǎng)絡(luò)中的軟件定義網(wǎng)絡(luò)控 制器系統(tǒng)及其方法。

【背景技術(shù)】
[0002] 信息中心網(wǎng)絡(luò)(Information-Centric Networking,ICN)是一類新型互聯(lián)網(wǎng)體系 結(jié)構(gòu)模型,旨在從根本上解決當(dāng)前互聯(lián)網(wǎng)面臨的流量可擴(kuò)展性問(wèn)題、內(nèi)容安全性問(wèn)題和節(jié) 點(diǎn)的移動(dòng)性問(wèn)題。其中命名數(shù)據(jù)網(wǎng)絡(luò)(Named Data Networking,NDN)是其中最具代表的一 個(gè)網(wǎng)絡(luò)模型,NDN體系結(jié)構(gòu)模型的細(xì)腰不再是網(wǎng)絡(luò)地址,而是帶名字的數(shù)據(jù)。在NDN數(shù)據(jù)網(wǎng) 絡(luò)中,每個(gè)內(nèi)容被賦予一個(gè)獨(dú)一無(wú)二的名字,用戶獲取內(nèi)容時(shí)不需要事先查詢內(nèi)容所在的 位置,而是直接用該內(nèi)容的名字表達(dá)。NDN數(shù)據(jù)網(wǎng)絡(luò)的最大優(yōu)勢(shì)就是可以針對(duì)內(nèi)容進(jìn)行緩 存,從而極大增加信息傳輸?shù)男?;同時(shí),針對(duì)內(nèi)容本身進(jìn)行安全認(rèn)證,比傳統(tǒng)網(wǎng)絡(luò)更加安 全。
[0003] 與TCP/IP網(wǎng)絡(luò)相比,盡管命名數(shù)據(jù)網(wǎng)絡(luò)體系結(jié)構(gòu)有著巨大的優(yōu)勢(shì),但命名數(shù)據(jù)網(wǎng) 絡(luò)系統(tǒng)的部署還處于初級(jí)階段,針對(duì)實(shí)際場(chǎng)景的部署缺少成熟方案,尤其是在移動(dòng)網(wǎng)絡(luò)中 的轉(zhuǎn)發(fā)策略還有待研究。其中一個(gè)重要的原因是由于NDN體系結(jié)構(gòu)的數(shù)據(jù)平面和控制平面 高度耦合,針對(duì)控制平面的轉(zhuǎn)發(fā)策略研究等工作很難直接應(yīng)用到NDN網(wǎng)絡(luò)中。
[0004] 如果將數(shù)據(jù)平面和控制平面分離開(kāi)來(lái),一方面能夠獨(dú)立的研究數(shù)據(jù)平面的高效存 儲(chǔ)和快速轉(zhuǎn)發(fā),同時(shí)能夠研究靈活的控制策略;另一方面,能夠促進(jìn)命名數(shù)據(jù)網(wǎng)絡(luò)增量式、 迭代創(chuàng)新的部署。因此,為解決上述問(wèn)題,本發(fā)明引入基于命名數(shù)據(jù)網(wǎng)絡(luò)的軟件定義網(wǎng)絡(luò)技 術(shù),軟件定義網(wǎng)絡(luò)(Software Defined Networking,SDN)技術(shù)通過(guò)將數(shù)據(jù)平面與控制平面分 離,并集中維護(hù)網(wǎng)絡(luò)的全局視圖,逐包的管理數(shù)據(jù)流的走向,從而實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)的管理和 控制。數(shù)據(jù)平面與控制平面分離的一個(gè)好處是,對(duì)于上層管控應(yīng)用來(lái)說(shuō),下層的物理設(shè)備就 可以抽象出來(lái),可以將整個(gè)網(wǎng)絡(luò)看成是邏輯或者虛擬的一個(gè)整體,從而可以更好地對(duì)整個(gè) 網(wǎng)絡(luò)進(jìn)行配置和管理。如圖1所示,軟件定義網(wǎng)絡(luò)的整個(gè)體系結(jié)構(gòu),軟件定義網(wǎng)絡(luò)控制器一 方面抽象了底層網(wǎng)絡(luò)設(shè)備的具體細(xì)節(jié),同時(shí)還為上層應(yīng)用提供了統(tǒng)一的管理視圖和編程接 口。這樣,基于網(wǎng)絡(luò)操作系統(tǒng)這個(gè)平臺(tái),用戶可以開(kāi)發(fā)各種應(yīng)用程序,通過(guò)軟件來(lái)定義邏輯 上的網(wǎng)絡(luò)拓?fù)?,以滿足對(duì)網(wǎng)絡(luò)資源的不同需求,而無(wú)需關(guān)心底層網(wǎng)絡(luò)的物理拓?fù)浣Y(jié)構(gòu)。
[0005] 國(guó)內(nèi)外科研院所以及企業(yè)對(duì)信息中心網(wǎng)絡(luò)進(jìn)行大量研究,國(guó)內(nèi)唐超超在其畢業(yè)論 文"基于SDN的信息網(wǎng)絡(luò)的設(shè)計(jì)與實(shí)現(xiàn)"中把SDN思想用到信息中心網(wǎng)絡(luò),它主要側(cè)重是信 息網(wǎng)絡(luò),SDN的加入只是增加了網(wǎng)絡(luò)的控制性,雖然都屬于信息中心網(wǎng)絡(luò),但是在底層傳輸 上該文使用IP地址,而本發(fā)明SDN是設(shè)計(jì)在一個(gè)"變革式"的網(wǎng)絡(luò)中,用命名的數(shù)據(jù)進(jìn)行數(shù) 據(jù)的請(qǐng)求、尋找以及傳輸,完全摒棄TCP/IP技術(shù),并且本發(fā)明詳細(xì)的介紹SDN的設(shè)計(jì)及實(shí)現(xiàn) 方法,體現(xiàn)SDN控制器能使整個(gè)網(wǎng)絡(luò)變得更加可控更加智能的思想。


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

[0006] 為解決上述問(wèn)題,本發(fā)明提供了一種命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng)及 方法,目的是在于,將數(shù)據(jù)平面和控制平面分離開(kāi)來(lái),一方面能夠獨(dú)立的研究數(shù)據(jù)平面的高 效存儲(chǔ)和快速轉(zhuǎn)發(fā),同時(shí)能夠研究靈活的控制策略。
[0007] 本發(fā)明公開(kāi)了一種命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,用于 將該控制平面轉(zhuǎn)移到軟件定義網(wǎng)絡(luò)控制器,將該數(shù)據(jù)平面抽象存儲(chǔ)于該控制平面,該控制 平面向該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備發(fā)送指令,該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備接收該控制平面的指令并 進(jìn)行相應(yīng)的轉(zhuǎn)發(fā);
[0008] 該軟件定義網(wǎng)絡(luò)控制器包括存儲(chǔ)模塊、通信模塊及功能模塊API ;
[0009] 該存儲(chǔ)模塊,用于存儲(chǔ)數(shù)據(jù)平面,維護(hù)該數(shù)據(jù)平面的拓?fù)浣Y(jié)構(gòu),規(guī)則表,推送表和 路由表四個(gè)數(shù)據(jù)結(jié)構(gòu),該控制平面利用該些數(shù)據(jù)結(jié)構(gòu)控制命名數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流的轉(zhuǎn)發(fā); 以及
[0010] 該通信模塊,利用自定義的通信格式建立該控制平面的軟件定義網(wǎng)絡(luò)控制器與該 數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備之間的連接并維護(hù)該連接,接收并處理該命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù) 流;以及
[0011] 功能模塊API,用于將該存儲(chǔ)模塊功能封裝,應(yīng)用層利用該功能模塊API操作該存 儲(chǔ)模塊,以控制數(shù)據(jù)流走向。
[0012] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,該拓?fù)浣Y(jié)構(gòu),用于設(shè) 置數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)路由器標(biāo)識(shí),端口個(gè)數(shù),網(wǎng)絡(luò)設(shè)備提供的數(shù)據(jù)的名字,相鄰節(jié) 點(diǎn)的信息對(duì);以及
[0013] 該規(guī)則表,用于存儲(chǔ)該拓?fù)浣Y(jié)構(gòu)中數(shù)據(jù)的名字與其所對(duì)應(yīng)的規(guī)則,該數(shù)據(jù)的名字 根據(jù)不同字段命名的,使用前綴樹(shù)數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ),當(dāng)用戶請(qǐng)求查詢?cè)摂?shù)據(jù)的名字時(shí),該請(qǐng) 求信息先查詢?cè)撘?guī)則類,然后調(diào)用相應(yīng)的數(shù)據(jù)流規(guī)則以實(shí)現(xiàn)不同的負(fù)載策略;以及
[0014] 該推送表,用于存儲(chǔ)該數(shù)據(jù)的名字對(duì)應(yīng)的該數(shù)據(jù)提供者路由器標(biāo)識(shí),采用該前綴 樹(shù)結(jié)構(gòu)存儲(chǔ)該推送表,利用該推送表存儲(chǔ)的不同該數(shù)據(jù)的名字對(duì)應(yīng)得到該數(shù)據(jù)提供者路由 器標(biāo)識(shí),調(diào)用路由表找到下一個(gè)地址跳轉(zhuǎn)端口;以及
[0015] 該路由表,用于存儲(chǔ)該拓?fù)浣Y(jié)構(gòu)中計(jì)算出的數(shù)據(jù)提供者路由器標(biāo)識(shí)到達(dá)其他數(shù)據(jù) 提供者路由器標(biāo)識(shí)的代價(jià)和轉(zhuǎn)發(fā)端口,接收該推送表返回的該數(shù)據(jù)提供者路由器標(biāo)識(shí),返 回下一個(gè)地址跳轉(zhuǎn)端口。
[0016] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,該規(guī)則表還包括:
[0017] 該規(guī)則類包括最優(yōu)調(diào)度策略。通過(guò)提取該路由表數(shù)據(jù)結(jié)構(gòu)信息,獲取到達(dá)該數(shù)據(jù) 提供者路由器標(biāo)識(shí)的代價(jià),并選擇最小代價(jià)的該數(shù)據(jù)提供者路由器標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā);以及
[0018] 輪詢調(diào)度策略,用于在該推送表每個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)一個(gè)輪詢調(diào)度標(biāo)識(shí)位,當(dāng)有數(shù) 據(jù)請(qǐng)求時(shí),就根據(jù)該輪詢調(diào)度標(biāo)識(shí)位選擇對(duì)應(yīng)的該數(shù)據(jù)提供者路由器標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā);以及
[0019] 隨機(jī)調(diào)度策略,根據(jù)本身生成的隨機(jī)數(shù)選擇相應(yīng)的該數(shù)據(jù)提供者路由器標(biāo)識(shí)進(jìn)行 轉(zhuǎn)發(fā);以及丟棄策略,用于禁止某個(gè)數(shù)據(jù)在網(wǎng)絡(luò)中傳輸,當(dāng)接收到該數(shù)據(jù)的請(qǐng)求,就將該數(shù) 據(jù)請(qǐng)求丟棄;以及
[0020] 緩存策略,用于決定哪個(gè)數(shù)據(jù)需要緩存;以及推送操作,實(shí)際操作與最優(yōu)調(diào)度相 同。
[0021] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,所述通信模塊還包 括:
[0022] 通信流程模塊,當(dāng)該命名數(shù)據(jù)網(wǎng)絡(luò)有連接請(qǐng)求時(shí),主線程新開(kāi)通一組通道維護(hù)該 連接并監(jiān)聽(tīng)整個(gè)連接,當(dāng)主線程接收到消息時(shí),先判斷該信息是命名數(shù)據(jù)網(wǎng)絡(luò)的哪一類信 息,然后調(diào)用相應(yīng)的處理函數(shù),如果接收到的是通信信息,該主線程啟動(dòng)一個(gè)線程,并將相 應(yīng)的處理和返回的任務(wù)交給該線程處理,同時(shí)該主線程重新等待下一個(gè)命名數(shù)據(jù)網(wǎng)絡(luò)信 肩、。
[0023] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,該功能模塊API還 包括:
[0024] 服務(wù)遷移支持模塊,數(shù)據(jù)提供者變更地址后,用于與該軟件定義網(wǎng)絡(luò)控制器交互, 該軟件定義網(wǎng)絡(luò)控制器更改本身的數(shù)據(jù)庫(kù)并下發(fā)更改后的路徑來(lái)實(shí)現(xiàn)斷開(kāi)重連;
[0025] 協(xié)同緩存模塊,軟件定義網(wǎng)絡(luò)控制器完成各節(jié)點(diǎn)信息收集和緩存方案計(jì)算,該軟 件定義網(wǎng)絡(luò)控制器將計(jì)算出的緩存方案下發(fā)給需要緩存的節(jié)點(diǎn),通過(guò)分布式哈希表將該數(shù) 據(jù)請(qǐng)求和多個(gè)緩存副本相連,當(dāng)該緩存節(jié)點(diǎn)無(wú)法正常工作通過(guò)分布式哈希表從其他節(jié)點(diǎn)中 獲得該數(shù)據(jù)。
[0026] 本發(fā)明公開(kāi)了一種命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,其特征在于,包括
[0027] 步驟1將命名數(shù)據(jù)網(wǎng)絡(luò)中功能緊密耦合的控制平面和數(shù)據(jù)平面分離,將該控制平 面轉(zhuǎn)移到軟件定義網(wǎng)絡(luò)控制器;
[0028] 步驟2將該數(shù)據(jù)平面抽象存儲(chǔ)于該控制平面,該控制平面向該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè) 備發(fā)送指令;
[0029] 步驟3該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備接收該控制平面的指令并進(jìn)行相應(yīng)的轉(zhuǎn)發(fā);
[0030] 該軟件定義網(wǎng)絡(luò)控制器包括如下步驟;
[0031] 步驟11,將數(shù)據(jù)平面存儲(chǔ)起來(lái),維護(hù)該數(shù)據(jù)平面的拓?fù)浣Y(jié)構(gòu),規(guī)則表,推送表和路 由表,該控制平面利用該些數(shù)據(jù)結(jié)構(gòu)控制命名數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流的轉(zhuǎn)發(fā);
[0032] 步驟12,利用自定義的通信格式建立該控制平面的軟件定義網(wǎng)絡(luò)控制器與該數(shù)據(jù) 平面的網(wǎng)絡(luò)設(shè)備之間的連接并維護(hù)該連接,接收并處理該命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)流;
[0033] 步驟13,用于將該存儲(chǔ)模塊功能封裝,應(yīng)用層利用該功能模塊API操作該存儲(chǔ)模 塊,以控制數(shù)據(jù)流走向。
[0034] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,其特征在于,該步驟11還包括:
[0035] 步驟111該拓?fù)浣Y(jié)構(gòu)設(shè)置數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括存儲(chǔ)路由器標(biāo)識(shí),端口個(gè)數(shù), 網(wǎng)絡(luò)設(shè)備提供的數(shù)據(jù)的名字,相鄰節(jié)點(diǎn)的信息對(duì);
[0036] 步驟112該規(guī)則表將該拓?fù)浣Y(jié)構(gòu)中該數(shù)據(jù)的名字與其所對(duì)應(yīng)的規(guī)則存儲(chǔ)起來(lái),查 詢?cè)撘?guī)則表提供的數(shù)據(jù)流規(guī)則,然后調(diào)用相應(yīng)的規(guī)則以實(shí)現(xiàn)不同的負(fù)載策略;
[0037] 步驟113,該推送表將該數(shù)據(jù)的名字對(duì)應(yīng)的數(shù)據(jù)提供者路由器標(biāo)識(shí)存儲(chǔ)起來(lái),采用 前綴樹(shù)結(jié)構(gòu)存儲(chǔ)推送表,利用該推送表存儲(chǔ)的不同數(shù)據(jù)的名字對(duì)應(yīng)得到該數(shù)據(jù)提供者路由 器標(biāo)識(shí),并通過(guò)調(diào)用路由表找到下一個(gè)地址跳轉(zhuǎn)端口;
[0038] 步驟114,該路由表存儲(chǔ)拓?fù)浣Y(jié)構(gòu)中計(jì)算出的數(shù)據(jù)提供者路由器標(biāo)識(shí)到達(dá)其他數(shù) 據(jù)提供者路由器標(biāo)識(shí)的代價(jià)和轉(zhuǎn)發(fā)端口,接收該推送表返回的該數(shù)據(jù)提供者路由器標(biāo)識(shí), 提供下一個(gè)地址跳轉(zhuǎn)端口。
[0039] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,其特征在于,該步驟12還包括:
[0040] 步驟121,主線程收到該命名數(shù)據(jù)網(wǎng)絡(luò)有連接請(qǐng)求時(shí),主線程新開(kāi)通一組通道維護(hù) 該連接并監(jiān)聽(tīng)整個(gè)連接,當(dāng)主線程接收到消息時(shí),先判斷該信息是命名數(shù)據(jù)網(wǎng)絡(luò)的哪一類 信息,然后調(diào)用相應(yīng)的處理函數(shù),如果接收到的是通信信息,該主線程啟動(dòng)一個(gè)線程,并將 相應(yīng)的處理和返回的任務(wù)交給該線程處理,同時(shí)該主線程重新等待下一個(gè)命名數(shù)據(jù)網(wǎng)絡(luò)信 肩、。
[0041] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,其特征在于,該步驟13還包括:
[0042] 服務(wù)遷移支持步驟,數(shù)據(jù)提供者變更地址后,服務(wù)遷移支持模塊與該軟件定義網(wǎng) 絡(luò)控制器交互,該軟件定義網(wǎng)絡(luò)控制器更改本身的數(shù)據(jù)庫(kù)并下發(fā)更改后的路徑來(lái)實(shí)現(xiàn)斷開(kāi) 重連;
[0043] 協(xié)同緩存步驟,軟件定義網(wǎng)絡(luò)控制器完成各節(jié)點(diǎn)信息收集和緩存方案計(jì)算,該軟 件定義網(wǎng)絡(luò)控制器將計(jì)算出的緩存方案下發(fā)給需要緩存的節(jié)點(diǎn),通過(guò)分布式哈希表將該數(shù) 據(jù)請(qǐng)求和多個(gè)緩存副本相連,當(dāng)該緩存節(jié)點(diǎn)無(wú)法正常工作通過(guò)分布式哈希表從其他節(jié)點(diǎn)中 獲得該數(shù)據(jù)。
[0044] 由以上方案可知,本發(fā)明有益效果是將控制平面從數(shù)據(jù)平面中分離出來(lái),將下層 的物理設(shè)備抽象成邏輯上的一個(gè)整體,同時(shí)實(shí)現(xiàn)了針對(duì)命名數(shù)據(jù)網(wǎng)絡(luò)的軟件定義網(wǎng)絡(luò)控制 器。軟件定義網(wǎng)絡(luò)控制器維護(hù)命名數(shù)據(jù)網(wǎng)絡(luò)的全局視圖,通過(guò)與命名數(shù)據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)通信決 定數(shù)據(jù)流的處理流程和走向,同時(shí)為管控應(yīng)用程序提供統(tǒng)一的接口。軟件定義網(wǎng)絡(luò)控制器 同時(shí)解放了節(jié)點(diǎn)的數(shù)據(jù)平面和控制平面,數(shù)據(jù)平面部分專注于提高吞吐性能,控制平面部 分專注于實(shí)現(xiàn)更靈活的管控策略。從而促進(jìn)了命名數(shù)據(jù)網(wǎng)絡(luò)網(wǎng)絡(luò)的創(chuàng)新和增量式部署。

【專利附圖】

【附圖說(shuō)明】
[0045] 圖1為軟件定義網(wǎng)絡(luò)體系結(jié)構(gòu)圖
[0046] 圖2為命名數(shù)據(jù)網(wǎng)絡(luò)協(xié)議棧結(jié)構(gòu)
[0047] 圖3為拓?fù)浣Y(jié)構(gòu)圖意圖
[0048] 圖4為規(guī)則表示意圖
[0049] 圖5為規(guī)則表前綴樹(shù)存儲(chǔ)結(jié)構(gòu)
[0050] 圖6為推送表示意圖
[0051] 圖7為推送表前綴樹(shù)存儲(chǔ)結(jié)構(gòu)
[0052] 圖8為路由表拓?fù)鋱D
[0053] 圖9為路由表不意圖
[0054] 圖10為通信模塊處理流程圖
[0055] 圖11為通信格式
[0056] 圖12功能模塊API
[0057] 其中,附圖標(biāo)記:
[0058] R2, R3, R4, R5, R6, R7數(shù)據(jù)提供者路由器標(biāo)識(shí)

【具體實(shí)施方式】
[0059] 下面給出本發(fā)明的具體實(shí)施例,結(jié)合附圖對(duì)本發(fā)明做出了詳細(xì)的描述。本發(fā)明通 過(guò)使用軟件定義網(wǎng)絡(luò)控制器將控制平面從數(shù)據(jù)平面中分離出來(lái),簡(jiǎn)化了命名數(shù)據(jù)網(wǎng)絡(luò)體系 結(jié)構(gòu)的管理和控制,加快了命名數(shù)據(jù)網(wǎng)絡(luò)體系結(jié)構(gòu)的部署和測(cè)試。
[0060] 本發(fā)明針對(duì)命名數(shù)據(jù)網(wǎng)絡(luò)中SDN控制器系統(tǒng)包括,用于將該控制平面轉(zhuǎn)移到軟件 定義網(wǎng)絡(luò)控制器,將該數(shù)據(jù)平面抽象存儲(chǔ)于該控制平面,該控制平面向該數(shù)據(jù)平面的網(wǎng)絡(luò) 設(shè)備發(fā)送指令,該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備接收該控制平面的指令并進(jìn)行相應(yīng)的轉(zhuǎn)發(fā);該軟件 定義網(wǎng)絡(luò)控制器包括存儲(chǔ)模塊、通信模塊及功能模塊API如圖2所示;
[0061] 該存儲(chǔ)模塊,是整個(gè)軟件定義網(wǎng)絡(luò)控制器的基礎(chǔ),用于存儲(chǔ)該數(shù)據(jù)平面,維護(hù)該數(shù) 據(jù)平面的拓?fù)浣Y(jié)構(gòu),規(guī)則表,推送表和路由表四個(gè)數(shù)據(jù)結(jié)構(gòu),該些數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)平面轉(zhuǎn)發(fā) 的基礎(chǔ),該控制平面利用該些數(shù)據(jù)結(jié)構(gòu)控制命名數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流的轉(zhuǎn)發(fā);以及
[0062] 該通信模塊,利用自定義的通信格式建立該控制平面的軟件定義網(wǎng)絡(luò)控制器與該 數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備之間的連接并維護(hù)該連接,接收并處理該命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù) 流;以及
[0063] 功能模塊API,用于將該存儲(chǔ)模塊功能封裝,應(yīng)用層利用該功能模塊API操作該存 儲(chǔ)模塊,以控制數(shù)據(jù)流走向。
[0064] 所述的一種軟件定義網(wǎng)絡(luò)控制器系統(tǒng),所述的存儲(chǔ)模塊還包括:
[0065] 拓?fù)浣Y(jié)構(gòu),用于設(shè)置數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)提供者路由器標(biāo)識(shí),端口個(gè) 數(shù),網(wǎng)絡(luò)設(shè)備所提供的數(shù)據(jù)的名字,相鄰節(jié)點(diǎn)的信息對(duì),該拓?fù)浣Y(jié)構(gòu)利用某種算法例如最短 路徑算法計(jì)算數(shù)據(jù)提供者路由器標(biāo)識(shí)到達(dá)其他數(shù)據(jù)提供者路由器標(biāo)識(shí)的代價(jià)及轉(zhuǎn)發(fā)端口, 并把計(jì)算出的結(jié)果存儲(chǔ)在路由表的數(shù)據(jù)結(jié)構(gòu)中;圖3為拓?fù)浣Y(jié)構(gòu)示意圖,在拓?fù)浣Y(jié)構(gòu)中存 儲(chǔ)了一組Router數(shù)據(jù)類型,拓?fù)浣Y(jié)構(gòu)中存儲(chǔ)著控制平面網(wǎng)絡(luò)設(shè)備的拓?fù)鋱D,NamelD中存儲(chǔ) 著數(shù)據(jù)提供者路由器標(biāo)識(shí);NumofPort存儲(chǔ)著端口的個(gè)數(shù);DataName存儲(chǔ)著該網(wǎng)絡(luò)設(shè)備所 提供的數(shù)據(jù)名稱;Link存儲(chǔ)著相鄰節(jié)點(diǎn)的信息對(duì),拓?fù)浣Y(jié)構(gòu)是規(guī)則表、推送表和路由表決 策的基礎(chǔ)。
[0066] 規(guī)則表,用于存儲(chǔ)該拓?fù)浣Y(jié)構(gòu)中該數(shù)據(jù)的名字與其所對(duì)應(yīng)的規(guī)則,該數(shù)據(jù)的名字 根據(jù)不同字段命名的,使用前綴樹(shù)數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ),當(dāng)用戶請(qǐng)求查詢?cè)摂?shù)據(jù)的名字時(shí),請(qǐng)求 信息會(huì)查詢?cè)撘?guī)則類,然后調(diào)用相應(yīng)的規(guī)則以實(shí)現(xiàn)不同的負(fù)載策略;如圖4所示,該規(guī)則表 存儲(chǔ)了不同的數(shù)據(jù)的名字對(duì)應(yīng)的規(guī)則類,該規(guī)則類里面定義了所有可能的規(guī)則,用于實(shí)現(xiàn) 不同的負(fù)載策略,規(guī)則表存儲(chǔ)著不同數(shù)據(jù)所對(duì)應(yīng)的不同的規(guī)則,每一種規(guī)則對(duì)應(yīng)一種處理 方式,例如:當(dāng)某個(gè)"用戶"請(qǐng)求data, google, gmail數(shù)據(jù)時(shí),他的請(qǐng)求信息會(huì)通過(guò)best策略 (最優(yōu)路徑或者說(shuō)最小代價(jià))來(lái)找到數(shù)據(jù)提供者來(lái)獲得數(shù)據(jù);如圖5所示,是規(guī)則表前綴樹(shù) 存儲(chǔ)結(jié)構(gòu)的示意圖,規(guī)則表中維護(hù)了一個(gè)默認(rèn)規(guī)則defaultRule和一組不同數(shù)據(jù)對(duì)應(yīng)的規(guī) 貝1J,當(dāng)規(guī)則表中沒(méi)有找到對(duì)應(yīng)的數(shù)據(jù)時(shí)就返回defaultRule的值。而其中的規(guī)則類(Action 類)是一個(gè)枚舉類型,在它里面定義了所有可能的規(guī)則,不同的規(guī)則對(duì)應(yīng)著不同操作。
[0067] 推送表,用于存儲(chǔ)所述的數(shù)據(jù)的名字對(duì)應(yīng)的數(shù)據(jù)提供者路由器標(biāo)識(shí),采用前綴樹(shù) 結(jié)構(gòu)存儲(chǔ)推送表,利用推送表存儲(chǔ)的不同數(shù)據(jù)的名字對(duì)應(yīng)得數(shù)據(jù)提供者路由器標(biāo)識(shí)通過(guò)調(diào) 用路由表找到下一個(gè)地址跳轉(zhuǎn)端口;如圖6和圖7所示在推送表中存儲(chǔ)了不同的數(shù)據(jù)提供 者路由器標(biāo)識(shí),即R2, R3, R4, R5, R6, R7等,同一個(gè)數(shù)據(jù)的名字可以有多個(gè)數(shù)據(jù)提供者路由 器標(biāo)識(shí),如果用戶想找data, google, gmail這個(gè)數(shù)據(jù)的名字,查詢推送表可知該數(shù)據(jù)的名 字有R2、R6、R7三個(gè)數(shù)據(jù)提供者路由器標(biāo)識(shí),但是最終去哪一個(gè)網(wǎng)絡(luò)設(shè)備找,就要查詢規(guī)則 表中相應(yīng)的規(guī)則。該規(guī)則類存儲(chǔ)最優(yōu)調(diào)度策略,根據(jù)提取路由表數(shù)據(jù)結(jié)構(gòu)信息,獲取到達(dá)每 個(gè)數(shù)據(jù)提供者路由器標(biāo)識(shí)的代價(jià),并選擇最小代價(jià)的數(shù)據(jù)提供者標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā);以及 [0068] 輪詢調(diào)度策略,用于在推送表每個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)一個(gè)輪詢調(diào)度標(biāo)識(shí)位,如果有數(shù) 據(jù)請(qǐng)求時(shí),就會(huì)根據(jù)所述輪詢調(diào)度標(biāo)識(shí)位選擇對(duì)應(yīng)的數(shù)據(jù)提供者的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā);以及隨 機(jī)調(diào)度策略,根據(jù)本身生成的隨機(jī)數(shù)選擇相應(yīng)的數(shù)據(jù)提供者的標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā);以及丟棄策 略,禁止該數(shù)據(jù)在網(wǎng)絡(luò)中傳輸,一旦接收到該數(shù)據(jù)的請(qǐng)求,就將這個(gè)數(shù)據(jù)請(qǐng)求丟棄;以及緩 存策略,用于決定哪個(gè)數(shù)據(jù)需要緩存;以及推送操作,實(shí)際操作中與最優(yōu)調(diào)度相同。
[0069] 路由表,用于存儲(chǔ)該拓?fù)浣Y(jié)構(gòu)中計(jì)算出的數(shù)據(jù)提供者路由器標(biāo)識(shí)到達(dá)其他數(shù)據(jù)提 供者路由器標(biāo)識(shí)的代價(jià)和轉(zhuǎn)發(fā)端口,接收該推送表返回的該數(shù)據(jù)提供者路由器標(biāo)識(shí),提供 下一個(gè)地址跳轉(zhuǎn)端口。路由表中存儲(chǔ)著路由信息,如圖9所示,sendRouterlD是發(fā)送方路 由標(biāo)識(shí),:receiveRouterlD是接收方路由標(biāo)識(shí),node存儲(chǔ)著〈轉(zhuǎn)發(fā)端口,相應(yīng)代價(jià)〉值,如圖 8所示,R2到R3轉(zhuǎn)發(fā)端口為1,代價(jià)為25,R1想給R2發(fā)送信息,那么它要從1端口發(fā)出,代 價(jià)是10。
[0070] 所述軟件定義網(wǎng)絡(luò)控制器系統(tǒng),所述的通信模塊還包括:
[0071] 高并發(fā)支持模塊,如圖10所示,使用多線程處理模式,一個(gè)線程處理一個(gè)消息,并 讓一組通道維護(hù)所有連接,并監(jiān)聽(tīng)整個(gè)所述連接;當(dāng)命名數(shù)據(jù)網(wǎng)絡(luò)協(xié)議棧有連接請(qǐng)求時(shí),主 線程新開(kāi)通一組通道維護(hù)該連接,若發(fā)送通信消息時(shí),主線程啟動(dòng)一個(gè)線程,并將相應(yīng)的處 理和返回的任務(wù)交給該線程處理,同時(shí)主線程重新等待下一個(gè)命名數(shù)據(jù)網(wǎng)絡(luò)協(xié)議棧信息;
[0072] 通信處理流程模塊,接收命名數(shù)據(jù)網(wǎng)絡(luò)協(xié)議棧消息時(shí),先要判斷是命名數(shù)據(jù)網(wǎng)絡(luò) 協(xié)議棧的哪一類發(fā)來(lái)的消息,若主進(jìn)程判斷是路由器發(fā)來(lái)的消息后,先查詢規(guī)則表,如果 所述規(guī)則表返回值是DROP,就立即給命名數(shù)據(jù)網(wǎng)絡(luò)協(xié)議棧返回信息;如果所述規(guī)則表返回 DROP值之外其他值,所述主進(jìn)程接著查詢推送表,并將查詢到的一組數(shù)據(jù)提供者路由器標(biāo) 識(shí)緩存起來(lái),根據(jù)規(guī)則表中不同的規(guī)則調(diào)用相應(yīng)的函數(shù)從中選擇一個(gè)"最合適"的數(shù)據(jù)提供 者路由器標(biāo)識(shí),然后查詢路由表,查找到該數(shù)據(jù)提供者路由器標(biāo)識(shí)的下一跳地址,最后將相 應(yīng)的規(guī)則和下一條地址返回給命名數(shù)據(jù)網(wǎng)絡(luò)協(xié)議棧;
[0073] 通信格式定義模塊,定義通信平面和數(shù)據(jù)平面通信的消息格式,如圖11所示,控 制平面和數(shù)據(jù)平面的消息格式,如下:
[0074] 消息類型標(biāo)識(shí)(type),整型,是枚舉類型,包含了所有可能的消息格式,ERROR是 當(dāng)通信出現(xiàn)異常時(shí)的消息格式,當(dāng)接收該格式的消息時(shí),軟件定義網(wǎng)絡(luò)控制器就要中斷相 應(yīng)的連接;
[0075] 本地路由標(biāo)識(shí),32位,字符串,用于唯一標(biāo)示目的路由器;
[0076] 數(shù)據(jù)名長(zhǎng)度:4位,整型,用于存儲(chǔ)下一個(gè)字段服務(wù)名稱的長(zhǎng)度;
[0077] 數(shù)據(jù)名稱:可變位數(shù),字符串,用于存儲(chǔ)數(shù)據(jù)名稱
[0078]目的路由標(biāo)識(shí):32位,字符串,用于唯一的標(biāo)識(shí)目的路由器。
[0079] NLPM(Network Layer Packet Message)表不網(wǎng)絡(luò)層消息;
[0080] NDLPM(Named Data Layer Packet Message)表不數(shù)據(jù)層消息;
[0081] NDM(Name Data Message)表示數(shù)據(jù)消息,當(dāng)某些路由器標(biāo)識(shí)所提供的數(shù)據(jù)有變動(dòng) 時(shí),便會(huì)發(fā)送該消息;
[0082] RM(Router Message)表示路由消息,當(dāng)物理拓?fù)溆凶兓瘯r(shí),便會(huì)給軟件定義網(wǎng)絡(luò) 控制器發(fā)送該消息。
[0083] 所述軟件定義網(wǎng)絡(luò)控制器系統(tǒng),所述的功能模塊API還包括:
[0084] 防火墻模塊,NDN以帶名字的數(shù)據(jù)為中心的,防火墻通過(guò)功能模塊API對(duì)規(guī)則表進(jìn) 行修改,從而實(shí)現(xiàn)了允許或阻止某些數(shù)據(jù)的請(qǐng)求。SDN控制器初始化后,防火墻根據(jù)用戶的 需求通過(guò)規(guī)則表所提供的API對(duì)規(guī)則表中相應(yīng)數(shù)據(jù)的規(guī)則進(jìn)行修改,從而當(dāng)相應(yīng)數(shù)據(jù)再次 詢問(wèn)SDN控制器時(shí),將執(zhí)行修改后的規(guī)則,從而允許或阻止相應(yīng)數(shù)據(jù)的請(qǐng)求。
[0085] 負(fù)載均衡模塊,SDN控制器上的負(fù)載均衡功能是通過(guò)規(guī)則表中不同的規(guī)則體現(xiàn)的, 用戶以通過(guò)功能模塊API所提供的API對(duì)規(guī)則表和推送表中的表項(xiàng)進(jìn)行修改,而規(guī)則表中 有BEST、R0UNDR0BIN、RANDOM三種規(guī)則用于實(shí)現(xiàn)不同的負(fù)載均衡策略。其中,BEST是最優(yōu) 調(diào)度策略,是根據(jù)路由表獲取到達(dá)每個(gè)數(shù)據(jù)提供者的代價(jià),并選擇最小代價(jià)的數(shù)據(jù)提供者 進(jìn)行轉(zhuǎn)發(fā);R0UNDR0BIN是輪詢調(diào)度策略,在推送表每個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)了一個(gè)輪詢調(diào)度標(biāo)識(shí) 位,當(dāng)有一個(gè)新的數(shù)據(jù)請(qǐng)求時(shí),就會(huì)根據(jù)該標(biāo)識(shí)位選擇對(duì)應(yīng)的數(shù)據(jù)提供者進(jìn)行轉(zhuǎn)發(fā);RANDOM 是隨機(jī)調(diào)度策略,根據(jù)自己生成的隨機(jī)數(shù)選擇相應(yīng)的數(shù)據(jù)提供者進(jìn)行轉(zhuǎn)發(fā)。
[0086] 服務(wù)遷移的支持模塊,數(shù)據(jù)提供者變更地址后,用于與該軟件定義網(wǎng)絡(luò)控制器交 互,該軟件定義網(wǎng)絡(luò)控制器更改本身的數(shù)據(jù)庫(kù)并下發(fā)更改后的路徑來(lái)實(shí)現(xiàn)斷開(kāi)重連;
[0087] 軟件定義網(wǎng)絡(luò)協(xié)同緩存模塊,軟件定義網(wǎng)絡(luò)控制器完成各節(jié)點(diǎn)信息收集和緩存方 案計(jì)算,該軟件定義網(wǎng)絡(luò)控制器將計(jì)算出的緩存方案下發(fā)給需要緩存的節(jié)點(diǎn),通過(guò)分布式 哈希表將該數(shù)據(jù)請(qǐng)求和多個(gè)緩存副本相連,當(dāng)該緩存節(jié)點(diǎn)無(wú)法正常工作通過(guò)分布式哈希表 從其他節(jié)點(diǎn)中獲得該數(shù)據(jù)。
[0088] 本發(fā)明還涉及一種命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,包括
[0089] 步驟1將命名數(shù)據(jù)網(wǎng)絡(luò)中功能緊密耦合的控制平面和數(shù)據(jù)平面分離,將該控制平 面轉(zhuǎn)移到軟件定義網(wǎng)絡(luò)控制器;
[0090] 步驟2將該數(shù)據(jù)平面抽象存儲(chǔ)于該控制平面,該控制平面向該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè) 備發(fā)送指令;
[0091] 步驟3該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備接收該控制平面的指令并進(jìn)行相應(yīng)的轉(zhuǎn)發(fā);
[0092] 該軟件定義網(wǎng)絡(luò)控制器包括如下步驟;
[0093] 步驟11,存儲(chǔ)模塊將數(shù)據(jù)平面存儲(chǔ)起來(lái),維護(hù)該數(shù)據(jù)平面的拓?fù)浣Y(jié)構(gòu),規(guī)則表,推 送表和路由表,該控制平面利用該些數(shù)據(jù)結(jié)構(gòu)控制命名數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流的轉(zhuǎn)發(fā);
[0094] 步驟12,通信模塊通過(guò)利用自定義的通信格式建立該控制平面與該數(shù)據(jù)平面之間 的連接并維護(hù)該連接,接收并處理該命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)流;
[0095] 步驟13,功能模塊API將該存儲(chǔ)功能封裝,應(yīng)用層利用該功能模塊API操作該存儲(chǔ) 模塊,以控制數(shù)據(jù)流走向。
[0096] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,該步驟1還包括:
[0097] 步驟111該拓?fù)浣Y(jié)構(gòu)設(shè)置數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括存儲(chǔ)路由器標(biāo)識(shí),端口個(gè)數(shù), 網(wǎng)絡(luò)設(shè)備提供的數(shù)據(jù)的名字,相鄰節(jié)點(diǎn)的信息對(duì);
[0098] 步驟112規(guī)則表將該拓?fù)浣Y(jié)構(gòu)中該數(shù)據(jù)的名字與其所對(duì)應(yīng)的規(guī)則存儲(chǔ)起來(lái),查詢 該規(guī)則表提供的數(shù)據(jù)流規(guī)則,然后調(diào)用相應(yīng)的規(guī)則以實(shí)現(xiàn)不同的負(fù)載策略;
[0099] 步驟113,推送表將該數(shù)據(jù)的名字對(duì)應(yīng)的數(shù)據(jù)提供者路由器標(biāo)識(shí)存儲(chǔ)起來(lái),采用前 綴樹(shù)結(jié)構(gòu)存儲(chǔ)推送表,利用該推送表存儲(chǔ)的不同數(shù)據(jù)的名字對(duì)應(yīng)得到該數(shù)據(jù)提供者路由器 標(biāo)識(shí),并通過(guò)調(diào)用路由表找到下一個(gè)地址跳轉(zhuǎn)端口;
[0100] 步驟114,該路由表存儲(chǔ)拓?fù)浣Y(jié)構(gòu)中計(jì)算出的數(shù)據(jù)提供者路由器標(biāo)識(shí)到達(dá)其他數(shù) 據(jù)提供者路由器標(biāo)識(shí)的代價(jià)和轉(zhuǎn)發(fā)端口,接收該推送表返回的該數(shù)據(jù)提供者路由器標(biāo)識(shí), 提供下一個(gè)地址跳轉(zhuǎn)端口。
[0101] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,該步驟12還包括:
[0102] 步驟121,信息處理流程模塊收到該命名數(shù)據(jù)網(wǎng)絡(luò)有連接請(qǐng)求時(shí),主線程新開(kāi)通一 組通道維護(hù)該連接并監(jiān)聽(tīng)整個(gè)連接,當(dāng)主線程接收到消息時(shí),先判斷該信息是命名數(shù)據(jù)網(wǎng) 絡(luò)的哪一類信息,然后調(diào)用相應(yīng)的處理函數(shù),如果接收到的是通信信息,該主線程啟動(dòng)一個(gè) 線程,并將相應(yīng)的處理和返回的任務(wù)交給該線程處理,同時(shí)該主線程重新等待下一個(gè)命名 數(shù)據(jù)網(wǎng)絡(luò)信息。
[0103] 所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,該步驟13還包括:
[0104] 防火墻步驟,NDN以帶名字的數(shù)據(jù)為中心的,防火墻通過(guò)功能模塊API對(duì)規(guī)則表進(jìn) 行修改,從而實(shí)現(xiàn)了允許或阻止某些數(shù)據(jù)的請(qǐng)求。SDN控制器初始化后,防火墻根據(jù)用戶的 需求通過(guò)規(guī)則表所提供的API對(duì)規(guī)則表中相應(yīng)數(shù)據(jù)的規(guī)則進(jìn)行修改,從而當(dāng)相應(yīng)數(shù)據(jù)再次 詢問(wèn)SDN控制器時(shí),將執(zhí)行修改后的規(guī)則,從而允許或阻止相應(yīng)數(shù)據(jù)的請(qǐng)求。
[0105] 負(fù)載均衡步驟,SDN控制器上的負(fù)載均衡功能是通過(guò)規(guī)則表中不同的規(guī)則體現(xiàn) 的,用戶以通過(guò)功能模塊API對(duì)規(guī)則表和推送表中的表項(xiàng)進(jìn)行修改,而規(guī)則表中有BEST、 R0UNDR0BIN、RAND0M三種規(guī)則用于實(shí)現(xiàn)不同的負(fù)載均衡策略。其中,BEST是最優(yōu)調(diào)度策略, 是根據(jù)路由表獲取到達(dá)每個(gè)數(shù)據(jù)提供者的代價(jià),并選擇最小代價(jià)的數(shù)據(jù)提供者進(jìn)行轉(zhuǎn)發(fā); R0UNDR0BIN是輪詢調(diào)度策略,在推送表每個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)了一個(gè)輪詢調(diào)度標(biāo)識(shí)位,當(dāng)有一 個(gè)新的數(shù)據(jù)請(qǐng)求時(shí),就會(huì)根據(jù)該標(biāo)識(shí)位選擇對(duì)應(yīng)的數(shù)據(jù)提供者進(jìn)行轉(zhuǎn)發(fā);RANDOM是隨機(jī)調(diào) 度策略,根據(jù)自己生成的隨機(jī)數(shù)選擇相應(yīng)的數(shù)據(jù)提供者進(jìn)行轉(zhuǎn)發(fā)。
[0106] 服務(wù)遷移支持步驟,軟件定義網(wǎng)絡(luò)控制器下發(fā)傳輸路徑,數(shù)據(jù)提供者變更地址后, 與該軟件定義網(wǎng)絡(luò)控制器交互,該軟件定義網(wǎng)絡(luò)控制器更改本身的數(shù)據(jù)庫(kù)并下發(fā)更改后的 路徑來(lái)實(shí)現(xiàn)斷開(kāi)重連;
[0107] 協(xié)同緩存步驟,軟件定義網(wǎng)絡(luò)控制器完成各節(jié)點(diǎn)信息收集和緩存方案計(jì)算后,該 軟件定義網(wǎng)絡(luò)控制器將計(jì)算出的緩存方案下發(fā)給需要緩存的節(jié)點(diǎn),通過(guò)分布式哈希表將該 數(shù)據(jù)請(qǐng)求和多個(gè)緩存副本相連,當(dāng)該緩存節(jié)點(diǎn)無(wú)法正常工作通過(guò)分布式哈希表從其他節(jié)點(diǎn) 中獲得該數(shù)據(jù)。
[0108] 以上對(duì)本發(fā)明的具體實(shí)施例進(jìn)行了描述和說(shuō)明,該實(shí)施例應(yīng)被認(rèn)為其只是示例性 的,并不用于對(duì)本發(fā)明進(jìn)行限制,本發(fā)明應(yīng)根據(jù)所附權(quán)利要求進(jìn)行解釋。
【權(quán)利要求】
1. 一種命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,用于將該控制平面轉(zhuǎn) 移到軟件定義網(wǎng)絡(luò)控制器,將該數(shù)據(jù)平面抽象存儲(chǔ)于該控制平面,該控制平面向該數(shù)據(jù)平 面的網(wǎng)絡(luò)設(shè)備發(fā)送指令,該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備接收該控制平面的指令并進(jìn)行相應(yīng)的轉(zhuǎn) 發(fā);該軟件定義網(wǎng)絡(luò)控制器包括存儲(chǔ)模塊、通信模塊及功能模塊API ; 該存儲(chǔ)模塊,用于存儲(chǔ)該數(shù)據(jù)平面,維護(hù)該數(shù)據(jù)平面的拓?fù)浣Y(jié)構(gòu),規(guī)則表,推送表和路 由表四個(gè)數(shù)據(jù)結(jié)構(gòu),該控制平面利用該些數(shù)據(jù)結(jié)構(gòu)控制命名數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流的轉(zhuǎn)發(fā);以 及 該通信模塊,利用自定義的通信格式建立該控制平面的軟件定義網(wǎng)絡(luò)控制器與該數(shù)據(jù) 平面的網(wǎng)絡(luò)設(shè)備之間的連接并維護(hù)該連接,接收并處理該命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)流;以 及 該功能模塊API,用于將該存儲(chǔ)模塊功能封裝,應(yīng)用層利用該功能模塊API操作該存儲(chǔ) 模塊,以控制數(shù)據(jù)流走向。
2. 根據(jù)權(quán)利要求1所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,該拓 撲結(jié)構(gòu),用于設(shè)置數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)路由器標(biāo)識(shí),端口個(gè)數(shù),網(wǎng)絡(luò)設(shè)備提供的數(shù)據(jù) 的名字,相鄰節(jié)點(diǎn)的信息對(duì);以及 該規(guī)則表,用于存儲(chǔ)該拓?fù)浣Y(jié)構(gòu)中數(shù)據(jù)的名字與其所對(duì)應(yīng)的規(guī)則,該數(shù)據(jù)的名字根據(jù) 不同字段命名的,使用前綴樹(shù)數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ),當(dāng)用戶請(qǐng)求查詢?cè)摂?shù)據(jù)的名字時(shí),該請(qǐng)求信 息先查詢?cè)撘?guī)則類,然后調(diào)用相應(yīng)的數(shù)據(jù)流規(guī)則以實(shí)現(xiàn)不同的負(fù)載策略;以及 該推送表,用于存儲(chǔ)該數(shù)據(jù)的名字對(duì)應(yīng)的該數(shù)據(jù)提供者路由器標(biāo)識(shí),采用該前綴樹(shù)結(jié) 構(gòu)存儲(chǔ)該推送表,利用該推送表存儲(chǔ)的不同該數(shù)據(jù)的名字對(duì)應(yīng)得到該數(shù)據(jù)提供者路由器標(biāo) 識(shí),調(diào)用路由表找到下一個(gè)地址跳轉(zhuǎn)端口;以及 該路由表,用于存儲(chǔ)該拓?fù)浣Y(jié)構(gòu)中計(jì)算出的數(shù)據(jù)提供者路由器標(biāo)識(shí)到達(dá)其他數(shù)據(jù)提供 者路由器標(biāo)識(shí)的代價(jià)和轉(zhuǎn)發(fā)端口,接收該推送表返回的該數(shù)據(jù)提供者路由器標(biāo)識(shí),返回下 一個(gè)地址跳轉(zhuǎn)端口。
3. 根據(jù)權(quán)利要求2所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,該規(guī) 則表還包括: 該規(guī)則類包括最優(yōu)調(diào)度策略,通過(guò)提取該路由表數(shù)據(jù)結(jié)構(gòu)信息,獲取到達(dá)該數(shù)據(jù)提供 者路由器標(biāo)識(shí)的代價(jià),并選擇最小代價(jià)的該數(shù)據(jù)提供者路由器標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā);以及 輪詢調(diào)度策略,用于在該推送表每個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)一個(gè)輪詢調(diào)度標(biāo)識(shí)位,當(dāng)有數(shù)據(jù)請(qǐng) 求時(shí),就根據(jù)該輪詢調(diào)度標(biāo)識(shí)位選擇對(duì)應(yīng)的該數(shù)據(jù)提供者路由器標(biāo)識(shí)進(jìn)行轉(zhuǎn)發(fā);以及 隨機(jī)調(diào)度策略,根據(jù)本身生成的隨機(jī)數(shù)選擇相應(yīng)的該數(shù)據(jù)提供者路由器標(biāo)識(shí)進(jìn)行轉(zhuǎn) 發(fā);以及丟棄策略,用于禁止某個(gè)數(shù)據(jù)在網(wǎng)絡(luò)中傳輸,當(dāng)接收到該數(shù)據(jù)的請(qǐng)求,就將該數(shù)據(jù) 請(qǐng)求丟棄;以及 緩存策略,用于決定哪個(gè)數(shù)據(jù)需要緩存;以及推送操作,實(shí)際操作與最優(yōu)調(diào)度相同。
4. 根據(jù)權(quán)利要求1所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,所述 通信模塊還包括: 通信流程模塊,當(dāng)該命名數(shù)據(jù)網(wǎng)絡(luò)有連接請(qǐng)求時(shí),主線程新開(kāi)通一組通道維護(hù)該連接 并監(jiān)聽(tīng)整個(gè)連接,當(dāng)主線程接收到消息時(shí),先判斷該信息是命名數(shù)據(jù)網(wǎng)絡(luò)的哪一類信息,然 后調(diào)用相應(yīng)的處理函數(shù),如果接收到的是通信信息,該主線程啟動(dòng)一個(gè)線程,并將相應(yīng)的處 理和返回的任務(wù)交給該線程處理,同時(shí)該主線程重新等待下一個(gè)命名數(shù)據(jù)網(wǎng)絡(luò)信息。
5. 根據(jù)權(quán)利要求1所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器系統(tǒng),其特征在于,該功 能模塊API還包括: 服務(wù)遷移支持模塊,軟件定義網(wǎng)絡(luò)控制器下發(fā)傳輸路徑,數(shù)據(jù)提供者變更地址后,該服 務(wù)遷移支持模塊用于與該軟件定義網(wǎng)絡(luò)控制器交互,該軟件定義網(wǎng)絡(luò)控制器更改本身的數(shù) 據(jù)庫(kù)并下發(fā)更改后的路徑來(lái)實(shí)現(xiàn)斷開(kāi)重連; 協(xié)同緩存模塊,用于在軟件定義網(wǎng)絡(luò)控制器完成各節(jié)點(diǎn)信息收集和緩存方案計(jì)算后, 該軟件定義網(wǎng)絡(luò)控制器將計(jì)算出的緩存方案下發(fā)給需要緩存的節(jié)點(diǎn),通過(guò)分布式哈希表將 該數(shù)據(jù)請(qǐng)求和多個(gè)緩存副本相連,當(dāng)該緩存節(jié)點(diǎn)無(wú)法正常工作,通過(guò)分布式哈希表從其他 節(jié)點(diǎn)中獲得該數(shù)據(jù)。
6. -種命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,其特征在于,包括 步驟1將命名數(shù)據(jù)網(wǎng)絡(luò)中功能緊密耦合的控制平面和數(shù)據(jù)平面分離,將該控制平面轉(zhuǎn) 移到軟件定義網(wǎng)絡(luò)控制器; 步驟2將該數(shù)據(jù)平面抽象存儲(chǔ)于該控制平面,該控制平面向該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備發(fā) 送指令; 步驟3該數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備接收該控制平面的指令并進(jìn)行相應(yīng)的轉(zhuǎn)發(fā); 該軟件定義網(wǎng)絡(luò)控制器包括如下步驟; 步驟11,將數(shù)據(jù)平面存儲(chǔ)起來(lái),維護(hù)該數(shù)據(jù)平面的拓?fù)浣Y(jié)構(gòu),規(guī)則表,推送表和路由表, 該控制平面利用該些數(shù)據(jù)結(jié)構(gòu)控制命名數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流的轉(zhuǎn)發(fā); 步驟12,利用自定義的通信格式建立該控制平面與該數(shù)據(jù)平面之間的連接并維護(hù)該連 接,接收并處理該命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)流; 步驟13,將該存儲(chǔ)功能封裝,應(yīng)用層利用該功能模塊API操作該存儲(chǔ)模塊,以控制數(shù)據(jù) 流走向。
7. 根據(jù)權(quán)利要求6所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,其特征在于,該步 驟11還包括: 步驟111該拓?fù)浣Y(jié)構(gòu)設(shè)置數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括存儲(chǔ)路由器標(biāo)識(shí),端口個(gè)數(shù),網(wǎng)絡(luò) 設(shè)備提供的數(shù)據(jù)的名字,相鄰節(jié)點(diǎn)的信息對(duì); 步驟112該規(guī)則表將該拓?fù)浣Y(jié)構(gòu)中該數(shù)據(jù)的名字與其所對(duì)應(yīng)的規(guī)則存儲(chǔ)起來(lái),查詢?cè)?規(guī)則表提供的數(shù)據(jù)流規(guī)則,然后調(diào)用相應(yīng)的規(guī)則以實(shí)現(xiàn)不同的負(fù)載策略; 步驟113,該推送表將該數(shù)據(jù)的名字對(duì)應(yīng)的數(shù)據(jù)提供者路由器標(biāo)識(shí)存儲(chǔ)起來(lái),采用前綴 樹(shù)結(jié)構(gòu)存儲(chǔ)推送表,利用該推送表存儲(chǔ)的不同數(shù)據(jù)的名字對(duì)應(yīng)得到該數(shù)據(jù)提供者路由器標(biāo) 識(shí),并通過(guò)調(diào)用路由表找到下一個(gè)地址跳轉(zhuǎn)端口; 步驟114,該路由表存儲(chǔ)拓?fù)浣Y(jié)構(gòu)中計(jì)算出的數(shù)據(jù)提供者路由器標(biāo)識(shí)到達(dá)其他數(shù)據(jù)提 供者路由器標(biāo)識(shí)的代價(jià)和轉(zhuǎn)發(fā)端口,接收該推送表返回的該數(shù)據(jù)提供者路由器標(biāo)識(shí),提供 下一個(gè)地址跳轉(zhuǎn)端口。
8. 如權(quán)利要求6所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,其特征在于,該步驟 12還包括: 步驟121,主線程收到該命名數(shù)據(jù)網(wǎng)絡(luò)有連接請(qǐng)求時(shí),該主線程新開(kāi)通一組通道維護(hù)該 連接并監(jiān)聽(tīng)整個(gè)連接,當(dāng)主線程接收到消息時(shí),先判斷該信息是命名數(shù)據(jù)網(wǎng)絡(luò)的哪一類信 息,然后調(diào)用相應(yīng)的處理函數(shù),如果接收到通信信息,該主線程啟動(dòng)一個(gè)線程,并將相應(yīng)的 處理和返回的任務(wù)交給該線程處理,同時(shí)該主線程重新等待下一個(gè)命名數(shù)據(jù)網(wǎng)絡(luò)信息。
9.如權(quán)利要求6所述命名數(shù)據(jù)網(wǎng)絡(luò)中軟件定義網(wǎng)絡(luò)控制器方法,其特征在于,該步驟 13還包括: 服務(wù)遷移支持步驟,軟件定義控制器下發(fā)傳輸路徑,當(dāng)數(shù)據(jù)提供者路由器標(biāo)示變更地 址后,與該軟件定義網(wǎng)絡(luò)控制器交互,該軟件定義網(wǎng)絡(luò)控制器更改本身的數(shù)據(jù)庫(kù)并下發(fā)更 改后的路徑來(lái)實(shí)現(xiàn)斷開(kāi)重連; 協(xié)同緩存步驟,軟件定義網(wǎng)絡(luò)控制器完成各節(jié)點(diǎn)信息收集和緩存方案計(jì)算后,該軟件 定義網(wǎng)絡(luò)控制器將計(jì)算出的緩存方案下發(fā)給需要緩存的節(jié)點(diǎn),通過(guò)分布式哈希表將該數(shù)據(jù) 請(qǐng)求和多個(gè)緩存副本相連,當(dāng)該緩存節(jié)點(diǎn)無(wú)法正常工作,通過(guò)分布式哈希表從其他節(jié)點(diǎn)中 獲得該數(shù)據(jù)。
【文檔編號(hào)】H04L12/743GK104104614SQ201410264130
【公開(kāi)日】2014年10月15日 申請(qǐng)日期:2014年6月13日 優(yōu)先權(quán)日:2014年6月13日
【發(fā)明者】楊延中, 武慶華, 李振宇, 謝高崗 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1