CN106464713A - 用于分层压缩的***和方法 - Google Patents
用于分层压缩的***和方法 Download PDFInfo
- Publication number
- CN106464713A CN106464713A CN201580023597.4A CN201580023597A CN106464713A CN 106464713 A CN106464713 A CN 106464713A CN 201580023597 A CN201580023597 A CN 201580023597A CN 106464713 A CN106464713 A CN 106464713A
- Authority
- CN
- China
- Prior art keywords
- compression
- compressed
- data
- data block
- stream
- 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
Classifications
-
- 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/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Computer And Data Communications (AREA)
Abstract
分层压缩包括对链路上的数据同时实现链路层压缩和高层压缩。可以通过配置位于链路层的网络节点识别嵌入入数据流的高层压缩符号,并适配链路层压缩来补偿那些高层压缩符号,实现分层压缩。一种适配链路层压缩的技术是在高层压缩符号中间进行数据分块。这可以降低高层压缩符号干扰网络节点识别链路层上的冗余数据组块的能力的可能性。另一种适配链路层压缩的技术是以如下方式定义HASH算法:数据字符串的哈希提供与数据字符串对应的高层压缩符号的哈希相同的哈希值。
Description
本申请要求2014年5月2日递交的发明名称为“用于分层压缩的***和方法”的第14/268,815号美国非临时申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明通常涉及通信领域,更具体地,涉及用于分层压缩的方法和***。
背景技术
在电信领域,数据重复删除是一项数据压缩技术,该技术通过将数据块中的冗余实例替换成与该数据块相关联的压缩符号,或通过其他方式识别数据块的早期实例来减少数据流中的冗余。一种数据重复删除方案使用历史表压缩符号,所述历史表压缩符号识别与数据块相关联的历史表条目。更具体地,识别数据块的原始实例并存储在历史表中,并将哈希算法应用于数据块中的两个或多个数据组块,以获得那些组块的哈希值。然后将所述哈希值存储在哈希表中,该哈希表将哈希值与历史表中存储的数据块的位置关联起来。然后将哈希算法应用于入数据流的数据组块中,并将产生的哈希值与哈希表进行比较,看是否匹配。若产生的哈希值与哈希表中的条目匹配,则再比较入数据块与存储的数据块来判断它们是否相同。可以通过对齐对应的数据组块(例如,产生匹配的哈希值的组块)来进行所述比较,看所述数据块是否匹配。若所述数据块匹配,则在将数据流转发至下一跳来实现压缩之前,将压缩符号替换成整个入数据块。下游节点进行相同的处理(例如,哈希处理、存储等),从而维持与进行压缩的上游节点相同的哈希表。因此,接收压缩的数据流的下游节点只需将压缩符号替换成数据块,从而解压所述数据流。
另一种数据重复删除方案使用后向参考压缩符号,所述后向参考压缩符号识别数据流中早期数据块实例的位置。两种方案中,压缩符号都远小于冗余数据块,因此,可以大大减少通过网络传输的信息量,特别是在对相同数据块进行多次传输时。
发明内容
本发明实施例描述了用于分层压缩的***和方法,总体上实现了技术优势。
根据一实施例,提供了一种用于压缩数据的方法。本例中,所述方法包括:在网络节点上接收第一压缩数据流和第二压缩数据流;其中,所述第二压缩数据流是通过在上游节点对数据流进行高层压缩生成。所述方法还包括:识别所述第一压缩数据流中数据块的第一事件,并对至少所述第二压缩数据流进行链路层压缩,以获得压缩业务流;其中,所述对至少所述第二压缩数据流进行链路层压缩包括:识别所述第二压缩数据流中数据块的第二事件,并将所述第二压缩数据流中数据块的第二事件替换成与所述数据块相关联的链路层压缩符号。所述方法还包括:将所述压缩业务流从所述网络节点转发至链路上的下一跳节点。还提供了一种用于执行该方法的装置。
根据另一实施例,提供了一种用于链路层解压的方法。本例中,所述方法包括:接收来自上游网络节点的压缩业务流;其中,所述压缩业务流携带包括至少第一链路层压缩符号和第一高层压缩符号的压缩数据。所述方法还包括:对所述压缩业务流进行链路层解压,以获得压缩数据流;其中,进行链路层解压包括:确定所述第一链路层压缩符号与第一数据块相关联,并将所述链路层压缩符号替换成所述第一数据块;其中,链路层解压后,所述高层压缩符号仍在所述压缩数据中。还提供了一种用于执行该方法的装置。
根据又一实施例,提供了另一种用于压缩数据的方法。本例中,所述方法包括:接收压缩数据流,其中,所述压缩数据流是通过在上游节点对数据流进行高层压缩生成;识别所述压缩数据流中的高层压缩符号;在高层压缩符号中间进行数据分块,以获得一个或多个数据组块;其中,所述数据组块和所述高层压缩符号中的至少第一个位于所述压缩数据流中的压缩数据块。所述方法还包括:确定所述一个或多个数据组块匹配已知数据块的已知数据组块;比较所述压缩数据块与所述已知数据块,以判断所述压缩数据块是否匹配所述已知数据块;若所述压缩数据块匹配所述已知数据块,将所述压缩数据块替换成链路层压缩符号,从而获得压缩业务流;将所述压缩业务流从所述网络节点转发至链路上的下一跳节点。还提供了一种用于执行该方法的装置。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了一种数据重复删除网络的示图;
图2A-2B示出了通过哈希表和历史表重复删除数据流中的数据的顺序的示图;
图3示出了一种用于支持传统链路层数据重复删除的网络的示图;
图4示出了一种用于支持传统高层数据重复删除的网络的示图;
图5示出了一种用于进行链路层压缩的方法实施例的流程图;
图6A-6B示出了用于支持分层压缩的网络的实施例的示图;
图7示出了一种用于进行链路层压缩的另一方法实施例的流程图;
图8示出了一种用于支持分层压缩的另一网络的实施例的示图;
图9A-9C示出了用于支持分层压缩的网络配置的实施例的示图;
图10示出了一种用于对两个或多个压缩数据流进行链路层压缩的方法实施例的流程图;
图11示出了一种用于对压缩业务流进行链路层解压的方法实施例的流程图;
图12示出了一种支持分层压缩的网络的实施例的示图;
图13示出了一种软件定义网络的实施例的示图;
图14示出了本发明实施例提供的一种可配置参数表;
图15示出了本发明另一实施例提供的另一种可配置参数表;
图16示出了用于分层压缩的无线网络的实施例的示图;
图17示出了一种计算平台的方框图。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
下文将详细论述实施例的制作和使用。然而,应了解,本发明提供可在各种具体上下文中体现的许多适用的发明性概念。所论述的具体实施例仅仅说明用以实施和使用本发明的具体方式,而不限制本发明的范围。
传统的重复删除技术在网络的单个点,如在端点(例如,源/目的节点)上进行数据压缩/解压,从而实现端到端压缩,或在中间节点(例如,边界路由器)上进行数据压缩/解压,从而实现链路层压缩,但二者不能同时进行。一方面,端到端压缩可以有效用于最后一跳是主要瓶颈的通信会话,在将数据以流的形式发送到无线网络中的移动设备时可能会存在这种情况。另一方面,链路层压缩可以利用流间冗余实现比供应商网络更大的压缩。值得注意的是,通常无法在相同的媒体流(使用传统的方法)进行链路层压缩和高层压缩,因为在高层压缩期间修改数据字符串通常会阻碍在链路层重复删除该数据字符串。例如,假设一个数据字符串代表链路层上冗余的媒体内容,这样,链路层的网络节点将识别所述数据字符串与已知数据字符串相同。再假设所述数据字符串中的数据块代表(例如)高层冗余的广告(例如,电视节目中的商业广告),因此,高层压缩期间,在源节点上所述数据块代替了高层压缩符号。将所述高层压缩符号替换成冗余数据块能够修改所述数据字符串,通常,在网络节点上的链路层压缩期间能够防止所述数据字符串与已知数据字符串相关联。因此,传统的链路层压缩通常无法与高层压缩技术同时实现。因此,需要有允许同时实现链路层压缩和高层压缩的机制。
本发明的各方面提供了分层压缩技术,使链路层压缩和高层压缩能够同时实现。更具体地,链路层的网络节点可用于识别嵌入入数据流的高层压缩符号,并适配链路层压缩来补偿那些高层压缩符号。一种适配链路层压缩的技术是在高层压缩符号中间进行数据分块,这可以通过将入压缩数据块中的数据组块识别为数据字符串来实现,所述数据字符串位于压缩数据块中的高层压缩符号中间。这样,可以降低高层压缩符号干扰网络节点识别链路层上的冗余数据组块的能力的可能性。另一种适配链路层压缩的技术是以如下方式定义HASH算法:数据字符串的哈希提供与数据字符串对应的高层压缩符号的哈希相同的哈希值。这可以通过,特别是,使用循环冗余校验(cyclic redundancy check,CRC)来实现。又一种适配链路层压缩的技术是在链路层压缩之前,解压(和去嵌入)高层压缩符号。这项技术可能比其他技术稍微复杂,因为网络节点可能需要至少一些关于高层压缩参数的知识(例如,历史表,哈希算法)。当高层压缩符号散置在大的冗余数据块中时,本发明各方面也通过将所述高层压缩符号嵌入链路层元数据消息来适配链路层压缩,从而避免干扰高层压缩。这将在不消除端到端压缩的益处的情况下允许实现链路层压缩。下面将具体说明这些以及其他方面。
图1示出了数据重复删除的网络100,所述网络100包括源头110,压缩引擎130,网络140,解压引擎150和目的节点160。所述压缩引擎130/解压引擎150用于重复删除数据流中的数据,从而减少通过网络140通信的数据量。一些实施例中,可以通过将数据块的冗余实例替换成与历史表134和历史表154中存储的数据块的版本相关联的压缩符号来实现数据重复删除,所述历史表134和历史表154通常彼此相同。在整个本发明中,术语“实例”和“事件”可替换使用,例如,本发明中的短语“数据块的第一实例”与短语“数据块的第一事件”是同义的。在此类实例中,所述压缩引擎130可以识别媒体流中的冗余数据块,并将其替换成与历史表134中已知数据块相关联的压缩符号,从而获得压缩数据流。然后所述解压引擎150在接收到所述压缩数据流时,识别所述压缩符号,并将存储在历史表154中的已知数据块替换成所述压缩符号,从而解压所述压缩数据流。其他实施例中,所述压缩引擎130/解压引擎150通过将数据块的冗余实例替换成识别数据流中早期实例的位置的压缩符号来实现重复删除。
所述压缩引擎130可以使用哈希算法识别数据流中数据块的冗余实例,这样,所述压缩引擎130可以维持哈希表132,所述哈希表132可以为每个已知数据块存储哈希值元组(例如,两个或多个哈希值),并使那些哈希值元组与历史表134中的已知数据块相关联。
图2A-2B示出了基于哈希表132和历史表134中的条目在数据流201中重复删除数据的顺序。更具体地,图2A示出了接收数据块202的原始实例时,用于将条目232、条目234加入哈希表132和历史表134的顺序,图2B示出了基于哈希表132和历史表134中的条目232、条目234重复删除数据块204的冗余实例的顺序。如图2A所示,对所述数据块202进行哈希处理以得到哈希标识H1至HN(N为大于1的整数),选择其中的哈希标识元组(H7,H10)在重复删除期间识别所述数据块202的冗余实例。之后,将条目232加入所述哈希表,并将条目234加入所述历史表134。所述条目232使所述哈希标识元组(H7,H10)与所述历史表134中的条目234的位置(P11)相关联,所述条目234使压缩符号(P11)与所述数据块202(已知)相关联。虽然该例子中针对所述条目234的位置(P11)和所述压缩符号(P11)使用相同的参考,但在一些实施例中,所述压缩符号可以不同于历史表中条目的位置。值得注意的是,所述解压引擎150执行相同的哈希/存储函数,以使数据块202中相似的条目存储在历史表154中。
如图2B所示,对数据块204(与数据块202相同)进行哈希处理以得到哈希标识H1至HN,将哈希标识H7和H10匹配到所述历史表134中的条目232,从而定位所述历史表134中的条目234的位置(P11)。之后,比较所述数据块204与所述数据块202,从而判断它们是否匹配。一些实施例中,通过判断对应于所述哈希标识H7和H10的数据组块是否正确地对齐,将所述数据块204匹配到所述数据块202。将所述数据块204匹配到所述数据块202后,将所述数据块204替换成指定所述压缩符号P11的元数据消息214,从而产生压缩数据流210。整个本发明中使用不严谨的术语“压缩符号”是指为了实现压缩而***数据流中的任何信息。压缩符号可以包括与数据块的原始实例相关联的任何符号,如历史表参考,后向参考,前向参考,或其他。前向参考可以为有损压缩的实现方式提供性能优势。解压期间,可以用所述元数据消息214来代替所述数据块202。
传统重复删除技术在网络中的单一节点上进行数据压缩/解压。图3示出了用于支持传统的链路层数据重复删除的网络300。如图所示,所述网络300包括源头351、源头352、目的地391、目的地392以及用于进行链路层压缩/解压的网络节点370和网络节点376。如图所示,所述网络节点370接收来自所述源头351的携带数据块310的第一数据流,并将所述第一数据流转发至所述网络节点376,在网络节点376处,将所述第一数据流中继至所述目的地391。所述网络节点370也接收来自所述源头252的携带冗余数据块320的第二数据流,并通过将所述冗余数据块320替换成与所述数据块310相关联的压缩符号302对所述第二数据流进行链路层压缩。然后所述网络节点370将压缩数据流转发至网络节点376,在网络节点376处,通过将所述压缩符号替换成数据块310的副本解压所述压缩数据流。
图4示出了用于支持传统的高层数据重复删除的网络400。如图所示,网络400包括用于进行高层压缩的源头451、源头452、目的地491、目的地492、远端节点461、远端节点462、远端节点481和远端节点482,以及用于在链路上转发所述压缩数据流的网络节点470和网络节点476。一些网络中,远端节点461和远端节点462可以分别与各自的源头451和源头452共址,远端节点481和远端节点482可以与目的地491和目的地492共址。远端节点461接收来自源头451的携带数据块410的第一数据流,并对所述第一数据流进行高层压缩,以获得第一压缩数据流。值得注意的是,虽然数据块410包括数据块部分(db)415,但所述db415并没有被远端节点461识别为冗余,因此,数据块410不会在高层压缩过程中被修改。然后远端节点461将所述第一压缩数据流转发至网络节点470,在网络节点470处,通过网络节点476将所述第一压缩数据流中继至远端节点481进行高层解压。高层解压重新产生第一媒体流,将所述第一媒体流从远端节点481转发至目的地491。因为数据块410在高层压缩过程中没有被修改,但网络节点470和网络节点476在接收到所述第一压缩数据流时能够使数据块410与压缩符号(S1)相关联。
远端节点462接收来自源头452的携带冗余数据块420的第二数据流,并对所述第二数据流进行高层压缩,以获得第二压缩数据流,之后,远端节点462将所述第二压缩数据流转发至网络节点470。与远端节点461不同,远端节点462识别所述冗余数据块420中的数据块部分(db)425为冗余,因此,在高层压缩过程中将所述db 425替换成高层压缩符号(s2)405。这会将数据块410修改为改进的数据块430(描述为DBr')并阻止网络节点470将所述改进的数据块430与数据块410相关联。因此,通过网络节点470和网络节点476之间延伸的链路不能得到链路层压缩。将第二压缩数据流从网络节点470转发至远端节点482,远端节点482进行高层解压,从而重新获得冗余数据块420。然后将所述冗余数据块420转发至目的地492。
值得注意的是,由于无法在网络400中实现链路层压缩,网络节点470和网络节点476之间延伸的链路上的负载可能远大于网络节点370和网络节点376之间延伸的链路上的负载。相反地,由于网络400中的高层压缩,远端节点462和远端节点482与网络节点470和网络节点476之间延伸的链路上的负载可能远小于源头352/目的地392与网络节点370和网络节点376之间延伸的链路上的负载。
本发明各方面提供了分层压缩技术,允许网络节点适配链路层压缩以补偿高层压缩符号,因此,允许链路层压缩与高层压缩同时应用。整个本发明中,将对普通业务流的分量执行高层压缩和链路层压缩技术的压缩方案称作分层压缩方案。一些实施例中,本发明提供的冗余消除技术可以使用美国计算机协会(Association for Computing Machinery,ACM)数据通信专业组(Special Interest Group on Data Communication,SIGCOMM)名为“与协议无关的用于消除冗余网络流量的技术”的出版物中描述的原则,所述出版物以引用的方式并入本文,犹如整体复制过来一样。
图5示出了用于进行链路层压缩的方法500,所述方法可以由网络节点执行。如图所示,所述方法500开始于步骤510,在该步骤中,网络节点接收压缩数据流。然后,方法500继续步骤520,在该步骤中,网络节点识别高层压缩符号。然后,方法500继续步骤530,在该步骤中,网络节点在高层压缩符号中间进行数据分块。该步骤可以包括:将数据组块识别为位于连续的高层压缩符号中间的数据字符串。之后,方法500继续步骤540,在该步骤中,网络节点为每个数据组块计算哈希值。所述哈希值可以包括由多个高层哈希值组成的字符串,或多个哈希值的组合。本发明中,术语“数据组块”和“数据块”是指数据流中的数据字符串,例如,媒体流、业务流等。一些实施例中,所描述的是将哈希算法应用于位于数据块中的数据组块。不应将此解释为暗示哈希算法并未最终应用于整个数据块,因为本发明各方面提供了用于补偿嵌入冗余数据块的压缩符号的技术。
然后,方法500继续步骤550,在该步骤中,网络节点比较所述哈希值与哈希表中的条目,以识别与入数据块相关联的历史表条目。一些实施例中,可以将高层压缩符号嵌入冗余数据块中。有各种补偿高层压缩符号的技术。一种技术是为所述嵌入高层压缩符号中间的数据字符串***多个链路层压缩符号。使用这种方式,所述高层压缩符号与所述链路层压缩符号相互交错。另一种技术是从所述入数据块中去嵌入所述高层压缩符号。一种用于去嵌入所述高层压缩符号的技术是定义HASH算法,当应用于数据字符串时,所述HASH算法产生与当应用于对应于所述数据字符串的高层压缩符号时相同的哈希值。这可以通过,特别是,使用循环冗余校验(cyclic redundancy check,CRC)来实现。另一种用于去嵌入所述高层压缩符号的技术是在链路层压缩之前,解压高层压缩符号,这可能需要网络节点具有至少一些关于高层压缩参数的知识(例如,历史表,哈希算法)。之后,方法500继续步骤560,在该步骤中,所述网络节点读取所识别的历史表条目中的已知数据块。然后,方法500继续步骤570,在该步骤中,网络节点比较所述入数据块和所述已知数据块,看它们是否匹配。之后,方法500继续步骤580,在该步骤中,网络节点将所述入数据块替换成链路层压缩符号,以实现链路层压缩。之后,方法500继续步骤590,在该步骤中,网络节点将压缩业务流转发至下一跳节点。一些实施例中,可以通过后向参考应用相似的技术来实现链路层压缩,这种情况下,所述链路层压缩符号可以识别压缩业务流中数据块的早期实例的位置。
图6A示出了用于支持分层压缩的网络600的实施例。如图所示,网络600包括用于进行高层压缩的源头651、源头652、目的地691、目的地692、远端节点661、远端节点662、远端节点681和远端节点682,以及用于进行链路层压缩的网络节点670和网络节点676。一些实施例中,远端节点661和远端节点662可以分别与各自的源头651和源头652共址,远端节点681和远端节点682可以与目的地691和目的地692共址。例如,源头651和源头652可以为用于进行高层压缩的节点,而目的地691和目的地692可以用于进行高层解压。
远端节点661对接收到的来自源头651的第一数据流进行高层压缩,以获得第一压缩数据流,将所述第一压缩数据流转发至网络节点670,然后转发至网络节点676。对所述第一数据流的高层压缩不会修改数据块610,因此,网络节点670和网络节点676能够使所述数据块610与链路层压缩符号(S1)相关联。将所述第一压缩数据流转发至远端节点681,在远端节点681处,解压所述第一压缩数据流,重新产生第一数据流,将所述第一数据流转发至目的地691。
远端节点662接收来自源头652的携带冗余数据块620的第二数据流,并对所述第二数据流进行高层压缩,以获得第二压缩数据流。
更具体地,所述远端节点662通过将冗余数据块620中的数据块部分(db)625替换成高层压缩符号(s2)605对所述第二数据流进行高层压缩。这会将数据块610修改为改进的数据块630(描述为DBr')。然后将所述第二压缩数据流从远端节点662转发至网络节点670。本例中,网络节点670用于支持分层压缩,并因此能够对所述第二压缩数据流进行链路层压缩,尽管所述第二压缩数据流在高层压缩过程中被修改了。更具体地,网络节点670使用这里描述的技术补偿高层压缩符号605,然后将所述改进的数据块630替换成链路层压缩符号(S1)602,以实现链路层压缩并减少第一压缩数据流和第二压缩数据流间的流间冗余640。一些实施例中,补偿高层压缩符号605可以包括:适配进行数据分块的方式,例如,可以在高层压缩符号605周围进行分块,以避免将所述高层压缩符号605包含在数据组块中。一些实施例中,网络节点670使所述高层压缩符号(s2)与所述数据块(db)相关联。其他实施例中,网络节点670在不使所述高层压缩符号(s2)与所述数据块(db)相关联的情况下补偿所述高层压缩符号(s2)。例如,可以以如下方式定义HASH算法:数据块(db)的哈希提供与高层压缩符号(s2)的哈希相同的哈希值,这样,网络节点670能够仅将所述哈希算法应用于所述数据块(DB)630,而不用具体地使高层压缩符号(s2)与所述数据块(db)相关联。对所述第二压缩数据流进行链路层压缩可以产生包括高层压缩符号S1 602的压缩业务流,通过网络节点670和网络节点676之间延伸的链路转发所述压缩业务流。网络节点676通过将所述高层压缩符号S1 602替换成数据块610的副本对所述压缩业务流进行链路层解压,从而获得改进的第二压缩数据流的副本,将所述副本转发至远端节点682。
值得注意的是,将包括高层压缩符号的冗余数据块替换成链路层压缩符号可能会消除高层压缩的益处,除非高层压缩符号以某种方法占据了链路层。网络600(例如)中,所述改进的第二压缩数据流的副本不包括高层压缩符号S2 605,因为网络节点676并未察觉到在链路层压缩过程中所述压缩符号已被移除。同样地,通过从网络节点676延伸到远端节点682的链路会消除高层压缩的一些益处,而从远端节点662延伸到网络节点670的链路仍然体验高层压缩的全部益处。如下面更加详细的讨论,可以通过将高层压缩符号s2 602嵌入链路层压缩符号S1 602(或嵌入携带链路层压缩符号S1 602的元数据消息)来解决这个问题。这就是说,将高层压缩符号嵌入链路层压缩符号可以增加链路层压缩符号的长度,并因此减少链路层上实现的压缩量。因此,从链路层角度看,不将高层压缩符号嵌入链路层压缩符号可能更加有效。但是,一些实施例中,维持端到端压缩可能是可取的,这样,从整体网络角度看,嵌入高层压缩符号可能是有益的。一些实施例中,网络节点可以维持对未来链路压缩级的知识的一些认识,并在决定嵌入高层压缩数据时能使用该知识。例如,网络层能意识到最后一跳链路压缩器早已知道UE具有所述数据,并且所述链路压缩能够再次移除该组块。
图6B示出了用于支持分层压缩的网络601的实施例。虽然网络节点670和网络节点676用于通过稍微不同的方式进行链路层解压,所述网络601包括与网络600相同的组件651-692。更具体地,网络节点670用于在不干扰高层压缩符号的情况下,替换掉第二数据流中冗余的数据字符串。
如图所示,通过节点661、节点670、节点676和节点681将携带有数据块616的第一数据流从源头651转发至目的地691。所述数据块616携带第一数据块部分(db1)611、第二数据块部分(db2)612和第三数据块部分(db3)613,并且网络节点670和网络节点676使所述第一数据块部分(db1)611与第一链路层压缩符号(S1)相关联,并使所述第三数据块部分(db3)与第三链路层压缩符号(S3)相关联。
此外,将携带数据块626的第二数据流从源头652转发至远端节点662。所述数据块626携带第一数据块部分(db1)621、第二数据块部分(db2)622和第三数据块部分(db3)623。远端节点662通过将所述第二数据块部分(db2)622替换成高层压缩符号(s2)605对所述数据块626进行高层压缩,从而将所述数据块626修改为改进的数据块636。然后将所述改进的数据块636从远端节点662转发至网络节点670。本例中,网络节点670用于支持分层压缩,并因此能够对所述改进的数据块636进行链路层压缩,尽管所述改进的数据块636在高层压缩过程中被修改了。更具体地,网络节点670通过在高层压缩符号s2 605周围进行数据分块补偿所述高层压缩符号605。进行所述分块后,网络节点670确定第一数据块部分(db1)621和第三数据块部分(db3)623为冗余的,并将所述第一数据块部分(db1)621替换成第一链路层压缩符号(S1)641,将所述第三数据块部分(db3)623替换成第三链路层压缩符号(S3)643,以获得改进的数据块644。然后将所述改进的数据块644转发至网络节点676,其中,通过将改进的数据块644中的高层压缩符号S1 641和S3 643替换成数据块部分db1 611和db3 613进行链路层解压,以获得改进的数据块646。然后将所述改进的数据块646转发至远端节点682进行高层解压,其中,将高层压缩符号(s2)605替换成数据块部分db2 622,以获得改进的数据块647。然后将所述改进的数据块647转发至目的节点692。
图7示出了用于进行嵌入了高层压缩符号的链路层压缩的方法700,所述方法可以由网络节点执行。如图所示,所述方法700开始于步骤710,在该步骤中,网络节点接收压缩数据流。然后,方法700继续步骤720,在该步骤中,所述网络节点识别压缩数据流中数据块的冗余实例。一些实施例中,可以通过与上述方法500所述的相似的方式识别数据块的冗余版本。之后,方法700继续步骤730,在该步骤中,网络节点识别所述数据块的冗余实例中的高层压缩符号。然后,方法700继续步骤740,在该步骤中,网络节点将所述高层压缩符号嵌入与所述数据块相关联的链路层压缩符号中。然后,方法700继续步骤750,在该步骤中,所述网络节点将数据块的冗余实例替换成所述链路层压缩符号。之后,方法700继续步骤760,在该步骤中,网络节点将压缩业务流转发至下一跳节点。
图8示出了用于支持分层压缩的网络800的实施例。如图所示,网络800包括用于进行高层压缩的源头851、源头852、目的地891、目的地892、远端节点861、远端节点862、远端节点881和远端节点882,以及用于进行链路层压缩的网络节点870和网络节点876。可以配置所述源头851、源头852、目的地891、目的地892、远端节点861、远端节点862和远端节点881与网络600中的类似组件相似。例如,第一数据流将第一数据块810从源头851携带至远端节点861,在远端节点861处,将所述第一数据流压缩为第一压缩数据流,并通过网络节点870和网络节点876转发至远端节点881。所述远端节点881可以解压所述第一压缩数据流,以重新产生第一数据流,并将所述第一数据流转发至目的地891。另外,远端节点862可以通过将冗余数据块部分(dbr)825替换成高层压缩符号(s2)805对携带冗余数据块820的第二数据流进行高层压缩,从而产生携带改进的数据块830的第二压缩数据流。
但是,网络节点870的配置可能与网络600中的网络节点670稍微不同。例如,网络节点870可以在链路层压缩840期间,将高层压缩符号(s2)805嵌入链路层压缩符号802(或嵌入携带所述链路层压缩符号802的链路层元数据消息),从而允许通过网络节点876和远端节点882之间延伸的链路体验高层压缩的全部益处。另外,可以使所述嵌入的高层压缩符号806与改进的数据块830中的高层压缩符号的位置(P2)相关联,这将使网络节点876能够在链路层解压期间重新产生改进的数据块830。
当压缩数据流来自相同的上游节点(例如,源节点)或不同的上游节点时,以及当所述压缩数据流去往相同的远端节点(例如,目的节点)或不同的远端节点时,可以应用这里揭示的本实施例的分层压缩方案。图9A-9C示出了用于支持分层压缩的网络配置901、网络配置902和网络配置903的实施例。如网络配置901所示,网络节点970用于对压缩数据流910和压缩数据流920进行链路层压缩,所示压缩数据流910和压缩数据流920来自不同的上游节点961和上游节点962,并去往不同的远端节点981和远端节点982。可替代性地,如网络配置902所示,可以对来自相同的上游节点963的压缩数据流910和压缩数据流920进行链路层压缩。可替代性地,如网络配置903所示,可以对去往相同的远端节点983的压缩数据流910和压缩数据流920进行链路层压缩。本发明提供的实施例中的分层压缩方案也涵盖了其他配置。
本发明各方面提供了用于减少两个压缩数据流之间的流间冗余的链路层压缩技术的实施例。在链路上转发第一压缩数据流之前,使所述第一压缩数据流中的数据块的原始实例与网络节点上的链路层压缩符号相关联。之后,在链路上传输第二压缩数据流之前,将所述链路层压缩符号替换成第二压缩数据流中数据块的冗余实例,从而有效解除不同压缩数据流中压缩数据的关联,减少链路上的流间冗余。这里使用的术语“解关联”数据(压缩的或其他形式的)是指减少数据流中(或之间)的冗余数据。一些实施例中,链路层压缩符号为与上游网络节点(例如,进行链路层压缩的网络节点)上的数据块以及下游网络节点(例如,进行链路层解压的网络节点)上的数据块相关联的历史表指示符。其他实例中,链路层压缩符号为识别第一压缩数据流中数据块的原始实例的位置的流间参考标识(例如,后向参考标识)。所述链路层压缩符号可以为包括历史表或流间参考标识的链路层元数据消息。图10示出了用于对两个或多个压缩数据流进行链路层压缩的方法1000的实施例,所述方法可以由网络节点执行。如图所示,所述方法1000开始于步骤1010,在该步骤中,网络节点接收第一压缩数据流和第二压缩数据流。然后,方法1000继续步骤1020,在该步骤中,所述网络节点识别第一压缩数据流中数据块的第一实例。然后,方法1000继续步骤1030,在该步骤中,所述网络节点识别第二压缩数据流中数据块的第二实例。之后,方法1000继续步骤1040,在该步骤中,所述网络节点将数据块的第二实例替换成与所述数据块相关联的链路层压缩符号。最后,方法1000继续步骤1050,在该步骤中,网络节点将压缩业务流转发至下一跳节点。
图11示出了用于对压缩业务流进行链路层解压的方法1100的实施例,所述方法可以由网络节点执行。如图所示,所述方法1100开始于步骤1110,在该步骤中,网络节点接收包括至少链路层压缩符号和高层压缩符号的压缩业务流。然后,方法1100继续步骤1120,在该步骤中,网络节点确定链路层压缩符号与已知数据块相关联。然后,方法1100继续步骤1130,在该步骤中,网络节点在不移除高层压缩符号的情况下,将所述链路层压缩符号替换成所述已知数据块。通过压缩业务流的链路层解压将所述链路层压缩符号替换成所述已知数据块可以产生压缩数据流。之后,方法1100继续步骤1140,在该步骤中,网络节点将所述压缩数据流转发至下一跳节点。
一些实施例中,压缩业务流由中间网络节点(在链路层)解压并再压缩,以实现进一步的压缩。图12示出了用于支持分层压缩的网络1200的实施例。如图所示,网络1200包括用于进行高层压缩的远端节点1261、远端节点1262、远端节点1281和远端节点1282,以及用于进行链路层压缩的网络节点1270、网络节点1274和网络节点1276。值得注意的是,网络节点1274可以用于对接收到的来自网络节点1270的压缩业务流进行解压和再压缩,以加强通过网络节点1274和网络节点1276之间延伸的链路实现的压缩的程度。具体地,网络节点1274接收来自网络节点1261的压缩媒体流,并将所述压缩媒体流转发至网络节点1276,在网络节点1276处,将所述压缩媒体流中继至远端节点1281。所述压缩媒体流包括数据块1210,所述数据块1210与网络节点1274和网络节点1276上的压缩符号(S2)相关联。之后,网络节点1270接收来自远端节点1262的压缩媒体流,并通过将冗余数据块1220的数据块部分1225替换成压缩符号(s1)1205,压缩所述压缩媒体流,从而获得携带改进的数据块1230的压缩业务流。将所述压缩业务流转发至网络节点1274。网络节点1274对所述压缩业务流进行链路层解压,以重新产生压缩媒体流,所述压缩媒体流包括冗余数据块1220。然后在再压缩期间将所述冗余数据块1220替换成压缩符号S2 1202,并将产生的压缩业务流转发至网络节点1276。网络节点1276通过将所述压缩符号S2 1202替换成数据块1210解压所述压缩业务流,然后将产生的压缩媒体流转发至远端节点1282。其他实施例中,网络节点1274可以将压缩符号s1 1205嵌入压缩符号S2 1202,以通过网络节点1276和远端节点1282之间延伸的链路保持高层压缩。
本发明各方面提供了单个节点由外部实体配置的方案。本发明各方面适用于“软件定义路由器”。一实施例中,部分或全部节点能够应用于压缩,但是它们能够用于压缩的处理能力可能是有限的。这种场景下,在正确的场合应用正确的方案可能是重要的(或可取的)。本发明各方面提供了用于选择应用哪个压缩方案的方法,所述方法可分为两部分。第一部分可以考虑可以配置什么,而第二部分可以考虑如何决定配置。
图13示出了用于定义缓存和压缩的软件定义网络的实施例。一实施例中,所述网络可以包括可控元素,如压缩算法(和相关参数)以及压缩节点对(例如,逻辑压缩连接)。每个压缩算法可以具有唯一的特征(例如,复杂性、压缩性能、涉及的时延以及所需的内存等)。另外,各种元素可能影响控制决策,包括流量类型、流量/应用质量要求、移动性、网络负载/拥塞状态、节点能力(例如,安装的压缩算法和内存限制等)、流量/内容热度因素以及其他。可以通过多种方式获得信息元素,例如,通过登录和采集获得网络负载,通过服务许可控制和深度报文检测获得流量类型以及服务质量(quality of service,QoS),通过预配置获得节点容量等。可以通过消息,例如,带内或带外消息,将所述决策发送至涉及的网络节点,且所述决策算法可以包括用于找到解决方案的各种机制,例如,可以基于不同的性能期望指示定义效用函数,以找到解决方案等。
关于考虑配置什么:在上述例子中,假设已经建立和预定义特定链路之间的压缩连接。在软件定义网络中,每个节点都有提供压缩/解压服务的潜能。配置问题可以包括:有多大处理能力可以用于压缩、如何设计链路、应该压缩哪些媒体流、应该存在哪些节点压缩/解压、存储的重复删除数据的类型和数量以及数据存储多久等。解决这些问题的一个方法可以使用分布式反馈***建立/维持某种程度的平衡。可替代性地,可以使用集中控制***,在所述集中控制***中,外部实体设置压缩中所涉及的各个参数。也可以结合使用分布式反馈***和集中控制***。
本发明简要概括了将做什么决策,以及该过程中将设定什么参数。一些实施例中,可以将压缩网络视作成对的压缩器/解压器的集合。如图14所示,每对中有一系列用于定义它们做什么以及怎样做的参数。
除压缩器/解压器链路之外,入口路由器和/或出口路由器可能是重要元素,所述入口路由器和/或出口路由器用于进行深度报文检测以及将信息传入***。需要注意的是,该元素可以包含在内部节点中,而不是在边缘路由器中。可以为该元素配置图15中列出的参数。
关于如何决定配置:第一实施例中,可以将中央控制器附着在中央路由器。本实施例或其他实施例中,路由器简单扩展到中央控制器(例如,OpenFlow)也能配置压缩链路。所述出口路由器能够针对不同的压缩方案监控流经自身的流量并估计可达到的压缩率。这可以通过对流量进行随机抽样并结合DPI来确定流量类型等来完成。出口路由器将该信息提供给中央控制器,中央控制器会考虑该信息以及各个节点的能力。然后中央控制器选择一种配置来尝试优化性能。
从算法上说,最简单的方法可以包括暴力方案,该方案中,分析所有压缩率,并将路由应用到每个压缩率,从而优化***试图实现最大化(最大-最小等)的任何效用。另外,非穷举的方案也有可能用到。
第二实施例可以考虑(或基于)瓶颈链路。链路的小型子集会限制很多网络,可以通过在那些链路任一侧生成队列识别该小型子集。该链路任一侧的路由器都能够检测该队列,并开始对流经该链路的流量发起压缩。这可以通过实际链路或通过正在监控节点队列的中央实体来完成。然后实际链路和监控节点队列的中央实体开始将各个链路中的上游链路和下游链路分别配置为压缩器和解压器。可以调整对压缩比例、时延以及处理之间的权衡取舍来适应不同的网络配置。
可以依次应用分层压缩,要注意考虑到上层压缩不能严重干扰下层压缩的应用。压缩层可以是独立的(已经清楚),因此,可能必须通过某种方式指示元数据,所述元数据在两层之间是可辨别的。链路解压的角色与平常的稍微不同,因为它无需全部解压,而需要保证下一个链路上的链路解压方案能够解压多个元数据。需要注意的是最后链路上的压缩/解压无需分开。压缩符号可以包括后向参考、词典参考以及HASH值。一些例子中,链路层压缩可以忽略高层压缩的参与,只是独立运行算法,确保解压能够单独完成,例如,不对高层压缩符号进行解压。其他例子中,链路层压缩可以修改元数据来反映新数据,从而能够解码数据,例如,***额外数据,从而重建原始元数据。是否***该信息取决于中间链路的开销与最后链路的开销之间的权衡取舍。一些实施例中,完美同步了两级的词典(例如,已知HASH值),即使那些词典中的值不同。可以将组块替换成HASH值。当发现来自上层的任何元数据时,应该开始/结束组块边界。这阻止了高层压缩影响组块边界。通过分块/哈希处理能够忽略/移除任何内联元数据。如果元数据以内联的方式存储(例如,如果使用与DEFLATE相似的方案,该方案中,流中的一些字节指示元数据的存在(或缺席)),可能会忽略这些值,从而只有有效负荷用于压缩。元数据的指示在层与层之间是可辨识的。否则,下层可以尝试解压高层数据。
这将最多消除最后一跳的冗余消除(redundancy elimination,RE)的益处,最坏情况下,因为下层词典尝试解码下层词典不一定存储的HASH值,将会创造大量的“RENACK”。可以更新接收器知道该HASH值的知识。如果应用元数据的压缩,并存在多个组块大小,那么可以进行额外的修改。减小RE中元数据大小的方法有很多种。如果已经存在元数据,可能会影响压缩方案。考虑到数据S=abcdefg,具有哈希值abcdefg,其中,每个字母代表唯一的数据块,并且每个斜体字母代表一个哈希值。假设De2e包括cde,DL包括整个流abcdefg。在标准的RE中,S'=abcdefg,S”=abcdefg。因此,不存在问题,然而,如果进行压缩,那么其中,重音代表已将那些指数一起压缩,如果独立应用,当然大于其中,所有数据一起压缩。为达到这个目标,可以撤销元数据压缩,然后在该字段间重新应用。值得注意的是,可以维持原始元数据位置的开销,因此,低层解码器能够正确重组原始信号。值得注意的是,如果元数据的总大小较小,那么额外的优化可能是不可取的。如果使用不同大小的组块,可能会识别到大组块在词典中,例如,如果DL中的ID为而不是六个独立的ID,可以撤销对的压缩,从而识别到该组块在词典中。值得注意的是,如果最后链路存在压缩级,可以移除一些用于确保最后链路上良好压缩的额外的元数据,信任最后一跳做该工作(例如,如果用户长时间没有切换,最后一跳压缩可以与端到端压缩一样良好)。当然,这会带来额外的复杂性的成本。
一些实施例中,分层压缩技术可以使用多级后向参考。作为激励性例子,假设将要发送的数据为文本文档,链路压缩中,之前完整看过该文本文档,但是端到端压缩中没有看到。由于自然语言中的冗余,该文本文档中可能存在很多小的后向参考。因此,该端到端压缩将生成很多小的后向参考。该链路压缩能够将整个文档替换成单个后向参考。这样做将会清除最后一跳的压缩增益。最后链路的压缩级能够将该压缩再应用于该文档中的链路。然而,最后链路的压缩级将会丢失任何它没有注意到的交叉链路(例如,来自该文档外的)。可以以BH上额外的开销为代价单独传输该额外的后向参考,其中,该BH在最后链路上转化为额外的增益。该实现方式可能取决于个体链路的负载/成本。
通过该多个链路的应用,能够解决后向参考实际指代什么的问题。一些实施例中,该后向参考可以包括在发明名称为“用于多流压缩和解压的***和方法”的第13/828,278号美国非临时专利申请案中讨论的“关于”(with respect to,wrt)字段,并以引入的方式并入本文。为实现多用户压缩增益,该后向参考参考其自身流之外的数据。可以更新不同流的状态以及该后向参考指代的内容,从而反映w.r.t字段中的变化,或(如果开销是可接受的)可以参考多个w.r.t字段。另一种实现方式可以允许该后向参考始终以某种方式与RE连接,例如,该后向参考可以来自HASH值。因此,只要该HASH值与该参考之间没有出现错误,就不会出现损失。
一些实施例中,可以采用如“跳过”x比特来避免在链路层解码后向参考。例如,该后向参考可以是用于端到端压缩的整个文本文档,端到端连同额外元数据的位置和信息。解码器可以获得较大的后向参考,并将子部分替换成单独的元数据。
如果流之间存在已知映射(例如,通过交错两个压缩数据流获得压缩业务流),那么,可以更新该后向参考中的数据来反映该映射,例如,通过改变距离值反映新位置,复杂度较低。如果该后向参考是指未压缩的流,那么,该后向参考可以使用而无需任何修改。
将什么数据通过隧道传输至什么位置对复杂性和性能有很大影响。哪些链路紧,什么节点忙碌,以及数据流如何相关联都能影响该决策。当链路不忙时,可以交换/更新链路间的布隆过滤器。
可以将隧道解释为目的地,或许可以解码数据,保证源头能够解码数据。如果从该隧道移出报文,那么,该报文可以被解压或发送至另一可能解码该报文的目标。值得注意的是,由于沿途一些跳可能不会参与链路层压缩,隧道可以用于降低复杂性。
隧道传输基本上是一个降低复杂性/减少内存的过程。而不是在某个特定节点上处理数据,该数据仅仅通过该节点转发。这样,防止了将潜在的无用数据填满节点的缓存,也降低了复杂性。可以将缓存大小的问题视作优化问题。一种效用可以是使长期压缩比例最大化,或可能将流量高峰期考虑在内。考虑以下场景:假设可以将最后链路的压缩比例写成一种函数,该函数忽略第一传输的成本并将||指示为该集合中数据期望生成的比特数量。采用隧道传输时,压缩比例可以等于(x)|S2|/|源头1|+(1-x)|S1|/|源头2|。不采用隧道传输时,压缩比例可以等于|S1|/|源头1和源头2的并集|。从这些公式可以看出,如果|S1|大小有限制,那么,隧道传输可以提供更好的性能。也将隧道传输视作具有良好的低复杂性。如果源头相同,那么,增益可能也是相同的,例如,如果单独选择集合S1和S2。
向后传播解压状态。很多情况下,将解压器的状态向后传播至源头可能是有利的。实际上,将解压器的状态向后传播至源头可能仅应用于RE,而如果后向参考能够以某种方式参考其他链路,也可以想得到地是应用该后向参考。考虑下列场景,下列场景中,两个源头都传输至相同的目的地。BS完全清楚解压器的状态,但是两个网关(gateway,GW)仅知道通过两个网关的数据。因为经过这两个网关的数据是不同的,两个编码器的状态也将是不同的。通过将信息从BS发送至GW,压缩率也会提高。假设流量包括一组元素(Zipf可能是良好的分布模型)。如果目标穿过BS,将会被存储在缓存中,且任一链路都可能会出现压缩。问题在于GW1只知什么穿过了GW1,而不知什么穿过了GW2。将S1(S2)作为目标的集合,GW1(GW2)知道该目标的集合在BS中。BS中的目标的集合是S。关于该场景的一些标记和声明(该集合S是S1和S2的并集(如果一切正常,S1和S2的并集等于S));(将该相关性定义为共享元素的百分比);FLi(前向链路i,GW1和BS之间的链路);RLi(反向链路i,BW和GW之间的链路);CL(交叉链路,GW1和GW2之间的链路)。可以确定应该将什么传输回GW1(GW2)。可以定义效用度量为U=FL1+FL2+w1RL1+w2RL2+w3CL。
与传输元素相关的节约成本等于传输该元素的成本减去任何需要的元数据。假设该数量为常量c(即,恒定的组块和元数据大小)。因此,增益为∑Prob(element e occurs)c}。这里的主导因素为将会传输该元素的可能性。假设两个流中的流量是相互独立的相同分布的随机变量,每个目标是等概率的,那么,问题在于统计两者之间的差异数量。针对布隆过滤器(或带有同步删除的稳定的布隆过滤器),问题在于统计1的数量。丢失元素的数量大约为因此,考虑到那些近似值,增益很容易计算。值得注意的是,可以将Si维持在BS中,可能实现更精确的测量。很多情况下,源头可以有不同的分布。例如,“You-Tube”来自一个方向,而Netflix来自另一方向。因此,考虑源头之间是如何关联的可能是有利的。
该方法可在接收器处(其中,接收器跟踪到达多个流的目标)或在跟踪多久有更新帮助的压缩器处实现。本质上,每个源头的接收器跟踪GW1的S\S2,并跟踪该集合多久命中一次。然后概率可以接近
这也可以代替用来计算潜在的增益。值得注意的是,如果分布严重倾向“少”量的元素,那么,来自该共享的增益可能较低。值得注意的是,如果利用了条件概率(例如,众所周知这些目标联系在一起,这些目标中的一个刚被访问),这可能不正确,这种情况下,更新该目标周围的元素可能是有利的。考虑一种解决方案,其中,过去共址的数据保持共址。这些数据的评估器是共址的,并大量从磁盘加载获得。而不是从磁盘加载该数据(虽然,从磁盘加载的数据可以促进该动作),当数据被访问时,可能会将这些共址元素推送至附近的源头。值得注意的是,该共址表可能已经位于各种源头(可能他们早已传输该数据)。
发送该信息的成本可能主要取决于该发送是如何完成的。原始形式是直接发送HASH值,例如,该HASH值的所有160个比特。也可以应用其他方法。如果使用多种布隆过滤器维持该集合,那么,同步整个集合的成本大约为5|S|(1–corr)比特,或相反地,可以通过差分位图(即,使用运用m*H(#变化/m)比特的哥伦布码)的戈莱码发送差分向量。因此,如果关联性较大(差较小),那么,可以仅发送小的更新量。另外,用于将GW1同步到S的相同的比特也可以用于将GW2同步到S。
随着时间流逝,可以实现恒定的益处和不断减少/变化的成本。可以监控该成本(例如,网络负载),如果成本低于感知到的益处,那么,开始传输。如果特定元素的益处大于其他元素,那么,可以优先提早传输那些元素,例如,通过差分/绝对编码。可以定义益处如下:
每次更新的比特各不相同,从log2(元素的数量)+2直到10个比特不等,取决于出现了多少次变化。这意味着从相等开销的角度看,在更新其他节点有意义之前,命中率可以大约为10/目标大小。如果网络使用的成本较小,更新变得更加合理。如果分布大约为Zipf,后向传播不太可能带来大量增益,除非网络负载变小。如果预期的符号的知识增加,可以进行特定更新。
本发明的一些实施例可以是分散的,其中,很多点对点链路(例如,一些链路重叠)的组合独立起作用。其他实施例中,可以使中央控制器确定将使用的参数,管理压缩方案,操纵每个用户的缓冲区大小,标记流的流量类型,并推荐压缩方案的修改版本。
一些实施例中,在切换的情况下部署这里描述的分层压缩技术。图16示出了用于分层压缩的无线网络的实施例。如图所示,将第一用户设备(UE1)从第一AP(AP1)切换到第二AP(AP2)。本例中,所述AP2可以为中继节点,这样,所述AP1和AP2间的链路为无线接口。值得注意的是,可以使用分层压缩通过AP1和AP2之间延伸的无线接口实现改进的压缩。
图17是可以用来实现本文公开的设备和方法的处理***的方框图。特定设备可利用所有所示的组件或所述组件的仅一子集,且设备之间的集成程度可能不同。此外,设备可以包括组件的多个实例,例如多个处理单元、处理器、存储器、发射器、接收器等。处理***可以包括配备一个或多个输入/输出设备,例如扬声器、麦克风、鼠标、触摸屏、按键、键盘、打印机、显示器等的处理单元。处理单元可以包括连接至总线的中央处理器(centralprocessing unit,CPU)、存储器、大容量存储设备、显卡和I/O接口。
总线可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、视频总线等等。CPU可包括任意类型的电子数据处理器。存储器可包括任何类型的***存储器,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合等等。在一实施例中,存储器可包括在开机时使用的ROM以及执行程序时使用的用于存储程序和数据的DRAM。
大容量存储设备可包括任何类型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。大容量存储设备可包括如下项中的一项或多项:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。
显卡以及I/O接口提供接口以将外部输入以及输出设备耦合到处理单元上。如所图示,输入以及输出设备的实例包含耦合到显卡上的显示器以及耦合到I/O接口上的鼠标/键盘/打印机。其它设备可以耦合到处理单元上,并且可以利用额外的或较少的接口卡。举例来说,串行接口卡(未图示)可以用于为打印机提供串行接口。本领域技术人员将会理解,上文描述的实施例中的很多实现方式不需要显卡或者直接I/O接口的参与。其不应因没有此类接口而被视为非预期性的实现方式,因为显卡和I/O接口纯粹是可选的组件。
处理单元还包含一个或多个网络接口,所述网络接口可以包括例如以太网电缆或其类似者等有线链路,和/或用以接入节点或不同网络的无线链路。网络接口允许处理单元经由网络与远程单元通信。举例来说,网络接口可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一实施例中,处理单元耦合到局域网或广域网上以用于数据处理以及与远程设备通信,所述远程设备例如其它处理单元、因特网、远程存储设施或其类似者。
虽然已参考说明性实施例描述了本发明,但此描述并不意图限制本发明。所属领域的技术人员在参考该描述后,将会明白说明性实施例的各种修改和组合,以及本发明其他实施例。因此,所附权利要求书意图涵盖任何此类修改或实施例。
Claims (24)
1.一种对链路数据压缩的方法,其特征在于,所述方法包括:
在网络节点接收第一压缩数据流和第二压缩数据流,其中,所述第二压缩数据流是通过在上游节点上对数据流进行高层压缩生成;
识别所述第一压缩数据流中数据块的第一事件;
对至少所述第二压缩数据流进行链路层压缩,以获得压缩业务流,其中,所述对至少所述第二压缩数据流进行链路层压缩包括:识别所述第二压缩数据流中数据块的第二事件,并将所述第二压缩数据流中数据块的第二事件替换成与所述数据块相关联的链路层压缩符号;
将所述压缩业务流从所述网络节点转发至链路上的下一跳节点。
2.根据权利要求1所述的方法,其特征在于,所述链路层压缩符号为与历史表中的数据块相关联的标识。
3.根据权利要求1所述的方法,其特征在于,所述对至少所述第二压缩数据流进行链路层压缩,以获得压缩业务流包括:
对所述第一压缩数据流和所述第二压缩数据流进行链路层压缩,以获得压缩业务流。
4.根据权利要求3所述的方法,其特征在于,所述链路层压缩符号为识别所述第一压缩数据流中数据块的第一事件的位置的后向或前向参考标识。
5.根据权利要求3所述的方法,其特征在于,所述对所述第一压缩数据流和所述第二压缩数据流进行链路层压缩,以获得压缩业务流包括:
解除所述第二压缩数据流中的压缩数据与所述第一压缩数据流中的压缩数据之间的关联,从而减少所述第二压缩数据流和所述第一压缩数据流之间的流间冗余。
6.根据权利要求5所述的方法,其特征在于,将所述第一压缩数据流和所述第二压缩数据流通过寻址发送至不同的远端节点。
7.根据权利要求5所述的方法,其特征在于,所述第一压缩数据流和所述第二压缩数据流来源于不同的源节点。
8.根据权利要求1所述的方法,其特征在于,将所述压缩业务流配置为通过位于链路上的下游网络节点上的链路层解压来进行解压;其中,
将所述第二压缩数据流配置为通过远端节点的高层解压来进行解压,下一跳节点位于所述网络节点和所述远端节点中间。
9.根据权利要求1所述的方法,其特征在于,所述识别所述第二压缩数据流中数据块的第二事件包括:
识别所述第二压缩数据流中的高层压缩符号,其中,所述高层压缩符号已由上游节点在进行高层压缩时***到所述第二压缩数据流中;
将数据组块识别为位于第一高层压缩符号和第二高层压缩符号中间的数据的字符串;
确定所述数据组块与所述数据块的第二事件相关联。
10.根据权利要求9所述的方法,其特征在于,所述链路层压缩符号包括区分所述链路层压缩符号与所述高层压缩符号的指示符。
11.根据权利要求1所述的方法,其特征在于,所述数据块的第二事件包括中间高层压缩符号。
12.根据权利要求11所述的方法,其特征在于,所述将所述第二压缩数据流中数据块的第二事件替换成与所述数据块相关联的链路层压缩符号包括:
将所述中间高层压缩符号嵌入所述链路层压缩符号,所述嵌入的中间高层压缩符号与所述数据块的第二事件中的中间高层压缩符号的位置相关联;
将所述数据块的第二事件替换成链路层压缩符号。
13.一种装置,其特征在于,包括:
处理器;
计算机可读存储介质,用于存储供所述处理器执行的程序,所述程序包括用于执行以下操作的指令:
在网络节点接收第一压缩数据流和第二压缩数据流,其中,所述第二压缩数据流是通过在上游节点对数据流进行高层压缩生成;
识别所述第一压缩数据流中数据块的第一事件;
对至少所述第二压缩数据流进行链路层压缩,以获得压缩业务流,其中,对至少所述第二压缩数据流进行链路层压缩的指令包括用于执行以下操作的指令:识别所述第二压缩数据流中数据块的第二事件,并将所述第二压缩数据流中数据块的第二事件替换成与所述数据块相关联的链路层压缩符号;
将所述压缩业务流从网络节点转发至链路上的下一跳节点。
14.一种用于链路层解压的方法,其特征在于,所述方法包括:
网络节点接收来自上游网络节点的压缩业务流,其中,所述压缩业务流携带包括至少第一链路层压缩符号和第一高层压缩符号的压缩数据;
网络节点对所述压缩业务流进行链路层解压,以获得压缩数据流,其中,进行链路层解压包括:确定所述第一链路层压缩符号与第一数据块相关联,并将所述链路层压缩符号替换成所述第一数据块,其中,链路层解压后,所述高层压缩符号仍在所述压缩数据中。
15.根据权利要求14所述的方法,其特征在于,在上游网络节点进行链路层压缩期间,已将所述链路层压缩符号***到所述压缩数据中,并在源节点进行高层压缩期间,将所述高层压缩符号***到所述压缩数据中。
16.根据权利要求15所述的方法,其特征在于,还包括:
将所述压缩数据流转发至远端节点。
17.根据权利要求15所述的方法,其特征在于,还包括:
网络节点对至少所述压缩数据流进行链路层再压缩,以获得新的压缩业务流,其中,所述对至少所述压缩数据流进行链路层再压缩包括:识别所述压缩数据流中第二数据块的冗余事件,并将所述第二数据块的冗余事件替换成与所述第二数据块相关联的第二链路层压缩符号;
将所述新的压缩业务流转发至下一跳节点。
18.根据权利要求17所述的方法,其特征在于,所述对至少所述压缩数据流进行链路层压缩还包括:重新将所述第一数据块替换成所述第一链路层压缩符号。
19.根据权利要求17所述的方法,其特征在于,所述第二数据块的冗余事件包括包含第一数据块的数据字符串,其中,所述对至少所述压缩数据流进行链路层压缩包括:将所述第二链路层压缩符号***到所述压缩数据中,而不将所述第一链路层压缩符号***到所述压缩数据中。
20.根据权利要求19所述的方法,其特征在于,所述高层压缩是无损的,而所述链路层压缩是有损的。
21.一种装置,其特征在于,包括:
处理器;
计算机可读存储介质,用于存储供所述处理器执行的程序,所述程序包括用于执行以下操作的指令:
接收来自上游网络节点的压缩业务流,其中,所述压缩业务流携带包括至少第一链路层压缩符号和第一高层压缩符号的压缩数据;
对所述压缩业务流进行链路层解压,以获得压缩数据流,其中,进行链路层解压的指令包括执行以下操作的指令:确定所述第一链路层压缩符号与第一数据块相关联,并将所述链路层压缩符号替换成所述第一数据块,其中,链路层解压后,所述高层压缩符号仍在所述压缩数据中。
22.一种对链路数据压缩的方法,其特征在于,所述方法包括:
接收压缩数据流,其中,所述压缩数据流是通过在上游节点对数据流进行高层压缩生成;
识别所述压缩数据流中的高层压缩符号;
在高层压缩符号中间进行数据分块,以获得一个或多个数据组块,其中,所述数据组块和所述高层压缩符号中的至少第一个位于所述压缩数据流中的压缩数据块;
确定所述一个或多个数据组块匹配已知数据块的已知数据组块;
比较所述压缩数据块与所述已知数据块,从而判断所述压缩数据块是否匹配所述已知数据块;
若所述压缩数据块匹配所述已知数据块,将所述压缩数据块替换成链路层压缩符号,从而获得压缩业务流;
将所述压缩业务流从所述网络节点转发至链路上的下一跳节点。
23.根据权利要求22所述的方法,其特征在于,所述将所述压缩数据块替换成链路层压缩符号包括:
将所述第一高层压缩符号嵌入所述链路层压缩符号;
将所述压缩数据块替换成所述链路层压缩符号。
24.一种装置,其特征在于,包括:
处理器;
计算机可读存储介质,用于存储供所述处理器执行的程序,所述程序包括用于执行以下操作的指令:
接收压缩数据流,其中,所述压缩数据流是通过在上游节点对数据流进行高层压缩生成;
识别所述压缩数据流中的高层压缩符号;
在高层压缩符号中间进行数据分块,以获得一个或多个数据组块,其中,所述数据组块和所述高层压缩符号中的至少第一个位于所述压缩数据流中的压缩数据块;
确定所述一个或多个数据组块匹配已知数据块的已知数据组块;
比较所述压缩数据块与所述已知数据块,从而判断所述压缩数据块是否匹配所述已知数据块;
若所述压缩数据块匹配所述已知数据块,将所述压缩数据块替换成链路层压缩符号,从而获得压缩业务流;
将所述压缩业务流从所述网络节点转发至链路上的下一跳节点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/268,815 | 2014-05-02 | ||
US14/268,815 US9386126B2 (en) | 2014-05-02 | 2014-05-02 | System and method for hierarchical compression |
PCT/CN2015/077716 WO2015165384A2 (en) | 2014-05-02 | 2015-04-28 | System and method for hierarchical compression |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106464713A true CN106464713A (zh) | 2017-02-22 |
CN106464713B CN106464713B (zh) | 2020-01-21 |
Family
ID=54356115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580023597.4A Active CN106464713B (zh) | 2014-05-02 | 2015-04-28 | 用于分层压缩的***和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9386126B2 (zh) |
CN (1) | CN106464713B (zh) |
WO (1) | WO2015165384A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413212A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 识别待写入数据中的可简化内容的方法、设备和计算机程序产品 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2525448B (en) * | 2014-04-27 | 2018-01-24 | Gurulogic Microsystems Oy | Encoder and decoder |
US9640376B1 (en) | 2014-06-16 | 2017-05-02 | Protein Metrics Inc. | Interactive analysis of mass spectrometry data |
US9479720B1 (en) * | 2014-09-16 | 2016-10-25 | Amazon Technologies, Inc. | Method and/or apparatus for frame accurate hot failover |
US9385751B2 (en) | 2014-10-07 | 2016-07-05 | Protein Metrics Inc. | Enhanced data compression for sparse multidimensional ordered series data |
US10354421B2 (en) | 2015-03-10 | 2019-07-16 | Protein Metrics Inc. | Apparatuses and methods for annotated peptide mapping |
US9916320B2 (en) * | 2015-04-26 | 2018-03-13 | International Business Machines Corporation | Compression-based filtering for deduplication |
CN112511206B (zh) * | 2016-06-30 | 2022-07-12 | 华为技术有限公司 | 一种波束训练序列设计方法及装置 |
US10319573B2 (en) | 2017-01-26 | 2019-06-11 | Protein Metrics Inc. | Methods and apparatuses for determining the intact mass of large molecules from mass spectrographic data |
US10546736B2 (en) | 2017-08-01 | 2020-01-28 | Protein Metrics Inc. | Interactive analysis of mass spectrometry data including peak selection and dynamic labeling |
US11626274B2 (en) | 2017-08-01 | 2023-04-11 | Protein Metrics, Llc | Interactive analysis of mass spectrometry data including peak selection and dynamic labeling |
US10510521B2 (en) | 2017-09-29 | 2019-12-17 | Protein Metrics Inc. | Interactive analysis of mass spectrometry data |
US11640901B2 (en) | 2018-09-05 | 2023-05-02 | Protein Metrics, Llc | Methods and apparatuses for deconvolution of mass spectrometry data |
US11283853B2 (en) * | 2019-04-19 | 2022-03-22 | EMC IP Holding Company LLC | Generating a data stream with configurable commonality |
US11346844B2 (en) | 2019-04-26 | 2022-05-31 | Protein Metrics Inc. | Intact mass reconstruction from peptide level data and facilitated comparison with experimental intact observation |
US11184456B1 (en) * | 2019-06-18 | 2021-11-23 | Xcelastream, Inc. | Shared resource for transformation of data |
EP4204948A1 (en) | 2020-08-31 | 2023-07-05 | Protein Metrics, LLC | Data compression for multidimensional time series data |
US20240061595A1 (en) * | 2022-08-16 | 2024-02-22 | Micron Technology, Inc. | Optimizing memory for repeating patterns |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010054131A1 (en) * | 1999-01-29 | 2001-12-20 | Alvarez Manuel J. | System and method for perfoming scalable embedded parallel data compression |
CN1383683A (zh) * | 2000-03-30 | 2002-12-04 | 皇家菲利浦电子有限公司 | 用于压缩域信号反向兼容多数据流传输的方法和*** |
CN1407782A (zh) * | 2001-07-30 | 2003-04-02 | 阿尔卡塔尔公司 | 数据流路由方法,分组数据网络,控制装置及其程序模块 |
CN1993700A (zh) * | 2004-07-02 | 2007-07-04 | 尼尔逊媒介研究股份有限公司 | 用于混合压缩数字位流的方法及装置 |
WO2007117970A2 (en) * | 2006-03-30 | 2007-10-18 | At & T Knowledge Ventures, L.P. | System and method for enhancing data speed over communication lines |
US20100180042A1 (en) * | 2009-01-13 | 2010-07-15 | Microsoft Corporation | Simulcast Flow-Controlled Data Streams |
US7990290B1 (en) * | 2010-02-03 | 2011-08-02 | International Business Machines Corporation | Efficient rateless distributed compression of non-binary sources |
CN102291398A (zh) * | 2011-08-05 | 2011-12-21 | 中兴通讯股份有限公司 | 无线通讯***中数据压缩与解压缩方法、装置及*** |
CN102821275A (zh) * | 2011-06-08 | 2012-12-12 | 中兴通讯股份有限公司 | 数据压缩方法及装置、数据解压缩方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040070894A (ko) * | 2003-02-05 | 2004-08-11 | 삼성전자주식회사 | Xml 데이터의 압축 방법 및 압축된 xml 데이터의복원 방법 |
CN101272489B (zh) * | 2007-03-21 | 2011-08-10 | 中兴通讯股份有限公司 | 视频图像质量增强的编解码装置与编解码方法 |
US8817624B2 (en) * | 2012-07-25 | 2014-08-26 | Futurewei Technologies, Inc. | Higher layer compression with lower layer signaling |
-
2014
- 2014-05-02 US US14/268,815 patent/US9386126B2/en active Active
-
2015
- 2015-04-28 CN CN201580023597.4A patent/CN106464713B/zh active Active
- 2015-04-28 WO PCT/CN2015/077716 patent/WO2015165384A2/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010054131A1 (en) * | 1999-01-29 | 2001-12-20 | Alvarez Manuel J. | System and method for perfoming scalable embedded parallel data compression |
CN1383683A (zh) * | 2000-03-30 | 2002-12-04 | 皇家菲利浦电子有限公司 | 用于压缩域信号反向兼容多数据流传输的方法和*** |
CN1407782A (zh) * | 2001-07-30 | 2003-04-02 | 阿尔卡塔尔公司 | 数据流路由方法,分组数据网络,控制装置及其程序模块 |
CN1993700A (zh) * | 2004-07-02 | 2007-07-04 | 尼尔逊媒介研究股份有限公司 | 用于混合压缩数字位流的方法及装置 |
WO2007117970A2 (en) * | 2006-03-30 | 2007-10-18 | At & T Knowledge Ventures, L.P. | System and method for enhancing data speed over communication lines |
US20100180042A1 (en) * | 2009-01-13 | 2010-07-15 | Microsoft Corporation | Simulcast Flow-Controlled Data Streams |
US7990290B1 (en) * | 2010-02-03 | 2011-08-02 | International Business Machines Corporation | Efficient rateless distributed compression of non-binary sources |
CN102821275A (zh) * | 2011-06-08 | 2012-12-12 | 中兴通讯股份有限公司 | 数据压缩方法及装置、数据解压缩方法及装置 |
CN102291398A (zh) * | 2011-08-05 | 2011-12-21 | 中兴通讯股份有限公司 | 无线通讯***中数据压缩与解压缩方法、装置及*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413212A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 识别待写入数据中的可简化内容的方法、设备和计算机程序产品 |
CN110413212B (zh) * | 2018-04-28 | 2023-09-19 | 伊姆西Ip控股有限责任公司 | 识别待写入数据中的可简化内容的方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2015165384A3 (en) | 2016-01-07 |
US20150319268A1 (en) | 2015-11-05 |
US9386126B2 (en) | 2016-07-05 |
CN106464713B (zh) | 2020-01-21 |
WO2015165384A2 (en) | 2015-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106464713A (zh) | 用于分层压缩的***和方法 | |
CN103023813B (zh) | 抖动缓冲器 | |
MX2011010555A (es) | Metodo y sistema para adaptacion de tasa progresiva para comunicacion de video no comprimido en sistemas inalambricos. | |
KR20070105931A (ko) | 무선통신 시스템에서 서비스데이터유닛의 분할 및 넘버링을처리하는 방법 및 장치 | |
CN101686059A (zh) | 数字信号编码装置、数字信号解码装置、数字信号算术编码方法及数字信号算术解码方法 | |
CN107994971B (zh) | 面向有限缓冲区中继链路的编码传输方法及编码通信*** | |
CN111917512A (zh) | 一种在多跳传输***中基于bats码的高效编码设计方法 | |
WO2014139454A1 (en) | System and method for multi-stream compression and decompression | |
CN106998242B (zh) | 空间通信分布式动态网络拓扑的不等保护纠删编码方法 | |
CA2998900A1 (en) | Fec mechanism based on media contents | |
WO2009037038A3 (fr) | Transmission de donnees depuis une infrastructure d ' un reseau de radiocommunication vers des equipements utilisateur | |
US10523790B2 (en) | System and method of header compression for online network codes | |
CN111314349B (zh) | 雾无线接入网中基于联合最大距离可分码与簇协作的编码缓存方法 | |
CN111726635B (zh) | 一种基于滑窗bats码的低时延图像渐进传输方法 | |
CN102316315B (zh) | 一种实时视频传输方法 | |
CN106954242A (zh) | 一种基于网络编码的卫星分布式动态多径路由方法 | |
CN103067971A (zh) | 一种无线IPv6互连网中TCP信头压缩方法 | |
CN104137455A (zh) | 提供流传输服务的方法和装置 | |
CN103532667A (zh) | 基于孙子剩余定理的无线传感器网络数据可靠传输方法 | |
US20130042278A1 (en) | Method and apparatus for providing video service | |
WO2023238205A1 (ja) | 通信装置、通信方法、及びプログラム | |
CN116846773B (zh) | 一种具有比特率约束的复杂网络同步控制方法 | |
CN111327707B (zh) | 一种无线网络中基于网络编码的缓存替换方法 | |
KR100916312B1 (ko) | 적응적 가중 오류 정정 부호화 및 다중 표현열 부호화를사용한 비디오 전송 장치 및 그 방법 | |
CN110289932B (zh) | 一种乱序深度值更新方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |