摘要:首先介紹了網絡測量的基本概念和AMP項目的背景,然后闡述了基于Java的可視化環境,實現原始測量數據的整理和可視化。可視化結果可以明顯地幫助研究人員準確及時地了解并分析當前網絡的狀況。
關鍵詞:主動測量;AMP;可視化;Java
中圖分類號:TP391文獻標志碼:A
文章編號:1001—3695(2007)03—0271—04
Internet已滲透到社會生活的各個角落,其重要性日益顯著,網絡結構日益復雜,但在取得輝煌成果的同時,也在網絡性能、信息安全方面暴露出許多問題。因此,越來越有必要對網絡的整體拓撲結構和網絡行為進行深入的了解、分析,這使得系統的網絡測量這一研究互聯網及其應用的基礎性課題成為必然而迫切的需求。
美國應用網絡研究國家實驗室(NationalLaboratoryofAppliedNetworkResearch,NLANR)測量和網絡分析小組[1](MeasurementandNetworkAnalysisTeam,MNA)的主動式測量項目AMP[2]的目的就是通過收集和公布網絡測量的原始數據、結果的可視化和數據的分析來實現網絡測量。AMP項目主動測量所得數據的可視化是中國科學院計算機網絡信息中心和加利福尼亞大學圣地亞哥分校超級計算中心合作來實現的。數據可視化的目的是實現一個更加便捷的方法來獲得和分析AMP主動測量的數據。
1網絡測量概念
網絡測量[3]是指遵照一定的方法和技術,利用軟件和硬件工具來測試或驗證表征網絡性能指標的一系列活動的總和。
1.1網絡測量方法
最常見的網絡性能測量方法有兩類[4],即主動測量和被動測量。這兩種方法的作用和特點不同,可以相互作為補充。
主動測量是在選定的測量點上利用測量工具有目的地主動產生測量流量,注入網絡,并根據測量數據流的傳送情況來分析網絡的性能。主動測量的優點是對測量過程的可控性比較高;缺點是注入的測量流量會使測量的結果與實際情況存在一定的偏差并增加網絡負擔。
被動測量是指在鏈路或設備(如路由器、交換機等)上利用測量設備對網絡進行監測,而不需要產生多余流量的測量方法。被動測量的優點在于理論上它不產生多余流量,不會增加網絡負擔;其缺點在于被動測量基本上是基于對單個設備的監測,很難對網絡端到端的性能進行分析,并且可能實時采集的數據量過大,另外還存在用戶數據泄漏等安全性和隱私問題。
1.2網絡測量的對象和性能指標
根據測量內容的不同,網絡測量可分為網絡拓撲測量、網絡性能測量和網絡流量測量。
網絡拓撲測量主要是了解網絡拓撲結構,用于指導資源調節和流量分配。網絡性能測量主要是通過監測網絡端到端的時延、抖動、丟包率等特性,了解網絡的可達性、利用率以及網絡負荷等。網絡流量測量主要是對網絡數據流的特性進行監測和分析,以掌握網絡的流量特性,如協議的使用情況、應用的分布和用戶的行為特征等。
IETF的IPPM工作組已定義了一些Internet度量的指標,并指出了度量的框架[5]。常用的分析指標有單向時延(One-Way-Delay)和往返時間(Round-TripTime,RTT)、丟包率(Pac-ketLoss)、可連接性(Connectivity)、吞吐率(Throughput)、瞬時分組延時差、大批傳輸容量(BulkTransferCapacity)、帶寬利用率(BandwidthAvailability)、瓶頸帶寬估計(BottleneckBandwidthEstimation)、周期流(PeriodicStream)網絡性能。其中,最基本的三大指標為時延、丟包率和帶寬。
1.3網絡測量研究現狀
網絡測量不但有廣闊的工程應用前景,也有很高的學術價值,國內外許多科研機構和學術組織都在進行網絡測量方面的研究。
從1996年開始,IETF即開始對流量工程有關的領域進行跟蹤,相關的工作組也成立了很多,如IETF(InternetEnginee ̄ringTaskForce,互聯網工程任務組)專門成立了ITRACE(ICMPTraceback,ICMP追蹤),IPPM(IPPerformanceMetrics,IP性能測量),TEWG(InternetTrafficEngineeringWorkingGroup,互聯網流量工程工作組)等工作組,進行相關理論的研究。
與IETF先理論后實踐的研究作風不同,許多國際組織走的是恰恰相反的一條道路。他們從實際情況和經驗出發,從很早就開始了網絡流量工程的研究。在這一領域較為活躍的組織或團體包括CAIDA(CooperativeAssociationforInternetDataAnalysis),NLANR/MNA,還有Bellcore和NLANR牽頭組織的ISMA(InternetStatisticsandMetricsAnalysis)小組等。一些公司(如Sprint)和學術團體(如LawrenceBerkeleyNationalLaboratory,LBNL實驗室)也促進了測量的國際性合作以及資源共享。國際組織ACM下面的SIGCOMM小組贊助、LBNL實驗室維護的InternetTrafficArchive是最權威的國際測量檔案。雖然其中很多研究工作缺乏系統性,但是他們對推動網絡測量工程的發展也起了很大的作用。
2主動式測量項目AMP
2.1AMP項目簡介
在第1章已經介紹過,主動式測量是通過向網絡中注入測試流量數據,從其響應結果中獲得網絡狀態的測量方法。常用的主動式測量方法有Ping、Traceroute以及各自的衍生版本等。雖然主動式測量行為總要給網絡運行帶來影響,但是其可控性強,某些非常重要的網絡參數,如網絡延遲、路由路徑,經常隨著網絡狀態的變化而變化,而靜態的被動式測量很難反映這些變化。有計劃的大規模主動式測量對我們認識網絡狀態,預測網絡發展趨勢也有重要意義。
在網絡主動式測量方面工作最為出色的是NLANR/MNA。NLANR/MNA開發了網絡分析基礎結構(NetworkAnalysisInfrastructure,NAI)[6],如圖1所示,目的是建立一個測量體系結構,通過原始數據的收集和發布,分析測量結果,并實現測量結果的可視化,為HPC(HighPerformanceConnection,如vBNS和Abilene網絡)團體的工程和研究服務。它同時進行主動式和被動式的測量工程,其目標是更好地理解互聯網絡及其內部運行機制。圖1NAI體系結構
NAI中的AMP項目使用主動式網絡監視器來測量網絡運行的狀態參數,大約有150個主動式網絡監視器遍布北美大陸,在全世界范圍內則共有大約170個。這些監視器定期地互相發送測量消息,監測網絡狀態。每個使用網絡的人都可以使用某個監視器來測量網絡中其他監視器。通過整個網絡,對往返時間、丟包率、拓撲結構、吞吐量(使用者或者事件驅動進行)進行實時測量。由此可見,AMP項目是各個不同的組織和單位通力合作,完成一項復雜任務的典范。
AMP監視器的監控是高效的,覆蓋是廣泛的。該監控網允許工程師們快速地定位網絡中事件發生的地點、范圍、持續時間,主動式測量的結果給他們解決網絡故障、分析網絡行為提供了一個捷徑。AMP項目長期積累的資料允許工程師們、設計者和研究人員觀察日益增長的網絡流量所帶來的影響,并且改進網絡的設計和網絡長時間運行的能力。
2.2AMP項目原理
所有的AMP監視器通過因特網連接在一起,主要通過監視器節點和節點之間的測量來收集數據。每兩個節點每分鐘運行一次往返時間的測量程序,每兩個節點每十分鐘運行一次Traceroute程序來確定它們之間的路由信息。雙向延遲的測量采用的是一種叫Fping的程序。Fping和Ping的區別就是Fping可以同時對很多個站點發送ICMPECHOREQUEST分組。每隔一分鐘,這個程序就向每個測量主機發送一個ICMPECHOREQUEST分組,并等待收到一個ICMPECHOREPLY分組,然后記錄每個站點的延遲。如果發送了四個ICMPECHOREQUEST分組而在超時之前沒有收到任何ICMPECHOREPLY分組時,就認為分組丟失[7]。
通過測量搜集得到的原始數據將會發送到位于圣迭哥超級計算中心(SDSC)進行數據處理和整理,如圖2所示。為了增強系統的魯棒性,使用了兩臺同步的服務器,數據將會分別獨立地傳送給這兩臺服務器[8]。即使其中的一臺服務器癱瘓,這兩個服務器數據的一致性仍可以保證數據分析正常進行。
圖2AMP體系結構
服務器中的原始數據經過數據整理和分析后,NLANR/MNA將結果以數據和圖表的形式通過萬維網以網頁的形式發布。用戶進入中心數據是通過瀏覽器頁面的,各個監視站點是以超鏈接形式給出的。一旦選中某個監視器站點的超鏈接,該站點到其他站點的RTT和丟包率的測量結果就可以用圖表的形式給出了。此時,其他站點名字仍然是以超級鏈接的形式給出。如果表中站點的名字再次被選中,RTT和丟包率在這兩個站點間將以年月日的形式畫出,然后可以選中具體的日期查看任意某天的相關數據。路由數據也可以用表格的形式顯示出來(使用Traceout輸出)或者使用CAIDA的Otter工具畫出圖表來。以上這些結果均可以從NLANR主頁上查詢到。
2.3AMP的發展
從第一個AMP監視器于1998年12月部署以來,到現在大約有170個AMP監視器被部署在遍及美國高速研究網絡(HPC)和其他國家重要的網絡上進行點到點的測量,AMP項目取得長足的發展。目前的AMP項目涵蓋了兩個網絡,即HPC網絡(大約150個監視器站點)和國際網絡(它包括了所有的國際站點和HPC網絡的子網)。近期AMP的擴大和發展主要是將監視器部署在千兆級交換節點(GigaPoPs)和主干網絡上,開發AMP監視器節點的千兆級以太網接口。
AMP項目引領了一種新的方法來進行網絡測量(密集分布普通的監視器)。因此,越來越多的政府認識到他們將從AMP項目的性能測量系統中獲益。目前,AMP項目的目標是將其帶入新的領域,如其他國家網絡,與高校建立更深入的聯系,連接更多的國際站點,發展一個更大的測量系統等。
NLANR實驗室已經與中國的科技工作者建立了良好的合作關系。目前,已經有一個AMP節點部署在中國科學院計算機網絡信息中心(CNIC/CAS);另外一個節點則部署在香港交換中心上,美國國家科學基金會(NSF)資助的GLORIAD和TransPAC2國際網將連接入該交換中心。此外,NLANR/MNA已經被邀請在北京、上海、廣州、成都、沈陽、長春和中國網通/中國科技網網絡管理中心的另外七個千兆級交換節點上部署AMP監視器,以此作為中國下一代互聯網的一部分。
3AMP測量結果的可視化
3.1AMP項目可視化的必要性
網絡測量的體系結構從層次上說是一個數據工程。從高層到低層依次為數據表示、數據分析、數據管理、數據采集。其中數據表示即直觀形象地表示出測量結果。
NLANR實驗室的AMP項目在世界范圍內擁有大量的網絡監視器和數量極其龐大的監視器對,數據是以每個監視器站點之間的形式收集的,該項目每天都產生千兆的數據和成千上萬的網頁、圖表及摘要,形成了大量的原始數據。考慮到具體的細節分析,這些大量的數據是必要的,但不同的用戶關心的數據不同,所以很難決定測量系統得到的每部分數據重要與否,大量的數據妨礙了用戶了解及分析自己所關心的測量數據和事件。隨著該系統的不斷擴大,用戶越來越難瀏覽全部的數據,然后找出自己所需要的;但是如果不進行大量數據的收集,很容易就會將用戶感興趣的事件忽略過去。因此有必要使用、建立圖形用戶界面來實現數據的可視化,使用戶通過操作選擇自己所需的數據并實現動態的數據交互。
3.2可視化技術的實現
用戶需要通過網絡遠程觀看AMP監控的可視化結果。跨越網絡的可視化比本地可視化要難得多,因為需要解決網絡傳輸帶寬與測量得到的大數據量之間的矛盾。本文設計了基于JavaApplet的可視化環境,實現測量數據的本地化顯示。
JavaApplet是用Java語言編寫的一些小應用程序。這些程序是直接嵌入到頁面中,由支持Java的瀏覽器(IE或Netscape)解釋執行能夠產生特殊效果的程序。它可以大大提高Web頁面的交互能力和動態執行能力,同時也可以通過Java開發工具的AppletViewer來運行,便于開發者進行本地調試。
當用戶訪問這樣的網頁時,Applet被下載到用戶的計算機上執行。由于Applet是在用戶計算機上執行的,所以其執行速度不受網絡帶寬或Modem存取速度的限制,用戶可以更好地欣賞網頁上Applet產生的多媒體效果。
可視化環境主要由服務器端和客戶端構成,如圖3所示。服務器端數據庫中保存著主動網絡測量得到的數據。當Web服務器收到客戶端的可視化請求時(該請求由嵌入在HTML文件中的Applet發出),它調用相應的可視化Servlet提供數據服務;Servlet從數據庫中獲取可視化所需的數據,返回給客戶端;客戶端的Applet則根據收到的數據,在Java運行環境的支持下,在瀏覽器中生成可視化圖形。在有限的網絡帶寬條件下,由于采用了只傳送可見區域的數據、分步漸進傳送、傳輸與生成圖像同時進行的優化方法,使跨網可視化的動態效果接近于本地可視化所具有的水平。另外,還能實現從Internet自動安裝用戶端運行環境,使用戶通過網絡就能看到主動式測量采集所得數據的可視化結果。
3.3系統結構
根據系統功能,大致可將該系統分為數據組織整理、GUI、圖表顯示三個模塊。系統的結構如圖4所示。
圖3可視化支撐環境結構圖圖4系統結構圖
3.4模塊功能詳細說明
(1)數據組織整理模塊。該模塊的功能是負責數據信息的下載、分析、整理、存儲。目標是在不丟失信息的情況下,高效分析從服務器上傳輸到本地的原始數據,使數據能夠為GUI和圖表顯示模塊可用。
數據組織整理模塊首先從服務器上下載Applet程序到本地網頁上執行,顯示為用戶GUI界面;然后根據用戶在GUI界面上進行操作,將用戶所關心的AMP節點之間的主動式網絡測量信息的原始數據從服務器上下載,根據GUI和圖表顯示模塊要求的數據結構對原始數據進行分析、整理、排序(為了顯示的需要需對數據進行排序組織)和存儲,便于GUI和圖表顯示模塊進行調用。
(2)GUI模塊。該模塊主要是實現屏幕圖像的可視,并且提供用戶接口界面便于實現用戶與數據的交互,使用戶可以方便、及時地查詢到自己所感興趣的數據。
如圖5所示,該模塊根據數據組織整理模塊傳來的數據,顯示了世界范圍內AMP主動測量節點的位置,每一個點代表一個AMP監視器。GUI界面中AMP節點標簽是一個AMP監視器的列表,以便用戶可以選擇自己所需的節點,如果選擇將全部的監視點顯示出來,在美國境內大約有150個AMP監視器,在世界范圍內大約共有170個AMP監視器。用戶可以在任意兩個節點之間建立連接,實現AMP節點間主動式測量所得數據的查詢。在GUI界面中,會在查詢的兩個節點間連線表示,連線有著特定的顏色,并且顏色可能是動態的(根據用戶設置的刷新率而不斷刷新),每個顏色代表一定范圍的測量結果。
查詢時,用戶首先設置所需查詢數據的類型、刷新率等參數,然后選中所感興趣的AMP節點,在兩個AMP節點建立連接進行查詢。如果對某兩個節點之間的測量信息感興趣,可以雙擊兩節點之間的連線,這樣就可以調用圖表顯示模塊對該AMP節點之間的測量信息進行顯示。表1就是用戶可以選擇進行查詢的AMP主動測量得到的數據類型。
(3)圖表顯示模塊。該模塊主要負責直觀、形象地顯示測量分析結果,將抽象的數據集以所需圖形的形式表現出來。目標是既要全面、客觀地顯示測量結果,又要具有良好的視覺效果。
圖表顯示模塊的編寫用到了JFreeChart[9]開放源代碼的圖形庫。它是一個通過Java編寫的類庫,通過Java2D接口進行開發,使用該庫可以方便高效地進行時序圖表的繪制。
該模塊實現的是一個以圖表的形式探出的對話框,用戶可以在其中看見自己所需的兩個節點間的測量結果。顯示圖表(圖6)的數據具有良好的時效性(僅顯示最近一段時間范圍內的數據),觀察點也可以變化(在圖表上放大或縮小),并進行存儲(可以將圖表存儲為自己所需的圖像格式)或打印。在使用圖表進行網絡分析時,它可以為我們進行網絡主動式測量收集的數據顯示提供一個新的視野,也可以幫助我們分析數據,了解數據變化的趨勢,直觀表現數據的內在含義。
圖5GUI界面
圖6查詢結果的圖表顯示
4結束語
本文基于AMP項目主動測量所得數據的特點,設計并實現了以圖表形式進行數據的可視化。可視化的結果可以幫助研究人員從繁雜的數據中脫離出來,準確及時地了解自己所關注的網絡相關的性能指標。目前,本系統已經在NLANR/MNA服務器上部署,其表現良好,具有很強的實用性。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。