一种用于大规模D2D网络的隐藏节点可感知的分簇算法的制作方法

文档序号:16275997发布日期:2018-12-14 22:35阅读:224来源:国知局
一种用于大规模D2D网络的隐藏节点可感知的分簇算法的制作方法

本发明属于无线网络隐藏节点技术领域,特别是一种用于大规模d2d网络的隐藏节点可感知的分簇算法。

背景技术

在基于802.11无线局域网技术的d2d网络中,节点基于dcf访问控制协议访问信道,dcf方法基于载波感知多访问/避碰(csma/ca)机制。节点在接入信道前先感知一段分布式帧间间隙(distributedinterframespace,difs),如果侦听到信道空闲,节点立即访问信道。否则,节点通过从(0,w)中随机选取一个退避计数器(backoffcounter,bc)来开始退避过程。这里,w代表当前节点的竞争窗口大小,w的值从最小值(cwmin)开始,并且每次发生冲突时加倍,直至达到最大值(cwmax)。

在大规模的d2d网络环境下,因为网络拓扑中包含大量用户节点,所以在通信过程中会发生高概率的冲突碰撞,从而影响整个网络的性能,具体来说,大规模高密度的d2d网络存在严重的隐藏节点问题,基于dcf访问控制协议,网络节点需要通过竞争接入信道,由于无线网络的广播特性,节点之间可以相互监听通信信息,在基于dcf竞争接入信道的过程中,通过相互监听通信信息,能够有效避免选择相同的bc导致传输碰撞问题,但相互隐藏的节点无法监听到他们之间的通信信息,在接入信道和传输数据的过程中,节点无法监听彼此选择的bc,容易发生冲突碰撞,增加了网络的接入时延,降低了网络的性能。



技术实现要素:

本发明所解决的技术问题在于提供一种用于大规模d2d网络的隐藏节点可感知的分簇算法。

实现本发明目的的技术解决方案为:一种用于大规模d2d网络的隐藏节点可感知的分簇算法,包括以下步骤:

步骤1、选择一个高性能节点作为控制器;

步骤2、通过监听信道,获取d2d网络的每个节点的邻居节点;

步骤3、控制器将所有节点的邻居节点合并,获得网络拓扑的全局视图;

步骤4、控制器对所述网络拓扑的全局视图中的节点进行分簇;

步骤5、根据步骤4的分簇结果,网络拓扑的全局视图中的节点进行信道访问及数据传输。

本发明与现有技术相比,其显著优点:1)本发明利用无线网络的传播特性,通过监听能够有效的发现网络中的隐藏节点;2)本发明通过合并每个节点传输范围内的节点以及隐藏节点,获得整个网络拓扑的全局视图,并对整个网络拓扑中的节点进行分簇,能够有效缓解节点竞争信道的激烈状况以及隐藏节点对网络性能的影响;3)本发明中对i/h簇节点通过轮询方式进行信道访问及传输,对o簇节点通过802.11dcf方式进行竞争信道及传输,大大缓解了隐藏节点造成的冲突碰撞问题,降低了网络的接入时延,提高了网络的性能。

下面结合附图对本发明作进一步详细描述。

附图说明

图1是本发明用于大规模d2d网络的隐藏节点可感知的分簇算法的流程图。

图2是d2d网络隐藏节点的网络模型图。

图3是本发明中对网络拓扑的全局视图中的节点进行分簇的过程示意图。其中图(a)是第一簇结果示意图;图(b)是第二簇结果示意图;图(c)是第三簇结果示意图。

图4是本发明实施例中对对网络拓扑的全局视图中的节点进行分簇的结果示意图。

图5是本发明实施例中网络拓扑的全局视图中的节点进行信道访问及传输过程示意图。

具体实施方式

结合图1,本发明用于大规模d2d网络的隐藏节点可感知的分簇算法,包括以下步骤:

步骤1、选择一个高性能节点作为控制器。其中,高性能节点为无线路由器。

步骤2、通过监听信道,获取d2d网络的每个节点的邻居节点。每个节点的邻居节点包括位于该节点传输范围内的节点和隐藏节点。其中,结合图2,获取节点的隐藏节点具体为:

假设获取节点a的隐藏节点,节点a向其传输范围内的节点b发送数据帧,节点b在sifs周期后返回ack帧进行响应,而节点c在节点b的传输范围内,也接收到了ack帧,并发现ack帧的接收者是节点a,但节点c没有监听到节点a发送的帧,则节点a和节点c互为隐藏节点。

步骤3、控制器将所有节点的邻居节点合并,获得网络拓扑的全局视图。

步骤4、控制器对网络拓扑的全局视图中的节点进行分簇,具体为:

步骤4-1、控制器从网络拓扑的全局视图中随机选取一个节点作为簇头。

步骤4-2、以簇头为起始点,由控制器对网络拓扑的全局视图中的节点进行分簇。具体为:

步骤4-2-1、将簇头能够监听到的所有节点作为第一簇,记为i簇;

