本科毕业设计-无线传感器网络时间同步-作者牟安

更新时间:2024-06-04 22:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本科生毕业论文(设计)

装 订 线

题目: 无线传感器网络时间同步的研究与设计 系 部 计算机科学与技术系 学科门类 计算机科学与技术 专 业 计算机科学与技术 学 号 姓 名 牟安 指导教师

无线传感器网络时间同步的研究与设计

摘 要

I

电系统(Micro-Electro-Mechanism System, MEMS)、片上系统(SOC, System on Chip)、无线通信和低功耗嵌入式技术的飞速发展,孕育出无线传感器网络(Wireless Sensor Networks, WSN),并以其低功耗、低成本、分布式和自组织的特点带来了信息感知的一场变革。时间同步技术是无线传感器网络中的一项重要支撑技术。

本文对一系列无线传感器网络的关键技术做了简单介绍,分析了传统网络和无线传感器网络中的时延,然后叙述了无线传感器网络时间同步领域三种经典的算法协议。对TPSN(Timing—Sync Protocol for Sensor Networks)算法的计算步骤做了详细分析注解,通过比较RBS(Reference Broadcast Synchronization)、TPSN、DMTS(Delay Measurement Time Synchronization)三种经典时间同步算法协议,得出了不同时间同步协议的主要参数例如精度、能耗等的变化规则,最后提出了改进的new算法。

在仿真模拟实验部分,主要采用NS2网络仿真模拟软件。通过对无线网络脚本的编写和对无线Trace文件的分析,采用data格式记录数据然后通过NS2中的Gnuplot绘图软件得出结论。

关键字:无线传感器网络 时间同步 NS2

ABSTRACT

II

With the Micro-Electro-Mechanism System、System on Chip、Wireless communications and low-power embedded technology rapid development ,Wireless Sensor Networks brings a perception of information revolution with its low power consumption, low cost, distributed and self-organized characteristic. Time synchronization technology is an important support technology of the wireless sensor network (WSN).

For the key technology of wireless sensor network, we have some space to introduce. Also, we analyze the delay of traditional network and wireless sensor network, then describe the field of WSN time synchronization three classical algorithm agreement ,and analysis the calculation steps of TPSN. Through comparing the RBS 、TPSN、DMTS,we get the main parameters of different time synchronization protocols. For example: precision and energy consumption. Finally, we put forward the new algorithm and do some simulation exploration with the new algorithm.

In simulation experiment part, we mainly adopt NS2 network simulation software. Based on the wireless network script to write and the analysis of Trace files, we use data format to record data and then through the NS2 Gnuplot drawing software conclusions.

Key words: wireless sensor network time synchronization NS2

目 录

III

1 无线传感器网络概述 ..................................... 1

1.1无线传感器网络的来源与意义 .......................................................................................... 1 1.2无线传感器网络国内外研究现状 ...................................................................................... 1

1.3无线传感器网络支撑技术简介 .......................................................................................... 2

2 时间同步算法协议分析 ................................... 3

2.1时钟模型和时延 ............................................................................................................... 3

2.1.1 时钟模型 .............................................................................................................. 3

2.1.2 无线传感器网络中的时延...................................................................................... 3 2.1.3 消息传递过程分解 ................................................................................................ 4 2.2过去三种时间同步算法协议 ............................................................................................. 4

2.2.1 Reference Broadcast Synchronization ............................................................... 4 2.2.2 Delay Measurement Time Synchronization.......................................................... 5 2.2.3 Timing—Sync Protocol for Sensor Networks..................................................... 5 2.2.4 过去三种算法协议的比较总结............................................................................... 7

3 NS2网络仿真模拟 ....................................... 10

3.1 NS2网络仿真模拟简介 .................................................................................................. 10 3.2 NS2 仿真模拟................................................................................................................ 10 3.3总结和展望 .................................................................................................................... 14

参考文献 ................................................. 15 附 录 ................................................... 16 致谢 ..................................................... 20

IV

1 无线传感器网络概述

1.1无线传感器网络的来源与意义

无线传感器网络的研究起步于90年代末期,从2000年起,传感器节点以及由其构成的无线传感器网络引起军事界、学术界、工业界的极大关注和普遍重视。 无线传感器网络是一种全新的信息获取平台,能够实时监测和采集网络分布区域内的各种检测对象的信息,并将这些信息发送到网关节点,以实现复杂的指定范围内目标检测与跟踪,具有快速展开、抗毁性强等特点,有着广阔的应用前景。

