发明名称 认知Ad Hoc网络的分布式拓扑控制方法
摘要 本发明公开了一种认知Ad Hoc网络的分布式拓扑控制方法,主要解决现有技术中次用户网络的连通性不能保证和次用户相互干扰的问题。其实现过程为:网络中的每个节点先后广播两次HELLO包,并接收初始邻节点的HELLO包,建立局部两跳拓扑子图;基于局部两跳拓扑子图,先根据能耗链路代价权重,构建最短路径树,然后基于最短路径树构建可保证次用户连通的局部生成子图;根据局部生成子图中的一跳邻节点调整发射功率;由网络中的所有节点以及节点与其逻辑邻节点间的链路构成全网拓扑;拓扑构建完成后,网络中的节点独立的进行信道选择。本发明具有保证次用户网络连通,消除次用户干扰,复杂度低的优点,可用于认知Ad Hoc网络。
申请公布号 CN104507168A 申请公布日期 2015.04.08
申请号 CN201410829689.9 申请日期 2014.12.27
申请人 西安电子科技大学;中国电子科技集团公司第五十四研究所 发明人 王玺钧;盛敏;翟道森;张琰;李建东;郭彦涛
分类号 H04W72/08(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W72/08(2009.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 一种认知Ad Hoc网络的分布式拓扑控制方法,包括如下步骤:(1)网络中每个节点u发送自己的HELLO‑1包,并接收一跳邻节点发送的HELLO‑1包,该HELLO‑1包中包括u节点的ID序列号和位置信息;(2)网络中每个节点u发送自己的HELLO‑2包,并接收一跳邻节点发送的HELLO‑2包,该HELLO‑2包中包括u节点的一跳邻节点的ID序列号和位置信息。(3)网络中每个节点u构建局部两跳拓扑子图<img file="FDA0000645850180000011.GIF" wi="96" he="74" />(3a)网络中的每个节点u根据接收到的HELLO‑1和HELLO‑2包信息,确定自己与两跳邻节点的连接关系,以及这些邻节点之间的连接关系,建立局部两跳拓扑子图<img file="FDA0000645850180000012.GIF" wi="97" he="74" />(3b)根据上述局部两跳拓扑子图,每个节点u计算局部两跳拓扑子图中任意两个有连接关系的节点x,y之间的链路能耗权重w<sub>p</sub>(x,y)和链路距离权重w<sub>d</sub>(x,y),w<sub>p</sub>(x,y)通过如下公式计算:w<sub>p</sub>(x,y)=P<sub>x,y</sub>,其中,P<sub>x,y</sub>是最小发射功率;w<sub>d</sub>(x,y)通过如下公式计算:w<sub>d</sub>(x,y)=d<sub>x,y</sub>,其中d<sub>x,y</sub>为节点间的欧式距离;(4)根据上述局部两跳拓扑子图,网络中每个节点u构建局部生成子图S<sub>u</sub>=(V(S<sub>u</sub>),E(S<sub>u</sub>)):(4a)网络中的每个节点u将局部生成子图S<sub>u</sub>的节点集合V(S<sub>u</sub>)初始化成局部两跳拓扑子图中的所有节点,将边集合E(S<sub>u</sub>)初始化成空集;(4b)基于局部两跳拓扑子图<img file="FDA0000645850180000013.GIF" wi="83" he="65" />每个节点u根据链路能耗权重w<sub>p</sub>(x,y),构建以u为根,遍及局部两跳拓扑子图中所有节点的最短路径树T<sub>u</sub>=(V(T<sub>u</sub>),E(T<sub>u</sub>)),其中<img file="FDA0000645850180000014.GIF" wi="295" he="70" />为局部两跳拓扑子图中的所有节点,E(T<sub>u</sub>)为构成最短路径树的所有边,并将这些边记录到局部连通子图S<sub>u</sub>中,即<img file="FDA0000645850180000015.GIF" wi="505" he="72" />(4c)网络中的每个节点u根据最短路径树T<sub>u</sub>找到与自己冲突的节点,构成冲突节点集CN<sub>u</sub>,并初始化冲突子图为CS<sub>u</sub>,其中V(CS<sub>u</sub>)=CN<sub>u</sub>,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>E</mi><mrow><mo>(</mo><msub><mi>CS</mi><mi>u</mi></msub><mo>)</mo></mrow><mo>=</mo><mo>{</mo><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>|</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>&Element;</mo><msub><mi>CN</mi><mi>u</mi></msub><mo>,</mo><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>E</mi><mrow><mo>(</mo><msubsup><mi>G</mi><mi>u</mi><mn>2</mn></msubsup><mo>)</mo></mrow><mo>}</mo><mo>;</mo></mrow>]]></math><img file="FDA0000645850180000021.GIF" wi="941" he="107" /></maths>(4d)每个节点u检测各自的冲突连通子图CS<sub>u</sub>是否连通,如果连通,节点u则在CS<sub>u</sub>上构建局部生成子图T<sub>u</sub>′;如果不连通,节点u则在<img file="FDA0000645850180000022.GIF" wi="132" he="74" />上构建斯坦纳生成树T<sub>u</sub>′;如果上述两个步骤均无法执行,节点u则获取h跳邻节点信息,构建局部h跳拓扑子图<img file="FDA0000645850180000023.GIF" wi="98" he="71" />并在<img file="FDA0000645850180000024.GIF" wi="66" he="71" />上构建斯坦纳生成树T<sub>u</sub>′;(4e)节点u将边集E(T<sub>u</sub>′)记录到局部生成子图的边集E(S<sub>u</sub>)中,即<img file="FDA0000645850180000025.GIF" wi="523" he="77" />将节点V(T<sub>u</sub>′)记录到局部生成子图的节点集V(S<sub>u</sub>)中,即<img file="FDA0000645850180000026.GIF" wi="527" he="77" />将节点V(T<sub>u</sub>′)记录到逻辑冲突邻居集LCN<sub>u</sub>中,即LCN<sub>u</sub>=V(T<sub>u</sub>′),然后节点u通过洪泛的方式把LCN<sub>u</sub>和E(S<sub>u</sub>)的拓扑信息发送给S<sub>u</sub>中的所有节点;(4f)每个节点u根据其他节点发来的拓扑信息更新自己的局部生成子图S<sub>u</sub>和逻辑冲突邻居集LCN<sub>u</sub>,将局部生成子图S<sub>u</sub>上的一跳邻节点v作为逻辑邻节点,并构成逻辑邻节点集:LN<sub>u</sub>={v∈V(S<sub>u</sub>)|(u,v)∈E(S<sub>u</sub>)};(5)网络中每个节点u确定自己的发射功率,即将发射功率调整为能够覆盖到所有逻辑邻节点所需要的最小功率:<img file="FDA0000645850180000027.GIF" wi="555" he="76" />(6)将网络中的所有节点以及每个节点与自己的逻辑邻节点间的链路组合起来,构成最终的全网拓扑,即G=(V(G),E(G)),其中V(G)为网络中所有节点,E(G)={(u,v)|u∈V(G),v∈LN<sub>u</sub>};(7)根据上述拓扑,网络中的每个节点u选择发送信道:(7a)节点u向逻辑冲突邻居集LCN<sub>u</sub>中的所有节点在公共控制信道上发送请求分配信道包RAC(Require Assignment Channel);(7b)LCN<sub>u</sub>中的所有节点在收到RAC包后,回馈信道分配包AC(Assignment Channel)给节点u,告知已经选择的信道;(7c)节点u收集所有LCN<sub>u</sub>中的节点回馈的AC包,从还未被占用的信道中选择主用户占用概率最小的信道,作为自己的可用信道;(7d)每个节点独立执行上述过程,直到所有节点都分配完信道为止。
地址 710071 陕西省西安市太白南路2号