CN101296055B - 数据包收发方法及装置 - Google Patents
数据包收发方法及装置 Download PDFInfo
- Publication number
- CN101296055B CN101296055B CN2007101036246A CN200710103624A CN101296055B CN 101296055 B CN101296055 B CN 101296055B CN 2007101036246 A CN2007101036246 A CN 2007101036246A CN 200710103624 A CN200710103624 A CN 200710103624A CN 101296055 B CN101296055 B CN 101296055B
- Authority
- CN
- China
- Prior art keywords
- check
- packet
- data
- data packet
- sequence number
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信领域,公开了一种数据包收发方法及装置,在中转设备修改了包序号后,接收终端还能够正确恢复出丢失的数据包。本发明中,对数据包进行前向纠错编码生成校验包,在数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,使用基于UDP的协议发送数据包和校验包。发送端可通过在校验包中记录数据包特征字的方式,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息;也可以通过在数据包和校验包中扩展附加数据的方式,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息。
Description
技术领域
本发明涉及通信领域,特别涉及数据包的传输技术。
背景技术
随着第三代移动通信系统(3rd Generation,简称“3G”)的出现和普遍基于网际协议(Internet Protocol,简称“IP”)的网络迅速发展,视频通信正逐步成为通信的主要业务之一,如双方或多方视频通信业务,如可视电话、视频会议、移动终端多媒体服务等。
在视频/音频传输过程中,为了减少传输的数据量,会将原始视频/音频序列按照某种编码算法(例如:H.263、H.264、G.729等)进行压缩,得到每帧数据量不等的码流。为了适应网络传输,该压缩码流还要按照某种封装协议进行一次封装和分片,例如在IP网络上的封装和分片过程称之为打包。在IP网络上一个典型的视频/音频传输过程如图1所示。
经过编码后打包后一帧原始图像被分成了多个实时传输协议(Real-timeTransport Protocol,简称“RTP”)包进行传送,为了提高传输效率,传输视频包一般使用用户数据报协议(User Datagram Protocol,简称“UDP”)协议,该传输协议由于不需要握手和应答,因此传输效率很高,但是导致的后果就是视频数据包容易被丢失,最终导致接收端不能解码出完整的图像。
为了减少数据包丢失对视频图像造成的影响,目前已经有许多的方法,归纳起来有如下几类:
(1)基于时间和空间的补偿方法:该方法在接收端进行,当接收端检测到有丢包后,可以将丢包导致不能解码的图像(声音)区域标识出来,再根据语音和图像在时间和空间的相关性利用运动补偿、线性插值等方法将丢失区域进行补偿。
(2)基于前向纠错(Forward Error Correction,简称“FEC”)的包补偿方法:该方法在发送端采用FEC算法,将视频/音频码流进行校验生成校验数据,再将视频/音频数据和校验数据一起传送到接收端;接收端检测到视频/音频数据包丢失后,根据校验数据按照与发送端相同的校验规则将丢失的数据包完全恢复出来,最终可以完整恢复出图像和语音。
(3)丢包重传方式:接收端检测到丢包后通知发送端,发送端将丢失的包重传一次。
在目前提出的一种采用FEC方式的包校验和传输系统中,为了让接收端能识别出来数据包和校验包,并且识别出当前校验包是由哪几个数据包产生的,对校验包的RTP打包格式做了如下规定:
将一个校验包的包头和该校验包的荷载放进RTP包的荷载中,组成一个FEC包(即基于RTP的校验包),如图2所示。其中校验包的包头的长度为12个字节,其格式如图3所示。它包含一个用于表示包序号的序列号(Sequence Number,简称“SN”)基数域,长度恢复域,E域,净荷类型(PayloadType,简称“PT”)恢复域,Mask(标记)域以及标记交换(Tag switching,简称“TS”)恢复域。
在校验包的包头中,SN基数域的值必须设置为与该校验包对应的数据包中的最小的包序号,比如说,该校验包由包序号为12、14、18的数据包运算生成,则该SN基数域的值必须设置为12。Mask域长度为24个比特,如果其中的第i个比特设置为1,那么序号为N+i的数据包就与该校验包相关联,即与该校验包对应的数据包中存在该序号为N+i的数据包。其中N是SN基数域的值,最低位(LSB)对应于i=0,最高位(MSB)对应于i=23,因此一个数据包最多可以由24个数据包运算生成。针对上述案例,在该校验包的包头的Mask域中,第0个比特、第2个比特、第6个比特将被设置为1,以表示与该校验包对应的数据包为包序号为12(12+0)、14(12+2)、和18(12+6)的数据包。
然而,本发明的发明人发现,目前是根据校验包中的SN基数域(即包序号)和Mask域确定校验包和数据包的对应关系,而在多点视频通信中,中转设备如多点控制设备(Multipoint Control Unit,简称“MCU”)等,往往会修改包序号,以保证在会场切换时包序号的连续性,因此,将导致接收端无法正确恢复校验包和数据包的对应关系,造成校验错误。如果要避免该问题,就需要在MCU的接收端进行恢复操作,在发送端重新进行校验,如图4所示,因此,将增加MCU的负荷,并且产生对MCU的配套依赖。
发明内容
本发明实施方式要解决的主要技术问题是提供一种数据包收发方法及装置,在中转设备修改了包序号后,接收终端还能够正确恢复出丢失的数据包。
为解决上述技术问题,本发明的实施方式提供了一种数据包发送方法,包含以下步骤:
对数据包进行前向纠错编码生成校验包,在数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,使用基于用户数据报协议UDP的协议发送数据包和校验包。
本发明的实施方式还提供了一种数据包接收方法,包含以下步骤:
使用基于UDP的协议接收数据包和校验包,从收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息,根据所获取的对应信息对已收到的数据包和校验包进行前向纠错处理,恢复出丢失的数据包。
本发明的实施方式还提供了一种数据包发送装置,包含:
编码单元,用于对数据包进行前向纠错编码生成校验包;
封装单元,用于在数据包和/或编码单元生成的校验包中,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息;
发送单元,用于使用基于UDP的协议,发送封装单元封装后的数据包和校验包。
本发明的实施方式还提供了一种数据包接收装置,包含:
接收单元,用于使用基于UDP的协议接收数据包和校验包;
获取单元,用于从接收单元收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息;
纠错单元,用于根据获取单元获取的对应信息对已收到的数据包和校验包进行前向纠错处理,恢复出丢失的数据包。
本发明实施方式与现有技术相比,主要区别及其效果在于:
对数据包进行前向纠错编码生成校验包,在数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,使用基于UDP的协议发送数据包和校验包。使得在中转设备如MCU修改了包序号后,接收终端仍能够获取到数据包和校验包之间对应关系,从而正确恢复出丢失的数据包,避免了MCU和终端的配套问题,使得抗丢包功能的环境适应性得到很大改善。
附图说明
图1是现有技术中在IP网络上一个典型的视频/音频传输示意图;
图2是现有技术中的FEC包结构示意图;
图3是现有技术中校验包的包头结构示意图;
图4是现有技术中MCU的接收端进行恢复操作,并在发送端重新进行校验的示意图;
图5是根据本发明第一实施方式的数据包发送方法流程图;
图6是根据本发明第一实施方式中数据包与校验包的生成关系示意图;
图7是根据本发明第二实施方式的数据包接收方法流程图;
图8是根据本发明第三实施方式的数据包发送方法中数据包和校验包的RTP打包格式示意图;
图9是根据本发明第五实施方式的数据包发送装置结构示意图;
图10是根据本发明第六实施方式的数据包接收装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明的第一实施方式涉及一种数据包发送方法,在本实施方式中,通过在校验包中记录与该校验包所属校验组中各数据包的特征字,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,具体流程如图5所示。
在步骤510中,对承载语音和/或视频数据的数据包进行FEC编码生成校验包。具体地说,发送端选择一个M×N的校验矩阵,根据选择的校验矩阵对M个数据包进行FEC编码,生成N个校验包,生成的N个校验包与M个数据包形成校验组,其中,M和N为正整数。
比如说,发送端选择的是一个4×3的校验矩阵,则每4个数据包生成3个校验包,形成一个校验组。数据包与校验包的生成关系可以如下:数据包x1、数据包x2、和数据包x3,生成校验包c1;数据包x1和数据包x4,生成校验包c2;数据包x1、数据包x2、和数据包x4,生成校验包c3,如图6所示。
接着,进入步骤520,发送端将生成的校验包打包成RTP格式,并在生成的校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息。
具体地说,将一个校验包的包头和该校验包的荷载放进RTP包的荷载中,组成一个FEC包,并对该校验包的包头进行扩展,通过扩展的信息携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,扩展的信息如表1所示。
校验矩阵序号 | 排序序号 | 有效数据包个数 | 特征字1 | 特征字2 | ... | 特征字n | 校验组编号 |
表1
其中,校验矩阵序号表示该校验包所属校验组使用的校验矩阵的序号。通过在校验包的包头中携带该信息,可以与接收端唯一确定该校验包所属校验组使用的M×N的校验矩阵,即与接收端唯一确定M和N的值以及相互之间的校验关系。
排序序号表示该校验包在所属校验组的校验包中的排序序号,用于识别该校验包的位置。针对上述案例,校验包c1的排序序号将设置为1,校验包c2的排序序号将设置为2,校验包c3的排序序号将设置为3。
有效数据包个数表示该校验包所属校验组中有效数据包的个数。针对上述案例,在校验包c1、校验包c2、和校验包c3的包头中,设置的有效数据包个数均为4。
特征字1...特征字n,表示该校验包所属校验组的各数据包的特征字,特征字1...特征字n的排序与该校验组中各数据包的发送次序相同。每个数据包的特征字均由相应的数据包生成,唯一标识该数据包。比如说,通过计算数据包的校验和、计算数据包的循环冗余校验(Cyclic Redundancy Check,简称“CRC”)等方式,得到该数据包的特征字。特征字的长度可根据上面的计算需要进行设置。
校验组编号表示该校验包所属校验组的校验组编号,以便接收端能够获知该校验包所属的校验组。
针对上述案例,假设数据包x1、数据包x2、数据包x3、数据包x4、校验包c1、校验包c2、校验包c3所属的校验组编号为9,使用的4×3的校验矩阵的序号为1,并且这7个包的发送顺序为(x1,x2,x3,x4,c1,c2,c3),其中:
x1:RTP_SN=100 数据包x1的特征字为t1
x2:RTP_SN=101 数据包x2的特征字为t2
x3:R TP_SN=102 数据包x3的特征字为t3
x4:RTP_SN=103 数据包x4的特征字为t4
则校验包c1、校验包c2、校验包c3的包头中,扩展的字段设置如表2所示:
RTP_SN | 校验矩阵序号 | 排序序号 | 有效数据包个数 | 特征字1 | 特征字2 | 特征字3 | 特征字4 | 校验组编号 | |
c1 | 104 | 1 | 1 | 4 | t1 | t2 | t3 | t4 | 9 |
c2 | 105 | 1 | 2 | 4 | t1 | t2 | t3 | t4 | 9 |
c3 | 106 | 1 | 3 | 4 | t1 | t2 | t3 | t4 | 9 |
表2
由此可见,即使各数据包和校验包经过MCU转发后,RTP_SN被修改为:
x1:RTP_SN=562
x2:RTP_SN=563
x3:RTP_SN=564
x4:RTP_SN=565
c1:RTP_SN=566
c2:RTP_SN=567
c3:RTP_SN=568
接收端仍可根据携带在校验包的包头中的扩展信息,获知该校验包是由哪几个数据包生成(即与该校验包对应的数据包)。以校验包c1为例,接收端可根据携带在该校验包c1的包头中的扩展信息,获知该校验包c1所属的校验组使用的校验矩阵为4×3的校验矩阵及该校验组中数据包与校验包的生成关系、和该校验包c1为该校验组中的第一个校验包,因此可以推算出与生成该校验包c1相关的数据包为该校验组中的第1个数据包、第2个数据包、和第3个数据包。而且,由于该包头中的扩展信息内依次携带了该校验组中各数据包的特征字,所以,接收端可以根据数据包的特征字,查找到与该校验包c1对应的数据包。
接着,进入步骤530,发送端使用RTP发送数据包和校验包。针对上述案例,发送端使用RTP依次发送数据包x1、数据包x2、数据包x3、数据包x4、校验包c1、校验包c2、和校验包c3。
由于在本实施方式中,在校验包中携带的表示数据包和校验包之间对应关系的对应信息,独立于包序号,因此,即使在中转设备如MCU修改了包序号后,接收终端仍能够获取到数据包和校验包之间对应关系,从而正确恢复出丢失的数据包,避免了MCU和终端的配套问题,使得抗丢包功能的环境适应性得到很大改善。
而且,由于本实施方式只对校验包的包头进行了扩展,并不需要修改数据包,因此,即使接收端不支持本实施方式中的数据校验,也只需将校验包丢弃即可,不影响正常数据包的解码。而且,只要数据包中的视频/音频数据不发生变化,则相对应的特征字也不会发生变化,也就能正确恢复出丢失的包了。
本发明的第二实施方式涉及一种数据包接收方法,本实施方式对应于第一实施方式的数据包发送方法,具体流程如图7所示。
在步骤710中,使用RTP从网络上接收数据包和校验包,其中,数据包为承载语音和/或视频数据的数据包。
接着,进入步骤720,从收到的校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息。
具体地说,接收端解析收到的校验包的包头,从解析的校验包的包头中获取该校验包所属校验组的校验组编号,该校验包所属校验组使用的校验矩阵的序号,和该校验包在该校验组的校验包中的排序序号,并顺序获取该校验包所属校验组的各数据包的特征字。然后,根据获取的校验矩阵的序号、该校验包在所属校验组的校验包中的排序序号、和特征字,查找到与该校验包对应的数据包。
针对第一实施方式中的案例,以校验包c1为例,接收端在接收到校验包c1时,首先解析该校验包c1的包头,从该校验包c1的包头中提出该校验包c1所属的校验组使用的校验矩阵的序号、该校验包c1在所属校验组的校验包中的排序序号、以及该校验包c1所属校验组的各数据包的特征字等信息。然后,根据获取的校验矩阵的序号,可以获知该校验包c1所属的校验组使用的校验矩阵为4×3的校验矩阵,并且,根据获取的该校验包c1在所属校验组的校验包中的位置(该校验包c1为第一个校验包),可以获知该校验包c1由该校验组中的第1个数据包、第2个数据包、和第3个数据包生成。并且,根据获取的该校验组中的数据包的特征字依次为t1、t2、t3、和t4的信息,可以获知与该校验包c1对应的数据包为:特征字为t1的数据包、特征字为t2的数据包、和特征字为t3的数据包,从而查找到与该校验包c1对应的数据包。
比如说,接收端之前收到了数据包x1、数据包x3、数据包x2、和数据包x4,并在接收到数据包时,根据数据包生成了相应的特征字,依次为t1、t3、t2、和t4,因此,接收端可通过对在包头中获取的特征字信息和在接收到数据包时生成的特征字信息进行比较,查找到与该校验包c1对应的数据包为之前接收的数据包x1、数据包x2、和数据包x3。
接着,进入步骤730,接收端根据所获取的对应信息对已收到的数据包和校验包进行FEC处理,恢复出丢失的数据包。
比如说,接收端在收到校验包并提取出其包头中的扩展信息后,可以通过再将前面接收到的数据包的特征字按照该扩展信息中的特征字进行排序,检测是否有丢包。针对第一实施方式中的案例,假设在本实施方式中,接收端只收到了数据包x1和数据包x2,因此,可根据在校验包中携带的特征字检测出丢失的数据包为:数据包x3和数据包x4。
然后,接收端再根据之前获取的数据包和校验包之间对应关系的对应信息,恢复出丢失的数据包。也就是说,利用校验包c1、数据包x1、和数据包x2恢复出数据包x3;利用校验包c2和数据包x1恢复出数据包x4。
本发明的第三实施方式涉及一种数据包发送方法,本实施方式与第一实施方式大致相同,其区别在于,在第一实施方式中,通过在校验包中记录与该校验包所属校验组中各数据包的特征字,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息;而在本实施方式中,通过在数据包和校验包中插入附加数据,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,在该附加数据中携带本数据包或本校验包所属校验组使用的校验矩阵的序号,和在该校验组中的排序序号。
具体地说,本实施方式中的数据包和校验包的RTP打包格式如图8所示,在该数据包或该校验包中分别插入附加数据。该附加数据的结构如表3所示:
校验矩阵序号 | 有效数据包个数 | 排序序号 | 包类型 | 校验组编号 |
表3
其中,校验矩阵序号表示该数据包或该校验包所属校验组使用的校验矩阵的序号。通过在该附加数据中携带该信息,可以与接收端唯一确定所属校验组使用的M×N的校验矩阵,即与接收端唯一确定M和N的值以及相互之间的校验关系,与表1中的校验矩阵序号的含义相同。
有效数据包个数表示该数据包或该校验包所属校验组中有效数据包的个数,与表1中的有效数据包个数的含义相同。
排序序号表示该数据包或该校验包在所属校验组中的排序序号,取值为[0,M+N)。比如说,使用的校验矩阵为4×3的校验矩阵,数据包与校验包的生成关系如图6所示,则数据包x1、数据包x2、数据包x3、数据包x4、校验包c1、校验包c2、和校验包c3的排序序号依次为0、1、2、3、4、5、6。
包类型表示当前包为数据包或校验包的包类型信息,以便接收端能根据该信息迅速地判断出当前包的包类型。
校验组编号表示该数据包或该校验包所属校验组的校验组编号,以便接收端能够获知该数据包或该校验包所属的校验组,与表1中的校验组编号的含义相同。
不难发现,本实施方式通过在数据包和校验包中分别插入附加数据,同样可以携带独立于包序号的表示数据包和校验包之间对应关系的对应信息。因此,即使在中转设备如MCU修改了包序号后,接收终端仍能够获取到数据包和校验包之间对应关系,从而正确恢复出丢失的数据包,避免了MCU和终端的配套问题,使得抗丢包功能的环境适应性得到很大改善。
本发明的第四实施方式涉及一种数据包接收方法,本实施方式对应于第三实施方式的数据包发送方法,因此,与第二实施方式大致相同,其区别在于,在第二实施方式中,接收端从收到的校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息;而在本实施方式中,接收端从收到的数据包和校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息。
具体地说,接收端分别解析收到的数据包和校验包中扩展的的附加数据,从解析的附加数据中获取该数据包或该校验包所属校验组的校验组编号、该数据包或校验包所属校验组使用的校验矩阵的序号,和该数据包或校验包在该校验组中的排序序号。然后,根据获取的校验矩阵的序号、和数据包和校验包的在所属校验组中的排序序号,查找到与校验包对应的数据包。
比如说,根据获取的校验矩阵的序号,可以获知校验组使用的校验矩阵为4×3的校验矩阵,并且数据包与校验包的生成关系如图6所示,再根据获取的在所属校验组中的排序序号,接收端可以获知排序序号为4的校验包所对应的数据包为:排序为0的数据包、排序为1的数据包、和排序为2的数据包。类似地,接收端可以获知排序序号为5或为6的校验包各自所对应的数据包。
在本实施方式中,接收端使用RTP从网络上接收数据包和校验包、以及根据所获取的对应信息对已收到的数据包和校验包进行FEC处理,恢复出丢失的数据包等步骤与第二实施方式相同,在此不再赘述。
本发明的第五实施方式涉及一种数据包发送装置,如图9所示,包含编码单元,用于对承载语音和/或视频数据的数据包进行FEC编码生成校验包;封装单元,用于在数据包和/或编码单元生成的校验包中,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息;发送单元,用于使用基于UDP的协议,如RTP,发送该封装单元封装后的数据包和校验包。
由于在数据包和/或校验包中携带的表示数据包和校验包之间对应关系的对应信息,独立于包序号,因此,即使在中转设备如MCU修改了包序号后,接收终端仍能够获取到数据包和校验包之间对应关系,从而正确恢复出丢失的数据包,避免了MCU和终端的配套问题,使得抗丢包功能的环境适应性得到很大改善。
其中,编码单元对数据包进行FEC编码生成校验包的方式如下:选择M×N的校验矩阵,根据选择的校验矩阵对M个数据包进行FEC编码,生成N个校验包,生成的N个校验包与M个数据包形成校验组,其中,M和N为正整数。
封装单元通过包含以下子单元,在数据包和/或编码单元生成的校验包中,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息:
第一子单元,用于在生成的校验包中携带该校验包所属校验组使用的校验矩阵的序号,和该校验包在该校验组的校验包中的排序序号;第二子单元,用于在该校验包中携带该校验包所属校验组的各数据包的特征字,并按照该校验组中各数据包的发送次序,顺序携带各数据包的特征字,各数据包的特征字根据相应的数据包生成,唯一标识该数据包。
或者,封装单元通过包含以下子单元,在数据包和/或编码单元生成的校验包中,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息:
第三子单元,用于在数据包和校验包中分别携带本数据包或本校验包所属校验组使用的校验矩阵的序号,和在该校验组中的排序序号。
需要说明的是,该封装单元还可以包含第四子单元,用于在校验包中携带用于标识该校验包所属校验组的校验组编号;或者,用于在数据包和校验包中分别携带用于标识该数据包或校验包所属校验组的校验组编号。
另外,值得一提的是,本实施方式中的各单元均为逻辑单元,在实际应用中,可以有各种不同的物理实现方式。
本发明的第六实施方式涉及一种数据包接收装置,对应于第五实施方式中的数据包发送装置。具体地说,如图10所示,包含:接收单元,用于使用基于UDP的协议如RTP,接收数据包和校验包;获取单元,用于从该接收单元收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息;纠错单元,用于根据该获取单元获取的对应信息对已收到的数据包和校验包进行FEC处理,恢复出丢失的数据包。
其中,获取单元通过包含以下子单元,从该接收单元收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息:
第一子单元,用于获取携带在校验包中的该校验包所属校验组使用的校验矩阵的序号,和该校验包在该校验组的校验包中的排序序号;第二子单元,用于顺序获取携带在校验包中的该校验包所属校验组的各数据包的特征字;第三子单元,用于根据获取的校验矩阵的序号、校验包在所属校验组的校验包中的排序序号、和特征字,查找到与该校验包对应的数据包。
或者,获取单元通过包含以下子单元,从该接收单元收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息:
第四子单元,用于获取分别携带在数据包和校验包中的该数据包或校验包所属校验组使用的校验矩阵的序号,和该数据包或校验包在该校验组中的排序序号;第五子单元,用于根据获取的校验矩阵的序号、数据包和校验包的在所属校验组中的排序序号,查找到与校验包对应的数据包。
需要说明的是,该获取单元还可以包含第六子单元,该第六子单元用于获取携带在校验包中的用于标识该校验包所属校验组的校验组编号,并将获取的校验组编号输出到该第一和第二子单元;或者,用于获取分别携带在数据包和校验包中的用于标识该数据包或校验包所属校验组的校验组编号,并将获取的校验组编号输出到该第四子单元。
另外,值得一提的是,本实施方式中的各单元均为逻辑单元,在实际应用中,可以有各种不同的物理实现方式。
综上所述,在本发明的实施方式中,对数据包进行前向纠错编码生成校验包,在数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,使用基于UDP的协议发送数据包和校验包。使得在中转设备如MCU修改了包序号后,接收终端仍能够获取到数据包和校验包之间对应关系,从而正确恢复出丢失的数据包,避免了MCU和终端的配套问题,使得抗丢包功能的环境适应性得到很大改善。
发送端可通过在校验包中记录数据包特征字的方式,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息;也可以通过在数据包和校验包中扩展附加数据的方式,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息。使得本发明的实施方式可灵活实现。
采用在校验包中记录数据包特征字的方式,可以不用修改数据包,只需在校验包中做相应修改即可携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,因此当接收端不支持本发明实施方式中的数据校验时,只需将校验包丢弃即可,不影响正常数据包的解码。而且,只要数据包中的视频/音频数据不发生变化,则相对应的特征字也不会发生变化,也就能正确恢复出丢失的包了。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (16)
1.一种数据包发送方法,其特征在于,包含以下步骤:
对数据包进行前向纠错编码生成校验包,在所述数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息,使用基于用户数据报协议UDP的协议发送所述数据包和校验包;
其中,所述对数据包进行前向纠错编码生成校验包的步骤中,包含以下子步骤:
选择M×N的校验矩阵,根据选择的校验矩阵对M个数据包进行前向纠错编码,生成N个校验包,生成的N个校验包与所述M个数据包形成校验组,其中,M和N为正整数;
在所述数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息的步骤中,包含以下子步骤:
在所述校验包中携带该校验包所属校验组使用的所述校验矩阵的序号,和该校验包在该校验组的校验包中的排序序号;
在所述校验包中携带该校验包所属校验组的各数据包的特征字,并按照该校验组中各数据包的发送次序,顺序携带所述特征字,所述特征字根据相应的数据包生成,唯一标识该数据包;
或者,在所述数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息的步骤中,包含以下子步骤:
在所述数据包和校验包中分别携带本数据包或本校验包所属校验组使用的校验矩阵的序号,和在该校验组中的排序序号。
2.根据权利要求1所述的数据包发送方法,其特征在于,所述基于UDP的协议为实时传输协议RTP;
所述数据包承载语音和/或视频数据。
3.根据权利要求1所述的数据包发送方法,其特征在于,所述校验矩阵的序号、所述校验包在所属校验组的校验包中的排序序号、和所述特征字,携带在该校验包的包头中。
4.根据权利要求1所述的数据包发送方法,其特征在于,所述校验矩阵的序号和,所述数据包或校验包在所属校验组中的排序序号,携带在该数据包或校验包中扩展的附加数据中。
5.根据权利要求4所述的数据包发送方法,其特征在于,所述附加数据中还包含用于表示当前包为数据包或校验包的包类型信息。
6.根据权利要求1至5中任一项所述的数据包发送方法,其特征在于,在所述数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息的步骤中,还包含以下子步骤:
在所述校验包中携带用于标识该校验包所属校验组的校验组编号;或者,
在所述数据包和校验包中分别携带用于标识该数据包或校验包所属校验组的校验组编号。
7.根据权利要求6所述的数据包发送方法,其特征在于,在所述数据包和/或校验包中携带独立于包序号的表示数据包和校验包之间对应关系的对应信息的步骤中,还包含以下子步骤:
在所述校验包中携带该校验包所属校验组中有效数据包的个数;或者,
在所述数据包和校验包中分别携带该数据包或校验包所属校验组中有效数据包的个数。
8.一种数据包接收方法,其特征在于,包含以下步骤:
使用基于UDP的协议接收数据包和校验包,从收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息,根据所获取的对应信息对已收到的数据包和校验包进行前向纠错处理,恢复出丢失的数据包;
其中,所述从收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息的步骤中,包含以下子步骤:
获取携带在所述校验包中的该校验包所属校验组使用的校验矩阵的序号,和该校验包在该校验组的校验包中的排序序号;
顺序获取携带在所述校验包中的该校验包所属校验组的各数据包的特征字;
根据获取的所述校验矩阵的序号、所述校验包在所属校验组的校验包中的排序序号、和所述特征字,查找到与该校验包对应的数据包;
或者,所述从收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息的步骤中,包含以下子步骤:
获取分别携带在所述数据包和校验包中的该数据包或校验包所属校验组使用的校验矩阵的序号,和该数据包或校验包在该校验组中的排序序号;
根据获取的所述校验矩阵的序号、和所述数据包和校验包的在所属校验组中的排序序号,查找到与所述校验包对应的数据包;
所述校验组为发送端根据选择的M×N的校验矩阵对M个数据包进行前向纠错编码,生成N个校验包,生成的N个校验包与所述M个数据包形成的校验组,M和N为正整数。
9.根据权利要求8所述的数据包接收方法,其特征在于,所述基于UDP的协议为实时传输协议RTP;
所述数据包承载语音和/或视频数据。
10.根据权利要求8所述的数据包接收方法,其特征在于,所述从收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息的步骤中,还包含以下子步骤:解析收到的校验包的包头;
从解析的所述校验包的包头中获取所述校验矩阵的序号、所述校验包在所属校验组的校验包中的排序序号、和所述特征字。
11.根据权利要求8所述的数据包接收方法,其特征在于,所述从收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息的步骤中,还包含以下子步骤:分别解析收到的数据包和校验包中扩展的的附加数据;
从解析的附加数据中获取所述校验矩阵的序号和,所述数据包或校验包的在所属校验组中的排序序号。
12.根据权利要求8至11中任一项所述的数据包接收方法,其特征在于,所述获取所述校验矩阵的序号和所述校验包在所属校验组的校验包中的排序序号的子步骤、以及所述顺序获取所述特征字的子步骤中,还包含以下子步骤:
获取携带在所述校验包中的用于标识该校验包所属校验组的校验组编号;
或者,所述获取所述校验矩阵的序号、和所述数据包和校验包的在所属校验组中的排序序号的子步骤中,还包含以下子步骤:
获取分别携带在所述数据包和校验包中的用于标识该数据包或校验包所属校验组的校验组编号。
13.一种数据包发送装置,其特征在于,包含:
编码单元,用于对数据包进行前向纠错编码生成校验包;
封装单元,用于在所述数据包和/或所述编码单元生成的校验包中,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息;
发送单元,用于使用基于UDP的协议,发送所述封装单元封装后的数据包和校验包;
其中,所述编码单元对数据包进行前向纠错编码生成校验包的方式如下:
选择M×N的校验矩阵,根据选择的校验矩阵对M个数据包进行前向纠错编码,生成N个校验包,生成的N个校验包与所述M个数据包形成校验组,其中,M和N为正整数;
所述封装单元通过包含以下子单元,在所述数据包和/或所述编码单元生成的校验包中,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息:
第一子单元,用于在所述校验包中携带该校验包所属校验组使用的所述校验矩阵的序号,和该校验包在该校验组的校验包中的排序序号;
第二子单元,用于在所述校验包中携带该校验包所属校验组的各数据包的特征字,并按照该校验组中各数据包的发送次序,顺序携带所述特征字,所述特征字根据相应的数据包生成,唯一标识该数据包;
或者,所述封装单元通过包含以下子单元,在所述数据包和/或所述编码单元生成的校验包中,携带独立于包序号的表示数据包和校验包之间对应关系的对应信息:
第三子单元,用于在所述数据包和校验包中分别携带本数据包或本校验包所属校验组使用的校验矩阵的序号,和在该校验组中的排序序号。
14.根据权利要求13所述的数据包发送装置,其特征在于,所述封装单元还包含以下子单元,
第四子单元,用于在所述校验包中携带用于标识该校验包所属校验组的校验组编号;或者,
在所述数据包和校验包中分别携带用于标识该数据包或校验包所属校验组的校验组编号。
15.一种数据包接收装置,其特征在于,包含:
接收单元,用于使用基于UDP的协议接收数据包和校验包;
获取单元,用于从所述接收单元收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息;
纠错单元,用于根据所述获取单元获取的对应信息对已收到的数据包和校验包进行前向纠错处理,恢复出丢失的数据包;
其中,所述获取单元通过包含以下子单元,从所述接收单元收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息:
第一子单元,用于获取携带在所述校验包中的该校验包所属校验组使用的校验矩阵的序号,和该校验包在该校验组的校验包中的排序序号;
第二子单元,用于顺序获取携带在所述校验包中的该校验包所属校验组的各数据包的特征字;
第三子单元,用于根据获取的所述校验矩阵的序号、所述校验包在所属校验组的校验包中的排序序号、和所述特征字,查找到与该校验包对应的数据包;
或者,所述获取单元通过包含以下子单元,从所述接收单元收到的数据包和/或校验包中获取独立于包序号的表示数据包和校验包之间对应关系的对应信息:
第四子单元,用于获取分别携带在所述数据包和校验包中的该数据包或校验包所属校验组使用的校验矩阵的序号,和该数据包或校验包在该校验组中的排序序号;
第五子单元,用于根据获取的所述校验矩阵的序号、和所述数据包和校验包的在所属校验组中的排序序号,查找到与所述校验包对应的数据包;
所述校验组为发送装置根据选择的M×N的校验矩阵对M个数据包进行前向纠错编码,生成N个校验包,生成的N个校验包与所述M个数据包形成的校验组,M和N为正整数。
16.根据权利要求15所述的数据包接收装置,其特征在于,所述获取单元还包含以下子单元:
第六子单元,用于获取携带在所述校验包中的用于标识该校验包所属校验组的校验组编号,并将获取的校验组编号输出到所述第一和第二子单元;或者,
所述第六子单元用于获取分别携带在所述数据包和校验包中的用于标识该数据包或校验包所属校验组的校验组编号,并将获取的校验组编号输出到所述第四子单元。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101036246A CN101296055B (zh) | 2007-04-29 | 2007-04-29 | 数据包收发方法及装置 |
ES08706573T ES2389388T3 (es) | 2007-04-29 | 2008-01-28 | Método y dispositivo para transmitir y recibir paquetes de datos |
EP08706573A EP2166687B1 (en) | 2007-04-29 | 2008-01-28 | A method and apparatus for transmiting and receiving data packets |
PL08706573T PL2166687T3 (pl) | 2007-04-29 | 2008-01-28 | Sposób i urządzenie do transmisji i odbioru pakietów danych |
PCT/CN2008/070196 WO2008131655A1 (fr) | 2007-04-29 | 2008-01-28 | Procédé et appareil de transmission et de réception de paquets de données |
PT08706573T PT2166687E (pt) | 2007-04-29 | 2008-01-28 | Um método e um aparelho para transmissão e receção de pacotes de dados |
US12/608,457 US8327233B2 (en) | 2007-04-29 | 2009-10-29 | Method and device for transmitting and receiving data packets |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101036246A CN101296055B (zh) | 2007-04-29 | 2007-04-29 | 数据包收发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101296055A CN101296055A (zh) | 2008-10-29 |
CN101296055B true CN101296055B (zh) | 2013-01-09 |
Family
ID=39925197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101036246A Expired - Fee Related CN101296055B (zh) | 2007-04-29 | 2007-04-29 | 数据包收发方法及装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8327233B2 (zh) |
EP (1) | EP2166687B1 (zh) |
CN (1) | CN101296055B (zh) |
ES (1) | ES2389388T3 (zh) |
PL (1) | PL2166687T3 (zh) |
PT (1) | PT2166687E (zh) |
WO (1) | WO2008131655A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483497B (zh) * | 2008-12-15 | 2011-08-03 | 华亚微电子(上海)有限公司 | 数据传输系统及其接收端、数据包恢复方法 |
US8265099B2 (en) * | 2008-12-22 | 2012-09-11 | Gn Resound A/S | Error correction scheme in a hearing system wireless network |
CN101877620B (zh) * | 2009-04-30 | 2013-08-14 | 华为技术有限公司 | 前向纠错方法、装置和系统 |
CN101883240B (zh) * | 2010-06-09 | 2012-02-22 | 广东威创视讯科技股份有限公司 | 基于mcu的视频会议系统及其视频传输丢包处理的方法 |
DK2823616T3 (da) | 2012-03-06 | 2021-01-11 | Appear Tv As | Fremgangsmåde, enhed og system til pakketransmission over ip-netværk |
CN107017966B (zh) * | 2013-11-04 | 2020-06-09 | 上海数字电视国家工程研究中心有限公司 | 数据包的封装方法及校验方法 |
EP2961176B1 (en) * | 2014-06-23 | 2017-01-11 | Harman Becker Automotive Systems GmbH | Correcting errors in a digital media transport stream |
US10447755B2 (en) | 2015-03-16 | 2019-10-15 | Imagine Communications Corp. | Video stream transmission over IP network |
US10735142B2 (en) | 2015-05-29 | 2020-08-04 | Goodrich Corporation | Multi-system data transfer protocol |
CN105808469B (zh) * | 2016-03-21 | 2018-12-25 | 北京小米移动软件有限公司 | 数据处理方法、装置、终端及智能设备 |
CN107241166A (zh) | 2017-06-12 | 2017-10-10 | 京信通信系统(中国)有限公司 | 一种长期演进上的语音Volte数据保障方法和设备 |
CN109729438B (zh) * | 2017-10-31 | 2022-02-08 | 杭州海康威视数字技术股份有限公司 | 一种发送视频包、接收视频包的方法及装置 |
CN110166166B (zh) * | 2018-02-14 | 2022-01-28 | 瑞昱半导体股份有限公司 | 网络数据处理装置及方法 |
CN110740135A (zh) * | 2019-10-21 | 2020-01-31 | 湖南新云网科技有限公司 | 一种多媒体教室的同屏数据传输方法、装置及系统 |
CN114499747B (zh) * | 2020-11-09 | 2023-06-20 | 成都鼎桥通信技术有限公司 | 音视频数据的处理方法、装置、电子设备及存储介质 |
CN113726912B (zh) * | 2021-11-03 | 2022-02-15 | 深圳市信润富联数字科技有限公司 | 云端与边缘端之间的数据同步方法、系统及存储介质 |
CN114884938A (zh) * | 2022-07-11 | 2022-08-09 | 深圳瑞力网科技有限公司 | 云端服务器自适应处理下载文件的方法及对应的服务器 |
CN115037793B (zh) * | 2022-08-12 | 2022-11-04 | 南京中孚信息技术有限公司 | 用户数据报协议数据处理方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1040611B1 (en) * | 1997-12-12 | 2002-06-05 | 3Com Corporation | A forward error correction system for packet based real-time media |
CN1380780A (zh) * | 2001-03-13 | 2002-11-20 | 皇家菲利浦电子有限公司 | 保护数据包以防差错的方法 |
EP1592160A1 (en) * | 2004-04-29 | 2005-11-02 | Matsushita Electric Industrial Co., Ltd. | Superframe error coding in digital audio broadcasting systems |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307487B1 (en) * | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US6490705B1 (en) * | 1998-10-22 | 2002-12-03 | Lucent Technologies Inc. | Method and apparatus for receiving MPEG video over the internet |
US6430159B1 (en) * | 1998-12-23 | 2002-08-06 | Cisco Systems Canada Co. | Forward error correction at MPEG-2 transport stream layer |
US7584404B2 (en) * | 2002-12-19 | 2009-09-01 | Intel Corporation | Method and apparatus for multimedia communication over packet channels |
KR100698620B1 (ko) * | 2003-06-16 | 2007-03-21 | 삼성전자주식회사 | 강건한 에러 정정 부호화 장치를 가지는 디지털 송/수신시스템 및 그의 에러정정부호화/정정방법 |
FR2861517B1 (fr) * | 2003-10-23 | 2006-01-27 | Thomson Licensing Sa | Methode de reconstruction de paquets perdus et appareils implementant la methode |
DE10353974A1 (de) * | 2003-11-19 | 2005-06-30 | Siemens Ag | Verfahren zur Übertragung von digitalen Informationspaketen in einem Datennetz |
US7660245B1 (en) * | 2004-09-16 | 2010-02-09 | Qualcomm Incorporated | FEC architecture for streaming services including symbol-based operations and packet tagging |
ATE511721T1 (de) * | 2004-10-06 | 2011-06-15 | Nokia Corp | Zusammenstellen von vorwärtsfehlerkorrektur- rahmen |
ATE514246T1 (de) * | 2005-08-19 | 2011-07-15 | Hewlett Packard Development Co | Andeutung von verlorenen segmenten über schichtgrenzen |
US20070115833A1 (en) * | 2005-11-21 | 2007-05-24 | Gerald Pepper | Varying the position of test information in data units |
US20080134266A1 (en) * | 2006-11-24 | 2008-06-05 | Young-Seok Kang | Digital broadcasting system and error correction method thereof |
-
2007
- 2007-04-29 CN CN2007101036246A patent/CN101296055B/zh not_active Expired - Fee Related
-
2008
- 2008-01-28 EP EP08706573A patent/EP2166687B1/en not_active Not-in-force
- 2008-01-28 PL PL08706573T patent/PL2166687T3/pl unknown
- 2008-01-28 PT PT08706573T patent/PT2166687E/pt unknown
- 2008-01-28 ES ES08706573T patent/ES2389388T3/es active Active
- 2008-01-28 WO PCT/CN2008/070196 patent/WO2008131655A1/zh active Application Filing
-
2009
- 2009-10-29 US US12/608,457 patent/US8327233B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1040611B1 (en) * | 1997-12-12 | 2002-06-05 | 3Com Corporation | A forward error correction system for packet based real-time media |
CN1380780A (zh) * | 2001-03-13 | 2002-11-20 | 皇家菲利浦电子有限公司 | 保护数据包以防差错的方法 |
EP1592160A1 (en) * | 2004-04-29 | 2005-11-02 | Matsushita Electric Industrial Co., Ltd. | Superframe error coding in digital audio broadcasting systems |
Also Published As
Publication number | Publication date |
---|---|
PL2166687T3 (pl) | 2012-11-30 |
WO2008131655A1 (fr) | 2008-11-06 |
EP2166687A1 (en) | 2010-03-24 |
PT2166687E (pt) | 2012-09-14 |
CN101296055A (zh) | 2008-10-29 |
US20100050058A1 (en) | 2010-02-25 |
EP2166687B1 (en) | 2012-06-27 |
EP2166687A4 (en) | 2010-09-15 |
US8327233B2 (en) | 2012-12-04 |
ES2389388T3 (es) | 2012-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101296055B (zh) | 数据包收发方法及装置 | |
US7151754B1 (en) | Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding | |
US8990663B2 (en) | Method to support forward error correction for real-time audio and video data over internet protocol networks | |
KR101584829B1 (ko) | 전송 에러를 복원하는 방법, 전송 에러를 복원하는 장치 및 투과성 프로토콜 계층 디코더 | |
JP5084842B2 (ja) | 無線通信ネットワークにおける改良されたヘッダ圧縮 | |
CN101193312B (zh) | 基于反馈的自适应错误恢复装置、视频通信系统和方法 | |
CN101877620B (zh) | 前向纠错方法、装置和系统 | |
US20120210195A1 (en) | Method, device, and system for forward error correction | |
US20080031253A1 (en) | Apparatus and Method for Efficiently Processing Voice Packet Data in Mobile Communication System Providing Voice Service Using Packet Network | |
KR101611630B1 (ko) | 전송 에러를 복원하는 방법 및 제어 데이터를 복원하는 장치 | |
CN110943800A (zh) | 数据包的发送方法、装置及系统、存储介质、电子装置 | |
JP2004032719A (ja) | Fec符号化方式に基づいた可変長パケット送信方法及び受信方法 | |
KR20080016637A (ko) | 인 밴드 에러 패턴을 사용한 에러 복원 | |
US20130294447A1 (en) | Apparatus and method of transmitting and receiving packet in a broadcasting and communication system | |
CN1360775A (zh) | 发射和接收多媒体数据的方法和装置 | |
CN100359832C (zh) | 用于数字数据传送的方法与设备 | |
TWI229991B (en) | Wireless communication method and wireless communication device | |
CN106571893B (zh) | 一种语音数据的编解码方法 | |
US7215683B2 (en) | Method and apparatus for protecting against packet losses in packet-oriented data transmission | |
KR20060095755A (ko) | 패킷교환 네트워크를 통한 실시간 전송을 위한 미디어 패킷구조 | |
CN108737349B (zh) | 一种语音数据包的处理方法及装置 | |
Zheng et al. | Packet coding schemes for MPEG video over Internet and wireless networks | |
EP1722570B1 (en) | Method of transmitting video data | |
WO2001067715A1 (en) | Pre-verification of checksums used with checksum-based header compression | |
CN117834085A (zh) | 一种基于usrp的自适应调制编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |