一种用于水下声学网络的可靠数据传输方法及系统与流程

文档序号:15928925发布日期:2018-11-14 01:25阅读:184来源:国知局

本发明属于水下声学网络领域,尤其涉及一种用于水下声学网络的可靠数据传输方法及系统。

背景技术

水下声学网络(underwateracousticcommunicationnetworks,uan)具有长传播延迟,信道易出错和基于半双工声调制解调器通信等特点。这些特征向uan中的可靠数据传输提出了挑战。具体来说,我们考虑一个多跳弦拓扑网络,其中有一个发送方和一个接收方。这种类型的uan广泛应用,例如从底层节点发送重要数据到水面网关站点。

在传统的端到端和逐跳可靠数据传输过程中,由于信道易出错,重传概率高,从而导致传输效率较低。由于水下环境中的传播延迟较大,每次重传都导致端到端延迟显著增长。

因此,需要提供一种用于水下声学网络的可靠数据传输方法来解决现有技术的不足。



技术实现要素:

为了解决现有技术存在的问题,本发明提供了一种用于水下声学网络的可靠数据传输方法及系统。

一种用于水下声学网络的可靠数据传输方法,包括:

获取水下声学网络节点间数据传输的当前误包率和历史数据传输的平均误包率;

根据所述当前误包率和平均误包率计算理论误包率;

根据所述理论误包率计算编码率;

利用所述编码率进行节点间的数据传输。

进一步的,根据所述当前误包率和平均误包率计算理论误包率,包括:按下式所示计算所述理论误包率:

per=(1-α)×peravg+α×perinst

其中,α为系统参数;peravg为历史数据传输的平均误包率;perinst为当前误包率。

进一步的,根据所述理论误包率计算编码率,包括:

按下式所示计算所述编码率:

其中,per为理论误包率。

进一步的,利用所述编码率进行节点间的数据传输,包括:

获取待传输的数据分组;

利用所述编码率对数据分组进行编码,得到编码后的数据分组;

将所述编码后的数据分组传输至下一个节点。

进一步的,利用所述编码率进行节点间的数据传输,还包括:

确定节点间的时隙长度。

进一步的,按下式所示计算所述时隙长度:

其中,r为编码率;k为数据分组的大小;l为数据分组的长度;r为调制解调器的声比特率;d为两节点间的距离;v为水中的声速。

进一步的,所述方法还包括:

传输结束后,接收下一个节点返回的应答。

进一步的,所述接收下一个节点返回的应答,包括:

若所述下一个节点将所述编码后的数据分组恢复,则返回命令正确应答;

否则,返回命令错误应答。

一种用于水下声学网络的可靠数据传输系统,包括:

获取模块,用于获取水下声学网络节点间数据传输的当前误包率和历史数据传输的平均误包率;

第一计算模块,用于根据所述当前误包率和平均误包率计算理论误包率;

第二计算模块,用于根据所述理论误包率计算编码率;

传输模块,用于利用所述编码率进行节点间的数据传输。

进一步的,还包括:

应答模块,用于数据传输结束后,接收下一个节点返回的应答。

本发明提供的技术方案与最接近的现有技术相比具有如下优点:

本发明提供的技术方案通过历史平均误包率和当前误包率计算理论误包率,然后根据理论误包率计算编码率,通过此编码率进行数据传输,使得数据可以达到很高的交付率,使得数据传输的延时小。

本发明提供的技术方案采用gf随机线性编码(rlc),其几乎可以100%地保证k’个编码的分组能够恢复k个数据分组。

附图说明

图1是本发明方法流程图;

图2是本发明实施例中分段数据可靠传输方法中的三种碰撞示意图;

图3是本发明实施例中无碰撞的多端同时发送示意图;

图4是本发明实施例中多跳协调示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种用于水下声学网络的可靠数据传输方法,包括:

获取水下声学网络节点间数据传输的当前误包率和历史数据传输的平均误包率;

根据所述当前误包率和平均误包率计算理论误包率;

根据所述理论误包率计算编码率;

利用所述编码率进行节点间的数据传输。

优选的,根据所述当前误包率和平均误包率计算理论误包率,包括:按下式所示计算所述理论误包率:

per=(1-α)×peravg+α×perinst

其中,α为系统参数;peravg为历史数据传输的平均误包率;perinst为当前误包率。

优选的,根据所述理论误包率计算编码率,包括:

按下式所示计算所述编码率:

其中,per为理论误包率。

优选的,利用所述编码率进行节点间的数据传输,包括:

获取待传输的数据分组;

利用所述编码率对数据分组进行编码,得到编码后的数据分组;

将所述编码后的数据分组传输至下一个节点。

优选的,利用所述编码率进行节点间的数据传输,还包括:

确定节点间的时隙长度。

优选的,按下式所示计算所述时隙长度:

其中,r为编码率;k为数据分组的大小;l为数据分组的长度;r为调制解调器的声比特率;d为两节点间的距离;v为水中的声速。

优选的,所述方法还包括:

传输结束后,接收下一个节点返回的应答,若所述下一个节点将所述编码后的数据分组恢复,则返回命令正确应答;

否则,返回命令错误应答。

具体如下所示:

当发送方有机会发送一个含有k个数据分组的块时,会产生k’=rk个使用gf(256)随机线性编码的分组,其中r被定义为其当前编码率。之后,发送方将发送k’个编码分组到接收方,并且由于信道的擦除,一些分组可能会丢失。如果接收方能够恢复k个数据分组,它将发回命令正确应答(ack)。否则,它将发回指示数据恢复失败的命令错误应答(nack)。ack和nack都包括关于在最后传输中在接收机处接收到多少个分组的信息,并且因此发送者可以在接收到ack或nack时更新其误包率per信息,从而更新其编码率r。在接收到nack时,发送者将根据更新的编码率r和在接收机仍然需要的编码分组的数量发出更多的编码分组。此过程将一直持续到发送方接收到ack。使用选择重传,可以实现一跳间的可靠性。

通过使用gf(256)随机线性编码,编码率r的设置是很简单的。当发送方接收到ack或者nack的时候,它会更新本跳的per信息,并将r设置为如果发送方发送了个编码分组,接收方能够接收到k个编码数据的概率是很大的。由于gf(256)随机线性编码的强大功能,在接收端可以恢复k个数据分组。用这种方式,我们可以在很大的概率上保证发送方发送的个编码分组足够让接收方恢复原始k个数据分组,从而在最大限度上降低了一跳之内的传播延迟。

在发送方更新per信息的方法是结合当前per和历史平均per。比如使用公式:per=(1-α)×peravg+α×perinst,这里的α是一个系统参数,peravg表示历史平均per,perinst表示刚刚从ack或nack获取的当前最新per。在我们的测试过程中发现,使用当前per比使用平均per的效果更好,因为当前per更能准确地体现一跳内的目前per状态。

如图2所示,其中圆圈代表节点。为了允许多个节点同时发送而不引起冲突,发送节点之间至少需要两跳间隔。图3进一步说明,如果节点1和节点3同时进行发送,则会在节点2发生监听冲突。但是,如果节点1和节点4同时发送,则不会发生冲突。

引入了碰撞避免id(caid)的概念,并将相同的caid分配给彼此间隔两跳的节点。因为具有相同caid的节点是两跳间隔,所以我们实际上只需要三个不同的caid来覆盖所有节点,用2,1,0三种不同的caid模式可以覆盖整个网络。

基于同一caid的节点同时发送的思想,在本发明中我们设计了一个基于时隙的多跳协调方案,如图4所示。在前三个时隙中,由于节点4,5和6没有数据块要发送,一个时隙只有一个节点在发送。从第4个时隙开始,有两个caid相同的节点在此时隙内发送。例如,在第4时隙,节点4发送块j-1,而节点1正在发送块j。如果我们增加网络中的节点数量,则在一个时隙内可以有3个或更多个节点同时发送。用这种方式,在如图4所示的7个节点的网络中,从第6个时隙开始,每3个时隙将会产生一个传送到汇聚节点的新块。如果没有多跳协调,每6个时隙可以向汇聚节点传递一个新的块。因此,使用多跳协调方法,可以显著提高端到端吞吐量,并且不会发生冲突。

显然,多跳协调的效率很大程度上取决于每个节点的时隙长度ts。如果ts太小,则接收方无法在一个时隙内恢复数据块。因此,在接下来的2个时隙中,2个后续节点则没有数据要发送。这将总共浪费3个时间段。另一方面,如果ts太大,则在接收方恢复数据块并且在发送方接收到ack之后,一个时隙中的剩余时间就将被浪费。

使用编码率估计和gf(256)随机线性编码,我们保证了一次传输的编码分组的数量足以使接收方恢复一个数据块。因此,我们将ts设置得足够大以包含编码分组的传输以及从接收方到发送方传输ack的时间。这里,编码分组和ack的传输延迟包括传输延迟和传播延迟。

这里,r是编码率;k是数据块的大小;l是数据分组的长度;r是调制解调器的声比特率;d是一跳的距离;v是水中的声速。我们忽略数据分组的头部长度,并认为这里的ack的长度为1字节。

编码率r由per决定。由于ts对于每个节点是相同的,所以由网络中的最高per来决定ts的大小。然而,由于我们考虑了一个均匀的弦拓扑网络,所以所有的跳上的per都相互接近。由于我们在一开始的时候不了解网络中的per信息,因此在当前的实现中,我们需要预先运行一个程序来收集多跳的per信息并设置ts。将来,我们计划开发一种更为自适应的方案,根据网络中的per信息动态调整ts。

使用多跳协调,一个数据分组块可以在一个时隙内恢复。多个节点可以在一个时隙内同时发送,而不会引起冲突。以这种方式,可以大大提高端到端吞吐量。

基于相同的发明构思本发明还提供了一种用于水下声学网络的可靠数据传输系统,包括:

获取模块,用于获取水下声学网络节点间数据传输的当前误包率和历史数据传输的平均误包率;

第一计算模块,用于根据所述当前误包率和平均误包率计算理论误包率;

第二计算模块,用于根据所述理论误包率计算编码率;

传输模块,用于利用所述编码率进行节点间的数据传输。

优选的,还包括:

应答模块,用于数据传输结束后,接收下一个节点返回的应答。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1