基于NS2的MIMO扩展Word文档格式.doc
《基于NS2的MIMO扩展Word文档格式.doc》由会员分享,可在线阅读,更多相关《基于NS2的MIMO扩展Word文档格式.doc(46页珍藏版)》请在冰点文库上搜索。
2、不保密√。
(请在以上相应方框内打“√”)
年月日
导师签名:
毕业设计(论文)任务书
学生姓名陈龙专业班级信息SY0601
指导教师李方敏工作单位武汉理工大学信息工程学院
设计(论文)题目:
基于NS2的MIMO扩展设计与实现
设计(论文)主要内容:
1.了解MIMO基本概念,基本原理及其发展与应用。
2.学习NS-2及相关的网络知识,通过修改源代码来实现MIMO的扩展。
要求完成的主要任务:
1.根据设计(论文)任务书,在充分调研的基础上撰写并提交开题报告;
2.依据设计(论文)内容的要求,设计MIMO扩展的算法,并通过修改NS-2源代码来实现这一算法与仿真。
3.撰写并提交毕业设计论文(参考文献至少15篇,其中外文资料至少2篇);
4.提交专业外文翻译材料(原文不少于20000印刷字符);
5.按照毕业设计相关要求在答辩前必须完成的其它任务。
必读参考文献:
[1]RamonAgiieroCalvo.AddingMultipleInterfaceSupportinNS-2.2007
[2]TheUniversityofSouthernCaliforniapsInformationSciencesInstitute(ISI).NSNAM[EB/OL].http:
//nsnam.isi.edu/nsnam/index.php/Main_Page,2006
[3]方路平.NS-2网络模拟基础与应用.国防工业出版社,2008
[4]张勇,郭达.无线网状网原理与技术.电子工业出版社,2007
[5]王凡,王甲琛.AdHoc网络中的多信道多接口技术研究.电子科技,2008
指导教师签名系主任签名
院长签名(章)
武汉理工大学本科学生毕业设计
(论文)开题报告
1、目的及意义(含国内外的研究现状分析)
传统的多跳无线网络大多采用单天线进行数据的收发,是典型的SISO(single-inputsingle-output)系统。
这种系统不能同时进行数据收发,其容量无法突破Shannon容量公式的限制。
随着无线通信技术的迅猛发展,在多跳无线网络物理层采用新技术已经成为可能.。
MIMO(multi-inputmulti-output)技术便是一种能够突破Shannon容量限制的有效手段这种技术利用多接口多信道同时进行数据收发,使成倍地提高多跳无线网络系统容量成为可能,并且无需扩展频谱,能够有效节约频谱资源,提高能量利用率。
同时,MIMO技术对多跳无线网络的吞吐量、实时性和拓扑连通性等性能均有显著影响,并可结合物理层特性联合MAC层、网络层进行跨层协议设计,优化网络性能,为系统提供较好的QoS(qualityofservice)。
因此,MIMO技术是提高多跳无线网络系统性能的关键技术之一。
MIMO的研究国内外现状
随着IEEE802.11相关技术及产品的不断普及,研究者开始把他们的注意力移到了多信道多接口方面.需要修改NS2中的协议模型为进行多信道多接口相关的研究工作提供支持.前人已经对这个问题提出了多种方法,比较典型的如TENS[1]、Hyacinth[2]。
TENS主要集中在媒体介入层(MAC)和物理层的修改,通过对信道实现的修改支持多信道,但对多信道的支持是单接口的.Hyacinth对接口的数量进行了限制,并且只能是静态的路由才能使用多接口多信道.通过对以上两种方法的研究发现,并没有一种方法实现了有效灵活的多信道多接口扩展方式,以致以前的路由协议并不能够有效的使用多信道多接口这个新特性.本文的主要目的之一就是提供一种简单有效的扩展方式,使得在模拟的时候能够方便更改设置.首先,每个节点能够灵活定义接口数目,一个接口对应一个信道,在同一个环境中并不是每个节点都需要相同数目的接口;
其次,通过修改已有的路由协议或添加新的路由协议,使其具有多信道多接口能力.当节点具有多信道以后如何合理利用新增信道,本文也作了初步探索。
NS-2是指NetworkSimulatorversion2,NS(NetworkSimulator)是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,NS-2(NetworkSimulator,version2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。
NS是用Otcl和C++编写的。
当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。
只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。
这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。
由于NS-2是开源的,因此允许用户自己修改其源代码来实现自己的协议,本次毕业设计目的就是通过修改NS-2的源代码来实现多信道多接口技术。
2、基本内容和技术方案
IEEE802.11标准在2.4GHz和5GHz物理层定义了多个不重叠的信道。
然而,今天的大多数AdHoc(无线自组织网络)的无线网络配置在一个单一信道,以确保所有的节点连接。
因此,无线电频谱提供的总带宽是没有充分利用。
为了满足高吞吐量的需求,必须利用一切可用的频谱。
过去的研究通过同步无干扰传输利用多信道,多接口增加网络容量。
在本设计中,我们使用网络仿真器(NS2)实施和评估利用多信道和多接口的接口转换技术。
仿真结果表明本方法很有效的提高了网络吞吐量。
本设计中,我会首先扩展NS2,使其支持MIMO;
然后,编写两个无线脚本来比较AdHoc网络中应用MIMO的优势,从而表明使用接口转换技术在提高网络吞吐量上、降低丢包率、降低延时等方面的有效性。
3、进度安排
第1—2周:
查找资料,确定论文题目。
第3—4周:
查阅相关文献资料,熟悉MIMO的基本原理及NS2的基本使用方法,提出MIMO的实现方案,完成开题报告。
第5—8周:
在导师指导下修改开题报告,确定最终的研究方向和技术路线,并根据自身情况确定任务书。
根据设计的系统框架,明确各模块的具体功能,阅读相关资料,熟悉相关技术。
第9—13周:
实现整个设计并完成论文初稿。
第14—15周:
在导师的指导下,对论文作进一步的修改,并完成外文文献的翻译工作。
第16周:
完成论文终稿,准备答辩PPT。
第17周:
做答辩最后的准备工作并且完成答辩。
4、指导教师意见
指导教师签名:
年月日
目录
摘要 1
Abstract 2
1绪论 3
1.1本课题国内外研究现状 3
1.2本文主要研究工作 3
2多信道多接口与节点模型 4
2.1多信道多接口 4
2.2节点模型 4
3节点模型的修改 7
3.1对ns-lib.tcl的修改 7
3.1.1四个新增的过程 7
3.1.2修改node-config过程 8
3.1.3修改create-wireless-node过程 9
3.2对ns-mobilenode.tcl的修改 10
3.2.1修改add-target过程 10
3.2.2修改add-target-rtagent过程 11
3.2.3修改add-interface过程 12
3.2.4修改初始化复位过程 13
3.3对mobilenode.[cc,h],channel.cc,mac-802_11.cc的修改 14
3.3.1修改mobilenode.[h,cc] 14
3.3.2修改channel.cc 15
3.3.3修改mac-802_11.cc 16
4路由协议的修改 17
4.1对aodv.h的修改 17
4.2对aodv.cc的修改 18
4.2.1修改类AODV的构造函数 18
4.2.2AODV路由发现过程与相应的修改 19
4.2.3sendHello,sendError函数的修改 23
4.2.4路由表更新函数rt_update的修改 25
4.2.5修改command函数 25
4.3对路由表的的修改 26
5仿真实现与结果分析 28
6总结与展望 30
6.1全文工作总结 30
6.2展望 30
参考文献 31
附录 32
致谢 39
摘要
IEEE802.11标准定义了在2.4GHz和5GHz频段内多个不重叠的物理层信道。
然而,现在大多数的无线Ad-Hoc网络是在一个单一的信道下配置的,以确保所有的节点相连接。
因此,无线频段所提供的总带宽并没有被充分利用。
为了满足高吞吐量的需求,必须利用一切可用的频带。
在以往研究的若干建议中,通过多个同步无干扰的传输,利用多信道、多接口来提高网络容量。
在这个项目中,我们运行和评测所使用的网络仿真软件为ns-2。
从单一接口转换到利用多信道多接口的技术。
这包括支持ns-2核心的集成的多信道、多接口(这在当前版本的ns-2下是不可实现的)。
仿真结果证明了在提高网络吞吐量,降低丢包率,降低时延方面的有效性。
关键词:
NS2;
多信道,多接口;
移动节点;
AODV协议
Abstract
TheIEEE802.11standarddefinesmultiplenon-overlappingchannelsatthephysicallayerinthe2.4GHzand5GHzspectrums.However,mostad-hocwirelessnetworkstodayareconfiguredtooperateunderasinglechannelinordertoensureconnectivityofalltheirnodes.Hence,theaggregatebandwidthprovidedbytheradiospectrumsisnotfully-utilized.Inordertomeetthehighthroughputdemand,itisessentialtouseallavailablespectrums.Severalpastresearchproposalshaveexploitedmultiplechannelsandmultipleinterfacestoincreasethenetworkcapacity,byhavingmultiplesimultaneoustransmissionswithoutinterference.
Inthisproject,weimplementandevaluatethetechniqueofmultiplechannelsandmultipleinterfacesusingtheNetworkSimulator(ns-2).Thisincludesincorporatingthemultiplechannelandmultipleinterfacesupportstothecoreofns-2,whicharenotavailableinthecurrentversionofthesimulator.Thesimulationresultsdemonstratetheeffectivenessoftheapproachinimprovingthenetworkcapacitytoreducetheratioofpacketlossandtimedelay.
KeyWords:
NS2;
Multi-channel,Multi-interface;
Mobilenode;
AODVProtocol
1绪论
1.1本课题国内外研究现状
随着IEEE802.11相关技术及产品的不断普及,研究者开始把他们的注意力移到了多信道多接口方面.需要修改NS2中的协议模型为进行多信道多接口相关的研究工作提供支持。
前人已经对这个问题提出了多种方法,比较典型的如TENS[1]、Hyacinth[2]。
TENS主要集中在媒体介入层(MAC)和物理层的修改,通过对信道实现的修改支持多信道,但对多信道的支持是单接口的。
Hyacinth对接口的数量进行了限制,并且只能是静态的路由才能使用多接口多信道。
通过对以上两种方法的研究发现,并没有一种方法实现了有效灵活的多信道多接口扩展方式,以致以前的路由协议并不能够有效的使用多信道多接口这个新特性[15][16]。
本文的主要目的之一就是提供一种简单有效的扩展方式,使得在模拟的时候能够方便更改设置[3]。
首先,每个节点能够灵活定义接口数目,一个接口对应一个信道。
在同一个环境中并不是每个节点都需要相同数目的接口[5];
其次,通过修改已有的路由协议或添加新的路由协议,使其具有多信道多接口能力[6][7][8]。
当节点具有多信道以后如何合理利用新增信道,本文也作了初步探索[10]。
1.2本文主要研究工作
本设计中,我会针对NS2的机制对OTCL与C++代码进行修改。
首先,我会修改节点模型使其具有多接口,这部分主要需要修改OTCL代码,但也需要修改少许的C++代码;
其次,为了使路由协议能够适应多信道多接口,路由协议也需要修改,我以AODV协议为例进行了修改,这部分基本上就是C++代码;
最后,我会编写一个简单的无线模拟仿真脚本,对节点的多信道多接口性能进行仿真,分析了吞吐量,丢包率以及实验特性,从而表明使用多信道多接口技术的有效性。
2多信道多接口与节点模型
2.1多信道多接口
IEEE802.11标准定义了在2.4GHz和5GHz频段内多个不重叠的信道。
原始的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):
地址解析协议(AddressResolutionProtocol)的主要功能是将IP地址解析为物理地址。
接口队列(InterfaceQueue):
接口队列是由类PriQueue实现的。
PriQueu是一个优先级队列。
它优先处理路由协议分组,可以对所有队列中的分组进行过滤,删除那些具有特定目的地址的分组。
MAC层:
处理从链路层接受的或将要发往链路层的数据包。
发送时,它增加MAC包头。
或者,从物理层的分类器异步接受数据包。
网络接口(NetworkInterface):
移动节点访问信道的接口,可以通过这个接口设定无线网络物理层的一些相关特性值。
传播模型:
用来计算每个分组在到达接收节点时的信号能量功率。
图1ns2中原始的mobilenode结构
修改后的节点模型应具有多个链路层,ARP模块,接口队列,MAC,网络接口和信道,这一方案模拟的是多信道多接口AdHoc网络,因此不需要修改任何的IEEE802.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改变接口数目
----------------------------------------------------------------------------------------------------------------------
Simulatorinstprocchange-numifs{newnumifs}{
$selfinstvarnumifs_
setnumifs_$newnumifs
}
第二个过程add-channel作用是给节点的接口配置信道,具体如表3.2所示。
表3.2接口配置信道过程
Simulatorinstprocadd-channel{indexchch}{
$selfinstvarchan
setchan($indexch)$ch
第三个过程get-numifs返回接口数,具体如表3.3所示。
表3.3返回接口数
Simulatorinstprocget-numifs{}{
if[infoexistsnumifs_]{
续表3.3
return$numifs_
)eise(
return"
"
}
第四个过程ifNum作为node-config的一个参数,配置接口数,具体如表3.4所示。
表3.4ifNum过程
3.1.2修改node-config过程
node-config用来对节点进行配置,由于加入了新的接口参数chan($t),所以必须对其初始化,在多接口的情况下其为一数组,具体如表3.5所示。
表3.5node-config过程
Simulatorinstprocnode-configargs{
……
setargs[eval$selfinit-vars$args]
$selfinstvaraddressType_routingAgent_prop