2017毕业论文-基于NS2的MIMO扩展设计与实现.doc_第1页
2017毕业论文-基于NS2的MIMO扩展设计与实现.doc_第2页
2017毕业论文-基于NS2的MIMO扩展设计与实现.doc_第3页
2017毕业论文-基于NS2的MIMO扩展设计与实现.doc_第4页
2017毕业论文-基于NS2的MIMO扩展设计与实现.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XX理工大学毕业设计(论文)基于NS2的MIMO扩展设计与实现学院(系): 信息工程学院 专业班级: 信息SY0601班 学生姓名: 指导教师: 39Xx理工大学毕业论文(设计)学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密囗,在 年解密后适用本授权书2、不保密。(请在以上相应方框内打“”)作者签名: 年 月 日导师签名: 年 月 日毕业设计(论文)任务书学生姓名 专业班级 信息SY0601 指导教师 工作单位 武汉理工大学信息工程学院 设计(论文)题目: 基于NS2的MIMO扩展设计与实现 设计(论文)主要内容:1. 了解MIMO基本概念,基本原理及其发展与应用。2. 学习NS-2及相关的网络知识,通过修改源代码来实现MIMO的扩展。要求完成的主要任务:1根据设计(论文)任务书,在充分调研的基础上撰写并提交开题报告;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 Sciences Institute ( ISI). NSNAM EB /OL . http: //nsnam /index. php /Main_Page, 20063 方路平.NS-2网络模拟基础与应用.国防工业出版社,20084 张勇,郭达.无线网状网原理与技术.电子工业出版社,20075 王凡,王甲琛.Ad Hoc网络中的多信道多接口技术研究.电子科技,2008指导教师签名 系主任签名 院长签名(章) 武汉理工大学本科学生毕业设计(论文)开题报告1、目的及意义(含国内外的研究现状分析)传统的多跳无线网络大多采用单天线进行数据的收发,是典型的SISO(single-input single-output)系统。这种系统不能同时进行数据收发,其容量无法突破Shannon容量公式的限制。随着无线通信技术的迅猛发展,在多跳无线网络物理层采用新技术已经成为可能.。MIMO (multi-input multi-output)技术便是一种能够突破Shannon容量限制的有效手段这种技术利用多接口多信道同时进行数据收发,使成倍地提高多跳无线网络系统容量成为可能,并且无需扩展频谱,能够有效节约频谱资源,提高能量利用率。同时,MIMO技术对多跳无线网络的吞吐量、实时性和拓扑连通性等性能均有显著影响,并可结合物理层特性联合MAC 层、网络层进行跨层协议设计,优化网络性能,为系统提供较好的QoS(quality of service)。因此,MIMO 技术是提高多跳无线网络系统性能的关键技术之一。MIMO的研究国内外现状随着IEEE802. 11相关技术及产品的不断普及,研究者开始把他们的注意力移到了多信道多接口方面.需要修改NS2中的协议模型为进行多信道多接口相关的研究工作提供支持. 前人已经对这个问题提出了多种方法,比较典型的如TENS1 、Hyacinth2 。TENS主要集中在媒体介入层(MAC)和物理层的修改,通过对信道实现的修改支持多信道,但对多信道的支持是单接口的. Hyacinth对接口的数量进行了限制,并且只能是静态的路由才能使用多接口多信道. 通过对以上两种方法的研究发现,并没有一种方法实现了有效灵活的多信道多接口扩展方式,以致以前的路由协议并不能够有效的使用多信道多接口这个新特性. 本文的主要目的之一就是提供一种简单有效的扩展方式,使得在模拟的时候能够方便更改设置. 首先,每个节点能够灵活定义接口数目,一个接口对应一个信道,在同一个环境中并不是每个节点都需要相同数目的接口;其次,通过修改已有的路由协议或添加新的路由协议,使其具有多信道多接口能力. 当节点具有多信道以后如何合理利用新增信道,本文也作了初步探索。NS-2是指 Network Simulator version 2,NS(Network Simulator) 是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,NS-2(Network Simulator, version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。NS是用Otcl和C+编写的。当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。由于NS-2是开源的,因此允许用户自己修改其源代码来实现自己的协议,本次毕业设计目的就是通过修改NS-2的源代码来实现多信道多接口技术。2、基本内容和技术方案IEEE 802.11标准在2.4 GHz和5 GHz物理层定义了多个不重叠的信道。然而,今天的大多数Ad Hoc(无线自组织网络)的无线网络配置在一个单一信道,以确保所有的节点连接。因此,无线电频谱提供的总带宽是没有充分利用。为了满足高吞吐量的需求,必须利用一切可用的频谱。过去的研究通过同步无干扰传输利用多信道,多接口增加网络容量。在本设计中,我们使用网络仿真器(NS2)实施和评估利用多信道和多接口的接口转换技术。仿真结果表明本方法很有效的提高了网络吞吐量。本设计中,我会首先扩展NS2,使其支持MIMO;然后,编写两个无线脚本来比较Ad Hoc网络中应用MIMO的优势,从而表明使用接口转换技术在提高网络吞吐量上、降低丢包率、降低延时等方面的有效性。3、进度安排第12周:查找资料,确定论文题目。第34周: 查阅相关文献资料,熟悉MIMO的基本原理及NS2的基本使用方法,提出MIMO的实现方案,完成开题报告。第58周:在导师指导下修改开题报告,确定最终的研究方向和技术路线,并根据自身情况确定任务书。根据设计的系统框架,明确各模块的具体功能,阅读相关资料,熟悉相关技术。第913周:实现整个设计并完成论文初稿。第1415周:在导师的指导下,对论文作进一步的修改,并完成外文文献的翻译工作。第16周:完成论文终稿,准备答辩PPT。第17周:做答辩最后的准备工作并且完成答辩。4、指导教师意见 指导教师签名: 年 月 日 目录摘要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.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函数254.3 对路由表的的修改265 仿真实现与结果分析286 总结与展望306.1 全文工作总结306.2 展望30参考文献31附录32致谢39摘要IEEE 802.11标准定义了在2.4 GHz和5 GHz频段内多个不重叠的物理层信道。然而,现在大多数的无线Ad-Hoc网络是在一个单一的信道下配置的,以确保所有的节点相连接。因此,无线频段所提供的总带宽并没有被充分利用。为了满足高吞吐量的需求,必须利用一切可用的频带。在以往研究的若干建议中,通过多个同步无干扰的传输,利用多信道、多接口来提高网络容量。在这个项目中,我们运行和评测所使用的网络仿真软件为ns-2。从单一接口转换到利用多信道多接口的技术。这包括支持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 operate 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 exploited 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 includes 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 time delay.Key Words:NS2;Multi-channel,Multi-interface;Mobilenode;AODV Protocol1 绪论1.1 本课题国内外研究现状随着IEEE802. 11相关技术及产品的不断普及,研究者开始把他们的注意力移到了多信道多接口方面.需要修改NS2中的协议模型为进行多信道多接口相关的研究工作提供支持。前人已经对这个问题提出了多种方法,比较典型的如TENS1、Hyacinth2。TENS主要集中在媒体介入层(MAC)和物理层的修改,通过对信道实现的修改支持多信道,但对多信道的支持是单接口的。Hyacinth对接口的数量进行了限制,并且只能是静态的路由才能使用多接口多信道。通过对以上两种方法的研究发现,并没有一种方法实现了有效灵活的多信道多接口扩展方式,以致以前的路由协议并不能够有效的使用多信道多接口这个新特性15 16。 本文的主要目的之一就是提供一种简单有效的扩展方式,使得在模拟的时候能够方便更改设置3。首先,每个节点能够灵活定义接口数目,一个接口对应一个信道。在同一个环境中并不是每个节点都需要相同数目的接口5;其次,通过修改已有的路由协议或添加新的路由协议,使其具有多信道多接口能力6 7 8。 当节点具有多信道以后如何合理利用新增信道,本文也作了初步探索10。1.2 本文主要研究工作本设计中,我会针对NS2的机制对OTCL与C+代码进行修改。首先,我会修改节点模型使其具有多接口,这部分主要需要修改OTCL代码,但也需要修改少许的C+代码;其次,为了使路由协议能够适应多信道多接口,路由协议也需要修改,我以AODV协议为例进行了修改,这部分基本上就是C+代码;最后,我会编写一个简单的无线模拟仿真脚本,对节点的多信道多接口性能进行仿真,分析了吞吐量,丢包率以及实验特性,从而表明使用多信道多接口技术的有效性。2 多信道多接口与节点模型2.1 多信道多接口IEEE 802.11标准定义了在2.4 GHz和5 GHz频段内多个不重叠的信道。原始的NS2中的移动节点只有一个接口9 11,在包含有多跳的无线Ad - Hoc网络中,如果每个节点只使用一个接口,若数据包的下一跳不在同一信道上,则它可能在某些跳发生延时。原因是,节点A需要在节点B的接口已经转到相同的信道上时进行等待,这个相同的信道就是之前节点A用来向节点B发送数据包的信道,而采用多信道多接口则可以很好的解决这一问题。同时,当存在多个接口,多个信道时,我们可以使一个接口传输信道上的数据,而另一个接口在另一个信道上接收数据,吞吐量最高可以几乎翻一番,时延和丢包率都有很好的改善12 13 14。2.2 节点模型要实现多信道多接口必须对节点模型进行修改,本设计的节点模型要求主要有以下四点:a信道数可变b每个节点的接口数目可以不同c每个节点可以连接不同的信道数d路由协议能够适应多信道多接口,并保持其向后兼容性也就是说,扩展多信道多接口必须修改现有的MobileNode模型,如图1所示。移动节点是由一系列的网络构件构成的,这些构件主要包括:链路层(LL):LL对象负责模拟数据链路层的协议。连接到LL上的ARP模块(ARP):地址解析协议(Address Resolution Protocol)的主要功能是将IP地址解析为物理地址。接口队列(Interface Queue):接口队列是由类PriQueue实现的。PriQueu是一个优先级队列。它优先处理路由协议分组,可以对所有队列中的分组进行过滤,删除那些具有特定目的地址的分组。MAC层:处理从链路层接受的或将要发往链路层的数据包。发送时,它增加MAC 包头。或者,从物理层的分类器异步接受数据包。网络接口(Network Interface):移动节点访问信道的接口,可以通过这个接口设定无线网络物理层的一些相关特性值。传播模型:用来计算每个分组在到达接收节点时的信号能量功率。图1 ns2中原始的mobilenode结构修改后的节点模型应具有多个链路层,ARP模块,接口队列,MAC,网络接口和信道,这一方案模拟的是多信道多接口Ad Hoc网络,因此不需要修改任何的IEEE 802.11硬件,改后的mobilenode如图2所示。图2 修改后的mobilenode结构3 节点模型的修改前面我们已经从宏观上分析了如何修改节点模型结构,本章我们将具体实现其修改。以下所有修改的或者增加的代码均以斜体给出。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 instvar 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 $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过程-Simulator 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_ transitionPower_ 续表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必须多次调用,调用的次数即节点具有的接口数,具体如表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_ transitionTime_ 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 info 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_ $phyType_ $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_ set 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_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-rtagent 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 index()的方法,我们需要把channel.cc里nextX_,prevX_都改为nextX_this-index(),prevX_this-index() 。此外,当发送一个包的时候,我们需要确定发向哪个具体的接口,因此我们需要一个条件来判断目的节点的接口是否和对应的信道相连接,具体修改如表3.14与表3.15所示。表3.14 修改节点列表-nextX_this-index()prevX_this-index()-表3.15 修改affectedNodes函数-affectedNodes = getAffectedNodes(mtnode, distCST_ + /* safety */ 5, &numAffectedNodes); for (i=0; i copy();续表3.15 propdelay = get_pdelay(tnode, rnode); rifp = (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论