鄧 力 章曉帆 陳 呈
(廣東工業(yè)大學華立學院 機電與信息工程學部,廣東 廣州 511300)
網(wǎng)絡拓撲發(fā)現(xiàn)在網(wǎng)絡安全研究與網(wǎng)絡管理、網(wǎng)絡性能分析以及在網(wǎng)絡模型研究等方面占有舉足輕重的地位,如何獲取,分析和利用網(wǎng)絡拓撲信息頁是總舵研究所關注的一個熱點。網(wǎng)絡拓撲可視化作為分離利用網(wǎng)絡拓撲信息的重要輔助手段,其主要目標就是將目標網(wǎng)絡的節(jié)點和連接情況完整清晰地展現(xiàn)在人們眼前,為人們所了解,分析目標網(wǎng)絡的整體狀況提供直觀的素材和操作平臺。這不僅有助于人們對其進行觀測和分析,更重要的是,它將幫助人們發(fā)現(xiàn)在網(wǎng)絡拓撲中的潛在規(guī)律,具有很高的社會價值和經(jīng)濟價值。
圖1 calcRepulsion算法流程圖
網(wǎng)絡拓撲可視化的需求主要來源于以下方面:1)清晰直觀地反映網(wǎng)絡運行狀況,輔助人們對網(wǎng)絡各方面的性能進行評估,掌握其發(fā)展動態(tài),并未其指定有效的管理策略提供依據(jù);2)幫助人們更清晰地認識和發(fā)現(xiàn)存在于網(wǎng)絡中的內在規(guī)律;3)網(wǎng)絡拓撲母性需要以可視化的方式來加以驗證。
網(wǎng)絡拓撲可視化主要涉及網(wǎng)絡拓撲模型、信息可視化和繪圖三個研究領域。其中:網(wǎng)絡拓撲模型研究為實現(xiàn)網(wǎng)絡拓撲可視化提供數(shù)據(jù)組織和處理依據(jù);信息可視化則主要為實現(xiàn)網(wǎng)絡拓撲可視化提供基本的方法和參考;圖布局技術則是在實現(xiàn)網(wǎng)絡拓撲布局時所需要重點研究的內容,同時也是網(wǎng)絡拖布可視化的核心問題。
本文分析了網(wǎng)絡拓撲可視化的問題,回顧并對比分析了目前主要的研究成果,指出了當前研究中存在的不足和后期的研究方向。
基于Web的網(wǎng)絡拓撲結構可視化的主要優(yōu)點有:
1)地理上和系統(tǒng)上的可移動性,使管理者的操作不受到地理位置的限制,更適合進行分布的網(wǎng)絡監(jiān)視。
2)平臺的獨立性,可以再任何的平臺下訪問,只要在該平臺下有適合的網(wǎng)頁瀏覽器即可,從而解決了很多由于多平臺結構所引發(fā)的不兼容問題。
3)以 Web Server為中心,降低了維護費用和維護要求,對系統(tǒng)的修改只需要在服務器(Web Server)上進行即可,客戶端無需任何的修改。
4)有利于網(wǎng)絡信息的及時發(fā)布。
5)統(tǒng)一的管理程序界面,便于為用戶提供信息,它提供比傳統(tǒng)的命令驅動的遠程登錄更加直接,更加實用的圖形化(GUI)界面,瀏覽器的操作和網(wǎng)頁(Web)界面對普通用戶來講師非常的方便與易用的。
本研究小組透過對網(wǎng)絡相關資料的收集與研究,決定采用MxGraph與ExtJS兩個框架來組成我們的網(wǎng)絡拓撲可視化的基本框架。其中MxGraph是是一個JS繪圖組件適用于需要在網(wǎng)頁中設 計/編 輯 Workflow/BPM 流 程圖、圖表、網(wǎng)絡圖和普通圖形的Web應用程序。而ExtJS是一種主要用于創(chuàng)建前端用戶界面,是一個基本與后臺技術無關的前端ajax框架。采用這兩個框架,方便我們對于網(wǎng)絡拓撲可視化前端界面的編寫。本基于Web的網(wǎng)絡拓撲可視化實現(xiàn)從服務器端獲取網(wǎng)絡拓撲結構圖模板以及網(wǎng)絡拓撲結構圖中相關網(wǎng)絡設備的詳細信息,并根據(jù)模板數(shù)據(jù)渲染出網(wǎng)絡拓撲結構圖,用戶可在客戶端查看網(wǎng)絡設備列表,網(wǎng)絡設備詳細信息,搜索指定設備信息等功能。
圖2 calcAttraction算法流程圖
圖3 clacPositions算法流程圖
該可視化前端界面在實際的編寫中,采用了諸多算法來優(yōu)化整個拓撲結構的顯示,其中包括calcRepulsion算法、calcAttraction算法、clacPositions算法等算法。其中calcRepulsion算法實現(xiàn)步驟如下:
1)獲得需要執(zhí)行此算法運算的元素總數(shù);
2)在未分離的元素集合中選定一個元素與其他未分離的元素在坐標系中的坐標拉開一定距離;
3)對元素集合中每個元素執(zhí)行第2步,直至每個元素都與其他元素拉開距離。
calcRepulsion算法流程圖如圖1:
而calcAttraction算法實現(xiàn)步驟如下:
1)獲得需要執(zhí)行此算法運算的元素總數(shù);
2)在元素集合中取出一個元素,對齊所有有連接關系的元素都拉近一定距離;
圖4 布局算法流程圖
3)對元素集合中每個元素執(zhí)行第2步。
其算法流程圖如圖2所示:
除此之外,我們還采用了clacPositions算法,該算法的實現(xiàn)步驟如下:
1)計算元素離容器原點的距離detaLength;
2)計算元素的新坐標并放入坐標數(shù)組;
3)對元素集合中所有元素執(zhí)行1,2步。
其算法流程圖如圖3所示:
最后,我們采用了布局算法對以上三個算法運行的結果進行匯總分析,算法步驟為:
1)獲取執(zhí)行布局的指定的父節(jié)點下的所有Vertex元素,放入元素集合vertexArray;
2)為元素集合中的元素創(chuàng)建路徑(形如’0.0.0.1’),并計算cellLocation的x,y軸坐標,元素半徑等;
3)開始布局執(zhí)行事務;
4)迭代獲取元素集合中每個元素的連線及連線的終端元素,放入edges和cells集合中,并為每個連接終端創(chuàng)建元素路徑,放入neighbours集合中;
5)根據(jù)指定迭代次數(shù)順序執(zhí)行calcRepulsion算法,calcAttraction算法,clacPositions算法,reduceTemperature方法 (計算布局執(zhí)行的熱度的函數(shù));
6)移動所有執(zhí)行布局算法的元素到新的坐標;
7)提交布局執(zhí)行事務。
具體算法流程圖如圖4:
圖5 最終運行結果
圖6 最終運行結果圖
通過以上4個算法對后端程序所獲取到的數(shù)據(jù)進行處理,在Web端的網(wǎng)頁上繪制出清晰明了的圖形化撲結構圖,用戶可以在Web瀏覽器上對整個網(wǎng)絡拓撲結構進行掌控。該運行結果圖基于服務端采集保存于MySQL數(shù)據(jù)庫中的網(wǎng)絡拓撲結構信息。有關于后端模塊的相關信息為另一篇論文所述,再次不再繁述。本模塊實現(xiàn)從服務器端獲取網(wǎng)絡拓撲結構圖模板以及網(wǎng)絡拓撲結構圖中相關網(wǎng)絡設備的詳細信息,并根據(jù)模板數(shù)據(jù)渲染出網(wǎng)絡拓撲結構圖,用戶可在客戶端查看網(wǎng)絡設備列表,網(wǎng)絡設備詳細信息,搜索指定設備信息等功能。本模塊存在的局限性有如下幾個方面:需要部署服務器,運行在客戶端瀏覽器上;由于本模塊使用到mxgraph框架,若要使用本模塊完整功能,客戶端必須連接上Internet。最終運行結果如圖5、圖6、圖7所示:
圖7 最終運行結果圖
網(wǎng)絡拓撲可視化問題的研究難點主要來源于以下方面:網(wǎng)絡本身的復雜性;缺乏進行系統(tǒng)研究的方法論。而我們項目研究結果所采用的網(wǎng)絡拓撲可視化的解決方法僅僅只是眾多網(wǎng)絡拓撲可視化解決方式的其中一種,可能還存在著諸多的不足,其中包括用戶權限的管理,子路由的發(fā)現(xiàn)與探測等。我們將在接下來的時間中,繼續(xù)對該項目進行合理的完善,以求能夠完美的實現(xiàn)我們的最終目標。