用于在线网络代码的包头压缩系统和方法与流程

文档序号:13518775阅读:268来源:国知局
用于在线网络代码的包头压缩系统和方法与流程

交叉引用

本申请要求于2015年5月27日提交的、发明名称为“用于在线网络代码的包头压缩系统和方法”的美国专利申请序列号为14/723,327的优先权,其内容通过引用全部并入本文。

本发明涉及网络和无线通信,并且在具体的实施例中,涉及用于在线系统的网络代码的包头压缩系统和方法。



背景技术:

由于网络资源和带宽有限,高业务量需求在现代无线通信系统中是一个挑战。现在已经提出了诸如异构网络(heterogeneousnetwork,hetnet)的系统来解决这种挑战和其他挑战。除了宏小区,hetnet还使用部署额外的一层较低功率的微微小区来实现小区分裂增益。提高增益的另一个方法是使用协作多点(coordinatedmultipoint,comp)传输管理方案。其他方案用于提供小区负载平衡和减轻干扰。这些方案还可以使用具有不同的无线接入技术(radioaccesstechnology,rat)的小区,例如,将无线接入网络(radioaccessnetwork,ran)业务分流给无线保真(wireless-fidelity,wifi)网络的方案。此外,编码和压缩方案用于减少传送的数据的量或延迟,因此提高了带宽利用率。随着业务量的持续增长,需要使用改进的编码和压缩方案来得到更高的增益。



技术实现要素:

根据一个实施例,一种由网络组件执行的方法包括向多个数据包中的包头添加与数据包中多个数据块对应的多个块标签,以及向数据包的净荷部分添加用于发送数据块的起止时间。包括净荷部分的数据块通过使用在线网络编码方案编码。包括包头和数据块的数据包被发送至服务于用户设备(userequipment,ue)的接入节点。

根据另一个实施例,一种网络组件包括至少一个处理器以及存储有由至少一个处理器执行的程序的非瞬时性计算机可读存储介质。该程序包括向多个数据包中的包头添加与数据包中多个数据块对应的多个块标签的指令,以及向数据包的净荷部分添加用于发送数据块的起止时间的指令。该程序还包括使用在线网络编码方案对包括净荷部分的数据块进行编码的指令。该网络组件用于将包括包头和数据块的数据包发送至服务于ue的接入节点。

根据另一个实施例,一种方法包括在网络和网络组件之间的路径上接收包括包头的多个数据包。该包头包括与数据包中多个编码后数据块对应的多个块标签。该方法还包括基于该网络和服务于包括该网络组件的ue的多个网络组件之间预定义的有限数量的路径,通过压缩块标签的比特压缩该包头。数据包中压缩后的包头被发送至该ue。

根据另一个实施例,一种网络组件包括至少一个处理器以及存储有由至少一个处理器执行的程序的非瞬时性计算机可读存储介质。该程序包括在网络和该网络组件之间的路径上接收包括包头的多个数据包的指令。该包头包括与数据包中多个编码后数据块对应的多个块标签。该程序还包括基于该网络和服务于包括该网络组件的ue的多个网络组件之间预定义的有限数量的路径,通过压缩表示块标签的比特压缩该包头的指令。该网络组件用于将数据包中压缩后的包头发送至该ue。

根据另一个实施例,一种方法包括在来自网络组件的路径上接收包括包头的多个数据包,其中该包头包括压缩后的比特,以及使用压缩后的比特,检索与数据包中多个编码后数据块对应的多个块标签。该块标签根据来自网络组件的路径的信息检索。

根据另一个实施例,一种网络组件包括至少一个处理器以及存储有由至少一个处理器执行的程序的非瞬时性计算机可读存储介质。该程序包括在来自网络组件的路径上接收包括包头的多个数据包的指令,其中该包头包括压缩后的比特。该程序还包括使用压缩后的比特,检索与数据包中多个编码后数据块对应的多个块标签的指令。该块标签根据来自网络组件的路径的信息检索。

为便于理解以下对本发明的详细说明,前文已经相当广泛地概述了本发明实施例的特征。以下将描述本发明实施例的附加特征和优点,其形成了本发明权利要求的主题。本领域技术人员应该理解,本申请公开的概念和具体实施例可以容易地作为修改或设计用来执行本发明的相同目的的其他结构或过程的基础。本领域技术人员还应该认识到,这些等价的结构并不背离所附权利要求中提出的本发明的精神和范围。

