MobileNode 是基本的ns Node对象,但是又具有自己的特性,比如,移动性。MobileNode类派生自Node类。
一、创建节点移动模型
有两种机制可以引起移动节点的运动。第一种,需要明确指定节点的起始位置和终止位置,这些位置指令通常放在一个单独的场景文件中。例如:
1 $node set X_ <x1>
2 $node set Y_ <y1>
3 $node set Z_ <z1>
4 $ns at $time $node setdest <x2> <y2> <speed>
在$time时刻,节点按照设定的速度从起始位置(x1, y1)向目的地(x2, y2)移动,按照这种方法,节点移动更新在任何需要知道节点位置的时候触发。
第二种方式,使用节点随机移动模型:
1 $mobilenode start
该命令使节点从随机位置开始运动,并会定期改变节点的方向和速度。移动目的和速度是随机产生的。
二、移动节点的网络构建
移动节点的网络栈是由一系列连接到无线信道的网络构件组成,这些构件包括LL,连接到LL的ARP模块,接口优先级队列(IFq),MAC层,netIF。这些组件由OTcl一起创建和组装。
三、无线传播模型
NS2实现了三种无线传播模型,分别是free space(自由空间)模型,two-way ground reflection(双径地面反射模型)以及Shadowing(阴影)模型。在ns_doc18章。
free space模型: 假定了一种理想化的传播环境,在发射方和接收方之间只有一条无障碍的直线路径。在 Free space 模型中,通信范围为以发射方为圆心的一个圆。如果接收方在这个圆里则可 以接收所有的包,否则将丢失所有的包。
1 $ns_ node-config -propType Propagation/FreeSpace
或者
1 set prop [new Propagation/FreeSpace]
2 $ns_ node-config -propInstance $prop
Two-ray ground reflection模型:在两个移动节点之间,单一的直线传播不再是唯一的传播方式。Two-ray ground reflection 模型除了考虑直线传播路径还考虑了地面反射路径。此模型在长距 离传输环境中能有更准确的预测。
1 $ns_ node-config -propType Propagation/TwoRayGround
或者
set prop [new Propagation/TwoRayGround]
$ns_ node-config -propInstance $prop
Shadowing模型: Free space 模型和 Two-ray ground reflection 模型采用的接收功率公式主要是以距离参数来决定的,其通信范围是一个理想的环。事实上经过一定距离的传播后,由于多径传播效应(即熟知的阴影效应),接收功率是随机可变的。由此可见,上两种模型主要是以距离 d 来计算接收功率。
四、通信范围
可以指定节点的通信范围,在网络接口中通过指定接收阈指定通信范围。
1 Phy/WirelessPhy set RXThresh_ <value>
一个单独的 C 程序被用来计算接收阈值,程序是:~ns/indep-utils/propagation/threshold.cc。这个程序适用于以上讨论的所有传播模型。假定此程序已经编译过得到一个可执行的文件,命名为 threshold。你可以按照如下方法来计算阈值:
threshold -m <propagation-model> [other-options] distance
<propagation-model>可以是 Freespace、TwoRayGound 或 Shadowing; distance 就是通信范围(单位:m);[other-options]用来指定一些参数,而不是默认的参数值。