NS2简单地添加路由协议方法

NS2简单地添加路由协议方法

ID:41589813

大小:57.89 KB

页数:5页

时间:2019-08-28

NS2简单地添加路由协议方法_第1页
NS2简单地添加路由协议方法_第2页
NS2简单地添加路由协议方法_第3页
NS2简单地添加路由协议方法_第4页
NS2简单地添加路由协议方法_第5页
资源描述:

《NS2简单地添加路由协议方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、NS2上实现一个简单的路由协议NS2版木:2.34要实现简单的路由协议:就是按照你的要求从节点1发到节点2在从节点2发到节点3,我修改的是node节点的addr-classifier功能,因为addr-classifier是负责包的转发功能。所有的数据都是通过addr-classifier转发出去或者转发给上层协议。用port-classifier也可以实现类似功能,但是在仿真的时候不能加入数据比如ftp数据。最后还是要在addr-classifier中对数据进行处理。以下是执行步骤:1)首先在route-proto.tcl添加一个路山simple什么事情都不做。加入办法为:1C

2、lassAgent/rtProto/simple-superclassAgent/rtProto2Agent/rtProto/simpleprocinit-allargs{}加入的位置大家可以观察一下其他类似的语句,那些是其他协议的句了使用时要记得在仿真脚本加N$nsrtprotosimple〃这个在后面仿真的tel文件会看到,现在不用管它2)之厉就是修改classifier的功能了。耍把收到的包按照你的耍求转发。我定义新的文件为classifier-ants.hfll.cc放在文件ns-2.34/classifier里classifier-ants.h文件为:#include"

3、classifier.h”classAntsClassifier:publicClassifier{public:AntsClassifier();voidrecv(Packet*p,Handler*h);//处理接收的报文intnid;//节点对应的编号,在ns2里节点是从0开始逐一编号的,在对应的tel脚木有定义};classifier-ants.cc文件为:#include"classifier.hH#include"classifier-ants.h”staticclassAntsClassifierClass:publicTcICIass{public:AntsClas

4、sifierClass():TclClass(MClassifier/AntsH){}TclObject*create(int,constchar*const*){return(newAntsClassifier());}}class_ants_classifier;AntsClassifier::AntsClassifier(){bind("tid&nid);}voidAntsClassifier::recv(Packet*p,Handler*h){NsObject*node=NULL;Tcl&tel=Tcl::instance();if(nid==O){tcl.evalf(n

5、[Simulatorinstance]get-link-head%d%dM,0,1);//[Simulatorinstance]获取当前实例node=(NsObject*)TclObject::lookup(tcl.result());//获取链路0-1对象的指针node->recv(p,h);}if(nid==1){tcl.evalf("[Simulatorinstance]get-link-head%d%d”,1,3);node=(NsObject*)TclObject::lookup(tcl.result());node->recv(p,h);}if(nid==3){fre

6、e(p);}仿真时我设置了4个节点0,1,2,3功能是0发给1,1发给3.在这里tid_是相对应的节点的节点号,要从tel获得,但是对应的classifier没有这个变量要从node的id_获得的,所以用bind进行绑定,要注意的是节点获得id号之后id_才赋值了,3)在这里我添在ns-node.tcl文件的$selfnodeid$id_;#Propagateid_intoC++space语句之后,加入Classifier/Antssettid_$id_就能把id_的值传给tid_T,Z后bind就能把tid_就能传给nid4)在写了新的class币er功能后要记得在ns-rtm

7、odule.tcl注册,因为修改classifier是修改module模块加上:RtModule/Antsinstprocregister{node}{$selfnext$node$selfinstvarclassifiessetclassifies[newClassifier/Ants]$nodeinstall-entry$self$classifier_}-5)当然还要在rtmodule.h和rtmodule.cc修改。在rtmodule.h上加上:classAntsRout

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。