CN101414922B - 实现ip数据包发送、接收的方法及装置 - Google Patents

实现ip数据包发送、接收的方法及装置 Download PDF

Info

Publication number
CN101414922B
CN101414922B CN200710175933A CN200710175933A CN101414922B CN 101414922 B CN101414922 B CN 101414922B CN 200710175933 A CN200710175933 A CN 200710175933A CN 200710175933 A CN200710175933 A CN 200710175933A CN 101414922 B CN101414922 B CN 101414922B
Authority
CN
China
Prior art keywords
gse
fec
packet
data
module
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
Application number
CN200710175933A
Other languages
English (en)
Other versions
CN101414922A (zh
Inventor
刘元安
刘凯明
李立
胡新慧
刘炀
刘光远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN200710175933A priority Critical patent/CN101414922B/zh
Publication of CN101414922A publication Critical patent/CN101414922A/zh
Application granted granted Critical
Publication of CN101414922B publication Critical patent/CN101414922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及一种实现IP数据包发送、接收的方法及装置,发送方法包括:将IP数据包进行FEC编码,生成FEC数据;将所述IP数据包及FEC数据封装为GSE数据包,并发送所述GSE数据包。接收方法包括:接收GSE数据包;将GSE数据包还原为IP数据包及FEC数据;用所述FEC数据对所述IP数据包进行FEC解码。发送装置包括:FEC编码模块、GSE封装模块及发送模块;接收装置包括:接收模块及还原模块、FEC解码模块。本发明通过将FEC技术与GSE封装技术相结合,提高了IP数据通过T-DMB传输的可靠性。

Description

实现IP数据包发送、接收的方法及装置
技术领域
本发明涉及多媒体广播业务技术,尤其涉及一种在地面数字多媒体广播业务规范(Terrestrial Digital Multimedia Broadcasting Service,T-DMB)网络中实现IP数据包传输的方法及装置。 
背景技术
T-DMB是在Eureka147数字音频广播(Digital Audio Broadcasting,DAB)系统的基础上增加了新的音视频编码方案和附加信道保护而形成的。T-DMB系统是一个非基于IP层的广播系统,为了将T-DMB与其他基于IP层的系统如BCAST,DVB-H等相融合,为用户提供更加多样化的服务,就需要在T-DMB中引入IP业务。 
目前,在T-DMB中引入IP业务的方法是通过将IP数据包进行通用流封装(Generic Stream Encapsulation,GSE),生成GSE数据包,将GSE数据包作为T-DMB流模式子信道的载荷承载进T-DMB子信道中,解决T-DMB系统传输IP数据的问题。 
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有GSE封装的出错保护机制仅有循环冗余校验(Cyclic Redundancy Check,CRC)机制,即GSE只对进行了分片的情况的GSE进行CRC保护,将GSE封装直接应用在T-DMB广播系统中,使得数据传输的可靠性低。并且,只有最后一个分片的GSE包尾带有CRC字段,接收端对分片重新进行组装,生成完整的数据包时,首先进行CRC校验,如果CRC校验出错,表明数据的这些分片有问题,则丢弃整个网络层数据包,浪费了很多的信息,发送端还得重新传输该数据包的所有分片,造成了网络资源的浪费。 
发明内容
本发明实施例的目的提出一种实现IP数据发送、接收的方法及装置,以提高T-DMB中传输IP数据的可靠性,减少信息浪费。 
为实现上述目的,本发明实施例提供了一种实现IP数据发送的方法,包括: 
将IP数据包进行FEC编码,生成FEC数据; 
将所述IP数据包及FEC数据封装为GSE数据包,所述GSE数据包中包含FEC参数,所述FEC参数根据GSE-FEC帧的行数、FEC编码效率以及所述IP数据包或FEC数据在所述GSE-FEC帧中的位置进行设置,所述GSE-FEC帧为一个行数为m、列数为n的矩阵,共包含m×n个单元,包括应用数据表和校验数据表两个部分,所述应用数据表列数为r,包括数据域和填充域两个部分,数据域部分列数为s(s≤r),所述校验数据表用于填充对应用数据表中的数据进行FEC编码得到的FEC数据; 
发送所述GSE数据包。 
本方案通过对IP数据按行进行FEC编码,并将IP数据及FEC数据封装为GSE数据包进行发送,能够使接收端接收到数据时根据FEC数据进行FEC解码,从而实现前向纠错编码(FEC)功能,大大提高IP数据在T-DMB网络中传输的可靠性,减少信息浪费。 
为实现上述目的,本发明实施例还提供了一种实现IP数据包接收的方法,包括: 
接收GSE数据包,所述GSE数据包中包含有FEC参数; 
根据所述FEC参数将所述GSE数据包还原为IP数据包及FEC数据; 
根据所述FEC数据对所述IP数据包进行FEC解码; 
该方法中,接收GSE数据包之后,还包括:对所述GSE数据包包尾的CRC数据进行解码。 
本方案通过对还原得到的IP数据进行FEC解码,实现了前向纠错编码(FEC)功能,大大提高了IP数据在T-DMB网络中传输的可靠性,减少了信息浪费。 
为实现上述目的,本发明实施例还提供了一种实现IP数据包发送的装置,包括: 
FEC编码模块,用于对IP数据包进行FEC编码,生成FEC数据; 
GSE封装模块,用于将所述IP数据包及FEC数据封装为GSE数据包, 所述GSE数据包中包含FEC参数,所述FEC参数根据所述GSE-FEC帧的行数、FEC编码效率以及所述IP数据包或FEC数据在GSE-FEC帧中的位置进行设置,所述GSE-FEC帧为一个行数为m、列数为n的矩阵,共包含m×n个单元,包括应用数据表和校验数据表两个部分,所述应用数据表列数为r,包括数据域和填充域两个部分,数据域部分列数为s(s≤r),所述校验数据表用于填充对应用数据表中的数据进行FEC编码得到的FEC数据; 
发送模块,用于发送所述GSE数据包。 
本方案通过GSE-FEC帧生成模块、FEC编码模块及GSE封装模块,使得IP数据能够生成具有前项纠错功能的GSE数据包,并通过T-DMB网络发送到接收端。 
为实现上述目的,本发明实施例还提供了一种实现IP数据包接收的装置,包括: 
接收模块,用于接收GSE数据包; 
还原模块,用于将所述GSE数据包还原为IP数据包及FEC数据; 
FEC解码模块,用于根据所述FEC数据对所述IP数据包进行FEC解码; 
CRC解码模块,用于对所述GSE数据包包尾的CRC数据进行解码。 
本方案通过还原、FEC解码等模块能够实现对接收的GSE数据包的前向纠错,获得IP数据包,从而提高了IP数据在T-DMB网络中传输的可靠性,减少了信息浪费。 
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。 
附图说明
图1为本发明实现IP数据包发送过程中构建的GSE-FEC帧结构示意图; 
图2为本发明实现IP数据包发送过程中封装的一GSE数据包结构示意图; 
图3为本发明实现IP数据包发送过程中封装的另一GSE数据包结构示意图; 
图4为本发明实现IP数据包发送的方法实施例一的流程图; 
图5a为本发明实现IP数据包发送的方法实施例一中构建的GSE-FEC帧结构示意图; 
图5b为本发明实现IP数据包发送的方法实施例一中封装的、带有CRC字段的GSE数据包结构示意图; 
图5c为本发明实现IP数据包接收的方法实施例一中重构的GSE-FEC帧结构示意图; 
图6为本发明实现IP数据包接收的方法实施例一的流程图; 
图7为本发明实现IP数据包发送的方法实施例二的流程图; 
图8a为本发明实现IP数据包发送的方法实施例二中构建的GSE-FEC帧结构示意图; 
图8b为本发明实现IP数据包发送的方法实施例二中封装的GSE数据包结构示意图; 
图8c为本发明实现IP数据包接收的方法实施例二中重构的GSE-FEC帧结构示意图; 
图9为本发明实现IP数据包接收的方法实施例二的流程图; 
图10为本发明实现IP数据包发送的装置实施例的结构示意图; 
图11为本发明实现IP数据包接收的装置实施例的结构示意图。 
具体实施方式
本发明发送方法实施例中,将IP数据包(以下简称IP包)封装为GSE-FEC帧之前,通过将GSE封装技术与前向纠错技术(Forward Error Correction,FEC)相结合,预先设置GSE-FEC帧。其中,FEC是将数据分成k个比特的组,再按编码规则增加冗余比特,构成n个比特数据组的传输列,通过在传输列中加入冗余码进行纠错,在发送端按一定算法生成冗余码插入到要传输的数据流中,接收端按同样算法对接收到的数据流进行解码,根据接收到的码流确定误码的位置并进行纠错。只要接收端收到了其中任何K(K>k)个比特的数据,就能将数据中的误比特全部准确恢复。这对于网络中的组播特别有效。如果网络出现拥塞,就可以随意丢掉几个包,只要收到的包超过k,就可以正确解码。 
GSE-FEC帧结构如图1所示,GSE-FEC帧结构一个行数为m、列数为n的矩阵,共包含m×n个单元,包括应用数据表和校验数据表两个部分。其中应用数据表列数为r,包括数据域和填充域两个部分,数据域部分列数为s(s≤ r)。校验数据表用于填充对应用数据表中的数据进行FEC编码得到的FEC数据,如填充通过里德-索罗蒙码(Reed-Solomon,RS)编码得到的RS数据。数据域部分列数s可以灵活调整,根据需要选择合适的数值,以实现不同的编码率,从而系统可以实现不同的纠错性能。 
RS码编译码原理如下所示: 
设α是GF(2m)的本原域元素,且设计距离为d的RS码,其生成多项式可表示为: 
g(x)=(x-α)(x-α2)....(x-αd-1
由此生成一个GF(2m)上的码RS(n,k,d)。其中,码长n=2m-1个符号,信息位k个符号,监督位n-k=2t个符号,最小码距d=2t+1。RS码是多进制BCH码,每个符号为m比特,符号域与生成多项式的根域一致,均取自GF(2m)。 
对于RS码的系统码编码,可采用两种方法: 
一种是由g(x)得到生成矩阵G(x),将其单位化后得G(x)′=[Ikp],则信息码多项式m(x)与生成矩阵G(x)′相乘后可得系统码。 
另一种是根据系统码结构编码,码字多项式C(x)的第n-1次至n-k次的系数是信息位,其余为校验位,即 
C(x)=m(x)xn-k+r(x)≡0(modg(x)) 
则-r(x)=C(x)+m(x)xn-k≡m(x)xn-k(modg(x)) 
编码时先将信息多项式乘以xn-k变成xn-km(x),再除以g(x)得到余式r(x),最后将其各项系数取加法逆元,得到所求的校验位。 
RS码的译码与其他线性分组码的译码一样,都需要经过: 
1)由接收码字R(x)与校验矩阵H(x)相乘得伴随式S; 
2)由伴随式S求错误图样E(x)。 
假设本发明方法实施例中的FEC编码方案采用RS(255,191)码,则GSE-FEC帧结构中每个单元包含的数据是一个字节,并且n=255、r=191为 固定值。 
s的值与基于RS(255,191)的不同编码率的RS码的对应关系如下表所示: 
    S     编码率
    191     3/4
    128     2/3
    64     1/2