附图说明

为了更完整地理解本发明及其优点,现结合附图参考如下描述,其中:

图1是示出了实现dps的系统的实施例的图;

图2是示出了使用系统网络代码的系统的实施例的图;

图3是示出了由源节点或代理节点使用在线网络代码的方法实施例的流程图;

图4是示出了由服务于用户设备(userequipment,ue)的接入节点利用在线网络代码进行包头压缩的方法实施例的流程图;

图5是示出了由用于接收和处理利用包头压缩和在线网络代码编码的数据包的ue执行的方法实施例的流程图;以及

图6是可以用于实现各种实施例的处理系统的图。

除非另有说明,不同附图中对应的数字和符号通常指代对应部分。绘制附图用于清晰地说明实施例的相关方面,并且附图没必要按比例绘制。

具体实施方式

以下详细讨论了目前优选的实施例的制作和使用。然而,需要理解的是,本发明提供了许多体现在多种具体环境中的适用的发明概念。以下讨论的具体实施例仅仅示出了制作和使用本发明的具体方法,并不限制本发明的范围。

一种有希望解决高业务量挑战的方法是使用动态点选择(dynamicpointselection,dps)作为提供小区负载平衡和减轻干扰的机制。dps中,数据在多个点(无线传输节点或基站)都可被获取到,但在任何时间只能从一个位置发送。这些点可以属于不同的无线接入技术(radioaccesstechnology,rat),比如,长期演进(longtermevolution,lte)演进型节点b(evolvednodeb,enb)、毫微微小区(低功率基站)、wifi接入点(accesspoint,ap)、其他rat节点或其组合。dps方案允许动态选择传输点以通过最少量的业务量来服务用户。例如,传输点可以包括一个或多个enb、毫微微小区或微微小区、wifiap或其他无线接入节点。一旦选择了合适的点,业务数据就被下发到与该点对应的单个路径。

为了进一步地提高性能增益(例如,根据在有限的资源/带宽上的业务传送定义的增益),可以使用诸如网络代码或在线网络代码的编码方案,其中数据块被编码然后一起被解码。提高这种编码方案的效率可进一步提高系统中的增益。本文公开的是一种用于在无线网络中(例如,在dps系统的情况下)利用系统网络代码使用包头压缩进行通信的系统和方法。

系统网络代码用于对数据进行编码以提供显著的增益。然而,这种代码还需要很大的开销。网络编码需要在链路上与指定给用户接收的实际数据一起发送相对较少的额外的数据量。需要额外的数据提供冗余,以纠正在用户处接收到的数据中的错误。在本文的实施例中,根据网络代码,使用新型的包头制定来减少包头开销。具体地,考虑到一种固定的多路径场景(例如,dps系统中到达多个传输点的路径),可以利用固定数量的已知路径。因此,可以得知包头中大量的信息,而不需要网络和用户之间通过显式的信令指示。如下进一步所描述的,考虑到包头压缩,该信息可以从包头中移除。包头制定可以适用于健壮性开销压缩(robustoverheadcompression,rohc)方案,该方案用于进一步提高增益。

图1示出了进行dps的系统的实施例。该系统包括数据的源101,其可以是服务器、网络、数据存储器、内容发生器、或生成或转发数据的任何网络节点。数据可以是用户数据(如,用户消费)、网络控制数据、网络中转发的其他信息或其组合。该系统还包括服务于用户设备(ue)104的多个接入节点103(或点)。接入节点103在图1中被标记为“节点”。如上所述,接入节点或点可以包括各种rat节点。ue104可以是能够进行无线通信(如,ran通信、wifi通信或两者)的任何用户通信设备,例如,智能手机、计算机平板电脑、移动电话、膝上型或台式计算机、传感器设备或其他。不同的点可以在回程中通过某种受限的链路连接,这种连接可能会受损、不稳定或速率受限。例如,毫微微小区可以在第三方互联网协议(internetprotocol,ip)网络上接收来自无线网络的传输。

