来改 变网络拓扑结构,可以在源宿节点通信中断时有效桥接被分割的网络,并在通信恢复后进 一步调整节点功率以降低不必要的能量消耗和减少信道间的干扰。
[0022] DPCAC中,节点定期收集各自情景,并进行交互这些信息,以此构造网络拓扑结构。 通过求解所有分割某一源宿节点对的最小点割集,得到疑似故障集,并进一步地将各类情 景视作证据,利用DS证据理论对疑似故障集中某一组节点生存状态做出推断,得到故障 集。DPCAC中具体说明了确定故障节点的过程,并同时考虑外在环境和内在因素对节点生 存状态的影响,将其建模为情景,通过情景感知计算中的推理机制判断哪些节点发生故障。 并设计了一个简单通信协议,来完成相关邻居节点的功率控制。同时,针对不同情景对节点 状态影响的大小不同的特点,赋予不同情景相应权重,在各个证据冲突较大时,对证据组合 公式进行了修正,提高了推理的准确性。通过网络累计数据量和节点的能量消耗速率两个 指标来评价算法效果,实验结果显示,DPCAC有效提高了战场环境下Ad Hoc网络的生存能 力,网络可自适应地根据发生故障位置调整邻近节点的功率恢复中断的通信。
[0023] 技术方案:战场环境通常是复杂多变且较为恶劣的,节点容易受到各种自然和人 为因素的影响和干扰而出现异常或者失效。如果这种节点出现在网络中的关键位置(如瓶 颈节点),节点的失效就可能进一步造成网络被分割,那么通过此节点中继的业务都无法再 进行,导致通信中断。此时,需要通过改变网络拓扑结构来产生被分割部分间的可用链路, 再通过相应路由协议发现新的路由来重新建立源宿节点间的通信。功率控制是用来改变网 络拓扑结构的一种重要方法,通过对网络节点发射功率的合理控制,可以将节点的度(节 点的一跳邻居数)保持在合理范围。
[0024] 一种用于Ad Hoc网络中基于情景感知的功率控制方法,包括四个部分:情景收 集、情景建模、故障推理和拓扑修复。
[0025] 1)情景收集。随着各种传感器类型的不断丰富和制造成本的持续降低,使得在移 动通信设备上配备多种传感器来感知用户周围环境的变化成为可能。CDPCA主要考虑了气 象条件、战斗情况、设备磨损程度、设备类型和电量剩余五种情景,来作为节点状态推理的 依据。这些信息可分为直接情景和间接情景,例如设备类型、设备磨损程度可以由使用者进 行直接配置;又如,战斗情况不能直接从传感器获得,但可以借助环境噪声变化、机械振动 频率等可直接测量的数据进行间接推断。
[0026] 2)情景建模。情景建模方法决定了如何对收集到的情景信息进行存储、写入、修改 和读取,良好的建模方法可以为后续推理快速准确地提供其所需的信息。CDPCA采用可扩展 标记语言(XML)来对各类情景数据进行建模。情景之间的继承关系,这种关系可用XML中 的父节点和子节点来表达;各个情景的实例化可通过XML中的节点属性表示;XML文件中 的信息检索可以利用XPath来完成。实现时采用了基于C语言的解析程式库libxml2。
[0027] 3)故障推理。这部分主要是在网络分割时,对发生故障的相关节点进行定位,包含 了疑似故障节点和节点状态的推断。在对节点状态判断之前,需要求解出能够分割源宿节 点的所有点割集,称之为"疑似故障节点"。根据情景信息构建的拓扑结构,这里使用了文献 [10]所提出的算法GenerateGS来计算任意给定一节点对(s,t)之间的所有最小点割集。 在完成对疑似故障节点求解后,需要分析其中每个节点的生存状态,从而确定故障集。利用 DS证据理论来进行判断,将各个情景视为证据,可求解出组合各个证据后,对各命题的信任 度,信任度最大的即为结论。根据证据间的冲突程度决定是否对基本概率分配函数进行修 正。
[0028] 证据理论基本组合公式如式(1)所示:
[0031] 其中,A,X,Y均代表命题,且X n Y = A,m(A)为对证据1和证据2组合后,对于命 题A的信任度,Ky表示两证据之间的冲突因子。由于经典DS证据理论进行证据融合时认 为各证据的重要性相同,为反映实际中不同证据对于结论的影响不同,可根据情景空间中 证据的重要性为其分配相应的权重。当证据合成时,若2个基本概率分配函数叫和m j之间 的冲突因子Ku超过某一阈值Kth,依照式(3)根据权重分配值对基本概率分配函数进行修 正。
[0033] 五种情景,即气象条件、战斗情况、设备磨损程度、设备类型和电量剩余,各个取值 空间的基本概率分配(BPA)可由人为预先给定,也可根据大量统计实验得出。
[0034] 4)拓扑修复。在确定故障集后,源节点发起拓扑修复过程,由网络中故障集节点 的邻居节点通过发射功率调整来重新桥接起被分割的网络。每个节点都维护两个列表, Response_src_list和Response_list,分别用于记录在拓扑修复过程中:本地节点已响应 过的源节点与自己作为源节点记录,已经响应自己的相关节点记录,这两个列表初始均为 空表。首先,源节点将在自己所在的子网广播一条Diagnose_Notice_Msg进行通告,将诊断 出的故障集告知每个节点,通告消息以源节点的地址作为键值。收到通告的节点比较故障 集中的每个失效节点与自己的地址,根据下述3种情况作出不同处理。
[0035] i.若自己是失效节点的邻居节点,则成为修复节点。修复节点首先将功率提升至 最大值,以尽快恢复网络连通性,并在Response_src_list记录下已响应的源节点地址,此 时,如果之前已经因响应其他源节点的诊断通告而将功率提升至最大值,只需记录新收到 消息的源节点即可。同时,也向源节点以单播方式回复一条修复消息Diagnose_Reply_Msg 作为响应。收到确认消息的源节点也将在Resp〇nse_list记录下修复节点地址,以便拓扑 修复完成后,将结果反馈给修复节点。
[0036] ii.若自己是故障集中的某一节点,则说明源节点对本节点的生存状态产生了误 判,这时将发送一条误诊消息Error_Msg到源节点,以便及时修正诊断结果。源节点收到 Error_Msg后,查找Response_list中响应过该节点所在故障最小点割集FMVCS的修复节点 地址,并发送一条修正消息给这些节点,使修复节点撤销之前对此FMVCS的响应。
[0037] iii.若自己既非故障节点的邻居,也非故障节点本身,则不作任何响应,直接销毁 收到的 Diagnose_Notice_Msg〇
[0038] 在经过一段时间(称为修复间隔)后,源节点测试到目的节点的链路是否修复成 功,且不论结果如何,都将结果告知修复节点。修复节点收到修复结果后,从ReSp〇nSe_ SrC_ list列表擦除此源节点,并检测记录表是否为空(可能已响应多个源节点的修复请求),若 为空,则进入功率调整阶段,将功率下调至合适值,一方面节省自身有限的电量,另一方面 使节点间通过多跳的方式完成通信,以减小无线信道间的干扰。此"合适值"是指,当修复节 点提升发射功率后,其一跳覆盖范围必然会扩大,将一些原本没有在其内的节点包含进来, 即一跳邻居节点增多。通过再次降低功率缩小一跳覆盖范围,逐一剔除一跳邻居节点,直至 网络拓扑图不再连通之前的最后一个邻居节点,保留此邻居节点,网络仍旧连通,此时修复 节点的功率即确定为发射功率下调的合适值。
[0039] 另外,修复过程中由于某些节点功率提高,其一跳覆盖范围扩大,可能覆盖到目 的节点,这样,目的节点也会收到源节点的诊断消息。此种情况下,目的节点将直接发送消 息告知源节点通信恢复,源节点收到后不需要等待修复间隔的结束,直接根据其Response# list列表来逐一通知结果。在源节点将修复结果反馈给已提升功率的节点后,若此时这些 节点的ReSp〇nSe_SrC_list为空,则开始功率调整,在维持网络连通性的前提下,降低不必 要的发射功率。以最大发射功率工作的节点降序排列到所有邻居节点的距离,从最远的邻 居节点逐一剔除,直到网络不再连通之前的最后一个邻居节点。
[0040] 有益效果:与现有技术相比,本发明提供的用于Ad Hoc网络中基于情景感知的 功率控制方法,引入了节点功率控制当中,充分利用了情景感知技术的良好自适应性来帮 助网络自主地修复被分割的网络拓扑结构,有效地避免了由于网络分割造成的