ns中AODV协议分析 在ns2.27中,AODV路由协议主要包括以下几个组件: 1、协议实体 2、路由表 3、定时器 (1)广播定时器 (2)周期Hello报文广播定时器 (3)用于邻居管理的定时器 (4)用于路由缓存的定时器 (5)用于本地修复的定时器 (6)缓存广播ID的定时器 4、日志记录器 5、路由缓存队列 首先来看协议从接收到一个分组开始的基本流程。 当协议接收到一个分组,即recv(Packet*, Handler*)函数被调用,函数根据分...
by shuying3344 - Linux文档专区 - 2008-11-03 09:59:03 阅读(1073) 回复(0)
在ns2.27中,AODV路由协议主要包括以下几个组件:1、协议实体2、路由表3、定时器(1)广播定时器(2)周期Hello报文广播定时器(3)用于邻居管理的定时器(4)用于路由缓存的定时器(5)用于本地修复的定时器(6)缓存广播ID的定时器4、日志记录器5、路由缓存队列首先来看协议从接收到一个分组开始的基本流程。当协议接收到一个分组,即recv(Packet*, Handler*)函数被调用,函数根据分组类型调用不同的处理函数进行处理。1、如果是...
ns2中的能量模型主要针对无线网络,如Ad-hoc及WSN。其能量模型的实现在~ns/mobility/energy-model.h/cc,同时在~/ns/mac/wireless-phy.h/cc中进行引用,用来实现能量的控制,如发送能量、接收能量。
基于Agent其实可以做很多的事了,有的看起来不是Agent的事,例如底层的协议,都可以换一个角度用Agent来做,最典型的AODV就是这样。也就是说Agent能做的事就是:把数据包从底层拿上来,处理一下,然后或者转发出去或者直接交给本节点的应用层。 基于Agent的开发简单,开发者不必去关心底层的实现,这是最大的好处。一般来讲基于Agent开发只需要这样几个文件:yourAgent.h yourAgent.cc yourAgent.tcl,当然你可以把yourAgent.cc优...
1. ns2中数据包packet类结构图: packet类中的access函数如下: inline unsigned char* access(int off) const { if (off access(offset_); } 从以上的函数可以看出只要给出特定的报头在packet中的偏移量offset_,立刻就能够取得指向该报头的指针(通过强类型转换,原理有点类似把一个子类强类型转换为其父类),从而访问或设置该报头内容。 常见TCL脚本中有如下语句: remove-all-packet-headers add-packet-header AO...
网络仿真中有很多场景是需要随机数作为输入或控制时刻的,为此我参考了柯老师资料,学习了ns2中产生随机数的方法,并且给出我的TCL代码,方便大家学习,也方便自己以后查询,可以拿来即用! 以下只给出产生各种随机数的基本方法,至于实际场景下应该如何设置具体的参数,应该选取何种随机数,以及各种随机数本身的特性,请自行斟酌哦! 随机数: Pareto分布; Constant型; Uniform分布; Expo...
1、缩进风格:高位指令8空格缩进。 2、变量命名约定: 类的实例变量应该以下划线结束,这有助于将实例变量与全局变量、局部变量区别开。 C++和Tcl的绑定变量应同名。 3、杂集: 避免使用C++模板。 对于nsObjects,使用debug_实例变量可以激活调试功能,它可以避免调试语句的重复定义,并且无需重新编译即可调试一个特定的nsObject。 例如: Queue set debug_ true Debug("This is a debug statement %d",...
一.cbrgen(~ns/indep-utils/cmu-scen-gen) cbrgen用来生成传输负载,可以产生TCP流或者CBR流。 使用方法如下: ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate] -type tcp流或cbr流 -nn 节点数 -mc 节点间的最大连接数 -rate 每个连接间的流的负载数 -seed 指定随机数种子 二.s...
在/var/log/message中出现 kernel: hrtimer: interrupt took 3123826 ns 请问一下是什么原因
首先需要知道的是定时器(Timer)既可以在C++中实现也可以在Otcl中实现。在C++中,各种定时器都是基于抽象基类TimerHandler 的,而其又是由Handler继承来的,而且定时器经常用于Agent对象中,当然也可以用在其他对象中,这里主要说在Agent对象中的使用方法。