另外,代理节点102是位于数据包源101和服务于ue104的接入节点103之间的中间节点。代理节点102由中央协调实体控制,并且负责将来自源101的数据分成网络代码块(如,数据包),并将这些数据块在接入节点103(传输点)之间进行划分。例如,代理节点102可以是服务器、路由器、接桥器、交换机或任何合适的网络控制器。在该dps系统中,每个接入节点103或点可以在向ue104开始发送数据块之前将期望速率和期望时间反馈给代理节点102。根据该反馈,代理节点102发送数据块的配额至每个接入节点103。然后,接入节点103可以使用各自的调度策略来发送其数据块。当调度发生时,每个接入节点103以实际发生的速率(实际速率)以及更新后的用于发送该接入节点的当前数据块的期望起止时间来更新代理节点102。基于更新后的期望时间,代理节点102可以重新分配尚未开始发送的不同的数据块。

图2示出了使用网络代码的系统的实施例。该系统可以是上述图1的系统的一部分。图2中,编码器202产生网络代码。例如,编码器202可以位于代理节点102处。在其他实施例中,编码器202在接入节点103处,或者在源101和ue104之间任何其他的中间节点处。网络代码可以实现为块代码。这意味着,为了对数据进行编码,编码器202需要对预定数量的数据块进行接收和编码,随后这些数据块又必须在解码器204(可以在ue104处)处一起被接收和处理。然而,这会影响与数据包相关的时延(延迟)。例如,假设m个数据块被编码器202一起编码,则编码器202需要在开始发送额外的数据块之前一直等待,直到m个数据块被ue104接收。解码器204也需要等待,直到m个数据块被接收才开始解码数据块。如果数据块大小相对较大,这会造成显著的延迟,所以这不可行或不可接受。因此,在一个实施例中,可以使用网络代码的变体,在此实施例中,首先发送未被编码的比特(未进行网络编码)或数据包。如果最后发送的数据包由接收器报告丢失(或未被接收),则编码并重新发送该数据包。该编码步骤对应丢失的数据包和较早成功发送的数据包的组合。接收器使用较早发送的数据包的信息解码丢失并重新发送的数据包(从其组合中检索重新发送的数据包)。这在本文中被称为系统网络代码。该方法可以显著减少数据包中的平均延迟。

在一个实施例中,可以制定具有系统网络代码的m个数据块的包头,以适用于rohc方案,该方案是一种有效的包头压缩方案。例如,可以在dps系统中的源或代理节点处制定包头。包头压缩可以在节点处进行。通常,网络代码不考虑有效的包头压缩或rohc。因此,需要恰当地制定包头。使用系统网络代码(而不是传统的网络代码)能够实现这种制定。所得到的包头具有相对较少的额外开销。例如,在最坏场景下约为1个字节。这种制定是基于系统网络代码是源或节点专用的假设,例如,系统网络代码具有接收器(如,ue)已知的源/路径。例如,接收器在lte或wifi连接上检测接收。在净荷(如,m个数据块)被解码之前,不需要通常包含在包头中的用于发送流的数据块(如,m个数据块)的起止时间。因此,起始值和结束值,也被称为传输控制协议(transmissioncontrolprotocol,tcp)起始值和结束值,可以与数据块的净荷部分而不是包头部分组合。对净荷使用系统网络编码可以减少移动至净荷的信息量(比特)。

在典型的基于数据块的网络编码中,通过将不同的数据块的编码系数连续地放置在位图中来区分这些不同的数据块。对于在线方案,可能存在无限数量的可能的数据块。因此,在实际的实现方式中可能使用诸如tcp的环形缓冲器,这样防止了使用标准的位图方案。在一个实施例中,使用稀疏表示的位图处理在线方案的这种限制。具体地,使用唯一的标识符来标记每个数据块,本文中也称为块标签或索引。标签值被依次放置,例如,放置在位图中或包头中。如果需要字节对齐,则每个块标识符可以被限制成x个字节或比特(x为预定义的整数)。这将未知数据包的最大数量限定为256x个。在一个实施例中,差分编码还可以与字节对齐一起使用,而不对灵活性造成明显的不利影响。在这种情况下,块标识符按顺序放置,并且可以使用它们之间的差(而不是绝对值)。此外,这些差值可以围绕(wrappedaround)一个最大值,以使得最大差保持更小。最大差可以设置为一个无损的小的数,因此仅需要部分字节(少于8比特)来表示块标识符。

