保护数据包以防差错的方法

文档序号:7517421阅读:246来源:国知局
专利名称:保护数据包以防差错的方法
技术领域
本发明涉及一个至少包含一个源实体和一个目标实体的系统,所述源实体被用于向所述目标实体发送数据包和纠错包。
本发明也涉及一个用来传送数据包和纠错包的传送装置,和一个用来接收数据包和纠错包的接收装置,并且至少包含数据包丢失检测装置和数据包恢复装置。
本发明还涉及一种保护数据包以防差错的方法,一种恢复丢失数据包的方法以及包含有用来实现所述方法的指令的计算机程序。
本发明最后涉及一个纠错包流。
本发明在包传送领域具有重要的作用。例如,应用于因特网上的数据传送,尤其是应用于基于无线存取网络的因特网上的数据传送。
背景技术
由IETF(国际互联网工程任务组)发布的文件“请求评注2733”中阐述了一种称为FEC(向前错误校正)的防差错机制的实例。FEC机制要求向被传送的数据中添加冗余码。这个冗余码在纠错包(也称FEC包)中被传送。冗余码允许重建在传输过程中丢失的包。在RFC2733中,FEC包是通过对不同数据包进行异或运算而生成的。对FEC包的不同的生成方法在RFC2733的第4节中做了推荐。

发明内容
本发明的一个目的是提出另一种机制,当差错预期会影响不同的连续包时,这种机制特别有效。因为无线电联络的质量低劣,这在无线传输情况下是尤为显著的。
这个目的通过一个根据本发明的一个系统来实现,并且如开头章节所述因为S个纠错包Y0,---Ys-1被生成用于N个数据包X0,…,XN-1,其中纠错包Yi(这里i是一个0和S-1之间的自然数)是依据N/S个数据包Xi+js而生成的,这里j=0,…,N/S-1。
本发明提出的这个机制在被恢复的两组包之间的间隔大于N的情况下,允许恢复(或重建)最多到S个连续包。
一个根据本发明的发送装置包含用来根据N/S个数据包Xi+js(j=0,…,N/S-1)生成一个纠错包Yi(这里i是一个介于0和S-1之间的自然数)的装置,和用来传送用于N个数据包X0,…,XN-1的S个纠错包Y0,---Ys-1的装置。
为了恢复一个数据包Xk,其中k=i+ps(这里i,P和S都是自然数),一个依据本发明的接收装置利用N/S-1个数据包Xi+js,其中j=0,…,N/S-1并且j≠p,和一个关于N/S个数据包Xi+js(j=0,…,N/S-1)的函数的纠错包Yi。
在本发明的一个优选实施例中,所述数据包在一端,而所述纠错包在另一端,形成二个分开的包流,它们在被产生并可能在被接收过程中都是彼此分开的。这个实施例允许接收装置只接收数据包流,或者数据包流和纠错包流,这取决于是否接收装置能够使用或不能使用纠错包流或者是否接收装置需要或不需要接收这个流。
依照本发明一个纠错包流包含包Yi,这是关于N/S个数据包Xi+js(j=0,…,N/S-1)的一个组合,这里i、N、S和N/S都是自然数。
参考下面所描述的实施例,关于本发明的这些及其他方面借助于非特定的实施例是显而易见的,并将加以阐明。