GSE-FEC帧行数m的选择,受时延、系统性能等因素的影响:m越大,数据传输的时延也越大,因此对于时延要求高的业务,m的值不能过大;m的值过小,纠错编码的性能将下降,并且系统处理复杂度将升高,系统开销也将增大,因此m的值不能过小。综合考虑时延、系统性能等因素的影响,m可取256、128、64等数值供实际应用中选择,以满足不同业务时延及系统性能的需求。 
下面对m取256、128、64时构造GSE-FEC帧引入的业务数据的最大时延做简要分析,以作为实际应用中选择的参考。为分析最大时延,应用数据表的数据域列数取191,T-DMB系统物理层吞吐量取1Mbps,上述三种m取值情况下,GSE-FEC帧所需要的存贮空间、当系统所有带宽均被IP业务占用以及系统带宽的1/3为IP业务所占用时(括号内数据)最大时延的分析结果如下表所示: 
    m     存贮空间(比特)     时延(毫秒)
    256     389,120     390(1,170)
    128     194,560     195(585)
    64     97,280     98(294)
将IP数据及填充字节填充到应用数据表时:将IP数据包根据到来的先 后顺序,按照从上到下、从左至右的顺序填入应用数据表的数据域中。填充IP数据包时,从GSE-FEC帧的左上角开始,依序按列放置,第一列填满后紧接着填第二列。当所有的IP数据包都填完、或者应用数据表的数据域剩余的空间不足以放下一个完整的IP数据包时,在应用数据表的数据域剩余的空间使用全0字节填充,并对应用数据表的填充域空间填充全0字节。 
应用数据表填充完毕后,再对应用数据表中的数据进行RS编码,生成校验数据并填充校验数据表。编码时,对应用数据表的每一行数据,使用RS(255,191)码进行编码,并将每一行编码产生的64个校验字节的RS数据,填入GSE-FEC帧结构中的校验数据表的对应行中,直到所有的行都编码完毕。其中,RS(255,191)码使用64个奇偶校验冗余字节来进行纠错,其中32个字节用于发现错误字节的位置,32个字节用于纠正错误。如果错误的字节数超过32个,则纠错失败。但是如果在错误字节位置已知的情况下,它就可以纠正64个字节的错误,纠错能力可以提高为原来的2倍,这种解码方法称为擦除解码。 
在接收端,本发明实施例使用CRC-32(32位循环冗余校验)校验码提供一种辅助的方式发现错误的位置。RS解码时,采用一个CRC校验信息帧来提供擦除信息,校验帧的大小与GSE-FEC帧大小相同,用来表示GSE-FEC帧中相应位置的字节是否正确,如果对应位置的字节信息是正确的,则在校验帧相应位置中填充标志0;如果错误,则填充标志1。 
本发明发送方法实施例中,将GSE-FEC帧封装为GSE数据包(以下简称GSE包)有以下两种方法。 
一种是将GSE-FEC帧中的单个IP包封装于单个GSE数据包中,具体为:对于长度较短的IP包,一般长度不超过1500字节为宜,将其完整的封装于单个GSE包中,并在原有GSE数据包包头的基础上加入位置信息以及FEC参数进行传输。这里的位置信息为该GSE包中所封装的IP包在GSE-FEC帧中的位置,即该IP包的起始部分相对于GSE-FEC帧左上角的偏移量,占16比特。 FEC参数根据IP数据包在GSE-FEC帧中的位置,GSE-FEC帧的行数以及GSE-FEC帧中RS编码效率进行设定。 
为了提高RS的纠错性能,在GSE包的尾部还可加入CRC数据。该CRC数据通过对协议类型,标签,地址字段以及IP或RS数据进行校验获得。需要说明的是,本发明实施例中使用的CRC编码是32位循环冗余校验(CRC-32)编码。也可采用其他CRC编码方法如CRC-16、CRC-64等达到指示错误位置、提高RS纠错性能的目的。 
通过上述方法得到的GSE数据包结构如图2所示,其中,FEC参数包括FEC标识、T、F、行数、编码效率及预留等字段;FEC标识长度可为1bit,用来表示是否是FEC数据表,1表示是FEC数据表,0表示不是FEC数据表而是应用数据表;T为表边界标识符,长度可为1bit,用来指示应用数据表和FEC数据表的边界,对于包含应用数据表的最后一列应用数据GSE包或FEC数据表的最后一列FEC数据的GSE包,T=1,其余情况下T=0;F为1bit的帧边界标识符,用来指示一个GSE-FEC帧传输的结束,对于一个GSE-FEC帧的最后一列的GSE包,F=1,其余情况下F=0;行数表示GSE-FEC帧的行数,长度为2bit,其中,00表示行数为64,01表示行数为128,10表示行数为256,11表示预留;编码效率为GSE-FEC帧中RS编码的编码效率,长度为2bit,其中,00表示编码效率为1/2,01表示编码效率为2/3,10表示编码效率为3/4,11表示预留;预留字段为1bit。 
针对该发送方法,接收端利用CRC定位错误字节位置具体为:如果CRC的结果是正确的,则根据该GSE包中的地址信息直接将其中的IP包数据放入重构GSE-FEC帧相应的位置中,并在CRC校验信息帧中相应位置标志0,表示该位置上的数据是正确的。如果CRC的结果是错误的,则说明其中的IP包是不可靠的,将这个IP包丢弃,根据GSE包中的地址信息在GSE-FEC帧相应的位置中填充任意字节,然后根据地址信息在校验帧中相应位置标志1,等待RS校验数据传送过来以后在GSE-FEC帧中进行解码纠错。 
另一种方法是将单个IP包分片后封装于多个GSE包中。具体为:对于长度较大的IP包,一般长度大于1500字节为宜,将其进行分片后,封装于多个GSE数据包中进行传输。在各IP包分片所在的GSE数据包中都加入相应分片的位置信息,来表示其中封装的IP包在GSE-FEC帧中的位置。 
为了提高RS纠错性能,可对封装每个IP包分片的GSE包都加上CRC数据。另外,为了方便接收端对GSE-FEC帧的重构,GSE数据包结构如图3所示,其中第一个IP包分片所在的GSE包(以下简称分片GSE包)中的CRC数据由图中的CRC_1部分的数据计算得到,后续的第i个分片GSE包中的CRC编码由图中的CRC_i部分的数据计算得到,而最后一个分片GSE包中包含CRC字段和CRC_ALL字段两部分,其中CRC字段由CRC_end部分数据校验计算得到,CRC_ALL字段由CRC_1、CRC_i以及CRC_end等所有这些数据校验计算得到,也就是说,用来计算CRC_ALL字段的数据包括总长度、协议类型、标签域、地址域字段,以及整个的IP包数据。 
对于封装有一列RS数据的GSE数据包,同样在原GSE包头中加入该列RS数据的位置信息。 
针对该发送方法,接收端利用CRC定位错误字节位置具体为:IP包分片在多个GSE包中传输,接收端接收数据时,通过分片ID以及相应的标志位来判断一个经过分片的IP包是否接收完毕。如果接收完毕,接收端首先计算最后一个GSE包的CRC_ALL,如果正确,说明整个IP包都是正确传输,接收的IP包数据是可靠的,可以直接放入GSE-FEC帧的对应位置中。如果CRC_ALL错误,说明该IP包在传输过程中出现错误,此时存在两种情况,一种是整个IP包数据全部错误,另一种是错误的字节集中在IP包的某一部分。显然,在无线信道中存在突发噪声的情况下,第一种情况出现很少,第二种情况是比较贴近实际的。因此,再分别检测该IP包对应的其他各个GSE包的CRC,通过这些CRC值来判断哪个GSE包中的数据传输发生了错误,将IP包中正确的数据段直接填入GSE-FEC帧中,而将GSE-FEC帧中出错的位置填充任意字 节,并在CRC校验信息帧中的对应位置填入标志位1。这样就可以通过CRC校验信息帧对GSE-FEC帧中出错的数据进行定位。由于,CRC校验信息帧提供了错误位置信息,因此RS码的纠错的能力变为原来的2倍,所使用的RS(255,191)码可以纠正64字节的错误。进行RS解码后,即得到纠错后的GSE-FEC帧,其可靠性大大提高。 
上述方法中,位置信息计算方法为:起始位置位于GSE-FEC帧应用数据表的第p行、第q列的IP包,其地址等于m×(q-1)+p-1;对于第t(1≤t≤64)列的RS校验数据,其地址等于m×(190+t)。其中m为GSE-FEC帧的行数。 
对于上述三种取值的GSE-FEC帧行数,相应的应用数据以及RS数据的地址取值范围如下表所示: 
    行数     应用数据地址范围     RS数据地址范围
    256     0-0XBEFF,    首地址为0     0xBF00-0XFEFF,    首地址为BF00
    128     0-0x5F7F,    首地址为0     0x5F80-0x7F7F,    首地址为5F80
    64     0-0x2FBF,    首地址为0     0x2FC0-0x3FBF,    首地址为2FC0
