掌桥专利:专业的专利平台
掌桥专利
首页

基于层级与状态的水下广播传输方法

文献发布时间:2023-06-19 11:45:49


基于层级与状态的水下广播传输方法

技术领域

本发明涉及水下广播技术领域,具体地说,涉及一种基于层级与状态的水 下广播传输方法。

背景技术

水声信道误码率高,通常在10

在分层的网络协议设计模型中,每一层协议是为其上层协议提供低层的传 输服务功能的,水下传感器网络的MAC协议则为包的路由转发提供信道访问控 制,即协调多个节点如何公平高效地使用带宽有限的水声共享信道资源。在水 下传感器网络中,数据包总是沿着从水下传感器节点到水面Sink节点的方向传 输。UWSNs包路由分为单播路由和广播路由两类。采用单播路由时数据包在传 输过程中总是由上一跳节点(或源节点)选择决定单个的下一跳节点,并将数 据报文路由转发至所选的下一跳节点,即只使用最佳路由进行数据传输。由于 这些单播路由通常需要一个冲突避免的水声网络MAC机制为其提供信道访问 控制服务,国内外学者针对UWSNs提出了多种冲突避免的单播MAC协议。然 而在广播路由协议中,接收节点需要自行判断自己是否为收到的报文执行路由 转发,因此,采用广播路由时报文在传输过程中沿多条路径冗余转发。广播路 由同样需要冲突避免的水声网络MAC机制为其提供信道访问控制服务,然而采 用广播路由时由于发送节点并未明确给出下一跳路由节点,使得那些适用于单 播路由的水下冲突避免MAC协议(例如基于RTS/CTS握手的MAC机制)不 能应用于广播路由传输,水下广播路由传输只能选择使用随机访问MAC机制(例如ALOHA和时隙ALOHA协议)。在基于随机访问的MAC协议中,发送 节点不经过任何信道协调过程就发送数据包,适用于少量较零星流量负载的网 络,但随着流量负载的增大,随机访问的MAC协议很容易产生包的冲突,这会 使得低带宽、长延时的UWSNs在流量负载较大时产生大量的冲突与重传,从而 降低信道利用率和能量效率。

发明内容

本发明的内容是提供一种基于层级与状态的水下广播传输方法,其能够克 服现有技术的某种或某些缺陷。

根据本发明的基于层级与状态的水下广播传输方法,其包括以下步骤:

一、节点发送数据;

二、判断所有邻居节点是否全部不在“接收状态”,若是,进行下一步,若 否,则退避,重新判断邻居节点状态;

三、判断上层邻居节点是否有“未知”或“发送避免”状态,若是,进行 下一步,若否,则退避,重新判断邻居节点状态;

四、广播数据第一帧;

五、收到第一帧ACK;

六、广播剩余N-1帧,并开启超时计时器;

七、计时期间收到最后一帧ACK;

八、判断包链中的数据帧是否被完整接收,若是,进行下一步,若否,则 重传丢失数据帧;

九、发送节点广播“发送结束”控制帧;

十、邻居节点广播“接收结束”控制帧。

作为优选,一个包链由N个数据帧组成的,N个数据帧的编号由大到小进 行排序,称为帧序号。第一帧序列号为N,第二帧序列号为N-1,以此类推排序, 最后一帧序列号为1。

作为优选,包链在信道中传输时,首先广播发送包链中的第一帧,每一个 邻居节点收到第一帧后均需立即回复携带第一帧序列号的ACK给发送节点,发 送节点收到来自任意一个上层邻居节点的ACK后再将包链中剩余的N-1个帧先 后广播发送出去,每一个上层邻居节点接收到包链中最后一帧后立即回复携带 包链中被正确接收的帧序列号的ACK给发送节点;发送节点根据帧序列号判断 包链中的数据帧是否被完整接收,将没有接收成功的数据帧重传,形成一个子 包链后继续转发,直至传输成功或重传次数超限而失败。

