精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

基于網(wǎng)絡(luò)流量的SDN最短路徑轉(zhuǎn)發(fā)應(yīng)用

責(zé)任編輯:editor005

作者:李呈

2015-12-02 14:56:59

摘自:SDNLAB

Note that: 以上的示例代碼中,拓?fù)湫畔⒌拇鎯?chǔ)并沒有使用networkx,所以讀者需要獨(dú)立完成基于networkx的存儲(chǔ)和算法調(diào)用部分。

網(wǎng)絡(luò)的轉(zhuǎn)發(fā)是通信的基本功能,其完成信息在網(wǎng)絡(luò)中傳遞,實(shí)現(xiàn)有序的數(shù)據(jù)交換。通過SDN控制器的集中控制,可以輕松實(shí)現(xiàn)基礎(chǔ)的轉(zhuǎn)發(fā)算法有二層MAC學(xué)習(xí)轉(zhuǎn)發(fā)和基于跳數(shù)的最短路徑算法。然而,網(wǎng)絡(luò)跳數(shù)并不是決定路徑優(yōu)劣的唯一狀態(tài)。除了跳數(shù)以外,還有帶寬,時(shí)延等標(biāo)準(zhǔn)。本文將介紹如何通過SDN控制器Ryu開發(fā)基于流量的最短路徑轉(zhuǎn)發(fā)應(yīng)用。

Forwarding Algorithm

目前基于流量的路由算法基本的解決思路有兩種:

(1) 首先基于跳數(shù)計(jì)算最優(yōu)K條路徑,然后在這些路徑中選擇可用帶寬最大的路徑。

(2) 首先基于跳數(shù)計(jì)算最優(yōu)路徑,歸一化路徑的評(píng)價(jià)分?jǐn)?shù),然后基于流量計(jì)算最優(yōu)路徑,歸一化基于帶寬的評(píng)價(jià);設(shè)置跳數(shù)和帶寬的權(quán)重,對(duì)基于跳數(shù)和帶寬的評(píng)分求其加權(quán)總和;按照加權(quán)求和值降序排序,取前K條作為最優(yōu)評(píng)價(jià)路徑。

本文以第一種算法為例,介紹基于網(wǎng)絡(luò)流量的最短路徑轉(zhuǎn)發(fā)應(yīng)用開發(fā)。第二種算法基于前者的基礎(chǔ)修改即可完成。

Network Awareness

首先我們需要編寫一個(gè)網(wǎng)絡(luò)感知應(yīng)用,用于發(fā)現(xiàn)網(wǎng)絡(luò)的資源,包括節(jié)點(diǎn),鏈路,終端主機(jī)等。并根據(jù)拓?fù)湫畔⒂?jì)算基于條數(shù)的最短路徑。開發(fā)此應(yīng)用基本步驟如下:

創(chuàng)建繼承app_manager.RyuApp的應(yīng)用network_awareness從topology.switches獲取拓?fù)湫畔ⅲń粨Q機(jī)節(jié)點(diǎn)信息,鏈路信息使用Networkx 創(chuàng)建拓?fù)鋱D的對(duì)象,用于存儲(chǔ)網(wǎng)絡(luò)拓?fù)涫褂肗etworkx的函數(shù)all_simple_paths(G, source, target, cutoff=None)計(jì)算K條最優(yōu)路徑并存儲(chǔ),該函數(shù)實(shí)現(xiàn)了Yen's algorithm

示例代碼可由muzixing/ryu/network_awareness獲取。

Note that: 以上的示例代碼中,拓?fù)湫畔⒌拇鎯?chǔ)并沒有使用networkx,所以讀者需要獨(dú)立完成基于networkx的存儲(chǔ)和算法調(diào)用部分。

Network Monitor

第二個(gè)應(yīng)用是網(wǎng)絡(luò)流量監(jiān)控應(yīng)用。網(wǎng)絡(luò)流量監(jiān)控應(yīng)用完成網(wǎng)絡(luò)流量的實(shí)時(shí)監(jiān)控,計(jì)算出實(shí)時(shí)的流量統(tǒng)計(jì)數(shù)據(jù)。基于本應(yīng)用的數(shù)據(jù),可以完成轉(zhuǎn)發(fā)算法的第二部分內(nèi)容。示例代碼可由muzixing/ryu/network_monitor獲取。

為了讓其他模塊獲取到最新的流量信息,可在Ryu中自定義事件,具體教程請(qǐng)查看《基于Ryu打造自定義控制器》的自定義事件部分內(nèi)容。不定義事件的情況下,需要將此模塊作為新模塊的CONTEXT。詳情可閱讀《Ryu:模塊間通信機(jī)制分析》的相關(guān)內(nèi)容。

Forwarding Application

基于以上兩個(gè)模塊的數(shù)據(jù),轉(zhuǎn)發(fā)應(yīng)用模塊需要完成如下幾個(gè)步驟,從而完成基于流量的最優(yōu)路徑轉(zhuǎn)發(fā)。

獲取network awareness和network monitor的數(shù)據(jù)將network monitor的數(shù)據(jù)整合到networkx存儲(chǔ)的網(wǎng)絡(luò)拓?fù)湫畔⒅斜容^最短K條路徑中各路徑的剩余帶寬,選擇最優(yōu)路徑,剩余路徑為備份路徑和逃生路徑基于路徑信息,安裝流表項(xiàng)

整合流量信息代碼示例代碼如下, 其中,link2port為鏈路信息,bw_dict為network monitor模塊的流量數(shù)據(jù)。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 南汇区| 土默特右旗| 二连浩特市| 林芝县| 泌阳县| 乌兰县| 蒲江县| 巴彦淖尔市| 萨迦县| 洮南市| 汾阳市| 通许县| 招远市| 镇康县| 杭州市| 刚察县| 久治县| 来安县| 晋州市| 江北区| 拉萨市| 乌鲁木齐县| 呼和浩特市| 临夏县| 阳曲县| 怀来县| 盐池县| 金乡县| 新安县| 精河县| 三亚市| 安远县| 泌阳县| 汝南县| 榆中县| 固原市| 河北区| 富阳市| 宝清县| 隆子县| 四子王旗|