无线传感器网络的时间同步涉及物理时间和逻辑时间两个方面。物理时间用来表示人类社会的绝对时间,逻辑时间表示事件发生的顺序关系,是一个相对概念。传感器所获得的数据必须具有准确的时间和位置信息,否则采集的信息就是不完整的。

[1]

1.2无线传感器网络国内外研究现状

在国外,自20世纪90年代起,美国的很多大学和科研机构就开始了无线传感器网络的研究。加州大学伯克利分校研制的用于无线传感器网络研究的演示平台现已成为研究无线传感器网络最主要的试验平台之一、罗克韦尔技术研究中心与加州大学洛杉矶分校合作开发的无线传感器网络原型与系统已在美国一些政府机构和工程项目上进行了相关实验、麻省理工学院致力于极低功耗无线传感器网络技术的研究等。无线传感器网络的研究首先在军方应用和推广,美国陆军近年来连续启动了一系列研究计划,探索无线传感器网络在未来战争中的应用。2002年5月,美国Sandia国家实验室与美国能源部合作,共同研究能够预警以地铁、车站等公共场所目标的生化武器,并及时采取防范对策的系统,系统集有毒气体检测传感器和网络于一体,该系统的研制有效增强了公共场所抵御生化武器袭击的能力。

在国内,无线传感器网络领域的研究也在很多科研机构展开。中科院上海微系统与信息技术研究所从1998年开始就对无线传感网络进行了跟踪和研究,并完成了一些终端节点和基础的研发,中科院电子所和沈阳所也分别从传感器技术和控制技术角度入手开展研究,2004年国家自然科学基金资助浙江大学和中科院合作开展了无线传感器网络通信协议、定位、部署和覆盖等方面的研究,中科院宁波所计算技术研究所也较早开展了无线传感器网络的研究,并于05年12月开发出了基于IEEE802.15.4协议的GAINS节点和SNAMP平台。传感器网络是目前国内外的最新研究热点,具有广阔的应用前景,将是未来社会应用最广的网络,需要各种技术支撑。通过近几年的研究,人们对传感器网络固有特点的认识已经逐渐明确,并在相关技术方面取得了一些进展。但是,传感器网络要真正实用化,在基础层、网络层等方面还有许多基础性问题和关键技术需要解决。

1

[2]

1.3无线传感器网络支撑技术简介

(1)通信协议

通信协议对于所有网络都是必不可少的基础支撑技术。WSN的通信协议与其它网络相比还不成熟,没有统一的标准,改进空间很大,研究非常活跃。 ①MAC协议

已有的无线网络MAC协议的设计目标主要是为蜂窝网提供QOS和高带宽,即使是无线Ad Hoc网络的MAC层协议设计一般也只是加入自组织和移动的设计考虑。而WSN的MAC层协议的主要设计目标则是低功耗,尽量延长网络寿命,其次则是良好的扩展性和适应性,与已有的协议存在很大差异。 ②路由协议

路由协议是通信协议极其重要的一环。WSN路由协议的设计除了需要考虑资源限制外,还具有许多特异性:以数据为中心的路由在WSN中很受关注,几乎所有应用都存在节点与基站之间多对一的数据传输,此外要考虑数据冗余等问题。 ③传输协议

因特网的TCP和UDP协议是两个著名的传输协议,但并不适合WSN的需求。TCP协议需要一个握手过程,但是一般WSN中每次传输的数据量很小,所以相对来说握手的能耗过大。而且TCP通过端到端的方式来控制拥塞和保证可靠性,在链路非常不可靠的WSN下会花费很长时间,ACK在网络中的端到端传输也会耗费很多能量。 (2)能量管理

低能耗在WSN中是贯穿始终的设计理念,通信单元负责节点与其它节点或者网络代理等设备之间的无线通信,即无线信号的收发功能,一般被认为是整个结构中能耗最大的部分,从物理层到应用层各层面的设计都要将低能耗作为最主要的设计目标之一。广义的能量管理包括所有WSN中需要考虑能耗的部分,如节点的功率控制、低耗的MAC协议和路由协议、应用中的采样率控制、数据融合等。 (3)时间同步

由于晶体振荡器频率的差异及诸多物理因素的干扰,无线传感器网络各节点的时钟会出现时间偏差。而时钟同步对于无线传感器网络非常重要,如安全协议中的时间戳、数据融合中数据的时间标记、带有睡眠机制的MAC层协议等都需要不同程度的时间同步。 (4)定位

