基于无线传感网络隐藏节点冲突的分配方法与流程

文档序号:15822570发布日期:2018-11-02 23:15阅读:635来源:国知局
基于无线传感网络隐藏节点冲突的分配方法与流程

本发明涉及一种节点冲突分组方法,特别是涉及一种基于无线传感网络隐藏节点冲突的分配方法,属于网络技术领域。

背景技术

无线传感网络是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳、自组织的网络系统,以达到协作地感知、采集和处理网络覆盖区域中被感知对象的信息。ieee802.15.4(以下称lr-wpan)是一种为低速率无线个域网设计的新标准,与其它无线网协议相比(wi-fi、蓝牙),具有低功耗、低成本和短距离等特点,更适用于作为wsn的mac协议,发展前景广阔。然而,lr-wpan使用csma/ca机制来接入信道以达到较小的能量消耗,但存在不足:随着节点数量的增多和网络负载的加重,整个网络冲突大量增加而降低网络的性能。特别是隐藏节点冲突(hiddennodecollision,hnc)引起的性能下降。节点b正在向协调器发送数据包,由于节点a与节点b具有隐藏关系,所以节点a不能感知到节点b的存在,在判断信道空闲后节点a也开始向协调器发送数据,那么协调器端就会发生由于隐藏节点引起的冲突,此冲突可能发生在发送包过程中的任何时间点。研究表明,在节点随机分布的网络中,发生隐藏节点问题的几率高达41%,频繁的隐藏冲突会导致消息重传,对整个网络的吞吐量和通信延时产生消极影响,也导致大量能量消耗,大大降低整个网络的生存周期。lr-wpan网络节点数量大,分布随机性强,如何在存在隐藏节点的网络中,有效减少冲突碰撞的反复发生,是ieee802.15.4mac层亟待完善的问题。

其中一种解决思路是对无线网络提出分组设想,有研究者提出一种分组策略(groupingstrategy)解决隐藏节点问题,解决步骤分为四步:隐藏节点场景发现、隐藏关系收集、节点分组、带宽分配。算法的具体思路是根据节点间的隐藏关系把节点划分为n个只有竞争冲突的组,然后将原来的自由竞争时间片(cap)均匀分成n个时间片,组内节点只能在规定的时间片内竞争发送数据,但如果某一时间片所属的组没有节点要发送数据,其他组也不能使用该时间片,造成时间浪费,影响网络传输的时效性。



技术实现要素:

本发明目的在于提供一种基于无线传感网络隐藏节点冲突的分配方法,解决网段内互为隐藏节点的节点向同一非隐藏节点同时发送消息导致接收错误的实际问题。

本发明基于zigbee无线网络,中心节点通过自行设计的算法获取各子节点的可侦听节点列表。算法通过邻接矩阵对网络隐藏关系进行建模,然后从邻接矩阵中分割出多个完全图表示多个分组。

本发明目的通过如下技术方案实现:

一种基于无线传感网络隐藏节点冲突的分配方法,包括如下步骤:

1)zigbee网络组建完成,中心节点通过分布式地址分配方法为子节点分配地址ip1、ip2~ipn,各子节点通过多次交互,侦听到该节点能侦听到的其他节点地址;

2)根据可达信号列表构建邻接矩阵,假设子节点数量为n,邻接矩阵中构建二维矩阵a[n][n],a[i][j]=1表示节点i侦听到节点j,ipj属于{ipi1~ipim};a[i][j]=0表示节点i不在节点j的信号覆盖范围内;

3)对邻接矩阵进行数据清洗得到非隐藏关系邻接矩阵,要求组内节点能互相侦听到对方,将所有a[i][j]!=a[j][i]改为a[i][j]=a[j][i]=0,清理后的邻接矩阵为对称矩阵;

4)将步骤3)步得到的邻接矩阵分割出多个互不交叉的完全图,每个完全图代表一个分组;

5)分组后,子节点按照分组通讯办法,在自身分组所属时间片区进行报文发送,避免隐藏冲突问题。

为进一步实现本发明目的,优选地,步骤4)所述分割出多个互不交叉的完全图的方法为:

a、建立一个分组标记表示各节点最终所属分组,初始值为无效分组;初始将所有子节点划分到一个分组,若邻接矩阵是完全图,分组标记设置为1,计算结束,该网络只需要1个分组,否则下一步;

b、检查所有分组标记是否已设置值,若是则算法结束,各节点按照分组标记进行分组;否则由所有未分组节点构建新的邻接矩阵,输入到下一步;

c、假设该步输入矩阵为b[w,w],依次计算各节点的非隐藏节点数量,如b中i节点非隐藏关系数量counti为b[i][1:w]的和;选择i属于1~w所有count的最小值,假设为t;以t为中心,将所有与它非隐藏关系的节点共同构建出一个新的邻接矩阵ct[m,m],ct中x,y分别对应b的x’和y’,则ct[x][y]=b[x’][y’];

