发明名称 一种对RPL协议规避路由环路的算法
摘要 本发明公开了一种对RPL协议规避路由环路的算法,属于无线传感网技术领域。在出现一致性事件时,先持续传输V<sub>con</sub>次,若仍然处于一致性,则在每两次传输间隔之间增加Q×I<sub>min</sub>次,以此加强节点的信息交流,降低当一方节点出现链路质量恶化而不能及时通知另一方节点的情况,降低环路出现的几率。在出现不一致事件时,先持续传输V<sub>con</sub>次,若仍然处于不一致性,则在每两次持续传输中循环添加传输中断,传输中断通过C<sub>rand</sub>控制,C<sub>rand</sub>每被使用一次就递增1,而传输中断的时间为最小传输间隔I<sub>min</sub>与[0,C<sub>rand</sub>]之间的随机值的乘积,依次类推,当C<sub>rand</sub>的值与P相等,重置变量,重新开始不一致事件的控制。改进了目前Trickle算法在一致性与不一致性事件时的传输间隔,降低了路由环路的几率。
申请公布号 CN105071955A 申请公布日期 2015.11.18
申请号 CN201510427316.3 申请日期 2015.07.20
申请人 常州大学 发明人 郇战;陶亚辉;范伟伟
分类号 H04L12/24(2006.01)I;H04L12/703(2013.01)I;H04L12/759(2013.01)I 主分类号 H04L12/24(2006.01)I
代理机构 代理人
主权项 一种对RPL协议规避路由环路的算法,其特征在于,在RPL路由中的节点出现一致性事件时,所述RPL路由中的节点先持续传输V<sub>con</sub>次,若仍然处于一致性,则在RPL路由中的节点每两次传输间隔之间增加Q×I<sub>min</sub>次传输;在RPL路由中的节点出现不一致事件时,所述RPL路由中的节点先持续传输V<sub>con</sub>次,若仍然处于不一致性,则所述RPL路由中的节点在每两次连续传输中增加C<sub>rand</sub>传输间隔;其中,V<sub>con</sub>为初始传输控制值,Q为一致性事件中控制发送的量,I<sub>min</sub>为当前时间区间I的取值下限值,C<sub>rand</sub>为不一致事件中间隔控制中随机取值计数;具体实现步骤包括:(1)设置RPL路由中的节点的当前时间区间I的值为区间[I<sub>min</sub>,I<sub>max</sub>]中的值,并开始第一个时间区间;其中I<sub>max</sub>为当前时间区间I的取值上限值;(2)当RPL路由中的节点的一个时间区间开始时,使控制一致性事件计数C为0,并且置当前时间区间I内的一个时刻t为[I/2,I]之间的随机数,时间区间在I时结束;(3)若检测到RPL路由中的节点中有一个一致性事件发生,则使控制一致性事件计数C的值增加1,不一致事件初始传输的次数C<sub>start</sub>的值增加1;(4)若不一致事件初始传输的次数C<sub>start</sub>大于初始传输控制值V<sub>con</sub>时,使不一致事件间隔控制中随机取值计数C<sub>rand</sub>的值增加1,并使不一致事件中每次传输中断的长度V<sub>rand</sub>为区间[0,C<sub>rand</sub>]的一个随机值,使标识符判断传输计数C<sub>flag</sub>的值增加1;(5)若标识符判断传输计数C<sub>flag</sub>等于不一致事件中每次传输中断的长度V<sub>rand</sub>并且一致性事件计数C小于冗余控制参数k时,使C<sub>flag</sub>的值为0,使不一致事件间隔控制中随机取值计数C<sub>rand</sub>的值为1,不一致事件中发送数据标识符F的值取反;若F的值为1,则启动发送,若不一致事件间隔控制中随机取值计数C<sub>rand</sub>的值与控制量不一致事件中控制发送的量P相等时,则使不一致事件初始传输的次数C<sub>start</sub>为0;(6)若RPL路由中的节点的当前时间区间I到期,则使当前时间区间I加倍,并使I的暂存值I<sub>temp</sub>的值为I,一致性事件计数C的暂存值C<sub>temp</sub>的值为C,则时间区间增大计数值C<sub>I</sub>增加1,若当前时间区间I大于当前时间区间I的取值上限值I<sub>max</sub>,则使I<sub>max</sub>的值为I;(7)在时间区间增大计数值C<sub>I</sub>小于一致事件中控制发送的量Q时,重置定时器,使当前时间区间I的值为I<sub>min</sub>,一致性事件计数C的值为0,时间区间增大计数值C<sub>I</sub>的值0;若时间区间增大计数值C<sub>I</sub>大于一致事件中控制发送的量Q时,并且I的暂存值I<sub>temp</sub>的值不为0,并且C的暂存值C<sub>temp</sub>的值也不为0,则使I的值为I<sub>temp</sub>,C的值为C<sub>temp</sub>;(8)若RPL路由中的节点中检测到不一致事件时,并且当前时间区间I的值大于I<sub>min</sub>,则重置定时器,使I的值为I<sub>min</sub>,C的值为0。
地址 213164 江苏省常州市武进区滆湖路1号