WSN采集的数据往往需要与位置信息相结合才有意义。由于WSN具有低功耗、自组织和通信距离有限等特点,传统的GPS等算法不再适合WSN。WSN中需要定位的节点称为未知节点,而已知自身位置并协助未知节点定位的节点称为锚节点(anchor node)。WSN的定位就是未知节点通过定位技术获得自身位置信息的过程。在WSN定位中,通常使用三边测量法、三角测量法和极大似然估计法等算法计算节点位置。

2

2 时间同步算法协议分析

2.1时钟模型和时延 2.1.1 时钟模型

在无线传感器网络搭建中,节点的计时信号一般由晶振提供。而因为晶振制造工艺的差别,在节点的运行过程中又会被环境所影响,再加上晶体老化等许多偶然因素,致使每个晶振的频率不可能完全一致,进而导致节点的计时速率产生的偏差,造成节点时间的不一致。一般地,本地时间与系统标准时间满足函数关系式:

[7]

其中,w(t)为晶振的角频率,W0为系统晶振的标准角频率,t为标准时间,C(t)为标准时间在t时刻的本地时间。

在现实环境中,晶振的频率是在不断变化着的,常用r(t)=dC(t) / dt,来表示时钟的变化速率。如果讨论的是理想情况,则不考虑晶振的变化,则r(t)=1。当Ci(t)=t时,表示节点i的本地时间与标准时间同步。

t时刻的时钟偏差(Clock Offset) 定义为 C(t)-t t时刻的时钟偏移(Clock Skew) 定义为 ρ(t)=r(t)-1

2.1.2 无线传感器网络中的时延

在传统计算机网络中,时延(delay或latency)一条链路)的一端传送到另一端所需的时间。

需要注意的是,时延(有些统称做传输时延)是由以下几个不同的部分组成的: (1)发送时延 发送时延是结点在发送数据时使数据块从结点进入到传输媒体所需要的时间,也就是从数据块的第一个比特开始发送算起,到最后一个比特发送完毕所需的时间。发送时延又称为传输时延,它的计算公式是:发送时延=数据块长度/信道带宽 (2)传播时延 传播时延是电磁波在信道中需要传播一定的距离而花费的时间。

它的计算公式是:传播时延=信道长度/电磁波在信道上的传播速度

(3)处理时延 这是数据在交换结点为存储转发而进行一些必要的处理所花费的时间。在结点缓存队列中分组排队所经历的时延是处理时延中的重要组成部分。因此,处理时延的长短往往取决于网络中的那个当时的通信量。当网络的通信量很大时,还会发生队列溢出,使分组丢失,这相当于处理时延为无穷大了。有时可用排队时延作为处理时延。这样,数据经历的总时延(传输时延)就是以上三种时延之和:

传输时延=发送时延+传播时延+处理时延

3

[5]