发送方法实施例一 
图4为本发明实现IP数据包发送的方法实施例一的流程图,在本例中,GSE-FEC帧的行数取64,列数取255,应用数据表部分为191列。具体包括: 
步骤101、将接收到的IP数据包按照从上到下,从左到右的顺序填入GSE-FEC帧的应用数据表中;为了方便介绍,这里取前三个IP包进行分析,此处假设三个IP包长度分别为100、200、200字节,生成的GSE-FEC帧如图5a所示。 
步骤102、应用数据表填充完毕后,对GSE-FEC帧应用数据表中每一行数据进行RS编码,获得RS数据。 
步骤103、对帧中的IP数据以及RS数据进行GSE封装,生成GSE数据包进行传输,将GSE包承载于T-DMB系统流模式子通道中进行传输,即封装后的GSE数据包作为T-DMB流模式子信道的载荷承载进T-DMB子信道中,并最终构成主业务信道(MSC),在DAB帧中进行传输,发送给用户终端。其中,第一个IP包的FEC参数设置具体为:根据其在GSE-FEC帧中的位置,第一列,将T设置为0,将F设置为0;其所在的GSE-FEC帧为64行,将“行数”设置为00;其所在的GSE-FEC帧数据域列数为191列,将“编码效率”设置为10;得到FEC参数000010。这样接收端可根据该FEC参数重构GSE-FEC帧,从而实现GSE-FEC帧的准确还原。 
为了进一步提高RS纠错性能,还可对每个GSE包进行CRC编码,GSE数据包结构如图5b所示,其中每个IP包及每列RS数据的地址都在GSE头中给出,便于接收端进行GSE-FEC帧重构。此处的地址为相对于应用数据表左上角的偏移量,由于三个数据包的长度分别为100,200,200,因此相应的地址为0x0000,0x0064,0x012C,同样可以得到RS数据的地址。在每个GSE包后均加入CRC检验数据,这样,接收端可以根据这里的CRC校验数据判断通过信道后的GSE包中是否存在错误。 
接收方法实施例一 
图6为本发明实现IP数据包接收的方法实施例一的流程图,本实施例与发送方法实施例一相对应,接收发送方法实施例一发送的GSE数据包,具体包括以下步骤: 
步骤201、接收端接收GSE数据包; 
步骤202、将GSE包还原为GSE-FEC帧之前,还可对GSE包中的CRC数据进行解码,通过CRC解码判断相应GSE包是否存在错误。本实施例中假设封装第二个GSE包的CRC出错,其他GSE包的CRC校验均没有错误。在 接收端接收时,根据GSE包中的FEC参数,得到该GSE数据包中IP包在发送端所在的GSE-FEC帧行数、列数,重构GSE-FEC帧,这里使用一个空的GSE-FEC帧以及同样大小的校验帧来接收数据,由于大小相同,这里使用一个图来表示两个帧,如图5c所示。对于正确的GSE包,根据其中的位置信息将其填入GSE-FEC帧中,并在校验帧中对应位置标志0,对于错误的GSE包,即本例中的第2个GSE包,在校验帧中对应的位置标志1,如图5c所示,阴影线标注的位置均标志1,其余为0,即得到CRC校验信息帧。 
步骤203、从后续接收到RS的GSE数据包中获得RS数据,用RS数据对重新生成的GSE-FEC帧按行进行RS解码,获得IP数据包。由于此时所有的IP数据都已填入GSE-FEC帧中,并且错误位置已经由CRC校验信息帧标注出来,因此,此时RS(255,191)码的纠错能力变为原来的2倍,只要每行中错误的个数不超过64个字节,就可以通过RS解码得到正确的数据。 
通过本实施例上述步骤,T-DMB系统中的终端可以接收到IP网络发送的IP数据包,并且由于上述方法中结合了纠错编码机制,IP数据包传输可靠性大大提高。终端通过对IP数据包进行解析,即可得到IP网络发送来的IP业务数据。从而实现了T-DMB系统中IP业务的高可靠性传输。 
发送方法实施例二 
图7为本发明实现IP数据包发送的方法实施例二的流程图,在本例中,GSE-FEC帧的行数取64,列数取255,应用数据表部分为191列,用来说明包含IP数据包分片的GSE封装方案。具体包括以下步骤: 
步骤301、将接收到的IP包按照从上到下,从左到右的顺序填入帧中,填充完毕后对GSE-FEC帧中每一行数据进行RS编码。为了方便介绍,这里仅定义两个IP包进行分析,其中第一个IP包长度为64字节,正好填满GSE-FEC帧的第一列,第二个IP包的长度为4000字节,填满GSE-FEC帧中的62.5列。 
步骤302、对应用数据表的每一行进行RS(255,191)编码,得到GSE-FEC 帧如图8a所示。 
步骤303、对GSE-FEC帧中的IP数据以及RS数据进行GSE封装传输,经过封装得到的GSE数据包结构如图8b所示。其中,第一个IP包封装在一个单独的GSE包中进行传输;第二个IP包由于长度较长,对其进行分片,分片后第一个GSE包封装的IP包中的前1500个字节,第二个GSE包封装IP包的中间的1500字节,第三个GSE包封装剩余的1000个字节。每个GSE包中均加入上文定义的地址字段,分别为0x0040,0x0428,0x0810,表示该GSE包中所封装的IP数据段在GSE-FEC帧中的位置信息,便于接收端进行GSE-FEC帧重构,同样各GSE包中均封装相应的FEC参数,不再赘述。 
接收方法实施例二 
图9为本发明实现IP数据包接收的方法实施例二的流程图,在本实施例中,假设仅最后一个IP包分片的GSE包的CRC和CRC_ALL校验出错,其余的CRC均正确。具体包括以下步骤: 
步骤401、接收包含第一个IP包的GSE数据包,以及三个分片GSE数据包,各包含第二个IP包的不同分片。其中,第一个IP包的长度为64字节,第二个IP包长度为4000字节,第一个分片GSE数据包中包含有第二个IP包的前1500个字节;第二个分片GSE数据包中报含有第二个IP包的中间1500个字节,第三个分片GSE数据包包含第二个IP包的最后1000个字节。 
步骤402、按照上文中介绍的利用CRC定位错误字节位置的方法,检测GSE数据包中的CRC_ALL,判断接收到的GSE数据包中是否存在错误,若是,执行步骤403;否则,说明所有GSE数据包传输正确,执行步骤406; 
步骤403、这里检测到错误,说明整个IP包2在传输过程中有错误发生,依次检测每个分片GSE包的CRC,由于前两个CRC均正确而第三个CRC错误,说明错误的字段在第三个分片GSE包中,即集中在IP包的最后1000个字节。 
步骤404、根据GSE包中的FEC参数重构GSE-FEC帧,以及在形成CRC校验信息帧时,仅对IP包2的最后1000个字节的位置在校验帧中标志1, 见图8c阴影部分所示,其余位置均标志0,并把正确字节填入GSE-FEC帧中。 
步骤405、从后续接收到的封装有RS数据的GSE数据包中得到RS数据;根据校验帧中提供的错误位置信息对GSE-FEC帧中每行数据进行RS解码纠错,将GSE-FEC帧中出错的数据更正并重新填入GSE-FEC帧中,获得IP数据包。 
步骤406、从还原的GSE-FEC帧中获得所有IP数据包。 
上述发送方法实施例二中,在每个分片GSE包末尾加入CRC校验,则每个分片GSE包能够根据本包中的CRC校验数据判断本包中的IP包分片是否存在错误,从而能够准确判断IP包中存在错误的具体位置。在校验帧中相应的位置标志1,尽可能减少了许多正确信息的浪费。由此可见,本发明实施例提出的方法不仅能够从很大程度上保护正确的字节信息,如本实施例中,相对于现有的GSE封装方案,本发明提出的方法可保护前两个分片中所封装的3000字节的信息,大大减少信息浪费,而且可以有效防止因标志的错误位置过多超出RS解码能力而造成的误帧的可能性。 
发送装置实施例 
图10为本发明实现IP数据包发送的装置实施例的结构示意图,实现IP数据包发送的装置包括:FEC编码模块11、GSE封装模块12及发送模块13;其中,FEC编码模块11对IP数据包进行FEC编码,生成FEC数据,用于在接收端校验传输过程中数据是否发生改变,以保证IP数据包传输的可靠性;GSE封装模块12将IP数据包及FEC编码模块11生成的FEC数据封装为GSE数据包,由发送模块13进行发送。 
本实施例中,装置还可包括GSE-FEC帧生成模块其中,GSE-FEC帧生成模块将I P数据包按列顺序置于预先设定的GSE-FEC帧应用数据表中;然后,FEC编码模块将应用数据表中的数据按行进行FEC编码,生成FEC数据;GSE-FEC帧生成模块再将FEC数据,对应置于GSE-FEC帧的校验数据表对应行中,生成GSE-FEC帧;当GSE-FEC帧的应用数据表中还留有不 足一个IP数据包的空间时,GSE-FEC帧生成模块可在剩余空间填充0,然后FEC编码模块对应用数据表中的每一行数据进行FEC编码,生成FEC数据,再由GSE-FEC帧生成模块将FEC数据填充到校验数据表中,此时接收到的IP数据包生成为GSE-FEC帧。再由GSE封装模块将GSE-FEC帧生成模块生成的GSE-FEC帧封装为GSE数据包;发送模块进行发送。 
上述装置实施例中,GSE封装模块可包括FEC参数生成模块、GSE封装IP模块、GSE封装FEC模块;其中,FEC参数生成模块根据GSE-FEC帧及其中需要封装为GSE包的IP数据包或、FEC数据生成FEC参数,以便接收端根据FEC参数重构GSE-FEC帧;当IP数据包长度不超过1500字节时,GSE封装IP模块将GSE-FEC帧中的IP数据包完整封装于一个GSE数据包中,加入GSE包头、所述IP数据包在所述GSE-FEC帧中的位置信息及FEC参数;当IP数据包长度大于1500字节时,GSE封装模块还可包括分片模块,该分片模块将GSE-FEC帧中长度大于1500字节的IP包进行分片,得到IP包分片;GSE封装IP模块将IP包分片各自封装为一个GSE数据包,即得到分片GSE数据包;GSE封装FEC模块将GSE-FEC帧的校验数据表中的每列FEC数据各自封装为一个FEC的GSE数据包,在各FEC的GSE数据包中加入GSE包头、被封装的FEC数据在GSE-FEC帧中的位置信息及FEC参数。 
为了进一步提高实现IP数据包发送装置的FEC纠错性能,上述装置实施例中,实现IP数据包发送的装置还包括CRC编码模块,对GSE数据包、FEC的GSE包进行CRC编码,获得CRC数据;GSE封装模块将CRC数据加入GSE数据包、FEC的GSE数据包的包尾。使得接收端能够根据各GSE数据包中的CRC数据对各GSE数据包是否正确进行校验,从而确定出现错误的具体位置,提高FEC纠错性能。 
接收装置实施例 
图11为本发明实现IP数据包接收的装置实施例的结构示意图,实现 IP数据包接收的装置包括:接收模块21、还原模块22及FEC解码模块23;其中,接收模块21接收发送装置发送的GSE数据包,包括封装有IP数据包、IP包分片、FEC数据的GSE数据包;还原模块22将包含有IP数据包和/或IP包分片的GSE数据包还原为IP数据包;将包含有FEC数据的GSE数据包还原为FEC数据;FEC解码模块23从接收模块21获得相应的FEC数据,将还原得到的IP数据包进行FEC解码,获得IP数据包。 
本实施例中,还原模块可包括:GSE-FEC帧重构模块、IP数据还原模块及FEC数据还原模块;其中,GSE-FEC帧重构模块根据接收模块接收的GSE数据包中的FEC参数重构GSE-FEC帧;IP数据还原模块将接收模块接收到的GSE数据包中的IP数据包或IP包分片填入重构的GSE-FEC帧中,还原获得IP数据包;FEC数据还原模块将接收模接收到的GSE数据包中的FEC数据填入重构的GSE-FEC帧中,还原得到FEC数据,实现对还原得到的IP包进行纠错。 
当接收到的GSE数据包中包含有CRC数据时,基于上述接收装置实施例,实现IP数据包接收的装置还可包括CRC解码模块,该CRC解码模块对CRC数据进行解码,判断各GSE数据包中的IP数据是否存在错误,并且,还原模块在重构GSE-FEC帧的相应位置设置表示错误的标记,FEC解码模块便可根据标记针对性的进行纠错,从而大大提高了FEC纠错性能,并且减少了信息浪费。 
实现IP数据包接收的装置还可包括判断模块及纠错模块,该判断模块根据FEC解码模块判断GSE-FEC帧的应用数据表中是否存在错误;当判断模块判断还原的GSE-FEC帧应用数据表中存在错误时,纠错模块对获得的IP数据进行纠错,从而准确得到IP数据,提高了IP数据通过GSE形式传输的可靠性。 
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。 
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。 

Claims (27)

1.一种实现IP数据包发送的方法,其特征在于,包括:
将IP数据包进行前向纠错FEC编码,生成FEC数据;
将所述IP数据包及FEC数据封装为通用流封装GSE数据包,所述GSE数据包中包含FEC参数,所述FEC参数根据GSE-FEC帧的行数、FEC编码效率以及所述IP数据包或FEC数据在所述GSE-FEC帧中的位置进行设置,所述GSE-FEC帧为一个行数为m、列数为n的矩阵,共包含m×n个单元,包括应用数据表和校验数据表两个部分,所述应用数据表列数为r,包括数据域和填充域两个部分,数据域部分列数为s(s≤r),所述校验数据表用于填充对应用数据表中的数据进行FEC编码得到的FEC数据;
发送所述GSE数据包。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
设置具有应用数据表与校验数据表的所述GSE-FEC帧;所述应用数据表与校验数据表并行排列;
将所述IP数据包按列置于所述应用数据表中。
3.根据权利要求2所述的方法,其特征在于,该方法还包括,在所述应用数据表中填充预先设定的数据。
4.根据权利要求2或3所述的方法,其特征在于,将IP数据包进行FEC编码具体为:
对所述应用数据表中的数据按行进行FEC编码。
5.根据权利要求2或3所述的方法,其特征在于,将所述IP数据包及FEC数据封装为GSE数据包具体为:
将所述IP数据包完整封装于一个GSE数据包中,加入GSE包头以及所述IP数据包在所述GSE-FEC帧中的位置信息; 
将每列FEC数据各自封装于一个FEC的GSE数据包中,在各FEC的GSE数据包中加入GSE包头以及被封装的FEC数据在所述GSE-FEC帧中的位置信息;
在所述GSE数据包中加入相应的FEC参数。
6.根据权利要求5所述的方法,其特征在于,将所述IP数据包及FEC数据封装为GSE数据包还包括:
对GSE数据包、FEC的GSE包进行循环冗余校验CRC编码,获得CRC数据;
将所述CRC数据加入GSE数据包、FEC的GSE数据包的包尾。
7.根据权利要求2或3所述的方法,其特征在于,将所述IP数据包及FEC数据封装为GSE数据包具体为:
将所述IP数据包进行分片,获得所述IP包分片;
将所述IP包分片各自封装在一个GSE数据包中,在各GSE数据包中加入GSE包头及被封装的IP包分片在所述GSE-FEC帧中的位置信息;
将每列FEC数据各自封装在一个FEC的GSE数据包中,在各FEC的GSE数据包中加入GSE包头以及被封装的FEC数据在所述GSE-FEC帧中的位置信息;
在所述GSE数据包中加入相应的FEC参数。
8.根据权利要求7所述的方法,其特征在于,将所述IP数据包及FEC数据封装为GSE数据包还包括:
将各GSE数据包进行CRC编码,获得各GSE数据包的CRC数据;
将获得的CRC数据置于相对应的GSE数据包包尾;
对整个IP数据包进行CRC编码,获得整体CRC数据;
将所述整体CRC数据置于最后一个IP包分片所在的GSE数据包的包 尾。
9.一种实现IP数据包接收的方法,其特征在于,包括:
接收通用流封装GSE数据包,所述GSE数据包中包含有向前纠错FEC参数;
根据所述FEC参数将所述GSE数据包还原为IP数据包及FEC数据;
根据所述FEC数据对所述IP数据包进行FEC解码;
该方法中,接收GSE数据包之后,还包括:
对所述GSE数据包包尾的循环冗余校验CRC数据进行解码。
10.根据权利要求9所述的方法,其特征在于,该方法还包括:
对所述GSE数据包中封装有所述IP数据包最后一个字段的GSE数据包包尾的整体CRC数据进行解码。
11.根据权利要求10所述的方法,其特征在于,该方法还包括:
对封装有所述IP数据包的IP包分片的所有GSE数据包包尾的CRC数据进行解码。
12.根据权利要求9-11中任一项所述的方法,其特征在于,将所述GSE数据包还原为IP数据包及FEC数据之后还包括:
将所述IP数据包及FEC数据还原为GSE-FEC帧,所述GSE-FEC帧为一个行数为m、列数为n的矩阵,共包含m×n个单元,包括应用数据表和校验数据表两个部分,所述应用数据表列数为r,包括数据域和填充域两个部分,数据域部分列数为s(s≤r),所述校验数据表用于填充对应用数据表中的数据进行FEC编码得到的FEC数据。
13.根据权利要求12所述的方法,其特征在于,根据所述FEC参数将所述GSE数据包还原为GSE-FEC帧具体为:
根据所述GSE包中的FEC参数重构GSE-FEC帧;
根据所述GSE数据包中的位置信息,将所述GSE数据包中的IP数据 包或IP包分片放置在重构的GSE-FEC帧的相应位置。
14.根据权利要求13所述的方法,其特征在于,根据所述FEC参数将所述GSE数据包还原为GSE-FEC帧同时还包括:
根据所述GSE数据包中的位置信息,以及CRC数据解码结果生成CRC校验信息帧。
15.根据权利要求12所述的方法,其特征在于,根据所述FEC参数将所述GSE数据包还原为GSE-FEC帧同时还包括:
根据所述GSE数据包中的位置信息,以及整体CRC数据解码结果生成CRC校验信息帧。
16.根据权利要求12所述的方法,其特征在于,根据所述FEC参数将所述GSE数据包还原为GSE-FEC帧同时还包括:
根据所述GSE数据包中的位置信息,整体CRC数据解码结果以及所有GSE数据包包尾的CRC数据解码结果生成CRC校验信息帧。
17.根据权利要求12所述的方法,其特征在于,对所述IP数据包进行FEC解码之后还包括:
根据FEC解码结果判断应用数据表中的数据是否存在错误,若是,则更正错误数据并重新填入所述GSE-FEC帧应用数据表中的相应位置,获得IP数据包。
18.一种实现IP数据包发送的装置,其特征在于,包括:
向前纠错FEC编码模块,用于对IP数据包进行FEC编码,生成FEC数据;
通用流封装GSE封装模块,用于将所述IP数据包及FEC数据封装为GSE数据包,所述GSE数据包中包含FEC参数,所述FEC参数根据所述GSE-FEC帧的行数、FEC编码效率以及所述IP数据包或FEC数据在GSE-FEC帧中的位置进行设置,所述GSE-FEC帧为一个行数为m、列数为n的矩阵,共包含m×n个单元,包括应用数据表和校验数据表两个部分,所述应用数据 表列数为r,包括数据域和填充域两个部分,数据域部分列数为s(s≤r),所述校验数据表用于填充对应用数据表中的数据进行FEC编码得到的FEC数据;
发送模块,用于发送所述GSE数据包。
19.根据权利要求18所述的装置,其特征在于,还包括GSE-FEC帧生成模块,用于设置具有应用数据表与校验数据表的GSE-FEC帧;所述应用数据表与校验数据表并行排列;并将所述IP数据包按列置于所述应用数据表中;
所述FEC编码模块还用于对所述应用数据表中的数据按行进行FEC编码。
20.根据权利要求19所述的装置,其特征在于,所述GSE-FEC帧生成模块还用于在所述应用数据表中填充预先设定的数据。
21.根据权利要求18所述的装置,其特征在于,所述GSE封装模块包括:
FEC参数生成模块,用于根据GSE-FEC帧生成FEC参数;
GSE封装IP模块,用于将所述GSE-FEC帧中的IP数据包完整封装于一个GSE数据包中,加入GSE包头、所述IP数据包在所述GSE-FEC帧中的位置信息及FEC参数;
GSE封装FEC模块,用于将每列FEC数据各自封装为一个FEC的GSE数据包,在各FEC的GSE数据包中加入GSE包头以及被封装的FEC数据在所述GSE-FEC帧中的位置信息及FEC参数。
22.根据权利要求21所述的装置,其特征在于,所述GSE封装模块还包括:
分片模块,用于将IP包进行分片,获得IP包分片;
所述GSE封装IP模块还用于将所述IP包分片各自封装在一个GSE数据包中,在各GSE数据包中加入GSE包头及被封装的IP包分片在所述GSE-FEC帧中的位置信息。 
23.根据权利要求18-22中任一项所述的装置,其特征在于,还包括:
循环冗余校验CRC编码模块,用于对GSE数据包、FEC的GSE包进行CRC编码,获得CRC数据;
所述GSE封装模块还用于将所述CRC数据加入GSE数据包、FEC的GSE数据包的包尾。
24.一种实现IP数据包接收的装置,其特征在于,包括:
接收模块,用于接收通用流封装GSE数据包;
还原模块,用于将所述GSE数据包还原为IP数据包及FEC数据;
向前纠错FEC解码模块,用于根据所述FEC数据对所述IP数据包进行FEC解码;
循环冗余校验CRC解码模块,用于对所述GSE数据包包尾的CRC数据进行解码。
25.根据权利要求24所述的装置,其特征在于,还包括:
GSE-FEC帧重构模块,用于根据所述接收模块接收的GSE数据包中的FEC参数重构GSE-FEC帧;
IP数据还原模块,用于将所述GSE数据包中的IP数据包或IP包分片填入重构的GSE-FEC帧中;
FEC数据还原模块,用于将所述GSE数据包中的FEC数据填入重构的GSE-FEC帧中。
26.根据权利要求24或25所述的装置,其特征在于,还包括:
所述FEC解码模块还用于根据所述CRC解码模块的解码结果进行FEC解码。
27.根据权利要求25所述的装置,其特征在于,还包括:
判断模块,用于根据所述FEC解码模块判断GSE-FEC帧的应用数据表中是否存在错误;
纠错模块,用于在所述判断模块判断所述应用数据表中存在错误的情况下,对获得的IP数据进行纠错。 
CN200710175933A 2007-10-16 2007-10-16 实现ip数据包发送、接收的方法及装置 Active CN101414922B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710175933A CN101414922B (zh) 2007-10-16 2007-10-16 实现ip数据包发送、接收的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710175933A CN101414922B (zh) 2007-10-16 2007-10-16 实现ip数据包发送、接收的方法及装置

