一种基于路径数的优先级转发方法

文档序号:7807936阅读:127来源:国知局
一种基于路径数的优先级转发方法
【专利摘要】本发明公开了一种基于路径数的优先级转发方法。该方法的退避机制一旦转发节点遇到数据碰撞冲突状况,发生碰撞的转发节点的退避窗口大小会由转发节点可选择路径数来决定的,通过转发路径数的不同来让节点重发时间错开,让转发路径数少的转发节点的数据优先发送,既可以保证路径数少的转发节点的数据可以发送出去,又可以避免数据传输在部分区域中过于拥塞,还可以有效地利用整个网络的带宽,增加网络的吞吐量,提高数据的接收率。本发明是基于竞争的MAC协议,通过采用合理的退避机制,让节点数据均衡流量负载,充分利用带宽,减少数据的传输功耗,同时避免节点间干扰,可以有效地应用于需要快速采集数据的网络中。
【专利说明】一种基于路径数的优先级转发方法

【技术领域】
[0001] 本发明属于无线传感器网络【技术领域】,特别是涉及一种适用于快速采集场景下, 基于路径数的无线传感器网络优先级转发方法。

【背景技术】
[0002] 随着无线传感器网络技术的深入发展,节点的传输数据已经不再满足于单一的轻 负载,逐渐进入了声音、图像等重负载时代,针对重负载处理的快速采集场景应运而生,并 成为了目前技术研究热点之一。快速采集场景需要快速地采集数据,并能有效地处理重流 量负载,但传感器节点能量和存储空间都非常有限,只能有限地存储和处理数据,这就需要 我们设计一个方法来让数据传输合理利用网络节点的空间容量来提升网络吞吐量,同时能 保持节点的低功耗和数据的低延时,以满足快速采集场景的需要。
[0003] 无线传感器网络节点一般都是冗余部署的,会尽可能覆盖到整个感知区域,而且 各个传感器节点也具备自组织能力,会动态寻找路径完成整个数据传输,但现存的传感网 络协议的研究往往都是停留在MAC层,并没有深入传输路径,传感协议随机选择传输路径, 让节点自由竞争,从而导致整个网络流量过于集中在某些区域,加剧竞争发送和数据碰撞, 让节点功耗居高不下,无法满足快速采集场景的低功耗、高吞吐量的需求。
[0004] 传感器节点主要功耗源之一是数据碰撞退避重发,退避重发时,节点需要保持唤 醒状态,等候数据重新发送,这样节点就会浪费能源,而数据集中区域会加剧数据碰撞机 率,更不利于节点保持低功耗。让节点有选择地竞争路径,实现负载分流,均衡传输路径的 负载,从而避免数据集中于某些区域,降低数据再次碰撞重发的机率,并能合理利用网络的 存储空间,提升网络的数据吞吐量。
[0005] 目前的异步低功耗协议在遇到数据碰撞时往往是采用随机退避机制,这种机制无 法根据实际路径传输情况作出动态变化,会容易造成路径少的节点长期竞争失败,无法发 出数据,甚至会导致数据过于集中于某个区域,加剧路径竞争并导致竞争失败,大大影响了 网络整体空间的利用效率及网络的功耗。


【发明内容】

