CN113612585B - 用于优化多路径数据传输的负载的系统和方法 - Google Patents
用于优化多路径数据传输的负载的系统和方法 Download PDFInfo
- Publication number
- CN113612585B CN113612585B CN202110967379.3A CN202110967379A CN113612585B CN 113612585 B CN113612585 B CN 113612585B CN 202110967379 A CN202110967379 A CN 202110967379A CN 113612585 B CN113612585 B CN 113612585B
- Authority
- CN
- China
- Prior art keywords
- packets
- packet
- transmission
- network path
- communication
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 162
- 238000000034 method Methods 0.000 title claims abstract description 130
- 238000004891 communication Methods 0.000 claims abstract description 170
- 230000009897 systematic effect Effects 0.000 claims abstract description 68
- 238000012937 correction Methods 0.000 claims abstract description 30
- 230000015654 memory Effects 0.000 claims description 22
- 238000005457 optimization Methods 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 108091006146 Channels Proteins 0.000 description 192
- 239000000203 mixture Substances 0.000 description 68
- 230000006870 function Effects 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 19
- 239000013598 vector Substances 0.000 description 19
- 238000012031 short term test Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 12
- 239000000306 component Substances 0.000 description 8
- 241001522296 Erithacus rubecula Species 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 241000820057 Ithone Species 0.000 description 2
- 101100510333 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PKC1 gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/0041—Arrangements at the transmitter end
-
- 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
-
- 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/20—Arrangements for detecting or preventing errors in the information received using signal quality detector
-
- 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/14—Multichannel or multilink protocols
-
- 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/0096—Channel splitting in point-to-point links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及用于优化多路径数据传输的负载的系统和方法。一种多路径数据传输系统的控制单元,其在所述系统与前向错误校正并行地在这个系统的多个通信路径上发射数据段时优化所述路径的负载。所述控制单元基于每个路径的质量预测而确定在每个路径上发送的包的优化数目。所述所发射的包包含系统性包和经译码包。
Description
分案申请的相关信息
本案是分案申请。该分案的母案是申请日为2018年9月25日、申请号为201880062376.1、发明名称为“用于优化多路径数据传输的负载的系统和方法”的发明专利申请案。
相关申请案
本专利申请案请求2017年9月25日提交且以全文引用的方式并入本文中的美国专利申请案第15/714,303号的优先权权益。
本申请案还可能涉及2017年1月13日提交的美国专利申请案第15/405,874号和2017年1月20日提交的美国专利申请案第15/411,097号,所述申请案的揭示内容以引用的方式并入本文中。
技术领域
本文揭示的至少一些实施例涉及对数据进行编码以用于在不具有完全保真度的通信系统上的可靠且高效的发射,所述通信系统例如具有用于使用前向错误校正技术进行通信的并行信道的通信系统。
背景技术
前向错误校正(FEC)是一种通常用于校正在通信信道上的数据发射中的错误的译码技术。使用FEC,发送方在通信数据流中提供冗余数据,以使接收方能够检测接收到的数据中的错误和/或从正确接收的数据中恢复原始数据的副本,而不需要进行从接收方到发送方的反向通信来请求重新发射缺失数据或接收到的具有错误的数据。
FEC通过使用算法将原始信息转换成经信道编码输出来添加冗余数据。原始信息可或可不字面地呈现在经编码输出中。包含未修改输入的输出是系统性的,而不包含未修改输入的输出是非系统性的。接收方对非系统性输出进行解码以从接收到的输出重新汇编原始信息。无速率擦除码有可能从给定的原始符号集合产生无限编码符号序列,使得可从大小等于或大于原始符号的数目的编码符号子集中恢复原始符号。无速率FEC不具有固定码率。
发明内容
一方面而言,本申请提供了一种在计算设备中实施的方法,所述方法包括:通过所述计算设备将数据段分割成多个原始数据包;通过所述计算设备预测待用于将通信包发射到接收器的多个网络路径中的每一个的质量;通过所述计算设备基于针对相应网络路径所预测的所述质量确定供每个相应网络路径发射的通信包的总数目和针对每个相应网络路径的发射速率;通过所述计算设备产生待经由所述多个网络路径发射的多个第一通信包,其中所述多个第一通信包包含:(i)系统性包,所述系统性包中的每一个包含来自相应原始数据包的未修改的原始信息,和(ii)经译码包,所述经译码包中的每一个包含来自所述原始数据包中的多个中的至少一个的经修改的原始信息;以及通过所述计算设备经由所述多个网络路径将所述多个第一通信包中的至少一些并行地发射到所述接收器,其中所述多个第一通信包基于针对每个相应路径确定的所述总数目和所述发射速率而分布在所述多个网络路径当中。
另一方面而言,本申请提供了一种非暂时性计算机存储媒体,其存储当由计算设备执行时使得所述计算设备执行方法的指令,所述方法包括:通过所述计算设备将数据段分割成多个原始数据包;通过所述计算设备预测待用于将通信包发射到接收器的多个网络路径中的每一个的质量;通过所述计算设备基于针对相应网络路径所预测的所述质量确定供每个相应网络路径发射的通信包的总数目和针对每个相应网络路径的发射速率;通过所述计算设备产生待经由所述多个网络路径发射的多个第一通信包,其中所述多个第一通信包包含:(i)系统性包,所述系统性包中的每一个包含来自相应原始数据包的未修改的原始信息,和(ii)经译码包,所述经译码包中的每一个包含来自所述原始数据包中的多个中的至少一个的经修改的原始信息;以及通过所述计算设备经由所述多个网络路径将所述多个第一通信包中的至少一些并行地发射到所述接收器,其中所述多个第一通信包基于针对每个相应路径确定的所述总数目和所述发射速率而分布在所述多个网络路径当中。
另一方面而言,本申请提供了一种计算设备,其包括:至少一个微处理器;及存储指令的存储器,所述指令经配置以指示所述至少一个微处理器:将数据段分割成多个原始数据包;预测待用于将通信包发射到接收器的多个网络路径中的每一个的质量;基于针对相应网络路径所预测的所述质量确定供每个相应网络路径发射的通信包的总数目和针对每个相应网络路径的发射速率;产生待经由所述多个网络路径发射的多个第一通信包,其中所述多个第一通信包包含:(i)系统性包,所述系统性包中的每一个包含来自相应原始数据包的未修改的原始信息,和(ii)经译码包,所述经译码包中的每一个包含来自所述原始数据包中的多个中的至少一个的经修改的原始信息;以及经由所述多个网络路径将所述多个第一通信包中的至少一些并行地发射到所述接收器,其中所述多个第一通信包基于针对每个相应路径确定的所述总数目和所述发射速率而分布在所述多个网络路径当中。
附图说明
实施例是借助于实例而非限制在附图的图式中示出,在附图中相似参考指示类似元件。
图1展示根据一个实施例的用以在多个并行信道上经由FEC发射数据段的技术。
图2展示根据一个实施例的用以使用初始系统性相位在多个并行信道上经由FEC发射数据段的技术。
图3展示根据一个实施例的用以使用与其基本集合线性无关的经编码包在多个并行信道上经由FEC发射数据段的技术。
图4展示根据一个实施例的在多个并行信道上的系统性包的调度。
图5展示根据一个实施例的对经信道编码包的组合物的识别。
图6展示根据一个实施例的用以使用多个信道发射数据包的系统。
图7展示根据一个实施例的用以产生经信道编码包的方法。
图8展示根据一个实施例的发射数据段的方法。
图9示出在数据通信中用于通过将数据段划分为多个数据包以用于前向错误控制来发射数据段的开销成本。
图10示出一个实施例的通信包的数据结构。
图11示出在使用前向错误校正技术的数据段发射中的各种成本考虑。
图12展示根据一个实施例的发射数据段的方法。
图13展示可在其上实施本发明的方法的数据处理系统。
图14展示根据一个实施例的在服务器侧实施有控制单元的多路径数据传输系统。
图15展示根据一个实施例的多路径数据传输系统的控制单元的流程图。
图16示出根据一个实施例的在无丢包的情况下系统性包的理想化同步下载完成。
图17示出根据一个实施例的具有丢包、在解码之后无冗余的同步下载完成的理想情况。
图18示出根据一个实施例的异步下载时间,其中路径1在t4与t5之间不起作用。
图19示出根据一个实施例的在其已经解码之后自两个路径接收冗余包的接收器。
图20展示根据一个实施例的当存在限制{K(n)}的发射窗口时间时的重定位算法。
图21展示根据一个实施例的完整{K(n)}优化算法。
图22展示根据一个实施例的使接收到的系统性包的数目最大化的{S(n)}优化算法。
图23展示根据一个实施例的完整多路径负载均衡算法。
图24示出根据一个实施例的当BW=5Mbps及PLR=5%时发射速率与接收器观测到的PLR之间的示范性关联。
具体实施方式
以下描述和图式是说明性的且不应理解为限制性的。描述许多特定细节以提供透彻理解。然而,在某些情况下,不描述众所周知的或常规的细节以免混淆描述。本发明中对一个或一实施例的提及未必是指同一实施例;且这类提及意味着至少一个。
本文中所揭示的至少一些实施例提供在如图1中所示出的系统中提高经由多个通信信道进行数据发射的效率、可靠性和总体速度的解决方案。数据发射技术使用无速率FEC技术,其将原始数据段分割成等长的原始包并从原始包的各种子集的线性组合产生经信道译码包。
图1展示根据一个实施例的用以在多个并行信道上经由FEC发射数据段的技术。
在图1中,经由多个并行通信信道105、107、…、109发射数据段111。并行通信信道105、107、…、109的使用大体上提高了发射数据段111的总体速度。
然而,个别通信信道105、107、…、109的实际性能可在发射时发生变化。在信道(例如,105、107、…、或109)中的一或多个中发射的包可具有比经由其它信道(例如,105、107、…、或109)发射的其它包更长的随机延迟。因此,在发射时随机化在接收方装置中从信道105、107、…、109接收的组合包集合的序列。
因此,挑战在于在冗余数据减少和时间段缩短的情况下调度包以用于在通信信道105、107、…、109中发射,在所述缩短的时间段期间,经由并行通信信道105、107、…、109接收足够数目个有用的包,以用于与原始数据段111相同的经恢复数据段113的重建。
在图1中,将数据段111分割(101)或划分成具有相同长度的多个包121、123、125、…、127。可填补虚设字节,使得包121、123、125、…、127具有相同长度且因此允许使用前向错误校正技术。使用前向错误校正技术,系统信道编码(103)原始包121、123、125、…、127,以产生数据段111的不同经信道编码副本(还称为“包序列”或“序列”)115、117、…、119,所述数据段111在针对相应信道105、107、…、119的副本115、117、…、119中携载冗余信息。
举例来说,在图1中,使用典型前向错误校正技术产生的典型经信道编码包(例如,131、133、135、…、139;141、143、145、…、149、…、151、153、157、…、或159)是原始包121、123、125、…、127的随机子集的预定函数。所述预定函数通常产生原始包121、123、125、…、127的子集的线性组合(例如,通过异或(XOR)运算)作为经信道编码包。当经由信道105、107、…、109接收足够数目个经信道编码包时,可经由相应前向错误校正技术对接收到的经信道编码包集合进行解码,以提供原始包121、123、125、…、127集合并因此提供经恢复数据段113。
在图1中,个别信道(例如,105、107、…、或109)可能在数据发射质量方面是可靠的(例如,使用可靠的协议)。当存在缺失包或接收到具有错误的包时,可使用适当协议通过任何信道(例如,105、107、…、或109)请求重新发射缺失包或具有错误的包。然而,信道(例如,105、107、…、或109)的速度性能可能不一致,这会引起重新发射的延迟和重复。本文中所揭示的实施例提供通过减少重复(和因此无用)的数据和缩短用于发射足够的有用包集合以恢复数据段113的时间段来提高系统性能的解决方案。
在一些情况下,需要使用单独的发射器来通过信道105、107、…、109彼此独立地发送副本115、117、…、119。发射器可能不与彼此通信以协调其副本115、117、…、119的发射。图1的系统经配置以使得当接收方装置从信道105、107、…、109接收足够包的组合集合时,接收方装置可从接收到的包的组合集合产生与原始数据段111相同的经恢复数据段113,而无须等待完成副本115、117、…、119的发射。接收方装置可仅在完成副本115、117、…、119发射之前终止其接收操作和/或请求终止发射操作。
举例来说,当针对经恢复数据段113接收足够包的组合集合时,接收方装置向发射系统提供指示以终止信道105、107、…、109中副本115、117、…、119的剩余包的发射,使得网络资源可用于其它发射任务。
举例来说,接收方装置可使用信道105、107、…、109请求耦合到信道105、107、…、109的相应发射器终止其副本(例如,115、117、…、119)的发射。或者,接收方装置可使用信道105、107、…、109中的一个或单独通信信道通知集中式服务器,所述服务器随后进一步通知耦合到相应信道105、107、…、109的相应发射器以终止其发射。
图1的系统可通过将原始包作为初始包(或前导包)分布在副本115、117、…、119中来进一步改进,所述包在相应副本115、117、…、119的经信道编码包(或非系统性)的发射之前发射,如图2中所示出。
替代地或组合地,图1的系统可通过在使用前向错误校正技术随机选择原始包以用于信道编码时丢弃经信道编码包而进一步改进,鉴于在这类包的发射之前已经或可能由接收方装置接收的基本包集合,所述经信道编码包不会或不大可能有助于经恢复数据段113。因此,减少数据冗余,而不影响前向错误校正的性能,如图3中所示出。
一般来说,可组合图2和图3的技术。
此外,对于给定数目个原始包121、123、125、…、127和给定数目个信道(例如,105、107、…、109),系统可预先确定经信道编码包131、133、135、…、139、141、143、145、…、149、…、151、153、157、…、159的组合物。经信道编码包131、133、135、…、139、141、143、145、…、149、…、151、153、157、…或159的组合物识别用以产生经信道编码包的原始包121、123、125、…、127子集的一/多个标识。举例来说,在无原始包的实际数据的情况下,可基于原始包121、123、125、…、127的序列中的序列/位置编号(或另一类型的识别符号)来识别原始包121、123、125、…、127中的每一个。可在无原始包的实际数据的情况下存储经编码副本115、117、…、119的经信道编码包131、133、135、…、139、141、143、145、…、149、…、151、153、157、…、159的组合物。当原始包121、123、125、…、127的实际数据可用时,检索经信道编码包131、133、135、…、139、141、143、145、…、149、…、151、153、157、…、159的组合物以组合由组合物识别的相应原始包121、123、125、…、127以产生相应经信道编码包131、133、135、…、139、141、143、145、…、149、…、151、153、157、…、159。
举例来说,在发射时,发射器接收原始包121、123、125、…、127集合和经信道编码包(例如,131、133、135、…、139、141、143、145、…、149、…或151、153、157、…、159)的经调度序列的组合物的序列。发射器根据组合物组合原始包121、123、125、…、127以恰好在发射所产生包之前产生相应经信道编码包以供在相应信道(例如,105、107、…或109)上发射。因此,当接收方装置发信号通知提前终止发射时,无须实际上产生和/或存储剩余经信道编码包。
图2展示根据一个实施例的用以使用初始系统性相位在多个并行信道上经由FEC发射数据段的技术。举例来说,图2的技术可用于图1中所示出的系统。
在图2中,经调度以经由相应信道(例如,105、107、…、109)发射的每个副本(例如,115、117、…或119)具有经调度包121、127、135、…、139、123、143、145、…、149、…或125、153、157、…、159的序列。副本115、117、…、119具有对应于原始包121、123、125、…、127集合的初始包121、123、…、125、127集合。
在信道105、107、…、109中的每一个中,在相应副本(例如,115、117、…、119)的其它包之前发射相应副本(例如,115、117、…、119)的初始包。举例来说,在副本X115的包135、…、139的发射之前发射副本X 115的初始包121、127;在副本Y 117的包143、145、…、149的发射之前发射副本Y 117的初始包123;且在副本Z 119的包153、155、…、159的发射之前发射副本Z 119的初始包125。
通过将原始包121、123、125、…、127集合分布到副本115、117、…、119来产生/识别初始包121、123、…、125、127。
举例来说,当信道105、107、…、109具有相同标称/平均/预期发射速度时,原始包121、123、125、…、127可基本上均匀地分布到副本115、117、…、119。举例来说,原始包121、123、125、…、127可根据轮选方案一次一个地分布到副本,直到所有原始包121、123、125、…、127均分布到副本115、117、…、119为止。或者,系统计算原始包的平均数目(例如,通过将包的数目除以信道的数目并取结果的整数部分),将原始包的平均数目指配到每个副本,并将剩余未指配的包一次一个地随机分布到副本115、117、…、119,直到所有原始包121、123、125、…、127均经指配为止。
在信道105、107、…、109具有基本上不同的标称/平均/预期发射速度的情况下,原始包121、123、125、…、127可以大致等于其标称/平均/预期发射速度的比率的比率分布到副本115、117、…、119。
在所有原始包已作为副本(例如,115、117、…、119)的初始包分布后,经信道编码包(例如,135、143、145、…、149、153、157、…、159)经产生且添加到副本(例如,115、117、…、119)。给定副本(例如,115)的每个经信道编码包(例如,135)可从所有原始包(例如,121、123、125、…、127)的随机选定子集的线性组合产生。
优选地,给定副本(例如,115)的每个经信道编码包(例如,135)可从由除了给定副本(例如,115)之外的其它副本(例如,117、…、119)携载的原始包(例如,123、125)的随机选定子集的线性组合产生。换句话说,由给定副本(例如,115)携载的原始包(例如,121、127)集合不用于所述给定副本(例如,115)的经信道编码包(例如,135、…、139)的产生。这是因为在接收到所述给定副本(例如,115)的经信道编码包(例如,135)的时候,接收方装置将已经接收所述给定副本(例如,115)所携载的所有原始包(例如,121、127)。排除这些原始包将降低计算复杂度和产生无用经信道编码包的概率。
图3展示根据一个实施例的用以使用与其基本集合线性无关的经信道编码包在多个并行信道上经由FEC发射数据段的技术。举例来说,图3的技术可用于图1和/或2中所示出的系统中。
在图3中,每个信道105、107、…、109内的数据包的发射是可靠的。因此,在信道(例如,105)中发射后续包(例如,135)时,接收方装置已正确地接收在后续包(例如,135)之前已在同一信道(例如,105)中发射的数据包(例如,131、133)。因此,与接收的数据包(例如,131、133)线性相关的后续经信道编码包(例如,135)的候选者是无用的且可丢弃。
此外,到在信道(例如,105)中发射后续包(例如,135)的时候,很可能接收方装置已接收在其它信道(例如,107、…、109)中发射的初始包(例如,141、…、151)。后续包(例如,135)可被视为具有包131、133、141、…、151的基本集合161,其包含经调度以在后续包(例如,135)之前发射的同一信道(例如,105)中的所有包(例如,131、133)以及很可能在发射后续包(例如,135)之前已经由其它信道(例如,107、…、109)到达接收方装置的其它信道(例如,107、…、109)的初始包(例如,141、…、151)。与基本集合线性相关的后续包(例如,135)的候选者很可能是无用的且因此可丢弃。
为了确保/改进经信道编码包135的有用性,图3的系统经配置以识别后续经信道编码包135以使得其与包131、133、141…151的基本集合161线性无关,其中基本集合161包含在后续经信道编码包135之前在副本115中经调度的所有包(例如,131、133),以及其它副本117、…、119的某些初始包(例如,141、…、151)。
在针对后续包135的基本集合161确定其它副本117、…、119的初始包(例如,141、…、151)时,假定基本集合161不足以产生经恢复数据段113,这触发在信道105中发射后续包135的需要。因此,基本集合161经识别以包含比整个原始包121、123、125、…、127集合更少的包。
此外,假定其它信道(例如,107、…、109)已根据其标称/平均/预期发射速度的比率发射其初始包。举例来说,当其它信道(例如,107、…、109)具有相等的标称/平均/预期发射速度时,针对后续包135的基本集合161从其它副本(例如,117、…、119)选择相同数目个初始包。
举例来说,可以如下方式针对副本115的后续包135的基本集合161选择其它副本117、…、119的初始包(例如,141、…、151)。系统通过将原始包121、123、125、…、127的数目减少副本115中的初始包的数目直到并包含后续包135来确定将要在其它副本117、…、119中发射的剩余包数目。系统随后将剩余包数目分布到其它副本117、…、119(例如根据其标称/平均/预期发射速度的比率)。分布到其它副本117、…、119的包的数目识别包含在副本115的后续包135的基本集合161中的其它副本117、…、119的初始包(例如,141、…、151)的对应数目。
举例来说,存在K个原始包121、123、125、…、127;后续包135是副本115中的第k个包;且系统使用M个信道105、107、…、109并行地分别发射M个副本115、117、…、119。待分布到其它副本117、…、119的剩余包数目是(K-k)个。当其它信道107、…、109具有相同标称/平均/预期发射速度时,其它副本(例如,117、…、119)具有经选择为后续包135的基本集合161的其相应副本117、…、119的(K-k)/(M-1)个初始包的平均数。当(K-k)/(M-1)不是整数,且d是最接近(K-k)/(M-1)但不大于(K-k)/(M-1)的整数时,可选择基本集合161以包含其它副本(例如,117、…、119)中的每一个的最初的d个包。任选地,基本集合161可进一步包含来自其它副本(例如,117、…、119)中的(K-k)-d*(M-1)个随机选择的副本的额外初始包。
此外,当信道105、107、…、109具有相同标称/平均/预期发射速度时,从每个其它副本(例如,117、…、119)选择的初始包的数目不超过k-1,因为在发射信道105中的第k个包时,预期每个其它副本(例如,117、…、119)的不超过k-1个包已经通过每个其它信道107、…、109发射。
经信道编码包的组合物可用以识别后续包135的候选者是否与基本集合161线性相关。经信道编码包(例如,135)的组合物识别用于产生经信道编码包(例如,135)的原始包121、123、125、…、127的子集。更具体地,经信道编码包(例如,135)的组合物识别原始包121、123、125、…、127中的哪些用于和哪些不用于产生经信道编码包(例如,135)。举例来说,经信道编码包的组合物可由符号的向量表示,其中向量的第i个符号在第i个原始包不用于产生经信道编码包时为零,或在第i个原始包用于产生经信道编码包时为一。
可选择后续包135使得后续包135的组合物向量与基本集合161中的包131、133、141、…、151的组合物向量线性无关。举例来说,当前向错误校正技术用以选择原始包121、123、125、…、127的随机子集以产生后续包135时,系统检查随机子集是否具有与基本集合161中的包的组合物线性无关的组合物;如果是,那么将随机子集视为后续包135的组合物;否则,丢弃所述随机子集,并选择另一随机子集。
由于在副本(例如,115)中经调度的每个后续包(例如,135)与在同一副本(例如,115)中在后续包之前经调度的包至少线性无关,因此副本(例如,115)至多需要相同计数的包(例如,131、133、135、…、139)作为原始包121、123、125、…、127。
图4展示根据一个实施例的在多个并行信道上的系统性包的调度。举例来说,图4的调度技术可用于图2的系统中。
在图4中,通过将原始包121、123、…、125、127集合轮选分配(163)到副本115、117、…、119来产生副本115、117、…、119的初始包121、123、…、125、127。如上文所论述,可根据用以并行地发射副本115、117、…、119的信道的标称/平均/预期发射速度的比率来执行轮选分配(163)。
可在无原始包121、123、…、125、127的实际数据的情况下执行轮选分配(163)。初始系统性包121、123、…、125、127的组合物识别字面地复制到相应初始系统性包121、123、…、125、127中的相应原始包121、123、…、125、127。
一般来说且更优选,可使用任何前向错误校正技术以如图3或图5中所示出的方式产生副本115、117、…、119的后续经信道编码包。
图5展示根据一个实施例的对经信道编码包143的组合物166的识别。举例来说,图5的调度技术可与图3或图4的技术组合使用。尽管图5示出副本115、117、…、119的初始包集合是原始包的实例,但图5的方法也可适用于副本115、117、…、119中的经信道编码初始包的使用。
在图5中,基本集合165经识别用于经调度以在副本117中的包123之后发射的包143。基本集合165不足以重构原始包121、123、…、125、127的整个集合;且基本集合165包含预期(或最可能)在副本115、117、…、119使用多个信道(例如,105、107、…、109)并行地发射的情况下在将发射包143时已在接收方装置中接收的包。上文结合图3论述了用以识别基本集合165的方法的实例。
在图5中,将基本集合165中的包的组合物用于识别经信道编码包143的组合物166。具体地,通过从原始包121、123、…、125、127随机地选择(167)子集(例如,根据前向错误校正技术的分布函数)而产生组合物166。在图5中,组合物166中的实线加框包(例如,121、…、125)示出为经选择用于产生经信道编码包143的子集的包;且组合物166中的虚线加框包(例如,123、…、127)示出为未经选择用于产生经信道编码包143的包。在图5中,重复子集的随机选择(例如,根据预定分布函数)直到选定子集的组合物向量与基本集合165中的包(例如,121、123、…、125)的组合物向量线性无关为止。经信道编码包143的所选组合物166确保包143是有用的,且因此当在信道解码期间其与基本集合165中的包121、123、…、125组合使用时不是冗余的。由于在选择后续经信道编码包的组合物期间预先过滤至少一些无用包,因此技术提高了在发射经信道编码副本115、117、…、119期间网络信道的使用效率。
此外,为了降低计算复杂度,可选择组合物166使得在组合物166中经选择用以计算副本117的经信道编码包143的包(例如,121、…、125)不包含经调度以在经信道编码包143之前在副本117中发射的原始包(例如,123)和/或不包含基本集合165中的原始包121、123、…、125。举例来说,组合物166的包的随机选择可限于不包含副本117的前导原始包(例如,123)和/或基本集合165中的原始包121、123、…、125的原始包子集,以降低信道编码时的计算复杂度和产生与基本集合165线性相关的组合物的概率。
可存储组合物166作为中间结果以使得在将使用实际包143(例如,用于在通信信道上的发射)时的稍后时间,组合物166可用以选择原始包,所述原始包经组合(169)(例如,经由异或(XOR)或另一线性组合函数)以产生经信道编码包143的内容。
由于后续包143的调度不需要原始包121、123、…、125、127的实际数据/内容,因此可基于已在副本115、117、…、119中经调度的包的经存储组合物来以类似方式执行其它后续包的原始包121、123、…、125、127的选择(167)。因此,在无实际分组数据/内容的情况下,可为预定数目个原始包121、123、…、125、127预先计算和存储副本115、117、…、119中的所有包的组合物。这允许在发射之前和在包121、123、…、125、127的内容变得可用之前对包进行调度。在发射时,发射器检索在相应副本(例如,117)中经调度的包的组合物并根据组合物(例如,166)组合原始包以及时产生包(例如,143)以供发射。
图6展示根据一个实施例的用以使用多个信道发射数据包的系统。举例来说,图6的系统可经实施以使用图1、2和/或3的技术。
在图6中,调度器225基于产生经信道编码包(例如,255、257、…、259)的原始包121、123、125、…、127的数目221以及将用于发射经信道编码包(例如,255、257、…、259)的信道105、107、…、109的数目223,来计算经信道编码包(例如,255、257、…、259)的组合物的序列235、237、…、239。
举例来说,可使用图4的方法确定序列235、237、…、239的初始经信道编码包的组合物;且可使用图5的方法确定序列235、237、…、239的后续经信道编码包的组合物。
或者,可基于随机过程而不使用图4和/或图5的方法来确定序列235、237、…、239的初始经信道编码包和/或序列235、237、…、239的后续经信道编码包中的至少一些的组合物。
在图6中,将组合物的序列235、237、…、239提供到与相应信道105、107、…、109耦合的发射器245、247、…、249以用于相应经信道编码包255、257、…、259的发射。发射器245、247、…、249接收原始包121、123、125、…、127的相同副本。使用组合物的相应序列235、237、…、239,发射器245、247、…、249将预先确定的函数(例如,XOR)应用到在相应组合物中识别的原始包,以产生经信道编码包255、257、…、259的序列以供发射到接收方装置229。
优选地,在已通过相应信道(例如,105、107、…、109)成功地发射序列(例如,235、237、…或239)中经调度在后续经信道编码包之前的经信道编码包之后,发射器245、247、…、249中的每一个产生序列的后续经信道编码包。
或者,经信道编码包(例如,255、257、…、259)可在发射之前预先产生。举例来说,调度器225可产生经信道编码包(例如,255、257、…、259)的序列且将经信道编码包(例如,255、257、…、259)直接提供到发射器(例如,245、247、…、249),而不是提供原始包121、123、125、…、127和经信道编码包255、257、…、259的组合物的序列235、237、…、239的组合。在一些情况下,一些发射器(例如,247)经配置以接收序列经信道编码包(例如,257),而其它发射器(例如,245)经配置以接收组合物的序列(例如,235)和原始包(例如,121、123、125、…、127)以在其发射期间在运行中产生经信道编码包(例如,255)。
在图6中,发射器245、247、…、249使用信道105、107、…、109并行地发射经信道编码包255、257、…、259。然而,归因于实时性能变化,可部分地随机化由接收方装置229从信道105、107、…、109获得的接收到的包227的序列。当接收方装置229经由信道105、107、…、109的任何组合接收足够数目个经信道编码包时,接收方装置229可使用前向错误校正技术来完全恢复原始包121、123、125、…、127的序列以用于信道解码。
图6的系统允许发射器245、247、…、249在不彼此协调的情况下发射其相应的经编码包255、257、…、259的序列。经编码包(例如,255、257、…、259)的序列(例如,235、237、…、239)是预定的且在发射期间不改变。因此,不需要从接收方装置229到发射器245、247、…、249的反向通信和/或用于协调跨信道105、107、…、109产生经信道编码包的调度器225。
任选地,在所接收包227的集合足以恢复原始包121、123、125、…、127的原始序列之后和在相应发射器245、247、…、249完成其经编码包的全序列235、237、…、239的发射之前,接收方装置229个别地请求发射器245、247、…、249中的至少一些终止其发射。
接收方装置可将任何接收到的原始包依次传送到应用程序(例如,视频播放器),确定接收到的经信道编码包中的任一个是否是有用的,且如果已接收到足够有用的包,那么其使得跨并行信道105、107、…、109的发射终止,并应用FEC解码以恢复所有原始包121、123、125、…、127。
图7展示根据一个实施例的用以产生经信道编码包的方法。举例来说,图6的调度器225可使用图7的方法来确定/选择(167)图5中所示出的包143的组合物166或产生图3中所示出的后续包135。
在图7中,调度器225经配置以:确定(171)经调度以在第一信道(例如,105)中在经信道编码包135之前发射的包(例如,131、133)的第一数目;以及确定(173)经调度以在第二信道(例如,107、…、109)中发射的包(例如,141、…、151)的第二数目。第一数目的包(例如,131、133)和第二数目的包(例如,141、…、151)形成基本集合161,其中基本集合161中的包(例如,131、133、141、…、151)少于将经由第一和第二信道(例如,105、107、…、109)发射的原始包(例如,121、123、125、…、127)的总数目。
调度器225识别(175)原始包121、123、…、127的随机选择的子集以用于根据前向错误校正译码方法产生经编码包(例如,135)。如果确定(177)子集与基本集合161线性相关(例如基于其组合物向量),那么丢弃所述子集;且计算装置识别(175)另一随机选择的子集,直到确定(177)子集与基本集合161中的包(例如,131、133、141、…、151)线性无关为止。子集的识别提供经调度以在第一信道(例如,105)中在第一数目的包(例如,131、133)之后发射的经编码包(例如,135)的组合物。
在图7中,调度器225(或发射器245、247、…、249)或另一装置)从用于在第一信道105中在第一数目的包(例如,131、133)之后发射的子集的线性组合(例如,XOR)产生(179)经编码包135。
图8展示根据一个实施例的发射数据段的方法。举例来说,图8的方法可在图6中所示出的系统中实施。
在图8中,调度器225经配置以通过使用轮选方法(163)将原始包121、123、…、125、127分布到信道来调度(181)原始包121、123、…、125、127的序列在多个信道105、107、…、109中的发射。优选地,分布到多个信道105、107、…、109的原始包121、123、…、125、127用作在发射其它后续非系统性经信道编码包之前经调度以在相应信道中发射的系统性经信道编码包。
在图8中,对于将在信道中的每个相应信道(例如,105)中发射的每个后续包(例如,135),调度器225识别包(例如,131、133、141、…、151)的基本集合(例如,161),其可包含经调度以用于在后续包(例如,135)之前在相应信道(例如,105)中发射的所有包(例如,131、133)和任选的经调度以用于在除用于后续包(例如,135)的所述相应信道(例如,105)外的信道(例如,107、…、109)中的每一个中并行发射的一或多个包(例如,141、…、151)。
在图8中,调度器225针对后续包(例如,135)识别(185)原始包(例如,如通过图5中的后续包(例如,143)的组合物166所识别的123、…、125、127的子集,以使得子集的组合物向量与基本集合中的包的组合物向量线性无关。可根据前向错误校正技术随机选择子集,直到子集具有与基本集合中的包的组合物线性无关的组合物为止。
在图8中,调度器225针对后续包(例如,135)存储(187)原始包的子集的标识作为后续包(例如,135)的组合物。
在接收(189)原始包121、123、125、…、127之后,调度器225(或发射器(例如,245),或另一装置)根据存储的标识或存储的后续包(例如,135)的组合物来线性地组合(191)原始包的子集,以产生后续包(例如,135)。
在发射经调度以用于在后续包(例如,135)之前在相应信道(例如,105)中发射的包(例如,131、133)之后,发射器(例如,245)在相应信道(例如,105)中发射(193)后续包(例如,135)。
在一个方面中,一种在计算设备中实施的方法包含:由计算设备从数据段111产生具有相同长度的多个第一数据包121、123、125、…、127以经由多个并行通信信道105、107、…、109发射;以及由计算设备(例如,使用调度器225)从第一数据包121、123、125、…、127识别分别用于所述多个并行通信信道105、107、…、109的多个包序列115、117、…、119。所述多个包序列中的每个相应序列(例如,115)包含:一个或多个初始包(例如,131),其为原始包121、123、125、…、127且经调度以在相应序列(例如,115)中的后续包(例如,133、135、…、139)之前发射;以及后续包(例如,135),其为原始包(例如,121、123、…、127)的子集的线性组合。所述方法进一步包含由计算设备(例如,使用发射器245、247、…、249)分别在多个并行通信信道105、107、…、109中发射包的多个序列115、117、…、119。
在发射期间,耦合到多个并行通信信道105、107、…、109的接收方装置229经配置以确定经由并行通信信道105、107、…、109接收的所接收包227集合是否足以重构数据段111。响应于确定接收到的包227集合足以重构数据段111,接收方装置229立即终止经信道编码包的序列的发射。或者,接收方装置229向计算设备发射指示符以停止经信道编码包的序列的发射。
在方面的一个实施例中,根据前向错误校正技术产生后续包135,其中经由预定功能(例如,线性组合、异或(XOR)运算)组合原始包121、123、125、…、127的随机选择的子集。
在方面的一个实施例中,所述方法包含根据轮选调度(163)将多个原始包(例如,121、123、125、…、127)分布到分别用于多个并行通信信道(例如,105、107、…、109)的多个包序列(例如,115、117、…、119)。替代地,所述方法包含将多个原始包(例如,121、123、125、…、127)依序分布到用于多个并行通信信道(例如,105、107、…、109)的多个包序列(例如,115、117、…、119)。
在方面的一个实施例中,将后续包(例如,135)选择为与包含原始包(例如,131)且经调度以在后续包135之前在相应信道(例如,105)中发射的包(例如,131、133)线性无关。后续包可进一步经选择为与在除其中发射后续包135的相应信道(例如,105)外的多个并行通信信道(例如,107、…、109)中发射的其它包(例如,141、…、151)线性无关。
在另一方面中,一种在计算设备中实施的方法包含:由计算设备从数据段111产生具有相同长度的多个原始包121、123、125、…、127以经由多个并行通信信道105、107、…、109发射;以及由计算设备(例如,使用调度器225)从原始包识别分别用于多个并行通信信道105、107、…、109的多个包序列115、117、…、119。所述多个包序列中的每个相应序列(例如,115)包含后续包(例如,135),其经调度以在多个并行通信信道中的相应信道(例如,105)中发射且与经调度以在后续包(例如,135)之前在相应信道(例如,105)中发射的包(例如,131、133)线性无关。此外,后续包(例如,135)为原始包(例如,121、123、125、…、127)的子集的线性组合。所述方法进一步包含由计算设备(例如,使用发射器245、247、…、249)分别在多个并行通信信道105、107、…、109中发射包的多个序列115、117、…、119。在发射期间,耦合到多个并行通信信道105、107、…、109的接收方装置229经配置以确定经由并行通信信道105、107、…、109接收的所接收包227集合是否足以重构数据段111;且响应于确定接收到的包227集合足以重构数据段111,接收方装置229立即终止经信道编码包的序列的发射。或者,接收方装置229向计算设备发射指示符以停止序列115、117、…、119的剩余部分的发射。
在这个方面的一个实施例中,后续包135进一步经选择为与在除其中发射后续包135的相应信道105外的多个并行通信信道107、…、109中发射的其它包(例如,141、…、151)线性无关。举例来说,所述其它包(例如,141、…、151)均匀分布于除其中发射后续包135的相应信道105外的多个并行通信信道(例如,107、…109)中。
在这个方面的一个实施例中,用于其它信道(例如,107、…、109)的其它包141、…、151和经调度以在后续包135之前在相应信道105中发射的包(例如,131、133)形成包的基本集合161;基本集合161经选择为具有比所述多个原始包121、123、125、…、127少的包;且后续包135经选择为与数据包的基本集合线性无关。
在这个方面的一个实施例中,根据前向错误校正技术产生后续包(例如,135),所述技术根据预定分布随机地选择原始包121、123、125、…、127的子集,且使用线性函数(例如,异或(XOR))组合原始包121、123、125、…、127的子集。重复随机选择,直到所选子集与基本集合161线性无关为止。
在这个方面的一个实施例中,方法进一步包含:根据轮选调度(163)将多个原始包121、123、125、…、127分布到多个包序列115、117、…、119作为包序列115、117、…、119的初始包。或者,方法进一步包含:将多个原始包121、123、125、…、127依序分布到多个包序列115、117、…、119作为包序列115、117、…、119的初始包。
在另一方面中,一种在计算设备中实施的方法包含:由计算设备(例如,使用调度器225识别包的多个序列115、117、…、119的组合物(例如,166)以分别经由多个并行通信信道(例如,105、107、…、109)发射以将预定数目的具有相同长度的原始包121、123、125、…、127传送到接收方装置229。多个包序列中的每个相应包(例如,143)的组合物(例如,166)包含原始包121、123、125、…、127当中将用以产生相应包(例如,143)的每个包的标识;且多个序列中的每个相应序列(例如,117)包含作为由后续包143的组合物(例如,166)识别的原始包(例如,121、123、…、125、127)的子集的线性组合的至少一个后续包143以实现前向错误校正。计算设备存储经信道编码包(例如,131、133、135、…、139、141、143、145、…、149、151、153、155、…、159)的组合物的序列235、237、…、239。在接收数据段111之后,计算设备从数据段111产生预定数目的原始包121、123、125、…、127并检索组合物的序列235、237、…、239以根据组合物从原始包121、123、125、…、127产生经信道编码包。计算设备使用发射器245、247、…、249分别在多个并行通信信道105、107、…、109中发射经信道编码包255、257、…、259的多个序列。在发射期间,接收方装置229确定经由并行通信信道105、107、109接收的所接收包227的当前集合是否足以重构数据段111;且如果是,那么接收方装置229立即终止信道105、107、…、109中的每一个中的剩余包的发射,或向计算设备发射指示符(例如,经由发射器245、247、…、249)以停止信道105、107、…、109中的每一个中的剩余包的发射。
在这个方面的一个实施例中,序列115、117、…、119的识别包含首先根据轮选或依序调度163将多个原始包121、123、125、…、127分布到多个序列115、117、…、119,作为序列115、117、…、119的初始包。
在这个方面的一个实施例中,基于对由相应经信道编码包的组合物识别的原始包121、123、125、…、127的子集应用的异或(XOR)运算根据组合物从原始包121、123、125、…、127产生经信道编码包。
在这个方面的一个实施例中,后续包143的组合物166为随机选择的原始包121、123、125、…、127子集;且随机选择的子集经选择使得其具有与以下的组合物线性无关的组合物:在后续数据包143所属的相应序列117中排队在后续数据包143之前的包123;以及排队在除后续数据包143所属的相应序列117外的多个序列115、119、…中的一或多个初始包121、125、…。
在图6的系统和/或上文所论述的方法中使用的调度器225、发射器245、247、…、249、接收方装置229和/或其它装置可使用如图13中所示出的具有更多或更少组件的数据处理系统来实施。
上文所论述的通信系统(例如,如图1、2、3或6中所示出)或使用前向错误校正的其它通信系统的性能可通过调节/优化给定数据段111经分割成的包121、123、125、…、127的数目而经优化或改进以用于所述数据段111的发射。
当数据段111被分割成不同数目的包121、123、125、…、127以用于使用前向错误校正技术的发射时,所述发射具有不同的数据通信开销和/或计算开销。开销的成本可经评估为随着在分割给定大小的数据段111时使用的包的数目而变。随后从成本函数确定在分割数据段111时使用的包的经优化数目。
图9示出在数据通信中用于通过将数据段划分为多个数据包以用于前向错误控制来发射数据段的开销成本。
在图9中,数据段111具有数据大小L(例如,当系统中的数据通信的最小单位是字节时以字节测量)。当数据段111被分割成相等大小P的K个包时,包121、123、125、…、127的大小的总和(例如,K*P)通常不等于数据段111的大小L;且因此,包121、123、125、…、127中的一些或全部具有添加于其中的虚设数据(例如,具有零、一或随机数据)以确保包121、123、125、…、127具有相同大小P。由填补带来的数据包121、123、125、…、127中的开销1231、1233、1235、…、1237的总和提供数据开销1241的大小(例如,K*P-L)。
当数据段111的数据1221、1223、1225、…、1227分布到K个数据包121、123、125、…、127时,数据包121、123、125、…、127的最小大小P为大于或等于L/K的最小整数。
相等长度的数据1221、1223、1225、…、1227可从数据段111分布到包121、123、125、…、127,使得包中的开销1231、1233、1235、…、1237(例如呈经填补的零、一或随机数据形式)具有相等长度。
或者,不同包(例如,121、123、125、…、127)可具有不同大小的开销1231、1233、1235、…、1237。举例来说,除最末包127外的包121、123、125、…中的每一个在一个布置中不具有开销;且最末包127携载整个数据开销1241(例如,K*P-L,其中P至少为大于或等于L/K的最小整数)。
发射数据开销1241是通过将数据段111划分为相同长度的包121、123、125、…、127来发射数据段111以用于使用前向错误校正技术进行信道编码的额外成本。
具有数据开销1241的原始包121、123、125、…、127可用以产生用于在并行信道105、107、…、109上发射的副本115、117、…、119中的包,如图1到8中所示出。
图10示出一个实施例的通信包的数据结构。
举例来说,通信包1243可用以发射图1、2或3中所示出的副本115、117、…、119中的典型包或图6中所示出的经信道编码包255、257、…、259中的一个。
在图10中,通信包1243包含多个数据字段以提供可用于解码的信息。举例来说,除用于具有大小P的经译码数据有效负载1257的字段以外,通信包1243还包含指定包的数目K1251、经译码数据有效负载1257中的经填补零(或一,或随机数据,或虚设数据)的数目1253以及用以从包121、123、125、…、127产生经译码数据有效负载1257的系数向量1255(例如,经信道编码包143的组合物166)的字段。
系数向量1255识别经信道编码包1243的组合物向量(例如,166)。如由包数目K1251的字段识别的系数向量1255的前K个位分别对应于K个原始包121、123、125、…、127。当系数向量1255中的第i位具有第一值(例如,1)时,包121、123、125、…、127中的第i个包用以产生经由通信包1243发射的经译码数据有效负载1257;且当系数向量1255中的第i位具有第二值(例如,0)时,包121、123、125、…、127中的第i个包不用以产生经由通信包1243发射的经译码数据有效负载1257。用于提供信息以帮助接收方装置229对经译码数据有效负载(例如,1257)进行解码的数据字段(即,包数目K1251、经填补零的数目1253和系数向量1255)为通信包1243中的开销1245。
经译码数据有效负载1257中的包数目K 1251和经填补零(一、随机数据或虚设数据)的数目1253可针对用以发射副本(例如,115、117、…、119)中的包的每个通信包进行发射。在其它实施方案中,经译码数据有效负载1257中的包数目K 1251和经填补零(或一或随机数据)的数目1253针对副本(例如,115、117、…、119)中的每一个仅发射一次以减少开销。在其它实施方案中,可包含用于每个通信包1243的额外数据字段。
包数目K 1251通常限于小于预定限值(例如,256)。因此,用于包数目K 1251的数据字段的大小为预定的(例如,1个字节),不会随包数目K 1251改变。此外,用于经填补零(或一或随机数据)的数目1253的数据字段具有不会随包数目K 1251而变的预定大小(例如,4个字节)。
然而,系数向量1255的字段的大小通常随包数目K 1251而变。举例来说,系数向量1255的最小大小Q(例如,以字节计)与大于或等于K/8的最小整数相等。
图11示出在使用前向错误校正技术的数据段发射中的各种成本考虑。
在图11中,将具有大小L的数据段111分割(101)为具有相等大小P的原始包121、123、125、…、127产生如图9中所示出的数据开销1241。发射经填补零(一、随机数据或虚设数据)的成本对应于数据开销1241的发射成本。
在图11中,使用前向错误校正技术发射每个包(例如,131、133、135、…、139、141、143、145、…、149、…、151、153、157、…或159)导致额外数据字段(例如,图10中所示出的1251、1253、1255)的发射且因此导致开销1245。发射用以携载副本115、117、…、119中的相应数据包的每个通信包1243中的开销的成本对应于发射通信包开销的成本。
在图11中,在将原始包编码(103)为副本115、117、…、119和/或对副本进行解码以产生经恢复数据段113时存在前向错误校正技术的计算成本。计算成本通常随着数据段111经分割成的原始包数目K 1251而变。当FEC中使用喷泉码时,计算复杂度的成本通常大约是log(K)。或者,计算复杂度的成本函数可在经验上测量,或通过使数据点集合成曲线而导出。
此外,由于通信系统中的不确定性(例如,信道中的随机延迟),在接收方装置229获得足够包用于解码(104)且随后阻止剩余包的进一步发射之前,接收方装置229将从信道105、107、…、109中的每一个接收的包的实际数目是随机的。这在所接收包的有用性方面引入不确定性,其造成在接收方装置229接收到足够数目(例如,K)的有用包以用于产生经恢复数据段113且因此终止发射之前经由信道105、107、…、109整体地传送多于K个通信包。经由系统发射的额外通信包的确切数目随着通信系统中的不确定性(例如,在发射副本的包时信道中的随机延迟)而变。超过包数目K的额外通信包的估计(或平均数,或上限)可用以确定发射冗余包(不是用于解码经信道编码包的有用包)的成本。
举例来说,当使用轮选(或依序)分配(163)方案(例如,如图4中所示出)产生副本115、117、119且后续经信道编码包经产生为与其基本集合线性无关(例如,如图5中所示出)时,在可终止发射之前,预期在通信系统中在并行通信信道105、107、…、109上发射不超过K+d个通信包(例如,d=3)。因此,发射冗余包的成本可经估计为额外d个通信包的大小。
举例来说,当将大小L的数据段分割(101)为K个原始包121、123、125、…、127时,每个原始包121、123、125、…、127的最小大小P为大于或等于L/K的最小整数。因此,用于通信包的经译码数据有效负载1257的字段具有大小P。用于系数向量1255的字段具有大小Q,其至少为大于或等于K/8的最小整数。当通信包使用一个字节发射包数目1251,使用四个字节发射经填补零数目1253(或经填补一、随机数据或虚设数据)时,通信包1243的大小是(5+Q+P)。当使用K+d(例如,d=3)个通信包1243发射数据段以便接收方装置229产生经恢复数据段113时,所发射通信包的总大小为(5+Q+P)*(K+d);且包含用于发射数据开销1241的成本、用于发射通信包开销1245的成本以及用于发射在终止之前发射的冗余包的成本的带宽成本与(5+Q+P)*(K+d)成比例。FEC编码(103)和/或解码(104)的成本通常与L*log(K)成比例。
FEC编码(103)和/或解码(104)的成本以及通信的成本(例如,数据开销1241、通信包开销1245、冗余包)可具有不同权重。可将不同权重指配于计算成本和通信成本以产生数目K的组合成本函数,以将数据段111分割(101)为原始的K个包121、123、125、…、127。可从用于数据段111的分割(101)的成本函数确定经优化的K。
图12展示根据一个实施例的发射数据段的方法。
在图12中,在接收(261)将划分成原始包121、123、125、…、127以用于使用前向错误校正(FEC)译码技术的发射的大小L的数据段111之后,计算装置经配置以通过将数据段111划分成预定数目K个原始包121、123、125、…、127而使用FEC译码技术计算(263)发射数据段111的成本。成本可包含如图9中所示出的数据开销1241的通信成本、如图10中所示出的通信包1243中的开销1245的通信成本、如图11中所示出且结合其论述的FEC译码技术的计算成本,和/或如图11中所示出且结合其论述的冗余包的通信成本。
在图12中,计算装置调节(265)数目K以识别用以最小化发射数据段的成本的数目K'。
在识别数目K'之后,计算装置将大小L的数据段111划分(267)成数目K'个原始包121、123、125、…、127,从数目K'个原始包121、123、125、…、127产生(269)经信道编码包(例如,131、133、135、…、139、141、143、145、…149、…、151、153、…、159),且使用多个并行通信信道105、107、…、109发射(271)经信道编码包(例如,131、133、135、…、139、141、143、145、…149、…、151、153、…、159)。
举例来说,图12的方法可实施于图11中所示出的系统中。将经由并行通信信道105、107、…、109发射的包的副本115、117、…、119可使用图2或3的技术产生,其中系统性包的分布可使用图4的技术执行,且后续经信道编码包的组合物可使用图5的技术来识别。此外,可以如图6中所示出的方式预先计算组合物。
在一些实施方案中,针对随大小为L的数据段111经分割(101)成的原始包的数目K而变的成本来导出显式表达式。可导出显式函数以计算随将发射的数据段111的大小L而变的经优化K'。
在一些实施方案中,随用于特定通信系统的数据段111的大小L而变预先计算经优化K'的表格(例如,具有用于在信道105、107、…、109上的通信的通信成本和用于FEC编码(103)和/或解码(104)的计算成本的其唯一权重。随后,可从表格查找针对特定数据段111的给定大小L的经优化K'。
在一些实施方案中,使用经验公式(例如,从K'对L的表格的曲线拟合产生)计算从数据段111的给定大小L的划分的经优化数目K'。
在一些实施方案中,鉴于可用于使用FEC技术发射数据段111的通信系统的成本特性,针对具有大小L的数据段111的发射及时计算经优化K'。
在一个方面中,一种在计算设备中实施的方法包含:在计算设备中接收将由计算设备发射的大小L的数据段111;以及由计算设备通过优化发射数据段111的成本而确定数目K,以使得数据段111划分成数目K个原始包121、123、125、…、127,基于所述原始包产生经信道编码包(例如,图2或5中的143)以用于使用前向错误校正技术的发射。可使用任何优化技术从发射数据段111的成本的函数搜索和/或计算最优K。
在方面的一个实施例中,在确定最佳K之后,计算设备将具有大小L的数据段111分割(101)成数目K个原始包121、123、125、…、127,使用前向错误校正技术从原始包121、123、125、…、127产生包的多个副本115、117、…、119,且分别使用多个并行通信信道105、107、…、109向接收方装置229发射包的多个副本115、117、…、119。接收方装置229确定经由并行通信信道105、107、…、109接收的所接收包集合是否足以产生经恢复数据段113,且如果是,那么当在接收方装置已从信道105、107、…、109接收足够数目的有用包时使副本115、117、…、119的发射终止。
针对优化考虑的发射成本可包含:用于添加到原始包121、123、125、…、127以使得原始包具有相同大小P的虚设数据(例如,开销1241)的第一数据发射成本;用于在通信包(例如,1243)中添加以能够使用前向错误校正技术进行解码的通信字段(例如,1251、1253、1255)中的数据(例如,开销1245)的第二数据发射成本;和/或用于预期将在发射终止之前发射到接收方装置229的冗余通信包的第三数据发射成本。可基于预期将在副本115、117、…、119的发射终止之前经由并行信道105、107、…、109发射的最大(或平均,或预期)冗余通信包的计数而估计第三数据发射成本。当使用如图1到5中所示出的用于产生副本115、117、…、119的技术时,所述计数通常是三,使用各自可以可靠地发射数据但可具有不同和/或变化的发射速度的通信信道。
此外,针对优化考虑的发射成本可包含与前向错误校正技术的应用相关联的计算成本,其通常与原始包121、123、125、…、127的数目K的对数函数成比例。
通常,原始包的数目K限于不超过256。可个别地计算针对K的不同值的成本以找到最小化发射成本的最优K。
当使用图4的技术时,通过根据轮选方案或依序方案将原始包121、123、…、125、127分布到副本作为副本115、117、…、119的初始/前导包,可从原始包121、123、…、125、127产生多个副本115、117、…、119。
当使用图5的技术时,通过选择原始包的子集(例如,如通过图5中的组合物166所识别)以使得所述子集与副本115、117、…、119中的包的基本集合165线性无关,可从原始包121、123、…、125、127产生多个副本115、117、…、119。从所述子集产生后续经信道编码包(例如,143)以用于在多个副本(例如,115、117、…、119)中的特定副本117中发射。所述基本集合包含特定副本的经调度以在后续经信道编码包143之前发射的一或多个包(例如,123)。所述基本集合可进一步至少包含多个副本中的每一个中的初始包(例如,副本115中的包121、副本119中的包125)。优选地,所述子集不包含分配给特定副本117的任何原始包(例如,123)。
举例来说,后续经信道编码包143可从所述子集中的包的异或产生;且根据预定分布随机地选择所述子集。可重复所述随机选择直到选择的子集与基本集合165线性无关和/或不包含分配给特定副本117的任何原始包和/或不包含基本集合165中的任何原始包为止。
本发明包含上文所论述的方法、经配置以执行方法的计算设备和存储指令的计算机存储媒体,所述指令在计算设备上执行时使计算设备执行所述方法。
图13展示可在其上实施本发明的方法的数据处理系统。虽然图13示出计算机系统的各种组件,但其并不意欲表示任何特定架构或组件互连方式。一个实施例可使用具有比图13中所示的组件少或多的组件的其它系统。
在图13中,数据处理系统200包含互连件201(例如,总线和系统核心逻辑),其使微处理器203和存储器211互连。在图13的实例中,微处理器203耦合到高速缓冲存储器209。
在一个实施例中,互连件201将微处理器203和存储器211互连在一起且还经由输入/输出(I/O)控制器207将其互连到I/O装置205。I/O装置205可包含显示装置和/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描器、摄像机和所属领域中已知的其它装置。在一个实施例中,当数据处理系统为服务器系统时,I/O装置205中的一些,例如打印机、扫描器、鼠标和/或键盘是任选的。
在一个实施例中,互连件201包含通过各种桥接器、控制器和/或配接器彼此连接的一或多个总线。在一个实施例中,I/O控制器207包含用于控制USB(通用串行总线)外围装置的USB配接器,和/或用于控制IEEE-1394外围装置的IEEE-1394总线配接器。
在一个实施例中,存储器211包含以下中的一或多个:ROM(只读存储器)、易失性RAM(随机存取存储器)和非易失性存储器,例如硬盘驱动器、闪存存储器等。
易失性RAM通常实施为要求持续功率以便刷新或维持存储器中的数据的动态RAM(DRAM)。非易失性存储器通常为磁性硬盘驱动器、磁性光盘驱动器、光盘驱动器(例如,DVDRAM),或即使在从系统移除功率之后仍维持数据的其它类型的存储器系统。非易失性存储器也可为随机存取存储器。
非易失性存储器可为与数据处理系统中的其余组件直接耦合的本地装置。也可使用远离系统的非易失性存储器,例如通过例如调制解调器或以太网接口的网络接口耦合到数据处理系统的网络存储装置。
在本描述中,一些功能和操作描述为由软件代码执行或由软件代码引起以简化描述。然而,这种表达也用于表示所述功能是由例如微处理器的处理器执行代码/指令产生。
替代地或组合地,如此处所描述的功能及操作可使用具有或不具有软件指令的专用电路实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用无软件指令的硬接线电路或结合软件指令实施实施例。因此,技术既不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
虽然一个实施例可实施于全功能计算机及计算机系统中,但各种实施例能够分布为多种形式的计算产品,且能够不论实际上用于实现分布的机器或计算机可读媒体的特定类型如何都适用。
所揭示的至少一些方面可至少部分体现于软件中。也就是说,这些技术可响应于其处理器(例如微处理器)执行存储器(例如ROM、易失性RAM、非易失性存储器、高速缓冲存储器或远程存储装置)中所含的指令序列而在计算机系统或其它数据处理系统中执行。
经执行以实施实施例的例程可实施为操作系统或特定应用程序、组件、程序、对象、模块或称作“计算机程序”的指令序列的部分。计算机程序通常包含计算机中的各种存储器及存储装置中在各种时间处的一或多个指令集,且所述指令集在由计算机中的一或多个处理器读取及执行时使计算机执行必需操作以执行涉及各种方面的元件。
机器可读媒体可用于存储当由数据处理系统执行时使系统执行各种方法的软件和数据。可执行软件和数据可存储于包含例如ROM、易失性RAM、非易失性存储器和/或高速缓冲存储器的各处。所述软件和/或数据的部分可存储在这些存储装置中的任何一个中。此外,数据和指令可从集中式服务器或对等网络获得。数据和指令的不同部分可在不同时间处和在不同通信会话或相同通信会话中从不同集中式服务器和/或对等网络获得。可在执行应用程序之前获得全部数据和指令。或者,可动态地、及时地在需要执行时获得数据和指令的部分。因此,并不要求数据及指令在特定时刻全部处于机器可读媒体上。
计算机可读媒体的实例包含(但不限于)可记录和不可记录类型的媒体,例如易失性和非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、闪存存储器装置、软盘和其它可装卸式磁盘、磁盘存储媒体、光学存储媒体(例如,光盘只读存储器(CD ROM)、数字通用光盘(DVD)等)以及其它媒体。计算机可读媒体可存储指令。
指令也可体现在数字和模拟通信链路中以用于电学、光学、声学或其它形式的传播信号,例如载波、红外信号、数字信号等。然而,例如载波、红外信号、数字信号等的传播信号并非有形机器可读媒体且不能经配置以存储指令。
一般来说,机器可读媒体包含以可由机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一或多个处理器的集合的任何装置等)存取的形式提供(即,存储及/或传输)信息的任何机制。
在各种实施例中,硬接线电路可与软件指令组合使用以实施技术。因此,技术既不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
多路径数据传输的控制
图14展示根据一个实施例的在服务器侧实施有控制单元的多路径数据传输系统。所述控制单元包含两个主要组件:
·负载均衡器,其均衡每个路径的负载以提供最优性能(例如高吞吐量、高稳固性、低冗余);
·路径预测器,其预测每个路径的质量(例如时延、带宽、丢包)。
负载均衡器解决多路径数据传输系统的优化问题。使用这个解决方案,负载均衡器控制应用于由服务器接收的数据段的编码过程。编码过程产生呈副本形式且分布到下文所描述的路径1、2、…3的通信包。
在一个实施例中,系统产生数据段的多个经译码副本。每个副本将通过不同路径下载。控制单元基于每个路径的质量决定每个副本的大小。系统经配置以1)最大化合计吞吐量,2)最小化冗余,3)最大化稳固性,以及4)最小化解码复杂度。
如下文进一步论述,当确定用于发射的路径的数目时,首先通过假设无发射时间窗口来确定所用路径的数目。如果外加发射时间窗口,那么可进一步增加数目。
在一个实施例中,将来自接收器的反馈提供到路径预测器,如图14中所示。在一个实施例中,每个路径为图1的信道105、107、109中的一个。在一个实施例中,将上文图13的数据处理系统用于实施多路径数据传输系统(包含控制单元)。在一个实施例中,控制单元位于图14的服务器中。在另一实施例中,控制单元位于接收器(例如上文图1的接收方装置)中。
在一个实施例中,数据段为视频流式传输系统中的视频帧。这类系统通常产生30至60个视频帧/秒。对应地,典型服务器为视频流式传输伺服器,且典型接收器为视频播放器。一个实例为云游戏系统。在这个系统中,云游戏服务器使用云GPU执行游戏,呈现游戏视频且将视频帧发送到玩家计算装置(接收器)。玩家接收这些帧并播放视频。以这种方式,玩家不需要高端硬件来执行游戏。
在一个实施例中,如下文更详细地论述,当发送数据段时,针对每个路径确定最优负载K(n)。K(n)为待通过路径n发送的包的数目。通过假设使用具有最短单程时间STTn的N'个路径,目标为同时完成K(n)(n=1,2,..,N')的下载。路径n的所述下载时间为Tn=STTn+K(n)/BWPn,其中BWPn为按包/秒而言的路径n的带宽。通过在K(n)包的总和允许对数据段进行解码的约束下求解方程式T1=T2=…=TN',可确定K(n)。N'和最小化下载时间的K(n)的对应集合为最优解决方案,其可在例如发射时间窗口的约束适用时进行进一步调节。
下文阐述在关于多路径数据传输系统的各种实施例的以下论述中所使用的各种术语、缩写和符号。
在一个实施例中,多路径数据传输系统使用多个网络路径发送数据段。在高层级下,其使用译码技术产生原始数据段的不同副本,且随后通过不同路径发送不同副本。在一个实施例中,将产生如上文图1中描述的不同经信道编码副本115、117、…、119的原始包121、123、125、…、127的信道编码103用于提供通过不同路径发送的不同副本。如果从所有路径接收到的数据报的总量等于或略大于原始段的大小,那么译码技术允许接收器恢复原始数据段。
具体来说,数据段(例如图1的数据段111)被分割成K个等长原始数据包(例如图1的包121、123、125和127)。使用译码技术将这些原始数据包编码为最少的K个通信包(例如如图14中所示的包1.1、1.2、…、1.k(1))。应注意,在其它实施例中,可使用与上文所描述的技术不同的译码技术。举例来说,可使用具有足够大的译码大小的其它二进制代码,例如低密度奇偶校验(LDPC)代码或博塞-乔杜里-霍坤格姆(Bose-Chaudhuri-Hocquenghem,BCH)代码。
存在两个类型的通信包:
·系统性包:每个系统性包为K个原始数据包中的一个加标头(在本文中也称为开销)。因此,译码技术将产生总共K个系统性包,且这个数目固定,与路径的数目无关。
·经译码包:其为多个原始数据包的二进制XOR加标头。所述译码技术能够产生任何数目个经译码包。
每个通信包通过多个路径中的一个来发送。副本为通过相同路径发送的通信包的集合。当由接收器从所有路径接收的通信包的总数目为K+δ,其中δ≥0为小整数时,接收器可对K个原始数据包进行解码并因此恢复数据段。
对于这个系统,存在经优化的四个性能指标:
·吞吐量:最小化在下载上花费的时间;
·可靠性:最大化接收器接收足够通信包以供成功解码的概率。这个指标在下伏传输层协议不可靠(例如UDP)时尤其重要;
·冗余:最小化在解码之后接收器将接收的冗余包。
·解码复杂度:最大化解码之前接收器将接收的系统性包的数目,因为这些包不需要解码。等效地,最小化解码之前接收器将接收的经译码包的数目。
如下文所说明,这些性能指标通过发送通信包来控制。具体来说,存在要优化的两个发射参数:
·对于所有N个路径,待通过路径n发送的通信包的数目K(n)。这个数目由待通过每个路径发送的系统性包的数目S(n)及经译码包的数目C(n)组成;
·将发送经译码包的发射速率。
为了优化这两个参数,使用多路径数据传输系统的控制单元。控制单元包含两个组件,即负载均衡器及路径预测器,如下文进一步所论述。
控制单元的概述
在一个实施例中,在图15中示出控制单元的操作的流程图。控制单元具有两个核心组件:
·路径预测器:其预测每个路径的质量,例如其BW(带宽)、RTT(往返时间)及PLR(丢包率);
·负载均衡器:基于所述预测,其决定副本大小(即通信包的数目)和每个路径的发射速率。
在下文更详细地论述负载均衡器,包含论述如何优化每个副本的大小K(n)。在一个实施例中,简单地将发射速率设置为每个路径的BW以最大化吞吐量。下文稍后在论述负载均衡器之后论述路径预测器。
负载均衡器
在一个实施例中,产生数据段的通信包(包含K个系统性包和某一数目个经译码包),且通过多个网络路径中的一个发送每个通信包。在这个实施例中,将发射速率设置为每个路径的BW。待通过每个路径发送的通信包的数目经设计以优化吞吐量、冗余、可靠性及解码复杂度。下文更详细地证实这个情况。
在关于图16到19的以下论述中,出于说明的目的假设使用N=2个路径。第1(相应的第2)路径具有STT1(相应的STT2)的单程时间(STT)。因此,在服务器(Tx)在t1时间开始发送经译码包之后,接收器(Rx)将在t2=t1+STT1(相应的t3=t1+STT2)时间开始从路径1(相应的路径2)进行接收。对于每个路径n,首先发送S(n)个系统性包,接着发送C(n)个经译码包。这时,所有N个路径的{S(n)}满足:
换句话说,每个路径将传送K个系统性包的不同子集。
在图16中展示传送的理想实例,其假设所有N个路径都无丢包。优化两个路径的{S(n)},使得接收器可同时t4完成S(1)和S(2)两者的下载。由于{S(n)}个系统性包携载K个原始数据包,接收器可直接恢复数据段而无需任何解码。
另一方面,如果不优化{S(n)},接收器将接收经译码包,之后才能够恢复数据段。这将引入解码成本。
在更一般的实际情境中,将存在随机丢包。在这种情况下,系统性包可能丢失,且将由构成副本的第二部分的经译码包补偿。因此,一般来说,考虑由系统性包和经译码包组成的副本的下载。
在图17所示的传送的理想实例(其中PLR≥0)中,优化两个路径的{K(n)},使得两个下载将同时t4完成,且所下载的包一起恰好足以对数据段进行解码。以这种方式,最小化了下载时间(t4-t2),从而最大化吞吐量。此外,由于接收器在t4之后不再接收这个数据段的任何通信包,因此冗余经最小化为零。
然而,如果通过每个路径发送的通信包的数目为次优的,从一个路径下载一个副本可能比从另一路径下载另一副本更早地完成。在图18中的实例中,接收器在t4完成副本1的下载并在t5完成副本2的下载。在t4与t5之间,路径1不会有助于数据段的传输,指示BW利用率不足且解码时间(t5-t2)延长。这产生次优数据吞吐量。
在图19中所示的另一实例中,服务器发送过多通信包,使得接收器在解码之后仍接收数据段的一些通信包。所有这些包都是冗余的,且为BW资源的浪费。因此,应优化每个路径的通信包数目K(n)以及每个K(n)内的系统性包的数目S(n)。
此外,如果数据段具有有限使用期限,那么由于这种限制将强加由Tw表示的有限发射时间窗口,所以必须进一步调节{K(n)}。举例来说,在具有30fps(帧/秒)的云游戏视频流中,每个视频帧仅可用于33ms。因此,发射时间窗口为Tw=33ms,这意味着{K(n)}必须足够小以在33ms内发送。这个约束使{K(n)}的优化变得严峻。
因此,在多路径均衡中使用的{K(n)}和{S(n)}的优化极其微不足道。下文描述优化算法以及其实施方案。然而,本发明的多路径负载均衡首先与传统的多路径负载均衡形成对比。
优于现有方法的益处
在各种实施例中,由于系统模型中的基本差异,本文所描述的多路径负载均衡不同于其传统的对应物:
传统的负载均衡技术将数据流分成独立的子流,且通过不同路径路由不同子流。当接收器按顺序将子流拼接在一起时,这个方法在接收器侧引起包序重排及缓冲问题。当路径的质量快速变化时且当存在缓慢路径时,问题变成严重。
然而,在本发明的多路径负载均衡中,所有路径协作传输同一数据段。因此,接收器仅需要大小等于一个数据段的缓冲器。由于同一原因,包序重排变得无关。
负载均衡算法
这个部分在数学上描述根据各种实施例的多路径负载均衡算法,其基于每个路径的STT、PLR、BW和发射时间窗口Tw优化每个路径的通信包(包含S(n)个系统性包和C(n)个经译码包)的数目K(n)。所述算法包含三个步骤:
·基于每个路径的STT、PLR、BW及数据段的Tw优化每个路径的负载K(n);
·优化每个路径的系统性包的数目S(n);
·任选地,进一步增加每个K(n)(即,发送更多通信包),以获得对抗网络随机性的额外稳固性。
最优负载{K(n)}的计算
假设将数据段分割成K个数据包,且存在N个路径。将服务器开始发送时的时间t1设置为零。BWPn表示发送器可每秒通过路径n发送的通信包的数目(吞吐量),且BWPRn表示接收器每秒可从路径n接收的通信包的数目(实际吞吐量):
BWPRn=BWPn*(1-PLRn),
其中BWn是单位为字节/秒的路径n的BW,包大小是单位为字节的每个通信包的大小,且PLRn为路径n的PLR。
K(n)表示待通过路径n发送的通信包的数目。发送的包将在如下周期之后由接收器接收(具有一些丢失):
总体传送时间T,即传送{K(n)}个通信包的时间为跨越所有所使用路径的最长周期:
目标在于通过优化{K(n)}最小化T。优化受制于两个约束:
·发射时间窗口:
K(n)≤Kmax(n)=BWPn*Tw
·解码成功:接收器必须接收至少K个通信包以对数据段进行解码。由于路径n将贡献K(n)*(1-PLRn)个包,因此以下约束适用:
在数学上,优化问题被定义为:
最小化:
满足:
在所述优化中,关于路径的优先级使用以下第一准则:如果使用具有STTn的路径n,那么必须同样使用具有小于STTn的STT的所有其它路径来最大化吞吐量。因为接收器将始终从具有较小STT的路径开始接收,所以这个准则有效。因此,在接收器从路径n开始接收时,其将已经从STT比路径n小的所有路径接收一些数据。不能排除这些路径。
除以上准则以外,使用以下第二准则:如果传送时间T小于路径n的STT,那么路径n是无用的(即,集合K(n)=0)。
在不损失一般性的情况下,假设STT1<STT2<…<STTN,即,第1路径最短。随后,使用迭代算法实现优化。在第N'次迭代(1≤N'≤N)中的每一个中,存在三个步骤:
(a)以上文第一准则为由,通过假设使用前N'个路径(即,具有最小STT的那些路径)且不存在Tw,优化负载{K(n)};
(b)如果存在覆盖一些所用路径的K(n)的Tw,那么通过将剩余的包重新定位到其它所用路径来进一步调节{K(n)};
(c)以上文第二准则为由,给定{K(n)}来计算传送时间T,且将其与路径(N'+1)的STT进行比较。如果T小于路径(N'+1)的STT,那么停止迭代。否则,将N'增加一,且输入下一迭代,直至N'=N为止。
现在在下文更详细地描述上文的步骤(a)和(b)。
步骤(a)给定N',在无有限发射时间窗口的情况下优化{K(n)}
当使用前N'(N'≤N)个路径时,必须满足允许解码的最小T:
因此,T可经计算为:
一旦获得T,每个所用路径的通信包的数目K(n)经计算为:
另一方面,所有剩余的N-N'个路径具有其K(n)=0。
步骤(b)基于预算进一步调节负荷
如果发送器(例如服务器)仅具有有限时间窗口Tw来发送这个数据段,那么必须强加{K(n)}的以下上限:
K(n)≤Kmax(n)=BWPn*Tw
如果对于路径n,其K(n)大于Kmax(n),那么通过将K(n)减小到Kmax(n),接收器将从这个路径接收的通信包的数目减小(K(n)-Kmax(n))*(1-PLR(n))。为了确保成功解码,将这些剩余的包重新定位到具有预算的其它所用路径,即K(n)<Kmax(n)的那些路径。为了最小化传送时间T,重新定位到这些路径中的每一个的包数目将与其BWPRn成比例。换句话说,具有较高实际吞吐量的路径将帮助补偿更多剩余包。
举例来说,假设使用前N'个路径。进一步假设前N*(N*<N')个路径的K(n)>Kmax(n),且剩余N'-N*个路径的K(n)<Kmax(n)并因此仍具有预算。随后表示为Kleft的剩余包的总数目为:
通过使用其BWPRn作为权重,将这些剩余的包重新定位到剩余的N'-N*个路径。
总权重为:
由路径n(N*<n≤N')补偿的剩余包为:
对于接收这些包的接收器,必须如下增加路径n(N*<n<=N')的K(n):
应注意,所述增加可能超过路径n的预算,从而产生新的剩余包。因此,再次将以上重定位方案应用于N'个路径。迭代将继续直至不存在剩余的包或所有路径满了为止。图20中示出重定位算法的流程图。
调节{K(n)}之后,使用以下更新传送时间T:
如果T<STT-(N'+1)或N'=N,那么停止迭代。否则,将N'增加一,且继续迭代。
图21中展示完整{K(n)}优化算法的流程图。
系统性包{S(n)}的最优数目的计算
在各种实施例中,存在用于不同目的的各种{S(n)}优化策略。下文描述这些优化策略中的两个。
在一些实施例中,需要最大化系统性包传送速度。系统性包携载数据段的原始部分。因此,其可直接恢复数据段而无需任何解码。另一方面,经译码包无法用于恢复直至接收足够数目的包为止。
当发射时间窗口对于完全传送/恢复而言过小时且当数据段的子集仍有用时,需要在此时间期间最大化所传送的系统性包的数目(即,系统性包传送速度)以供尽力恢复部分数据段。如果每个数据段为视频帧,那么这是尤其有用的,因为鉴于其难以完全传送所述帧,因此不需要丢弃这个帧。替代地,有益的是使用系统性包尽可能地重构所述帧,且随后通过人工补偿缺失部分。
因此,在第一{S(n)}优化策略中,可通过将K个系统性包与路径质量成比例地分布到路径来最大化系统性包的传送速度,即:
在一个实施例中,这适用于数据段内的数据流。
在其它实施例中,需要通过最大化系统性包的数目来最小化解码计算复杂度。解码消耗计算资源及接收器的电池,且因此对于例如手机等轻量接收器而言应进行最小化。解码还引入解码延迟且因此对于例如云游戏等延迟敏感应用程序应进行最小化。系统性包可直接用于恢复数据段而无需解码。因此,解码计算复杂度可通过最大化接收器将接收的系统性包的数目来最小化。
因此,在第二{S(n)}优化策略中,解码计算复杂度可通过最大化接收器将接收的系统性包的数目来最小化。为了实现这个,将所有系统性包分配给具有最低PLR的所用路径。这可使用简单迭代算法进行:在第n次迭代中,挑选具有第n个最低PLR的所用路径,且将挑选的所用路径的S(n)设置为K(n)。迭代继续,直至所有K个系统性包经分配为止。图22展示这个算法的流程图。
因此,可存在三种类型的所用路径:若干低PLR路径用于仅发送系统性包,一个低PLR路径用于发送系统性包和经译码包(由于未剩下足够的系统性包来填充这个路径的K(n)),且所有剩余路径用于仅发送经译码包。
图23展示根据一个实施例的完整多路径负载均衡算法。
添加额外冗余到{K(n)}
在各种实施例中,可进一步增加{K(n)}以使用冗余来补偿网络随机性。如果施加发射时间窗口Tw,可将经冗余添加的{K(n)}传递到上文的重定位算法以确保K(n)<=Kmax(n)。
在一些实施例中,就如上文所提及,需要使用冗余补偿网络随机性。只要网络存在随机性,例如丢包和堵塞,就始终使用冗余包。这是因为这类随机性将减小接收器将准时从每个路径接收的包的数目。接收到的包的不足仅可通过发送冗余包来补偿。因此,这类冗余包是必须的。
另外,网络随机性还意味着对路径的质量(例如丢包、STT、带宽)的估计可能不准确。因此,有益的是使用“额外冗余”来补偿估计偏移。这些额外冗余包是任选的,只要估计准确即可。
在一个实施例中,在基于路径质量的估计计算K(n)之后,可通过进一步增加K(n)来添加额外冗余以补偿估计偏移。在所述增加之后,不太可能在发射时间窗口内传送K(n)个这些包。因此,应使用上文的处理发射时间窗口的重定位算法进一步调节K(n)。
在一个实施例中,还可将未使用路径的K(n)设置为较小非零值,使得接收器可通过从这些路径下载较小数据报来探测其质量(例如RTT、BW及PLR)。
各种实施方案
在各种实施例中,多路径负载均衡可在服务器侧和接收器侧实施。当在服务器侧实施时,服务器将确定{K(n)}且将包推送到接收器(例如基于UDP的传输)。当在接收器处实施时,接收器将确定{K(n)}且从服务器拉取包(例如基于HTTP的传输)。
多路径负载均衡可基于可靠协议(例如TCP)和不可靠协议(例如UDP)实施。唯一的差异在于当使用可靠协议时将PLR设置为零。
路径预测
在各种实施例中,当执行多路径负载均衡时,预测每个路径的质量(例如其RTT/STT、BW、PLR等)。路径预测技术可因系统而不同。举例来说,由于TCP可靠,因此基于TCP的系统不需要PLR预测。另一方面,基于UDP的系统需要更复杂的路径预测技术。
现在描述用于基于UDP的系统的一个预测技术的实例。STT可通过发出ping命令(pinging)来容易地测量。因此,这个实例仅集中于BW和PLR预测。
UDP协议不可靠。如果发射速率r不超过路径的带宽BW,UDP包将遭遇固有网络丢包PLR。这种丢失是因为例如网络噪声和干扰的因素引起,且因此不可避免。如果发射速率r超过BW,那么除固有丢包以外,所有过量的包也将丢失。因此,由接收器观测到的丢包Pr为:
以图形方式,在图24中的一个实例中示出发射速率r与接收器观测到的PLR之间的关联。
因此,Pr为基于PLR和BW的r的函数。如果存在两对r与Pr,即(r1,Pr1)和(r2,Pr2),其中r1<BW且r2>BW,那么可使用标准回归技术预测BW及PLR。可通过简单的发射速率控制算法获得这些对,所述算法逐渐增加r直至接收器报告Pr显著增加为止。
随后可由负载均衡器使用所有路径的经预测BW和PLR连同经测量的STT以进行多路径负载均衡。
如上文所描述的多路径数据传输系统的控制单元可用于各种实施例中以实现吞吐量的最大化、稳固性的最大化、冗余的最小化和/或解码复杂度的最小化。其通过预测每个路径的质量且随后使待通过每个路径发送的通信包的数目均衡来实现所述益处中的一或多个。举例来说,控制单元可用于译码辅助的多路径数据传输系统,且负载均衡算法解决优化问题。
其它方面
描述和图式是说明性的,且不应理解为限制性的。本发明说明本发明特征以使得所属领域的技术人员能够制造和使用技术。如本文中所描述,各种特征应按照关于保密性、安全性、许可、同意、授权和其它的所有当前和未来规则、法律法规使用。描述许多特定细节以提供透彻理解。然而,在某些情况下,不描述众所周知的或常规的细节以免混淆描述。本发明中对一个或一实施例的提及未必是指同一实施例;且这类提及意味着至少一个。
本文中标题的使用仅是为了易于参考而提供,且不应以任何方式解释为限制本发明或所附权利要求书。
对“一个实施例”或“一实施例”的提及意味着结合实施例描述的特定特征、结构或特性包含在本发明的至少一个实施例中。本说明书中各处出现的词组“在一个实施例中”未必完全是指同一实施例,也未必完全是指与其它实施例相互排斥的单独或替代实施例。此外,描述了各种特征,这些特征可通过一个实施例而不通过其它实施例展现。类似地,描述各种要求,这些要求可针对一个实施例而非其它实施例。除非明确描述为排除和/或显而易见不相容,否则此处也包含本描述中描述的各种特征的任何组合。举例来说,上文结合“在一个实施例中”或“在一些实施例中”所描述的特征可全部任选地包含在一个实施方案中,例外的是从描述中显而易见的某些特征对其它特征的依赖性可能限制从实施方案中排除所选特征的选项,且从描述中显而易见的某些特征与其它特征的不相容性可能限制将所选特征一起包含在实施方案中的选项。
上文论述的专利文献的揭示内容据此以引用的方式并入本文中。
在前述说明书中,已参考本发明的具体示范性实施例描述了本发明。将显而易见的是,可在不脱离如所附权利要求书中阐述的更广精神和范围的情况下进行各种修改。因此,应在说明性意义而非限制性意义上看待说明书及图式。
Claims (20)
1.一种在计算设备中实施的方法,所述方法包括:
通过所述计算设备将数据段分割成多个原始数据包;
通过所述计算设备预测待用于将通信包发射到接收器的多个网络路径中的每一个的质量;
通过所述计算设备基于针对相应网络路径所预测的所述质量确定供每个相应网络路径发射的通信包的总数目和针对每个相应网络路径的发射速率;
通过所述计算设备产生待经由所述多个网络路径发射的多个第一通信包,其中所述多个第一通信包包含:(i)系统性包,所述系统性包中的每一个包含来自相应原始数据包的未修改的原始信息,和(ii)经译码包,所述经译码包中的每一个包含来自所述原始数据包中的多个中的至少一个的经修改的原始信息;以及
通过所述计算设备经由所述多个网络路径将所述多个第一通信包中的至少一些并行地发射到所述接收器,其中所述多个第一通信包基于针对每个相应网络路径确定的所述总数目和所述发射速率而分布在所述多个网络路径当中。
2.根据权利要求1所述的方法,其进一步包括确定供所述多个网络路径中的每一个发射的系统性包的数目,其中所述系统性包基于针对每个网络路径所确定的系统性包的相应数目而分布在所述网络路径当中。
3.根据权利要求2所述的方法,其中所述经译码包在同一网路路径上发射的所述系统性包中的任一个之后发射。
4.根据权利要求3所述的方法,其中每个经译码包经产生以与选自由以下各者组成的群组中的至少一个线性无关:(i)所述系统性包中的一或多个,(ii)在每个经译码包发射在其相应网路路径上之前的在相同网络路径上发射的所述系统性包中的任一个,(iii)在每个经译码包发射在其相应网路路径上之前的在所述多个网络路径中的任一个上发射的所述系统性包中的任一个,(iv)在每个经译码包发射在其相应网路路径上之前的在相同网络路径上发射的所述经译码包中的任一个,(v)在每个经译码包发射在其相应网路路径上之前的在所述多个网络路径中的任一个上发射的所述经译码包中的任一个。
5.根据权利要求2所述的方法,其中所述系统性包与针对每个路径的所预测的相应质量成比例地分布在所述网络路径当中。
6.根据权利要求1所述的方法,其中确定供每个相应网络路径发射的通信包的所述总数目包括通过确定供相应网络路径发射的通信包的优化数目且随后增加所述优化数目以提供待发射的通信包的所述总数目来进一步优化。
7.根据权利要求1所述的方法,其中,产生其中的每一个包含来自相应原始数据包的所述经修改的原始信息的所述经译码包包含通过所述计算设备使用前向错误校正技术修改来自所述相应原始数据包的原始信息。
8.根据权利要求1所述的方法,其进一步包括通过所述计算设备从所述接收器接收指示以终止剩余待发射的经产生的第一通信包的发射,其中响应于确定经接收的第一通信包的组合集合足够回复所述数据段而由所述接收器发射所述指示。
9.根据权利要求1所述的方法,其中基于针对相应网络路径所预测的所述质量确定针对每个相应网络路径的所述发射速率包含针对每个相应网络路径确定每个相应网络路径的带宽、每个相应网络路径的时延或每个相应网络路径的丢包中的至少一个。
10.根据权利要求9所述的方法,其中针对每个相应网络路径的所述发射速率经确定以等于每个相应网络路径的所述带宽。
11.根据权利要求1所述的方法,其进一步包括确定待用于发射所述多个第一通信包的网络路径的数目。
12.根据权利要求11所述的方法,其中所述数据段具有发射时间窗口,且待使用的网络路径的所述数目是基于所述发射时间窗口。
13.根据权利要求1所述的方法,其中所述数据段具有发射时间窗口,且其中确定供每个相应网络路径发射的通信包的所述总数目是进一步基于所述发射时间窗口。
14.根据权利要求1所述的方法,其中所述数据段具有总体传送时间,且确定供每个相应网络路径发射的通信包的所述总数目进一步包括基于所述总体传送时间的最小化来优化所述总数目。
15.根据权利要求1所述的方法,其中确定供每个相应网络路径发射的通信包的所述总数目是进一步基于所述多个网络路径中的每一个的解码成功。
16.根据权利要求1所述的方法,其中确定供每个相应网络路径发射的通信包的所述总数目是进一步基于优化而无需针对所述数据段的有限发射时间窗口。
17.根据权利要求1所述的方法,其中确定供每个相应网络路径发射的通信包的所述总数目进一步包括调节相应网络路径的通信包数目,其中经限制的发射时间窗口限制所述相应网络路径,其中调节所述通信包数目包括将剩余的通信包重新定位到能够发射额外数目个通信包的其它网络路径。
18.根据权利要求17所述的方法,其进一步包括基于调节所述通信包数目而计算用于所述数据段的总体传送时间。
19.一种非暂时性计算机存储媒体,其存储当由计算设备执行时使得所述计算设备执行方法的指令,所述方法包括:
通过所述计算设备将数据段分割成多个原始数据包;
通过所述计算设备预测待用于将通信包发射到接收器的多个网络路径中的每一个的质量;
通过所述计算设备基于针对相应网络路径所预测的所述质量确定供每个相应网络路径发射的通信包的总数目和针对每个相应网络路径的发射速率;
通过所述计算设备产生待经由所述多个网络路径发射的多个第一通信包,其中所述多个第一通信包包含:(i)系统性包,所述系统性包中的每一个包含来自相应原始数据包的未修改的原始信息,和(ii)经译码包,所述经译码包中的每一个包含来自所述原始数据包中的多个中的至少一个的经修改的原始信息;以及
通过所述计算设备经由所述多个网络路径将所述多个第一通信包中的至少一些并行地发射到所述接收器,其中所述多个第一通信包基于针对每个相应网络路径确定的所述总数目和所述发射速率而分布在所述多个网络路径当中。
20.一种计算设备,其包括:
至少一个微处理器;及
存储指令的存储器,所述指令经配置以指示所述至少一个微处理器:
将数据段分割成多个原始数据包;
预测待用于将通信包发射到接收器的多个网络路径中的每一个的质量;
基于针对相应网络路径所预测的所述质量确定供每个相应网络路径发射的通信包的总数目和针对每个相应网络路径的发射速率;
产生待经由所述多个网络路径发射的多个第一通信包,其中所述多个第一通信包包含:(i)系统性包,所述系统性包中的每一个包含来自相应原始数据包的未修改的原始信息,和(ii)经译码包,所述经译码包中的每一个包含来自所述原始数据包中的多个中的至少一个的经修改的原始信息且所述经译码包与一或多个系统性包线性无关;以及
经由所述多个网络路径将所述多个第一通信包中的至少一些并行地发射到所述接收器,其中所述多个第一通信包基于针对每个相应网络路径确定的所述总数目和所述发射速率而分布在所述多个网络路径当中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110967379.3A CN113612585B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/714,303 | 2017-09-25 | ||
US15/714,303 US10862620B2 (en) | 2017-09-25 | 2017-09-25 | Systems and methods to optimize the load of multipath data transportation |
PCT/US2018/052708 WO2019060908A1 (en) | 2017-09-25 | 2018-09-25 | SYSTEMS AND METHODS FOR OPTIMIZING THE MULTI-PATH DATA TRANSPORT CHARGE |
CN202110967379.3A CN113612585B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
CN201880062376.1A CN111149316B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880062376.1A Division CN111149316B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612585A CN113612585A (zh) | 2021-11-05 |
CN113612585B true CN113612585B (zh) | 2024-04-02 |
Family
ID=65809315
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110966816.XA Active CN113612584B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
CN202110967379.3A Active CN113612585B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
CN201880062376.1A Active CN111149316B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110966816.XA Active CN113612584B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880062376.1A Active CN111149316B (zh) | 2017-09-25 | 2018-09-25 | 用于优化多路径数据传输的负载的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10862620B2 (zh) |
EP (1) | EP3688913A4 (zh) |
CN (3) | CN113612584B (zh) |
WO (1) | WO2019060908A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9921752B2 (en) * | 2012-05-04 | 2018-03-20 | Netapp, Inc. | Systems, methods, and computer program products providing read access in a storage system |
US10361817B2 (en) * | 2017-01-20 | 2019-07-23 | Dolby Laboratories Licensing Corporation | Systems and methods to optimize partitioning of a data segment into data packets for channel encoding |
JP2019165301A (ja) * | 2018-03-19 | 2019-09-26 | 富士通株式会社 | パケット検出プログラム、パケット検出装置及びパケット検出方法 |
WO2021028032A1 (en) * | 2019-08-14 | 2021-02-18 | Nokia Technologies Oy | Improved reliability of multi-connectivity |
WO2021031052A1 (en) * | 2019-08-18 | 2021-02-25 | Qualcomm Incorporated | Network coding design |
US20210211374A1 (en) * | 2020-01-08 | 2021-07-08 | Nevion As | Redundant transmission system |
US11863319B2 (en) | 2020-03-20 | 2024-01-02 | Qualcomm Incorporated | Multicast network coding |
US11463372B2 (en) | 2020-04-23 | 2022-10-04 | Code On Network Coding, Llc | Method and apparatus for coded multipath networking using path management and protocol translation |
US11489761B2 (en) | 2020-04-23 | 2022-11-01 | Code On Network Coding, Llc | Method and apparatus for coded multipath network communication |
US11870543B2 (en) * | 2020-05-18 | 2024-01-09 | Star Mesh LLC | Data transmission systems and methods for low earth orbit satellite communications |
US20220069899A1 (en) * | 2020-08-28 | 2022-03-03 | Airbus (S.A.S.) | Methods, systems, and computer readable media for utilizing a linear sequence coding scheme |
CN112804711B (zh) | 2021-01-04 | 2024-05-07 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、计算机可读介质及电子设备 |
CN112911728B (zh) * | 2021-01-29 | 2023-05-02 | 极米科技股份有限公司 | 隧道直接链路建立中搜索对等终端的方法、终端及介质 |
KR20220157807A (ko) * | 2021-05-21 | 2022-11-29 | 삼성전자주식회사 | 무선 통신 시스템에서 적응적으로 경로를 제어하기 위한 장치 및 방법 |
CN115549860B (zh) * | 2022-09-13 | 2023-08-29 | 北京天融信网络安全技术有限公司 | 数据恢复方法、装置、设备及存储介质 |
WO2024056200A1 (en) * | 2022-09-14 | 2024-03-21 | Lenovo (Singapore) Pte. Ltd | Early termination of transmission of pdu sets generated by al-fec in a wireless communication network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1931148A1 (en) * | 2006-12-07 | 2008-06-11 | NTT DoCoMo, Inc. | Transcoding node and method for multiple description transcoding |
WO2011071472A1 (en) * | 2009-12-09 | 2011-06-16 | Thomson Licensing | The application of fountain forward error correction codes in multi-link multi-path mobile networks |
WO2011101425A1 (en) * | 2010-02-19 | 2011-08-25 | Thomson Licensing | Control of packet transfer through a multipath session comprising a single congestion window |
JP2013225761A (ja) * | 2012-04-20 | 2013-10-31 | Hitachi Ltd | 符号化装置、復号装置、通信システム及び通信制御方法 |
GB201519275D0 (en) * | 2015-10-30 | 2015-12-16 | Canon Kk | Method and server for managing the transmission of packets of a plurality of paths |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AP1142A (en) * | 1997-08-01 | 2003-01-31 | Salbu Res And Development Proprietary Limited | Power adaption in a multi-station network. |
KR100557167B1 (ko) * | 2001-11-02 | 2006-03-03 | 삼성전자주식회사 | 이동통신시스템에서의 재전송 장치 및 방법 |
US7249291B2 (en) * | 2002-02-15 | 2007-07-24 | Digital Fountain, Inc. | System and method for reliably communicating the content of a live data stream |
US7412212B2 (en) * | 2002-10-07 | 2008-08-12 | Nokia Corporation | Communication system |
US7577120B2 (en) * | 2003-07-02 | 2009-08-18 | Alcatel-Lucent Usa Inc. | Allocation of power and channelization codes for data transfers |
US8908496B2 (en) | 2003-09-09 | 2014-12-09 | Qualcomm Incorporated | Incremental redundancy transmission in a MIMO communication system |
US7668125B2 (en) * | 2003-09-09 | 2010-02-23 | Qualcomm Incorporated | Incremental redundancy transmission for multiple parallel channels in a MIMO communication system |
US7746800B2 (en) | 2003-11-21 | 2010-06-29 | Nokia Corporation | Flexible rate split method for MIMO transmission |
JP4705094B2 (ja) * | 2004-04-16 | 2011-06-22 | ドルビー・ラボラトリーズ・ライセンシング・コーポレーション | ネットワークにおいてデータ・ユニットをルーティングするデバイスおよび方法 |
CN1735079A (zh) | 2004-08-09 | 2006-02-15 | 皇家飞利浦电子股份有限公司 | 用于实现多路并行传输的空间信道编、解码方法及装置 |
CN101253771B (zh) | 2005-08-30 | 2012-03-28 | 汤姆森许可贸易公司 | 用于ieee802.11无线局域网上的可扩展视频组播的跨层优化 |
US8130793B2 (en) * | 2006-08-22 | 2012-03-06 | Embarq Holdings Company, Llc | System and method for enabling reciprocal billing for different types of communications over a packet network |
CN100558167C (zh) * | 2006-10-16 | 2009-11-04 | 华为技术有限公司 | 多媒体视频通信方法及系统 |
KR101525617B1 (ko) * | 2007-12-10 | 2015-06-04 | 한국전자통신연구원 | 다중 경로를 이용한 스트리밍 데이터 송수신 장치 및 그방법 |
US8260143B2 (en) * | 2008-03-12 | 2012-09-04 | Hypres, Inc. | Digital radio frequency tranceiver system and method |
US8737517B2 (en) | 2008-03-26 | 2014-05-27 | Qualcomm Incorporated | Scrambling and modulation to constrain the constellation size of ACK/NAK transmission on the data channel |
US8125907B2 (en) * | 2008-06-12 | 2012-02-28 | Talari Networks Incorporated | Flow-based adaptive private network with multiple WAN-paths |
US8432830B1 (en) * | 2008-10-07 | 2013-04-30 | BCK Networks, Inc. | Multi-neighbor proportional forwarding in a network |
US8675588B2 (en) * | 2009-06-25 | 2014-03-18 | Hitachi, Ltd. | Base station, wireless communication system, wireless resource allocating method, and wireless communicating method |
CN101667904B (zh) | 2009-10-19 | 2012-10-24 | 上海奇微通讯技术有限公司 | 基于喷泉码的多合一反馈重传方法 |
US9537759B2 (en) * | 2012-01-31 | 2017-01-03 | Massachusetts Institute Of Technology | Multi-path data transfer using network coding |
CN102739378B (zh) * | 2012-06-06 | 2014-11-26 | 东南大学 | 适用于卫星移动通信系统的自适应虚拟混合重传方法 |
US9185529B2 (en) * | 2013-03-15 | 2015-11-10 | Massachusetts Institute Of Technology | Wireless reliability architecture and methods using network coding |
CN103281252B (zh) * | 2013-05-14 | 2017-04-26 | 华为技术有限公司 | 一种基于多路径传输的报文流量控制方法和装置 |
JP2015012580A (ja) * | 2013-07-02 | 2015-01-19 | キヤノン株式会社 | 受信装置、受信方法及びプログラム |
KR102139721B1 (ko) * | 2013-08-29 | 2020-07-30 | 삼성전자주식회사 | 다중 경로 프로토콜에서 이중으로 네트워크 코딩을 적용하는 방법 및 그 장치 |
US9455750B2 (en) * | 2014-07-28 | 2016-09-27 | Qualcomm Incorporated | Source block size selection |
US10554565B2 (en) * | 2015-07-07 | 2020-02-04 | Strong Force Iot Portfolio 2016, Llc | Network communication recoding node |
US10361817B2 (en) * | 2017-01-20 | 2019-07-23 | Dolby Laboratories Licensing Corporation | Systems and methods to optimize partitioning of a data segment into data packets for channel encoding |
-
2017
- 2017-09-25 US US15/714,303 patent/US10862620B2/en active Active
-
2018
- 2018-09-25 CN CN202110966816.XA patent/CN113612584B/zh active Active
- 2018-09-25 EP EP18858311.6A patent/EP3688913A4/en active Pending
- 2018-09-25 CN CN202110967379.3A patent/CN113612585B/zh active Active
- 2018-09-25 CN CN201880062376.1A patent/CN111149316B/zh active Active
- 2018-09-25 WO PCT/US2018/052708 patent/WO2019060908A1/en unknown
-
2020
- 2020-12-07 US US17/113,553 patent/US11349599B2/en active Active
-
2022
- 2022-05-02 US US17/734,517 patent/US11956075B2/en active Active
-
2023
- 2023-12-20 US US18/390,321 patent/US20240178935A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1931148A1 (en) * | 2006-12-07 | 2008-06-11 | NTT DoCoMo, Inc. | Transcoding node and method for multiple description transcoding |
WO2011071472A1 (en) * | 2009-12-09 | 2011-06-16 | Thomson Licensing | The application of fountain forward error correction codes in multi-link multi-path mobile networks |
WO2011101425A1 (en) * | 2010-02-19 | 2011-08-25 | Thomson Licensing | Control of packet transfer through a multipath session comprising a single congestion window |
JP2013225761A (ja) * | 2012-04-20 | 2013-10-31 | Hitachi Ltd | 符号化装置、復号装置、通信システム及び通信制御方法 |
GB201519275D0 (en) * | 2015-10-30 | 2015-12-16 | Canon Kk | Method and server for managing the transmission of packets of a plurality of paths |
Non-Patent Citations (2)
Title |
---|
Exploiting the Path Propagation Time Differences in Mutipath Transmission with FEC;Maciej Kurant;《IEEE》;全文 * |
Light-Weight Coding for Efficient Multi-Path Transmission in Data Center Network;Jiyan Sun;《IEEE》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20190097754A1 (en) | 2019-03-28 |
EP3688913A4 (en) | 2021-06-23 |
WO2019060908A1 (en) | 2019-03-28 |
US20210091885A1 (en) | 2021-03-25 |
US20220255660A1 (en) | 2022-08-11 |
US10862620B2 (en) | 2020-12-08 |
US20240178935A1 (en) | 2024-05-30 |
CN113612584A (zh) | 2021-11-05 |
EP3688913A1 (en) | 2020-08-05 |
CN113612585A (zh) | 2021-11-05 |
US11349599B2 (en) | 2022-05-31 |
CN113612584B (zh) | 2024-06-25 |
CN111149316B (zh) | 2021-09-10 |
CN111149316A (zh) | 2020-05-12 |
US11956075B2 (en) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113612585B (zh) | 用于优化多路径数据传输的负载的系统和方法 | |
CN110192348B (zh) | 将数据片段分成包以用于信道编码 | |
Parrinello et al. | Fundamental limits of coded caching with multiple antennas, shared caches and uncoded prefetching | |
CN114696955B (zh) | 生成用于在多个通信信道上发射的数据副本的系统和方法 | |
US7072971B2 (en) | Scheduling of multiple files for serving on a server | |
RU2469482C2 (ru) | Способ и система для передачи данных в сети передачи данных | |
KR102114847B1 (ko) | 이동 통신 시스템에서 멀티미디어 데이터 송수신 방법 및 장치 | |
CN107040334B (zh) | 用于设备辅助通信的方法、装置和计算机可读介质 | |
CN112751644B (zh) | 数据传输方法、装置及系统、电子设备 | |
Zeng et al. | Joint coding and scheduling optimization in wireless systems with varying delay sensitivities | |
CN107347000B (zh) | 一种基于arm的数字喷泉码的编译码实现方法 | |
Kalman et al. | Techniques for improved rate-distortion optimized video streaming | |
Mao et al. | Adaptive batch coding: A balanced congestion control strategy for multi-beam antenna networks | |
KR20190065803A (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 |