資源描述:
《網絡仿真器NS2剖析》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、第一章、背景1.1局域網仿真局域網仿真是局域網設計的重要環(huán)節(jié),也是網絡性能分析的關鍵。計算機局域網設計、模擬和性能分析系統(tǒng)的研究是一個非常有意義的課題。它使設計者在設計階段就能對所設計的網絡的性能作岀準確的預測,合理修改英設計,選擇符合要求的性價比較優(yōu)的方案。進行計算機仿真,利用仿真中間參數(shù)分析系統(tǒng)性能是分析某一計算機網絡系統(tǒng)的性能的常用方法。采用系統(tǒng)仿真的方法,能對各組件的行為進行較精確的模擬,獲得足夠數(shù)據(jù)來對系統(tǒng)的性能進行較準確的預測。在構造一個局域網Z前,需要設計此網絡的拓撲圖,各層協(xié)議等等。要達到最優(yōu)的效果,需要對圖的結構等等進行不斷的修改。
2、如果用手工計算、調整,則不僅耗功耗時,還可能留I、?不可預計的漏洞。而要直接進行操作系統(tǒng)上的編程工作,則不斷的修改、調試讓人無法忍受,更重要的是由于實際機器的影響,很多工作都無法進行。類似的情況發(fā)工在我們研究網絡算法時,如果直接在各種操作系統(tǒng)上編程、測試,便無可避免與操作系統(tǒng)內核打交道。這需要特別熟悉操作系統(tǒng)的內核,操作系統(tǒng)內核的復雜性大大增加了編程的難度,這使我們將更多的精力投入對操作系統(tǒng)的編程而不是對算法的研究。1.2仿真器基于以上種種考慮,我們需要?個與操作系統(tǒng)無關的平臺,它可以屏蔽掉對操作系統(tǒng)的實際的訪問,且能近乎真實地模擬網絡環(huán)境,讓我們可
3、以在各個層次上模擬網絡的運行。事實上,已有許多研究機構對此作出努力,并開發(fā)出自己的網絡仿真器。比如,ColumbiaUniversity的NEST,作者為AlexDupuyoUniversityofCalifornia的S.Keshav在NEST的基礎上,進行修改,就形成后來的REAL網絡仿真器。之后,LawreceBerkeleyNationalLaboratory實驗室的NetworkResearchGro叩工作組對REAL進彳j?進一步的修改,終于得到LNBLNetworkSimulator,即ns的第一版。UCBerkeley的MASH研究組
4、對LNBL繼續(xù)改進,將它的版本提高到2.1b7a,這是一個很優(yōu)秀的軟件。用一句話概括這個軟件的功能就是:它可以在一臺計算機上動態(tài)仿真一個網絡的運行。本文的任務就是盡可能介紹UCBerkeley改進過的NS2,介紹其功能、使用方法,與其一起工作的工具,分析其源代碼,并介紹對它進行簡單擴展的方法。第二章、運行環(huán)境及語言支持2.1運行環(huán)境NS工具包有許多模塊組成,不同的組合可以在不同的操作系統(tǒng)上運行。如:Windows系列,Linux^Unix、Macintosh等等。為了運行ns,還要求系統(tǒng)裝有C++編譯器。整合的Ns-allinone2.1b7a包含了
5、比較完整的工具包,但是只能在Linux下運行。2.2語言支持值得注意的是NS的主代碼由兩種語言寫成:C卄和OTclo因為仿真器有兩方面的需要:1)…方面,對協(xié)議細節(jié)的仿真需要八種比較系統(tǒng)的編程語言,它能高效地對字節(jié)、數(shù)據(jù)報頭進行操作,能高效實現(xiàn)運行在大量數(shù)據(jù)集上的算法。對于這些任務,運行時間(runtime)是我們最關心的,要盡可能少,而轉換時間(turn-aroundtime,含運彳亍,調試)可以反一些。2)另一方面,對網絡研究會涉及到對網絡實體的參數(shù)或配置的修改,或是對網絡事件的修改。在這些情況下,反復時間(iterationtime,即變換模型
6、,重運行)更重要。由于配置僅運行一次(在仿真剛開始時),因此這一部分任務的運行時間可不用考慮。C++與Otcl解決了這兩種需要。C++程序的運行時間很短,但轉換時間很長,正適合用于實現(xiàn)具體的協(xié)議。Otcl運行得很慢,但可以很快的轉換(或是交互),用來進行仿真的配置最適合不過。然后,通過tclcl模塊將出現(xiàn)在兩種語言里的變量、對象膠合起來。當然以上的分法并不是絕對的,例如:許多路由是由Otcl實現(xiàn)的,但英核心一一Dijkstra算法是用C++來實現(xiàn))。通常,如果需要在一秒鐘內調用許多次的模塊,最好還是用C++代碼實現(xiàn)。第三章、NS各模塊及功能這章著重介
7、紹:?NS內各大模塊及功能,?結合模塊介紹整個工具包的工作機制?NS內含的幾個單獨的小工具包3.1模塊概述Ns-allinone2.1b7a中含有12個模塊:模塊版本號必選/可選1TelTelrelease&3.2必選2TkTkrelease8.3.2必選3Otclotclrelease1.0a6必選4TclCLtclclrelease1.0b10必選5Nsnsrelease2.1b7必選6TclDebugtcl?debugrelase1.9可選7NamNamrelease1.0a9可選8Xgraphxgraphversion12可選9GT-ITMG
8、eorgiaTechInternetworkTopologyModeler可選10SGBStanfordGr