一种基于分批稀疏码的多跳网络通信方法和系统与流程

文档序号:16886480发布日期:2019-02-15 22:41阅读:207来源:国知局
一种基于分批稀疏码的多跳网络通信方法和系统与流程

本发明涉及多跳网络通信方法和系统,特别涉及一种基于分批稀疏编码的多跳网络通信方法和系统。



背景技术:

多跳网络通信是在无线传感器网络、水声通信网络和卫星网络等多个应用领域中的关键技术。在现有的水下无线通信技术中,水声信道的传输范围最长。然而,由于水声信道的路径损耗随传输距离呈指数增长,而有效带宽随着传输距离的增加而减小,实际的声学调制解调器的通信距离通常在2公里以内。实现高效、安全的远程(例如,数十公里)水下通信的一种方法是通过在源节点和目标节点之间添加多个中间节点来实现多跳传输。采用适当的多跳传输,每个相邻节点之间的带宽可以大于从源节点到目标节点的直接信道带宽,并且所有节点的总传输功率可以大大低于从源节点到目标节点的直接传输的总传输功率。

然而,对于高效的多跳网络通信(如媒体访问控制),还有许多挑战。由于无线通信链路的误码率高、传播延迟大等特点,使得无线通信链路中的丢包现象是不可忽视的,传统的重传和喷泉码等方案不能有效地解决丢包问题。当面对网络多跳次数比较大时现有的多跳无线网络通信解决方案出现低吞吐量和/或长时延的缺点。

由于每一跳上的丢包累积,仅通过中间节点进行转发是不奏效的。考虑由源节点、目标节点和连续连接的中间节点序列组成的线型拓扑网络,假设每个网络链路每单位时间可以发送一个包且丢包率为0.2,如果每个中间节点只转发接收到的包,具有l跳的线路网络的吞吐量为0.8l,即使l的数值很小,吞吐量也会以非常快的速度减小。例如当l=3吞吐量下降为0.512,当l=10时吞吐量下降为0.107。如果反馈是即时的、可靠的、无通信成本的,那么现有技术“跳间重传”就能完成上述线路网络的传输,但由于无线通信链路传输时延长、丢包率高、半双工等特点,使得跳间重传远未达到最优地解决以上缺点。在现有技术中本领域研究者使用逐跳前向纠错(fec)技术(包括喷泉码和随机线性码)解决跳间重传的反馈问题。逐跳前向纠错需要在每个中间节点上完全解码和重新编码,因此在每个跳中会形成额外的计算量和传输延迟。此外,每个中间节点需要缓冲所有接收到的编码包以进行解码,因此缓冲器大小至少是文件大小。

因此,需要一种能够实现较低的传输延迟、较低的计算量和更低的中间节点存储成本的多跳网络通信方法。



技术实现要素:

本发明的目的是解决现有技术的不足,提供一种基于分批稀疏编码的多跳网络通信方法,实现多跳网络中的高吞吐量、低延迟的数据传输。

为了实现上述目的,本发明提出一种基于分批稀疏码的多跳网络通信方法,包括以下步骤:s100,源节点中的传输层接收来自数据源的数据文件,每个数据文件包括多个数据包;s200,当接收到文件发送请求时,所述源节点中的传输层利用分批稀疏码中的外码对所述数据包进行编码以生成多个批,所述批包括多个编码包,所述批被发送至网络层;s300,当网络层接收到所述批中的包时检测当前节点是否为目的节点,如果不是目的节点,则进行步骤s400,如果是目的节点则进行步骤s500;s400,所述网络层对同一批中的包进行重编码,并将重编码的包发送至下一节点的网络层以返回执行步骤s300;s500,将包发送至目的节点中的传输层,所述目的节点中的传输层对接收到的批进行解码,以恢复所述数据文件。

优选地,步骤s100还包括将数据文件被分割成相等长度的数据包。

优选地,步骤s400还包括在重编码过程中应用系统重编码,其中在网络层接收到编码包之后,将接收到的编码包作为当前节点的重编码包,通过随机线性编码生成额外的重编码包,将所述额外的重编码包和接收到的编码包发送至当前节点的链路层。

优选地,本发明提出的方法还包括将中间节点传输的批的重编码包的数量设置为与源节点的重编码包的数量相同。

优选地,所述步骤s200中的分批稀疏码包括外码和内码,所述外码在节点的传输层中实现,所述内码在节点的网络层中实现,其中所述外码是矩阵喷泉码,所述内码包括中间节点上的随机线性编码。

