linux选择最短路径sdn,基于网络流量的SDN最短路径转发应用
原標(biāo)題:基于網(wǎng)絡(luò)流量的SDN最短路徑轉(zhuǎn)發(fā)應(yīng)用
網(wǎng)絡(luò)的轉(zhuǎn)發(fā)是通信的基本功能,其完成信息在網(wǎng)絡(luò)中傳遞,實現(xiàn)有序的數(shù)據(jù)交換。通過SDN控制器的集中控制,可以輕松實現(xiàn)基礎(chǔ)的轉(zhuǎn)發(fā)算法有二層MAC學(xué)習(xí)轉(zhuǎn)發(fā)和基于跳數(shù)的最短路徑算法。然而,網(wǎng)絡(luò)跳數(shù)并不是決定路徑優(yōu)劣的唯一狀態(tài)。除了跳數(shù)以外,還有帶寬,時延等標(biāo)準(zhǔn)。本文將介紹如何通過SDN控制器Ryu開發(fā)基于流量的最短路徑轉(zhuǎn)發(fā)應(yīng)用。
Forwarding Algorithm
目前基于流量的路由算法基本的解決思路有兩種:
(1) 首先基于跳數(shù)計算最優(yōu)K條路徑,然后在這些路徑中選擇可用帶寬最大的路徑。
(2) 首先基于跳數(shù)計算最優(yōu)路徑,歸一化路徑的評價分?jǐn)?shù),然后基于流量計算最優(yōu)路徑,歸一化基于帶寬的評價;設(shè)置跳數(shù)和帶寬的權(quán)重,對基于跳數(shù)和帶寬的評分求其加權(quán)總和;按照加權(quán)求和值降序排序,取前K條作為最優(yōu)評價路徑。
本文以第一種算法為例,介紹基于網(wǎng)絡(luò)流量的最短路徑轉(zhuǎn)發(fā)應(yīng)用開發(fā)。第二種算法基于前者的基礎(chǔ)修改即可完成。
Network Awareness
首先我們需要編寫一個網(wǎng)絡(luò)感知應(yīng)用,用于發(fā)現(xiàn)網(wǎng)絡(luò)的資源,包括節(jié)點,鏈路,終端主機等。并根據(jù)拓?fù)湫畔⒂嬎慊跅l數(shù)的最短路徑。開發(fā)此應(yīng)用基本步驟如下:
創(chuàng)建繼承app_manager.RyuApp的應(yīng)用network_awareness從topology.switches獲取拓?fù)湫畔?#xff0c;包括交換機節(jié)點信息,鏈路信息使用Networkx 創(chuàng)建拓?fù)鋱D的對象,用于存儲網(wǎng)絡(luò)拓?fù)涫褂肗etworkx的函數(shù)all_simple_paths(G, source, target, cutoff=None)計算K條最優(yōu)路徑并存儲,該函數(shù)實現(xiàn)了Yen's algorithm
示例代碼可由muzixing/ryu/network_awareness獲取。
Note that: 以上的示例代碼中,拓?fù)湫畔⒌拇鎯Σ]有使用networkx,所以讀者需要獨立完成基于networkx的存儲和算法調(diào)用部分。
Network Monitor
第二個應(yīng)用是網(wǎng)絡(luò)流量監(jiān)控應(yīng)用。網(wǎng)絡(luò)流量監(jiān)控應(yīng)用完成網(wǎng)絡(luò)流量的實時監(jiān)控,計算出實時的流量統(tǒng)計數(shù)據(jù)。基于本應(yīng)用的數(shù)據(jù),可以完成轉(zhuǎn)發(fā)算法的第二部分內(nèi)容。示例代碼可由muzixing/ryu/network_monitor獲取。
為了讓其他模塊獲取到最新的流量信息,可在Ryu中自定義事件,具體教程請查看《基于Ryu打造自定義控制器》的自定義事件部分內(nèi)容。不定義事件的情況下,需要將此模塊作為新模塊的CONTEXT。詳情可閱讀《Ryu:模塊間通信機制分析》的相關(guān)內(nèi)容。
Forwarding Application
基于以上兩個模塊的數(shù)據(jù),轉(zhuǎn)發(fā)應(yīng)用模塊需要完成如下幾個步驟,從而完成基于流量的最優(yōu)路徑轉(zhuǎn)發(fā)。
獲取network awareness和network monitor的數(shù)據(jù)將network monitor的數(shù)據(jù)整合到networkx存儲的網(wǎng)絡(luò)拓?fù)湫畔⒅斜容^最短K條路徑中各路徑的剩余帶寬,選擇最優(yōu)路徑,剩余路徑為備份路徑和逃生路徑基于路徑信息,安裝流表項
整合流量信息代碼示例代碼如下, 其中,link2port為鏈路信息,bw_dict為network monitor模塊的流量數(shù)據(jù)。返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的linux选择最短路径sdn,基于网络流量的SDN最短路径转发应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux分区dh满了,python 在
- 下一篇: linux+网络根文件系统,认识Linu