英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
基于高效分簇式网络传感器中的故障管理算法
摘要:无线传感器网络是由能量有限的节点密集分布组成的。由于大量传感节点的部署在不受控制的恶劣环境中和不受监督的操作下,因此节点耗尽能量,从而成为无效的节点是很常见的。失效的节点产生持续的损耗,这可能会导致关键的信息丢失。为了避免性能下降,有必要提前检测到故障,并采取适当的措施,以维持网络正常的运行。为了检测故障和恢复簇的结构提出了一种高效的基于簇的技术。所提出的技术依赖于集群成员来检测集群中的故障,并恢复连接。所提出的故障检测和技术恢复簇的结构所用的时间小于Gupta算法的四分之一同时可以节约百分之七十的能量。基于集群的故障检测和恢复算法被证明是一个有效和快速的解决方案,可以维持一个强大和可扩展的传感器网络的长期运作。
1引言
能量受限的传感器网络需要簇的算法解决可扩展性和能源效率以及有效的资源管理。簇可以延长网络的生命周期,支持本地化的决策和通集群内聚集数据的通信,从而节约能源[1]。
无线电传输中消耗的能量与传输范围的平方成正比。因为一个传感器节点到另一个传感器节点的距离要短于传感器节点到基站的距离,因此所有的传感器节点直接发送数据到远程基站的这种方式是不节能的,基于簇的数据采集机制可以有效节约能源[1]。在文献中提出了许多基于簇的算法[1-5]。
由于恶劣的环境和无人值守的部署,在传感器网络中失效是不可避免的。在我们早期的工作中提出错误的数据报告,硬件的故障和损坏,以及温度等原因造成传感器节点的能量损失[6]。在本文中,我们设计的技术是为了保持在失效事件中造成的能量耗尽节点的簇的结构。故障检测和恢复在簇形成后和群簇运行时执行。所提出的故障检测和恢复技术,节点检测其各自的簇中的能量故障,并在其簇内启动故障恢复,而不会影响网络的结构,所提出的方法是专为处理静态传感器节点。当传感器节点失败时,通过簇的重组来保持连通性。通过使用簇中的静态节点来进行本地的故障检测和恢复,跟使用移动传感器节点来取代失效的节点的方法相比更节省能源。此外,时间是不变的,因为它不涉及任何移动节点或位置计算,这是因为,这是在一个本地化的方式处理簇内节点已存储的信息。
本地化故障检测方法与崩溃故障识别算法相比已被证明是有效的[7]。这种恢复算法与Gupta和Younis[8]提出的容错簇这两个算法相比,可以实现我们所提出的故障检测和恢复方法。它可以观察到的结果是该算法由于使用簇的本地化决策,故障检测和恢复速度更快。
在第2节中,我们讨论了在传感器网络中的故障检测和恢复领域的相关工作。第3节给出了详细的描述所提出的算法,在第4和第5节是复杂性分析。在第6节中,我们对的算法的性能评价进行了讨论,并在第7节中得出结论。
2相关的工作
在这一节中,我们回顾了在无线传感器网络(WSNs)的故障检测和恢复领域的相关工作。在参考文献[9]到[12]中已经提出了传感器网络的故障检测,容错和维修以及其他很多技术[9-12]。在故障管理的背景下,在调查中可以发现故障的检测[13]。在互联网的容错性方面,如网络的可用性和性能在参考文献14进行了讨论。以分层和簇为基础的方法,在参考文献8中故障检测和修复也被研究人员所处理[8]。一些作者使用路由技术来识别失效或行为异常的节点[15-17]。使用管理架构的一种无线传感器故障检测方案,基于簇的方法被提出并进行了评估。然而,这种方法需要一个外部管理器进行集中诊断和节点之间的通信和管理。对无线传感器网络而言这种方式太昂贵了。以几个局部阈值为基础检测故障传感器和事件的决策方案是由Krishnamachari和Iyengar建议的[19]。Luo[20]等人没有明确地试图检测故障传感器,他们提出的算法在传感器的存在下可以提高故障检测和事件检测精度。
传感器网络的故障修复已经有了一些研究工作。然而,大多数现有的方法需要准确的位置信息,一些算法采用移动传感器节点,以取代故障传感器和纠正覆盖和连通孔。然而,传感器节点的能量损耗和把节点搬到一个确切的地方更换出现故障的节点并且建立连接是冗杂的还消耗了能量。Mei[21]等。提出了一种方法,使用移动机器人来协助传感器更换失败的传感器节点,他们关于传感器故障检测算法的研究报告,能够协调移动机器人进行有效的运动。在参考文献[22]中混合传感器网络的故障更换协议被提出。在本文中,移动传感器用于改善覆盖范围、恢复故障或连接的网络。故障传感器定对冗余传感器进行定位并启动替换请求。使用Voronoi[23]图检测孔和投标协议,提出了协助传感器节点的运动来弥补漏洞。三分布式自部署协议[24],涉及移动传感器节点,以修复失效的节点。Ganeriwal[25]等人提出了一种算法称为覆盖的忠实维护算法(Co- Fi),它利用传感器节点的移动性修复失效的节点。为了修复故障传感器Wang[26]等人提出了一种近距离定位的级联移动和使用有故障的传感器节点更换冗余传感器的算法。在参考文献[27]中作者提出了一种基于策略的传感器网络故障修复和故障传感器更换的集中式算法。
3故障检测和恢复算法
节点被组织成簇,网络运行一段时间。数据通信和网络操作会导致传感器节点的能量耗尽。故障检测和集群恢复由于能量耗尽节点而没有被激活。在本文中,在节点故障的情况下,簇结构的维护和恢复被称为故障恢复。我们现在进一步阐述了故障检测和故障恢复机制。
3.1簇的形成
传感器节点是分散分布的,并假定在聚类过程中的是活动节点。基于权重来选择簇头,权重是邻居数和剩余能量的函数。每个簇头通过选择其第一跳成员来启动簇的形成。然后,第一跳成员使用扩展的环搜索技术选择第二跳成员。节点选择最多D个节点作为它们的直接跳数。节点聚集成簇,直到簇中的成员数量达到S的最大值,或者当所有节点都聚集时。这个算法在前面的工作中得到了很好的解决[6]。限制簇的大小有助于显著节约能源,我们的研究表明,对于更高的传输范围,节能更加突出。详细的模拟仿真证明了聚类算法的能量效率[6]。本文针对簇形成阶段后的故障检测和网络连接恢复机制。
3.2故障检测
在本节中,我们将讨论检测节点能量失效的方法,并将其报告给簇中的各个成员。这种检测对簇的成员至关重要,因为它们必须调用修复和恢复这些故障的机制,以保持簇的连接。
每个节点都具有平衡能量的记录。每个簇中的节点将其能量状态作为hello_msg的一部分发送到其第一跳的成员,包括其父节点。hello_msg由位置(x和y坐标),能量和节点ID组成。这个hello_ msg传达节点的当前能量状态。当节点发生故障时,它会将故障报告消息fail_report_msg发送给其父节点和子节点。当其能量水平低于阈值Eth时,节点被称为失效节点。阈值Eth是在等于传输范围的距离上传输D个L位消息所需的能量。在图1,让我们假设节点7发生故障,然后将fail_report _msg发送到其父节点3,和子节点10。在处理与能量耗尽相关的故障时,我们假设故障节点可以在故障完成之前将故障报告发送给它的相邻跳成员。故障报告的这一信息是启动故障恢复过程的指示。故障节点的父节点和子节点能够充分调用故障恢复机制,因此,通过禁止簇中的所有节点检测故障来节省能量。簇中的所有节点知道其第一跳成员失效,只有具有这些信息的那些节点才能采取纠正措施。
头节点
1
4
2
边界节点
3
内部节点
9
7
5
前边界节点
8
6
10
图1 簇的拓扑图
3.3故障恢复
在本节中,我们将讨论故障恢复的机制,这里的故障恢复是指节点出现故障后的连接恢复。这里讨论的节点故障仅限于由于能量耗尽而导致的故障。故障恢复机制由每个簇本地执行,当节点发生故障时,故障节点的父节点和子节点采取适当的动作来连接簇并桥接由故障节点形成的间隙。我们提出了四种类型的故障机制,这取决于簇中节点的类型。簇中的节点分为边界节点,前边界节点,内部节点和头节点四种类型。每个节点的描述在表1中进行说明,如图1所示。
图1给出了由我们提出的方法即节点形成簇的图示。簇中的节点以树状方式与父节点和子节点连接。假如集群的大小为10,可支持度(每个节点可以作为下一跳的邻居数)为3。
每个节点都有不同的故障恢复机制,我们现在讨论边界节点,前边界节点,内部节点和头节点的各种故障恢复算法。我们首先解释通常由四种类型的节点实现的例程。
表1 不同类型的节点
节点类型 |
描述 |
在图中描述(图1) |
边界节点 |
没有子节点的节点 |
节点5,6,8,9,10 |
前边界节点 |
一个节点的子节点都是边界节点 |
节点2,4,7 |
内部节点 |
至少有一个前边界或内部节点作为子节点的节点。 |
节点3 |
头节点 |
簇的簇头 |
节点1 |
3.4常见的恢复算法
3.4.1故障报告
如果节点的能量低于阈值能量,则节点被认为是失效的。故障报告消息由故障节点发送给其父和子节点,这有助于子节点意识到它们需要搜索另一个合适的父节点进一步操作。一旦父节点接收到故障报告,它将忽略失效的节点进一步的数据事务,并将其视为非活动成员。
3.4.2确定合适的父节点
join_ request_mesg由失效节点的健康子节点发送给邻居,传输范围内的所有邻居都使用join_ reply_mesg / join_ reject_mesg消息进行响应。故障节点的健康子节点通过检查故障节点的子节点是否是故障节点,以及邻居是否是故障节点来选择合适的父节点。
如果正常的子节点是边界节点,它首先搜索簇中的父节点,如果不成功,那么它将搜索簇外的父节点。在搜索父节点时,如果父节点是相同的簇中,则它检查邻居的可支持度是否在D内。如果父节点来自不同的簇,则邻居的可支持度必须在限制D内,并且簇的大小限制也必须在S内。
如果一个健康的孩子是一个内部节点,它只会在群集内搜索一个合适的父母。如果找到合适的父节点,则正常的子节点将其自身附加到所选择的父节点上。如果所选择的父节点来自不同的集群,则会交换cluster_info_ mesg。子节点的簇的参数通过update_mesg更新为新选择的父节点的簇的参数,然后按照新的路径进行数据传输。然后,失效的节点与原始父节点一起留下,并且其子节点都被分配不同的父节点以保持其数据传输不间断。
3.5边界节点故障恢复算法
首先,故障报告按3.4.1节所述进行,故障边界节点被忽略,因为它不影响簇中其他节点的连接。
3.6前边界节点故障恢复算法
故障报告由失效的前边界节点完成,如第3.4.1节所述。如果失效的前边界节点的所有子节点都失效,则整个场景如边界节点的情况一样被忽略。如果失效的前边界节点的任何一个或多个子节点失败,那么单独的失效的子节点就被忽略,然后正常的子节点找到另一个合适的正常的父节点。该过程在3.4.2节中有详细说明。如果没有找到合适的父节点并且正常的子节点是边界节点,那么说明该节点就是故障节点本身。
3.7内部节点故障恢复算法
故障报告由故障内部节点完成,如第3.4.1节所述。如果失效的内部节点的子节点也失效,则处理取决于节点的类型。如果它是边界节点,它将保持原样。如果它是一个前边界节点或一个内部节点,那么将在稍后阶段的故障恢复的一个过程中相应地对其进行处理,我们不会在一个过程中执行重复的故障恢复。我们允许在下一阶段将其作为内部节点或前边界节点的恢复过程来处理。失效的内部节点的正常子节点按照第3.4.2节所述的步骤搜索合适的父节点。如果没有找到适合的父节点,子节点会建立自己的一个簇,该子节点拆分成为新簇的簇头节点,簇成员将是新簇头节点下的子节点。如此一来,失效的内部节点与原始父节点保持一致,并且其子节点都分配到不同的父节点,以保持数据传输的不间断。
3.8头节点故障恢复算法
故障报告由故障头节点完成,如第3.4.1节所述。如果发生故障的簇头节点的子节点也失效,则处理取决于节点的类型。如果失效的子节点是边界节点,则完全忽略它。如果失效的子节点不是边界节点,那么该节点在头节点恢复阶段将被忽略,将在后一阶段的故障恢复的一个过程中相应地处理该节点,将其作为内部或前边界节点。簇头失效后不久,选择另一个新的簇头来管理该簇。
3.8.1为簇选择另一个合适的簇头的步骤
故障簇头节点的子节点交换其能量状态。失效的子节点不能作为新的簇头节点,并且发送tentative_CH_mesg。选择具有最大剩余能量的正常子节点作为新的簇头,并发送final_CH_ mesg。选择新的集头节点后,故障簇头的其他子节点连接到新的簇头上
全文共11104字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[142973],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。