上述包头制定可以有不依赖于连续标签之间的差值的固定的开销。这些标签可能有连续或近似连续的值。从而,期望有较大概率的小的标签值,其允许根据标签的这种概率进行进一步地包头压缩。这种概率可以是预定义的固定概率,或实时更新后的概率。由于包头的尺寸可变,标准的算术编码(如赫夫曼编码)可以用于生成概率到比特的映射。由于要求字节对齐,并且要求简单为最优的,通常采用简单的编码。在一个实施例中,预定数量(整数)的y比特用于指示块标签。在一个实施例中,y比特还可以被设成一个预定义的值,如所有比特都为0(00...000),以指示向下一个块标签添加值2y。因此,可以无需使用多个数量的比特来表示一个较大值y。例如,假设y=8,8的二进制表示会用来表示数字0到254,而从255到510的数字x将由数字x-254的y比特二进制之前的[11111111]表示。还可以使用其他的选择。然而,由于使用了自适应的数据块长度,数据包(数据块)的数量和包头尺寸之间就不再有一对一的映射。在这种情况下,每次数据包的数量大于2y-1,就增加包头尺寸。而且,需要对这整个字段进行处理,以确定包头尺寸。这不可取,并且这会使并行处理包头更具挑战。可以通过附加字段指示包头长度来消除这种约束。

在一个实施例中,包头中的基本字段(basefield)和块索引(块id或块标签)之间可以有一些额外的冗余,可以利用这些冗余进一步提高增益。该基本字段指示最早或最后一个完全解码块,这基本上表明了可以丢弃该指示的数据块之前的块标签。指示的数据块的基本字段和指示的数据块之后的第一块标签之间的最大距离可以相对较小,从而可以使用另一种形式的差分编码,而不会造成大量丢失。下表1示出了包头压缩之前包头制定的实施例。起始值和终止值的最后字段被从包头移动到净荷部分。可能还有包括块标签的包头的其他合适的实施例。

表1.包头制定

上述包头制定可以使用大约8+1.2n个字节的信息。这种包头可以增加数据包的尺寸超出原先建有较低层的尺寸,例如,包头不太合适较低层的分组方案。对于小的数据包(例如,ip数据包上的语音),上述包头制定可能过大。在一个实施例中,为了进一步减少包头尺寸,可以使用诸如rohc的方案。其目标是减少包头尺寸,例如,总共减少到大约2至4个字节。这可以通过预测在两个方向的链路上的数据利用rohc和某种差分编码来实现,从而发送该信息的散列。在接收侧使用该散列检查或确认该预测行为正确。为了使类似的方法用于网络包头,该行为应该是可预测的。可预测的部分可以被移除,然后在接收器处预测。如下表2所示,包头可以被分成可预测的部分和被认为是不可预测的其他部分。这基于接收器知道从哪个基站(例如,enb)接收数据包的假设来确定,例如,rohc是基于每一跳完成的。这在本文中被称为源或节点专用。

表2.可预测的包头信息

调度策略,如由代理节点执行的调度策略,可能只有有限数量的选项。例如,对于第一传输(在会话或数据包的流中),数据块可以被发送而无需编码。可选地,标签x至标签y的所有数据块可以利用商定的编码系数来发送,其中x和y是可预测的,例如,基于路径或根据发送节点,x和y有已知的值。这可以使用少量的数据的比特来进行指示,这样会为开销设置类似于rohc的等级,但也会对网络编码等级增加限制。例如,可以限制网络编码,以使用编码系数对点a至点b所有的数据包一起进行编码,该编码系数是基于最后一跳(例如,到ue)的确定的路径。因此,所需要的唯一信息就是使用的最后一个块标签。可以通过来自该路径最后一次传输或ue确认的最后一个“基本字段”的差值表示。

上述包头制定可以适用于rohc,并且会增加相对少量的开销,例如,最坏场景下大约1个字节。在其他场景中,该制定不增加开销。即使由于上述制定引入了包头开销,但是在数据块的数据部分(净荷)中使用的系统网络代码明显减少了(例如,大约30至40个字节)dps系统中为保证冗余所需要的数据量。因此,就增益而言,在使用系统的网络代码和上述包头制定和压缩的组合时,存在总增益,例如,减少延迟或提高带宽利用率。资源的增益意味着支持系统中更高的业务。

