研究论文-认知Ad Hoc网络仿真模型的设计与实现.pdf

所需积分/C币:11 2019-08-07 17:25:05 408KB PDF

针对认知Ad Hoc网络信道分配算法研究需要,提出了一种基于NS2的认知Ad Hoc的扩展模型.该模型是在原NS2节点模型上进行扩展;借鉴Czou思想,使用CM(channel management)模块对信道信息进行管理,在模块中实现信道的选择算法以及信道状态的更新;采用专用控制信道,用于交换控制信息和实现广播;节点根据信道选择规则选择数据信道,实现数据流的传输.仿真结果表明,设计方案合理,能满足基于数据流的信道分配算法研究的需求.
第38卷第10期 应 用 科 技 Vol 38. No. 10 2011年10月 Applied Science and Technology 0ct.2011 doi:10.3969/jisn.1009671x.2011.10.010 认知 Ad hoc网络仿真模型的设计与实现 刘玉梅,伍浩文,赵怡韵 (哈尔滨工程大学信息与通信工程学院,黑龙江哈尔滨150001 摘要:针对认知AdHo网络信道分配算法研究需要,提出了一种基于NS2的认知 Ad hoc的扩展棋型该模 型是在原NS2节点模型上进行扩展;借鉴Czou思想使用CM( channel management)模块对信道信息进行管理, 在模块中实现信道的选择算法以及信道状态的更新;釆用专用控制信道,用于交换控制信息和实现广播;节点 根据信道选择规则选择数据信道,实现数据流的传输仿真结果表明,设计方案合理,能满足基于数据流的信道 分配算法研究的需求 关键词:认知无线电; Ad hoc网络;Ns2;跨层设计;网络仿真 中图分类号:TP93 文献标志码:A 文章絹号:1009-671X(2011)1000406 Design for cognitive radio Ad Hoc networks LIU Yumei, WU Haowen ZHAO Yiyun of Information and Communication Engineering, Harbin Engineering University, Harbin 150001, China Abstract: For meeting the demand for research on the channel allocation algorithm of cognitive radio Ad Hoc net- works, an extension model of cognitive radio Ad Hoc Networks, based on NS2, is proposed. It uses a CM( channel management)class, which learns from Czou's ideas, to manage channels information, to implement channel selec- tion algorithm and to update channcls statcs. It adopts dedicated common control channel, which is uscd for cx changing the control information and broadcasting. A node chooses a channel for data transmission according to the channel selection rules. The simulation results indicate that the system is reasonably designed and it can satisfy study of the channel allocation algorithm based on data link Keywords: cognitive radio; Ad Hoc network:; NS2; cross-layer design; network simulation NS2是一种针对网络技术的源代码公开的免说是O的脚本解释器,它包含仿真事件调度器 费的软件棋拟平台1,研究人员使用它可以很容易网络组件对象库以及网络构建模型库等NS2中编 地进行刚络技术的开发,而且发展至今,它所包含的译类对象通过0ul连接建立了与之对应的解释类 模块几乎涉及到了网络技术的所有方面它具有源对象,这样用户间能够方便地对C++对象的函数 开放性等优势,因此被很多研究人员采用 进行修改与配置 本中提出一种基于NS2的认知AdHo网络的 认知 Ad hoc网络是基于无线 Ad hoc网络体 仿真模型该模型中对原节点模型进行多信道的扩系结构2,另外,节点拥有∫认知的能力,因此认知 展,使用公共控制信道与数据信道分离的模式,以满AdH网络中节点可以使用授权信道没有使用的 足认知 Ad hoc网络信道分配算法研究的需要 频谱资源,以改善频谱利用的缺陷,从这一角度上, 认知 Ad hoc网络属于多信道的范畴,并且不少学者 1NS2与认知 Ad hoc网络仿真 已经在谱估计方面做研究34,并取得了一定的成果 NS2使用C++和Otl作为开发语言NS可以 现有的NS2仿真中并没有提供多信道仿真,因 收稿日期:2011407-19 基金项目:中央高校基本科研业务费专项资金资助项目( HEUCFI0824) 作者筒介:刘玉梅(1970-),女,副研究员,研究生导师,主要研究方向:自组织网,Emal:iuyumeic@heber.edu.cn 第10期 刘玉梅,等:认知AdHo网络仿真模型的设计与实现 45· 此很多学者对N2进行修改及扩展以支持多信是设置数据包MAC头部的MAC目的地址 道的仿真,典型的有 Hyacinth方案和 Ramon方 ARP模块:用来实现地址解析.如果ARP已经 案6.Hyin山方案中网络置是静态的,它不能使知道目的节点的物理(MAC)位址,它就把MAC地 用NS2中已存在的其他通用路由协议,另外这种方址写入MAC头中,否则它就广播ARP请求并缓存 案无论是路由协议还是信道数量都是不可改变的 当前分组.一旦ARP知道了分组的下一跳MAC地 简而言之,这种方案不能通过变更配置参数而改变址,该分组就会被放入Q队列中 网络配置.相比之下,Ramn方案能通过变更配置参 IFQ模块:该模块由 PriQueue类实现. PriQueue 数而改变网络配置,因此更加灵活.Czu等7提出 类是一个优先顺序队列.该模块通过将分组插入到 新的扩展方案,在 Ramon方案的基础上实现对NS 进行扩展,并实现了动态信道分配算法 队列队首,优先处理路由协议分组,同时它可以对所 Ramon方案中每个移动节点的网络层实体是多有队列中分组进行过滤 个数据链路,因为每个数据链路层实体都可以有不 MAC模块:对于所有单播分组和Daa分组,它 同的调制方法,所以每个数据链路和物理层模块都利用 RTS/CTS/DATAZACK模式,通过物理载波监 足相互独立的Cm等 Ramon方案的基础上进行扩听实现 展,实现了动态信道分配算法,该方案将DSA(dy NeIF模块:网络接口模块,通过它将包的参数 namic spectrum allocation)模块与R' Tagent模块绑作为一个包的传送分组写入分组头 定,通过代理调用DSA类中的随机选择算法实现信 Pop模块:无线信号传播模型,这个模型用来 道分配C0u方案虽然实现了信道的动态分配,但订算每个分组在接收节点的信号强度,当接收强度 没有实现公共控制信道,节点间不能交换信息,因此小于阈值的时候将分组标识为em并被MAC层 不能更好地了解信道的使用状况. 丟弃 2设计方案 由于认知 Ad hoc网络中节点使用多个信道,因 此需要对节点模型进行修改,重新组装.节点使用的 NS2仿真器功能强大、模块丰富,已经实现的主 可能是不同频段上的授权信道,因此,认知 Ad hoc 要模块有网络传输协议、业务流量产生器、队列机 仿真应该提供一种式,来实现控制信息的共享,公 制、路算法以及MAC子层协议等.节点的每一 共控制信道就是目前最简单有效的方式之节点 个接口由链路层模块(LL)地址解析模块(ARP)、有了公共信道,方面能交换认知频谱信息另一方 队列模块(TFQ)、MAC模块、网络接口模块(NeIF) 面更能了解邻居节点的信道使用状况,根据得到的 传播模型模块(Pw)等组成-移动节点通过网络接 信息进行信道选择,更好地提扃网络的性能 凵模块连接到物理信道上,移动节点的各个组件在 文中提出的方案采取专用公共信道方式,根据 Oucl中创建并组合在一起 信道的信息进行数据信道的选取,然后发送数据,每 LL模块;实现逻辑链路控制,负责楨拟数据链个节点拥有2个收发器,一个停留在公共信道上监 路协议.许多协议都在这层得到了实现,如数据包分 听公共信道上的控制信息,另外一个作为数据信道 组和重组,可靠的链路协议.LL的另一个重要功能 的收发器.节点模型如图1所示 应 用 科 技 第38卷 defaulttarge 仁 HRTa at LLInk ARPI ptarg ct upturn cf downErs wnta!∈t FQ downtar ect prop propa ga ,w ntar get uptar NeiL OE Nelf NeF 图1扩展节点模型 3扩展方法 原来node 在仿真胴 「新的n 把新的信 道添力 川到 由于NS2采用的是TC++分裂模型,所以 ig过程 多个信道cg过份克器中 对模型的修改涉及到Tc和C++应用实例修改2 在伤真脚本咀 面获取路由协节点路 调用add 创建路「创建无 部分.节点本身是一个Otcl中单独的一个类,但是, 议访问上层「绑定鬥etac由代 构成节点的大部分构件自身也是 TclObject.一个单 图2节点创建过程 播节点的结构包含2个 TclObject:一个地址分类器 ( address classifier)和个端口分类器( port classifi-3.1多接囗、多信道功能的添加 er)这些分类器的功能是分派传入的包到正确的代 接口部分;在NS2中网络组件的创建和组合 理或者链路出凵上 般在Otcl中进行的,首先在仿胸本中添加代码 扩展模型的节点创建过程如图2所示:1)调用 for(set i0i si<val (nc)i(incr if 原来的 node-config过程对节点进行配置,接着在仿 sct chan_( $i)ncw s val( chan) 真脚本里面创建多个信道;2)重新调用节点配置过 程对节点进行新的配置,再把新建的信道添加到仿 构建多信道 Object,同时修改节点的配置过程, 真器中,然后调用 create- wireless-node 过程进行无线代码如下: s nB_ node-config -nChannel s val( nc )-channel 节点的创建,创建代理的过程中建立CM模块和接 s chan(0) 口,最后将接口与路由进行绑定 在nsli.tel里给Node类添加变量 n Channel_, 第10期 刘玉梅,等:认知AdHo网络仿真模型的设计与实现 47 它表示需要建立的信道数目,增加 nChannel,ad set mac_(i* t val (nc )+$j)[node d channel和 gctnchanr过程,在仿真脚本里面添加($i) sct mac_($j 代码,并把添加的多信道加人 Simulator类.然后根 s mac_(i*$val(nc)+s j)Bet-aodv 据 nChannel判断是否使用多信道如果使用了多信[$node_($i)aent255 道,则 create- wireles-node过程里面多次调用ne-mo blende.tc中的add- interface过程函数,这个函数 决定了节点有哪些组件、每个组件的上层和下层的 由于篇幅有限,CM管理模块的相关功能的实现 连接等.本方案通过在仿真脚本里配置信道数来多不一一列举 次调用 add-interface过程进行从LL模块至 channel3.3公共信道的实现与使用 模块的复制,同时调用add- target和add- target-rtagent 认知AdHo网络中,由于在不同的频段上通 过程,把多个接口连接到 REagent上面,并对AP解信,认知用户能够获得授权用户的信息,更好地了解 析模块进行处理,在此不再具体阐述 信道的使用情况,公共信道是最好的选择之一.首先 信道部分:MAC层协议与传播模型进行链接,在a0dv- packet. h里面定义3个包类型 ChannelRe 需要修改木文中使用的E上8O2.1l协议的实现的quet、 ChannelRepl和 Channelrsh,包格式分别如表 文件mac802_11.h与mac802_11.cc、信道实现文1~3所小 件 channel, h与 channel.cc、节点属性 mobilenode. h 表1 ChannelRequest包格式 与 mobilenode.c、代理 agent.h与 agent.ce、路由协 包类型源节点目的节点空闲信道列表 议aodv.h与aod.cc等多个文件 freechannellist NU 3.2信道管理模块的添加 rq_type rq_src rq_dst M_OF_CHANNELS 在 m6-lib.td里面无线节点创建过程中判断是 否使用多信道,如果使用多信道,则创建CM(chan 表2 Channelreply包格式 nel management)模块,然后把CM实体和 REagent IFQ以及MAC进行绑定CM类用于实现信道选择 包类型源节点目的节点 选择信道 算法和授权信道的管理操作以及信道状态更新由 -typ selectedchannel 于MAC模块和IFQ模块都是继承 BiConnector和 Connector类,因此给这2个父类添加对象指针cm_, 用于反馈信息给CM模块 表3( ThanneIrse包格式 MAC层反馈信息给路由层,由」在Od获取路包类型源节点日的节点确认所选信道 由协议的复杂性,本方案方法足在创建节点和路由 rq_type rq_grc rq_dst confirmedchannel 绑定以后,通过在仿真脚本添加代码实现,首先节点 获取接口的MAC协以,初始化路由对象,然后在 MAC实现文件里定义AODV类的对象指针,在com 本方案使用信道0作为预置专用控制信道,所 mand函数使用 Tclobject的 lookup方法找到接口,有的路由广播信息和控制信息都在信道0上传输. 这样就能在MAC层反馈信息给路由层仿真脚本中当数据流传输前,首先建立路由,在信道0上进行路 添加的T如下代码 由的选取;路由建立完成之后,节点向下一跳地址的 for i set si< val(nn)incr if t 节点发出信道请求 Channelrequest,下一跳节点收到 for{set0}{$j<$ⅶl(nc)}{ Incr j{给自己的 Channelrequest之后,根据自己的选择规

...展开详情
img

关注 私信 TA的资源

上传资源赚积分,得勋章
    最新推荐