详细介绍:改进聚类的WSN容错路由
基于改进聚类的无线传感器网络路由算法
摘要
由于环境危害、能量耗尽、设备故障等原因,传感器节点可能无法正常工作,这被称为传感器节点故障,严重影响网络寿命。处理传感器节点故障是无线传感器网络必须具备的特性。在容错分布式FTCD(基于容错聚类的分布式)路由的初始阶段,传感器节点利用到簇头的距离、簇头到基站的距离以及簇头的剩余能量信息来选择各自的簇头。在数据路由阶段,簇头利用最小化能耗来选择下一跳,并提出容错处理机制。与其他算法相比,实验结果表明FTCD路由的性能显著提升。
CCS概念
- 计算机系统结构~嵌入式和信息物理体系~传感器网络
关键词
无线传感器网络,路由;聚类,容错,分布,簇头
ACM引用格式: 侯爱霞. 2020. 基于改进聚类的无线传感器网络路由算法. 见AIAM’ 20:2020第二届人工智能与先进制造国际会议, 2020年10月15日至 17日, 英国曼彻斯特. 美国纽约ACM公司, 4页. https://doi.org/10.1145/3421766.3421826
1 引言
无线传感器网络(WSNs)广泛应用于环境监测、战场侦察、医疗保健和灾害管理等多个领域。目前,节点能量有限且不可更换是阻碍无线传感器网络应用发展的主要因素[1]。因此,降低传感器节点的能耗并提高能量利用率被认为是无线传感器网络应用的关键。为此,研究人员开展了大量研究工作,设计了管用的能量协议,包括低功耗通信硬件、能量感知 MAC协议等。其中,高效的聚类路由算法被认为是无线传感器网络中最具前景的技巧[2]。
基于聚类无线传感器网络,如图1所示,传感器节点被划分为不同的组,称为簇。每个簇包含一个簇头CH,每个传感器节点仅属于一个簇。聚类无线传感器网络具有以下优点:1)簇头CH接收来自簇成员的感知数据并进行融合,丢弃冗余数据后再传输至基站BS,从而降低传感器节点的能耗;2)通过簇头构建数据传输主干线路,便于路由管理,同时提高了网络的可扩展性和重要性。然而,在聚类无线传感器网络中,簇头CH承担了更多任务,例如接收来自传感器节点的数据、合并数据并传输至基站。繁重的任务加速了簇头CH的能量消耗,缩短了其工作寿命。一旦能量耗尽,簇头CH将无法正常工作。本文将此类节点称为节点故障。一旦发生簇头故障,无线传感器网络的数据传输将被中断,从而降低无线传感器网络的应用性能[3]。
此外,由于环境干扰、能量耗尽和设备故障,导致传感器节点故障,这也影响了无线传感器网络的应用性能,并缩短了无线传感器网络的工作寿命。然而,簇头CH的故障更为严重,因为簇头CH承担了大量的数据收集、融合和传输任务。
因此,为了确保无线传感器网络的应用,必须在路由协议设计中考虑簇头CH和传感器节点故障,即路由具有容错[4]。