步骤4-2-2、控制器搜索可以被i簇中至少一个节点监听到但与簇头相互隐藏的所有节点,将这些节点作为第二簇,记为h簇;

步骤4-2-3、控制器搜索可以被h簇中至少一个节点监听到但与i簇所有节点相互隐藏的所有节点,将这些节点作为第三簇,记为o簇。

进一步地,假设o簇节点的最大数目为m,i簇和h簇节点总数为n,则o簇节点的最大数目与i簇、h簇节点数之间的关系为:

步骤5、根据步骤4的分簇结果,网络拓扑的全局视图中的节点进行信道访问及数据传输,具体为:

步骤5-1、对d2d网络应用的802.11wlan的bi(信标间隔)周期进行平均划分,获得两部分信道访问周期,分别记为第一部分信道访问周期、第二部分信道访问周期。

步骤5-2、第一部分信道访问周期中,i/h簇节点通过轮询方式进行信道访问及数据传输,具体为:

步骤5-2-1、先将簇头作为发送方节点;

步骤5-2-2、发送方节点将数据帧传输至i/h簇中的某一个节点,该节点记为接收方节点;

步骤5-2-3、接收方节点成功接收数据帧后,向发送方节点发送ack帧确认接收成功,并选取其某一邻居节点作为下一个发送方节点,且将该邻居节点的mac地址写入ack帧的目标地址;

步骤5-2-4、一个sifs周期之后,重复步骤5-2-2、5-2-3。

步骤5-3、第二部分信道访问周期中,o簇节点通过802.11的dcf方式进行信道访问及数据传输,具体为:

(1)o簇节点中能够相互监听到的节点,通过802.11的dcf方式相互竞争进行信道访问及数据传输;

(2)o簇节点中不能相互监听的节点同时进行信道访问及数据传输,具体为:经过一个difs后,不能相互监听的节点进行退避过程,随机选择了相同bc值的节点,当bc值同时退避为0时,不能相互监听的节点同时接入信道进行信道访问及数据传输。

下面结合具体实施例对本发明作进一步详细的描述。

实施例

结合图1,本发明用于大规模d2d网络的隐藏节点可感知的分簇算法,包括以下内容:

(1)选择一个高性能节点作为控制器。其中,高性能节点为无线路由器。

(2)通过监听信道,获取d2d网络的每个节点的邻居节点。

(3)控制器将所有节点的邻居节点合并,获得网络拓扑的全局视图。

(4)结合图3,控制器对网络拓扑的全局视图中的节点进行分簇:控制器从网络拓扑的全局视图中随机选取一个节点ch0作为簇头;之后以簇头ch0为起始点,将簇头ch0能够监听到的所有节点作为第一簇,记为i簇,如图3(a)中的正方形节点所示;控制器搜索可以被i簇中至少一个节点监听到但与簇头相互隐藏的所有节点,将这些节点作为第二簇,记为h簇,如图3(b)中的三角形节点所示;控制器搜索可以被h簇中至少一个节点监听到但与i簇所有节点相互隐藏的所有节点,将这些节点作为第三簇,记为o簇,如图3(c)中的圆形节点所示。最终获得的分簇结果如图4所示,i簇节点为i0,i1,i2,i3,i4…,h簇节点为h0,h1,h2,h3,h4…,o簇节点为o0,o1,o2,o3,o4…。

(5)对d2d网络应用的802.11wlan的bi周期进行平均划分,获得两部分信道访问周期,分别记为第一部分信道访问周期、第二部分信道访问周期。结合图5,以簇头节点ch0,i簇节点i0、i3,h簇节点h1、h2,o簇节点o0,o1,o2,o3,o4为例,描述网络拓扑的全局视图中的节点进行信道访问及数据传输的过程。第一部分信道访问周期,i/h簇节点通过轮询方法访问通道,在i/h簇节点的通道访问周期开始时,ch0将数据帧传输到属于i簇的节点i0。当节点i0成功接收数据帧时,i0向簇头节点ch0发送ack帧确认接收成功,并选择它的一个邻居(比如h1)作为下一个发送者,将h1的mac地址写入ack帧的目标地址。在等待sifs后,已被确认的下一个发送节点h1开始向节点h2发送数据包。当节点h2成功接收数据帧时,h2向发送节点h1发送ack帧确认接收成功,并选择它的一个邻居(比如i3)作为下一个发送者,将h1的mac地址写入ack帧的目标地址。然后在一个sifs周期之后,h2将一个数据帧传输到节点i3。第二部分信道访问周期,o簇节点通过802.11dcf争夺通道访问,能够相互监听到的节点通过竞争信道(如o0和o2)进行数据传输,不能相互监听的节点可以并行传输(如o1和o2),在经过等待difs后,节点进行退避过程,当bc值退避为0时,节点o1和o2接入信道并进行数据传输,传输完成后,o簇其他节点重新基于dcf竞争信道。

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