鄧 力 章曉帆 陳 呈
(廣東工業大學華立學院 機電與信息工程學部,廣東 廣州 511300)
網絡拓撲發現在網絡安全研究與網絡管理、網絡性能分析以及在網絡模型研究等方面占有舉足輕重的地位,如何獲取,分析和利用網絡拓撲信息頁是總舵研究所關注的一個熱點。網絡拓撲可視化作為分離利用網絡拓撲信息的重要輔助手段,其主要目標就是將目標網絡的節點和連接情況完整清晰地展現在人們眼前,為人們所了解,分析目標網絡的整體狀況提供直觀的素材和操作平臺。這不僅有助于人們對其進行觀測和分析,更重要的是,它將幫助人們發現在網絡拓撲中的潛在規律,具有很高的社會價值和經濟價值。

圖1 calcRepulsion算法流程圖
網絡拓撲可視化的需求主要來源于以下方面:1)清晰直觀地反映網絡運行狀況,輔助人們對網絡各方面的性能進行評估,掌握其發展動態,并未其指定有效的管理策略提供依據;2)幫助人們更清晰地認識和發現存在于網絡中的內在規律;3)網絡拓撲母性需要以可視化的方式來加以驗證。
網絡拓撲可視化主要涉及網絡拓撲模型、信息可視化和繪圖三個研究領域。其中:網絡拓撲模型研究為實現網絡拓撲可視化提供數據組織和處理依據;信息可視化則主要為實現網絡拓撲可視化提供基本的方法和參考;圖布局技術則是在實現網絡拓撲布局時所需要重點研究的內容,同時也是網絡拖布可視化的核心問題。
本文分析了網絡拓撲可視化的問題,回顧并對比分析了目前主要的研究成果,指出了當前研究中存在的不足和后期的研究方向。
基于Web的網絡拓撲結構可視化的主要優點有:
1)地理上和系統上的可移動性,使管理者的操作不受到地理位置的限制,更適合進行分布的網絡監視。
2)平臺的獨立性,可以再任何的平臺下訪問,只要在該平臺下有適合的網頁瀏覽器即可,從而解決了很多由于多平臺結構所引發的不兼容問題。
3)以 Web Server為中心,降低了維護費用和維護要求,對系統的修改只需要在服務器(Web Server)上進行即可,客戶端無需任何的修改。
4)有利于網絡信息的及時發布。
5)統一的管理程序界面,便于為用戶提供信息,它提供比傳統的命令驅動的遠程登錄更加直接,更加實用的圖形化(GUI)界面,瀏覽器的操作和網頁(Web)界面對普通用戶來講師非常的方便與易用的。
本研究小組透過對網絡相關資料的收集與研究,決定采用MxGraph與ExtJS兩個框架來組成我們的網絡拓撲可視化的基本框架。其中MxGraph是是一個JS繪圖組件適用于需要在網頁中設 計/編 輯 Workflow/BPM 流 程圖、圖表、網絡圖和普通圖形的Web應用程序。而ExtJS是一種主要用于創建前端用戶界面,是一個基本與后臺技術無關的前端ajax框架。采用這兩個框架,方便我們對于網絡拓撲可視化前端界面的編寫。本基于Web的網絡拓撲可視化實現從服務器端獲取網絡拓撲結構圖模板以及網絡拓撲結構圖中相關網絡設備的詳細信息,并根據模板數據渲染出網絡拓撲結構圖,用戶可在客戶端查看網絡設備列表,網絡設備詳細信息,搜索指定設備信息等功能。

圖2 calcAttraction算法流程圖

圖3 clacPositions算法流程圖
該可視化前端界面在實際的編寫中,采用了諸多算法來優化整個拓撲結構的顯示,其中包括calcRepulsion算法、calcAttraction算法、clacPositions算法等算法。其中calcRepulsion算法實現步驟如下:
1)獲得需要執行此算法運算的元素總數;
2)在未分離的元素集合中選定一個元素與其他未分離的元素在坐標系中的坐標拉開一定距離;
3)對元素集合中每個元素執行第2步,直至每個元素都與其他元素拉開距離。
calcRepulsion算法流程圖如圖1:
而calcAttraction算法實現步驟如下:
1)獲得需要執行此算法運算的元素總數;
2)在元素集合中取出一個元素,對齊所有有連接關系的元素都拉近一定距離;

圖4 布局算法流程圖
3)對元素集合中每個元素執行第2步。
其算法流程圖如圖2所示:
除此之外,我們還采用了clacPositions算法,該算法的實現步驟如下:
1)計算元素離容器原點的距離detaLength;
2)計算元素的新坐標并放入坐標數組;
3)對元素集合中所有元素執行1,2步。
其算法流程圖如圖3所示:
最后,我們采用了布局算法對以上三個算法運行的結果進行匯總分析,算法步驟為:
1)獲取執行布局的指定的父節點下的所有Vertex元素,放入元素集合vertexArray;
2)為元素集合中的元素創建路徑(形如’0.0.0.1’),并計算cellLocation的x,y軸坐標,元素半徑等;
3)開始布局執行事務;
4)迭代獲取元素集合中每個元素的連線及連線的終端元素,放入edges和cells集合中,并為每個連接終端創建元素路徑,放入neighbours集合中;
5)根據指定迭代次數順序執行calcRepulsion算法,calcAttraction算法,clacPositions算法,reduceTemperature方法 (計算布局執行的熱度的函數);
6)移動所有執行布局算法的元素到新的坐標;
7)提交布局執行事務。
具體算法流程圖如圖4:

圖5 最終運行結果

圖6 最終運行結果圖
通過以上4個算法對后端程序所獲取到的數據進行處理,在Web端的網頁上繪制出清晰明了的圖形化撲結構圖,用戶可以在Web瀏覽器上對整個網絡拓撲結構進行掌控。該運行結果圖基于服務端采集保存于MySQL數據庫中的網絡拓撲結構信息。有關于后端模塊的相關信息為另一篇論文所述,再次不再繁述。本模塊實現從服務器端獲取網絡拓撲結構圖模板以及網絡拓撲結構圖中相關網絡設備的詳細信息,并根據模板數據渲染出網絡拓撲結構圖,用戶可在客戶端查看網絡設備列表,網絡設備詳細信息,搜索指定設備信息等功能。本模塊存在的局限性有如下幾個方面:需要部署服務器,運行在客戶端瀏覽器上;由于本模塊使用到mxgraph框架,若要使用本模塊完整功能,客戶端必須連接上Internet。最終運行結果如圖5、圖6、圖7所示:

圖7 最終運行結果圖
網絡拓撲可視化問題的研究難點主要來源于以下方面:網絡本身的復雜性;缺乏進行系統研究的方法論。而我們項目研究結果所采用的網絡拓撲可視化的解決方法僅僅只是眾多網絡拓撲可視化解決方式的其中一種,可能還存在著諸多的不足,其中包括用戶權限的管理,子路由的發現與探測等。我們將在接下來的時間中,繼續對該項目進行合理的完善,以求能夠完美的實現我們的最終目標。