本论文的仿真是基于PC+Linux(Ubuntu)系统配置的。
5.3 使用NS进行网络仿真的方法和一般过程
进行网络仿真前,首先分析仿真涉及哪个层次,NS仿真分两个层次:一个是基于OTcl编程的层次。利用NS已有的网络元素实现仿真,无需修改NS本身,只需 编写OTcl脚本。另一个是基于C++和OTcl编程的层次。如果NS中没有所需的网络元素,则需要对NS进行扩展,添加所需网络元素,即添加新的C++ 和OTcl类,编写新的OTcl脚本。整个仿真的过程简图如图2所示:
假设用户已经完成了对NS的扩展,或者NS所包含的构件已经满足了要求,那么进行一次仿真的步骤大致如下:
a) 开始编写OTcl脚本。首先配置模拟网络拓扑结构,此时可以确定链路的基本特性,如延迟、带宽和丢失策略等。
b) 建立协议代理,包括端设备的协议邦定和通信业务量模型的建立。
c) 配置业务量模型的参数,从而确定网络上的业务量分布。
d) 设置Trace对象。NS通过Trace文件来保存整个模拟过程。仿真完后,用户可以对Trace文件进行分析研究。
e) 编写其他的辅助过程,设定模拟结束时间,至此OTcl脚本编写完成。
f) 用NS解释执行刚才编写的OTcl脚本。
g) 对Trace文件进行分析,得出有用的数据。
h) 调整配置拓扑结构和业务量模型,重新进行上述模拟过程。
具体如图5.1所示:
图5.1 NS2仿真流程图
5.4 NS2中移动节点的组成
无线模型的核心是移动节点,它代表实际无线网络中的站点。
移动节点是由一系列的网络构件构成,这些构件包括链路层、连接到LL上的ARP模块、接口队列、MAC层、网络接口层。移动节点通过网络接口连接到无线信道上。移动节点的结构如图5.2所示。
图5.2 NS2中移动节点模型
5.4.1 移动节点的配置及创建
a) 移动节点的配置:在NS2中,要创建一个移动节点,就必须在创建节点之前对节点进行配置。所谓点的配置就是在节点创建之前设定节点的各项属性,可以使用模拟器对ns的内部过程node-config{}来配置节点的属性。 移动结点基本配置参数如下:
-adhocRouting #配置adhoc网络的路由类型
-llType #数据链路层类型
-macType #MAC层类型
-ifqType #队列类型
-ifqLen #队列长度
-antType #天线类型
-propType #无线信号传输模型
-phyType #物理层类型
-channelType #信道类型
-topoInstance #拓扑对象
-agentTrace #是否打开应用层Trace
-routerTrace #是否打开路由的Trace
-macTrace #是否打开应MAC层的Trace
-movementTrace #是否打开节点位置和移动信息的Trace
B)移动节点的创建:调用模拟器对象ns的内部过程node{}创建移动节点:
5.4.2 移动节点的运动场景设置
Setdest是CMU大学在NS2中提供无线网络模拟时提供的一个小工具,用来随机产生无线网络模拟所需的节点运动场景,只需要确定在多大的矩形区域内,有多少个节点,在节点到达目的地后是否需要停留,节点最大的运动速度,仿真时间的值就可以自动生成一个节点运动场景的代码。
执行命令如下:
命令:./setdest –v <version> -n <num_of_nodes> -p <pausetime> -M 无线传感器网络的链路技术研究(9):http://www.youerw.com/tongxin/lunwen_7486.html