是指一个报文或分组从一个网络(或

2.1.3 消息传递过程分解

将消息在无线传感器网络节点间传递的过程分解成不同的阶段,是对时间同步问题研究的关键,一条消息在节点间的传递过程可分解成如下六个部分:

(1) Send Time:发送节点构造一条消息所需要的时间,包括内核协议处理和缓冲时间等,

它取决于系统调用开销和处理器当前负载。

(2) Access Time:消息等待传输信道空闲所需时间,即从等待信道空闲到消息发送开始

时的延迟,它取决于网络当前负载状况。

(3) Transmission Time:发送节点按位 (bit)发射消息需时间,该时间取决于消息长度和发

射速率。

(4) Propagation Time:消息在两个节点之间传输介质中的传播时间,该时间主要取决于节点间的距离 (电磁波在空气中的传播速率是一定的),类似于上述传输时延中的传播时延。

(5) Reception Time:接收节点按位 (bit)接收消息并传递给MAC层的时间,这个过程和 (3)相对应。

(6) Receive Time:接收节点重新组装消息并传递给上层应用所需的时间。

2.2过去三种时间同步算法协议

2.2.1 Reference Broadcast Synchronization

RBS(Reference Broadcast Synchronization)即参照广播同步[6],是由加州大学Jeremy Elson等2002年提出的以“第三方广播”的思想让参照节点利用数据链路层的广播特性周期性地向网络中其它节点发送参照广播(reference broadcast),使接收者与接收者之间进行同步,排除了发送方对同步精度的影响。

所谓的“第三方广播”,即发送方不参与计算。根节点消息覆盖全部接收节点,且假定这个参照消息到所有节点的传播延迟都相等(忽略所有需同步节点与根节点之间的传播时延),然后广播域内的所有节点相互交换接收参照消息的时间。参照广播同步机制可以有效减少广播域内消息通信开销,相对节省网络资源消耗,但增加节点能量消耗。因为要用到复杂的线性拟合数学运算,总的来说能耗较大。RBS建立在时钟偏移速率恒定模型的基础上,即是t时刻的时钟偏移(Clock Skew) 定义为 ρ(t)=r(t)-1=k (k为常数)。

RBS协议优势恰恰在于数据链路层“广播特性”的较低网络开销。为什么说这里的“广播特性”可以减少网络开销?在传统的计算机网络中,广播是会产生较多的网络开销的。比如我们就知道在传统网络数据链路层的CISCO技术中有spanning-tree来控制“广播风暴”,但是,上文中提到的无线传感器网络中的广播特性,是仅仅1个节点的广播。试想在计算过程中如果不采用广播方法,想要告知彼此联络的数据就需要两两之间的成对同步,这样做其实是会有更多的网络消息开销的。

4

2.2.2 Delay Measurement Time Synchronization

DMTS(Delay Measurement Time Synchronization)算法是由伯克利英特尔研究实验室的Su Ping于2003年提出的单向同步算法。它的实现策略是牺牲部分时间同步精度换取较低的计算复杂度和能耗。接收节点通过精确地测量从发送节点到接收节点的单向时间延迟并结合发送节点中的时间戳计算出时间调整值。DMTS 为了较准确地测量发送方到接收方的单向时间延迟,采取了以下方法:

(1) 发送方在检测到信道畅通时才给即将发送的时间包标记时间戳并立即发送,从而避免了send time和Access time对同步精度产生的影响。

(2) DMTS通过数据发射速率和发射数据的位数(6bit)对发射延迟(包括发射前导码及起始符的时间和发射数据的时间)进行估计。

(3)接收方在MAC层给同步包标记一个到达时间戳,并在接收处理完成时再标记一个时间戳,通过这两个时间戳的差值来估计接收处理延迟。

基本原理:选择一个节点作为时间主节点广播时间同步消息。所有接收节点测量这个时间广播消息的延迟,设置自己的时间为接收到消息携带的时间加上这个广播消息的传输延迟,这样,所有接收到消息的节点都与主节点进行时间同步。发送节点和接收节点的时间延迟td可由(1)式得出: td = n*t + ( t2 - t1) (1)

其中,nt为发送前导码和起始字符所需的时间,n为发送的信息位个数,t为发送一位所需时间;t1为接收节点在消息到达时的本地时间;t2为接收节点在调整自己的时钟之前的那一时刻记录的本地时间,( t2 - t1)就是接收处理延迟。

[4]

2.2.3 Timing—Sync Protocol for Sensor Networks

TPSN(Timing—Sync Protocol for Sensor Networks)是一种双向报文交换的时间同步协议,他类似于因特网时间同步协议NTP,是由加州大学网络和嵌入式系统实验室 SaurabhGaneriwal等提出的。采用发送者与接受者 (sender— receiver)之间进行成对同步的工作方式,并将其扩展到全网域 (Network—wide)。成对同步采用典型的两次消息交换法取得一对节点间的时钟同步。TPSN同步算法的执行分两阶段

[11]

(1)层次发现阶段 (Level discovery phase),该阶段主要在网络中产生一个分层的拓扑结构,使每个节点被赋予一个层次号。首先选取一个节点作为根节点并赋予层次号0,然后由它广播一个 level—discovery包,level—discovery包中封装有发送者的标识和层次号,根节点的直接相邻节点收到这个包后将包中的层次号加1作为自身的层次号,然后它们再广播一个新的level—discovery包,重复这个过程直至网络中的每个节点都赋予一个层次号。节点一旦建立自己的分层级别,就忽略任何其它分级数据包,以防网络拥塞。

5

(2)同步阶段 (synchronization phase),在这个阶段中,从根节点开始与其下一层节点进行成对 (pair—wise) 同步,接着属于i层的节点与第i-1层的节点进行成对同步。最终每个节点都同步于根节点并获得了网络的全局时间同步。TPSN对任意节点其同步误差取决于它距离根节点的跳数而与网络中节点总数无关,使TPSN同步精度不会随节点数目增加而降级,从而使TPSN具有较好的扩展性。同时TPSN算法的缺点是一旦根节点失效,就要重新选择根节点并重新进行上述两个阶段处理,增加了计算和能量开销。 如图3-1

图3-1 TPSN双向同步

每个节点与它上一级节点通过两路消息交换而产生的时间同步,最后实现所有节点与根节点的同步。节点B向节点A发送同步请求报文并记录此刻的本地时间T1,A收到请求报文时将记录本地时间T2,并立即向节点B返回一个应答报文,并在该报文中写入T2时刻数和该报文的发送时刻数T3,B收到应答报文后记录本地时间T4。基于报文传输的对称性,可以认为请求报文和应答报文的传输时间相等。当节点B的本地时刻为T1时,节点A和B之间的时钟偏差为△(假设A比B的时间快△,且△>0,其余情况同理), 则T2=T1+△+d (1),T4=T3-△+d (2);联立(1) (2)两式解方程组,可以得到 △,d分别是

可以经计算得知知道节点B在T4时刻将本地时间改为T4+△,就可以达到与节点A的在这一时刻的同步。

6

2.2.4 过去三种算法协议的比较总结

表3-1 三种算法比较

算法 TPSN RBS DMTS 复杂度 不随网络规模扩大而变化太大,可扩展性良好,复杂度一般 用到了线性拟合运算,补偿了时钟偏移,复杂度一般 算法最简单 精度 约为RBS的两倍 算法精度高于DMTS 精度较低 能耗 耗能大,主要是网络开销 能耗大,主要是节点能耗 能耗最少

通过比较可以得出结论。采用算法相对简单的协议同时拥有低能耗但精度必然下降,并且如果在无线传感器时间同步算法的计算过程中涉及“广播特性”,则可以有效的降低网络通信能量开销,例如DMTS和RBS的计算过程。RBS用到了需要较多计算量的数学方法通过线性拟合理论来计算全部接收节点的时间数据,过分依靠机器计算从而导致耗能大但同步精确度相对DMTS确实很高;而DMTS理论色彩浓厚且过于理想化,力求通过极低的消耗来同步时间,忽略了信息的传播时延甚至不考虑节点晶振的不同所带来的影响即不考虑时钟偏移,结果必然会导致精度的缺失。传播时延在时间同步的问题中其实是产生误差的因素中影响较小的了,正如在传统的计算机网络中,有线网络在相等的信道长度上,采用双绞线的传播时延其实是小于光纤的,也就是说信息流在铜线中的传播速度比在全反射的玻璃纤维中还要快一些。而造成通常所说的光纤速度快的原因是在信息流通过信道入口处所花费的时间,即是发送时延——光纤的发送时延要远远小于双绞线。而计算网络速度需要同时计算发送时延和传播时延(当然还有处理时延),所以经过计算后光纤的速度就比双绞线的要快很多了。所以说若只像RBS那样忽略传播时延在精度上还是能够保证一定的级别的,但DMTS连续忽略传播时延和时钟偏移,造成的误差太大。所以对于无线传感器网络中的误差产生的较大因素——时钟偏移来说,RBS确是解决时钟偏移问题的合适方法。那么DMTS适用的场合也就有所限制了,只适合没有高精度需求的系统,又或者是只在临时的短时间内采用统一的全新设备的时间同步系统,因为这种系统中的节点硬件设备较新,老化程度低,也可以算是如RBS那样补偿了时钟偏移问题。

7

在基于Pair—Wise同步算法中,TPSN算法通过在MAC层检测到信道空闲时给同步包标记时间后发射,并在MAC层为接收到的同步包标记接收时间戳,从而排除了Send Time、Access Time和 Reception time对同步精度的影响,同步精度较高约为RBS的两倍,达到了16.9us的同步精度的开销。

[11]

。缺点就是同步计算阶段的双向成对同步增加了网络资源

8

9

3 NS2网络仿真模拟

3.1 NS2网络仿真模拟简介

网络模拟是进行网络技术研究的一种基本手段。在新技术的研究过程中,由于各种原因,使得实际网络系统的实现代价较高或者是不现实。在这种情况下, 模拟就成了最佳可供选择的测试、评估和验证手段之一。网络模拟有着周期小、成本低等特点,而且可以使研究者更容易利用他人的研究成果,使研究者更专注于自己所研究的部分而不必为系统的其它部分耗费过多精力。 NS2就是这样一个针对网络技术的源代码公开的、免费的软件模拟平台。在目前已有的网络模拟仿真软件中,NS2以其对有线和无线网络、局域网和广域网、网络分层模型中各协议的丰富支持、强大的层次开发能力以及可扩展、易配置等特性,在国际网络研究界得到了广泛的应用。它的仿真环境中主要有两种分工不同的程序开发语言。C++程序的运行时间很短,但转换时间很长,正适合用于实现具体的协议。Otcl运行得很慢,但可以很快的转换(或是交互),用来进行仿真的配置最适合不过。当然以上的分法并不是绝对的,例如:许多路由是由Otcl实现的,但其核心——Dijkstra算法是用C++来实现。通常,如果需要在一秒钟内调用许多次的模块,最好还是用C++实现。所以说NS-2 为分层模型软件,内核使用高效的编译型C + + 语言,而外壳使用OTcl 脚本语言;内核完成数据处理任务,外壳完成配置、控制任务. 一般NS2使用的大致步骤如下:

(1)开始编写OTcl脚本。首先配置模拟网络拓扑结构,此时可以确定链路的基本特性,如延迟、带宽和丢失策略等。

(2) 建立协议代理,包括端设备的协议邦定和通信业务量模型的建立。 (3) 配置业务量模型的参数,从而确定网络上的业务量分布。

(4)设置Trace对象。NS2通过Trace文件来保存整个模拟过程。仿真完后,用户可以对Trace文件进行分析研究。

(5)编写其他的辅助过程,设定模拟结束时间,至此OTcl脚本编写完成。 (6)用NS2解释执行刚才编写的OTcl脚本。 (7)对Trace文件进行分析,得出有用的数据。

[8]

3.2 NS2 仿真模拟

最初NS2仅支持对有线网络的模拟,后来CMU的Monarch工作组在NS2中添加了对无线网络的扩展模块。为了让NS2更适合对无线传感器网络的模拟,许多研究者都在NS2上进行了扩展。这些研究补充了NS2之对无线传感器网络模拟支持的不足,为适用于无线传感器网络的相关算法在NS2下的模拟仿真提供了较好的支持。但到目前为止,无线传感器网络在NS2上的扩充并没有形成一个完全整合的完整模块,并且缺乏对无线

10

传感器网络时间同步支持的构件。为了进行时间同步的仿真,需要对NS2做出扩展,来实现节点间时间的同步。在

C:\\cygwin\\home\\Administrator\\ns-allinone-2.27\\ns-2.27\\tcl\\lib文件下的ns-lib.tcl脚本末端做了扩展。

(1) 对Agent类进行扩展,建立新类MyAgent: class MyAgent : public Agent { public:MyAgent();

double mytime; //节点自身时间 int mylevel; //节点层次号 double myrecvtime;

nsaddr_t souraddr; //消息源地址 int counter; //计数下层节点个数

int neighbor[10]; //存放该节点的下层节点号 int command(int argc,const char *const *argv); void recv(Packet *,Handler *); };

根据NS2分列对象模型规定,还需对MyAgent进行Otcl绑定,才能加入到NS2中并可以在Tcl代码中使用,如下所示:

Static class MyClass : public TclClass { public:MyClass():TclClass(\TclObject * create(int,const char *const *){ return(new MyAgent()); } }class_my;

这样Agent/MyAgent制定的C++中的MyAgent类和Tcl中的Agent/MyAgent绑定在了一起。

(2) 为得到新算法中节点收发消息的时间信息,需要对NS2原有的分组头进行扩展,重

新定义算法所需的分组头,具体定义如下:

struct hdr_my{ double myselftime;

double timearray[4]; //记录消息往返的4个时间标记:T1-T4

11

[9]

nsaddr_t replynode; //指定应答节点号 int level;

int state; //节点状态 static int offset_;

inline static int& offset(){ return offset_;} inline static hdr_my* access(const Packet* p){ return(hdr_my*)p->access(offset_); } };

然后进行Otcl绑定

static class EchoHeaderClass : public PacketHeaderClass{

public:EchoHeaderClass(): PacketHeaderClass(\ bind_offset(&hdr_my::offset_); }

}class_myhdr;

(3)另外,为了在MAC层作时间标记,还需修改NS2中MAC层协议,即mac-802_11.cc文件:在发送端,确认本次协商成功开始进行传输时加发送时间标记;接收端,在数据接收完时作时间标记,并把这些时间标记放在协议头的数组里面,以便上层计算过以上扩展,就可以进行新时间同步算法仿真试验了。

(4)为了方便起见,采取根节点固定在坐标原点(0,0),即图上最左下方,其他节点随机分布。仿真800m*800m的空间中的17个节点,节点间最大通信距离为不超过250 m,如图4-1所示:

[10]

。通

图4-1 无线传感器网络NS2拓扑图

12

(5)分别以10,12,15,17个节点运行仿真,得到out.tr文件,结合新版本NS2无线Trace格式说明,通过分析后,得到时间数据。如图4-2所示:

图4-2 时间数据的获取

(6)将能量开销数据文件找出来记录在new.data中,再通过与TPSN的能量开销tpsn.data的比较,采用NS2自带绘图工具Gnuplot画出二维结果图4-3:

图4-3 新算法和TPSN算法性能比较

13

采用的命令过程: $Gnuplot

Gnuplot>set xlabel”number of node” #设定x轴名称为 节点数量 Gnuplot>set ylabel”unit of energy” #设定y轴名称为 能量单位

Gnuplot>plot “new.data” with linespoints, ”tpsn.data”with linespoints #同时绘制两个曲线 总结:

从上图可以看出,随着节点数量的增多,new算法的能量开销的呈现较TPSN来说增长速度慢,也从实验的角度说明了新算法拥有较低的能量开销,在无线传感器网络中,节点的通信开销是节点能量开销中最重要的部分。

3.3总结和展望

由于NS2网络仿真模拟软件的入门困难,可以找到的各种参考资料有限,仿真模拟部分只对改进的new算法节点的节点能量开销做了实验仿真探索。

在今后的学习工作研究中,有待于进一步地学习使用NS2网络仿真模拟软件和NS2平台上的MAC层时标修改技术,更好的去模拟验证无线传感器网络时间同步算法协议的各个方面。

14

参考文献

[1] 孙利民,李建中,无线传感器网络[M]. 清华大学出版社,2005. [2] 李晓维. 无线传感器网络技术. 北京理工大学出版社 2007. [3] 唐宏. 无线传感器网络原理及应用. 人民邮电出版社.

[4] 周贤伟,韦炜,覃伯平. 无线传感器网络的时间同步算法研究[J]. 传感技术学报. [5] 谢希仁. 计算机网络(第四版). 电子工业出版社.2003.

[6] 康冠林,王福豹,段渭军. 无线传感器网络时间同步综述. 计算机测量与控制.2005. [7] 刘晓璐,周书名. 无线传感器网络时间同步算法的比较. 传感器世界.2010. [8] 徐雷鸣,庞博,赵耀. NS与网络模拟. 人民邮电出版社.2003. [9] 魏蛟龙,肖艳华. NS体系结构极其扩展. 计算机仿真. 2004.

[10] 方路平,刘世华,陈盼等. NS-2网络模拟基础与应用. 国防工业出版社.2008

[11] S.Ganeriwal, R.Kumar and M.B.Srivastava. Timing-Sync protocol for Sensor Networks. ACM Press,2003.

15

附 录

仿真拓扑new.tcl文件NS2代码

#=================================== # Simulation parameters setup

#===================================

set val(chan) Channel/WirelessChannel ;# channel type

set val(prop) Propagation/TwoRayGround ;# radio-propagation model set val(netif) Phy/WirelessPhy ;# network interface type set val(mac) Mac/802_11 ;# MAC type

set val(ifq) Queue/DropTail/PriQueue ;# interface queue type set val(ll) LL ;# link layer type set val(ant) Antenna/OmniAntenna ;# antenna model set val(ifqlen) 50 ;# max packet in ifq set val(nn) 17 ;# number of mobilenodes set val(rp) DSDV ;# routing protocol

set val(x) 747 ;# X dimension of topography set val(y) 700 ;# Y dimension of topography set val(stop) 2.0 ;# time of simulation end

#=================================== # Initialization

#=================================== #Create a ns simulator set ns [new Simulator] #new version trace $ns use-newtrace ;

set tracefd [open new.tr w] ; $ns trace-all $tracefd ; #Setup topography object set topo [new Topography] $topo load_flatgrid $val(x) $val(y) create-god $val(nn)

#Open the NS trace file set tracefile [open out.tr w] $ns trace-all $tracefile

#Open the NAM trace file set namfile [open out.nam w] $ns namtrace-all $namfile

$ns namtrace-all-wireless $namfile $val(x) $val(y) set chan [new $val(chan)];#Create wireless channel

16

#=================================== # Mobile node parameter setup

#=================================== $ns node-config -adhocRouting $val(rp) \\ -llType $val(ll) \\ -macType $val(mac) \\ -ifqType $val(ifq) \\ -ifqLen $val(ifqlen) \\ -antType $val(ant) \\ -propType $val(prop) \\ -phyType $val(netif) \\ -channel $chan \\ -topoInstance $topo \\ -agentTrace ON \\ -routerTrace ON \\ -macTrace ON \\ -movementTrace ON

#=================================== # Nodes Definition

#=================================== #Create 17 nodes set n0 [$ns node] $n0 set X_ 0 $n0 set Y_ 0 $n0 set Z_ 0.0

$ns initial_node_pos $n0 20 set n1 [$ns node] $n1 set X_ 142 $n1 set Y_ 189 $n1 set Z_ 0.0

$ns initial_node_pos $n1 20 set n2 [$ns node] $n2 set X_ 163 $n2 set Y_ 406

$n2 set Z_ 0.0

$ns initial_node_pos $n2 20 set n3 [$ns node] $n3 set X_ 299 $n3 set Y_ 265

$n3 set Z_ 0.0

$ns initial_node_pos $n3 20 set n4 [$ns node] $n4 set X_ 347 $n4 set Y_ 117

17

$n4 set Z_ 0.0

$ns initial_node_pos $n4 20 set n5 [$ns node] $n5 set X_ 22 $n5 set Y_ 590

$n5 set Z_ 0.0

$ns initial_node_pos $n5 20 set n6 [$ns node] $n6 set X_ 121 $n6 set Y_ 591

$n6 set Z_ 0.0

$ns initial_node_pos $n6 20 set n7 [$ns node] $n7 set X_ 244

$n7 set Y_ 587 $n7 set Z_ 0.0

$ns initial_node_pos $n7 20 set n8 [$ns node] $n8 set X_ 360

$n8 set Y_ 463 $n8 set Z_ 0.0

$ns initial_node_pos $n8 20 set n9 [$ns node] $n9 set X_ 409 $n9 set Y_ 423

$n9 set Z_ 0.0

$ns initial_node_pos $n9 20 set n10 [$ns node] $n10 set X_ 465 $n10 set Y_ 377

$n10 set Z_ 0.0

$ns initial_node_pos $n10 20 set n11 [$ns node] $n11 set X_ 491

$n11 set Y_ 351 $n11 set Z_ 0.0

$ns initial_node_pos $n11 20 set n12 [$ns node] $n12 set X_ 518

$n12 set Y_ 319 $n12 set Z_ 0.0

$ns initial_node_pos $n12 20 set n13 [$ns node] $n13 set X_ 457

18

$n13 set Y_ 237 $n13 set Z_ 0.0

$ns initial_node_pos $n13 20 set n14 [$ns node] $n14 set X_ 461 $n14 set Y_ 201 $n14 set Z_ 0.0

$ns initial_node_pos $n14 20 set n15 [$ns node] $n15 set X_ 461 $n15 set Y_ 164 $n15 set Z_ 0.0

$ns initial_node_pos $n15 20 set n16 [$ns node]

$n16 set X_ 463 $n16 set Y_ 98 $n16 set Z_ 0.0

$ns initial_node_pos $n16 20

#=================================== # Termination

#=================================== #Define a 'finish' procedure proc finish {} {

global ns tracefile namfile $ns flush-trace close $tracefile close $namfile exec nam out.nam & exit 0 }

for {set i 0} {$i < $val(nn) } { incr i } { $ns at $val(stop) \}

$ns at $val(stop) \$ns at $val(stop) \

$ns at $val(stop) \$ns run

19

致谢

在毕业设计即将完成之际,我的心情无法平静,回首两年专升本阶段的学习生活,有成功的喜悦,也有失败和挫折,所有的这些将使我铭记一生。从开始进入设计到毕业设计的顺利进行和即将完成,很多可敬的师长,亲人,同学,朋友给了我无私的帮助,在这里请接收我诚挚的谢意。

首先感谢我的导师,**老师。江老师渊博的学识,严谨的治学态度和忘我的工作精神是我终身学习的榜样。在论文写作期间,论文的选题,资料查询,开题,研究和撰写的每一个环节,无不得到江老师的悉心指导和帮助。在毕设即将完成之际,谨向最尊敬的导师表示最真挚的感谢。

还要感谢我的父母,是你们的支持才能使我有接受高等教育的机会。你们的支持和帮助使我能不畏困难努力学习,克服一个又一个难题,你们是我未来奋斗的动力和精神寄托。

路漫漫其修远兮,吾将上下而求索。我愿在未来的工作和学习中,以更加丰厚的成果来答谢曾经关心,帮助和支持过我的老师,家人,同学和朋友。 衷心的感谢大家!

注:

(1)新算法的描述部分已经删去,因为新算法不是本人原创。而且设计新算法协议远超出本科生的要求范围,选题时请注意辅导老师的意向和学校规则。

(2)TCL代码用NSG2软件生成,需要JRE的环境。

(3)另外在NS2平台上模拟TPSN需要修改MAC层协议,没有老师指导很难完成,我的设计最后也是因为学校答辩组老师没人懂,所以后期模拟时老师说随便弄弄做个样子结果吧,答辩时候也是勉强过关。希望学会MAC层修改的同学们可以联系作者,共同进步。381675291@qq.com 衷心感谢!

20

本文来源:https://www.bwwdw.com/article/cij6.html

Top