[0006] 技术问题:本发明针对快速数据采集应用场景,提供了一种能够在考虑能耗基础 上,让节点数据在发生碰撞后能够更灵活地选择传输路径,实现网络的负载均衡,降低数据 二次碰撞的机率,高效地利用整个网络带宽的基于路径数的优先级转发方法。
[0007] 技术方案:本发明基于路径数的优先级转发方法,首先会让加入网络的节点唤醒 过来,探知各自潜在的发送路径,并记录于各自的邻近节点信息表中,此后节点的邻近节点 信息表可以由正常通信时的beacon(信标)来进行更新。节点在一次数据传输时,如果没 有发生数据碰撞,则数据可以正常传输,如果在传输期间,节点发生数据碰撞,则启动退避 机制,发送数据的节点会查询邻近节点信息记录表,确定各自退避不同的窗口,以错开数据 再次发送的时间,避免数据再次碰撞,节点队列中的数据倘若全被成功接收,并节点队列中 没有新的数据要发送,则认为该次数据传输结束,节点再次转入休眠,等待下次唤醒传输。
[0008] 节点在每个通信周期内的数据传输工作流程包括以下步骤:
[0009] 步骤1、节点初次加入网络的时候,会唤醒过来探测其潜在的发送路径,然后把路 径记录于邻近节点信息表中,正常通信时,接收节点会把其唤醒时刻、唤醒信道等信息存储 于信标beacon中,然后广播beacon,发送节点一旦收到广播的信标beacon,则会查询该 beacon是否属于自己数据的接收节点,如果是,则把读取beacon内的信息来更新自己的邻 近节点信息表,如果发送节点正好有数据需要发送,则进入步骤2,数据传输开始,否则接收 节点在发送beacon后20ms内,没有收到数据,则直接转入休眠,等待下次唤醒;
[0010] 步骤2、数据发送前,发送节点必须要与接收节点建立连接,发送节点根据收到的 beacon包来预测接收节点的唤醒时间,并设定连接信道,一旦发送节点发送数据,则会在预 测唤醒时间,预定信道上唤醒过来,并直接发送数据给接收节点,进入步骤3 ;
[0011] 步骤3、数据发送时,发送节点会等待数据成功发送确认的,在这段时间会判断发 出的数据是否发生碰撞,若数据没有发生碰撞,则进入步骤4,否则进入步骤5 ;
[0012] 步骤4、数据进入正常通信过程,接收节点会启动接收流程来准备接收数据,此时 接收节点若成功接收该数据,则发出beacon来作为这次传输结束的确认帧并开启下一次 数据传输,进入步骤4-1,若接收失败则会进入步骤4-2 ;
[0013] 步骤4-1、判断发送节点队列为空,因为协议采用队列式发包机制,若队列还没有 为空,进入步骤4-1-1,若队列中的数据包为空,则进入步骤6 ;
[0014] 步骤4-1-1、把队列中的数据继续发送出去,然后接收节点继续启动其接收流程来 接收数据分组,继续进入步骤4 ;
[0015] 步骤4-2、若发送节点没有收到回应的beacon,则认为该次数据发送失败,转而启 动节点的重发机制,再次发送该数据,接收节点也会启动正常的接收机制,继续等候数据的 接收,进入步骤4 ;
[0016] 步骤5、数据发生碰撞,则发送节点启动退避机制,查询各自维护的邻近节点信息 表,从而判定每个节点可选择发送路径数,若可选择路径数不同,进入步骤5-1,若可选择路 径数相同,则进入步骤5-2;
[0017] 步骤5-1、可选择路径数不同时,那我们应该优先让可选择路径数少的节点成功竞 争该路径并发送数据,而可选择路径数多的节点即使在该路径竞争失败,亦可选择其他路 径进行数据发送,避免数据过于集中于部分路径,高效地利用整个网络带宽,这就要求发送 路径数越少的节点退避窗口也越小,这样路径少的数据成功发出的机率也越高,计算出各 节点退避窗口大小后,则进入步骤3 ;
[0018] 步骤5-2、可选择路径数相同时,节点则会启动随机退避机制,让路径数相同的节 点随机退避,尽可能让重发的数据再次发生碰撞,减少数据重发次数,这种机制下各节点的 退避窗口大小随机,确定各自的退避窗口后,则进入步骤3 ;
[0019] 步骤6、该次唤醒时间下,数据传输结束,接收节点再次进入休眠,整个通信周期内 的数据传输工作流程结束。
[0020] 本发明的步骤5-1中,当发生数据碰撞的节点可选择路径数不同时,会根据各节 点的路径数来决定各自的退避窗口大小,而不是一味地随机决定各自的退避窗口,应该"有 意地"退让给路径数偏少的那一方,让路径数偏少的一方优先发送数据,路径数偏多的一方 可以转向其他传输路径继续进行数据传输。
[0021] 有益效果:本发明方法与传统MAC协议的随机退避机制相比,具有以下明显优点: 确保路径少的节点数据可以发送出去,充分利用整个网络的带宽,合理地分流数据,均衡网 络流量负载,大大降低了数据二次碰撞的机率,保证了数据低功耗传输,实现数据的快速传 输,提高整个网络的吞吐量及接收成功率,对各种流量负载可以动态适应。具体分析如下:
[0022] (1)在传统的随机退避方案中,当节点数据发生碰撞后,会对每个节点实行随机 退避,然后所有数据再次发送,但数据退避后并不能保证二次碰撞的发生,更重要的是有些 节点路径偏少,甚至只有一条传输路径,一旦该路径让其他节点捷足先登,那这些节点的数 据一时无法发送,甚至会导致数据堵塞,造成不必要的数据传输延时,不利于数据的快速采 集。而基于路径数的优先级转发方法,则会根据各节点可选择路径数来决定各自的退避窗 口,人为地让路给传输路径少的数据,保证了路径数少的转发节点数据可以优先发送,避免 造成部分节点数据的长期堵塞,降低了数据的传输延时。
[0023] (2)传统的随机退避方法,节点是随机竞争路径的,因此数据传输往往向中间路径 靠拢,可能造成中间区域流量负载偏大,甚至会让中间流量负载达到饱和,而旁边的路径却 无人问津,无法高效地利用整个网络存储空间。基于路径数的优先级转发方法可以实现数 据分流,让数据尽可能均匀地分布于各个传
[0024] 输路径上,均衡网络负载,从而避免数据拥塞于部分区域,降低节点二次碰撞
[0025] 的机率,有效地利用整个网络的带宽,增加网络的吞吐量和数据接收成功率
[0026] (3)基于路径数的优先级转发方法与随机退避机制一样,都可以适用于各种应用 场合,但因为无线传感器节点都是冗余部署的,因此基于路径数的优先级转发方法更合理 利用节点的冗余特征,动态适应各种流量负载场合。