利用上述包头制定,本文的实施例允许两级包头压缩,其中可以使用网络编码和进一步的包头压缩(例如,rohc)。包头制定包括将起止信息比特从包头移动至数据包的净荷,以及向包头添加块标签。块标签可以是连续的值,并且在一个实施例中,连续的块标签之间的差值可以是固定的。此外,包头中的至少部分信息被映射到源节点或用于发送数据包至ue的路径。例如,块标签的编码系数可以是基于该路径或该节点。在一个实施例中,块标签可以是基于已知节点或路径。然后,根据包头制定设计rohc。包头的比特表示可以包括路径id。因此,假设到接收器或ue的路径数量有限(例如,lte链路和wifi链路),则路径id的可能值有限,这样简化了预测编码系数(基于节点或路径),并且提高了包头压缩效率。进一步地,对于每个数据包中的字段,可以使用相对于前一发送的数据包的差值,这样也提高了压缩效率。在一个实施例中,编码系数可以是基于块标签或基于连续块标签之间的固定差值。这些方案减少了编码系数的比特,并且提高了压缩效率。

虽然rohc对应于包头压缩的方案,但是本文中使用的术语rohc或包头压缩指代任何可基于传输的数据预测包头或包头的某一部分的包头压缩方案。然后,计算该预测的包头的散列值。该散列值与压缩后的包头中的字段进行比较。如果散列值与字段匹配,则假定预测的包头字段正确。否则,可能会使用一些重建协议,例如,通过重传。

图3示出了使用在线网络代码的实施例方法300。该方法300可以由发送针对ue的数据包的源节点(例如,源101),或由位于源节点和服务于ue的接入节点之间的中间节点(例如,代理节点102)实现。该方法假设服务于目的接收器(例如,ue)的路径或接入节点数量有限。例如,路径的数量大约是2或3条。还可以支持额外的路径。在步骤310中,块标签被添加至每个数据包的包头。块标签与数据包的净荷部分中的数据块对应。该净荷部分可以包括一个或多个数据块。包头还可以分别指示净荷中被一同编码的数据块的数量(m),和包头中包括的块标签的数量。该包头还可以包括用于对编码后净荷部分中数据块进行编码时使用的编码系数,该编码系数允许ue解码数据块。此外,包头可以包括源端口和目的端口,以及由目的接收器或终端接收器确认的基本字段。如上所述,用于传输的起止时间值可以被添加到净荷部分中而不是数据包中的包头中。在步骤320中,基于数据包的期望路径,使用在线网络编码或系统在线网络编码,对数据包的净荷部分进行编码,以生成编码后数据包。例如,基于从网络节点到ue的最后一跳的信息,对净荷部分进行编码。这可以通过使用用于编码最后一跳信息的确定函数(deterministicfunction)的编码系数来实现。在步骤330中,发送编码后数据包,例如发送至服务于ue的dps系统的接入节点。

图4示出了利用在线网络代码进行包头压缩的实施例方法400。该方法400可以由服务于ue的接入节点(例如,接入节点103)执行。接入节点可以是远离ue的一跳,例如传输点。在步骤410中,接入节点接收包括包头的数据包。该包头包括与数据包的净荷部分中至少一个数据块对应的至少一个块标签。在步骤420中,基于数据包通过网络采用的路径,对包括至少一个块标签的包头进行压缩(例如,使用rohc)。在一个实施例中,根据系统的调度策略,可以使用诸如rohc的包头压缩方案。例如,假定一个固定的多路径场景,即,基于网络和服务于ue的多个节点之间预定义的有限数量的路径,包头中可预测的字段可以被移除。该步骤包括移除源端口和目的端口的比特,以及基本字段。还可以移除块标签,其中,基于发送节点或至接收器的转发路径,其值对接收器来说是可预测或已知的。该步骤还可以包括添加路径id以指示至接收器的路径。在一个实现方式中,可以移除编码系数,其中基于已知路径,可以通过接收器检索到编码系数值。在步骤430中,接入节点发送携带有压缩后的包头的数据包至ue。

