您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/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-4011988 .html