d、判断ct是否为完全图,若是将ct中所有节点分到一个全新分组,分组标记为一个新的分组值,跳到4.2;否则以ct为输入矩阵跳到步骤c。

相对于现有技术,本发明具有如下优点:

(1)分组算法在中心节点进行,有效利用中心节点较强的计算资源和较大的内存资源。

(2)空间复杂度为o(n^2),算法复杂度为o(n^2),可以提前根据子节点数量预计内存消耗情况,及时做出预警或放弃分组算法,避免运算过程中才发现内存不足的问题,提高算法性能。

(3)算法中使用邻接矩阵表示非隐藏关系,在网络节点分布均匀的情况下,每个节点的非隐藏节点数量与隐藏节点数量的比例是1:2,矩阵中值为0的数量大于值为1,且算法过程中对原始数据清理后得出的矩阵是对称矩阵,中心节点可以进一步对该稀疏矩阵进行压缩,节省存储空间。

附图说明

图1为本发明方法的流程示意图。

图2为实施例节点情况示意图。

图3为实施例1号节点的信号覆盖范围情况图。

具体实施方式

下面结合实施例对本发明作进一步说明,但本发明要求保护的范围并不局限于实施例表示的范围。

基于无线传感网络隐藏节点冲突的分配方法,包括如下步骤:

1)zigbee网络组建完成,中心节点通过分布式地址分配方法为子节点分配地址ip1、ip2~ipn,各子节点通过多次交互,侦听到该节点能侦听到的其他节点地址;

2)根据可达信号列表构建邻接矩阵,假设子节点数量为n,邻接矩阵中构建二维矩阵a[n][n],a[i][j]=1表示节点i侦听到节点j,ipj属于{ipi1~ipim};a[i][j]=0表示节点i不在节点j的信号覆盖范围内;

3)对邻接矩阵进行数据清洗得到非隐藏关系邻接矩阵,要求组内节点能互相侦听到对方,将所有a[i][j]!=a[j][i]改为a[i][j]=a[j][i]=0,清理后的邻接矩阵为对称矩阵;

4)将步骤3)步得到的邻接矩阵分割出多个互不交叉的完全图,每个完全图代表一个分组;

5)分组后,子节点按照分组通讯办法,在自身分组所属时间片区进行报文发送,避免隐藏冲突问题。

步骤4)所述分割出多个互不交叉的完全图的方法为:

a、建立一个分组标记表示各节点最终所属分组,初始值为无效分组;初始将所有子节点划分到一个分组,若邻接矩阵是完全图,分组标记设置为1,计算结束,该网络只需要1个分组,否则下一步;

b、检查所有分组标记是否已设置值,若是则算法结束,各节点按照分组标记进行分组;否则由所有未分组节点构建新的邻接矩阵,输入到下一步;

c、假设该步输入矩阵为b[w,w],依次计算各节点的非隐藏节点数量,如b中i节点非隐藏关系数量counti为b[i][1:w]的和;选择i属于1~w所有count的最小值,假设为t;以t为中心,将所有与它非隐藏关系的节点共同构建出一个新的邻接矩阵ct[m,m],ct中x,y分别对应b的x’和y’,则ct[x][y]=b[x’][y’];

d、判断ct是否为完全图,若是将ct中所有节点分到一个全新分组,分组标记为一个新的分组值,跳到4.2;否则以ct为输入矩阵跳到步骤c。

实施例:小型物联网通过非隐藏关系对称邻接矩阵分割完全图进行节点分组的仿真实验

以20个节点的单层zigbee组网进行仿真,假设节点最大侦听距离为500m,节点随机分布在以中心节点为圆心,500m为半径的圆内,如下图2所示:

各节点的可侦听节点列表如下表1:

表1

如1号节点,它处于的信号覆盖范围如下图3所示。

初始非隐藏关系邻接矩阵如下表2所示:

表2

邻接关系清理后,对称邻接矩阵如下表3:

表3

依据本发明方法分割多个完全图,节点13可达节点数最少,以节点13为中心的子图邻接矩阵为表4:

表4

上述矩阵不是完全图,其中节点6的可达网络节点数量最小,建立以节点6为中心的邻接矩阵如下表5:

表5

该图为完全图,因此5、6、13、14、19、20作为分组1。接下来对剩下节点1、2、3、4、7、8、9、10、11、12、15、16、17、18组成的邻接矩阵重复算法步骤,最终得出如下几个完全图分配情况表如表6-8:

表6

表7

表8

以面是节点数量为30、50、70、100的仿真实验,标明该方法在节点数量增加时仍然有效地进行分组。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1