图5是示出了用于接收和处理利用包头压缩和在线网络代码编码的数据包的实施例方法的流程图。方法500可以由接收数据包的ue执行。在步骤510中,ue接收数据包,并确定包括包头的数据包在多个路径中的哪个路径上被接收。可以使用压缩方案(例如,rohc)压缩包头。ue能够在多个无线路径(无线链路)上接收数据包,例如,两个ran链路和一个wifi链路,或两个wifi链路和一个ran链路。在步骤520中,ue根据确定的路径,解码包头中的与数据包的净荷部分中至少一个数据块对应的至少一个块标签。ue知道数据包在哪个无线路径上被接收,并且基于该信息,ue可以预测压缩后的包头中的信息。该步骤可以包括检索块标签,以及基于该路径解析数据块的编码系数。在一个实施例中,ue可以使用接收到的业务或其路径的已知性质来确定路径和/或预测包头中的信息。ue使用检索到的编码系数来解码数据块。

图6是可以用于实现各种实施例的处理系统600的框图。例如,该处理系统600可以是诸如智能手机、平板电脑、膝上型计算机或台式计算机的ue的一部分。处理系统还可以是诸如上述方案中的代理节点或节点的网络组件的一部分。特定设备可以使用所示的所有组件,或仅组件的子集,并且集成的等级可以随设备的变化而变化。再者,设备可以包含组件的多个实例,如,多个处理单元、处理器、存储器、发射器,接收器等。处理系统600可以包括处理单元601,其配备有一个或多个输入/输出设备,如扬声器、麦克风、鼠标、触摸屏、小键盘、键盘、打印机、显示器等。处理单元601可以包括中央处理单元(centralprocessingunit,cpu)610,存储器620,大容量存储设备630,视频适配器640,和连接至总线的i/o接口660。该总线可以是包括存储器总线或存储器控制器、外围总线、视频总线等任何类型的总线架构中的一种或多种。

cpu610可以包括任何类型的电子数据处理器。存储器620可以包括任何类型的系统存储器,如静态随机存取存储器(staticrandomaccessmemory,sram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、同步dram(synchronousdram,sdram)、只读存储器(read-onlymemory,rom)或其组合等等。在一个实施例中,存储器620可以包括在启动时使用的rom和在执行程序时使用的用于程序和数据存储的dram。在实施例中,存储器620是非瞬时性存储器。大容量存储设备630可以包括任何类型的存储设备,该设备可以用于存储数据、程序以及其他信息,并且使数据、程序以及其他信息可通过总线接入。大容量存储设备630可以包括,例如,固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器等中的一个或多个。

视频适配器640和i/o接口660提供接口,以将外部输入和输出设备耦合到处理单元。如图所示,输入和输出设备的示例包括耦合到视频适配器640的显示器690和耦合到i/o接口660的鼠标/键盘/打印机670的任何组合。其他设备可以耦合到处理单元601,并且可以使用额外的或更少的接口卡。例如,串行接口卡(未示出)可以用于为打印机提供串行接口。

处理单元601还包括一个或多个网络接口650,该接口可以包括诸如以太网电缆等的有线链路,和/或无线链路,以接入节点或一个或多个网络680。网络接口650允许处理单元601通过网络680与远程单元通信。例如,网络接口650可以通过一个或多个发射器/发射天线和一个或多个接收器/接收天线提供无线通信。在一个实施例中,处理单元601耦合到局域网或广域网,用于数据处理和与诸如其他处理单元、因特网、远程存储设施等的远程设备进行通信。

虽然本公开提供了多个实施例,但需要理解的是,公开的系统和方法可以以许多其他具体的形式来体现,而不脱离本公开的精神或范围。本示例被认为是说明性的而非限制性,并且该发明不受本文给出的细节的限制。例如,不同的元件或组件可以合并或集成到另一个系统中,或者某些特征可以忽略或不实施。

此外,可以将各种实施例中描述并示出的离散或独立的技术、系统、子系统和方法与其他系统、模块、技术或方法进行组合或集成,而不脱离本公开的范围。所示出或探讨的相互耦合、直接耦合或通信的其他项目可采用电气、机械或其他方式通过某些接口、设备或中间组件直接耦合或通信。本领域技术人员可以确定并做出变化、替换、和变更的其他示例,而不脱离本公开的精神和范围。

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