优选地所述步骤s200中进行分批稀疏编码以生成多个批还包括以下子步骤:s210,对度分布ψ=(ψ1,...,ψk)进行采样并返回度di;s220,从所有的k个输入包中均匀随机选择di个输入包bi;s230,形成di×m的完全随机矩阵gi,由多个输入包生成的批xi表示为xi=bigi,其中m是批的大小。

优选地,所述步骤s500中对接收到的批进行解码还包括基于置信度传播算法进行解码,当基于置信度传播算法的解码停止时,将未解码的输入包标记为非活动的并作为已解码的包替换到所述批中,以恢复基于置信度传播算法的解码过程。

根据本发明的另一方面,提供了一种基于分批稀疏编码的多跳网络通信系统,包括数据源模块,用于向源节点发送数据文件,其中每个数据文件包括多个数据包;编码模块,用于在源节点中的传输层利用外码对所述数据包进行编码以生成多个批,所述批包括多个编码包,所述批被发送至网络层;重编码模块,用于在源节点和中间节点中对多个编码包进行重编码;存储模块,用于在每个节点中缓冲或存储编码包;解码模块,用于在目的节点中的传输层对接收到的批进行解码,以恢复所述数据文件。

本发明的有益效果为:在多跳网络中利用分批稀疏码,实现高吞吐量、低延迟数据传输,并且不需要跳间重传所需要的可靠传输,具有较低计算和存储成本等。

附图说明

图1示出了根据本发明一实施例的基于分批稀疏码的多跳网络通信方法的流程图。

图2示出了根据本发明一实施例的多跳无线网络示意图。

图3示出了根据本发明一实施例的各节点的结构分布示意图。

图4示出了根据本发明一实施例的基于分批稀疏码的多跳网络通信系统的模块图。

具体实施方式

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

参考图1,在本发明的一个或多个实施例中,本发明所公开的基于分批稀疏码的多跳网络通信方法包括以下步骤:源节点中的传输层接收来自数据源的数据文件,每个数据文件包括多个数据包;当接收到文件发送请求时,所述源节点中的传输层利用分批稀疏码中的外码对所述数据包进行编码以生成多个批,所述批包括多个编码包,所述批被发送至网络层;当网络层接收到所述批中的包时检测当前节点是否为目的节点,如果不是目的节点,则所述网络层对同一批中的包进行重编码,并将重编码的包发送至下一节点;如果检测到当前节点是目的节点,则将包发送至目的节点中的传输层,所述目的节点中的传输层对接收到的批进行解码,以恢复所述数据文件。

根据本发明的一个或多个实施例,本发明公开的方法应用于多跳网络通信,如图2所示,示出了一个多跳网络的模型。该网络具有l跳,其中节点v0是源节点和节点vl是目的节点。本发明的基于分批稀疏码的多跳网络通信方法包括在网络层和传输层中的运算,该方法是基于以下在下链路层和物理层上的假设:

·仅在连续节点之间存在直接通信链路,如图2中的网络,节点vi-1只与节点vi直接通信,i为1到l之间的正整数。

·每个网络链接传输同样长度的数据包。

·网络链接之间的传输不是可靠的,但所有的错误均可检测到,因此网络层只能对正确接收到的包进行处理。

·存在一个系统参数ε表示最大丢包率,在链接(vi,vi-1)上的丢包率εi≤ε。

基于以上假设,本发明公开的方法操作是独立于链路层和物理层上的操作,并且该方法的传输性能与该网络传输的包的平均数目相关。

根据本发明的一个或多个实施例,如图3所示,本发明的通信方法在传输层和网络层上执行包的传输。分批稀疏码(batchedsparsecode)简称bats码,包含外码和内码,其中外码是一个矩阵喷泉码并在传输层上实现,能够根据接收的数据包生成数目不限的多个批,每个批包含一定数目m的编码后的数据包(编码包);内码包括在中间节点上的线性随机编码并在网络层中实现,用于处理同一批中的所有包以处理每一跳发生的丢包现象。当m=1时,外码是喷泉码而在中间节点上的编码处理则转变成包发送处理。分批稀疏码保持了喷泉码的显著特征,特别是它们的无速率特性和低编码/解码复杂度,因此分批稀疏码能够在多跳网络中利用较小的m值来实现最优的吞吐量。

