[发明专利]一种负载均衡的无环路路由选择方法有效
申请号: | 201711063314.6 | 申请日: | 2017-11-02 |
公开(公告)号: | CN107809781B | 公开(公告)日: | 2020-02-18 |
发明(设计)人: | 肖东;贾宁;魏丽萍;李燕;冯艺璇;郭圣明;马力 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | H04W40/10 | 分类号: | H04W40/10;H04W40/12;H04W40/22;H04W40/24;H04L12/705 |
代理公司: | 北京方安思达知识产权代理有限公司 11472 | 代理人: | 陈琳琳;杨青 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 负载 均衡 环路 路由 选择 方法 | ||
1.一种负载均衡的无环路路由选择方法,其特征在于,包括:
步骤1)网络布放T个节点,每个节点的通信范围内至少有2个其他的网络节点;为网络中的每个节点设置参数;为每个节点建立路由选择索引表S并清零,建立链路矩阵变化表和发射信息表;通过网络自组织方法为各个节点建立链路矩阵Q和剩余能量表E;
步骤2)每个节点建立B个路由表,B≥2,根据链路矩阵Q和剩余能量表E计算路由并进行赋值,设置参考矩阵C等于链路矩阵Q;
步骤3)信源节点在发射DATA数据帧前将自身剩余能量、上下行链路矩阵变化信息添加在DATA数据帧中,并根据自身的路由选择索引表S选择按照哪一个路由表向信宿节点发送该DATA数据帧;发射完毕后,记录发射信息并启动“等待-重发”定时器,并更新发射信息表;等待其他节点执行步骤4);如果信源节点在“等待-重发”定时器超时时,转入步骤8);
步骤4)当某个节点接收到该DATA数据帧时,则对该DATA数据帧进行校验;如果校验错误,则转入步骤9);如果校验正确,则根据该DATA数据帧更新自身剩余能量表E、链路矩阵Q和参考矩阵C,进而更新路由选择索引表S和链路矩阵变化表,然后进行进一步判断:
如果该DATA数据帧既不需要当前节点中继,也不需要当前节点接收,则转入步骤9);
如果当前节点是该DATA数据帧的中继节点,转入步骤5);
如果当前节点是该DATA数据帧的目的节点,则当前节点是信宿节点,转入步骤6);
步骤5)如果当前节点已经中继过与该DATA数据帧的对应的ACK数据帧,则假装成信宿节点向信源节点回复伪ACK数据帧;当前节点转入步骤9),等待其他节点执行步骤7);
如果当前节点没有中继过与该DATA数据帧的对应的ACK数据帧,则按照信源节点指定的路由表将该DATA数据帧向信宿节点中继;当前节点转入步骤9),等待其他节点执行步骤4);
步骤6)若信宿节点在限定的时间内未回复过该DATA数据帧,则信宿节点生成相应的ACK数据帧,并将自身剩余能量、上下行链路矩阵变化信息添加到该ACK数据帧中发射,并根据自身的路由选择索引表S选择按照哪一个路由表向信源节点发送该ACK数据帧,转入步骤7);否则,信宿节点转入步骤9);
步骤7)某个节点接收到该ACK数据帧时,对该ACK数据帧进行校验,如果校验错误,直接转入步骤9);
如果校验正确,则根据该ACK数据帧更新自身剩余能量表E、链路矩阵Q、参考矩阵C,进而更新路由选择索引表S和链路矩阵变化表,进行进一步判断:
如果该ACK数据帧既不需要当前节点中继,也不需要当前节点接收,则转入步骤9);
如果当前节点是该ACK数据帧的中继节点,则根据信宿节点指定的路由表向信源节点中继该ACK数据帧并转入步骤9),等待其他节点执行步骤7);
如果当前节点是该ACK数据帧的目的节点,即步骤3)中的信源节点,则认为发射成功,如果“等待-重发”定时器仍在运行,取消“等待-重发”定时器,转入步骤9);
步骤8)如果信源节点未收到信宿节点针对该DATA数据帧回复的ACK数据帧,则查看重发次数;
如果重发次数未超限,则更新路由选择索引表S,转入步骤3);如果重发次数超限则放弃发射该DATA数据,转入步骤9);
步骤9)分别逐项检查节点的发射信息表,如果某发射信息表项失效,则将该项发射信息表删除;节点返回空闲状态;
所述步骤4)具体包括:
步骤401)对接收到的DATA数据帧进行校验,如果校验错误,则转入步骤9);
如果校验正确,则读取其参数,更新剩余能量表E、链路矩阵Q和参考矩阵C;
记该数据帧的信源地址为src,如果该数据帧的信源剩余能量小于剩余能量表E中第src项esrc,则将esrc赋值为该数据帧的信源剩余能量;如果该数据帧的信源剩余能量不小于剩余能量表E中第src项esrc,则不更新;找到剩余能量表E中剩余能量最少的节点地址,记为em;
当该数据帧的链路矩阵变化行/列号l不等于src时,如果为上行链路变化,则将链路矩阵Q和参考矩阵C的第src行第l列的元素均赋值为该数据帧的链路矩阵变化结果;如果为下行链路变化,则将链路矩阵Q和参考矩阵C的第l行第src列的元素均赋值为该数据帧的链路矩阵变化结果;当该数据帧的链路矩阵变化行/列号l等于src时不更新;
上述两种更新发生任何一种,则转入步骤402);否则转入步骤403);
步骤402)依j由0开始逐一增加到T-1的次序依次更新路由选择索引表S;
建立B个浮点型临时变量tmpb并清零,根据(2)式依次计算B个路由表第t组第j项的代价;
其中,
WQ为链路质量权重;WE为剩余能量权重;QL为链路质量上限;EL表示节点剩余能量的100%;
选择代价最小的路由表,将该路由表的编号赋值给sj,如(3)式所示
步骤403)根据发射信息表进一步更新链路矩阵Q及链路矩阵变化表;依次遍历发射信息表,如果发射信息表中某项的是否等待回应为“是”且满足如下2个条件之一的,认为存在待回应发射信息:
第一条件、发射信息表项中的数据类型与接收数据帧的数据类型相同、信源地址相同、目的地址相同、帧序号相同、发射信息表项中的下跳地址与接收数据帧的当前地址相同,记接收数据帧的当前地址为cur,
第二条件、发射信息表项中的数据类型为“DATA”而接收数据帧的数据类型为“ACK”、发射信息表项中的信源地址等于接收数据帧的目的地址,发射信息表项中的目的地址等于接收数据帧的信源地址,发射信息表项中的帧序号与接收数据帧的帧序号相同,发射信息表项中的下跳地址与接收数据帧的当前地址相同,
存在待回应发射信息且当前时间与发射信息表中该项发射时间的差未超过回应等待时间TR时,按照(4)式更新链路矩阵中的上行链路质量:
同时按照(5)式更新链路矩阵中的下行链路质量:
存在待回应发射信息但当前时间与发射信息表中该项发射时间的差超过回应等待时间TR,按照(6)式更新链路矩阵中的上行链路质量:
同时按照(7)式更新链路矩阵中的下行链路质量:
当不存在待回应发射信息时,仅按照(5)式更新链路矩阵中的下行链路质量;
如果链路矩阵中某上行链路的元素qtcur在更新前后没有变化且不等于参考矩阵中对应元素ctcur,则将qtcur赋值到参考矩阵的ctcur中,并在链路矩阵变化表中增加1项,新增项上/下行赋值为上行、行/列号赋值为cur、变化结果赋值为qtcur;如果链路矩阵中某下行链路的元素qcurt在更新前后没有变化且不等于参考矩阵中对应元素ccurt,则将qcurt赋值到参考矩阵中ccurt,并在链路矩阵变化表中增加1项,新增项的上/下行赋值为下行、行/列号赋值为cur,变化结果赋值为qcurt;转入步骤404);
步骤404)如果该DATA数据帧的目的地址等于当前地址t,则该数据帧的接收者是当前节点;转入步骤6);
如果该DATA数据帧的目的地址不等于当前地址t,但是下跳地址等于当前地址t,则该数据帧的中继者是当前节点;转入步骤7);
否则,该DATA数据帧既不需要当前节点中继,也不需要当前节点接收;转入步骤9)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711063314.6/1.html,转载请声明来源钻瓜专利网。