网络仿真器NS2之使用手册Word格式文档下载.docx

上传人:b****2 文档编号:15110005 上传时间:2022-10-27 格式:DOCX 页数:32 大小:1,019.36KB
下载 相关 举报
网络仿真器NS2之使用手册Word格式文档下载.docx_第1页
第1页 / 共32页
网络仿真器NS2之使用手册Word格式文档下载.docx_第2页
第2页 / 共32页
网络仿真器NS2之使用手册Word格式文档下载.docx_第3页
第3页 / 共32页
网络仿真器NS2之使用手册Word格式文档下载.docx_第4页
第4页 / 共32页
网络仿真器NS2之使用手册Word格式文档下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

网络仿真器NS2之使用手册Word格式文档下载.docx

《网络仿真器NS2之使用手册Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《网络仿真器NS2之使用手册Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。

网络仿真器NS2之使用手册Word格式文档下载.docx

一、使用需求:

‧计算机外设设备:

⏹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的范例,仅供参考,并不硬性规定需如此设定:

@echooff

vcvars32.bat

setPATH=%PATH%;

c:

\netsim\tcl

\netsim\tk

\netsim\otcl

\netsim\tclcl

\netsim\ns2

\progra~1\tcl

@echoon

2.新增一个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数据夹中应该是〈图一〉这种情况。

〈图一〉

5.安装tclandtk:

第一步就是complietcl:

在tcl目录按下dir/w指令就可以看到跟〈图二〉类似的目录:

〈图二〉

在tcl中最需要注意的莫过于他的子数据夹win,而最重要的就是他里面一个叫makefile.vc的资料夹,在makefile.vc中需要修改一些设定如〈图三〉反白处:

〈图三〉

最主要修改的地方是:

倒数二、三行的地方,在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是一样的步骤,记得要到跟〈图四〉一样的位置去更改有关路径的部分:

〈图四〉

8.安装otcl/tclcl:

如前面安装tclandtk一样,适当的修改makefile.vc的档案,就能判定之前tclandtk的路径是否正确。

〈图五〉就是tclandtk的一部份:

〈图五〉

修改完毕之后,在c:

\netsim\otcl\下执行nmake–i–fmakefile.vc。

compile完之后,在otcl的目录底下就可以看到像〈图六〉一样的档案内容:

〈图六〉

(在这里NetSim数据夹是建立在D磁盘中)

9.下一步是compiletclcl,有点不一样的步骤是在d:

\netsim\tclcl\conf\makefile.win要如〈图七〉般在反白处更改路径:

〈图七〉

另一个需要注意的是,在反白处的下三行,若放置netsim数据夹的路径与其不同,则需改为使用者自行设置的路径。

如〈图八〉:

〈图八〉

确认一下tclandtk的版本是否正确,版本的问题牵扯到所需Load的档案的名称,因此务必要确认。

如〈图九〉:

〈图九〉

紧接着需要再确认tcl、tk、otcl、tclcl的数据夹是否设定妥当,必须和在Netsim目录底下的各个tcl、tk、otcl、tclcl的目录完全相同才可以,否则会有找不到路径及档案的错误出现。

设定如〈图十〉:

〈图十〉

回到tclcl的目录,执行nmake–i–fmakefile.vc,执行完后,在tclcl目录下的数据应该跟〈图十一〉类似才是正确的:

 

〈图十一〉

在做下一个步骤之前,以下两项作业必须已经完成好了:

‧tclandtk已经安装在适当的programfile目录下。

‧otclandtclcl已经compiler完成。

pilingNS:

确认已经把tcl,tk,otcl,tclcl的数据夹在路径环境变量中(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的目录中会有此问题存在,原因是因为ns在compiler时会产生很多*.o的Object档,而因为太多而无法使用nmake–I–fmakefile.vcclean的指令来清除,需要手动下“del*.o”并且将gen\目录给全部清除,因为在nmakeclean时,遇见了错误讯息后便无法继续removegen的动作,所以也需手动来清除。

四、参考网址:

若有其它的疑问,可以至以下网址查询。

‧http:

//www.isi.edu/nsnam/ns

//www.public.iastate.edu/~magico/nsFiles/InstallNS1.html

//www.isi.edu/nsnam/ns/ns-tests.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);

voidrecvFW(Packet*p);

voidrecvCLR(Packet*p);

voidsendMQRY(nsaddr_tsid,nsaddr_tdid);

voidsendMRPY(ns

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1