发明名称 一种无线自组织网络表驱动跨层路由学方法
摘要 由于ad-hoc网络表驱动路由具有延时较低的优势,在诸如战场或抢险等场合具有重要应用价值,但目前ad-hoc网络的表驱动路由缺乏对环境的学适应能力。对此,本发明公开了一种无线自组织网络表驱动跨层路由学方法,属于无线通信和信息传播技术领域,主要包括:提取网络层和MAC层跨层信息,基于跨层信息构建迭代模型并利用迭代模型进行路由选择,当网络情况发生变化时对迭代模型的状态进行更新。本发明利用迭代模型提高了表驱动路由算法对环境的学适应能力,可以提高网络的传输性能。本发明适应于Ad hoc自组织网络的表驱动路由协议。
申请公布号 CN102711285B 申请公布日期 2014.10.22
申请号 CN201210138777.5 申请日期 2012.04.28
申请人 西南科技大学 发明人 江虹;李强;黄玉清;许文举;张晓琴
分类号 H04W80/00(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W80/00(2009.01)I
代理机构 代理人
主权项 一种适用于无线自组织网络的具有学习能力的表驱动跨层路由方法,其特征在于:跨层信息提取,迭代学习模型构建、状态更新三个步骤:(a)跨层信息提取:MAC层收到来自本节点网络层传递的数据包时,对网络层的数据包标识位RF进行判断,如果网络层要求MAC层反馈该数据包的重传次数,则MAC层完成该数据包传输后,向网络层上传该数据包的重传次数retry,网络层使用该信息更新数据包所选择中继的拥塞度信息,如果MAC层收到来自物理层的数据包需要传输给网络层时,MAC层将同时向网络层传递该数据包和接收该数据包时的信噪比、本节点MAC层缓存队列长度和丢包率等信息,网络层使用这些信息更新迭代算法的收敛因子;(b)迭代学习模型构建:当数据包传输时,若目标节点是邻居节点,则直接发送数据包,否则开始构建迭代学习模型,迭代学习模型在网络层通过状态行为值函数Q(s,a)实现,状态s属于下一跳节点构成的集合,动作或行为a指对某个中继节点的选择,状态行为值函数反映了在当前网络状态下,某个动作的累积回报,通过对状态行为值函数的不断迭代,给中继选择提供依据,状态行为值函数以表格的形式保存,形成状态Q值表,迭代学习算法的具体步骤如下:Step1:构建迭代模型时,首先创建状态Q值表并用能到达目标节点的所有邻居节点对其进行初始化,同时初始化状态行为值函数Q<sub>0</sub>(s,a)和学习因子α<sub>0</sub>,令Q<sub>0</sub>(s,a)=H×T、α<sub>0</sub>=0.5,其中H表示经过s到目标节点的最小跳数,T表示整个网络相邻节点间的平均传输时间;Step2:对数据包当前所在节点S<sub>h</sub>,根据某种策略π<sub>Q</sub>选择h时刻的行为a<sub>h</sub>,在选择动作时,遍历状态Q值表,首先确定到达目的节点的最小跳数,如果能找到与该最小跳数相同且从未被选为中继的节点,则从这种节点中选择一个作为下一跳路由;如果没有找到这样的节点,则选择Q值最小的那个节点作为中继节点,选择中继节点后,数据包被传递到MAC层;Step3:MAC层收到上层传递的数据包时,向中继节点转发该数据包,如果上层需要MAC层返回重传次数,则MAC层在转发该数据包后向网络层上传其重传次数retry;Step4:网络层从MAC层得到数据包重传次数retry后,使用C=(1‑γ)*C+γ*1/retry来更新到对应中继节点的拥塞度,其中C表示拥塞度,γ表示折扣常数,若重传次数超过最大重传次数,说明此时执行a<sub>h</sub>动作时不能成功传输数据包,则给出一个严厉的惩罚r<sub>bad</sub>;Step5:h+1时刻,网络层根据数据包中的时间戳信息向传递该数据包的上一跳节点给出延时回报值r<sub>t</sub>,并根据α<sub>tmp</sub>=SNR×(1‑P1)/(SNR<sub>max</sub>×L)、α<sub>hop</sub>=(1‑γ)×α<sub>hop</sub>+γ×α<sub>tmp</sub>和R<sub>e</sub>=(1‑γ)R<sub>e</sub>+γ×r<sub>t</sub>更新计算α<sub>h</sub>所需的相关参数,其中R<sub>e</sub>表示一段时间内的累积回报;L表示数据包到达时Mac层缓存队列长度,SNR为接收数据包时的信噪比,P1为MAC层丢包率,SNR<sub>max</sub>为整个网络信道的最大信噪比,α<sub>hop</sub>反映了接收当前数据包时,相邻节点间链路的质量情况,r<sub>t</sub>、α<sub>hop</sub>被保存于回报信息表中;Step6:在某个固定周期后,本节点向下一跳邻居节点广播本节点回报信息表;Step7:其它节点收到回报信息表后,按α<sub>h</sub>=(1‑α<sub>hop</sub>)×C更新回报信息表中目的节点的Q值表收敛因子,同时按Q(s<sub>h</sub>,a<sub>h</sub>)=Q(s<sub>h</sub>,a<sub>h</sub>)+α<sub>h</sub>[R<sub>h</sub>(s<sub>h</sub>,a<sub>h</sub>)+γQ(s<sub>h+1</sub>,a<sub>h+1</sub>)‑Q(s<sub>h</sub>,a<sub>h</sub>)]更新行为状态值函数;Step8:判断数据包在h+1时刻是否达到目标节点,如果不是则继续从Step2执行,如果是目标节点,则完成本次传输任务;(c)状态更新:状态Q值表建立后,随着网络拓扑的变化,其中的某些状态可能会发生变化,从而应该对状态Q值表进行更新,在进行状态更新时,首先计算所有邻居节点可达节点表,该表保存了所有通过某一邻居节点可到达的所有节点,每个表项由可达节点IP地址和本节点经该邻居节点到达该可达节点的最小跳数组成,如果状态Q值表的目标节点在某一个邻居可达节点表中存在,且该邻居节点不在此状态Q值表中,则将此邻居节点加入状态Q值表;如果状态Q值表的某个状态已经不是本节点的邻居节点,则删除此状态。
地址 621010 四川省绵阳市涪城区青龙大道中段59号