Publications (2)

Publication Number Publication Date
CN101414922A CN101414922A (zh) 2009-04-22
CN101414922B true CN101414922B (zh) 2012-09-05

Family

ID=40595254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710175933A Active CN101414922B (zh) 2007-10-16 2007-10-16 实现ip数据包发送、接收的方法及装置

Country Status (1)

Country Link
CN (1) CN101414922B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938439B (zh) * 2009-06-30 2014-04-30 中兴通讯股份有限公司 移动多媒体广播系统中复用数据的传送方法与装置
CN108028725B (zh) * 2015-09-17 2021-07-30 日本电气株式会社 终端设备及其控制方法、以及记录介质
CN109428748B (zh) * 2017-08-28 2022-03-29 华为技术有限公司 一种交换方法和装置
CN111130686B (zh) * 2018-11-01 2022-12-06 海思光电子有限公司 业务数据处理方法及装置
CN109408447A (zh) * 2018-12-11 2019-03-01 北京地平线机器人技术研发有限公司 一种基于spi的数据传输方法、装置及电子设备
CN112419698B (zh) * 2020-10-26 2022-05-17 浙江正泰仪器仪表有限责任公司 基于配电线报文规范的电能表数据传输方法、系统及装置
CN116437100B (zh) * 2023-06-13 2023-08-25 基石酷联微电子技术(北京)有限公司 一种视频压缩数据实时高速传输系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118787A1 (en) * 2004-12-09 2007-05-24 General Instrument Corporation Method and apparatus for forward error correction in a content distribution system
CN1993964A (zh) * 2004-07-09 2007-07-04 诺基亚公司 用于封装数据分组的封装器和相关方法以及计算机程序产品

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1993964A (zh) * 2004-07-09 2007-07-04 诺基亚公司 用于封装数据分组的封装器和相关方法以及计算机程序产品
US20070118787A1 (en) * 2004-12-09 2007-05-24 General Instrument Corporation Method and apparatus for forward error correction in a content distribution system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
azquez Castro.MPE/ULE-FEC vs GSE-FEC Efficiency Comparison of IP Datagram Transmission over DVB-S2.《25th AIAA International Comm (ICSSC 2007)》.2007, *
J. Lei, G. Seco Granados, and M. A. V&acute *

Also Published As

Publication number Publication date
CN101414922A (zh) 2009-04-22

Similar Documents

Publication Publication Date Title
CN101414922B (zh) 实现ip数据包发送、接收的方法及装置
EP1592160B1 (en) Superframe error coding in digital audio broadcasting systems
US7853856B2 (en) Forming of error correction data
CN101563874B (zh) 支持对因特网协议网络上的音频以及视频数据进行前向纠错的方法
KR100856525B1 (ko) 데이터 송신 및 수신용 시스템 및 방법
US20060077890A1 (en) Efficient source blocking algorithm for FEC for MBMS streaming
CN1981469A (zh) 前向纠错解码器
CN101834700A (zh) 一种基于数据包的单向可靠传输方法及收发装置
CN102090010A (zh) 利用交叉流关联向移动设备传输多媒体流
US20090052541A1 (en) Method and apparatus for preserving deinterleaving erasure information of block interleaved coded signal
CN101272221B (zh) 一种文件数据的传输、接收方法及装置
CN101102282A (zh) 一种数据广播业务发送和接收方法
US9043670B2 (en) Method for transmitting data from an infrastructure of a radio communication network to user devices, and devices for implementing the method
CN100525250C (zh) 在t-mmb系统中采用mpe-fec技术实现ip流模式业务的方法
CN101107783A (zh) 使用crc和在前解码器信息的软清除信息升级与降级
CN101389035B (zh) 一种用于抹除错误校正处理的方法及其集成电路设备
EP1680927B1 (en) Forward error correction decoders
CN100589359C (zh) 一种里德索罗蒙码的译码方法及装置
US7856587B2 (en) Memory reduction in DVB-H applications
US8560921B2 (en) Protocol extensions to support varying FEC types
CN101938439B (zh) 移动多媒体广播系统中复用数据的传送方法与装置
CN101938659A (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
C14 Grant of patent or utility model
GR01 Patent grant