基于NS2的定向扩散核心机制研究

2017-11-24 06:17陈瑶,李凤麟
教育教学论坛 2017年47期

陈瑶,李凤麟

摘要:本文讨论了定向扩散协议的概念,主要阐述了该协议的工作原理及机制,建立了仿真模型并基于NS2平台根据不同参数设置场景,进行了仿真。

关键词:WSN;定向扩散;NS2

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)47-0068-02

无线传感器网络(WSN)是一种分布式传感网络,由传感器节点组成,这些节点不仅具有基本的数据感知功能,还可以进行简单的数据处理并以无线的方式互相通信。该技术是当前的高校以及企业的研究热点之一。定向扩散协议(Directive Diffusion)是无线传感网中一种典型的路由协议,该协议确定了传感器节点的命名机制、节点之间通信的模式,并有其独有的扩散算法,在此基础上具有可扩展的功能。

一、定向扩散协议概念及其原理

定向扩散协议是无线传感网中的一种数据分发模式。首先该协议是以数据为中心的,具有其独特的数据命名方法,命名主要采用属性值的方式,参与传播的数据都是已命名的数据。并且该协议是一种基于查询的路由机制,该机制引入了兴趣与梯度的概念。兴趣即节点的查询请求,包含其所需信息的特征,包括属性列表、地理区域、数据类别等信息。梯度是在洪泛过程中建立的,包含属性和方向等信息,并且根据兴趣的扩散实时更新。节点之间的通信则采用发布—订阅的模式。

定向扩散主要有以下三个步骤:兴趣扩散、梯度建立和路径加强。首先是兴趣扩散。需要数据的节点采用洪泛的方式向其通信范围内的所有邻居节点发送兴趣(Interest),请求其他节点查询是否含有其所需的数据,收到兴趣的节点如果不包含满足兴趣的信息则对兴趣进行缓存与合并,即如果通过多条路径收到同样的兴趣则进行合并,否则继续转播,直到遇到包含符合兴趣的信息的目标节点。在此过程中同时建立该无线传感网中各条路径的梯度(Gradient),梯度中属性值根据数据速率与地理信息等来确定,方向由接收兴趣的节点指向发送兴趣的那个邻节点,同时也引导了数据扩散的方向。根据其梯度对不同路径进行对比,选择传输的最佳路径。发送兴趣的节点发现了满足兴趣的目标节点之后,沿建立梯度的方向发送一个探测数据。当中间结点收到来自不同路径的探测数据后,根据一定的标准来选择一条高效路径进行加强。最后使用此加强路径从目标节点向发送兴趣的节点传输其所需的信息。

二、定向扩散协议核心机制研究

1.发布—订阅模式。定向扩散协议不能用场景生成器的那种方法运行,因为定向扩散采用发布订阅的模式通信,需要指定subscribe和publish,和其他adhoc路由协议的运行方法不一樣。比如在1个发送节点,4个接收节点的场景中,需如下定义:

#1 ping sender

for{set I 0}{$i<$opt(sndr)}{incr i}{

set src_($i)[new Application/DiffApp/PingSender/TPP]

$ns_attach-diffapp $node_([expr $i + 2]) $src_($i)

$ns_ at [expr 0.123*[expr 1+$i]] “$src_($i) publish”

$src_($i) set fid_ 1

}

#4 pin receivers

for {set I 0} {$i < $opt(rcvr)}{incr i} {

set snk_($i) [new Application/DiffApp/PingReceiver/TPP]

$ns_attach-diffapp $node_([expr $opt(nn)-1-$i])$src_($i)

$ns_ at [expr 1.156*[expr 1+$i]] “$snk_($i) subscribe”

}

把发布兴趣的节点定义为Sinks即数据接收者。为数据接收者传递其采集的信息的节点定义为数据源。数据与任务都遵守其特定的命名机制。扩散算法则使数据源采集的信息能够最高效地传递其数据接收者。

2.命名机制。定向扩散协议的命名机制比较灵活,不管是与应用层接口还是与本协议的通信方式都能保持一致,该机制在作用时以数据为出发点,这也是定向扩散协议的一个重要特点。即以数据需求为首要条件,命名时为对数据的要求,再来确定含有所需数据的节点,并确定路径。而不是以节点为中心,先考虑哪些节点传送数据。该机制也满足点到多点的通信,非常方便灵活,不局限于端到端。

3.数据扩散算法。与其他Adhoc网络协议相比,发布—订阅模式是定向扩散协议的特有模式。该模式为应用层提供了标准接口以便传感网相关编程。数据源与接收者的确定由命名机制决定。数据源与接收者之间具体传输数据的路径则由数据扩散算法来决定。现今普遍使用的扩散算法主要有两阶段拉扩散、一阶段拉扩散和一阶段推扩散。

两阶段拉扩散算法中,第一步,数据接收者创建一个兴趣,包含其所需信息的属性。采用洪泛的方式把兴趣传递给其通信范围内的所有邻居节点。第二步,其邻居节点收到兴趣之后,记录该节点的标志,同时建立梯度。如该节点没有满足条件的数据,则继续转发兴趣给邻居节点。直到找到数据源节点。第三步,确定数据源节点之后,源节点用泛洪的方式发送一个探测数据给所有与之通信的邻居节点。第四步,数据接收者收到最先发过来的探测数据后,确定该路径为最高效路径,向该路径发送正增益,之后就可以通过该路径与数据接收者进行数据的传输。而在一阶段推扩散算法中,由本地记录兴趣属性,数据源主动发送探测数据,以泛洪的方式传递到数据接收者。接收者对第一个收到的探测数据的路径确定为最高效路径,并发送增益消息,随后的数据传送都沿着该路径。在一阶段拉扩散算法中,直接以最先获得兴趣的路径为最高效路径,不需要泛洪一个探测数据,也不需要增益消息。直接沿着最先获得兴趣的路径来传输数据。

三、用NS2对定向扩散协议进行仿真

NS2是一种功能强大的网络仿真软件,可以实现多种网络层次结构以及组件的仿真。

对2阶段拉算法在NS2之中的仿真,运行仿真脚本程序2pp-10n-1s-4r.tcl(一共有十个节点,1个发送节点,4个接收节点),可以得到一个nam文件和一个trace跟踪文件。由nam文件得到如图1所示传感器网络,其中节点总数为10,蓝色圆圈表示向周围节点洪泛兴趣,黑色圆圈表示洪泛探测数据,蓝点代表数据在起选择的高效路径上的传递。

图2是对产生的trace文件用gawk进行分析得到,是对二阶段拉算法十个节点和五个节点在每个时刻丢包率的分析。图3是用awk ‘{print $2,$16} 2pp-10n-1s-4r.tr>2pp-10n-1s-4r.data语句对trace文件的第2列(表时间)和第16列(表节点能量)进行提取,存入data文件中,并用gnuplot进行绘图。由图可见,在100秒之内耗能几乎为0,也印证了定向扩散协议的能量消耗是能小的。

四、结论

本文研究了定向扩散协议的基本概念,并阐述了定向扩散协议的核心工作机制,通过在NS2仿真器中进行仿真实验从而对定向扩散协议的算法进行了仿真与分析。定向扩散协议是一种适用于无线传感网的路由协议,是无线传感器网络中的关键技术数据融合与数据管理的基础,通过对该协议的研究,利于传感网的普适发展。

参考文献:

[1]李善仓,张克旺.无线传感器网络原理与应用[M].北京:机械工业出版社,2008.