毕业设计(论文)-基于NS2的MIMO扩展设计与实现.doc

上传人:来看看 文档编号:3283259 上传时间:2019-08-08 格式:DOC 页数:46 大小:558.52KB
返回 下载 相关 举报
毕业设计(论文)-基于NS2的MIMO扩展设计与实现.doc_第1页
第1页 / 共46页
毕业设计(论文)-基于NS2的MIMO扩展设计与实现.doc_第2页
第2页 / 共46页
毕业设计(论文)-基于NS2的MIMO扩展设计与实现.doc_第3页
第3页 / 共46页
毕业设计(论文)-基于NS2的MIMO扩展设计与实现.doc_第4页
第4页 / 共46页
毕业设计(论文)-基于NS2的MIMO扩展设计与实现.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《毕业设计(论文)-基于NS2的MIMO扩展设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于NS2的MIMO扩展设计与实现.doc(46页珍藏版)》请在三一文库上搜索。

1、XX理工大学毕业设计(论文)基于NS2的MIMO扩展设计与实现学院(系): 信息工程学院 专业班级: 信息SY0601班 学生姓名: 指导教师: 39Xx理工大学毕业论文(设计)学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授

2、权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密囗,在 年解密后适用本授权书2、不保密。(请在以上相应方框内打“”)作者签名: 年 月 日导师签名: 年 月 日毕业设计(论文)任务书学生姓名 专业班级 信息SY0601 指导教师 工作单位 武汉理工大学信息工程学院 设计(论文)题目: 基于NS2的MIMO扩展设计与实现 设计(论文)主要内容:1. 了解MIMO基本概念,基本原理及其发展与应用。2. 学习NS-2及相关的网络知识,通过修改源代码来实现MIMO的扩展。要求完成的主要任务:1根据

3、设计(论文)任务书,在充分调研的基础上撰写并提交开题报告;2依据设计(论文)内容的要求,设计MIMO扩展的算法,并通过修改NS-2源代码来实现这一算法与仿真。3. 撰写并提交毕业设计论文(参考文献至少15篇,其中外文资料至少2篇);4提交专业外文翻译材料(原文不少于20000印刷字符);5按照毕业设计相关要求在答辩前必须完成的其它任务。必读参考文献:1 Ramon Agiiero Calvo.Adding Multiple Interface Support in NS-2.20072 The University of Southern Californiaps Information Sc

4、iences Institute ( ISI). NSNAM EB /OL . http: /nsnam.isi.edu/nsnam /index. php /Main_Page, 20063 方路平.NS-2网络模拟基础与应用.国防工业出版社,20084 张勇,郭达.无线网状网原理与技术.电子工业出版社,20075 王凡,王甲琛.Ad Hoc网络中的多信道多接口技术研究.电子科技,2008指导教师签名 系主任签名 院长签名(章) 武汉理工大学本科学生毕业设计(论文)开题报告1、目的及意义(含国内外的研究现状分析)传统的多跳无线网络大多采用单天线进行数据的收发,是典型的SISO(single-

5、input single-output)系统。这种系统不能同时进行数据收发,其容量无法突破Shannon容量公式的限制。随着无线通信技术的迅猛发展,在多跳无线网络物理层采用新技术已经成为可能.。MIMO (multi-input multi-output)技术便是一种能够突破Shannon容量限制的有效手段这种技术利用多接口多信道同时进行数据收发,使成倍地提高多跳无线网络系统容量成为可能,并且无需扩展频谱,能够有效节约频谱资源,提高能量利用率。同时,MIMO技术对多跳无线网络的吞吐量、实时性和拓扑连通性等性能均有显著影响,并可结合物理层特性联合MAC 层、网络层进行跨层协议设计,优化网络性能,

6、为系统提供较好的QoS(quality of service)。因此,MIMO 技术是提高多跳无线网络系统性能的关键技术之一。MIMO的研究国内外现状随着IEEE802. 11相关技术及产品的不断普及,研究者开始把他们的注意力移到了多信道多接口方面.需要修改NS2中的协议模型为进行多信道多接口相关的研究工作提供支持. 前人已经对这个问题提出了多种方法,比较典型的如TENS1 、Hyacinth2 。TENS主要集中在媒体介入层(MAC)和物理层的修改,通过对信道实现的修改支持多信道,但对多信道的支持是单接口的. Hyacinth对接口的数量进行了限制,并且只能是静态的路由才能使用多接口多信道.

