您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 网路模拟器NS-2之使用手册
1網路模擬器NS-2之使用手冊(草稿)作者:黃國棟黃漢祥黃紀璟中華大學資訊工程系中華民國九十一年三月2目錄安裝手冊…………………………………………………………………….…..01~091.使用需求………………………………………………………….…….….012.在WindowsMe/2000安裝方式………………………………….…….….013.補充……………………………………………………………….…….…..084.參考網址………………………………………………………….…….…..09使用手冊…………………………………………………………………..……..10~18附錄一、OutputFileFormat...…………………………………………………...19~251.NAM各欄位格式及範例…………………………………………………..192.NEWTRACEFILE格式…………………………………………………...23附錄二、TCL語法整理…………………………………………………………26~333§安裝手冊§一、使用需求:‧電腦週邊設備:CPU:600MHz以上。記憶體:256M以上。硬碟容量:40GB以上。‧寬頻網路:NS2各元件需要快速的連線網路下載,各元件的檔案總共數百MegaBytes。‧VisualC++6.0。二、在WINDOWME/2000的安裝方式:1.在DOS環境下c:\program\Microsoftstudio\VC98\bin執行vcvars32.bat的批次檔,藉以設定VisualC++的路徑以及環境變數;並且可以手動編輯autoexec.bat中路徑或環境變數。以下為一Autoexec.bat的範例,僅供參考,並不硬性規定需如此設定:@echooffvcvars32.batsetPATH=%PATH%;c:\netsim\tclsetPATH=%PATH%;c:\netsim\tksetPATH=%PATH%;c:\netsim\otclsetPATH=%PATH%;c:\netsim\tclclsetPATH=%PATH%;c:\netsim\ns2setPATH=%PATH%;c:\progra~1\tcl@echoon2.新增一個NetSim的資料夾在C:\裡面。或是新增在你想放置的磁碟中。3.DOWNLOADNS2的個別元件:a.TCL(ToolCommandLanguage),anopensourcescriptinglanguage。b.TK:(ToolKit),AGUIextensionforTCL。c.OTCL:物件導向的Tcl/Tk延伸。d.TCLCL:Tcl/C++interface。e.ns-2.1b7orhigher(在此列舉2.1b8的版本)。4.解壓縮以上所DOWNLOAD的檔案到C:\NetSim的資料夾中,解壓縮之後在NetSim資料夾中應該是〈圖一〉這種情況。4〈圖一〉5.安裝tclandtk:第一步就是complietcl:在tcl目錄按下dir/w指令就可以看到跟〈圖二〉類似的目錄:〈圖二〉在tcl中最需要注意的莫過於他的子資料夾win,而最重要的就是他裡面一個叫makefile.vc的資料夾,在makefile.vc中需要修改一些設定如〈圖5三〉反白處:〈圖三〉最主要修改的地方是:倒數二、三行的地方,在c:\progra~1\micro~3\vc98這一行中,需注意的是micro~3,需依照使用者所安裝目錄順序所決定。在此,因為MicrosoftVisualStudio安裝的順序在MicrosoftFrontPageandMicrosoftOffice之後,所以這裡才需改為micro~3。6.接下來就是compile,在c:\netsim\tcl\win下執行下列的指令:nmake–i–fmakefile.vc‧nmake:執行VisualC++指令的compiler。‧-i:忽略錯誤現象且持續執行。‧-f:使用下列的檔案去compile。7.接下來在tk部分則是跟tcl是一樣的步驟,記得要到跟〈圖四〉一樣的位置去更改有關路徑的部分:〈圖四〉68.安裝otcl/tclcl:如前面安裝tclandtk一樣,適當的修改makefile.vc的檔案,就能判定之前tclandtk的路徑是否正確。〈圖五〉就是tclandtk的一部份:〈圖五〉修改完畢之後,在c:\netsim\otcl\下執行nmake–i–fmakefile.vc。compile完之後,在otcl的目錄底下就可以看到像〈圖六〉一樣的檔案內容:〈圖六〉7(在這裡NetSim資料夾是建立在D磁碟中)9.下一步是compiletclcl,有點不一樣的步驟是在d:\netsim\tclcl\conf\makefile.win要如〈圖七〉般在反白處更改路徑:〈圖七〉另一個需要注意的是,在反白處的下三行,若放置netsim資料夾的路徑與其不同,則需改為使用者自行設置的路徑。如〈圖八〉:〈圖八〉8確認一下tclandtk的版本是否正確,版本的問題牽扯到所需Load的檔案的名稱,因此務必要確認。如〈圖九〉:〈圖九〉緊接著需要再確認tcl、tk、otcl、tclcl的資料夾是否設定妥當,必須和在Netsim目錄底下的各個tcl、tk、otcl、tclcl的目錄完全相同才可以,否則會有找不到路徑及檔案的錯誤出現。設定如〈圖十〉:9〈圖十〉回到tclcl的目錄,執行nmake–i–fmakefile.vc,執行完後,在tclcl目錄下的資料應該跟〈圖十一〉類似才是正確的:〈圖十一〉§在做下一個步驟之前,以下兩項作業必須已經完成好了:‧tclandtk已經安裝在適當的programfile目錄下。‧otclandtclcl已經compiler完成。10.compilingNS:確認已經把tcl,tk,otcl,tclcl的資料夾在路徑環境變數中10(PATHenvironmentvariable)已經設定好了,comfigurationforNS跟tclcl的大部分都相同,需要修改的configuration的檔案是在/conf中的makefile.win,如〈圖十二〉:〈圖十二〉以下做法皆跟tclcl的步驟一樣:‧確認VisualC++的路徑是否正確:MSVCDIR=c:\progra~1\micros~3\VC98。‧需要特別注意localdirectory是否正確:LOCAL_SRC=d:\NetSim。‧確認一下tclandtk的版本是否正確。‧再確認tcl,tk,otcl,andtclcl的資料夾是否設定妥當。‧回到NS的目錄並且compile,執行nmake–i–fmakefile.vc。如果執行順利,NS的compile就完成了。三、補充:在做任何一次nmake之前,假如在此次compiler之前已經有compiler的記錄時,則需先執行過”nmake–I–fmakefile.vcclean”的動作,將先前compiler過的程序清除,才能夠讓此次的compiler能夠順利的進行,否則它會先去判斷是否有make過所產生的檔案或目錄,如果存在,則當做已經make成功而不會重新的make過。如果遇見無法nmakeclean的問題,則看它所出現的某些檔案或目錄太長或者無法清除,用手動的方式將其清除再重新執行”nmake–I–Fmakefile.vc”的指令,到目前為止,只發現在ns-2.1bX的目錄中會有此問題存在,原因是11因為ns在compiler時會產生很多*.o的Object檔,而因為太多而無法使用nmake–I–fmakefile.vcclean的指令來清除,需要手動下“del*.o”並且將gen\目錄給全部清除,因為在nmakeclean時,遇見了錯誤訊息後便無法繼續removegen的動作,所以也需手動來清除。四、參考網址:若有其他的疑問,可以至以下網址查詢。‧‧~magico/nsFiles/InstallNS1.html‧‧§使用手冊§1.先Implement一個使用者想要模擬的protocolintoNS2。這裡將介紹李志平學長使用C++撰寫的protocol。2.用名為LeeAgent的class去implement學長的protocol,在這個class中一開始需要宣告node的主要routingtable、備份routingtable和處理packets的函式,這樣在NS2的環境中,每個node都會有LeeAgent的所宣告的環境。以下就是部分的headerfile:classLeeAgent:publicAgent{friendclassMyHelloTimer;public:LeeAgent(nsaddr_tid);voidrecv(Packet*p,Handler*);voidrt_ll_failed(Packet*p);voidlee_failed(Packet*p);voidpurge();voiddump();protected:intcommand(intargc,constchar*const*argv);voidaddnb(nsaddr_tnid);intfindnb(nsaddr_tnid);voiddelnb(nsaddr_tnid);voidchecknb();voidCheckMainRoute(nsaddr_tnid);voidrt_resolve(Packet*p);voidrecovery(nsaddr_tsid,nsaddr_tdid);voidretransmit(nsaddr_tdid,nsaddr_tnid);voidforward(Packet*p,nsaddr_tnexthop,doubledelay);voidrecvLEE(Packet*p);voidrecvMQRY(Packet*p);voidrecvMRPY(Packet*p);voidrecvMFQ(Packet*p);voidrecvBQRY(Packet*p);voidrecvBRPY(Packet*p);voidrecvHELLO(Packet*p);voidrecvFQ(Packet*p);voidrecvUPD(Packet*p);13voidrecvFW(Packet*p);voidrecvCLR(Packet*p);voidsendMQRY(nsaddr_tsid,nsaddr_tdid);voidsendMRPY(nsaddr_tsid,nsaddr_tdid,nsaddr_txid,inthtd_);voidsendMFQ(nsaddr_tsid,nsaddr_tdid);voidsendBQRY(nsaddr_tsid,nsaddr_tdid,intmyhtd,intk);voidsendBRPY(nsaddr_tsid,nsaddr_tdid,inthop,intshtd,intdesthtd,nsaddr_tnexthop__);voidsendHELLO();voidsendFQ(nsaddr_tnid);voidsendFW(nsaddr_tsid,nsaddr_tdid,intshtd);voidsendUPD(nsaddr_tsid,nsaddr_tdid,nsaddr_txid,inthtd_,intstatus);voidsendCLR(nsaddr_tsid,nsaddr_tdid,nsaddr_txid,intshtd_,intdhtd_);virtualvoidreset();voidtrace(char*fmt,...);inlineintinitialized(){ret
本文标题:网路模拟器NS-2之使用手册
链接地址:https://www.777doc.com/doc-3317177 .html