资源描述
毕业设计(论文) 第28页
毕业设计(论文)
设计(论文)题目 均质无线传感网关键节点属性特征
及其实证分析
学生姓名
学生学号
专业班级
指导老师
院长 (系主任)
5 月 29 日
均质无线传感网关键节点属性特征及其实证分析
摘要
无线传感器网络是能量受限的网络,近年来发表的路由协议考虑了传感器节点的节能问题,但是未在重要程度不同的节点之间进行区分。网络中普遍存在着连接不同区域的一些节点,它们的失效会导致“传感孤岛”与“能量空洞”等现象的出现。相对于其他节点,这类节点对网络的生存期有着更大的影响,我们称之为关键节点。本文从考虑节点能量的角度出发,给出了关键节点的三个属性特征:流量因子、桥接因子、汇聚因子和两种判断关键节点的方式:利用能量模型判断和在连通图中判定关节点,同时用网络模拟器NS2加以模拟验证。实验结果表明关键节点的失效将对网络的连通性造成严重影响,此时其他节点的能量还有大量剩余,因此我们可以对这些关键节点采取不同的能量控制策略,以尽可能的延长网络生命期。
关键词:无线传感网,关键节点,网络仿真,NS2
The analysis and demonstration of articulation nodes’s
attribute characteristics in homogeneous wireless sensor networks
Abstract
Wireless sensor networks are the networks with limited power. The routing algorithms recently published which have considered the energy efficiency problem, however, do not distinguish the nodes with different significances. The nodes connecting different regions are widespread in the networks, their failure will bring on “sensor island” and “energy hole”. Relative to other nodes, such nodes have greater impact on the network’s lifetime, and we call them articulation nodes. Based on considering the energy of nodes, the paper gives three attribute chatacteristics: flow factor、bridging factor 、convergence factor,and two ways to find articulation nodes:using energy model to find and finding key nodes in the connected gragh. At the same time,we use network simulator NS2 to simulate and verify our analysis results. Experimental results show that the failure of nodes identified by the model will have a serious impact on the connectivity of the network. At this point the other nodes also have a large number of surplus energy. So, we can take different energy control strategy over the articulation nodes to achieve network lifetime as long as possible.
Key Words:wireless sensor network,articulation nodes,network simulation,NS2
目 录
1.绪论 1
1.1课题的背景与目的 1
1.2国内外的研究现状 1
1.3设计过程和研究内容 2
2.关键节点 3
2.1关键节点的概念 3
2.2关键节点的属性特征 4
2.2.1流量因子 4
2.2.2桥接因子 4
2.2.3汇聚因子 4
2.3关键节点的判定方式 5
2.3.1能量模型判定 5
2.3.2在连通图中判定关节点 6
3.网络模拟相关技术 7
3.1网络仿真模拟器 7
3.2 NS2介绍 8
3.3 Tcl与Otcl介绍 10
4.模拟仿真 12
4.1模拟环境 12
4.2系统建模 12
4.3模拟过程及结果的分析 14
4.3.1定义sink节点 14
4.3.2定义普通节点 16
4.3.3创建模拟过程 18
4.3.4模拟结果分析 20
5.总结 27
6.致谢 28
7.参考文献 29
1.绪论
1.1课题的背景与目的
无线传感器网络是由大量微小节点构成的全分布式的自组织网络。它作为一种有效的无线数据获取网络,可以以大量的廉价微型传感器节点方便的配置到布线和电源供给困难的区域、人员不能到达的区域(如受到污染、环境不能被破坏或敌对区域)和一些临时场合(如发生自然灾害时,固定通信网络被破坏),协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发给观察者,从而极大地扩展了现有网络的功能和人类认识世界的能力。由于它廉价、可动态配置、自组织和良好的可扩展性,无线传感网络被越来越多的关注和应用。在军事应用、、医疗应用、环境监控、自动交通流量监控、动物跟踪监督等多方面都能发挥巨大作用。同时,与传统网络相比,无线传感器网具有造价低、功耗低、布局灵活性强、监测精度高等特点。每个节点都集成了一个或多个传感器、嵌入式处理器、存储器、无线通信模块以及电源和电源管理模块等部件。但是,无线传感网给人们带来的挑战之一就是能量有限。
对单个节点来说,由于体积微小,能量有限,带来了许多资源上的限制:有限的计算能力、有限的存储能力、有限的通信带宽和有限的电源供应。在这些限制中,如何合理有效地利用有限的电力,是无线传感网络研究的热点之一。由于被监测区域的环境可能十分恶劣(如战场、极地) ,技术人员无法进入,而且构成网络的节点数量巨大,一一为其替换电源是不现实的[1]。因此,为了延长网络生命期、防止网络分离,识别出传感节点的差异性,采取一些策略尽可能的使全网能耗均衡对无线传感网的研究是非常有价值的。
1.2国内外的研究现状
无线传感网是一项新技术,很多研究工作都还只刚起步,在无线传感器网络中,目前的发展主要集中在几个方面,在协议通信层主要研究重点是数据链路层MAC协议及网络层路由协议的研究;在网络管理技术层,主要研究方向是收集数据的管理、节能问题的解决以及网络通信安全的实现;在网络支撑技术层,主要研究点是节点定位问题的解决、时间同步技术的实现以及用户应用接口的实现.这其中,协议的研究与节能的实现又是相辅相成的。
目前大家都只知道节点特别是关键节点的重要性,在探索网络的生存期以及信息安全性等方面都必须从节点下手。绝大多数应用中,网络中的节点是由不可再生的电池供电的,无线传感器网络的首要性能指标是它的工作寿命。而其工作寿命由节点的能量供应水平和消耗能量的速度一同决定的。如果由于一些节点消耗完能量后不能工作,因而造成基站(或者用户)不能够得到目标区域的数据,我们就说这个网络已经死亡,并且它的死是由那些消耗完能量的节点决定的,那些节点的寿命就是整个网络的寿命[2]。因此,为了研究网络生存期,防止网络分离,从节点的硬件设计到协议、具体应用,都必须充分考虑到对这些节点的处理。
1.3设计过程和研究内容
本课题的研究过程分两个部分,定性的分析会影响一个节点成为关键节点的属性特征并对分析结果加以模拟验证。课题的前期工作主要是查看一些国内外相关文献和一些图论知识,分析节点成为关键节点可能受影响的因素。后期工作主要是对分析结果进行仿真,运用到的工具是NS2,所以在前期也需要学习有关NS2的一些知识。
一个节点是否是关键节点受很多因素的影响,例如节点密度,虽然节点密度越高越能保证所传信息的正确性,但也增加了计算的复杂度和通信开销等。此外节点在网络中的位置、网络大小、组网形式这些因素都可能影响到一个节点在网络中能起到的作用或者该起的作用。在通信过程中关键节点将如何对信息进行选择和处理,此类问题都将在人们的研究中得到明确的答案。本课题只初步探讨关键节点的属性特征。
q;Y'Br*q*q qy0
2.关键节点
2.1关键节点的概念
无线传感器网络多采用直升飞机抛洒的“0-配置”方式,大量成本低廉的传感节点的分布特性是难以预知的。网络中普遍存在连接不同区域的关键节点与关键区域,这些节点或区域的失效会导致“传感孤岛”与“能量空洞”等现象的出现,我们可以将这些节点定义为关键节点。通俗而言,这些节点比网络中的其余节点更为重要,这些节点一旦耗尽电力,会造成许多尚有能力的节点与之同时失去作用。有实验结果表明当节点按照通常情况分布在网络中,网络生命结束时,网络中的90%能量没有被利用[3]。
下面来看一个简单的例子。在图2.1中,从节点A到节点E有3条路径,分别是ABE、ACE和ADE (忽略多次经过单个节点的路径) 。现在假设有一持续的数据流要从节点A发往节点E,则对不考虑能耗平衡的路由算法来说,将始终选择最快最近的ACE路径传输数据,导致节点C的能量迅速减少,相对于网络其他部分,可能会过快地失去对区域C的监测功能[4]。于是我们可知,C是该网络中一个关键节点。同样,节点D的重要性也要高于其他节点,因为节点D是联系节点A和节点F、G的“桥梁”,一旦它的电能耗尽,则以它为“桥梁”的子网将与传感网络的其他部分失去联系,造成网络分离,使许多尚有能量的节点起不到应有的功能。
图2.1多路径能量平衡
2.2关键节点的属性特征
2.2.1流量因子
节点流量因子,反映节点在网络拓扑中的位置属性,用于度量节点v距离sink节点远近的不同导致承载数据中继任务的多少。
距离sink节点近的节点,也可以称之为内环节点,从网络拓扑结构我们可以看出,各区域采集到的数据要传送到sink节点,必须从外环的节点一级一级的往内环节点传送。节点越处于内环,需要中继的数据越多。内环节点在网络中中继大量数据且内环节点也需要采集数据,发送数据给sink节点,采集数据、处理数据和中继数据都需要消耗能量。这样一来,内环节点在网络中发挥的作用和重要性都要明显高于外环节点,其能量消耗速率也会比外环节点快。若内环节点失效,网络中采集的数据则不能发送到sink节点,内环节点的工作寿命严重影响着网络生命期,所以流量因子是关键节点的一个重要属性特征。
2.2.2桥接因子
无线传感网络的节点是随机部署的,那些连接不同紧密区域的节点,由于是不同区域间通信的唯一桥梁,能量消耗速率会很高,同时由于它们的失效整个网络可能被割裂成两个或多个不相连的区域,这里我们引用“瓶颈节点”的概念加以说明。
一个节点是瓶颈节点,当且仅当其邻居可以被分割成不相交的两个或多个节点集,且这些不相交的节点集的邻居集合也不相交。如果瓶颈节点死亡,网络将会产生分割,因此,如何在网络中找到这些节点并延长他们的寿命,对延长整个网络的寿命有着重大的影响。桥接因子即表示一个环域内与该节点相连的邻居节点之间互相连接的程度,也可以作为关键节点的一个属性特征。
2.2.3汇聚因子
节点汇聚因子,表示节点v的汇聚程度,用于度量节点v在环域间数据中继的重要性。
从无线传感器网络的环拓扑结构图中我们可以看出,环越往外,每环中所包含的节点越多,虽然环只是我们为了分析网络节点分布而提出的。外环上的节点要传送数据到sink节点,必须经由内环节点,而内环上的节点数目比外环上的少,这必定存在着内环上的一个节点必须接收来自它邻接的外环多个节点的数据转发给sink节点的情形,即这个节点汇聚多个节点的数据。由于接收数据和转发数据都需要消耗能量,汇聚数据的节点的能量消耗会比一般的节点快,且当该节点能量耗尽时,需要它转发数据的那些节点也不能工作了。由此我们也可以判定这些发挥汇聚作用的节点也是关键节点,且汇聚程度越高,节点越关键。
2.3关键节点的判定方式
在分析了关键节点的一些属性特征后,提出了两种关键节点的判断方式:利用能量模型判断和在连通图中判断关节点。实际上,利用能量模型判断只是一种验证2.2节中所提出的关键节点的属性特征是不是真的是影响一个节点成为关键节点的特性,它只能在网络生命期结束后才能识别出哪些节点在网络中起着重要的作用。而在连通图中判断关节点则是从全局的角度来看,我们可以把随机布置的节点当成一个图中的点,然后利用图论的知识来识别其中的关节点。
以上两种方式都只能定性的判断出关键节点,不能准确的计算出每个节点成为关键节点的概率。因为要具体计算,需要运用大量数学知识,由于个人理论水平和研究时间的限制,只定性的研究节点成为关键节点的概率。
2.3.1能量模型判定
能量模型判定法即利用网络中节点都配备有相同的初始能量,网络在工作了一段时间或者网络生命期结束时,会有一部分节点的能量消耗速率比其他节点快,这一部分节点的能量会比其他节点先耗尽,如果这些节点的失效会导致网络分割或者网络生命期结束的话我们就可以判断这一部分节点为关键节点。
我们可以设置仿真实验,假设100个节点随机均匀的部署在一块150*150平方米的区域内。节点具有与文献[5]中相同的能量消耗模型:接收一个字节消耗400uJ,发送一个字节消耗720 uJ。为了快速得到结果并且不影响仿真的分析,节点的初始能量设置为5.4J。
仿真过程中需要选择合适的网络层协议。在仿真中,我们选择了一个简化了的定向扩散协议[6]。节点的梯度由节点到基站的跳数来决定。每个中继节点维护一个梯度表,存储梯度比它小的所有邻居节点的信息。随机选择上游节点,可以使各中继节点在网络中的能量消耗尽可能均衡,防止某个特定的节点因不停的转发数据而快速的消耗完它的能量,从而可以延长网络寿命。至于如何判断网络生命期何时截止,可以令基站维护一个定时器,每收到一个数据包,就把这个定时器复位,若定时器期满时还没有收到数据包,基站就重新发送请求,网络中的所有节点重新计算自己的梯度。若基站发送了几次请求后仍没有收到任何信息,就可以认为网络已经死亡。
在具备了能量消耗模型和网络层协议后,我们可以实现节点间的数据通信。在我们的仿真模型中,sink节点位于网络的正中央,节点围绕sink节点随机分布,节点传送数据经由多跳到达sink节点,同时我们不考虑数据的融合,节点接收到数据后全转发给其上游某节点。仿真过程中,我们可以观察节点间数据的通信,那些传递数据繁忙的节点,传送大量中继数据而提前耗尽能量的节点,这些节点的失效会导致网络分割和网络中数据包的丢失,我们可知这些节点在网络中的重要性,这些节点称之为关键节点。我们可以观察它们在网络中的位置极其周围节点的分布情况,验证2.2节中所提出的几个特性是否是判断关键节点必须考虑的因素。该判定方式的弊处在于不能在网络被配置时就能识别出哪些节点是关键节点,只有在网络失效时才能得出关键节点的分布。因此,该方式最好是用于验证分析某个因素是否可以影响一个节点成为关键节点。
2.3.2在连通图中判定关节点
之所以利用连通图中的关节点判定算法来判定无线传感网中的关键节点,是因为两者有相通的成分。图是连通的,即图中任意两点可以经由某些边相通,可以理解为无线传感网中所有节点都可以经单跳或多跳传送数据到sink节点。在连通图中判定关节点的方法是:对于连通图G,若删除G中的顶点v以及v相关联的各边之后,图G分割成两个以上的连通分量,则称顶点v为图G的关节点。这与无线传感网中判定关键节点的方法是相似的,当某节点的失效会导致网络分割我们即可以称该节点为网络中的关键节点。网络中的节点都具有传输半径,当节点B在节点A的传输半径范围内,即节点A可以向节点B传送数据,将节点A、B放在一个图中,我们可认为点A、B之间是相连接的,它们之间存在着点A到点B的一条边。
在图论中对图的关节点的判别方法有很多中,它们一般是从树、路、圈、顶点度数等角度来判断。可以对图进行深度优先搜索来查找关节点,这种方法效率较高,但较难理解和掌握。还有一种关节点的矩阵判别法,这种方法易于理解和掌握,但需要判断矩阵是否为准对角阵,这个过程比较复杂。本文列举一种新查找关节点的矩阵判别方法,利用Floyd最短路径求解算法来求解关节点[7],这种方法思想简单,求解方便,且易于理解和掌握。算法如下:设图G=<V,E>是连通图,则判断顶点v是否为关节点的算法可以描述为:(1)由图G的邻接矩阵A求出子图G-v的邻接矩阵;(2)按照Floyd算法求出子图G-v的最短路径长度矩阵D;(3)根据最短路径长度矩阵D判断v是否为关节点。若D中除主对角线元素外具有0元,则v是关节点,否则v不是关节点。
3.网络模拟相关技术
3.1网络仿真模拟器
近年来,网络通信技术日新月异,对网络技术的研究也同样炙手可热,这也促使人们不断提高研究水平,更新研究技术,增加研究手段。目前网络通信的研究一般可分为一下三种方式[8]:
(1)理论研究:在理论和协议层面上对网络通信技术及系统进行分析研究,如采用数学建模、协议分析、状态机、集合论以及概率统计等多种理论分析手段和方法对通信网络及其算 法、协议、网络性能等各个方面进行研究。
(2)网络仿真:即计算机模拟仿真方法,本书对模拟与仿真不做区分,二者通指通过计算机软件模拟真实网络进行试验研究的方法。也称为虚拟网络实验床(Virtual Network Testbed)。
(3)试验网方法:采用建立实验室测试网络、网络试验床(Network Testbed)和小规模商用试验网络的方式对网络进行实战检验,如当前第三代移动通信网,各大网络设备提供商和运营商就在不同城市建有不同规模的试验网络,并进行一定量的测试放号。使广大用户参与到网络的测试中,也使得网络设备和系统收到实际应用环境的检验。
以上三种方法各有利弊,相辅相成并各有侧重点。理论研究适用于早期研究与设计阶段,对新算法和新技术进行理论准备和验证,除了人力和知识,几乎不需要什么额外成本;试验网方法是网络和系统在投入实际适用前的一次系统的演练,能够发现网络设计与用户需求之间的相合度以及检验网络实际使用的效用和性能。该阶段建设成本很高,要求技术和设备开发相对成熟;而网络仿真阶段可以说是理论方法和试验网方法的中间阶段,它可以对新协议进行初步实现和验证,并有利于及时调整和改进,这个阶段,由于采用计算机软件进行仿真,使得很多研究人员能够研究大规模网络和学习新协议新算法的设计和实现。并且能够在实用前对其进行检验和改进,此外,他还可以在各种新老系统和算法之间进行比较而不必话费巨资去建立多个实际系统。因此,网络仿真是网络通信研究中非常重要的一种方法。
网络仿真是当前网络通信研究中的重要技术手段之一,在网络通信的建设开发过程中起着不可替代的重要作用。大部分网络通信的技术研究也都必须经过网络仿真研究这么一个重要环节。学术界对网络通信的研究更加离不开网络仿真。当前有许多优秀的网络仿真软件,其中应用比较广泛的主流仿真软件有OPNET、NS2、MATLAB、SPW、QualNet等,这为网络研究人员提供了很好的网络仿真平台。
3.2 NS2介绍
NS-2全称是Network Simulator Version 2,它是进行网络仿真最流行的软件,已广泛被科研院所和各大高校用于进行网络分析、研究和教学。NS2 是一款开放源代码的网络仿真软件,最初由UC Berkeley 开发而成,他最初为了研究大规模网络以及当前和未来的网络协议交互行为而开发。它为有线和无线网络上的TCP、路由和多播等协议的仿真提供了强有力的支持。NS2 是一个开源项目,所有源代码都开放,任何人可以获得、使用和修改其源代码。正因为此,世界各地的研究人员每天都在扩展和更新它的功能,为其添加新的协议支持和功能模块。
NS2是一种面向对象的网络仿真器,它本质上是一个离散事件模拟器,其本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS2 可以用于仿真各种不同的通信网络。它功能强大,模块丰富,已经实现的一些仿真模块有:网络传输协议,如TCP 和UDP;业务源流量产生器,如FTP、Telnet、Web CBR 和VBR;路由队列管理机制,如Droptai、RED 和CBQ;路由算法,如Dijkstra,以及无线网络的WLAN,Ad hoc 路由,移动IP 和卫星通信网络等。NS2 也为进行局域网的仿真而实现了多播以及一些MAC 子层协议。
NS-2由两种编程语言,Otcl(具有面向对象特性的tcl脚本程序设计语言)和C++实现。之所以使用两种编程语言,是因为模拟器有两方面的事情需要做。一方面,具体协议的模拟和实现,需要一种程序设计语言,能够高效率的处理字节(Byte),报头(Packet Header)等信息,能够应用合适的算法在大量的数据集合上进行操作。为了实现这个任务,程序内部模块的运行速度(run-time speed)是非常重要的,而运行模拟环境的时间、寻找和修复bug的时间,重新编译和运行的时间(run-around time)不是很重要。这种情况下,C++语言是非常合适的。
另一方面,许多网络中的研究工作都围绕着网络组件和环境的具体参数的设置和改变而进行的,需要在短时间内快速的开发和模拟出所需要的网络环境(scenarios),并且方便修改和发现、修复程序中的Bug。在这种任务中,网络环境布置的时间就显得很重要了,因为模拟环境的建立和参数信息的配置只需要运行一次。这种情况下,脚本语言有很大优势,具有面向对象特性的TCL脚本语言可以充分满足需求。
NS-2中节点的结构与实际环境中的网络节点非常相似。对于一个网络节点来说,有IP地址和端口号,这对应的就是图中的地址分类器(Address Classifier)和端口分类器(Port Classifier)。当TCP数据包从节点入口处(Node Entry)进来节点之后,首先在地址分类器处通过IP包头判断IP地址是否与本节点相同,如果相同则进入端口分类器,通过TCP包头获得数据包的目的端口,并把数据包发送到节点相应的端口进行处理;如果在地址分类器处发现数据包的目的IP地址与本节点不同,就将数据包重新发送进入链路,以供其他节点处理。
总之,NS-2为我们提供了一个很好的试验平台。它使用两种语言,C++有利于快速的运行速度;TCL则有利于快速建立试验环境。NS-2中的实体结构也非常清晰,有利于构建新的网络协议和网络实体[9]。以下图3.1是利用NS进行网络模拟的过程。
对模拟结果
进行分析
NS用户
添加或修
改C++类
重新编
译NS
编 写
Otcl脚本
运行
NS模拟
修改
Otcl脚本
修改C++
代码
结束
图3.1 利用NS进行网络模拟的过程
3.3 Tcl与Otcl介绍
Tcl是Tool Command Language的缩写。它包括两个部分:一种脚本语言和相应的解释器(能方便地向应用程序中添加)。作为一种脚本语言,Tcl与其他Unix外壳语言,如C Shell 和Perl相似,提供足够的可编程能力,组合现有程序成为量身定制的新工具,大大减少编程量[10]。
NS2编程中用到的最主要的语言就是Otcl语言和C++语言,至于为什么要采用两种语言,本文在3.2节中已经做了详尽的说明。Otcl是Tcl语言的面向对象的扩展,Otcl和tcl的区别在于tcl是普通的面向过程的脚本语言,Otcl则是面向对象的脚本语言。在Otcl中引入了类和对象的概念,面向对象机制的加入使得原始的Tcl变得更加强大,更加方便使用。Otcl中对象以及类的概念和C++等其他面向对象程序设计语言中的概念相同。对象是类的实例,具有继承、封装、多态性和动态绑定等性质。同样,类有自己的成员变量和成员函数(也常称作实例过程)。虽然Otcl和C++等面向对象语言的概念相同,但是在具体实现和语法方面却存在着很大的差别[11]:
(1)和C++中只能存在单个类定义来比较,Otcl可以有多个定义每个成员函数的定义(用关键instproc)都给类增加一个方法。每个变量的定义(用关键词set或函数体内使用instvar)都给对象增加一个变量。
(2)和C++中的构造函数不同,Otcl使用一个叫做init的instproc。相对于C++中的析构函数,Otcl使用一个名字为destroy的instproc。而且Otcl里的构造函数和析构函数并不自动和基类结合,需要用next显式调用。
(3)和C++不同的是Otcl方法往往通过对象进行调用。函数体内的关键词self相当于C++中的this指针,而且Otcl方法常常是虚拟函数(virtual) 。
(4)与C++中调用被继承的方法不同,Otcl通过施用next来调用,next将通过查找继承关系来找到被继承的方法和变量。
NS2对仿真类进行了封装。NS2对仿真类的封装为其在使用Otcl进行脚本语言的编程时提供了极大的方便。为了更清楚的理解Otcl,我们需要了解Otcl的对象层次结构,如图3.2所示[12]。
图3.2 Otcl的对象层次结构
4.模拟仿真
4.1模拟环境
我们使用的模拟环境是Cygwin+NS2。Cygwin是一个windows下的linux运行环境,相当于一个衔接软件。因为要用NS2做网络仿真,NS2不能直接在windows下运行,所以只能装linux或者cygwin来创造环境。环境的搭建步骤如下:
(1)下载cygwin。(网址:http://140.116.72.80/~smallko/ns2/ns setup.rar)
(2)解压下载的文件点setup,选“Install from local directory”,安装包可以全选,也可以只选择自己需要的那些包,第一次安装的时候我只选择了部分包,按理说也应该够了,可是安装完成后报错,所以建议全选,只是安装的时间会长一些而已。
(3)下载ns,现在的版本已经更新到了ns-allinone-2.29。
(网址:http://www.isi.edu/nsnam/dist/ns-allinone-2.29.tar.gz)
(4)点桌面图标进入cygwin,自动创建3个文件,在C:\cygwin\home\Administrator(Administrator为机器名)下,分别是.bash,.bash_profile和.inputrc。用tar xvfz ns-allinone-2.29.tar.gz解压文件。用cd ns-allinone-2.29进入/home/dinglan/ns-allinone-2.29目录,用./install进行ns安装。安装结束后,进入home/ Administartor目录下,编辑.bashrc文件,在文件的最后加入
export NS_HOME="/home/Administrator/ns-allinone-2.29"
export PATH="$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/unix:$NS_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/
unix:$NS_HOME/otcl-1.11:$NS_HOME/lib:$LD_LIBRARY_PATH"
export TCL_LIBRARY="$NS_HOME/tcl8.4.11/library"
(5)验证环境是否搭配成功,用cd ns-allinone-2.29/ns-2.29;./validate。或者可以运行一个小例子查看运行结果。
4.2系统建模
无线传感器网络的生命期与其具体应用是紧密相关的,目前对无线传感网生命期还未有一个权威的定义,Stanislava Soro在他的文章中提出一种定义网络生命期的方式:在分簇网络中,当出现第一个簇头节点失效时,即可判定网络已经死亡[13]。由于我们设定的网络中没有分簇,所以不采取该种方式,但是类似的,我们可以认定网络被部署到由于一些关键节点的失效导致网络分割的时间为网络生命期。在被部署之前,所有的节点都是一样的,一旦部署完成,由于检测环境的不同和在网络中所处位置的不同,各节点间平等地位就会被打破,我们可以从基于节点对网络生命期的影响角度出发,判断出对网络生命期至关重要的节点为关键节点。
无线传感器网络作为一个新兴网络,虽然已经取得很大的成果,但是现有的系统中还存在不少问题,现有的理论也还很不成熟完善,例如基础底层的硬件设计,小型化、功能机制等问题都还没有解决[14]。为了便于研究,我们对我们的网络传输模型做了一个限定:
(1)单sink节点。我们认为无线传感器网络中只有一个汇聚节点,而且部署完成后基站不会移动。
(2)均质传感器网络。所有传感节点的发射功率、探测半径、初始能量等均相同,且具有相同的能量消耗模型。
(3)节点功率不可调。传感节点的半径在整个网络生存期内保持恒定。
(4)随机分布抛撒。传感节点的部署采用随机抛撒的“0-配置”方式。
(5)many-to-one和mutli-hop传输模式。节点传送数据经由多跳达到sink节点。
无线传感器网络N={V,A,S,E},其中,V表示节点集合,A表示边集合,S为单sink节点,E为每个节点的初始能量。网络中传感节点的在有效传输半径R向邻居传送单位数据所需能耗为e,节点平均邻居个数表示为g,监测范围为边长为M的正方形区域。如图4.1所示。
图4.1 无线传感网网络拓扑图
4.3模拟过程及结果的分析
模拟过程我们采用的是第一种判断方式,目的也就是验证2.2节中所提出的关键节点属性特征是否真的是判断关键节点必须考虑的因素。模拟的基本网络配置是将30个节点随机的部署在一块100*100平方米的区域内,节点具有与文献[5]中相同的能量消耗模型:接收一个字节消耗400uJ,发送一个字节消耗720uJ。为了快速得到结果并且不影响仿真的分析,节点的初始能量设置为5.4J。
4.3.1定义sink节点
在我们的仿真实验中,sink节点默认为标号为0的节点,且其位于网络的正中央,接收从其他节点传送过来的数据。以下是对sink节点的定义:
proc create_sink {iniEnergy x y z start stop} {
global ns_ val node_ sink_ contador_nodos topo app_ udp_ trace rng
Phy/WirelessPhy set Pt_ 0.2818
$ns_ node-config -sensorNode ON \
-adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(antenna) \
-propType $val(prop) \
-energyModel $val(en) \
-phyType $val(netif) \
-channelType $val(chan) \
-topoInstance $topo \
-agentTrace $trace(agent) \
-routerTrace $trace(router) \
-macTrace $trace(mac) \
-rxPower 0.024 \
-txPower 0.036 \
-initialEnergy $iniEnergy \
-movementTrace $trace(movement)
set node_($contador_nodos) [$ns_ node]
$node_($contador_nodos) random-motion 0
set sink_(0) [new Agent/LossMonitor]
$node_($contador_nodos) attach $sink_(0) $val(port)
puts "* Sink Node [$node_($contador_nodos) node-addr] = $contador_nodos created in ($x, $y, $z)"
$node_($contador_nodos) set X_ $x
$node_($contador_nodos) set Y_ $y
$node_($contador_nodos) set Z_ $z
$ns_ initial_node_pos $node_($contador_nodos) 20
incr contador_nodos }
4.3.2定义普通节点
普通节点具有相同的初始能量,相同的传感半径,和相同的能量消耗模型,所以可以一起定义。
proc create_common_node { iniEnergy x y z father_addr start stop } {
global val ns_ node_ topo udp_ app_ gen_ contador_nodos rng trace
if { [llength $start] == 0 } {
set start [expr $val(start) + [$rng uniform 0 1]]
set stop $val(stop)
}
$ns_ node-config -sensor
展开阅读全文