参考图3,虽然在每个网络节点都有传输层和网络层,但它们在不同的节点处执行的功能也不相同。源节点的应用层具有一个或多个数据源,数据源向传输层传送数据文件,当源节点处的传输层接收到文件传输请求时利用外码将该数据文件进行编码生成批,这些批将进一步传输至网络层。网络层是用于实现分批稀疏码的内码部分,在源节点或中间节点处的网络层接收到批之后,对同一批中包进行重编码并通过链路层将重编码后的包发送至下一跳的网络节点。在目的节点处的网络层接收到批之后将该批中的包发送至目的节点处的传输层,该传输层对接收到的包进行解码以恢复从数据源发送的文件,当成功得到解码的文件时,该传输层将文件传送至如图3所示的应用层,并且可以选择地发送确认接收到文件的通知给源节点。对于基于分批稀疏码的无线网络,除了网络长度l和最大丢包率ε之外,它的性能不取决于任何其他的全局网络状态信息。因此,基于分批稀疏码的无线网络不需要获取节点之间的丢包率信息,使得不需要收集中间节点的所有链接信息。

进一步地,根据本发明的一个或多个实施例,提出关于在多跳网络中分批稀疏码的编码方法。具体地,k是输入的包的数量,每个包是在基域中包含t个元素的列向量,将一组数据包等效为一个矩阵,该矩阵是通过将该集合中的数据包并列形成的。m是批的大小,对于i=1,2....,第i个批xi由以下步骤得到:

对度分布ψ=(ψ1,...,ψk)进行采样并返回度di;

从所有的k个输入包中均匀随机选择di个输入包bi;

形成di×m的完全随机矩阵gi,由多个输入包生成的批xi表示为xi=bigi。

分批稀疏编码的内码是通过线性网络编码形成的,即重编码。重编码应用于属于同一批中的编码包使得从源节点到目的节点的每个批的端到端转换时线性运算。hi是第i个批的批转换矩阵,yi是在目的节点处第i个批的输出包或接收到的包,

yi=xihi=bigihi(1)

其中,hi的行数量是m,hi的列数量第i个批的接收到的包的数量,对于不同的批列数量是变化的且有限的,即如果该批中没有接收到任何包,则yi(hi)是0列的空矩阵。

批的转换矩阵是通过重编码与源节点和目的节点之间的网络拓扑共同确定的,并通过在每个编码包中附加系数向量将该转换矩阵在目的节点处恢复。假设hi,i=1,2...具有相同的秩分布h=(h0,h1,...,hm),其中,秩分布h是用于评估解码性能,并且分批稀疏码的可达率是以期望的秩作为上边界。

进一步地,根据本发明的一个或多个实施例,提出关于在多跳网络中分批稀疏码的解码方法。假设在目的节点处接收n个批,使用置信度传播算法进行解码,对于等式(1),gi和hi是已知的,如果(gh)的秩等于它的度则认为生成矩阵g和转换矩阵h是可进行解码的。置信度传播算法解码包括多次迭代,在第一次迭代中,对所有可解码的批进行解码(通过求解相关的线性方程组(1)),并恢复这些可解码的批中包含的输入包。在接下来的每一次迭代中,未解码的批进行第一更新:对于每个未解码的批,包含在该批中的所有已经恢复的输入包被替换到相关的线性系统中,并且相应地降低批的度。经过更新之后有些批能够被解码,并且在这些可解码的批中的输入包被恢复出来。在本实施中,当不存在可解码的批时,置信度传播算法解码将停止。

具体地,分批稀疏码具有以下特性,当θ>0并且η∈(0,1)时,满足:

ω(x;h,ψ)+θln(1-x)>0,0≤x≤η,

其中,

当k趋向于无限大时,对于个批的置信度传播算法解码能够恢复ηk个输入包。

在一个或多个实施例中,对于给定的秩分布h,度分布由以下求解优化问题得出

s.t.ω(x;h,ψ)+θln(1-x)>0,0≤x≤η,

其中并且η接近1。

在上述实施例中,当k的数值很大时,由上述优化模型中获得的度分布能够获得很好的解码效果。在一个或多个优选实施例中,k的数值相对较小,例如为256或512,在对大部分输入包进行解码时置信度传播算法解码趋向停止,虽然在现有技术中可以通过高斯消元解码来进行继续解码,但计算复杂度变得很高。在本发明所提出的方法中将使用失活解码(inactivationdecoding)的方法解决这一问题,当置信度传播算法解码停止时,未解码的输入包被标记为失活的,作为解码包替换到批中,以恢复置信度传播算法解码进程。失活解码减少了计算复杂度并提高了置信度传播算法解码的成功率。

进一步地,在本发明一个或多个实施例中,在源节点或中间节点处对编码的包进行重编码,令mk(mk≥m)作为由节点vk,k=0,1,...,l-1所发送的批中的重编码包的数目,假设在网络链接中每个丢失的包都用全零包来表示,则节点vi,i=0,1,...,l-1接收mi-1个包,其中包括用于表示丢失的包的全零包,并且m-1=m。则在节点vi处的重编码就是由基域中的mi-1×mi矩阵φi给出,在链接(vi,vi+1)上的批中mi个重编码包可以通过一个mi×mi的对角矩阵ei+1进行建模,其中该对角矩阵中的对角元素是bernoulli随机变量,于是批转换矩阵h可以表示为:h=φ0e1φ1e2...φl-1el。因此,φi决定如何在节点vk出生成重编码包。其中所采用的重编码的方法是随机线性重编码,φi是基域上的完全随机矩阵。当使用随机线性重编码时,每个发送包是属于同一批的所有接收到的包的线性组合,因此网络层在发送第一个重编码包前必须接收该批中的所有包,在中间节点vk的重编码延迟是o(mk-1t),以及总的重编码延迟是

在本发明一个或多个优选实施例中,为了减少上述随机线性重编码的重编码延迟以及计算复杂度,采用系统重编码方法(systematicrecoding)进行重编码,将所有接收到的包用作重编码包并且通过随机线性重编码生成额外的包作为重编码包。当使用系统重编码方法,中间节点的网络层在接收到包之后马上将其发送出去,而不需要接收完成其他所有的包再进行随机线性重编码。在系统重编码方法中,重编码延迟是o((l-1)t)。对于一个较大的基域(例如,q=256),应用系统重编码的解码性能和随机线性重编码的解码性能相近,但系统重编码方法能大大降低重编码复杂度和延迟。

进一步地,在本发明一个或多个实施例中,在中间节点发送的每个批的重编码包的数量等于在源节点处的重编码包的数量,即m0=m1=...=ml-1。优选地,当中间节点接收到来自上一节点的重编码包之后,对比接收到的重编码包数量与上一节点发送的数量是否相等,若不相等,则通过前述的随机线性重编码生成额外的包作为同一批中的重编码包,以使当前节点发送的重编码包数量与前一节点发送的数量相同。

参考图4,根据本发明的一个或多个实施例,还提出了一种基于分批稀疏码的多跳网络通信系统,包括数据源模块,用于向源节点发送数据文件,其中每个数据文件包括多个数据包;编码模块,用于在源节点中的传输层利用外码对所述数据包进行编码以生成多个批,所述批包括多个编码包,所述批被发送至网络层;重编码模块,用于在源节点和中间节点中对多个编码包进行重编码;存储模块,用于在每个节点中缓冲或存储编码包;解码模块,用于在目的节点中的传输层对接收到的批进行解码,以恢复所述数据文件。

进一步地,在本发明的一个或多个实施例中,在前述通信系统中为了减少上述随机线性重编码的重编码延迟以及计算复杂度,采用系统重编码方法进行重编码,将所有接收到的包用作重编码包并且通过随机线性重编码生成额外的包作为重编码包。当使用系统重编码方法,中间节点的网络层在接收到包之后马上将其发送出去,而不需要接收完成其他所有的包再进行随机线性重编码。

进一步地,在本发明的一个或多个实施例中,在前述通信系统中的解码模块使用置信度传播算法进行解码,在对数量较小的输入包进行解码时置信度传播算法解码趋向停止,当置信度传播算法解码停止时,使用失活解码的方法解决这一问题,未解码的输入包被标记为失活的,作为解码包替换到批中,以恢复置信度传播算法解码进程。失活解码减少了计算复杂度并提高了置信度传播算法解码的成功率。

应当认识到,本申请的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。该方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

进一步地,该方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本申请的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文该步骤的指令或程序时,本文所述的申请包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本申请所述的方法和技术编程时,本申请还包括计算机本身。

尽管所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中详细描述所示的其某些实施例。然而,应当理解,并不意图将本申请局限于所公开的一种或多种具体形式;相反,其意图涵盖如所附权利要求书中所限定落在本申请的方案和范围内的所有修改、替代构造和等效物。

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