7、 通过对以上两种方法的研究发现,并没有一种方法实现了有效灵活的多信道多接口扩展方式,以致以前的路由协议并不能够有效的使用多信道多接口这个新特性. 本文的主要目的之一就是提供一种简单有效的扩展方式,使得在模拟的时候能够方便更改设置. 首先,每个节点能够灵活定义接口数目,一个接口对应一个信道,在同一个环境中并不是每个节点都需要相同数目的接口;其次,通过修改已有的路由协议或添加新的路由协议,使其具有多信道多接口能力. 当节点具有多信道以后如何合理利用新增信道,本文也作了初步探索。NS-2是指 Network Simulator version 2,NS(Network Simulator) 是一种针

8、对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,NS-2(Network Simulator, version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。NS是用Otcl和C+编写的。当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。由于NS-2是开源的,因此允许用户自己修改其源代码来实现自己的协议,本次毕业设计目的就是通过修改NS-2的源代码来实现多信道多接口技术。2、基本内容和

9、技术方案IEEE 802.11标准在2.4 GHz和5 GHz物理层定义了多个不重叠的信道。然而,今天的大多数Ad Hoc(无线自组织网络)的无线网络配置在一个单一信道,以确保所有的节点连接。因此,无线电频谱提供的总带宽是没有充分利用。为了满足高吞吐量的需求,必须利用一切可用的频谱。过去的研究通过同步无干扰传输利用多信道,多接口增加网络容量。在本设计中,我们使用网络仿真器(NS2)实施和评估利用多信道和多接口的接口转换技术。仿真结果表明本方法很有效的提高了网络吞吐量。本设计中,我会首先扩展NS2,使其支持MIMO;然后,编写两个无线脚本来比较Ad Hoc网络中应用MIMO的优势,从而表明使用接

10、口转换技术在提高网络吞吐量上、降低丢包率、降低延时等方面的有效性。3、进度安排第12周:查找资料,确定论文题目。第34周: 查阅相关文献资料,熟悉MIMO的基本原理及NS2的基本使用方法,提出MIMO的实现方案,完成开题报告。第58周:在导师指导下修改开题报告,确定最终的研究方向和技术路线,并根据自身情况确定任务书。根据设计的系统框架,明确各模块的具体功能,阅读相关资料,熟悉相关技术。第913周:实现整个设计并完成论文初稿。第1415周:在导师的指导下,对论文作进一步的修改,并完成外文文献的翻译工作。第16周:完成论文终稿,准备答辩PPT。第17周:做答辩最后的准备工作并且完成答辩。4、指导教

11、师意见 指导教师签名: 年 月 日 目录摘要1Abstract21 绪论31.1 本课题国内外研究现状31.2 本文主要研究工作32 多信道多接口与节点模型42.1 多信道多接口42.2 节点模型43 节点模型的修改73.1 对ns-lib.tcl的修改73.1.1 四个新增的过程73.1.2 修改node-config过程83.1.3 修改create-wireless-node过程93.2 对ns-mobilenode.tcl的修改103.2.1 修改add-target过程103.2.2 修改add-target-rtagent过程113.2.3 修改add-interface过程123

12、.2.4 修改初始化复位过程133.3 对mobilenode.cc,h,channel.cc,mac-802_11.cc的修改143.3.1 修改mobilenode.h,cc143.3.2 修改channel.cc153.3.3 修改mac-802_11.cc164 路由协议的修改174.1 对aodv.h的修改174.2 对aodv.cc的修改184.2.1 修改类AODV的构造函数184.2.2 AODV路由发现过程与相应的修改194.2.3 sendHello,sendError函数的修改234.2.4 路由表更新函数rt_update的修改254.2.5 修改command函数25

13、4.3 对路由表的的修改265 仿真实现与结果分析286 总结与展望306.1 全文工作总结306.2 展望30参考文献31附录32致谢39摘要IEEE 802.11标准定义了在2.4 GHz和5 GHz频段内多个不重叠的物理层信道。然而,现在大多数的无线Ad-Hoc网络是在一个单一的信道下配置的,以确保所有的节点相连接。因此,无线频段所提供的总带宽并没有被充分利用。为了满足高吞吐量的需求,必须利用一切可用的频带。在以往研究的若干建议中,通过多个同步无干扰的传输,利用多信道、多接口来提高网络容量。在这个项目中,我们运行和评测所使用的网络仿真软件为ns-2。从单一接口转换到利用多信道多接口的技术

14、。这包括支持ns-2核心的集成的多信道、多接口(这在当前版本的ns-2下是不可实现的)。仿真结果证明了在提高网络吞吐量,降低丢包率,降低时延方面的有效性。关键词:NS2;多信道,多接口;移动节点;AODV协议AbstractThe IEEE 802.11 standard defines multiple non-overlapping channels at the physical layer in the2.4 GHz and 5 GHz spectrums. However, most ad-hoc wireless networks today are configured to o

15、perate under a single channel in order to ensure connectivity of all their nodes. Hence, the aggregate bandwidth provided by the radio spectrums is not fully-utilized. In order to meet the high throughput demand, it is essential to use all available spectrums. Several past research proposals have ex

16、ploited multiple channels and multiple interfaces to increase the network capacity, by having multiple simultaneous transmissions without interference.In this project, we implement and evaluate the technique of multiple channels and multiple interfaces using the Network Simulator (ns-2). This includ

17、es incorporating the multiple channel and multiple interface supports to the core of ns-2, which are not available in the current version of the simulator.The simulation results demonstrate the effectiveness of the approach in improving the network capacity to reduce the ratio of packet loss and tim

18、e delay.Key Words:NS2;Multi-channel,Multi-interface;Mobilenode;AODV Protocol1 绪论1.1 本课题国内外研究现状随着IEEE802. 11相关技术及产品的不断普及,研究者开始把他们的注意力移到了多信道多接口方面.需要修改NS2中的协议模型为进行多信道多接口相关的研究工作提供支持。前人已经对这个问题提出了多种方法,比较典型的如TENS1、Hyacinth2。TENS主要集中在媒体介入层(MAC)和物理层的修改,通过对信道实现的修改支持多信道,但对多信道的支持是单接口的。Hyacinth对接口的数量进行了限制,并且只能是静

19、态的路由才能使用多接口多信道。通过对以上两种方法的研究发现,并没有一种方法实现了有效灵活的多信道多接口扩展方式,以致以前的路由协议并不能够有效的使用多信道多接口这个新特性15 16。 本文的主要目的之一就是提供一种简单有效的扩展方式,使得在模拟的时候能够方便更改设置3。首先,每个节点能够灵活定义接口数目,一个接口对应一个信道。在同一个环境中并不是每个节点都需要相同数目的接口5;其次,通过修改已有的路由协议或添加新的路由协议,使其具有多信道多接口能力6 7 8。 当节点具有多信道以后如何合理利用新增信道,本文也作了初步探索10。1.2 本文主要研究工作本设计中,我会针对NS2的机制对OTCL与C

20、+代码进行修改。首先,我会修改节点模型使其具有多接口,这部分主要需要修改OTCL代码,但也需要修改少许的C+代码;其次,为了使路由协议能够适应多信道多接口,路由协议也需要修改,我以AODV协议为例进行了修改,这部分基本上就是C+代码;最后,我会编写一个简单的无线模拟仿真脚本,对节点的多信道多接口性能进行仿真,分析了吞吐量,丢包率以及实验特性,从而表明使用多信道多接口技术的有效性。2 多信道多接口与节点模型2.1 多信道多接口IEEE 802.11标准定义了在2.4 GHz和5 GHz频段内多个不重叠的信道。原始的NS2中的移动节点只有一个接口9 11,在包含有多跳的无线Ad - Hoc网络中,

21、如果每个节点只使用一个接口,若数据包的下一跳不在同一信道上,则它可能在某些跳发生延时。原因是,节点A需要在节点B的接口已经转到相同的信道上时进行等待,这个相同的信道就是之前节点A用来向节点B发送数据包的信道,而采用多信道多接口则可以很好的解决这一问题。同时,当存在多个接口,多个信道时,我们可以使一个接口传输信道上的数据,而另一个接口在另一个信道上接收数据,吞吐量最高可以几乎翻一番,时延和丢包率都有很好的改善12 13 14。2.2 节点模型要实现多信道多接口必须对节点模型进行修改,本设计的节点模型要求主要有以下四点:a信道数可变b每个节点的接口数目可以不同c每个节点可以连接不同的信道数d路由协

22、议能够适应多信道多接口,并保持其向后兼容性也就是说,扩展多信道多接口必须修改现有的MobileNode模型,如图1所示。移动节点是由一系列的网络构件构成的,这些构件主要包括:链路层(LL):LL对象负责模拟数据链路层的协议。连接到LL上的ARP模块(ARP):地址解析协议(Address Resolution Protocol)的主要功能是将IP地址解析为物理地址。接口队列(Interface Queue):接口队列是由类PriQueue实现的。PriQueu是一个优先级队列。它优先处理路由协议分组,可以对所有队列中的分组进行过滤,删除那些具有特定目的地址的分组。MAC层:处理从链路层接受的或

23、将要发往链路层的数据包。发送时,它增加MAC 包头。或者,从物理层的分类器异步接受数据包。网络接口(Network Interface):移动节点访问信道的接口,可以通过这个接口设定无线网络物理层的一些相关特性值。传播模型:用来计算每个分组在到达接收节点时的信号能量功率。图1 ns2中原始的mobilenode结构修改后的节点模型应具有多个链路层,ARP模块,接口队列,MAC,网络接口和信道,这一方案模拟的是多信道多接口Ad Hoc网络,因此不需要修改任何的IEEE 802.11硬件,改后的mobilenode如图2所示。图2 修改后的mobilenode结构3 节点模型的修改前面我们已经从宏

24、观上分析了如何修改节点模型结构,本章我们将具体实现其修改。以下所有修改的或者增加的代码均以斜体给出。3.1 对ns-lib.tcl的修改在节点配置时会调用node-config过程,修改了后的节点模型具备了接口数这个参数,因此node-config过程必须修改。其次,在仿真脚本中我们会调用一些新增的过程,这些过程也需要在ns-lib.tcl中定义。3.1.1 四个新增的过程为了使每个节点可以有不同的接口数目,定义过程change-numifs,具体如表3.1所示。表3.1 改变接口数目-Simulator instproc change-numifs newnumifs $self instv

25、ar numifs_set numifs_ $newnumifs-第二个过程add-channel作用是给节点的接口配置信道,具体如表3.2所示。表3.2 接口配置信道过程-Simulator instproc add-channel indexch ch $self instvar chanset chan($indexch) $ch-第三个过程get-numifs返回接口数,具体如表3.3所示。表3.3 返回接口数-Simulator instproc get-numifs $self instvar numifs_if info exists numifs_ 续表3.3 return $

26、numifs_)eise( return -第四个过程ifNum作为node-config的一个参数,配置接口数,具体如表3.4所示。表3.4 ifNum过程-Simulator instproc get-numifs $self instvar numifs_if info exists numifs_ return $numifs_)eise( return -3.1.2 修改node-config过程node-config用来对节点进行配置,由于加入了新的接口参数chan($t),所以必须对其初始化,在多接口的情况下其为一数组,具体如表3.5所示。表3.5 node-config过程-S

27、imulator instproc node-config args set args eval $self init-vars $args $self instvar addressType_ routingAgent_ propType_ macTrace_ routerTrace_ agentTrace_ movementTrace_ channelType_ channel_ numifs_ chan topoInstance_ propInstance_ mobileIP_ rxPower_ txPower_ idlePower_ sleepPower_ sleepTime_ tra

28、nsitionPower_ 续表3.5 transitionTime_ satNodeType_ eotTrace_ phyTrace_# Multiple channel, multiple interfaces# original:set chan $channel_#modifi as followsif info exists numifs_ set chan(0) $channel_ else set chan $channel_-3.1.3 修改create-wireless-node过程由于节点具有多接口,因此该过程中的add-interface必须多次调用,调用的次数即节点具有

29、的接口数,具体如表3.6所示。表3.6 create-wireless-node过程-Simulator instproc create-wireless-node args $self instvar routingAgent_ wiredRouting_ propInstance_ llType_ macType_ ifqType_ ifqlen_ phyType_ chan antType_ energyModel_ initialEnergy_ txPower_ rxPower_ idlePower_ sleepPower_ sleepTime_ transitionPower_ tr

30、ansitionTime_ topoInstance_ level1_ level2_ inerrProc_ outerrProc_ FECProc_ rtAgentFunction_ numifs_#Adding Interface#original: $node add-interface $chan $propInstance_ $llType_ $macType_ $ifqType_ $ifqlen_ $phyType_ $antType_ $topoInstance_ $inerrProc_ $outerrProc_ $FECProc_#modified as followsif i

31、nfo exist numifs_ 续表3.6 for set i 0 $i $numifs_ incr i #3.6 $node add-interface $chan($i) $propInstance_ $llType_ $macType_ $ifqType_ $ifqlen_ $phyType_ $antType_ $topoInstance_ $inerrProc_ $outerrProc_ $FECProc_ else $node add-interface $chan $propInstance_ $llType_ $macType_ $ifqType_ $ifqlen_ $ph

32、yType_ $antType_ $topoInstance_ $inerrProc_ $outerrProc_ $FECProc_ -3.2 对ns-mobilenode.tcl的修改3.2.1 修改add-target过程add-target过程用来给端口绑定代理,在多接口的情况下需要为每个接口都绑定代理,在添加之前需先调用get-numifs过程取得节点接口数,具体如表3.7所示。表3.7 修改add-target过程-Node/MobileNode instproc add-target agent port $self instvar dmux_ imep_ toraDebug_ s

33、et ns Simulator instanceset newapi $ns imep-support$agent set sport_ $port set numIfsSimulator $ns get-numifs#original: if $port = Node set rtagent_port_ # Ad hoc routing agent setup needs special handling$self add-target-rtagent $agent $port续表3.7return#modified as followsif $port = Node set rtagent

34、_port_ if $numIfsSimulator != for set i 0 $i $self set nifs_ incr i $agent if-queue $i $self set ifq_($i) $self add-target-rtagent $agent $portreturn-3.2.2 修改add-target-rtagent过程此过程用来给接口添加路由代理,修改原则和上一过程类似。首先调用get-numifs过程取得接口数,具体如表3.8所示。表3.8 修改add-target-rtagent-Node/MobileNode instproc add-target-r

35、tagent agent port set numIfSimulator $ns get-numifs#original: else ;# no IMEP$agent target $sndT$sndT target $self set ll_(0)#modified as follows: else ;# no IMEPif $numIfsSimulator != for set i 0 $i $self set nifs_ incr i set sndT cmu-trace Send RTR $self续表3.8 $agent target $i $sndT $sndT target $s

36、elf set ll_($i) else $agent target $sndT $sndT target $self set ll_(0) -3.2.3 修改add-interface过程原始的add-interface过程只会为每个节点创造一个ARP表,而不是为每个接口创造一个ARP表,因此我们为每个接口创造一个ARP表更为合适,具体如表3.9所示。表3.9 修改add-interface过程-Node/MobileNode instproc add-interface channel pmodel lltype mactype qtype qlen iftype anttype topo

37、 inerrproc outerrproc fecproc # Initialize ARP table only once.#modified as followsset arptable_($t) new ARPTable $self $mac set arptable $arptable_($t)if $imepflag != set drpT $self mobility-trace Drop IFQ else set drpT cmu-trace Drop IFQ $self$arptable drop-target $drpT续表3.9if $namfp != $drpT namattach $namfp# Link Layer#$ll arptable $arptable-3.2.4 修改初始化复位过程由于上述的ARP表发生了改变,因此在初始化和复位时需要对ARP表进行修改,具体如表3.10与3.11所示。表3.10 修改init过程-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1