附图中图1是一个依据本发明的系统的一个实例的示意图;图2是一个IP/UDP/RTP/数据报示意图;图3是一个描述一个根据本发明的传送装置工作过程的实例的示意图;图4是一个描述一个根据本发明的接收装置工作过程的实例的示意图。
实施例说明图1借助实例显示了一个根据本发明的系统,它包含一个源实体和一个目标实体。在这个实施例中源实体是一个传送装置10,而目标实体是一个接收装置20。传送装置10和接收装置20通过传送信道30被连接到一起,这个信道包含例如一个无线信道。在上述实例中,其传输协议采用的是RTP到UDP到IP方法。这是不受限制的。RTP(实时传输协议)和UDP(用户数据报协议)分别是IETF在RFC1889和0768中定义的传输层协议。IP协议(因特网协议)是由IFTF通过RFC0791定义版本4及通过RFC1883定义版本6的一种网络层协议。下面将只对有助于理解本发明的部分加以说明。因为更多的细节评注在上述的RFC中已经做了说明。
图2表示了一个IP数据报,它本身包含一个UDP数据报,而UDP数据报本身又含有一个RTP包。
根据图2,一个IP数据报包50含一个头部IP-H和一个数据段IP-D。数据段IP-D含有一个UDP数据报52。UDP数据报52含有一个头部UDP-H和一个数据段UDP-D。数据段UDP-D含有一个被称为54的RTP包。这个RTP包54含有一个头部RTP-H和一个数据段RTP-D。
当RTP包是一个数据包时,数据段RTP-D包含有用数据,例如由一个视频MPEG-4编码器发出的编码数据。当RTP包是一个纠错包时,数据段RTP-D包含纠错码。
RTP包的头部RTP-H特别地包含一个类型段表示为PT,它指出包含在数据段RTP-D中的数据的类型,以及一个顺序号字段表示为SQ,这个顺序号字段SQ在每送出一个RTP包后递增1,以便允许接收装置检测丢失的一个包。
UDP数据报的头部UDP-H尤特别地包含一个目标段DF,它指出了UDP数据报的目的地。
IETF的RFC2773阐述了纠错包FEC的数据段RTP-D的格式。根据RFC2773的一个FEC包的数据字段RTP-D包括一个头部FEC,用FEC-H表示,随后是一个FEC数据段,用FEC-D表示。头部FEC-H包含一个段SN和一个段MASK。段SN指出由这个FEC包保护的数据包的基本顺序号M。段MASK是一个24比特段。当段MASK中的一个比特i被置为“1”,这表明具有顺序是m+i(模65536)的数据包是由这个FEC包所保护的。图3是一个说明传送装置10的工作过程的示意图。根据图3一个编码模块60将已编码数据发送到一个封包模块62。封包模块62送出RTP数据包Xp(p为自然数)。这个数据包Xp一方面被送到一个纠错包生成模块64,并且同时被送到一个传送模块66。纠错包生成模块64产生用于N个数据包Xp,…,Xp+N-1的S个纠错包Yp,q,其中q=0,…,S-1。根据本发明每个纠错包Yp,q是根据N/S个数据包Xp+q+js产生的,其中j=0,…,S-1。
然后纠错包Yp,q被送到传送模块66,这个传送模块66把RTP包封装到UDP数据报中,UDP数据根本身又被封装到IP数据报中,并传送由此得到的数据报。
在一种有利的方式中,传送模块66发送出两个分开的流,一个流70用于数据包而另一个流80用于纠错包。在实际中这两个流对应于两个不同的RTP会话期,这就是说对应于UDP数据报中两个不同的目标部分DF。
当数据包和纠错包组成一个信号流被在一个信号会话周期中传送时,纠错包必须在与之相关的N个数据包之后被传送,以便有效地去校正S个连续丢失的包。在这种情况下,类型段PT被有效地用于从纠错包中鉴别数据包。
图4是描述接收装置20的工作过程的示意图。如图4,接收模块110接收流70和80,并将数据包X′p和纠错包Y′p、q发送出去。一个检测模块120校验包含在数据包头部的顺序号SQ,以便检测出可能的丢失数据包。然后数据包被送到一个用来重建流的模块125,当检测模块120检测到一个数据包X′m(m=i+ks=aN+b,其中i,k,a和b都是自然数)被丢失了,一个恢复模块140根据N/S-1个数据包X′i+js,其中j=0,…,N/S-1且j≠k,并根据纠错包Y′a,i(纠错包Y′a,i头部的段SN和段MASK指出所使用的数据包)执行数据包的恢复操作过程。如果数据包X′i+jS(j=0,…,N/S-1且j≠k)和纠错包Y′a,i被正确地接收到,这些恢复操作会取得成功。在这种情况下q,恢复后的包是被传送到流重建模块125。流重建模块125通过向从模块120来的数据包流中插入由模块140重建的数据包来重建一个数据包流。然后,重建后的流被发送到应用模块130(在本例中是一个MPEG-4解码器)。另一方面,如果一个或多个数据包X′i+jS,(j=0,…,N/S-1且j≠k)或者如果纠错包Y′a,i没有被正确地接收到,则丢失的数据包X′m不能被恢复。
最后,恢复模块140在丢失包的各分组之间的间隔大于N时能够最多恢复S个连续包(显然只有分组中间的包可能被丢失,实际上当丢失包的分组之间的间隔大于N时恢复模块140能够恢复任何号码低于或等于S的连续或不连续的包)。自然数S和N是这样确定的,它们是关于可能丢失的连续包的顺序号、两个丢失包的分组之间的假定距离和要求保护比率(调整保护比率,N可能减少或增大)的一个函数。
在一般方式中,当S个纠错包被添加到N个数据包中,被传送的包的数量增加了(S/N)%。
现在将举在一种特定情况下一个生成纠错包的例子和一个恢复丢失的包的例子,以便举例说明刚才所阐述的问题。在这个例子中,N被选择为24且S为3。令X0,X2,---X23为24个连续的数据包,对应于这24个数据包的纠错包是用下面的方法获得的3个包Y0,0,Y0,1和Y0,2Y0,0=X0X3X6X9X12X15X18X21Y0,1=X1X4X7X10X13X16X19X22Y0,2=X2X5X8X11X14X17X20X23例如,如果一个或最多3个连续包X6、X7和X8丢失包X6将根据数据包X0、X3、X9、X12、X15、X18和X21并根据纠错包Y0,0加以恢复;包X7将根据数据包X1、X4、X10、X13、X16、X19和X22并根据纠错包Y0,1加以恢复;包X8将根据数据包X2、X5、X11、X14、X17、X20和X23并根据纠错包Y0,2加以恢复;在这个特定情况下,因为FEC保护机制所增加的传输包的数量是12.5%。
数N可以高于24,尽管段MASK只包含24比特。借助实例,N可能被选择为25且S选择为5。在这种情况下,5个纠错包Y0,0,Y0,1,Y0,2,Y0,3和Y0,4根据25个数据包X0,X2,---X24而生成的Y0,0=X0X5X10X15X20Y0,1=X1X6X11X16X21Y0,2=X2X7X12X17X22Y0,3=X3X8X13X18X23Y0,4=X4X9X14X19X24在这种情况下纠错包Y0,0和Y0,4段SN不包含相同的基本顺序号包Y0,0的字段SN包含包X0的顺序号;包Y0,4的段SN包含包X4的顺序号。
本发明并不局限于刚刚借助实例所阐述的实施例,要重要的是它并不局限于使用“异或”操作来产生纠错包。它适用于任何类型的纠错码,特别是卷积码或分组码。
它可能利用UDP/IP以外的另一种包传输层。例如,当传送发生在与蓝牙标准一致时,所使用的传输层是L2CAP。本发明也不局限于使用RTP协议。
一个编码模块的存在不是强制性的。非编码数据也能够被保护,例如文本。
在上述实施例中,纠错包适用于全部的数据包,但本发明也能够被用于一个多重保护机制,例如2000年11月15日IETF发布的文件“用于具有非平均层次保护的一般FEC的RTP运载格式”中所描述的。在这种情况下纠错包只适用于每个数据包的一部分,而不是整个包。用来计算一个纠错包的部分的长度可以是与一个关于包含在数据包中的被保护重要数据的函数成比例改变的。
最后,本发明已经在一种两个远距离装置之间进行无线通信状况下加以阐述。但是本发明也适用于一个由一种数据装载介质形成的源实体和一个由用来在所述介质上读出一个被存储的内容的读取装置组成的目的实体。在这种情况下,差错不是由传送信道引起的,而是由读操作本身所引起的。
权利要求
1.一个包括至少一个源实体和一个目标实体的系统,所述源实体被用于向所述目标实体发送数据包和纠错包,其特征在于,生成用于N个数据包X0,…,XN-1的S个纠错包Y0,…,YS-1,而一个纠错包Yi(其中i是一个介于0和S-1之间的自然数)是根据N/S个数据包Xi+jS而产生的,其中j=0,…,N/S-1。
2.如权利要求1所述的系统,其特征在于,所述数据包在一端,而所述纠错包在另一端,形成两个分开的包流,它们被彼此分开地产生且可以被彼此分开地获得。
3.一个用于传送数据包和纠错包的传送装置,其特征在于,它包括根据N/S个数据包Xi+jS(j=0,…,N/S-1)产生一个纠错包Yi(其中i是一个介于0和S-1之间的自然数)的装置,以及用来传送用于N个数据包X0,…,XN-1的S个纠错包Y0,…,YS-1的装置。
4.如权利要求3中所述的传送装置,其特征在于,它包括用来形成彼此分开的一个数据包流和一个纠错包流的装置,所述的流将被彼此分开地传输。
5.一个用于数据包和纠错包的接收装置,至少包括数据包丢失检测装置和数据包恢复装置,其特征在于,为了恢复一个数据包Xk,k=i+pS(其中i,p和S是自然数),所述恢复装置使用是关于N/S个数据包Xi+jS(j=0,...,N/S-1)的一个函数的一个纠错包Yi和N/S-1个数据包Xi+jS(j=0,…,N/S-1且j≠p)。
6.一种保护数据包以防差错的方法,包括根据所述数据包产生纠错包的步骤,和发送所述纠错包的步骤,其特征在于,产生纠错包的所述步骤包括根据N/S个数据包Xi+jS(j=0,…,N/S-1)产生一个纠错包Yi(其中i是一个介于0和S-1之间的自然数)的过程,而所述发送纠错包的步骤包括发送用于N个数据包X0,…,XN-1的S个纠错包Y0,…,YS-1的过程。
7.如权利要求6中的保护数据包以防差错的方法,其特征在于,它包括一个生成彼此分开的一个数据包流和一个纠错包流的步骤,所述的流将被彼此分开地发送。
8.一个计算机程序包含用来实现如权利要求6或7之一所要求的保护数据包以防差错的方法的计算机指令。
9.一种根据数据包和纠错包恢复丢失的数据包的方法,其特征在于,它利用一个是关于N/S个数据包Xi+jS(j=0,…,N/S-1)的一个函数的纠错包Yi,以及N/S-1个数据包Xi+jS(j=0,…,N/S-1且j≠p)来恢复一个数据包Xk,k=i+pS(其中i,p和S是自然数)。
10.一个计算机程序包含用来实现如权利要求9所要求的恢复数据包的方法的计算机指令。
11.纠错包流中的包Yi是关于N/S个数据包Xi+jS(j=0,…,N/S-1)的一种组合,i,N,S和N/S为自然数。
全文摘要
本发明提供一种保护数据包以防差错的方法,这种方法包括产生用于N个数据包的S个纠错包,一个纠错包Yi(其中i是一个介于0和S-1之间的自然数)将根据N/S个数据包X
文档编号H03M13/00GK1380780SQ0211807
公开日2002年11月20日 申请日期2002年3月10日 优先权日2001年3月13日
发明者G·德尔马斯 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1