法律状态公告日
法律状态信息
法律状态
2018-03-30
授权
授权
2015-08-19
实质审查的生效 IPC(主分类):H04W74/08 申请日:20150421
实质审查的生效
2015-07-22
公开
公开
技术领域
本发明涉及一种基于CSMA的解决无线传感网络中节点冲突的算法,属于无线通信领域,具体为无线传感网络中一种基于节点优先级的解决冲突的方法。
背景技术
随着无线传感节点的大规模部署,节点的能源消耗问题日益成为它应用的限制条件。由于部署无线传感节点的区域往往是人类不容易到达的地方且我们部署节点以后希望能够长期获得这一区域的检测数据,所以降低能源的消耗就意味着能够获得更多的检测数据。
目前,无线传感网络MAC层中应用较多的协议是CSMA (载波侦听多路访问)协议, CSMA协议能够利用退避算法来解决节点间的冲突问题,该协议的核心就是给节点一个随机参数来进行退避。但是节点在退避的过程中,节点存在一个读随机数过程,该过程中信道处于空闲状态,这样就降低了信道的利用率,同时还导致能量消耗的增加。而且,CSMA协议存在隐藏终端问题,这样就增加了节点冲突的可能性,从而进一步降低了信道利用率。为了解决这一问题,人们提出了Back2F协议。这个协议虽然可以解决隐藏终端的问题,但是它利用了两个射频天线。射频天线的增加必然会导致能量消耗的增加。所以,这种协议在实际中是难以部署的。
发明内容
本发明为了解决无线传感网络因冲突问题而导致耗能高的问题,提供了无线传感网络中一种基于节点优先级的解决冲突的方法。
本发明是采用如下的技术方案实现的:无线传感网络中一种基于节点优先级的解决冲突的方法,包括以下步骤:
发送节点开始传输数据包时,首先判断信道是否空闲,发送节点在信道空闲时传输携带一个随机数的数据包;
若发送节点发送完数据包后没有接收到回复信息ACK,则不同发送节点间发生冲突,接收节点只接收到不同发送节点发送的数据包中携带的随机数,接收节点内生成含有不同随机数的冲突数据包,并将冲突数据包返回给发送节点;
发送节点没有接收到回复信息ACK就会进入退避过程,发送节点先将自己发送的数据包中携带的随机数赋值给各自的退避参数,然后将自己的退避参数和反馈回来的冲突数据包中的随机数进行对比,若退避参数小于等于冲突数据包中的随机数,该发送节点的优先级高,若退避参数大于等于冲突数据包中的随机该发送节点的优先级低;
若接收节点中反馈回来的冲突数据包中的随机数是一个,但是接收节点仍然没有接收到回复信息ACK,则发生冲突的发送节点选取的随机数是相同,此时,发送节点将重新选取随机数进行退避过程,直到区分出发送节点之间的优先级;
优先级高的发送节点先传输数据包,接收节点接收到数据包后返回一个回复信息ACK,该发送节点接收到回复信息ACK后便不再发送数据包,优先级低的发送节点后传输数据包,接收节点接收到数据包后返回一个回复信息ACK,该发送节点接收到回复信息ACK后便不再发送数据包。
本发明在解决冲突时,直接通过赋值和比较就可以确定冲突节点之间的优先级,不存在冲突节点读随机数而使得信道处于空闲状态的问题,因此本发明在解决冲突时也能有效的利用信道,进而降低了无线传感网络的耗能。
附图说明
图1是本发明的数据包帧结构示意图。
图2是发明的原理图。
图3是冲突数据包中随机数组示意图。
图4是本发明流程图。
具体实施方式
以下结合具体实例,对本发明进行详细说明:
无线传感网络中一种基于节点优先级的解决冲突的方法,包括以下步骤:
发送节点开始传输数据包时,首先判断信道是否空闲,发送节点在信道空闲时传输携带一个随机数的数据包,数据包采用新的帧结构,如图1所示,帧结构的preamble(前导码)后面加入一个随机数,这个随机数产生的方法和CSMA中退避参数的产生方法相同。
若发送节点发送完数据包后没有接收到回复信息ACK,则不同发送节点间发生冲突,接收节点只接收到不同发送节点发送的数据包中携带的随机数,接收节点内生成含有不同随机数的冲突数据包,并将冲突数据包返回给发送节点;如图2所示,发送节点T1和T2发送数据包给接收节点AP,发送节点T1发送的数据包携带的随机数是6,发送节点T2发送的数据包携带的随机数是9,接收节点AP在生成的冲突数据包中存储了这两个随机数,并返回给发送节点T1和T2;
发送节点没有接收到回复信息ACK就会进入退避过程,发送节点先将自己发送的数据包中携带的随机数赋值给各自的退避参数,然后将自己的退避参数和反馈回来的冲突数据包中的随机数进行对比,若退避参数小于等于冲突数据包中的随机数,该发送节点的优先级高,若退避参数大于等于冲突数据包中的随机数,该发送节点的优先级低;具体参考图2(3),获得冲突数据包的发送节点将会完成以下两个操作,(1)赋值,发送节点T1发送的数据包中的随机数将会赋值给T1的退避参数,通过赋值操作,T1在执行退避操作时,它的退避参数将等于T1发送的数据包中携带的随机数,(2)比较,通过将发送节点T1和T2借助赋值得到的退避参数与冲突数据包中的随机数进行比较,可以得到发送节点发送数据包的优先级,对于T1来说,它的退避参数6小于等于冲突随机数组中的6和9,对于T2来说,它的退避参数9大于等于冲突随机数组中的6和9,那么,T1获得了高优先级。T2获得了低优先级,T1将停止退避操作,马上开始发送数据包;
若接收节点中反馈回来的冲突数据包中的随机数是一个,但是接收节点仍然没有接收到回复信息ACK,则发生冲突的发送节点选取的随机数是相同,此时,发送节点将重新选取随机数进行退避过程,直到区分出发送节点之间的优先级;
优先级高的发送节点先传输数据包,接收节点接收到数据包后返回一个回复信息ACK,该发送节点接收到回复信息ACK后便不再发送数据包,优先级低的发送节点后传输数据包,接收节点接收到数据包后返回一个回复信息ACK,该发送节点接收到回复信息ACK后便不再发送数据包。
本发明的基于CSMA的解决冲突的方法具有极强的适用性,它可以应用于目前传感器节点部署的各种场景。在解决不同数量的节点冲突方面都表现出了比较理想的效果,在两个以上节点冲突的情况下采用本发明所提出的赋值结合比较的退避策略仍然可以迅速确定节点优先级,从而有效避免信道的空闲。除此之外,由于在实际部署传感器节点的过程中,路由协议绝大多数使用了CTP协议,而的发明能够很好地应用于CTP协议当中,所以通过我们协议的应用将会有效降低节点的能量消耗率。
最后,通过将我们的发明应用于矿井传感器系统,验证了我们的发明可以节约矿井中部署节点的能源消耗,延长了矿井中节点的使用时间。
机译: 利用基于优先级的服务质量在网络服务类中的网络节点处预过滤低优先级数据包的系统和方法
机译: 使用基于优先级的服务质量对网络服务类别中的网络节点中的低优先级数据包进行预过滤的系统和方法
机译: 利用基于优先级的服务质量在网络服务类中的网络节点处预过滤低优先级数据包的系统和方法