【专利附图】

【附图说明】
[0027] 图1是实验测试场景示意图;
[0028] 图2是实验测试场景简略图;
[0029] 图3是基于路径数的优先级转发机制原理示意图;
[0030] 图4是节点退避窗口大小计算示意图;
[0031] 图5是节点数据传输流程图;

【具体实施方式】
[0032] 下面结合附图对发明的技术方案进行详细说明。
[0033] 本发明基于路径数的优先级转发方法,首先会让加入网络的节点唤醒过来,探知 各自潜在的发送路径,并记录于各自的邻近节点信息表中,如图1所示。此后节点的邻近节 点信息表可以由正常通信时的beacon (信标)来进行更新。节点在一次数据传输时,如果没 有发生数据碰撞,则数据可以正常传输,如果在传输期间,节点发生数据碰撞,则启动退避 机制,发送数据的节点会查询邻近节点信息记录表,确定各自退避不同的窗口,以错开数据 再次发送的时间,避免数据再次碰撞,节点队列中的数据倘若全被成功接收,并节点队列中 没有新的数据要发送,则认为该次数据传输结束,节点再次转入休眠,等待下次唤醒传输。 [0034] 节点在每个通信周期内的数据传输工作流程包括以下步骤:
[0035] 步骤1、节点初次加入网络的时候,会唤醒过来探测其潜在的发送路径,然后把路 径记录于邻近节点信息表中,正常通信时,接收节点会把其唤醒时刻、唤醒信道等信息存储 于信标beacon中,然后广播beacon,发送节点一旦收到广播的信标beacon,则会查询该 beacon是否属于自己数据的接收节点,如果是,则把读取beacon内的信息来更新自己的邻 近节点信息表,如果发送节点正好有数据需要发送,则进入步骤2,数据传输开始,否则接收 节点在发送beacon后20ms内,没有收到数据,则直接转入休眠,等待下次唤醒;
[0036] 步骤2、数据发送前,发送节点必须要与接收节点建立连接,发送节点根据收到的 beacon包来预测接收节点的唤醒时间,并设定连接信道,一旦发送节点发送数据,则会在预 测唤醒时间,预定信道上唤醒过来,并直接发送数据给接收节点,进入步骤3 ;
[0037] 步骤3、数据发送时,发送节点会等待数据成功发送确认的,在这段时间会判断发 出的数据是否发生碰撞,若数据没有发生碰撞,则进入步骤4,否则进入步骤5 ;
[0038] 步骤4、数据进入正常通信过程,接收节点会启动接收流程来准备接收数据,此时 接收节点若成功接收该数据,则发出beacon来作为这次传输结束的确认帧并开启下一次 数据传输,进入步骤4-1,若接收失败则会进入步骤4-2 ;
[0039] 步骤4-1、判断发送节点队列为空,因为协议采用队列式发包机制,若队列还没有 为空,进入步骤4-1-1,若队列中的数据包为空,则进入步骤6 ;
[0040] 步骤4-1-1、把队列中的数据继续发送出去,然后接收节点继续启动其接收流程来 接收数据分组,继续进入步骤4 ;
[0041] 步骤4-2、若发送节点没有收到回应的beacon,则认为该次数据发送失败,转而启 动节点的重发机制,再次发送该数据,接收节点也会启动正常的接收机制,继续等候数据的 接收,进入步骤4 ;
[0042] 步骤5、数据发生碰撞,则发送节点启动退避机制,查询各自维护的邻近节点信息 表,从而判定每个节点可选择发送路径数,若可选择路径数不同,进入步骤5-1,若可选择路 径数相同,则进入步骤5-2;
[0043] 步骤5-1、可选择路径数不同时,那我们应该优先让可选择路径数少的节点成功竞 争该路径并发送数据,而可选择路径数多的节点即使在该路径竞争失败,亦可选择其他路 径进行数据发送,避免数据过于集中于部分路径,高效地利用整个网络带宽,这就要求发送 路径数越少的节点退避窗口也越小,这样路径少的数据成功发出的机率也越高,计算出各 节点退避窗口大小后,则进入步骤3 ;
[0044] 步骤5-2、可选择路径数相同时,节点则会启动随机退避机制,让路径数相同的节 点随机退避,尽可能让重发的数据再次发生碰撞,减少数据重发次数,这种机制下各节点的 退避窗口大小随机,确定各自的退避窗口后,则进入步骤3 ;
[0045] 步骤6、该次唤醒时间下,数据传输结束,接收节点再次进入休眠,整个通信周期内 的数据传输工作流程结束。
[0046] 本发明中,如果发送节点可通信的路径数相同,我们则直接采用退避窗口随机退 避;如果发送节点可通信的路径数不同,我们则采用基于路径数的优先级转发退避机制,让 处于竞争状态的传输路径优先转发通信路径少的节点的数据,强制通信路径多的节点选择 其他路径进行传输。采用这种方法就需要控制发送节点的退避窗口大小,如图4所示,节点 发生数据碰撞时,各节点真正的退避窗口大小为offset+BW,碰撞节点在退避一段时间后再 重新发送数据,这里的offset是退避窗口偏移量,BW为退避窗口的大小,其中offset的值 由式(1)计算出来的:
[0047] offset = 2XBWX (1-2卜PATH) (1)
[0048] 在式子(1)中,PATH为每个节点可通信路径数,当某些节点可通信路径数只有1 时,我们肯定得优先发送这些节点的数据,有意地让这些节点竞争传输路径胜利,而存在着 多路径的节点即使在这个路径竞争失败,也能转向其他通信路径,有效地防止某些节点的 数据长期因竞争传输路径失败而引起的阻塞,特别是单个可通信路径的节点。
[0049] 图4中我们显示出了路径数从1-5变化时各自的退避窗口大小情况,路径数为1 时,我们只让数据按常规退避机制进行退避,但随着路径数的增多,退避偏移量也会随之增 大,与固定退避窗口共同组成真正的退避窗口,形成动态变化退避窗口,提高网络的灵活 性;此外,动态变化的退避窗口也有助于实现负载均衡,避免数据蜂拥到某条路径上,均衡 每条路径的流量负载,有效地利用每个路径的节点的存储空间,充分发挥整个网络的容量, 增大网络的整体吞吐量。
【权利要求】
1. 一种基于路径数的优先级转发方法,其特征在于: 将加入网络的节点周期性地唤醒,探知各自潜在的发送路径,并记录于各自的邻近节 点信息表中,此后节点的邻近节点信息表由正常通信时的信标来进行更新; 唤醒的节点在一次数据传输时,如果没有发生数据碰撞,则数据可以正常传输,如果在 传输期间,这些节点发生数据碰撞,则启动退避机制,发送数据的节点会查询邻近节点信息 记录表,确定各自退避不同的窗口,以错开数据再次发送的时间,避免数据再次碰撞,该节 点队列中的数据倘若全被成功接收,并该节点队列中没有新的数据要发送,则认为该次数 据传输结束,节点再次转入休眠,等待下次唤醒传输。
2. 如权利要求1所述基于路径数的优先级转发方法,其中在每个通信周期内节点执行 以下步骤: 步骤1、节点初次加入网络的时候,被唤醒以探测其潜在的发送路径,然后把所述发送 路径记录于邻近节点信息表中,正常通信时,接收节点会把其唤醒时刻、唤醒信道的相关信 息存储于信标beacon中,然后广播该beacon,发送节点一旦收到广播的信标beacon,贝丨J会 查询该beacon是否属于自己数据的接收节点,如果是,则把读取该beacon内的信息来更新 自己的邻近节点信息表,如果发送节点正好有数据需要发送,则进入步骤2,数据传输开始, 否则如果接收节点在发送beacon后20ms内,没有收到数据,则直接转入休眠,等待下次唤 醒; 步骤2、数据发送前,发送节点必须要与接收节点建立连接,发送节点根据收到的 beacon包来预测接收节点的唤醒时间,并设定连接信道,一旦发送节点发送数据,则会在预 测唤醒时间,预定信道上唤醒过来,并直接发送数据给接收节点,进入步骤3 ; 步骤3、数据发送时,发送节点会等待数据成功发送确认的,在这段时间会判断发出的 数据是否发生碰撞,若数据没有发生碰撞,则进入步骤4,否则进入步骤5 ; 步骤4、数据进入正常通信过程,接收节点会启动接收流程来准备接收数据,此时接收 节点若成功接收该数据,则发出该beacon来作为这次传输结束的确认帧并开启下一次数 据传输,进入步骤4-1,若接收失败则会进入步骤4-2 ; 步骤4-1、判断发送节点队列为空,因为协议采用队列式发包机制,若队列还没有为空, 进入步骤4-1-1,若队列中的数据包为空,则进入步骤6 ; 步骤4-1-1、把队列中的数据继续发送出去,然后接收节点继续启动其接收流程来接收 数据分组,继续进入步骤4; 步骤4-2、若发送节点没有收到回应的beacon,则认为该次数据发送失败,转而启动 节点的重发机制,再次发送该数据,接收节点也会启动正常的接收机制,继续等候数据的接 收,进入步骤4; 步骤5、数据发生碰撞,则发送节点启动退避机制,查询各自维护的邻近节点信息表,从 而判定每个节点可选择发送路径数,若可选择路径数不同,进入步骤5-1,若可选择路径数 相同,则进入步骤5-2; 步骤5-1、可选择路径数不同时,那我们应该优先让可选择路径数少的节点成功竞争该 路径并发送数据,而可选择路径数多的节点即使在该路径竞争失败,亦可选择其他路径进 行数据发送,避免数据过于集中于部分路径,高效地利用整个网络带宽,这就要求发送路径 数越少的节点退避窗口也越小,这样路径少的数据成功发出的机率也越高,计算出各节点 退避窗口大小后,则进入步骤3 ; 步骤5-2、可选择路径数相同时,节点则会启动随机退避机制,让路径数相同的节点随 机退避,尽可能让重发的数据再次发生碰撞,减少数据重发次数,这种机制下各节点的退避 窗口大小随机,确定各自的退避窗口后,则进入步骤3 ; 步骤6、该次唤醒时间下,数据传输结束,接收节点再次进入休眠,整个通信周期内的数 据传输工作流程结束。
3.根据权利要求2所述的基于路径数的无线传感器网络优先级转发方法,其特征在于 在步骤5-1中,发送节点的数据发生碰撞后,会根据各节点的路径数来决定各自的退避窗 口大小。
【文档编号】H04W40/24GK104066144SQ201410311752
【公开日】2014年9月24日 申请日期:2014年7月2日 优先权日:2014年7月2日
【发明者】刘昊, 袁志敏, 蒋富龙, 吴建辉 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1