作为优选,当听到包链中的第一帧时,每一个听到的节点需立即向发送节 点回复一个ACK确认帧,当发送节点成功地传输了一个包链中所有的数据帧时, 也就是说,该发送节点收到一个来自其上层邻居的ACK,确认了包链中所有帧 都被成功接收之后,该发送节点发送一个帧类型字段为“10”控制帧,指示发 送结束并进入到发送避免阶段;收到该控制帧的每一个邻居节点发送一个帧类 型字段为“11”控制帧,指示接收结束。

作为优选,节点通过侦听可以学到其邻居节点的实时状态;当听到一个帧 类型字段为“00”的数据帧,且该帧序号大于1时,则发出该数据帧的这个邻 居节点的状态为“发送”;当听到一个帧类型字段为“01”的ACK帧,且确认 的帧序号大于1时,则发出该ACK的节点状态为“接收”;当听到一个帧类型 字段为“10”的控制帧时,则这帧的发送节点状态为“发送避免”;当听到一个 帧类型字段为“11”的控制帧时,则这帧的发送节点状态为“从接收转换为未 知”。

作为优选,采用LSPB-MAC协议发送包链,当节点发送一个包链中序号最 大或最小的帧之后,发送节点启动超时计时器,在该计时器期满之前等待接收 相应的ACK帧,并根据收到的ACK判断传输过程中是否有数据帧丢失。

作为优选,LSPB-MAC协议中,设所有节点具有相同的通信范围为R,声 信号在水中传播的速度为V,因此,数据最大传播延时可以计算为

T

进一步,超时计时器T

T

作为优选,水下传感器网络分层拓扑中G=(V,F),其中V是节点集合,F是 传输质量超过一定阈值的点到点链路集合,即:

F={(i,j)|d

其中,d

所述节点i的邻居节点集合可用以下式子表示:

N(i)={j|j∈V∧(i,j)∈F};

设节点i与节点j之间传输数据帧所需要的时间T

T

则节点j在T

D

显然,D

LSPB-MAC协议中,节点i首先从邻居表中查看邻居节点的状态信息,再 根据相应的机制判断是否进行广播发送数据;节点链路间都是判断符合转发条 件后才广播转发,最终到达目的节点sink,则整个传输完成。

本发明解决了水下广播路由传输使用随机访问MAC机制导致的较大冲突 问题。本发明在不使用握手机制的基础上,通过感知邻居节点的状态,进一步 基于邻居节点状态进行数据传输,在避免冲突的同时,提高了带宽资源紧缺的 水声信道利用率。

本发明可直接为文献等分层广播路由提供信道接入控制,也可以修改后为 其它广播路由提供共享信道访问控制。

附图说明

图1为实施例1中一种基于层级与状态的水下广播传输方法的流程图;

图2为实施例1中水下三维传感器网络模型;

图3为实施例1中包链组成结构;

图4为实施例1中数据传输时间图;

图5为实施例1中接收-接收碰撞示意图;

图6为实施例1中发送-接收碰撞示意图;

图7为实施例1中邻居“接收状态”碰撞示意图;

图8为实施例1中上层邻居“发送状态”碰撞示意图;

图9为实施例1中网络布局图。

具体实施方式

为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应 当理解的是,实施例仅仅是对本发明进行解释而并非限定。

实施例1

如图1所示,本实施例提供了一种基于层级与状态的水下广播传输方法, 其包括以下步骤:

一、节点发送数据;

二、判断所有邻居节点是否全部不在“接收状态”,若是,进行下一步,若 否,则退避,重新判断邻居节点状态;

三、判断上层邻居节点是否有“未知”或“发送避免”状态,若是,进行 下一步,若否,则退避,重新判断邻居节点状态;

四、广播数据第一帧;

五、收到第一帧ACK;

六、广播剩余N-1帧,并开启超时计时器;

七、计时期间收到最后一帧ACK;

八、判断包链中的数据帧是否被完整接收,若是,进行下一步,若否,则 重传丢失数据帧;

九、发送节点广播“发送结束”控制帧;

十、邻居节点广播“接收结束”控制帧。

考虑到节点在水下具有移动性,为了使仿真结果更适应于拓扑动态变化的 水下环境,本文考虑的是如图2所示的三维水下无线传感器网络模型。该模型 是由水面上的sink节点和部署在水下的普通传感器节点构成。sink节点配置有 水声调制解调器和RF调制解调器,sink节点利用水声调制解调器和水下节点进 行通信;利用RF调制解调器与水面上的节点和水面中继站等进行射频通信。该 协议仅考虑sink节点和水下传感器节点之间的通信。如果源节点发出的一个数 据包能够被sink节点成功接收,我们认为该数据包成功传输。水下传感器节点 具有数据采集和相关处理技术,水下节点将获取到的水下的物理、生物现象以 及声学信息等参数转换成电信号,通过A/D接口电路变成数字信号后送给节点的处理器,节点的微处理器再将接收到的数据进行处理,并根据相关的网络协 议对处理后的数据进行打包,然后以水声多跳方式传输至水面sink节点。

为了更好的研究UWSNs中的数据转发问题,对该网络模型设定如下:(1) sink节点部署在监测范围内的水面上,所有水下传感器节点随机部署在三维区域 中。(2)水下传感器节点具有相同的初始能量、发射功率、传输半径等。(3) 每个水下传感器节点的通信地位相等,都有可能成为接收节点和发送节点。

在LSPB-MAC协议中,为避免冲突,减少重传,同时考虑到传输效率和信 道占用的公平性,基于以下规则实施信道访问控制:

(1)节点在一个数据传输阶段中最多允许传输一个数据包链,每个包链最 多包含N个数据帧,从而避免了信道被一个节点长时间占用。

(2)同一个节点的两个数据传输阶段的间隔最小为T

T

其中,RTT为数据包的最大往返时延。

(3)每个包链包含多个数据帧,LSPB-MAC会对每个包链中的数据帧编序, 并按序号从大到小的顺序传输。

LSPB-MAC协议采用包链的传输机制,当节点成功占用信道后,会将属于 同个包链的所有帧进行传输。包链的组成如图3所示,一个包链由N个数据帧 组成的,N个数据帧的编号由大到小进行排序,称为帧序号。第一帧序列号为N, 第二帧序列号为N-1,以此类推排序,最后一帧序列号为1。包链在信道中传输 时,首先广播发送包链中的第一帧,每一个邻居节点收到第一帧后均需立即回 复携带第一帧序列号的ACK给发送节点,发送节点收到来自任意一个上层邻居 节点的ACK后再将包链中剩余的N-1个帧先后广播发送出去,每一个上层邻居 节点接收到包链中最后一帧后立即回复携带包链中被正确接收的帧序列号的ACK给发送节点。发送节点根据帧序列号判断包链中的数据帧是否被完整接收, 将没有接收成功的数据帧重传,形成一个子包链后继续转发,直至传输成功或 重传次数超限而失败。

每个数据帧的格式如表1所示,其中,帧序号用于标记该数据帧在包链中 的顺序号,立即确认字段用于表示接收节点是否立即回复ACK确认帧,“0”表 示暂不回复,“1”表示立即回复。本实施例提出的协议中,需要对包链中的第 一帧和最后一帧立即回复。

表1数据帧格式

采用LSPB-MAC协议的节点基于邻居节点的状态决定是否广播发送包链。 在UWSNs中,邻居节点的状态会随着数据的传输而动态变化,因此,采用 LSPB-MAC协议的节点首先需要获取邻居节点的实时状态。

为了便于邻居节点获取实时状态,当听到包链中的第一帧时,每一个听到 的节点需立即向发送节点回复一个ACK确认帧,ACK控制帧的部分信息如表2 所示。从表2可以看出,ACK帧类型字段值为“01”,表示发出该帧的节点进入 接收状态。

表2 ACK控制帧信息

当发送节点成功地传输了一个包链中所有的数据帧时,也就是说,该发送 节点收到一个来自其上层邻居的ACK,确认了包链中所有帧都被成功接收之后, 该发送节点发送一个帧类型字段为“10”控制帧,指示发送结束并进入到发送 避免阶段。收到该控制帧的每一个邻居节点发送一个帧类型字段为“11”控制 帧,指示接收结束。

从以上传输机制不难看出,节点通过侦听就可以学到其邻居节点的实时状 态。例如当听到一个帧类型字段为“00”的数据帧,且该帧序号大于1时,则 发出该数据帧的这个邻居节点的状态为“发送”;当听到一个帧类型字段为“01” 的ACK帧,且确认的帧序号大于1时,则发出该ACK的节点状态为“接收”; 当听到一个帧类型字段为“10”的控制帧时,则这帧的发送节点状态为“发送 避免”;当听到一个帧类型字段为“11”的控制帧时,则这帧的发送节点状态为 “从接收转换为未知”。获取邻居节点的状态的伪代码如算法1所示。

采用LSPB-MAC协议发送包链时,当节点发送一个包链中序号最大或最小 的帧之后,发送节点启动超时计时器,在该计时器期满之前等待接收相应的ACK 帧,并根据收到的ACK判断传输过程中是否有数据帧丢失。

在该协议中,我们假设所有节点具有相同的通信范围为R,声信号在水中传 播的速度为V,因此,数据最大传播延时可以计算为

发送节点广播数据帧所需时间包括数据帧的传输时延T

发送节点S广播数据的同时开启自己的超时计时器,并侦听在计时期间是 否收到节点R回复的ACK帧。若在自己的计时器未到期时收到节点R回复的 ACK帧,且ACK中携带节点S所传输的所有数据帧序列号时,则表示数据传 输成功。否则,需要重传。超时计时器时间应该设置的足够大,保证发送节点 能够成功接收到上层邻居节点回复的ACK帧,此处数据的传播时延设置为最大 传播时延。因此,基于最大传播时延的超时计时器设置可以用数学表达式表示 为:

T

进一步,超时计时器T

T

系统模型为:水下传感器网络分层拓扑中G=(V,F),其中V是节点集合,F 是传输质量超过一定阈值的点到点链路集合,即:

F={(i,j)|d

其中,d

所述节点i的邻居节点集合可用以下式子表示:

N(i)={j|j∈V∧(i,j)∈F};

设节点i与节点j之间传输数据帧所需要的时间T

T

则节点j在T

D

显然,D

LSPB-MAC协议中,节点i首先从邻居表中查看邻居节点的状态信息,再 根据相应的机制判断是否进行广播发送数据;节点链路间都是判断符合转发条 件后才广播转发,最终到达目的节点sink,则整个传输完成。

“接收-接收”碰撞

传统的地面传感器网络,以电磁波作为通信载体,其传播时延非常小,几 乎可以忽略,因此在研究时仅考虑发送时间的不同,认为只要发送节点发送数 据包的时间不同,到达接收节点处的时间也会不同(也可以认为数据包到达接 收节点的时间仅与发送数据包的时间有关),从而通过调度不同发送节点在不同 的时间发送来避免这些包在同一个节点处碰撞。但是,如图5所示,声信号在 水下的传播延时较大,不可以忽略不计,水声信道被多个节点共享使用,即使 多个邻居节点不在同一时间向同一个接收节点发送数据包,也会因为其空间位 置的不同,导致在接收节点处造成数据包的碰撞,使接收节点无法正确接收数 据包。这种“接收-接收”碰撞是由于水下环境中时间和空间的二维不确定性造 成的。

水下环境的动态拓扑增加了UWSNs的时空不确定性,因此在设计MAC协 议的碰撞避免算法时,对网络拓扑中节点状态及移动性等实时情况进行掌握会 减小数据包发生碰撞的概率。

“发送-接收”碰撞

由于成本原因,UWSNs节点通常工作在半双工模式,一个处在发送状态的 节点无法接收数据,反之亦然。如图6所示,当发送节点S发送数据包给它的邻 居节点R

为了保证数据可靠传输,水声信道中数据包碰撞后,需要进行重新发送, 重传过程中会消耗额外的能量,随着重传次数的增加,其能量开销越大。重要 的是,过多的重传会加重网络负担,进一步增加包的碰撞。因此,必须采用一 定的碰撞避免机制减少信道中的碰撞。为了解决信道中的碰撞问题,目前最常 用的是通过采用RTS/CTS握手机制来避免信道中的碰撞。

传统基于握手的MAC协议,虽然通过RTS/CTS等控制包的交互动态协调 节点间的传输,减少了数据的碰撞。但是在水声网络中所传输的优化后的数据 包大小为100-200个字节,而RTS/CTS控制包的长度就有几十个字节,相对于 数据包来说,RTS/CTS包的长度并不能忽略,对于带宽窄、延时大的UWSNs 来说,RTS/CTS握手机制的使用增加了端到端的延时,降低了带宽利用率和网 络吞吐量。因此,本实施例提出一种基于层级与状态感知的水下广播MAC协议, 能够在很大程度上避免传统的RTS/CTS握手机制,提高信道利用率和网络吞吐 量,减少了不必要的时间消耗及能量消耗。

基于邻居节点状态的碰撞避免机制

在本实施例中,为了避免以上两种冲突,当节点i需要发送数据包时,首先 查看邻居表中邻居节点的实时状态,只有当本次发送不会干扰任何一个邻居节 点已经进行的其他接收,并且在那些预期的(路由意识的)下一跳候选转发节 点中,存在不在发送状态的节点时,节点i才会尝试发送一数据帧。这样就会在 有效避免前述的“接收-接收”碰撞和“发送-接收”碰撞的同时,提高信道的使 用效率。

接下来我们基于层级的广播路由协议,分析LSPB-MAC协议是如何避免“接 收-接收”碰撞和“发送-接收”碰撞的。采用基于层级的广播路由协议时,数据 包总是沿着从高层级通过低层级最后到sink节点的路径传输。初始化阶段完成 后每个节点都维护着一张动态邻居表,如表3所示,其中包括邻居节点的ID、 层级、状态信息等,状态字段记录了邻居节点的实时状态,邻居节点状态分为 “发送状态”、“接收状态”、“未知”和“发送避免”状态。其中,“发送状态” 是指邻居节点正在发送数据,用“0”表示;“接收状态”是指邻居节点正在接收数据或即将进行数据的接收,用“1”表示;而“未知状态”是指节点状态不 清楚,也可能是空闲的,用“2”表示;“发送避免”是指邻居节点刚完成数据 的发送,进入发送避免阶段,用“3”表示。

表3节点邻居表

我们采用如图7所示的分层网络拓扑,分析邻居节点状态对数据传输的影 响。以发送节点S为中心,层级值比节点S小于1的邻居节点定义为节点S的 上层邻居节点。在基于层级的路由协议中,节点发送数据,期望被它的上层邻 居节点成功接收并转发。如图7所示拓扑中的所有节点以广播的形式进行数据 的转发,节点S广播的数据帧能够被它所有邻居节点(N0、N1、N2、N3、N4、 N5)接收。当有邻居节点(图中N1)已处于“接收状态”,即节点N1正在接收 其他节点(N6)发送的数据帧,若此时发送节点S广播数据帧,则该帧会在该 邻居节点N1处发生碰撞,导致该邻居节点N1无法正确接收其他节点发送的数 据。因此,当节点S的邻居节点处于“接收状态”时,节点S不广播发送数据 帧,才能够在很大程度上减少信道中的碰撞。

发送节点S广播数据帧被上层邻居节点正确接收并回复携带所传输包链中 的所有帧序列号,我们认为此次传输成功。经以上分析可得,当所有邻居节点 不在“接收状态”时,节点广播转发的数据帧不会产生碰撞。如图8所示,若 节点S的邻居节点均不在“接收状态”,但上层邻居节点N0和N5都处于“发 送状态”正在发送数据,则上层邻居节点都不会收到S广播的数据帧,导致数 据帧传输失效。因此,除了其他邻居节点均不能处于“接收状态”,还要考虑上 层邻居节点的状态。上层邻居处于“发送状态”时,发送节点S不广播发送数 据,才可以在一定程度上避免信道中的碰撞。

因此,综上分析得出,当节点有数据帧需要发送时,根据邻居节点的状态 信息决定是否进行数据帧的广播,只有满足该发送节点的所有邻居节点都不在 “接收状态”,并且上层邻居节点不都在“发送状态”时,(即存在任意一个上 层邻居节点的状态为“未知”或“发送避免”),节点才会广播,将数据进行转 发。经过多跳逐层转发,最终将数据传输给sink节点。

性能分析

设网络布局如图9所示。在这个图中,发送节点S总共有N个邻居节点, 其中有M个是上层邻居节点,图中M=2(分别为N

信道利用率是评估MAC协议性能非常重要的参数,信道利用率是传输有效 数据帧的时间T

总时间T

在LSPB-MAC协议中,当发送节点完成对邻居节点层级的判断并满足转发 条件后,即所有邻居节点不在“接收状态”,并且存在任意上层邻居节点状态为 “未知”或者“发送避免”,发送节点会广播发送数据的第一帧data帧给它的邻 居节点。假设发送节点S广播data帧到各个邻居节点所用的时间为:

T=T

其中T

LSPB-MAC协议中数据传输成功需要分为两部分考虑,第一部分是数据第 一帧data帧成功广播;第二部分是收到任意上层邻居节点回复数据第一帧的 ACK帧,将剩余的N-1帧全部广播,并在计时期间内侦听上层邻居节点回复最 后一帧的ACK,若ACK携带的帧序列号中没有缺失,则表明数据转发成功。 假设节点S在T

若发送节点S的邻居节点在T时间内存在“接收状态”,即该邻居节点正在 接收其他节点发的data帧,此时发送节点广播的data帧会影响到该节点的接收。 因此,发送节点的邻居节点在T时间内不会由“未知”、“发送避免”或“发送状 态”切换为“接收状态”的概率为:

其中,Q为节点S的任意一个邻居节点的邻居节点(该节点与节点S互为 隐藏终端)的数量。

若存在任意一个上层邻居节点在T时间内状态由“未知”或“发送避免”切 换为“发送状态”,此时该节点发送的数据帧就会与发送节点广播的data帧造成 信道中的碰撞;则上层邻居节点在T时间内不会由“未知”或“发送避免”状态 切换为“发送状态”的概率(即所有上层邻居节点在T时间内都不发送数据第一 帧data帧的概率)为:

定义P

P

data帧传输成功后,节点S将包链中剩余的N-1帧全部广播发送并开启超 时计时器,在计时期间内侦听上层邻居节点是否回复最后一帧的ACK,若计时 期间没有侦听到有一个上层邻居节点回复ACK帧,则表示数据在信道中发生碰 撞没有传输成功。在给定误码率(BER)的情况下,传输包含L比特数据包出 现错误的概率可以表示为:

P

数据传输失败是指节点S将数据广播后在计时期间内没有侦听到任意一个 上层邻居节点回复ACK帧,因此在这段时间内数据传输失败的时间可以表示为:

T

其中,T

发送节点收到上层邻居节点回复的最后一帧的ACK,并根据ACK中携带 的帧序列号判断所传输包链中的数据帧是否被上层邻居节点正确接收,若ACK 携带的帧序列号中有缺失,则说明缺失序列号对应的数据帧丢失,需要重传。 假设在信道中传输包链中N-1帧的时间为T

其中,N为重传的次数,T

其中T为广播data帧所需要的传输时延与传播时延。因此,数据在信道中成 功传输的时间为:

T

当节点完成一个包链的传输时,该节点进入发送避免阶段,发送避免的时 间(即退避时间)设置为T

T

信道中的空闲时间为:

其中,每个节点平均每1/λ秒产生一个包。

由公式可以得出,信道利用率为:

其中,T

因此可以得出,成功传输数据帧的时间在整个数据传输过程中所占的比重 越大时,其信道利用率也越好,信道利用率与传输有效数据的时间成正相关。 而传输数据的有效时间与数据成功传输的概率有关,即与接收节点的状态有直 接关系。该协议对接收节点状态进行判断,很大程度上避免了隐藏终端问题, 减少了信道中的碰撞,从而提高了信道利用率。

以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附 图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以, 如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不 经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的 保护范围。

相关技术
  • 基于层级与状态的水下广播传输方法
  • 基于层级与状态的水下广播传输方法
技术分类

06120113042631