NS2 AODV协议添加新的数据包类型.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NS2 AODV协议添加新的数据包类型

2011-06-28 12:28?1289人阅读?评论(8)?收藏?举报structaccessclasstimertclmacros在AODV协议基础上添加一种新的控制包类型,可以模仿AODV协议本身的RREQ、RREP、HELLO等来实现。这里我要在AODV协议中添加一个ISOLATE的数据包类型。首先在aodv_packet.h中[cpp]?view plaincopy#define?AODVTYPE_HELLO??????0x01??#define?AODVTYPE_RREQ???????0x02??#define?AODVTYPE_RREP???????0x04??#define?AODVTYPE_RERR???????0x08??#define?AODVTYPE_RREP_ACK???0x10??#define?AODVTYPE_ISOLATE????????0x20????加入AODVTYPE_ISOLATE???????????????????????????0x20接着添加数据包申请内存空间的宏[c-sharp]?view plaincopy/*??*?AODV?Routing?Protocol?Header?Macros??*/??#define?HDR_AODV(p)?????((struct?hdr_aodv*)hdr_aodv::access(p))??#define?HDR_AODV_REQUEST(p)?????((struct?hdr_aodv_request*)hdr_aodv::access(p))??#define?HDR_AODV_REPLY(p)???((struct?hdr_aodv_reply*)hdr_aodv::access(p))??#define?HDR_AODV_ERROR(p)???((struct?hdr_aodv_error*)hdr_aodv::access(p))??#define?HDR_AODV_RREP_ACK(p)????((struct?hdr_aodv_rrep_ack*)hdr_aodv::access(p))??#define?HDR_AODV_ISOLATE(p)???((struct?hdr_aodv_isolate*)?hdr_aodv::access(p))???接着要具体定义新的数据包格式了。我这里定义的AODV的格式如下所示:[c-sharp]?view plaincopystruct?hdr_aodv_isolate?{??u_int8_t?iso_type;??//类型编号??u_int8_t?reserved[3];?//保留字,没用到??u_int8_t?mal_count;???//Malicious?node?number????????u_int32_t???????iso_bcast_id;????//?Broadcast?ID???nsaddr_t?malicious_node_addr[AODV_MAX_ISOLATE];?//malicious??double???obs[AODV_MAX_ISOLATE];??nsaddr_t?src_addr;????????????//源节点??inline?int?size()?//计算数据包的大小??{??????int?sz?=?0;??????/*??????sz?=?sizeof(u_int8_t)?//type???????????+?sizeof(nsaddr_t)?//malicious_node_addr???????????+?sizeof(nsaddr_t)?//src_addr??????????????????????+?sizeof(u_int32_t)?//iso_bcast_id?????*/??????????sz?=?(2*mal_count+3)?*sizeof(u_int32_t);??????????assert(sz);??????????return?sz;??????}?????};???然后是在hdr_all_aodv添加hdr_aodv_isolate,如下所示:[c-sharp]?view plaincopy//?for?size?calculation?of?header-space?reservation??union?hdr_all_aodv?{????hdr_aodv??????????ah;????hdr_aodv_request??rreq;????hdr_aodv_reply????rrep;????hdr_aodv_error????rerr;????hdr_aodv_rrep_ack?rrep_ack;

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档