基于NS2的COPE编码机制实现仿真(6)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

基于NS2的COPE编码机制实现仿真(6)


2.3.2  NS2中的无线网络
NS2中的无线模型本质上是以移动节点为核心,通过附加一些特性来支持自组网和无线局域网的模拟。一个移动节点是一个基本节点对象附加了无线的功能后的节点,并且移动节点能在一个设定的拓扑图中移动,在无线信道中接收和发送信号。MobileNode对象的移动特性包括节点的移动、周期性位置更新、文持拓扑等,这些均在C++中得以实现,同时,它内部的网络部分的组装(如classifier,LL,Mac,Channel等)在OTcl中实现。在NS2中,使用node-config函数来配置一个移动节点,可配置的选项包括:adhoc路由层、链路层、Mac层、信道等。下面介绍移动节点的主要网络构件:
Link Layer:移动节点使用的LL连接了一个ARP模块,用来将IP地址解析成物理(MAC)地址。对于所有发出的分组,路由代理(Agent)都会将数据包传递给LL。LL再将此包传递给输出队列。对于所有待接收的分组,MAC层将分组传递给LL,LL再将分组传递给node_entry_。
ARP:地址解析。若ARP已知目的节点的物理地址,则将该地址写入数据包的MAC头中。否则,就广播一个ARP请求并暂时缓存当前数据包。一旦ARP获知了数据包下一跳节点的物理地址,则将其放入输出队列中。
Interface Queue:接口队列是由类PriQueue实现的。PriQueue类是一个优先级队列。它将特定协议的路由包插入到队首优先处理路由协议数据包。
Mac Layer:MAC层由CMU实现了IEEE802.11中的DCF(distributed  coordination  function)MAC协议。
2.3.3  NS仿真程序的建立、运行及结果分析
NS2使用C++和Otcl作为开发语言。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。由于效率的原因,NS将数据通道和控制通道的实现相分离。事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对Otcl解释器可见。
当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理。NS提供了两种脚本分析方法,一种是在脚本中利用仿真器调用tarce一all函数将数据存放在out.tr文件中,用户可以利用NS中的Xgraph、Gnuplot或Windows中的Execl等软件对其进行有选择的分析;另一种是在脚本中调用namtrace一all函数,通知仿真器以符合NAM软件输入的格式来记录仿真数据,NAM的图形界面类似于媒体播放器,我们可以播放仿真过程,观察数据包传输, 监视队列的变化,深入理解网络的运行情况。
本实验完成COPE的NS2实现后,首先编写OTcl脚本,配置模拟无线网络拓扑结构,接着建立协议代理,配置模型参数,再进行Trace对象的设置,最后用NS2解释执行编写的OTcl脚本,并编写awk程序对Trace文件进行分析,得出有用的数据,并用Gnuplot绘制数据图形。
3  基于NS2的COPE编码机制实现
3.1  拓扑结构
本文选取简单并且典型的无线网络拓扑环境下,基于NS2实现COPE,对使用COPE编码与未使用COPE编码两种环境下的TCP协议进行了仿真及性能分析。实验COPE方案对TCP网络性能的影响。下图3-1是本文所用拓扑结构示意图:
   图3-1 拓扑结构
无线网络拓扑结构使得拓扑中的移动节点同时具有编码和解码的功能,移动节点n0、n1和n2互传数据包。其中每个移动节点会收到来自两个不同方向的数据流。例如节点n1会同时收到由n0发往n2和由n2发送至n1的数据包。此时根据编码规则,节点n1可以对来自不同方向的数据包进行编码后一起发送,n0和n2节点能对这个编码包进行解码。因此在该拓扑中,节点具有编码和解码的功能。虽然在传统模式下该拓扑中节点n0和n2互传一个数据包共需节点进行4次传输,但采用COPE方案后同样的传输仅需3次。因此该拓扑结构下的编码收益为4/3,即COPE将网络吞吐量提高了33.3%。在NS2上进行仿真的时候,我们使用的是无线网络环境,在OTcl脚本中设置了三个无线移动节点n0、n1、n2。 (责任编辑:qin)