因此,提出了FTCD路由。FTCD重点关注簇头CH故障。
FTCD路由主要分为两个阶段:初始阶段和数据处理阶段。
在初始阶段,每个传感器节点根据增益函数为自己选择一个簇头。该增益函数结合了到簇头的距离、簇头的剩余能量以及簇头与基站之间的距离[5]。在数据处理阶段,簇头选择下一跳簇头以平衡能耗,并通过该分布式路由将数据传输到基站。
2 相关工作
基于聚类的路由算法在无线传感器网络中被广泛使用。一些算法是集中的,而另一些则是分布式的。集中式路由算法由基站实现,要求掌握网络拓扑的全局信息,并将路由信息发送给簇头CH。分布式算法则基于局部信息做出路由决策。
3 系统模型与定义
考虑N个传感器节点 $ s_i $, $ i = 1,2,\cdots,N $ 随机分布在无线传感器网络(WSN)中。其中有m个簇头CH,$ k = 1,2,\cdots,m $。一旦部署,传感器节点不会移动,即传感器节点为静态。为了描述简便,定义以下变量:
(1) Sensor node set $ S = { s_1, s_2, \cdots, s_N } $;
(2) 簇头CH集合 $ C = { ch_1, ch_2, \cdots, ch_m } $;
(3) 簇头CH的最大通信范围 $ R_{ch} $ 和传感器节点的通信范围 $ R_s $;
(4) 距离 $ d(s_i, s_j) $:传感器节点 $ s_i $ 且 $ s_j $;
(5) 剩余能量 $ E_{Residual}(s_i) $:节点 $ s_i $;
(6) 被传感器节点 $ s_i $: 的通信范围覆盖的簇头CH集合 $ ComCH(s_i) $,含有传感器节点 $ s_i $ 通信范围内所有的簇头 CH,如公式(1)所示。
$$
ComCH(s_i) = { ch_j \in C \mid d(s_i, ch_j) \leq R_s }
\tag{1}
$$
(7) 传感器节点 $ s_i $: 的邻居集 $ Nei(s_i) $:所有传感器节点在传感器节点 $ s_i $ 的通信范围内,如所示公式(2)
$$
Nei(s_i) = { s_j \in S \mid d(s_i, s_j) \leq R_s }
\tag{2}
$$
(8) 簇头 $ ch_k $ 的邻居集 $ Com(ch_k) $:所有聚类簇头 $ ch_k $ 通信范围内的簇头 如公式(3)所示。
$$
Com(ch_k) = { ch_r \in C \mid d(ch_k, ch_r) \leq R_{ch} }
\tag{3}
$$
(9) 簇头 $ ch_k $ 与基站之间的跳数 $ HCou(ch_k) $。如果簇头 $ ch_k $ 能够直接与基站通信,则 $ HCou(ch_k) = 1 $。
(10) 簇头 $ ch_k $ 的后向簇头 $ Bch(ch_k) $: 位于簇头 $ ch_k $ 的通信范围内,且簇头 $ ch_k $ 到基站的跳数大于 $ ch_r $ 到基站的跳数,如公式(4)所示。
$$
Bch(ch_k) = { ch_r \in Com(ch_k) \mid HCou(ch_r) < HCou(ch_k) }
\tag{4}
$$
(11) 被簇头覆盖的传感器节点集合CO:如果传感器节点 $ s_i $ 的通信范围内至少存在一个簇头,则 $ s_i $ 属于传感器节点集合 CO。如果传感器节点 $ s_i $ 的通信范围内没有簇头,则 $ s_i $ 属于非感知节点集合UnCO,如公式(5)所示。
$$
s_i \in
\begin{cases}
CO & \text{if } \exists ch_r \in C \land ch_r \in ComCH(s_i) \
UnCO & \text{otherwise}
\end{cases}
\tag{5}
$$
(12) 传感器节点 $ s_i $ 在非传感器节点集中的支持节点集 $ Baup(s_i) $:当 $ s_i \in UnCO $, $ s_i $’s 邻居节点可作为连接簇头的中间节点时,这些中间节点集称为 $ s_i $ 的支持节点集 $ Baup(s_i) $,如公式(6)所示。
$$
Baup(s_i) = { s_j \in Nei(s_i) \mid s_j \in CO }
\tag{6}
$$
Active node and failure node: the active node refers to the energy将感知数据直接或间接传输到簇头CH。相反,无法与簇头通信的节点称为失效节点。
4 提出的FTCD协议
FTCD协议中的三个通信实体。就是基站、簇头和传感器节点
基站周期性地广播Hello消息,并根据接收信号强度确定到基站的距离和簇头。所提出的FTCD协议主导分为两个阶段:初始阶段和数据处理阶段。在初始阶段,形成不同的聚类。在数据处理阶段,主要进行数据感知和传输[6]。数据处理阶段被划分为多个固定时隙轮次。在每一轮中,簇头接收簇成员感知的数据,对其进行融合,然后采用分布式路由算法将数据传输到基站,如图2所示。
4.1 初始阶段
在初始阶段,簇头CH周期性地向邻近区域广播Hello消息,其中涵盖簇头ID、剩余能量和到基站的距离。假设仅能接收到来一条Hello消息,则表明该传感器节点被至少一个簇头覆盖。假设在指定时间内未接收到任何Hello消息,则表明 $ s_i $ 未被任何簇头覆盖,即 $ s_i \in UnCO $。
如果 $ s_i \in CO $,$ s_i $ 可能会接收到多个HELLO消息,表明它们位于多个簇头CH的覆盖区域内。在此环境中,$ s_i $ 必须选择一个簇头 $ ch $ 作为其领导者。在选择过程中,需考虑簇头的剩余能量、到簇头的距离以及簇头与基站之间的距离,将这些因素融合为一个指标 $ CHco(s_i, ch_r) $,它表示节点 $ s_i $ 选择簇头 $ ch_r $ 作为自身簇头的增益,$ ch_r \in ComCH(s_i) $。选择增益值最大的簇头作为最终的簇头。根据公式(7)计算增益的增加量。
$$
CHco(s_i, ch_r) = \frac{E_{Residual}(s_i)}{d(s_i, ch_r) \times d(ch_r, BS)}
\tag{7}
$$
根据公式(7),每个簇头 $ ch_r $ 的增益被计算,然后选择增益最大的簇头,如方程(8)所示。
$$
ch = \underset{ch_r \in ComCH(s_i)}{\mathrm{Max}} \, CHco(s_i, ch_r)
\tag{8}
$$
一旦簇头被选定,传感器节点向其发送一个JOIN_REQ消息。簇头接收到请求后,将该节点作为自己的成员。
倘若 $ s_i \in UnCO $,$ s_i $ 未被任何簇头覆盖。在此环境中,$ s_i $ 广播HELLO消息以提供协助。注意公式(6),$ s_i $ 随后从 $ Baup(s_i) $ 集合中选择一个节点作为连接簇头的中间转发节点。如果 $ Baup(s_i) \neq \phi $,则选择一个节点作为连接簇头的中间节点。在选择过程中,主要考虑传感器节点的能量,即选择剩余能量最大的节点,如公式(9)所示。
$$
s_j = \underset{s_j \in Baup(s_i)}{\mathrm{Max}} \, E_{Residual}(s_j)
\tag{9}
$$
根据上述分析,初始阶段的簇形成算法如图3所示。
4.2 数据处理阶段
簇头CH构成了重要的传输线路网络。在选择下一跳转发节点时,簇头CH充分考虑了簇头能量、与基站的距离以及跳数。因此,建立了增益函数 $ Cost(ch_i, ch_k) $,该函数表示 $ ch_i $ 选择 $ ch_k $ 作为下一跳的增益,如公式(10)所示。
$$
Cost(ch_i, ch_k) = \frac{E_{Residual}(ch_k)}{d(ch_i, ch_k) \times d(ch_k, BS)}
\tag{10}
$$
$ ch_i $ 选择增益最大且距离基站跳数最少的簇头作为下一跳的转发节点,如公式(11)所示。
$$
ch_k = \underset{ch_k \in Com(ch_i)}{\mathrm{Max}} \, Cost(ch_i, ch_k) \quad \text{subject to} \quad HCou(ch_k) < HCou(ch_i)
\tag{11}
$$
4.3 容错分析
在数据处理阶段,由于能量耗尽等原因,簇头可能失效。一旦检测到失效的簇头,该簇头的成员节点将广播HELP消息。假设传感器节点 $ s_i $ 广播HELP消息,该消息被簇头 $ ch_k $、$ ch_k \in ComCH(s_i) $ 中的成员节点 $ s_j $ 以及 $ s_j \in Nei(s_i) $ 接收,并回复RELP消息。如果传感器节点 $ s_i $ 收到来自 $ s_j $、$ s_j \in CO $ 的 RELP消息,则更新 $ Baup(s_i) $。容错处理算法的流程图如图4所示。
5 总结
为了解决无线传感器网络中的数据传输问题,提出了FTCD路由。FTCD路由借鉴了基于簇的分布式路由的思想,并充分考虑了簇头错误的情况。在初始阶段,簇头先广播HELLO消息,传感器节点计算选择不同簇头的增益。增益函数融合了传感器节点与簇头之间的距离、簇头的剩余能量以及簇头到基站的跳数信息。在数据处理阶段,根据簇头的剩余能量和距离构建到基站的最佳路径。此外,FTCD路由充分考虑了簇头错误情况,并提出了容错处理算法。
之后,将对基于簇的路由机制进行进一步研究,并将其扩展到任何分布式路由协议,以提高路由协议的性能。
浙公网安备 33010602011771号