CN107040334B - 用于设备辅助通信的方法、装置和计算机可读介质 - Google Patents
用于设备辅助通信的方法、装置和计算机可读介质 Download PDFInfo
- Publication number
- CN107040334B CN107040334B CN201610857698.8A CN201610857698A CN107040334B CN 107040334 B CN107040334 B CN 107040334B CN 201610857698 A CN201610857698 A CN 201610857698A CN 107040334 B CN107040334 B CN 107040334B
- Authority
- CN
- China
- Prior art keywords
- batches
- data packets
- batch
- encoded
- encoding
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004891 communication Methods 0.000 title claims abstract description 40
- 239000011159 matrix material Substances 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 5
- 241000288673 Chiroptera Species 0.000 abstract description 26
- 230000003044 adaptive effect Effects 0.000 abstract description 9
- 230000002596 correlated effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002779 inactivation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0076—Distributed coding, e.g. network coding, involving channel coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0097—Relays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6225—Fixed service order, e.g. Round Robin
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Environmental & Geological Engineering (AREA)
Abstract
本发明涉及用于设备辅助通信的方法、装置和计算机可读介质。在具有突发或相关型丢失的网络中,BATS协议可以被用于高效通信。在中间网络节点处的***重新编码可以用于减少在重新编码期间的计算成本。可以利用基于块交织器的BATS协议来处理突发丢失,其中将各批次重新编码为同样数量的分组。自适应重新编码可以被用于提高吞吐量,其中,具有更高秩的批次被重新编码成更大数量的分组。使用自适应重新编码,可以利用基于非块交织器的BATS协议。
Description
技术领域
本发明大体涉及设备辅助通信,且更具体地,涉及用于有损通信网络的设备辅助通信协议。
背景技术
在有损网络通信(例如,无线网络通信)中,数据分组丢失是常见现象。例如,噪声和/或干扰可以改变或擦除部分发送的数据分组。可以检测到损坏的数据分组并将其视为丢失的分组。已经构思出若干种技术来恢复损坏的数据分组,包括前向纠错和线性网络编码。对于许多实际的应用,已经发现线性网络编码相对于单播和多播网络中的转发具有吞吐量增益。
可以通过使用随机线性网络编码(RLNC)来实现对于许多场景具有分组丢失的网络容量。在典型的RLNC方案中,源节点发送输入分组的随机线性组合,一个或多个中间节点发送其接收到的分组的随机线性组合,且目的节点一旦接收到具有线性无关编码向量的足够编码分组就可以对输入分组进行解码。由于网络编码自身可以扮演端到端纠删码(erasure code)的角色,所以不要求针对每个链路的纠删码。
然而,当在实际中实现RLNC方案时,要考虑若干问题。例如,编码和解码的计算成本、在中间节点处的存储和计算成本、以及用于系数向量的开销等。解决这些问题的常规尝试是无效的、低效的和/ 或非最优的。
发明内容
在具有突发或相关型丢失的网络中,BATS协议可以被用于高效通信。在重新编码期间,在中间网络节点处可以利用***重新编码 (systematic recoding)来减少计算成本。可以利用基于块交织器的 BATS协议来处理突发丢失,其中将各批次重新编码为同样数量的分组。自适应重新编码可以被用于提高吞吐量,其中,具有更高秩的批次被重新编码成更大数量的分组。使用自适应重新编码,可以利用基于非块交织器的BATS协议。
本专利中使用的术语“发明”、“所述发明”、“该发明”和“本发明”旨在广泛地指代本专利的所有主题和以下的专利权利要求。包含这些术语在内的声明应当被理解为不限制本文描述的主题或不限制以下专利权利要求的含义或范围。由本专利所覆盖的本发明的实施例是由以下权利要求而不是本概要所定义。本概要是本发明各方案的高度概述并介绍了一些将在以下具体实施方式部分中进一步描述的概念。本概要不意图标明所请求保护主题的关键特征或基本特征,也不意图单独用于确定所请求保护主题的范围。该主题应当通过参考本专利的全部说明书的适当部分、任何或全部附图以及每一项权利要求来理解。
附图说明
参考以下附图,将在下文详细描述本发明的说明性实施例:
图1是示出了根据本发明的至少一个实施例的示例通信环境的方案的示意图。
图2是示出了根据本发明的至少一个实施例的另一个示例通信环境的方案的示意图。
图3是示出了根据本发明的至少一个实施例的与网络节点的 BATS协议模块对应的方案的示意图。
图4是示出了根据本发明的至少一个实施例的并入了BATS协议模块的示例通信设备的方案的示意图。
图5是示出了根据本发明的至少一个实施例的由BF模块执行的示例过程的方案的流程图。
图6是示出了根据本发明的至少一个实施例的示例块交织方案的方案的示意图。
图7是示出了根据本发明的至少一个实施例的作为交织 BATSpro-1通信协议的一部分执行的示例过程的方案的流程图。
图8是根据本发明的至少一个实施例的表示用于优化每个批次中多个数据分组的示例算法的伪代码列表。
图9是根据本发明的至少一个实施例的表示用于优化每个批次中多个数据分组的另一个示例算法的伪代码列表。
图10是根据本发明的至少一个实施例的表示用于优化每个批次中多个数据分组的又一个示例算法的伪代码列表。
图11是示出了根据本发明的至少一个实施例的示例BATSpro-2 数据分组格式的方案的示意图。
图12是示出了根据本发明的至少一个实施例的BATSpro-2BF模块的示例子模块结构的方案的示意图。
图13是示出了根据本发明的至少一个实施例的用于重新编码的示例操作的流程图。
图14是示出了根据本发明的至少一个实施例的示例数据流状态的方案的示意图。
图15是示出了根据本发明的至少一个实施例的用于重新编码的示例操作的流程图。以及
图16是示出了根据本发明的一些实施例的示例计算设备的方案的示意图。
注意,贯穿本公开和附图,相同的数字用于引用相似的组件和特征。
具体实施方式
本文描述的本发明的实施例的主题的特性满足法定要求,但本说明书不一定意在限制权利要求的范围。所要求保护的主题可以用其它方式来体现,可以包括不同的元素或步骤,并可以结合其它现有的或未来的技术使用。除了当各个步骤的顺序或元素排列是显式描述时之外,本说明书不应被解释为在各种步骤或元素间暗示任何特定的顺序或排列。
BATS码是相对低复杂度的随机线性网络编码方案,其可以渐近实现非常接近具有分组丢失的分组网络的容量。在实际中采用BATS 码要求基于BATS码的网络传输协议(BATS协议)。根据本发明的至少一个实施例,在具有突发或相关型丢失的网络中,BATS协议被用于高效通信。例如,这些丢失类型发生在许多无线通信信道(包括 Wi-Fi、水下和卫星通信)中。在整个描述中,虽然线性网络拓扑被用作示例,但本领域技术人员将理解,线性网络是更一般的拓扑的构成单元(building block),且概念是更广泛适用的。
根据本发明的至少一个实施例,在重新编码期间,可以利用中间网络节点处的***重新编码来减少计算成本。可以利用基于块交织器的BATS协议来处理突发丢失,其中将各批次重新编码为同样数量的分组。自适应重新编码可以被用于提高吞吐量,其中,具有更高秩的批次被重新编码成更大数量的分组。使用自适应重新编码,可以利用基于非块交织器的BATS协议。
术语“数字数据分组”、“数据分组”和“分组”在整个描述中可以互换使用。这样的分组可以携带任何合适类型的数字数据,包括(但不限于):音频、视频或多媒体数据文件或流。
图1示出了根据本发明的至少一个实施例的示例网络100。该网络100是三跳线性网络。节点R0是一个或多个输入数据分组和/或输入数据流的源节点,节点R3是希望接收(经解码的)输入数据分组的目的节点,且节点R1和R2是不一定希望探查经解码的输入分组的中间节点。在网络100中,网络链路仅存在于两个相邻节点之间,并假定每条链路每个时隙发送一个分组。在图1的节点R0、R1、R2、 R3之间的箭头的方向指示了输入数据分组的数据流的主方向,但不排除相反方向的数据流,例如,信令数据流。
在网络100中,每个节点向线路上的下一个节点发送数据分组(例如,R0到R1、R1到R2、R2到R3)。假设在网络链路上发送的分组以概率p被独立擦除(例如,损坏)。如果中间节点仅应用转发(例如,使用前向纠错),则在L跳之后网络吞吐量的上界为(1-p)L。当每个时隙网络容量是(1-p)个分组时,网络吞吐量随L以指数方式减少。根据本发明的实施例,提供了解决这些问题的分批稀疏(BATS)码。虽然,为了清楚起见,本说明书经常引用图1的线性网络100,本文描述的BATS码和对应的BATS协议可以在具有多个源节点和/或目的节点的网络中使用(如图2中示出的示例网络200)。
图2示出了具有多播链路的示例树形无线网络200。节点R0是源节点,节点R3,1、R3,2、R3,3和R3,4是目的节点,且节点R1、R2,1 和R2,2是不一定希望探查经解码的输入分组的中间节点。在这个示例中,来自每个节点R1、R2,1和R2,2的两条出局链路共享对应的公共无线信道。此外,图2中箭头的方向指示数据流的主方向,但不排除相反方向的数据流。
为了在实际网络中实现BATS码,建立用于在节点间通信的BATS 协议。BATS码包括实现BATS协议的三种类型的分组数据处理模块中的一个或多个:编码模块、批次转发(BF)模块、和解码模块。图 3示意性地示出了与图1的节点R0、R1、R2、R3相对应的BATS协议模块300的示例布置。源节点302(本文也称为“第一节点”)运行对输入数据(例如,离散数据文件或连续数据流)进行编码的编码模块,汇聚(sink)节点308(本文也称为“最后一个节点”)运行对已编码的输入数据进行解码以产生与输入数据相对应的输出数据的解码模块,且每个中间节点304、306运行转发已编码的输入数据的BF模块。
图4是根据本发明的至少一个实施例的并入了BATS协议模块的示例通信设备400的示意图。通信设备400可以实现利用BATS协议模块来进行通信的应用402。例如,应用402可以与编码模块404进行交互以对数据流(例如,源或输入数据流)编码,且编码模块404 可以利用网络接口408通过网络来发送BATS编码数据流。通信设备 400也可以接收已编码的数据分组和/或流。例如,通信设备400可以使用网络接口408来接收已编码的数据流并向解码模块406提供已编码的数据流以产生解码数据流(例如,汇聚或输出数据流),解码数据流被传递到应用402以做进一步处理(例如,用于呈现给用户)。示例通信设备400也包括批次转发模块410。这样,通信设备400可以充当网络中的中间节点(例如图1描绘的网络100)。然而,根据本发明的备选实施例,且如图4中虚线样式所示,利用BATS协议的通信设备不需要并入批次转发模块410和/或担当网络中的中间节点。根据其他备选实施例,通信设备可以包括批次转发模块410,但不包括编码模块404或解码模块406。在这样的实施例中,通信设备可以被限制为充当中间节点。
诸如图1中的节点R0之类的源节点包括编码模块404。在高级别上,编码模块可以执行如下操作:
1)读取数据文件和/或数据流作为输入(本文中有时被称为“输入文件”或“输入数据”);
2)使用BATS编码算法来产生批次;以及
3)以协议特定顺序来输出所产生的批次的已编码的数据分组。
由BATS编码算法产生的分组可以表示为在大小为q的有限域F 上的列向量。这里,术语“域”在抽象代数意义上使用。每个分组包含来自F的T个符号。输入文件被分成K个输入分组。可以通过将分组集合加以并置,使用矩阵来表示分组集合。固定度分布(degreedistribution)Ψ=(Ψ0,Ψl,...,ΨD),其中D是最大度。
可以通过以下操作来产生批次:
1)对度分布Ψ取样并取得具有概率Ψd的度d。
2)以均匀随机的方式选择d个输入分组并通过并置这d个分组来形成矩阵B;以及
3)产生批次X=BG,其中,G是在有限域F上的d×M生成矩阵(这里,M是合适的整数,使得G是有限域F上的d×M生成矩阵)。
系数向量被嵌入到批次中的分组,其形成有限域F上的M×M 的单位矩阵。通过上述操作独立产生不同批次。可以用确定性方式来设计生成矩阵G或随机生成生成矩阵G,且生成矩阵G对于BATS 解码器来说是已知的(例如,解码模块406和/或它在另一个通信设备中的对应模块)。
为了提高输入分组的发送可靠性,可以利用最早为了Raptor编码而引入的预编码技术。例如,在应用批次编码处理之前,可首先使用传统的纠删码(称为预编码)对输入分组进行编码。然后可将批次编码过程应用到通过预编码来生成的预编码输入分组。
通过网络来发送批次的分组。在中间节点处使用BF模块410。 BF模块410可以执行以下操作:
1)接收已编码的分组作为输入;
2)通过对同一批次的分组执行线性编码来生成重新编码的分组;以及
3)按协议特定顺序来输出分组。
与诸如TCP/IP之类的常规网络通信协议不同,中间节点可以输出已接收到的分组的线性组合。由于这个原因,中间节点有时被称为重新编码器或重新编码节点。
在使用仅对属于同一批次的分组应用线性组合的规定的情况下,根据本发明的至少一个实施例的各种BF模块设计是可能的。由于在线性网络编码期间的操作是线性的,可构想出转移矩阵H。将在汇聚节点处接收到的批次分组并置为矩阵Y,我们有
Y=XH=BGH。 (1)
H的尺寸取决于该批次中接收到的分组的数量。假设接收到该批次中的r个分组,则H是M×r矩阵。矩阵H通过分组的系数向量在解码器处是已知的。
对于接收到的n个批次,定义hr是n个转移矩阵中秩为r的部分。转移矩阵的经验秩分布(empirical rank distribution)h=(h0,h1,..,hM) 可以促进良好的度分布。
诸如图1中的节点R3之类的目的节点包括解码模块406。在高级别上,解码模块可以执行如下操作:
1)接收已编码的数据分组作为输入;
2)使用BATS解码算法对分组解码;以及
3)输出经解码的数据文件和/或数据流。
根据本发明的至少一个实施例,存在针对BATS码的多种解码算法。在网络发送期间保留批次的度,使得例如可以将高效的置信传播 (BP)解码算法用于对所接收的分组进行联合解码。针对所接收到的批次,目的节点使用Y和对G和H的了解来尝试解码输入分组。如果rk(GH)等于度d,则批次是可解码的,即(1)中以B作为变量的线性***具有唯一解。对BATS码的BP解码持续寻找可解码的批次。如果找到可解码的批次,则通过求解相关联的线性***(1)来恢复该批次的输入分组且将已恢复的输入分组代入尚未解出的批次。如果不能找到可解码的批次,则BP解码停止。对于通常情况,用数值方式证明了具有BP解码的BATS码实现了非常接***均经验秩∑iihi的码率(每批次分组中可实现码率的理论上限)。
另一种技术被称为失活(inactivation)。如果输入分组的数量非常大,渐进优化的度分布将表现良好。如果输入分组的数量相对少,那么在对输入分组的所需部分解码之前BP解码趋向于停止。在BP解码停止后,使用失活可以继续解码处理。当没有可解码的批次,挑选未解码的输入分组并将其标记为失活的。虽然失活的分组是不确定的,但将失活分组像经解码的分组一样代入批次中。重复解码处理,直到输入分组要么被解码,要么是失活的。通过求解线性方程***,可以恢复失活的输入分组。
现在描述根据本发明的至少一个实施例的被称为BATSpro-1的 BATS协议。编码模块404在另一批次之前输出批次的分组。解码模块406如以上描述运行。在新的批次的分组到来之后,BF模块410 重新编码批次。在下一个重新编码处理之前,其产生每批次M个重新编码的分组并发送他们。
图5示出了根据本发明的至少一个实施例的可以由BF模块410 执行的示例过程500。BATS分组可以被接收(在502处)和保存(在 504处)。如果检测到新的批次(在506处),当前批次变成准备好的批次且新的批次变成当前批次(在508处)。准备好的批次的M个分组被重新编码(在510处),并发送M个重新编码的分组(在512处)。
***重新编码是存储并转发线性无关的分组的方法。该方法可以显著减少在重新编码处理期间所要求的有限域运算(在抽象代数意义上)的数量。假设重新编码器针对批次将产生t≥r个分组,其中r 是正确接收到的线性无关的分组的数量,即批次的秩。不产生全部t 个分组,通过针对接收到的r个分组使用随机线性组合,仅产生t-r 个分组。其余的r个重新编码的分组与r个接收到的分组相同,被称为***重新编码分组。
当链路损耗独立时,BATSpro-1可以很好地工作。然而,当链路损耗是突发式的,BATSpro-1的有效性可能降低。由于干扰和衰落,突发损耗是无线发送中的常见现象。此外,在实际中,突发错误的长度不是固定的。
根据本发明的至少一个实施例,块交织器可以将突发损耗变换为接近随机损耗(例如,使得损耗模式具有白噪声特征)。批次集合(例如,多个批次)形成块。块的大小被称为交织器的深度,由L表示。在新块的分组到来之后,节点针对前一块中的批次执行重新编码。其产生每批次M个重新编码分组并以循环(round-robin)方式发送每批次的一个分组,直到其发送了本块所有重新编码的分组为止。
图6示出了深度为4的块交织方案600的示例。每个矩形表示一个批次且长度表示重新编码的分组的数量。不同批次分组的数量相同。箭头表示由块交织器产生的发送序列。图7示出了根据本发明的至少一个实施例的可以由BF模块410执行以实现交织BATSpro-1的示例过程700。BATS分组可以被接收(在702处)和保存(在704处)。如果检测到新的块(在706处),当前块变成准备好的块且新的块变成当前块(在708处)。准备好的块中的每个批次的分组被重新编码成M 个分组(在710处),且以交织顺序(在712处)发送ML个重新编码的分组,例如,利用图6所示的块交织方案600。
对于重新编码器,分组丢失可能出现在前一链路。接收到的批次的秩最多与前一跳的同批次的秩相同。解码过程依赖于批次中线性无关的分组,且BATS码的可实现码率与每批次的期望秩相近。BF模块的目标是优化(例如,最大化)不同的批次中将在下一跳接收的线性无关分组的总数,例如最大化下一跳中各批次的转移矩阵的秩的和。
例如,假设重新编码器接收到秩为1的批次。在BATSpro-1中,重新编码器产生该批次的M个分组。该M个重新编码的分组是线性相关的。下一跳仅需要M个分组之一来取回整个批次,且其他正确接收到的分组是开销。根据本发明的至少一个实施例,可以向具有较低秩的批次自适应地分配较少的重新编码分组且向具有较高秩的批次分配较多的分组。这个方案被称为自适应重新编码,这是改进的协议 (BATSpro-2)的特征。
在BATSpro-2中,操作是在重新编码处理前确定重新编码的分组的最优数量。本文称这个处理为预重新编码。给定下一跳的分组丢失概率p。针对批次的集合L,可以预先计算表格:
令重新编码器产生L中批次b的tb个分组。令tb的和等于tmax, tmax是该批次集合的重新编码的分组的最大数量。然后图8所示的算法800可以找到在下一跳上具有最大期望的秩的tb集合。图9所示的算法900是算法800的近似备选,且在实际中更有用。图10所示的算法1000可以将近似方案的结果(例如修改算法900的输出)修改为更优化的结果。在算法800、900和1000中,符号rb代表批次b的秩(例如,与批次b相关联的转移矩阵的秩和/或统计观察到的该批次的秩,例如针对批次的线性无关接收的数据分组)。
使用自适应重新编码,不同批次中重新编码的分组的数量可以不同。有时,重新编码的分组的数量可以超过M,因此块交织器不能以上述方式工作。对于源节点,因为每批次具有M个分组,标准块交织器工作良好。
根据本发明的至少一个实施例,可对多个数据流应用交织器。一个批次出现在一个数据流中。在数据流中,另一批次跟随前一批次。图11示出了根据本发明的至少一个实施例的用于BATSpro-2的示例数据分组设计。批次ID字段1104用于识别不同的批次。这里,术语“字段”在信息处理意义上使用,例如,数据记录的预定义部分。系数向量1106是转移矩阵的列。有效载荷1108是编码/重新编码的数据。前一批次ID 1102是在同一数据流中前一批次的批次ID。分组p的四个字段(前一批次ID、批次ID、系数向量、有效负荷)分别由pJ,pI,pC和pB表示。
根据本发明的至少一个实施例,用于BATSpro-2的编码模块和解码模块可以类似于BATSpro-1的编码模块和解码模块。然而,用于 BATSpro-2的BF模块可以不同。图12示出了根据本发明的至少一个实施例的BATSpro-2BF模块1202的示例子模块结构1200。入局分组被转移到输入流管理单元(ISMU)1204,ISMU 1204处理乱序分组并指示完成批次。ISMU输出非乱序分组且这些分组被存储在高速缓存 1206中。重新编码单元1208从高速缓存中读取完成批次的分组,并执行预编码过程和重新编码过程,以产生重新编码分组。输出流管理单元(OSMU)1210管理数据流,向不同的数据流分配批次,并以交织顺序来发送流。数据流的分组来自重新编码单元(重新编码的分组) 和高速缓存(***重新编码分组)。除了字段pJ外,重新编码分组可以对应于接收到的分组。
ISMU 1204可以实现以下功能:
1)识别不同的输入数据流;
2)识别完成批次;
3)处理断流(broken stream);以及
4)处理乱序分组。
在存在分组丢失的情况下,输入分组具有交织顺序。信道中可能存在分组抖动,所以丢失分组的存在性不能通过接收时间差来检测。根据本发明的至少一个实施例,必须区分不同的数据流,因为指示完成批次的信息(例如,利用分组的pJ字段)取决于它的数据流。
图13示出了根据本发明的至少一个实施例的由ISMU 1204执行的示例过程1300。ISMU 1204管理记录输入数据流上的当前批次ID 的有效列表。开始时该列表是空的。此处假设不存在乱序分组。在1302 处,接收BATSpro-2分组。如果分组的字段pJ不在列表上(在1304 处判定),则分组被认为在新的未识别出的数据流中(在1306处)。分组的批次ID被加入列表。如果pJ在列表上而pI不在列表上(在1308 处判定),则该分组指示前一批次(其批次ID为pJ)是完成批次。该分组的批次ID代替了列表上的取值为pJ的项目并继承数据流(在1310 处)。如果pJ等于pI,则其是伪分组,指示该批次是完成批次(在1312 处)。如果pI在列表上而pJ不在列表上,则是个错误。这意味着两个流正在接收同一批次。可以通过将两个流合并在一起来处理该错误。在识别出完成批次后,向重新编码单元1208发送批次ID。
假设后续批次的分组丢失。数据流中的后续分组的pJ不能匹配有效列表中的任何项目。在这种情况下,分组被认为在新的数据流中。为每个数据流设置超时。如果数据流中没有新接收到的分组,该数据流被认为是断流。数据流中的最后批次被当做完成批次。移除有效列表中相应的项目。图14示出了该场景1400的示例(流1是断流,流 3尚未被识别)。
高速缓存1206的功能是提供存储设备,以支持对批次中的分组的读写。为了其他子模块的使用,记录统计数据,例如批次的秩。高速缓存根据分组的批次ID将分组加以存储和成组。由于输出数据流一次仅读取一个批次,如果高速缓存也存储重新编码的分组,则高速缓存可充当流的存储设备。
存在针对每批次设计的两个标志:“重新编码”和“选择”。当重新编码单元1208产生批次的重新编码分组时,例如,由预重新编码处理产生的数量,对标志“重新编码”进行标记。它指示OSMU 1210 不需要等待该批次更多的分组。如果OSMU选择了该批次,则对数据流标记“选择”。当标记了“选择”标志时,高速缓存将向重新编码单元发送批次ID,这表示该批次准备好在其变为完成批次后执行重新编码。
当批次的块完成预重新编码处理时,重新编码单元1208产生重新编码分组。当存在足够多的“选择”完成批次,根据预编码重新编码方案来计算该批次重新编码的分组的数量。之后,产生重新编码的分组并存储在高速缓存中。在存储完该批次最后的重新编码分组之后,在高速缓存中对标志“重新编码”进行标记。
ISMU 1210可以实现以下功能:
1)向输出数据流分配批次;
2)从其他子模块读取数据流的分组;以及
3)以交织顺序来输出数据流。
OSMU 1210管理输出数据流的当前批次ID。当发送流中批次的最后的分组时,该单元从高速缓存中选择批次作为后继者。该后继的批次在高速缓存中用“选择”来标记。后继者的候选是在高速缓存中没有被标记有“选择”标志的批次。向首先接收到的分组中具有最老的时间戳的完成批次给予候选的优先级。如果没有完成批次,则向具有最高秩的未完成批次给予优先级。如果存在具有同样优先级的多个候选,则随机选择任何一个。如果没有候选,OSMU 1210停止发送并等待直到存在候选。图15示出了根据本发明的至少一个实施例的可以由OSMU1210执行以选择后续者的示例过程1500。在1502处,检测到要求后继者。(在1504)考虑高速缓存中没有“选择”标志的批次。完成批次比未完成批次具有更高的优先级。在(在1506处检测到的) 完成批次中,选择首先接收到的分组中具有最老的时间戳的完成批次 (在1508处)。如果(在1510处检测到)没有完成批次,选择具有最高秩的未完成批次(在1512处)。如果在该轮中没有选择候选,则 OSMU等待并重复这个流程以找到后继者。
自适应重新编码方法导致具有不同数量的重新编码分组的批次。在数据流之一发送了批次的重新编码的分组之后,该数据流为空且 OSMU 1210选择批次(可能是未完成批次)作为后继者。如果它是未完成的批次,重新编码单元1208还未重新编码该批次。根据***重新编码分组与接收到的分组相同的事实,通过使用***重新编码分组(如果可用),OSMU 1210可以填入间隙。否则,OSMU 1210填入虚拟分组。
假设当前接收到的分组(***重新编码分组)被发送,使得数据流为空,OSMU 1210等待更多的重新编码分组。OSMU 1210的输出具有交织顺序。
根据至少一些实施例,用于消息编码的***、设备、方法、处理和/或操作可以用由一个或多个编程的计算机处理器(例如中央处理单元(CPU)或微处理器)执行的指令集的形式来全部或部分实现。这样的处理器可被并入由***的其他组件操作或与之通信的装置、服务器、客户端或其他计算设备中。例如,图16示出了根据本发明的一些实施例的可以在被配置为实现方法和/或处理的计算机设备和/或*** 1600中存在的元件的各方案。图16示出的子***经由***总线1602 互连。附加子***是例如打印机1604、键盘1606、固定盘1608、耦合到显示适配器1612的显示器1610。***设备和耦合到I/O控制器 1614的输入/输出(I/O)设备可以通过本领域已知的任何数量的手段 (例如串行端口1616)连接到计算机***。例如,可以利用串行端口 1616或外部接口1618将计算机设备1600连接到图16未示出的其他设备和/或***,包括广域网(例如互联网)、鼠标输入设备、和/或扫描仪。经由***总线1602的互连允许一个或多个处理器1620与每个子***通信并控制对可存储在***存储器1622和/或固定盘1608中的指令的执行,以及控制在子***之间对信息的交换。***存储器1622 和/或固定盘1608可以体现有形的计算机可读介质。
应当理解:如上所述,本发明可以使用具有模块化或集成方式的计算机软件以控制逻辑的形式来实现。备选地,或附加地,本发明的实施例可以部分或全部通过硬件实现,例如,通过一个或多个电路,如电子电路,光电路、模拟电路、数字电路、包括专用集成电路(“ASIC”) 和现场可编程门阵列(“FPGA”)在内的集成电路(“IC”,有时叫做“芯片”)、以及它们合适的组合。具体地,上面参考图2描述的编码器和/或解码器可以部分或全部以硬件实现。如对本领域的技术人员显而易见的:计算复杂性和计算效率的概念可以在进行了必要的修正的情况下应用于实现计算和/或算法的电路和/或线路中。基于本文的公开和教导,本领域的普通技术人员将知道和理解使用硬件和/或硬件和软件的结合来实现本发明的其它方式和/或方法。
任何在本申请中描述的软件组件、处理或功能可以作为软件代码来实现,该软件代码要由处理器通过利用任何适当的计算机语言(例如Java、C++或Perl)利用例如传统的或面向对象的技术来执行。软件代码可被存储为计算机可读介质上的一系列指令或命令,该计算机可读介质是例如随机存取存储器(RAM)、只读存储器(ROM)、磁性介质(例如硬盘驱动器或软盘)、或光学介质(例如CD-ROM)。任何这样的计算机可读介质可驻留在单个计算装置上或位于单个计算装置内,并可在***或网络内的不同计算装置上或计算装置内存在。
本文中引用的包括出版物、专利申请和专利在内的所有参考文件通过引用方式合并于此,就好像每个参考文件被单独且具体地指示为通过引用被并入和/或被全部阐述于此一样。附录A和附录B可以提供与上述本发明的一个或多个实施例相关的上下文和/或附加的细节。
在说明书和以下权利要求中对术语“一”、“一个”和“所述”及类似指示物的使用应当被解释为涵盖单数和复数这二者,除非本文另有指示或与上下文明显矛盾。在说明书和以下权利要求中的术语“具有”、“包括”、“包含”和类似指示物应当被解释为开放式术语(例如,“包括,但不限于,”),除非另有说明。除非本文中另外指示,否则本文中对值的范围的叙述仅意在用作分别参考落入该范围内(含该范围) 的各个值的便捷方法,并且各个单独值被并入本说明书中犹如其被单独在此叙述一样。可以按照任何适当顺序执行本文中描述的所有方法,除非本文中另外指出或者上下文另外明确地相反指示。本文中提供的对任何和所有示例或示例语言(例如,“诸如(例如)”)的使用仅意在更好地阐述本发明的实施例,且不对本发明的范围施加限制,除非另外要求。在说明书中的任何语言不应被认为指示任何非要求保护的元素作为本发明每个实施例的必要元素。
附图或上述描述的组件的不同布置以及没有示出或描述的组件和步骤是可能的。类似地,一些特征和子组合是有用的且可以不用参考其它的特征和子组合而使用。为了说明性的而非限制性的目的来描述本发明的实施例,且备选实施例对本专利的读者将变得显而易见。因此,本发明不限于上述或附图示出的实施例,且在不脱离所附权利要求的范围的前提下,可以做出各种实施例和修改。
Claims (18)
1.一种用于设备辅助通信的方法,所述方法包括:
在通信网络的重新编码节点处,接收与根据随机线性网络编码方案至少部分基于具有第一秩的生成矩阵来编码的数据分组的批次相关联的数据分组;
由所述重新编码节点来确定所述批次中正确接收到的线性无关的数据分组的第二秩;
由所述重新编码节点至少部分通过以下方式对数据分组的所述批次进行重新编码:(i)产生与所述第一秩和所述第二秩之差相对应的、所接收到的数据分组的多个随机线性组合以及(ii)提供与所述批次中正确接收到的线性无关数据分组相对应的数据分组作为重新编码批次中的剩余数据分组,其中,重新编码批次具有不同数量的数据分组,每个批次中的数据分组的数量至少部分通过针对下个通信链路来优化与多个批次相关联的总的预期秩来确定,优化总的预期秩包括:从所述多个批次的总的可能秩中减去每个批次的统计确定的秩;以及
提供数据分组的重新编码批次以向解码节点传播。
2.根据权利要求1所述的方法,其中,数据分组的批次由通信设备来编码,以辅助音频、视频或多媒体数据的通信。
3.根据权利要求1所述的方法,其中,所述解码节点对数据分组的重新编码批次进行解码并提供数据分组的解码批次以生成针对用户的呈现。
4.根据权利要求1所述的方法,其中,所述第一秩对应于与所接收的数据分组的批次相关联的转移矩阵的秩。
5.根据权利要求1所述的方法,其中,从编码节点或另一个重新编码节点接收数据分组的批次。
6.根据权利要求1所述的方法,其中,向另一个重新编码节点或解码节点发送数据分组的重新编码批次。
7.一种用于设备辅助通信的装置,所述装置包括重新编码组件,所述重新编码组件被至少配置为:
接收与根据随机线性网络编码方案至少部分基于生成矩阵来编码的数据分组的多个批次相关联的数据分组,数据分组的多个批次被分为块,每块具有大于一的预定数目的批次;
根据随机线性网络编码方案对批次的块中的每个批次进行重新编码,并禁止发送批次的块中的批次的已重新编码的数据分组,直到完成批次的块中的每个批次的重新编码,其中,重新编码批次具有不同数量的数据分组,每个批次中的数据分组的数量至少部分通过针对下个通信链路来优化与多个批次相关联的总的预期秩来确定,优化总的预期秩包括:从所述多个批次的总的可能秩中减去每个批次的统计确定的秩;以及
至少部分通过按发送顺序交织从批次的块中不同批次中选择的已重新编码的数据分组,来提供已重新编码的数据分组以向一个或多个解码节点传播。
8.根据权利要求7所述的装置,还包括具有所述重新编码组件的通信设备。
9.根据权利要求7所述的装置,其中,所述交织是针对批次的块中的批次以循环的方式执行的。
10.根据权利要求7所述的装置,其中,所述交织将与所接收的数据分组相关联的突发丢失模式转换为大体上随机丢失模式。
11.根据权利要求7所述的装置,其中,确定批次的块中的每个批次的重新编码完成包括:接收与不同块相关联的数据分组。
12.一个或多个计算机可读介质,其上总体具有计算机可执行指令,所述计算机可执行指令将一个或多个设备总体上至少配置为:
接收与根据随机线性网络编码方案至少部分基于生成矩阵来编码的数据分组的多个批次相关联的数据分组,数据分组的多个批次被分为块,每块具有大于一的预定数目的批次;
重新编码批次的块,使得与块中其它批次相比,向具有较低的转移矩阵秩的批次分配较少的重新编码数据分组,并与块中其它批次相比,向具有较高的转移矩阵秩的批次分配较多的重新编码数据分组,重新编码的批次具有不同数量的数据分组,其中,每个批次中的数据分组的数量至少部分通过针对下个通信链路来优化与多个批次相关联的总的预期秩来确定,优化总的预期秩包括:从所述多个批次的总的可能秩中减去每个批次的统计确定的秩;以及
提供数据分组的重新编码批次,以向一个或多个解码节点传播。
13.根据权利要求12所述的一个或多个计算机可读介质,其中,由重新编码组件执行所述重新编码且所述重新编码组件还被配置为:在重新编码批次的块之前,确定要向每个批次分配的重新编码数据分组的最优数量。
14.根据权利要求12所述的一个或多个计算机可读介质,其中,由重新编码组件执行所述重新编码且所述重新编码组件还被配置为向多个数据流分配重新编码的批次并对所述多个数据流中的至少一个数据流中的重新编码批次的数据分组进行交织。
15.根据权利要求14所述的一个或多个计算机可读介质,其中,每个重新编码数据分组具有识别包含所述重新编码数据分组在内的第一批次的第一批次标识符以及识别包含所述第一批次和第二批次在内的数据流中的所述第二批次的第二批次标识符。
16.根据权利要求15所述的一个或多个计算机可读介质,其中,所述第二批次标识符识别数据流中的前一批次。
17.根据权利要求14所述的一个或多个计算机可读介质,其中,至少部分通过向等待重新编码的候选批次分配优先级值来为数据流选择批次。
18.根据权利要求17所述的一个或多个计算机可读介质,其中,候选批次的优先级值至少部分基于与所述候选批次相关联的转移矩阵秩。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/871,257 | 2015-09-30 | ||
US14/871,257 US10425192B2 (en) | 2015-09-30 | 2015-09-30 | Loss-resilient protocols for communication networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107040334A CN107040334A (zh) | 2017-08-11 |
CN107040334B true CN107040334B (zh) | 2020-07-28 |
Family
ID=58409311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610857698.8A Active CN107040334B (zh) | 2015-09-30 | 2016-09-27 | 用于设备辅助通信的方法、装置和计算机可读介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10425192B2 (zh) |
CN (1) | CN107040334B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190097948A1 (en) * | 2017-09-28 | 2019-03-28 | Intel Corporation | Packet sequence batch processing |
CN110034854B (zh) * | 2018-11-15 | 2021-10-01 | 中国科学院大学 | 基于交织和随机线性网络编码的可靠数据传输方法 |
CN110113131B (zh) * | 2019-04-24 | 2021-06-15 | 香港中文大学(深圳) | 一种基于批编码的网络通信方法及*** |
CN111464458B (zh) * | 2020-04-03 | 2024-01-02 | 广州市百果园信息技术有限公司 | 抗丢包方法、装置、设备及存储介质 |
WO2022118324A1 (en) * | 2020-12-04 | 2022-06-09 | Ramot At Tel-Aviv University Ltd. | Method and system for network coding |
CN112804029A (zh) * | 2020-12-30 | 2021-05-14 | 西南交通大学 | 基于ldpc码的bats码的传输方法、装置、设备及可读存储介质 |
US11452003B1 (en) | 2021-04-01 | 2022-09-20 | The Chinese University Of Hong Kong | Compatible packet separation for communication networks |
CN113133033B (zh) * | 2021-04-25 | 2022-04-22 | 重庆邮电大学 | 一种拓扑感知随机线性网络编码重传方法 |
US20240089191A1 (en) | 2022-09-09 | 2024-03-14 | N-Hop Technologies Limited | Systems and methods for multi-phase recoding for batched network coding |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10355720B2 (en) * | 2001-04-26 | 2019-07-16 | Genghiscomm Holdings, LLC | Distributed software-defined radio |
JP5018776B2 (ja) * | 2006-06-29 | 2012-09-05 | 日本電気株式会社 | 通信装置および方法 |
US7912003B2 (en) * | 2007-06-27 | 2011-03-22 | Microsoft Corporation | Multipath forwarding algorithms using network coding |
TWI445323B (zh) * | 2010-12-21 | 2014-07-11 | Ind Tech Res Inst | 資料傳送的混合式編解碼裝置與方法 |
CN103493445B (zh) * | 2012-02-22 | 2015-12-02 | 北京大学深圳研究生院 | 一种ip组播数据的分层分发方法、*** |
US9240956B2 (en) * | 2012-03-11 | 2016-01-19 | Broadcom Corporation | Communication system using orbital angular momentum |
CA2820637A1 (en) * | 2013-06-19 | 2014-12-19 | The Governors Of The University Of Alberta | Network coding using an outer coding process |
CN103475453B (zh) * | 2013-09-02 | 2017-03-08 | 中山大学 | 基于随机线性网络编码的协作通信方法 |
CN103780351B (zh) * | 2014-01-25 | 2017-04-26 | 西安交通大学 | 解码转发协作通信***中对抗时间异步的发射和接收方法 |
CN104243098A (zh) * | 2014-09-23 | 2014-12-24 | 中国人民解放军理工大学 | 一种基于并行批次网络编码的传输方法 |
-
2015
- 2015-09-30 US US14/871,257 patent/US10425192B2/en active Active
-
2016
- 2016-09-27 CN CN201610857698.8A patent/CN107040334B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107040334A (zh) | 2017-08-11 |
US10425192B2 (en) | 2019-09-24 |
US20170093666A1 (en) | 2017-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107040334B (zh) | 用于设备辅助通信的方法、装置和计算机可读介质 | |
WO2012068969A9 (en) | Subset coding for communication systems | |
CN113612584A (zh) | 用于优化多路径数据传输的负载的***和方法 | |
US10548158B2 (en) | Message passing algorithm decoder and methods | |
CN109347604B (zh) | 一种基于分批稀疏码的多跳网络通信方法和*** | |
KR20120018805A (ko) | 레이트리스 코드를 이용한 순번 대기형 협력적인 무선 네트워크 구성 | |
KR102233371B1 (ko) | 멀티캐스트 네트워크에서의 릴레이 방법 및 장치 | |
CN113055285B (zh) | 基于mptcp与网络编码的自适应数据传输方法 | |
EP3342075A1 (en) | Random linear network encoded data transmission from user equipment | |
CN106998308B (zh) | 一种基于时变码本的稀疏码多址接入中的跳码传输方法 | |
CN106464432B (zh) | 低延迟包纠删编码 | |
JP2017516337A (ja) | ナイキストよりも高速の送信のためのシステムおよび方法 | |
US20110051729A1 (en) | Methods and apparatuses relating to pseudo random network coding design | |
WO2021084010A1 (en) | Communication devices and methods | |
US9264181B2 (en) | Communication system, method and receiver applicable thereto | |
CN107437976B (zh) | 一种数据处理方法及设备 | |
US20230422093A1 (en) | Communication Method and Communication Participant | |
CN107615810B (zh) | 用于在线网络代码的包头压缩***和方法 | |
US10098121B2 (en) | Iterative receiver and methods for decoding uplink wireless communications | |
CN115811381B (zh) | 网络通信方法、网络通信装置、电子设备及存储介质 | |
US20210367710A1 (en) | Apparatus and method for sending side-channel bits on an ethernet cable | |
CN113728572B (zh) | 通过参数初始化和重用来生成预定系数的线性网络编码 | |
Song et al. | Throughput analysis of interference cancellation-based random access with feedback | |
WO2013117133A1 (zh) | 一种网络编码的方法、中继装置及筛选装置 | |
Yin et al. | On the design of timeout-based recoders for batched network codes in the MU-MIMO regime |
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 |