CN115811381A - 网络通信方法、网络通信装置、电子设备及存储介质 - Google Patents
网络通信方法、网络通信装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115811381A CN115811381A CN202211411848.4A CN202211411848A CN115811381A CN 115811381 A CN115811381 A CN 115811381A CN 202211411848 A CN202211411848 A CN 202211411848A CN 115811381 A CN115811381 A CN 115811381A
- Authority
- CN
- China
- Prior art keywords
- batch
- packet
- packets
- batches
- systematic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 88
- 238000004891 communication Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 59
- 239000013598 vector Substances 0.000 claims abstract description 156
- 230000009897 systematic effect Effects 0.000 claims description 115
- 239000011159 matrix material Substances 0.000 claims description 90
- 238000012546 transfer Methods 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 22
- 241000288673 Chiroptera Species 0.000 claims description 10
- 238000005070 sampling Methods 0.000 claims description 8
- 239000000543 intermediate Substances 0.000 description 227
- 230000008569 process Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000008030 elimination Effects 0.000 description 6
- 238000003379 elimination reaction Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 241000287196 Asthenes Species 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种网络通信方法、网络通信装置、电子设备及存储介质,源节点对系统分批及第一系数向量进行再编码得到第一中间分批,对非系统分批及第二系数向量进行再编码得到第二中间分批,中间节点接收来自源节点或其他中间节点的第一、第二中间分批,根据第三系数向量和预设的系统内码对属于同一第一中间分批的第一内码编码包进行再编码,或根据第四系数向量和系统内码对属于同一第二中间分批的第二内码编码包进行再编码,得到新的第一或第二中间分批,目的节点接收第一或第二中间分批,根据第三系数向量从第一内码编码包或根据第四系数向量从第二内码编码包中恢复原始消息包,能够降低传统分批网络编码产生的编码解码延迟,提高网络通信效率。
Description
技术领域
本申请涉及电子信息与网络通信技术领域,尤其涉及一种网络通信方法、网络通信装置、电子设备及存储介质。
背景技术
目前,分批网络编码需要全部的消息包一起进行编码,且编码包几乎不会等同于某个消息包,当接收到足够的编码包后才能解码消息包,通信过程中的编码、解码延迟不利于对延迟敏感的流式传输的场景,降低了网络通信效率。
发明内容
本申请实施例的主要目的在于提出一种网络通信方法、网络通信装置、电子设备及存储介质,旨在降低分批网络编码中的编码和解码延迟,提高网络通信的效率。
为实现上述目的,本申请实施例的第一方面提出了一种网络通信方法,应用于通信网络,所述通信网络包括源节点、多个中间节点和目的节点,所述方法包括:
所述源节点获取原始消息包集,将所述原始消息包集划分为多个子集,所述子集为系统分批,所述子集包括多个原始消息包;
所述源节点根据预设的一致性编码器对所述子集进行编码,得到多个非系统分批,所述非系统分批包括多个外码编码包;
所述源节点对每个所述系统分批中所述原始消息包的第一系数向量和每个所述非系统分批中所述外码编码包的第二系数向量进行向量初始化,并对所述系统分批及所述系统分批对应的所述第一系数向量进行再编码,得到所述系统分批对应的第一中间分批,对所述非系统分批及所述非系统分批对应的所述第二系数向量进行再编码,得到所述非系统分批对应的第二中间分批,所述第一中间分批包括多个第一内码编码包以及每个所述第一内码编码包对应的第三系数向量,所述第二中间分批包括多个第二内码编码包以及每个所述第二内码编码包对应的第四系数向量;
所述中间节点接收来自所述源节点或其他所述中间节点的所述第一中间分批,根据所述第三系数向量和预设的系统内码对属于同一所述第一中间分批的所述第一内码编码包进行再编码,得到新的第一中间分批;或者,所述中间节点接收来自所述源节点或其他所述中间节点的所述第二中间分批,根据所述第四系数向量和所述系统内码对属于同一所述第二中间分批的第二内码编码包进行再编码,得到新的第二中间分批;所述新的第一中间分批包括新的第一内码编码包及新的第一内码编码包对应的第三系数向量,所述新的第二中间分批包括新的第二内码编码包及新的第二内码编码包对应的第四系数向量;
所述目的节点接收新的第一中间分批,根据所述第三系数向量从所述第一内码编码包恢复所述原始消息包;或者,所述目的节点接收新的第二中间分批,根据所述第四系数向量从所述第二内码编码包恢复所述原始消息包。
在一些实施例,所述预设的一致性编码器包括中间编码器和中间解码器,所述源节点根据预设的一致性编码器对所述子集进行编码,得到多个非系统分批,包括:
所述源节点根据所述中间解码器对所述子集的所述原始消息包进行解码,得到中间消息包;
所述源节点根据所述中间编码器对所述中间消息包进行编码,得到多个非系统分批。
在一些实施例,所述中间编码器和所述中间解码器的求解根据以下步骤得到:
随机采样一个BATS码的非系统外码,所述非系统外码包括初始编码器和初始解码器;
根据所述非系统外码的所述初始编码器对所述原始消息包集进行编码,得到多个分批;
根据所述非系统外码的所述初始解码器对所述分批进行解码,若解码成功,则将所述初始编码器作为所述中间编码器,将所述初始解码器作为所述中间解码器。
在一些实施例,所述源节点根据所述中间编码器对所述中间消息包进行编码,得到多个非系统分批,包括:
所述源节点对所述中间消息包进行预编码,得到多个预编码包;
对预设的度分布进行采样,得到分批的度;
随机选择与度数量相等的预编码包,得到目标预编码包;
根据预设的分批生成矩阵对目标预编码包进行分批编码,得到多个非系统分批。
在一些实施例,所述对所述系统分批及所述第一系数向量进行再编码,得到所述系统分批对应的第一中间分批,包括:
将所述第一系数向量进行合并,得到分批转移矩阵;
对所述分批转移矩阵和所述系统分批的所述原始消息包一起进行再编码,得到所述第一中间分批。
在一些实施例,所述根据所述第三系数向量和预设的系统内码对属于同一所述第一中间分批的所述第一内码编码包进行再编码,得到新的第一中间分批,包括:
所述中间节点根据所述第三系数向量对所述第一中间分批进行接收,得到接收第一中间分批;所述接收第一中间分批包括所述第一内码编码包及第一内码编码包对应的所述第三系数向量;
对所述接收第一中间分批的第一内码编码包进行线性组合,从所述第一中间分批中恢复出部分原始消息包;
所述中间节点根据所述系统内码对所述部分原始消息包进行再编码,得到所述新的第一中间分批。
在一些实施例,所述中间节点根据所述系统内码对所述部分原始消息包进行再编码,得到所述新的第一中间分批,包括:
根据所述部分原始消息包生成多个第一再编码包及所述第一再编码包对应的第三系数向量;
根据所述接收第一中间分批中所有的第一内码编码包及所述第一内码编码包对应的第三系数向量生成多个第二再编码包及所述第二再编码包对应的第三系数向量;
将第一再编码包及所述第一再编码包对应的第三系数向量和第二再编码包及所述第二再编码包对应的第三系数向量进行合并,得到所述新的第一中间分批。
为实现上述目的,本申请实施例的第二方面提出了一种网络通信装置,应用于通信网络,所述通信网络包括源节点、多个中间节点和目的节点,所述装置包括:
获取模块,用于所述源节点获取原始消息包集,将所述原始消息包集划分为多个子集,所述子集为系统分批,所述子集包括多个原始消息包;
第一编码模块,用于所述源节点根据预设的一致性编码器对所述子集进行编码,得到多个非系统分批,所述非系统分批包括多个外码编码包;
第二编码模块,用于所述源节点对每个所述系统分批中所述原始消息包的第一系数向量和每个所述非系统分批中所述外码编码包的第二系数向量进行初始化,并对所述系统分批及所述系统分批对应的所述第一系数向量进行再编码,得到所述系统分批对应的第一中间分批,对所述非系统分批及所述非系统分批对应的所述第二系数向量进行再编码,得到所述非系统分批对应的第二中间分批,所述第一中间分批包括多个第一内码编码包以及每个所述第一内码编码包对应的第三系数向量,所述第二中间分批包括多个第二内码编码包以及每个所述第二内码编码包对应的第四系数向量;
第三编码模块,用于所述中间节点接收来自所述源节点或其他所述中间节点的所述第一中间分批,根据所述第三系数向量和预设的系统内码对属于同一所述第一中间分批的所述第一内码编码包进行再编码,得到新的第一中间分批;或者,所述中间节点接收来自所述源节点或其他所述中间节点的所述第二中间分批,根据所述第四系数向量和所述系统内码对属于同一所述第二中间分批的第二内码编码包进行再编码,得到新的第二中间分批;所述新的第一中间分批包括新的第一内码编码包及新的第一内码编码包对应的第三系数向量,所述新的第二中间分批包括新的第二内码编码包及新的第二内码编码包对应的第四系数向量;
解码模块,用于所述目的节点接收新的第一中间分批,根据所述第三系数向量从所述第一内码编码包恢复所述原始消息包;或者,所述目的节点接收新的第二中间分批,根据所述第四系数向量从所述第二内码编码包恢复所述原始消息包。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现上述第一方面所述的方法。
为实现上述目的,本申请实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面所述的方法。
本申请实施例提供的网络通信方法、网络通信装置、电子设备及存储介质,其通过源节点获取原始消息包集,将原始消息包集划分为多个子集,子集为系统分批,子集包括多个原始消息包,源节点根据预设的一致性编码器对子集进行编码,得到多个非系统分批,非系统分批包括多个外码编码包,源节点对每个系统分批中原始消息包的第一系数向量和每个非系统分批中外码编码包的第二系数向量进行向量初始化,并对系统分批及第一系数向量进行再编码,得到系统分批对应的第一中间分批,对非系统分批及第二系数向量进行再编码,得到非系统分批对应的第二中间分批,第一中间分批包括多个第一内码编码包以及每个第一内码编码包对应的第三系数向量,第二中间分批包括多个第二内码编码包以及每个第二内码编码包对应的第四系数向量,中间节点接收来自源节点或其他中间节点的第一中间分批或第二中间分批,根据第三系数向量和预设的系统内码对属于同一第一中间分批的第一内码编码包进行再编码,或根据第四系数向量和系统内码对属于同一第二中间分批的第二内码编码包进行再编码,得到新的第一中间分批或新的第二中间分批,新的第一中间分批包括第一内码编码包和第一内码编码包对应的第三系数向量,新的第二中间分批包括新的第二内码编码包和新的第二内码编码包对应的第四系数向量,目的节点接收新的第一中间分批和新的第二中间分批,从第一内码编码包和第二内码编码包中恢复原始消息包。
本申请实施例对原始分批进行分集,使系统分批中包含原始消息包,这些原始消息包经过系统再编码后可以被当做内码编码包直接发出,当中间节点接收到足够的内码编码包就能恢复部分原始消息包,最终使得目的节点能够接收到更多的原始消息包,提高了网络通信的效率和质量,通过采用系统外码和系统内码构成的系统分批编码,降低了传统分批网络编码产生的编码解码延迟。
附图说明
图1是本申请实施例提供的网络通信方法的流程图;
图2是图1中的步骤S120的流程图;
图3是本申请实施例提供的网络通信方法的另一流程图;
图4是图2中的步骤S220的第二流程图;
图5是图1中的步骤S130的流程图;
图6是图1中的步骤S140的流程图;
图7是图6中的步骤S630的流程图;
图8是是本申请实施例提供的网络通信方法的结果示意图;
图9是本申请实施例提供的网络通信装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
传统网络通信技术中,网络中间节点仅对数据包做转发,网络编码技术的出现突破了传统的网络通信技术。与传统网络通信技术相比,网路编码技术允许中间节点对数据包进行再次编码,在多播、多源、多路径通信中都有较大的性能增益。随机线性网络编码(Random Linear Network Coding,RLNC)为网络编码提供了一种分布式的实现方法,并在广泛的环境下达到了有丢包的网络组播通信容量。但是传统的RLNC方案有较高的计算和存储复杂度,且在编码数据量大时会因为系数向量的问题造成编码效率低。分批网络编码是一类高效的RLNC方案,一个分批网络编码包括一个外码和一个内码,外码将数据编码成多个分批,每个分批是若干个编码包。内码采用RLNC中使用的随机线性编码。分批网络编码使用较小的分批(例如32)就可以达到接近容量的通信速率,由于计算复杂度和系数向量长度都和分批大小相关,使用小的分批会降低计算复杂度,也使得系数向量在数据包中的比例很小。
但是传统的分批网络编码需要将全部的消息包一起进行编码,且几乎没有编码包等同于某个消息包。接收到的编码包需要解码之后才能使用,且大多数的消息包要在接收到足够的编码包后才能解码成功,即接收的编码包数目至少要等于全部消息包的数目。这类分批网络编码叫做非系统分批网络编码,其带来的编码、解码延迟不利于对延迟敏感的流式传输的场景,例如视频会议、虚拟现实、车路协同等。此外,现实通信场景中的信道通常都很可靠,突发丢包的概率很低,使用非系统分批网络编码,即使在没有丢包的情况下,也需要进行编码和解码的操作。
基于此,本申请实施例提供了一种网络通信方法、网络通信装置、电子设备及存储介质,旨在降低使用分批网络编码进行通信过程中的编码解码计算消耗和延迟,提高网络通信的效率。
本申请实施例提供的网络通信方法、网络通信装置、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的网络通信方法。
本申请实施例提供的网络通信方法,涉及电子信息与网络通信技术领域。本申请实施例提供的网络通信方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现网络通信方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
图1是本申请实施例提供的网络通信方法的一个可选的流程图,图1中的方法应用于通信网络,通信网络包括源节点、中间节点和目的节点,其中通信网络可以为各种类型的网络结构例如线型网络通信等,可以包括但不限于包括步骤S110至步骤S150。
步骤S110,源节点获取原始消息包集,将原始消息包集划分为多个子集,子集为系统分批,子集包括多个原始消息包;
步骤S120,源节点根据预设的一致性编码器对子集进行编码,得到多个非系统分批,非系统分批包括多个外码编码包;
步骤S130,源节点对每个系统分批中原始消息包的第一系数向量和每个非系统分批中外码编码包的第二系数向量进行向量初始化,并对系统分批及系统分批对应的第一系数向量进行再编码,得到系统分批对应的第一中间分批,对非系统分批及非系统分批对应的第二系数向量进行再编码,得到非系统分批对应的第二中间分批,第一中间分批包括多个第一内码编码包以及每个第一内码编码包对应的第三系数向量,第二中间分批包括多个第二内码编码包以及每个第二内码编码包对应的第四系数向量;
步骤S140,中间节点接收来自源节点或其他中间节点的第一中间分批,根据第三系数向量和预设的系统内码对属于同一第一中间分批的第一内码编码包进行再编码,得到新的第一中间分批;或者,中间节点接收来自源节点或其他中间节点的第二中间分批,根据第四系数向量和系统内码对属于同一第二中间分批的第二内码编码包进行再编码,得到新的第二中间分批;新的第一中间分批包括新的第一内码编码包及新的第一内码编码包对应的第三系数向量,新的第二中间分批包括新的第二内码编码包及新的第二内码编码包对应的第四系数向量;
步骤S150,目的节点接收新的第一中间分批,根据第三系数向量从第一内码编码包恢复原始消息包;或者,目的节点接收新的第二中间分批,根据第四系数向量从第二内码编码包恢复原始消息包。
在一些实施例的步骤S110中,确定一个固定大小的有限域为基域,通常基域的大小为256。一个长度为T的数据包可以看成是基域中的T个符号构成的一个列向量,将一组长度相同的数据包并列可以形成基域上的一个矩阵,即基域上的一个矩阵等同于多个相同长度的数据包的集合,每个数据包对应于该矩阵的一列。例如,有K个数据包,每个数据包的长度均为T,将该K个数据包并列构成基域上一个T×K的矩阵。
以线型通信网络为例,一个长度为L的线型网络由一连串的网络节点组成,各网络节点对应的标签为0,1,…,L,其中第一个节点0是源节点,最后一个节点L是目的节点,其余节点为中间节点,网络链接只存在于两个连续的网络节点之间,在网络链接上传输的数据包被网络节点正确接收或者被擦除。
需要说明的是,利用编码将原始消息集进行编码得到编码符号,若所有的原始消息集符号是编码符号的一个子集,则该编码为系统码。通过系统外码对子集进行编码,使得生成的系统分批中包含原始消息包,原始消息包可以当做编码包直接发出,降低编码开销,当接到到足够的编码包时又能够得到全部原始消息包,降低解码开销,能够提高通信效率,适用于对延迟敏感的通信场景。
为了将K个数据包从源节点传输到目的节点,源节点从数据源获取该K个数据包,将该K个数据包并列形成一个T×K的矩阵B,将矩阵B作为原始消息包集。系统外码对原始数据的编码可以生成两类分批:系统分批和非系统分批。将原始消息包集B划分为ns个子集第i个子集中的原始消息包的数量为Mi,其中原始消息包是未经编码的数据包。每个子集也叫做系统分批,这些子集构成原始消息包集的一个分割。
在一些实施例的步骤S120中,源节点根据预设的一致性编码器对子集进行编码,继续生成更多分批,区别于之前的系统分批,这些分批是非系统分批,非系统分批的编号从ns+1开始,每个非系统分批包括多个外码编码包,外码编码包是根据一致性编码器对原始消息包进行编码得到的编码包。
在一些实施例的步骤S130中,对于一个系统或非系统分批的第k个包,其对应的系数向量的初始值可以是M×M单位矩阵IM的第k列。源节点对系统分批进行再编码,得到第一中间分批,第一中间分批包含再编码包即第一内码编码包。源节点对非系统分批进行再编码,得到第二中间分批,第二中间分批包含再编码包即第二内码编码包。对于一个系统分批或非系统分批,其初始的分批转移矩阵H0是IM的前若干列,对于一个系统分批或非系统分批,其初始的分批转移矩阵H0也可以是IM。对于系统分批添加若干列构成矩阵X,使得也称X为该系统分批。第三系数向量为第一内码编码包对应的系数向量,第四系数向量为第二内码编码包对应的系数向量。
具体地,某一系统分批包括k个原始消息包,则该系统分批第i个原始消息包初始化的第一系数向量为单位矩阵的第i列,将这k个第一系数向量进行合并,得到分批转移矩阵,将该系统分批与该分批转移矩阵进行相同的列变换(再编码)得到第一中间分批;某一非系统分批包括k个原始消息包,则该非系统分批第i个原始消息包初始化的第二系数向量为单位矩阵的第i列,将这k个第二系数向量进行合并,得到分批转移矩阵,将该非系统分批与该分批转移矩阵进行相同的列变换(再编码),得到第二中间分批,其中第一中间分批为系统分批,第二中间分批为非系统分批。
在一些实施例的步骤S140中,若中间节点为节点v,接收到对应系统分批X的中间分批Y且分批转移矩阵为Hv,则中间分批Y满足Y=XHv。其中Hv的列数对应于这个分批在节点v收到的属于该分批的内码编码包的数量,不同分批接收到的编码包数目可能不同,并且是有限的。如果这个分批没有收到编码包,Yv和Hv是零列的空矩阵。
设Nv为Yv或Hv的列数,即节点v收到的该批数据包的数量。用u表示线型网络中节点v的出站链路的接收者,可以是其他中间节点,也可以是目的节点。假设节点v需要将该批X的编码包传输给节点u,传输的编码包称为再编码包,由一个分批接收到的编码包Yv的线性组合产生。假设在节点v会生成N’v个再编码包,表示为YvΦv,其中Φv是一个大小为Nv×N’v的基域上的矩阵,称为再编码矩阵。由于丢包,u处收到的数据包集合是YvΦv的一个子集。
内码是指对每个分批在源节点和所有中间节点分别进行的再编码操作嵌套在一起形成的编码。在源节点,对外码产生的一个分批的M个编码包进行再编码;在中间节点,对该节点所接收到的属于同一分批的编码包进行再编码,再编码包通常由线性组合产生。一个内码方案是由Φv决定的,内码方案包括随机线性内码和系统内码,其中随机线性内码为所有再编码的数据包均由均匀的随机线性组合产生,即再编码矩阵Φv为基域上的一个均匀随机矩阵,系统内码使用所有线性独立的接收编码包作为再编码包,并对这些包进行均匀随机的线性组合生成其他再编码包,即再编码矩阵Φv的一部分列构成一个单位矩阵,其他列是基域上的均匀随机矩阵。由于随机线性内码即使没有丢包,目的节点也几乎不会收到消息包,对于系统内码每个通信链路的丢包率都有一个正下界,随着网络长度的增加,目的节点可以接收到的消息包数量会呈指数级快速下降。为了确保目的节点能够接收到原始消息包,防止原始消息包数量随着网络节点跳数的增加而大幅减少,因此需要在中间节点恢复原始消息包。由于BATS码中用于生成再编码包的线性组合系数大多都非零,采用BATS码进行即时解码来恢复一个分批中的消息包来说不是最佳的。本申请实施例中,中间节点根据预设的系统内码对接收到的中间分批进行再编码,为一个分批中的消息包提供保护,得到新的中间分批,以在中间节点恢复原始消息包,并进一步再编码生成新的中间分批,确保目的节点能够准确接收消息。
在一些实施例的步骤S150中,目的节点接收第一中间分批或第二中间分批,根据第三系数向量从第一内码编码包、第四系数向量从第二内码编码包确定分批转移矩阵。通过分批转移矩阵,从接收到的第一内码编码包和第二内码编码包中恢复原始消息包,目的节点分两步对接收到的第一中间分批或第二中间分批进行解码,第一步使用置信传播算法即BP算法恢复一部分预编码包。基于给定的秩分布h设计一个度分布ΨL,当k很大时,BP解码可以以很高概率恢复至少ηk0个预编码包。第二步对预编码包进行解码以恢复消息包,根据预编码的性质,如果BP算法可以恢复多于ηk0个预编码包,这些恢复的预编码包就可以解码所有的k个消息包。当k较小时,BP解码通常会在大部分预编码包尚未解码前就停止,虽然可以通过高斯消除法继续解码,但计算复杂性很高,可以使用失活解码替代高斯消除法,当BP解码停止时,一个未解码的消息包被标记为失活,并作为解码包被替换到对应的分批中,以恢复BP解码程序。通过使用失活解码降低了高斯消元的复杂性,提高了BP解码算法的成功概率。
本申请实施例所示意的步骤S110至步骤S150,通过源节点获取原始消息包集,将原始消息包集划分为多个子集,子集为系统分批,子集包括多个原始消息包,源节点根据预设的一致性编码器对子集进行编码,得到多个非系统分批,非系统分批包括多个外码编码包,源节点对每个系统分批中原始消息包的第一系数向量和每个非系统分批中外码编码包的第二系数向量进行向量初始化,并对系统分批及第一系数向量进行再编码,得到系统分批对应的第一中间分批,对非系统分批及第二系数向量进行再编码,得到非系统分批对应的第二中间分批,第一中间分批包括多个第一内码编码包以及每个第一内码编码包对应的第三系数向量,第二中间分批包括多个第二内码编码包以及每个第二内码编码包对应的第四系数向量,中间节点接收来自源节点或其他中间节点的第一中间分批或第二中间分批,根据第三系数向量和预设的系统内码对属于同一第一中间分批的第一内码编码包进行再编码,或根据第四系数向量和系统内码对属于同一第二中间分批的第二内码编码包进行再编码,得到新的第一中间分批或新的第二中间分批,新的第一中间分批包括新的第一内码编码包和第一内码编码包对应的第三系数向量,新的第二中间分批包括新的第二内码编码包和第二内码编码包对应的第四系数向量,目的节点接收第一中间分批或第二中间分批,根据第三系数向量从第一内码编码包、第四系数向量从第二内码编码包中恢复原始消息包。本申请实施例对原始分批进行分集,使系统分批中包含原始消息包,这些原始消息包经过系统再编码后可以被当做内码编码包直接发出,当中间节点接收到足够的内码编码包就能恢复部分原始消息包,最终使得目的节点能够接收到更多的原始消息包,提高了网络通信的效率和质量,通过采用系统外码和系统内码构成的系统分批编码,降低了传统分批网络编码产生的编码解码延迟。
请参阅图2,在一些实施例中,预设的一致性编码器包括中间编码器和中间解码器,步骤S120可以包括但不限于包括步骤S210至步骤S220:
步骤S210,源节点根据中间解码器对子集的原始消息包进行解码,得到中间消息包;
步骤S220,源节点根据中间编码器对中间消息包进行编码,得到多个非系统分批。
一个分批稀疏码即BATS码由一个外码和一个内码组成,其中BATS码的外码为非系统码。由于使用非系统外码生成的分批中出现一个消息包的可能性非常小,导致目的节点无法正确接收到消息包。本申请实施例基于BATS码的非系统外码来设计中间编码器和中间解码器。
请参阅图3,在一些实施例中,步骤S210的中间解码器和步骤S220的中间编码器的求解可以包括但不限于包括步骤S310至步骤S330:
步骤S310,随机采样一个BATS码的非系统外码,非系统外码包括初始编码器和初始解码器;
步骤S320,根据非系统外码的初始编码器对原始消息包集进行编码,得到多个分批;
步骤S330,根据非系统外码的初始解码器对分批进行解码,若解码成功,则将初始编码器作为中间编码器,将初始解码器作为中间解码器。
在一些实施例的步骤S310至步骤S330中,传统的BATS码外码是一种无速率编码,其可以生成的分批数目没有限制。若利用外码对k个消息包进行编码生成的分批数目为n时,外码的速率被定义为k/n,即每个分批k/n个包。获取根据满秩秩分布优化得到的度分布ΨM,其中满秩秩分布为分批转移矩阵满秩的概率为1的秩分布,当分批转移矩阵为单位矩阵时,外码的速率为最佳。由于度分布ΨM是针对满秩秩分布优化得到的,所以当接收到的分批数目n足够大时,非系统外码可以保证有很高的解码成功率。
基于BATS码的非系统外码生成系统外码,其中非系统外码是一种随机的编码,其一个实例由每个分批的度、采样的预编码包集和生成矩阵决定,用ENC表示一个度分布为ΨM的非系统外码的初始编码器的实例。对于包括k个消息包的原始消息包集B,设置每个分批的大小均为M,令ns为大于或者等于k/M的一个整数,并用ENCns表示仅使用该实例生成前ns个分批的编码器,则(X1,...,Xns)=ENCns(B)是生成的ns个分批。用DECns表示ENCns的相应解码器即非系统外码的初始解码器,根据初始解码器对分批进行解码,如果可以成功解出全部的k个消息包(即),则称(ENCns,DECns)是一致的实例。
对于一个不小于k/M的给定ns,通过随机采样不同的非系统外码进行试验,直至得到一个一致的实例(ENCns,DECns)。通过记录解码过程中每个编码包的使用情况,可以得到nsM个编码包中有k个非冗余包,nsM-k个冗余编码包。目标解码器表示与DECns相同的解码器,仅仅是输入至解码器的输入参数不同,会从输入的编码包中去除冗余编码包,而DECns则使用全部的编码包进行解码。将此时的初始编码器作为中间编码器,初始解码器作为中间解码器。需要说明的是,这一步骤只是用于寻找一致性编解码器,与原始消息包的数据内容无关,因此在实际操作中,这一步骤可以用k个长度为零的原始消息包进行。并且不需要所有或大部分的实例都是一致的,只要找到一个一致的实例即可。经过验证,当k在常见范围内(0-3000),多数情况都可以找到一致的实例,使得ns为不小于k/M的最小整数。
请参阅图4,在一些实施例中,步骤S220还可以包括但不限于包括步骤S410至步骤S440:
步骤S410,源节点对中间消息包进行预编码,得到多个预编码包;
步骤S420,对预设的度分布进行采样,得到分批的度;
步骤S430,随机选择与度数量相等的预编码包,得到目标预编码包;
步骤S440,根据预设的分批生成矩阵对目标预编码包进行分批编码,得到多个非系统分批。
在一些实施例的步骤S410至步骤S440中,BATS码外码分预编码和分批编码两个步骤对k个消息包进行编码。第一步使用一个系统的分组码对消息包进行预编码,得到k0个预编码包,k0个预编码包中包括k0-k个冗余包,其中k0是一个预先设定的值,表示包含消息包的预编码包的数量。预编码的生成矩阵的形式为[Ik,P],其中Ik为k×k的单位矩阵,P为k×(k0-k)矩阵。BATS码会确定一个小于1但接近1的常数η,例如0.95,预编码的设计要求为可以从任意不少于ηk0个预编码包恢复k个消息包。第二步将预编码包B0进行分批编码,以将B0编码成分批的外码编码包,每个分批的大小可以用M表示,M的取值通常小于100。
分批编码的具体过程为:采样一个给定的度分布(其中Ψ1到Ψ|M|分别是度为1到|M|的概率),获得一个整数d作为该分批的度。需要说明的是,度是一个取值从1开始的整数随机变量,其分布称为度分布,是预先设定的。每个分批生成时会先根据度分布进行采样,得到这一分批的度。均匀随机地从B0中选择与度数量相等的d个预编码包,并将其合并为矩阵B,根据该分批的度d以及该分批的大小M随机生成一个大小为d×M的矩阵G,即G是基域上的一个d×M的均匀随机矩阵,将G称为分批生成矩阵,将矩阵B和分批生成矩阵G进行矩阵相乘,生成非系统分批X,即分批X=BG,该分批包括M个外码编码包。
需要进一步说明的是,目的节点可以通过使用与源节点相同的伪随机数发生器,来获得上述编码过程中用到的随机数值,包括每个分批的度、预编码包的选择以及生成矩阵等,这些信息可以用于目的节点的解码过程。
当每个分批大小M为1时,外码会退化为喷泉码,当分批大小大于1时,最佳的外码度分布取决于分批转移矩阵的秩分布,因此系统的喷泉码并不能直接用于设计系统的BATS码外码。对于一个度数为d的分批,一个编码包等于一个预编码包的概率不超过dq-d,其中q为基域的大小,通常情况下d≥M≥4,q=256,所以在使用普通外码的分批中出现一个消息包的可能性非常小,本申请使用BATS码的系统外码进行编码来生成一些系统分批,使得系统分批中的外码编码包包括原始消息包。由于系统外码是基于BATS码生成,因此系统外码同样分预编码和分批编码两步对中间消息包进行编码,以生成多个系统分批。源节点使用一个系统的分组码对k个中间消息包进行预编码,得到k0个预编码包,采样根据满秩秩分布优化得到的度分布ΨM得到某一系统分批的度d,从k0个预编码包中随机选择d个预编码包,将d个预编码包并列生成目标预编码包B,随机生成大小为d×M的分批生成矩阵G,将B与G进行矩阵相乘,以得到多个系统分批。
在一些实施例中,源节点编码生成的n个分批表示为Xi=BiGi,1≤i≤n,Bi是由di个预编码包构成的,Gi是第i个分批的分批生成矩阵。在目标节点L,第i个分批接收到的编码包Yi=XiHi=BiGiHi,其中Hi=HL i,目标节点L第i个分批的秩即rank(HL i)的经验分布hv=(hv 0,hv 1,…,hv M)叫做秩分布。可以理解的是,不同分批的秩可能不同。对应于第i个分批Yi=BiGiHi,如果矩阵GiHi的秩等于di,则说明可以解码Bi。
请参阅图5,在一些实施例,步骤S130包括但不限于包括步骤S510至步骤S520:
步骤S510,将第一系数向量进行合并,得到分批转移矩阵;
步骤S520,对分批转移矩阵和系统分批的原始消息包一起进行再编码,得到第一中间分批。
在一些实施例的步骤S510至S520中,将多个初始化的第一系数向量进行并列合并,得到分批转移矩阵,将系统分批与分批转移矩阵组合起来,得到第一中间分批。
需要说明的是,分批转移矩阵可以通过系数向量得到,每个外码编码包均关联一个系数向量,其可以被嵌入到编码包的包头中在网络上传输,对于外码生成的每个分批X,其系数向量并列形成的矩阵为单位矩阵,对于去除部分冗余编码包的系统分批,相应的列也从单位矩阵中去除,后续对分批X进行线性运算时,也同时对系数向量进行线性运算,以从外码编码包的包头中获取分批转移矩阵Hv。
请参阅图6,在一些实施例,步骤S140包括但不限于包括步骤S610至步骤S630:
S610,中间节点对第一中间分批进行接收,得到接收第一中间分批;接收第一中间分批包括第一内码编码包及第一内码编码包对应的第三系数向量;
S620,对接收第一中间分批的第一内码编码包进行线性组合,从第一中间分批中恢复出部分原始消息包;
S630,中间节点根据系统内码对部分原始消息包进行再编码,得到新的第一中间分批。
在一些实施例的步骤S610至S630中,若对应该第一中间分批的系统分批表示为X,接收到的第三系数向量组成的分批转移矩阵为Hi v,那么中间节点接收到的分批即接收第一中间分批满足Yi v=XiHi v。对于ns个第一中间分批,若每个第一中间分批的转移矩阵H均为行满秩矩阵,说明方程系统分批Yi=XiHi是唯一可解的,即后续能够从接收第一中间分批中恢复出原始消息包,若所有的Xi都被解决就可以恢复由于所有的消息包都在这些中被恢复。若第一中间分批中存在分批转移矩阵不为行满秩矩阵,说明无法从系统分批中恢复出原始消息包,则中间节点接收第二中间分批,当接收到足够多的第二中间分批时,就可以从第二中间分批中恢复出原始消息包。
需要说明的是,若同属一个分批的一组编码包的系数向量是线性独立的,则称这组编码包是线性独立的,若同属一个分批的一组编码包的系数向量是线性相关的,则称这组编码包是线性相关的。
请参阅图7,在一些实施例中,步骤S630可以包括但不限于包括步骤S710至步骤S730:
步骤S710,根据部分原始消息包生成多个第一再编码包及第一再编码包对应的第三系数向量;
步骤S720,根据接收第一中间分批中所有的第一内码编码包及其第一内码编码包对应的第三系数向量生成多个第二再编码包及第二再编码包对应的第三系数向量;
步骤S730,将第一再编码包及第一再编码包对应的第三系数向量和第二再编码包及第二再编码包对应的第三系数向量进行合并,得到新的第一中间分批。
在一些实施例的步骤S710中,对系统分批和非系统分批采用不同的内码编码方案,对于非系统分批可以采用随机线性内码或者系统的随机线性内码。系统分批,使用同样的内码会导致目的节点接收到的消息包很少,本申请针对系统分批提出一类新的内码方案,来提高目的节点接收到的消息包数目。新的内码方案的编码分为两个步骤:第一步是对接收的内码编码包进行线性组合恢复部分原始消息包。第二步的再编码对第一步恢复的原始消息包提供额外的保护。
固定某个网络节点v,中间分批Yv为中间节点v接收到的分批,该分批中外码编码包的数量为Nv,确定该分批需要发送的再编码包的数量Nv′,再编码过程可以表示为一个Nv行Nv′列的矩阵Φv。将Yv和Hv上下放置构成增广矩阵做列变换,使得变换后Hv的一部分列仅仅包含一个非零项,且非零项的值为1。采用高斯若尔当(Gauss-Jordan)消元进行列变换,以恢复出所有可能被恢复的原始消息包。对增广矩阵进行按列高斯若尔当消元,使得Hv部分被转化成简化列阶梯形矩阵形式。
中间节点采用高斯若尔当消元法对中间分批中的内码编码包进行线性组合,从中间分批中恢复出原始消息包。具体地,采用高斯若尔当消元进行列变换的步骤如下:初始化i=1,让j=1,…,Nv,在矩阵第j行,第i,…,Nv列的元素中选择一个非零的元素作为主元,如果没有非零的元素,则j=j+1跳到下一次循环,如果该主元不是在第i列上,则交换主元所在列和第i列,对主元所在的第i列乘以一个系数使得主元变成1,对所有其他列加上第i列的一个数乘,使得矩阵第j行除第i列以外的所有其他元素都为零,让i=i+1,如果i大于Nv则退出循环,循环结束后,得到的矩阵就是对应的简化列阶梯形矩阵。
上述的所有操作都可以视作对Hv的列进行线性组合,如果将这些列操作按顺序记录下来,并表示成矩阵的形式,则可以得到一个Nv×Nv的矩阵V。若用矩阵V来表示上述过程中的所有列操作,那么HvV就是该矩阵Hv部分经过消元得到的简化列阶梯形矩阵形式。Yv V=X Hv V就是Yv经过同样变换的结果。用ei表示一个长度为M的列向量,该列向量中的第i项为1,所有其他项为0,如果ei是Hv V的一列,那么Yv V的这一列就等于X的第i列,则可以从Yv中可以恢复第i个原始消息包。
将从Yv中恢复的原始消息包的数量表示为s,中间分批的秩r=rank(Hv),通过对YvV进行适当的行和列置换,将Hv V可以转化为如下形式:
其中Ik表示一个k×k的单位矩阵,0是表示对应大小的全零矩阵,T是一个(Nv-r)×r的矩阵,其每一列都不全是零。将列置换操作应用于Yv V,通过将列置换矩阵的前r列表示为Nv×r矩阵P,使得Hv VP的前s列中每一列只有1个非零项,以得到Yv VP。
在一些实施例的步骤S720至S730中,若当前分批在节点v处可以恢复s个原始消息包,且该分批的秩为r,根据恢复部分原始消息包的情况,本申请实施例提供了两个再编码方案,分别为保护外码包的再编码以及系统化保护外码包的再编码,可以额外保护这些恢复的外码包。对于保护外码包的再编码,若整数w大于等于0小于等于N’v-s,构建一个大小为r×N’v矩阵R,矩阵R的形式为:
其中Um,n表示m×n的均匀随机矩阵。
对于系统化保护外码包的再编码。若整数w大于等于0小于N’v-r,构建一个大小为r×N’v矩阵Rsys,矩阵Rsys的形式为:
若整数w大于或者等于N’v-r,矩阵Rsys的形式为:
其中J是Ir-s的前N’v-w-s列。
当节点v处的整体再编码矩阵为VPR时,内码被称为x保护内码(XPIC)。当节点v处的整体再编码矩阵为VPRsys,内码被称为系统x保护内码(SXPIC)。w的取值决定了对外码包的保护程度。当w=0时,不为外码包提供额外的保护,此时SXPIC和系统内码有相同的秩分布。当w=N’v-s,所有由线性组合产生的再编码的数据包都用于保护原始消息包。
具体地,若恢复的原始消息包的数量s大于零,则确定专门保护原始消息包的再编码的数量w,利用恢复的原始消息包生成w个专门保护原始消息包的再编码包即第一再编码包,确定生成其他再编码包的数量即第二再编码包的数量N’v-s-w,利用中间分批Yv中所有的内码编码包生成N’v-s-w个第二再编码包,将第一再编码包和第二再编码包一并作为新的中间分批发出。若s的数量等于零,则确定生成其他再编码包的数量即第二再编码包的数量N’v-s-w,利用中间分批Yv中所有的编码包生成N’v-s-w个第二再编码包,将第一再编码包和第二再编码包一并作为新的第一中间分批发出。
请参阅图8,图8为本申请实施例提供的网络通信方法的结果示意图,横坐标表示网络的长度,纵坐标表示平均可恢复的原始消息包的数量以及平均秩的数量,为了验证新的内码在平均秩和平均可恢复原始消息包的数量方面的性能,本申请采用长度不超过50跳的线型网络,其中每个相邻链路都有相同的独立数据包擦除概率0.2,分批大小M=16,所有节点v的数据包传输数量N’v=20。由于SXPIC和XPIC的性能在仿真中的差异可以忽略不计,因此只显示SXPIC的结果,并将w=0和w=N’v-s作为SXPIC中的代表。SIC、RLIC、w=0的SXPIC(用SXPIC0表示)和w=N’v-s的SXPIC用SXPIC1表示)的平均可恢复原始消息包的数量和在节点0到50的平均秩,每个试验500次,对于系统性内码SIC和随机线性内码RLIC,平均可恢复原始消息包的数量下降得很快。SXPIC0的平均可恢复原始消息包的数量比SIC和RLIC的高得多,同时保留了几乎相同的平均秩。SXPIC1在四个内码中具有最高的可恢复原始消息包的平均数,但代价是平均秩下降。
本申请的内码方案不会增加内码的计算复杂性,并可以在达到与现有内码相同的编码率的同时,显著提高目的节点接收的原始消息包的数量。通过调整参数w可以进一步增加目的节点接收消息包的数量,但代价是降低编码率。
请参阅图9,本申请实施例还提供一种网络通信装置,可以实现上述网络通信方法,应用于通信网络,通信网络包括源节点、中间节点和目的节点,该装置包括:
获取模块910,用于源节点获取原始消息包集,将原始消息包集划分为多个子集,子集为系统分批,子集包括多个原始消息包;
第一编码模块920,用于源节点根据预设的一致性编码器对子集进行编码,得到多个非系统分批,非系统分批包括多个外码编码包;
第二编码模块930,用于源节点对每个系统分批中原始消息包的第一系数向量和每个非系统分批中外码编码包的第二系数向量进行初始化,并对系统分批及系统分批对应的第一系数向量进行再编码,得到系统分批对应的第一中间分批,对非系统分批及非系统分批对应的第二系数向量进行再编码,得到非系统分批对应的第二中间分批,第一中间分批包括多个第一内码编码包以及每个第一内码编码包对应的第三系数向量,第二中间分批包括多个第二内码编码包以及每个第二内码编码包对应的第四系数向量;
第三编码模块940,用于中间节点接收来自源节点或其他中间节点的第一中间分批,根据第三系数向量和预设的系统内码对属于同一第一中间分批的第一内码编码包进行再编码,得到新的第一中间分批;或者,中间节点接收来自源节点或其他中间节点的第二中间分批,根据第四系数向量和系统内码对属于同一第二中间分批的第二内码编码包进行再编码,得到新的第二中间分批;新的第一中间分批包括新的第一内码编码包及新的第一内码编码包对应的第三系数向量,新的第二中间分批包括新的第二内码编码包及新的第二内码编码包对应的第四系数向量;
解码模块950,用于目的节点接收新的第一中间分批,根据第三系数向量从第一内码编码包恢复原始消息包;或者,目的节点接收新的第二中间分批,根据第四系数向量从第二内码编码包恢复原始消息包。
该网络通信装置的具体实施方式与上述网络通信方法的具体实施例基本相同,在此不再赘述。
本申请实施例还提供了一种电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述网络通信方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
本申请实施例还提供了一种电子设备,包括:
处理器,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器中,并由处理器来调用执行本申请实施例的网络通信方法;
输入/输出接口,用于实现信息输入及输出;
通信接口,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线,在设备的各个组件(例如处理器、存储器、输入/输出接口和通信接口)之间传输信息;
其中处理器、存储器、输入/输出接口和通信接口通过总线实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述网络通信方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的网络通信方法、网络通信装置、电子设备及存储介质,其通过本申请实施例提供的网络通信方法、网络通信装置、电子设备及存储介质,其通过源节点获取原始消息包集,将原始消息包集划分为多个子集,子集为系统分批,子集包括多个原始消息包,源节点根据预设的一致性编码器对子集进行编码,得到多个非系统分批,非系统分批包括多个外码编码包,源节点对每个系统分批中原始消息包的第一系数向量和每个非系统分批中外码编码包的第二系数向量进行向量初始化,并对系统分批及第一系数向量进行再编码,得到系统分批对应的第一中间分批,对非系统分批及第二系数向量进行再编码,得到非系统分批对应的第二中间分批,第一中间分批包括多个第一内码编码包以及每个第一内码编码包对应的第三系数向量,第二中间分批包括多个第二内码编码包以及每个第二内码编码包对应的第四系数向量,中间节点接收来自源节点或其他中间节点的第一中间分批或第二中间分批,根据第三系数向量和预设的系统内码对属于同一第一中间分批的第一内码编码包进行再编码,或根据第四系数向量和系统内码对属于同一第二中间分批的第二内码编码包进行再编码,得到新的第一中间分批或新的第二中间分批,新的第一中间分批包括新的第一内码编码包和第一内码编码包对应的第三系数向量,新的第二中间分批包括新的第二内码编码包和第二内码编码包对应的第四系数向量,目的节点接收第一中间分批或第二中间分批,根据第三系数向量从第一内码编码包、第四系数向量从第二内码编码包中恢复所述原始消息包。
本申请实施例对原始分批进行分集,使系统分批中包含原始消息包,这些原始消息包经过系统再编码后可以被当做内码编码包直接发出,当中间节点接收到足够的内码编码包就能恢复部分原始消息包,最终使得目的节点能够接收到更多的原始消息包,提高了网络通信的效率和质量,通过采用系统外码和系统内码构成的系统分批编码,降低了传统分批网络编码产生的编码解码延迟。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1-7中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.网络通信方法,其特征在于,应用于通信网络,所述通信网络包括源节点、多个中间节点和目的节点,所述方法包括:
所述源节点获取原始消息包集,将所述原始消息包集划分为多个子集,所述子集为系统分批,所述子集包括多个原始消息包;
所述源节点根据预设的一致性编码器对所述子集进行编码,得到多个非系统分批,所述非系统分批包括多个外码编码包;
所述源节点对每个所述系统分批中所述原始消息包的第一系数向量和每个所述非系统分批中所述外码编码包的第二系数向量进行向量初始化,并对所述系统分批及所述系统分批对应的所述第一系数向量进行再编码,得到所述系统分批对应的第一中间分批,对所述非系统分批及所述非系统分批对应的所述第二系数向量进行再编码,得到所述非系统分批对应的第二中间分批,所述第一中间分批包括多个第一内码编码包以及每个所述第一内码编码包对应的第三系数向量,所述第二中间分批包括多个第二内码编码包以及每个所述第二内码编码包对应的第四系数向量;
所述中间节点接收来自所述源节点或其他所述中间节点的所述第一中间分批,根据所述第三系数向量和预设的系统内码对属于同一所述第一中间分批的所述第一内码编码包进行再编码,得到新的第一中间分批;或者,所述中间节点接收来自所述源节点或其他所述中间节点的所述第二中间分批,根据所述第四系数向量和所述系统内码对属于同一所述第二中间分批的第二内码编码包进行再编码,得到新的第二中间分批;所述新的第一中间分批包括新的第一内码编码包及新的第一内码编码包对应的第三系数向量,所述新的第二中间分批包括新的第二内码编码包及新的第二内码编码包对应的第四系数向量;
所述目的节点接收新的第一中间分批,根据所述第三系数向量从所述第一内码编码包恢复所述原始消息包;或者,所述目的节点接收新的第二中间分批,根据所述第四系数向量从所述第二内码编码包恢复所述原始消息包。
2.根据权利要求1所述的网络通信方法,其特征在于,所述预设的一致性编码器包括中间编码器和中间解码器,所述源节点根据预设的一致性编码器对所述子集进行编码,得到多个非系统分批,包括:
所述源节点根据所述中间解码器对所述子集的所述原始消息包进行解码,得到中间消息包;
所述源节点根据所述中间编码器对所述中间消息包进行编码,得到多个非系统分批。
3.根据权利要求2所述的网络通信方法,其特征在于,所述中间编码器和所述中间解码器的求解根据以下步骤得到:
随机采样一个BATS码的非系统外码,所述非系统外码包括初始编码器和初始解码器;
根据所述非系统外码的所述初始编码器对所述原始消息包集进行编码,得到多个分批;
根据所述非系统外码的所述初始解码器对所述分批进行解码,若解码成功,则将所述初始编码器作为所述中间编码器,将所述初始解码器作为所述中间解码器。
4.根据权利要求2所述的网络通信方法,其特征在于,所述源节点根据所述中间编码器对所述中间消息包进行编码,得到多个非系统分批,包括:
所述源节点对所述中间消息包进行预编码,得到多个预编码包;
对预设的度分布进行采样,得到分批的度;
随机选择与度数量相等的预编码包,得到目标预编码包;
根据预设的分批生成矩阵对目标预编码包进行分批编码,得到多个非系统分批。
5.根据权利要求1所述的网络通信方法,其特征在于,所述对所述系统分批及所述第一系数向量进行再编码,得到所述系统分批对应的第一中间分批,包括:
将所述第一系数向量进行合并,得到分批转移矩阵;
对所述分批转移矩阵和所述系统分批的所述原始消息包一起进行再编码,得到所述第一中间分批。
6.根据权利要求1至5任一项所述的网络通信方法,其特征在于,所述根据所述第三系数向量和预设的系统内码对属于同一所述第一中间分批的所述第一内码编码包进行再编码,得到新的第一中间分批,包括:
所述中间节点对所述第一中间分批进行接收,得到接收第一中间分批;所述接收第一中间分批包括所述第一内码编码包及第一内码编码包对应的所述第三系数向量;
对所述接收第一中间分批的第一内码编码包进行线性组合,从所述第一中间分批中恢复出部分原始消息包;
所述中间节点根据所述系统内码对所述部分原始消息包进行再编码,得到所述新的第一中间分批。
7.根据权利要求6所述的网络通信方法,其特征在于,所述中间节点根据所述系统内码对所述部分原始消息包进行再编码,得到所述新的第一中间分批,包括:
根据所述部分原始消息包生成多个第一再编码包及所述第一再编码包对应的第三系数向量;
根据所述接收第一中间分批中所有的第一内码编码包及所述第一内码编码包对应的第三系数向量生成多个第二再编码包及所述第二再编码包对应的第三系数向量;
将第一再编码包及所述第一再编码包对应的第三系数向量和第二再编码包及所述第二再编码包对应的第三系数向量进行合并,得到所述新的第一中间分批。
8.网络通信装置,其特征在于,应用于通信网络,所述通信网络包括源节点、多个中间节点和目的节点,所述装置包括:
获取模块,用于所述源节点获取原始消息包集,将所述原始消息包集划分为多个子集,所述子集为系统分批,所述子集包括多个原始消息包;
第一编码模块,用于所述源节点根据预设的一致性编码器对所述子集进行编码,得到多个非系统分批,所述非系统分批包括多个外码编码包;
第二编码模块,用于所述源节点对每个所述系统分批中所述原始消息包的第一系数向量和每个所述非系统分批中所述外码编码包的第二系数向量进行初始化,并对所述系统分批及所述系统分批对应的所述第一系数向量进行再编码,得到所述系统分批对应的第一中间分批,对所述非系统分批及所述非系统分批对应的所述第二系数向量进行再编码,得到所述非系统分批对应的第二中间分批,所述第一中间分批包括多个第一内码编码包以及每个所述第一内码编码包对应的第三系数向量,所述第二中间分批包括多个第二内码编码包以及每个所述第二内码编码包对应的第四系数向量;
第三编码模块,用于所述中间节点接收来自所述源节点或其他所述中间节点的所述第一中间分批,根据所述第三系数向量和预设的系统内码对属于同一所述第一中间分批的所述第一内码编码包进行再编码,得到新的第一中间分批;或者,所述中间节点接收来自所述源节点或其他所述中间节点的所述第二中间分批,根据所述第四系数向量和所述系统内码对属于同一所述第二中间分批的第二内码编码包进行再编码,得到新的第二中间分批;所述新的第一中间分批包括新的第一内码编码包及新的第一内码编码包对应的第三系数向量,所述新的第二中间分批包括新的第二内码编码包及新的第二内码编码包对应的第四系数向量;
解码模块,用于所述目的节点接收新的第一中间分批,根据所述第三系数向量从所述第一内码编码包恢复所述原始消息包;或者,所述目的节点接收新的第二中间分批,根据所述第四系数向量从所述第二内码编码包恢复所述原始消息包。
9.电子设备,其特征在于,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现如权利要求1至7任一项所述的方法的步骤。
10.存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211411848.4A CN115811381B (zh) | 2022-11-11 | 2022-11-11 | 网络通信方法、网络通信装置、电子设备及存储介质 |
PCT/CN2023/126500 WO2024099077A1 (zh) | 2022-11-11 | 2023-10-25 | 网络通信方法、网络通信装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211411848.4A CN115811381B (zh) | 2022-11-11 | 2022-11-11 | 网络通信方法、网络通信装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115811381A true CN115811381A (zh) | 2023-03-17 |
CN115811381B CN115811381B (zh) | 2024-04-19 |
Family
ID=85483059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211411848.4A Active CN115811381B (zh) | 2022-11-11 | 2022-11-11 | 网络通信方法、网络通信装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115811381B (zh) |
WO (1) | WO2024099077A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024099077A1 (zh) * | 2022-11-11 | 2024-05-16 | 香港中文大学(深圳) | 网络通信方法、网络通信装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834672A (zh) * | 2010-05-13 | 2010-09-15 | 武汉邮电科学研究院 | 一种双码分层空时编码系统和基于该编码的光通信方法 |
US20170195914A1 (en) * | 2015-12-30 | 2017-07-06 | The Chinese University Of Hong Kong | Hardware Acceleration for Batched Sparse Codes |
CN109347604A (zh) * | 2018-10-26 | 2019-02-15 | 香港中文大学(深圳) | 一种基于分批稀疏码的多跳网络通信方法和系统 |
CN110430011A (zh) * | 2019-07-09 | 2019-11-08 | 武汉大学 | 基于规则变量节点度分布的bats码编码方法 |
CN111917512A (zh) * | 2020-07-08 | 2020-11-10 | 西安交通大学 | 一种在多跳传输系统中基于bats码的高效编码设计方法 |
CN113541863A (zh) * | 2021-06-02 | 2021-10-22 | 香港中文大学(深圳) | 数据编码方法、数据译码方法、电子设备及存储介质 |
CN114172619A (zh) * | 2021-12-08 | 2022-03-11 | 电子科技大学 | 一种基于分布式分批稀疏码的网络通信方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107994971B (zh) * | 2017-11-17 | 2020-06-02 | 南通大学 | 面向有限缓冲区中继链路的编码传输方法及编码通信系统 |
CN110113131B (zh) * | 2019-04-24 | 2021-06-15 | 香港中文大学(深圳) | 一种基于批编码的网络通信方法及系统 |
CN114070457A (zh) * | 2020-08-03 | 2022-02-18 | 华为技术有限公司 | 数据传输方法、系统和装置 |
CN115811381B (zh) * | 2022-11-11 | 2024-04-19 | 香港中文大学(深圳) | 网络通信方法、网络通信装置、电子设备及存储介质 |
-
2022
- 2022-11-11 CN CN202211411848.4A patent/CN115811381B/zh active Active
-
2023
- 2023-10-25 WO PCT/CN2023/126500 patent/WO2024099077A1/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834672A (zh) * | 2010-05-13 | 2010-09-15 | 武汉邮电科学研究院 | 一种双码分层空时编码系统和基于该编码的光通信方法 |
US20170195914A1 (en) * | 2015-12-30 | 2017-07-06 | The Chinese University Of Hong Kong | Hardware Acceleration for Batched Sparse Codes |
CN109347604A (zh) * | 2018-10-26 | 2019-02-15 | 香港中文大学(深圳) | 一种基于分批稀疏码的多跳网络通信方法和系统 |
CN110430011A (zh) * | 2019-07-09 | 2019-11-08 | 武汉大学 | 基于规则变量节点度分布的bats码编码方法 |
CN111917512A (zh) * | 2020-07-08 | 2020-11-10 | 西安交通大学 | 一种在多跳传输系统中基于bats码的高效编码设计方法 |
CN113541863A (zh) * | 2021-06-02 | 2021-10-22 | 香港中文大学(深圳) | 数据编码方法、数据译码方法、电子设备及存储介质 |
CN114172619A (zh) * | 2021-12-08 | 2022-03-11 | 电子科技大学 | 一种基于分布式分批稀疏码的网络通信方法 |
Non-Patent Citations (7)
Title |
---|
HOOVER H. F. YIN: "A Unified Adaptive Recoding Framework for Batched Network Coding", 《IEEE JOURNAL ON SELECTED AREAS IN INFORMATION THEORY》, 26 November 2021 (2021-11-26) * |
JIE WANG: "Small-Sample Inferred Adaptive Recoding for Batched Network Coding", 《2021 IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY (ISIT)》, 1 September 2021 (2021-09-01) * |
SHENGHAO YANG: "Network Communication Protocol Design from the Perspective of Batched Network Coding", 《IEEE COMMUNICATIONS MAGAZINE》, 31 January 2022 (2022-01-31) * |
YE LI: "A Low-Complexity Coded Transmission Scheme Over Finite-Buffer Relay Links", 《IEEE TRANSACTIONS ON COMMUNICATIONS》, 26 February 2018 (2018-02-26) * |
唐林: "BATS码传输性能分析与优化研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 May 2022 (2022-05-15) * |
杨伟豪;董光亮;朱键;李海涛;杨升浩;陈超;: "空间通信与BATS码:天成之合(英文)", 深空探测学报, no. 02, 15 April 2018 (2018-04-15) * |
杨娟;嵇建波;李海兵;: "基于高斯消元的BATS码的改进译码算法", 通信技术, no. 02, 10 February 2020 (2020-02-10) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024099077A1 (zh) * | 2022-11-11 | 2024-05-16 | 香港中文大学(深圳) | 网络通信方法、网络通信装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024099077A1 (zh) | 2024-05-16 |
CN115811381B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102033661B1 (ko) | 채널 인코딩 및 디코딩 방법 및 장치 | |
KR100808664B1 (ko) | 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치 | |
US9048997B2 (en) | Apparatus and method using matrix network coding | |
WO2018019044A1 (zh) | 编码方法和设备 | |
WO2018103452A1 (zh) | 信息位图的编码、解码方法、装置及存储介质 | |
WO2024099077A1 (zh) | 网络通信方法、网络通信装置、电子设备及存储介质 | |
US9116827B2 (en) | System and method for optimizing luby transform (LT) codes to facilitate data transmission over communication network | |
KR101934638B1 (ko) | 행렬 분해를 이용한 저복잡 네트워크 코딩에 기초하는 네트워크 인코딩 장치 및 방법 | |
JP5497917B2 (ja) | 直交多重記述符号化 | |
KR101874537B1 (ko) | 극 부호의 병렬 복호화 방법 및 장치 | |
CN113794479B (zh) | 极化调节卷积码的生成方法及相关设备 | |
CN114079530A (zh) | 编码方法及装置 | |
WO2015178018A1 (ja) | 端末、パケット復号方法、および、プログラムが記憶された記憶媒体 | |
CN113810152B (zh) | 用于缓存无线数据的网络编码方法、装置和系统 | |
CN112118074B (zh) | 一种通信方法及装置 | |
CN102255690A (zh) | 基于度2和度3编码包的喷泉码解码方法 | |
CN112534724B (zh) | 用于解码极化码和乘积码的解码器和方法 | |
US10177869B2 (en) | Systems and methods for reducing bandwidth overhead | |
CN114915376B (zh) | 译码方法、编码方法、装置、设备和存储介质 | |
CN116614203A (zh) | 数据通信方法、数据通信装置、电子设备及存储介质 | |
CN116366074B (zh) | 基于二元扩域及提高满度比的lt码混合编解码方法及系统 | |
KR101512078B1 (ko) | 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 | |
JP2013093672A (ja) | 復号装置、符号化復号システム、符号化復号方法、及び復号プログラム | |
CN110048728B (zh) | 隐写编解码方法、装置及设备 | |
KR101512081B1 (ko) | 특정 밀도를 기반으로 하는 저밀도 행렬을 이용한 부호화/복호화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |