ITPub博客

首页 > IT基础架构 > 网络安全 > 向NS2中添加新协议类型的步骤

向NS2中添加新协议类型的步骤

原创 网络安全 作者:xmuguoxin 时间:2009-03-03 22:09:32 0 删除 编辑

[具体的可以参考ping协议的实现例子]

在NS2中定义一种新的类型的packet,至少要实现如下4个步骤。下面以ns2中的tcp包头为例子说明。

具体源码见 "~ns/tcp" 目录、 "~ns/common" 目录以及"~ns/tcl/lib" 目录下的相关文件。

1. 为packet头定义一个struct数据类型, 例如 "struct hdr_tcp"; ( 在 "~ns/tcp/tcp.h" 文件中)
2. 实现该packet的OTcl linkage,即需要定义一个 PacketHeader 类。例如 static class TcpHeaderClass,并需要将"PacketHeader/TCP" 作为参数传给该类的构造函数; (在 "~ns/tcp/tcp.cc" 文件中)
3. 在 "~ns/common/packet.h" 文件中,为 enum packet_t 添加一个新的条目 "PT_TCP" ,并在p_into类的构造函数中添加一个新的数组元素 name[PT_TCP] = "tcp",要注意此处的位置必须对应。
4. 在文件 "~ns/tcl/lib/ns-packet.tcl" 中添加,往 "foreach prot" 中添加一行 "TCP" 。

以上各个步骤中,步骤1是为了定义新的包头格式;步骤2是为了能够将该数据包与Otcl联系起来;步骤3是为了在trace中能够使用该数据包,注意name[PT_TCP]="tcp",其中的 "tcp" 即是出现在trace文件中的第五列,pkt type;步骤4是为了NS在启动的时候能够载入我们定义的包头。

最后需要注意:如果新建的协议是无线路由协议,则还需要在 "~ns/tcl/lib/ns-lib.tcl" 文件中Simulator的create-wireless-node方法中添加相应的处理。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9378682/viewspace-1018026/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Tcl语法简介
下一篇: c++
请登录后发表评论 登录
全部评论
  • 博文量
    8
  • 访问量
    18622