数据包的封装方法及校验方法

文档序号:7775307阅读:404来源:国知局
数据包的封装方法及校验方法
【专利摘要】一种数据包的封装方法及校验方法,其中数据包的封装方法包括:在将数据包填充至一个多或个基带帧数据域,并记录当前待传输的数据包被分块次数的信息;基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段;将该校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装。本技术方案提高了数据包(尤其是数据包被分成几个数据块承载于不同的基带帧中的情况下)在广播通信信道传输时的可靠性。
【专利说明】数据包的封装方法及校验方法
[0001]
【技术领域】
[0002]本发明涉及数字电视广播领域,特别涉及数据包的封装方法及校验方法。
【背景技术】
[0003]新一代数字电视广播系统能够支持包括音频、视频在内的各类数据传输,其具体方法是将待传输的数据包依次填入基带帧数据域中,组成可以通过数字电视广播系统在广播信道进行传输的基带帧结构。
[0004]在对数据包进行封装过程中,当一个数据包的长度较大且超过当前数据域的可用空间时,可以将数据包分割成若干个片段,每一个片段使用一个基带帧进行传输。接收端在接收到属于该数据包的所有片段后,再重新将这些片段进行拼接以获得原始的数据包。
[0005]但是,由于信道干扰等原因,基带帧在从发送端到接收端的传输过程中,可能会造成畸变并产生误码,这样接收端在接收到基带帧并对其解码后得到的数据包将不是原始的数据包。而在信道干扰严重的情况下,接收端可能会丢失整个基带帧甚至连续丢失多个基带中贞。
[0006]对于一个基带帧内出现误码,通过在数据包后附加校验字段可以很大程度上解决这一问题。但是,在一个数据包被分块次数成几个数据块并且这些数据块承载于不同的基带帧的情况下,若接收端丢 失了其中一个基带帧而造成数据块漏收,仅通过在数据包后附加校验字段的方式将不能很好地解决这一问题。

【发明内容】

[0007]本发明解决的是当该数据包被分块次数成几个数据块并且这些数据块承载于不同的基带帧进行传输过程中,接收端可能会漏收数据块的问题。
[0008]为解决上述问题,本发明实施例提供了一种数据包的封装方法,包括:在将当前待传输的数据包依次填充至一个或多个基带帧数据域的过程中,记录该数据包被分块次数的数据信息;基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段;将该校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装。
[0009]可选的,所述将当前待传输的数据依次填充至一个或多个基带帧数据域,记录该数据包被分块次数的数据信息包括:
步骤I):判断当前的基带帧数据域的可用空间是否足以承载当前待传输的数据包,该数据包包括信息码和预留校验字段长度;
步骤2):若该判断结果为否,则将该数据包进行分割以形成前半部分数据块和后半部分数据块,其中所述前半部分数据块适于填满该可用空间,所述后半部分数据块将填充至下一个基带帧数据域;
循环执行上述步骤I)和步骤2),直至当前的基带帧数据域的可用空间足以承载当前待传输的数据包;
基于上述步骤I)和步骤2)的循环执行次数确定当前待传输的数据包被分块次数的数据信息。
[0010]可选的,所述基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段的步骤包括:将该数据包被分块次数的数据信息附加至该数据包的信息码的末尾以形成待校验数据包;采用第一预设校验字段生成方式对所述待校验数据包进行处理以生成第一校验字段,其中该第一预设校验字段生成方式由发送端和接收端来共同确定。
[0011]可选的,所述基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段的步骤包括:采用第一预设校验字段生成方式对该数据包进行处理以生成中间数据;将该数据包被分块次数的数据信息附加至该中间数据的末尾,再采用第一预设校验字段生成方式对前述数据进行处理以生成第二校验字段;其中,该第一预设校验字段生成方式由发送端和接收端来共同确定。
[0012]可选的,所述基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段的步骤包括:采用第一预设校验字段生成方式对该数据包进行处理以生成中间数据;采用第二预设校验字段生成方式对该中间数据和该数据包被分块次数的数据信息进行处理以生成第三校验字段;其中,该第一预设校验字段生成方式和第二预设校验字段生成方式由发送端和接收端来共同确定。
[0013]可选的,所述第一预设校验字段生成方式为循环冗余校验。
[0014]可选的,所述第二预设校验字段生成方式包括异或运算、加法运算、减法运算和乘法运算中的任一种运算方式。
[0015]本发明实施例还提供了 一种数据包的校验方法,其中该数据包是根据上述数据包的封装方法封装后填充至基带帧在信道中传输后于接收端恢复得到,所述校验方法包括:
从一个或多个基带帧数据域中获取完整的数据包,该完整的数据包包括信息码和校验字段;
根据基带帧帧头中的校验算法标志位中标志的预设校验字段生成方式与校验字段长度,从该数据包的末尾截取校验字段,数据包的剩余内容作为信息码;
对接收到的数据包的信息码以及数据包被分块次数的数据信息进行校验计算以得到待比较校验字段;
比较该待比较校验字段与获取到的校验字段是否一致;
若两者一致,则确定该数据包接收正确。
[0016]可选的,所述从一个或多个基带帧数据域中获取完整的数据包包括如下步骤: 从当前的基带帧数据域的起始位置开始依次读取数据包,其中所述起始位置由基带帧
帧头中的起始位置字段来确定;
通过位于数据包头部的包长字段是否为零来判断该数据包是否完整地承载于当前的基带帧数据域;
若该数据包未完整地承载于当前的基带帧数据,则将当前基带帧起始位置开始至数据域末尾的所有数据作为该数据包的第一块,并继续从后续的若干个基带帧数据域中读取该数据包的剩余分块并依顺序与该数据包的第一块进行拼接以得到该数据包的信息码及校验字段,其中该数据包的剩余分块是根据基带帧帧头中的起始位置字段和数据域长度字段之间的关系来确定的;
若该数据包完整地承载于当前的基带帧数据,则从当前的基带帧数据域的起始位置开始并根据该数据包头部的包长获取该数据包的信息码及校验字段;
记录组装该数据包的信息码及校验字段的基带帧的个数以确定该数据包被分块次数的数据信息;
可选的,所述该数据包的剩余分块根据基带帧帧头中的起始位置字段和数据域长度字段之间的关系来确定包括如下情形:
1)若某个基带帧帧头中的起始位置字段大于数据域长度字段,则确定该基带帧数据域全部用于承载数据包的剩余分块中的一个数据块,且该数据包的传输未完成;
2)若某个基带帧帧头中的起始位置字段等于数据域长度字段,则确定该基带帧数据域全部用于承载该数据包,且该数据包的传输已经完成;
3)若某个基带帧帧头中的起始位置字段小于数据域长度字段,则该基带基数据域头部至起始位置之间的数据为该数据包的剩余分块中的最后一个数据块。
[0017]本发明实施例还提供了一种数据包的传输方法,包括:将当前待传输的数据包依次填充至一个或多个基带帧数据域;生成该数据包的校验字段,其中所述校验字段根据该数据包的信息码和该数据包在填充至基带帧数据域的过程中被分块次数的数据信息来确定;将该校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装;将承载于该数据包的一个或多个基带帧经由信道传输至接收端。
[0018]与现有技术相比,本发明技术方案具有以下有益效果:
根据本发明实施例提供的数据包的封装方法,在生成数据包的校验字段时,考虑了数据包填充至基带帧数据域过程中被分块次数的数据信息,这样在接收端对接收到的数据包进行解析过程中,也将结合数据包被分块次数的数据信息来对数据包是否正确接收进行校验,从而提高了数据包(尤其是数据包被分成几个数据块承载于不同的基带帧中的情况下)在广播通信信道传输时的可靠性。
[0019]根据本发明实施例提供的数据包的校验方法,接收端在从接收到的基带帧数据域中读取数据包的过程中,通过位于数据包头部的包长字段来判断该数据包是否完整地承载于当前的基带帧数据域,并针对不同的情形采用不同的方式获取完整的数据包及校验字段,并且在对接收到的数据包进行校验时,考虑了该数据包被分块次数的数据信息,从而提高了数据包在广播通信信道传输时的可靠性。
【专利附图】

【附图说明】
[0020]图1是本发明的一种数据包的封装方法的【具体实施方式】的流程示意图;
图2是将数据包封装后形成的基带帧的基本结构示意图;
图3A是数据包未经分割封装成的基带帧结构示意图;
图3B是数据包经分割后各个数据块分别承载于不同基带帧的情况下封装成的基带帧结构示意图;
图4是本发明的一种数据包的校验方法的【具体实施方式】的流程示意图。【具体实施方式】
[0021]发明人发现现有技术中,当该数据包被分成几个数据块并且这些数据块承载于不同的基带帧进行传输过程中,若接收端丢失了其中一个基带帧将造成数据块漏收的问题。
[0022]针对上述问题,发明人经过研究,提供了一种数据包的封装方法和校验方法,通过在对数据包进行封装过程中考虑数据包被分块次数的数据信息,从而提高了数据包(尤其是数据包被分成几个数据块承载于不同的基带帧中)在广播通信信道传输时的可靠性。
[0023]为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的【具体实施方式】做详细的说明。
[0024]如图1所示的是本发明的一种数据包的封装方法的【具体实施方式】的流程示意图。参考图1,所述数据包的封装方法包括如下步骤:
步骤Sll:在将当前待传输的数据包依次填充至一个或多个基带帧数据域的过程中,记录该数据包被分块次数的数据信息;
步骤S12:基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段;
步骤S13:将该校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装。
[0025]与现有技术不同,在生成数据包的校验字段时,不仅针对数据包的信息码本身,进一步考虑了数据包在填充至一个或多个基带帧数据域过程中被分块次数的数据信息。例如,一个数据包在填充至基带帧数据域过程中被分块次数成了三个数据块,那么被分块次数的数据信息为两次。
[0026]在具体实施例中,如步骤Sll所述,在将当前待传输的数据包依次填充至一个或多个基带帧数据域的过程中,记录该数据包被分块次数的数据信息,具体包括如下步骤:
步骤I):判断当前的基带帧数据域的可用空间是否足以承载当前待传输的数据包,该数据包包括信息码和预留校验字段长度;
步骤2):若该判断结果为否,则将该数据包进行分割以形成前半部分数据块和后半部分数据块,其中所述前半部分数据块适于填满该可用空间,所述后半部分数据块将填充至下一个基带帧数据域。
[0027]在上述步骤I)中,通过比较当前的基带帧数据域的可用空间所占的数据域长度与当前待传输的数据包的长度之间的大小关系可以确定该可用空间是否足以承载该数据包。需要说明的是,在本步骤中,需要在数据包的信息码之后预留校验字段的位置,例如预留2个字节长度,用零填充该预留位置,因此该数据包的长度包括信息码和预留校验字段长度。
[0028]如步骤2)所述,若该数据包的包长大于当前的基带帧数据域的可用空间所占的数据域长度,则确定当前的基带帧数据域不足以承载整个数据包,需要对数据包进行分割。分割后的数据包分为前半部分数据块和后半部分数据块,其中前半部分数据块能够填满该可用空间,剩余的后半部分数据块将填充至下一个基带帧数据域中。
[0029]对于该后半部分数据块,将继续依照上述步骤I)进行判断,即继续判断该后半部分数据块是否足以承载于当前的基带帧数据域(相对于之前那一个基带帧的下一个基带帧)。而当判断结果为否时,则依照上述步骤2)所述,继续将该后半部分数据块再次分割成两部分数据块,这两部分数据块中的前半部分数据块能够填满基带帧数据域的可用空间,后半部分数据块将填充至下一个基带帧数据域中。[0030]如此循环执行上述步骤I)和步骤2),直至当前的基带帧数据域的可用空间足以承载最后剩余的数据块。
[0031]进一步地,根据整个过程中的循环执行次数可以确定当前待传输的数据包被分块次数的数据信息。例如,若上述步骤I)和步骤2)循环执行了两次,则可以确定当前待传输的数据包被切分了两次,该数据包分成了三个数据块分别承载于连续的三个基带帧数据域中。
[0032]若上述步骤I)的判断结果为是,即当前的基带帧数据域的可用空间足以承载当前待传输的数据包,则不需要对该数据包进行分割(即被分块次数的数据信息为0),该数据包将完整地承载于当前的基带帧数据域中。
[0033]然后,如步骤S12所述,基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段。如步骤S13所述,将该校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装。
[0034]现有技术中,生成一个数据包的校验字段时,只将数据包的信息码参与到生成校验字段的运算中,而在本实施例中,则进一步考虑了数据包被分块次数的数据信息。具体来说,本实施例包括如下三个具体实例:
I)在一个【具体实施方式】中,所述步骤S12包括如下步骤:
将该数据包被分块次数的数据信息附加至该数据包的信息码的末尾以形成待校验数据包;
采用第一预设校验字段生成方式对所述待校验数据包进行处理以生成校验字段,其中该第一预设校验字段生成方式由发送端和接收端来共同确定。
[0035]例如,CHK=F(DATA,SEG) =H([DATA, SEG]),其中 CHK 为计算得到的校验字段;DATA为数据包的信息码;SEG为数据包被分块次数的数据信息,H(x)为所述第一预设校验字段生成方式。
[0036]相应地,所述步骤S13包括如下步骤:将所述第一校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装。
[0037]2)在本步骤的另一个【具体实施方式】中,所述步骤S12包括如下步骤:
采用第一预设校验字段生成方式对该数据包进行处理以生成中间数据;
将该数据包被分块次数的数据信息附加至该中间数据的末尾,再采用第一预设校验字段生成方式对前述数据进行处理以生成第二校验字段;
其中,该第一预设校验字段生成方式由发送端和接收端来共同确定。
[0038]例如,CHK=F(DATA, SEG) =H ([H (DATA),SEG]),其中 CHK 为计算得到的校验字段;DATA为数据包的信息码,H(DATA)为中间数据;SEG为数据包被分块次数的数据信息,H(x)为所述第一预设校验字段生成方式。
[0039]相应地,所述步骤S13包括如下步骤:将所述第二校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装。
[0040]3)在本步骤的另一个【具体实施方式】中,所述步骤S12包括如下步骤:
采用第一预设校验字段生成方式对所述数据包的信息码进行处理以生成中间数据;采用第二预设校验字段生成方式对该中间数据和该数据包被分块次数的数据信息进行处理以生成第三校验字段; 其中,该第一预设校验字段生成方式和第二预设校验字段生成方式由发送端和接收端来共同确定。
[0041]例如,CHK=F(DATA, SEG) =G (H(DATA),SEG),其中 CHK 为计算得到的校验字段;DATA为数据包的信息码;SEG为数据包被分块次数的数据信息,H(x)为所述第一预设校验字段生成方式。
[0042]G(x, y)为第二预设校验字段生成方式,在实际应用中,G(x,y)可以是常用的可以接收两个输入数据的函数,例如异或运算的函数G(x,y)=x XOR y、加法运算的函数G(x, y)=x+y、减法运算的函数G(x, y)=x - y或者是乘法运算的函数G (x, y) =x * y。
[0043]相应地,所述步骤S13包括如下步骤:将所述第三校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装。
[0044]在上述三个【具体实施方式】中,所述第一预设校验字段生成方式为循环冗余校验,即CRC校验。
[0045]如图2所示的是将数据包封装后形成的基带帧的基本结构示意图。参考图2,基带帧包括基带帧帧头、数据域以及用于填零和带内信令的区域。
[0046]其中,基带帧帧头具体包括MATYPE字段(2 bytes)、DFL字段(2 bytes)、SYNCD字段(2 bytes)、INDICATORS 字段(I byte)以及 CRC-8 字段(I byte)。INDICATORS 字段还包括CRCI字段(2 bits)和others字段(6 bits)。数据域用于填充各个数据包,数据包可以是IP数据包或者是TS数据流包等。
[0047]如图3A所示的是数据包未经分割封装成的基带帧结构示意图。参考图3A,基带帧包括基带帧帧头和数据域。在数据域中承载有多个数据包(例如数据包N、数据包N+1),依照本技术方案提供的数据包的封装方法对数据包经过封装后,在各个数据包的信息码(未示出)的末尾拼接了各自的校验字段,例如,数据包N和校验字段N、数据包N+1和校验字段N+1。这些数据包承载于一个基带帧数据域中。
[0048]如图3B所示的是数据包经分割后各个数据块分别承载于不同基带帧的情况下封装成的基带帧结构示意图。参考图3B,数据包N被分成3个数据块,即数据块1、数据块2以及数据块3,这三个数据块分别承载于连续的三个基带帧数据域中。每个基带帧包括基带帧帧头和数据域。在数据块3的信息码的末尾拼接了该数据包(即数据包N)的校验字段
N0
[0049]发送端将采用本技术方案提供的数据包的封装方法将数据包封装成基带帧后,将各个基带帧经由广播通信信道传输至接收端,接收端将从接收到的基带帧中解析出各个数据,并对各个数据包的接收是否正确进行校验。
[0050]本发明实施例提供的一种数据包的校验方法,该数据包是由上述实施例提供的数据包封装方法封装后填充至基带帧在信道中传输后于接收端恢复得到。如图4所述的是本发明的一种数据包的校验方法的【具体实施方式】的流程示意图。
[0051]参考图4,数据包的校验方法包括如下步骤:
步骤S21:从当前的基带帧数据域的起始位置开始依次读取数据包,其中所述起始位置由基带帧帧头中的起始位置字段来确定;
步骤S22:通过位于数据包头部的包长字段是否为零来判断该数据包是否完整地承载于当前的基带帧数据域; 步骤S23:若该数据包未完整地承载于当前的基带帧数据,则将当前基带帧起始位置开始至数据域末尾的所有数据作为该数据包的第一块,并继续从后续的若干个基带帧数据域中读取该数据包的剩余分块并依顺序与该数据包的第一块进行拼接以得到该数据包的信息码及校验字段,其中该数据包的剩余分块是根据基带帧帧头中的起始位置字段和数据域长度字段之间的关系来确定的;
步骤S24:若该数据包完整地承载于当前的基带帧数据,则从当前的基带帧数据域的起始位置开始并根据该数据包头部的包长获取该数据包的信息码及校验字段;
步骤S25:记录组装该数据包的信息码及校验字段的基带帧的个数以确定该数据包被分块次数的数据信息;
步骤S26:根据基带帧帧头中的校验算法标志位中标志的预设校验字段生成方式与校验字段长度,从该数据包的末尾截取校验字段,数据包的剩余内容作为信息码;
步骤S27:对接收到的数据包信息码以及数据包被分块次数的数据信息进行校验计算以得到待比较校验字段;
步骤S28:比较该待比较校验字段与获取到的校验字段是否一致 步骤S29:若两者一致,则确定该数据包接收正确。
[0052]在本实施例中,如步骤S21所述,从当前的基带帧数据域的起始位置开始依次读取数据包。
[0053]在实际应用中,接收端接收到一系列连续的基带帧后,将依照接收的先后顺序从第一个基带帧数据域的起始位置开始读取第一个完整的数据包。所述起始位置由基带帧帧头中的起始位置字段(如图2中的SYNCD字段)来确定,接收端根据SYNCD字段中记录的信息可以确定数据域中存储该数据包的起始位置。
[0054]如步骤S22所述,通过位于数据包头部的包长字段是否为零来判断该数据包是否完整地承载于当前的基带帧数据域。
[0055]在本实施例中,在数据包包头部设置有包长字段,用于记录该数据包的包长。在该数据包完整地承载于一个基带帧数据域的情况下,该包长字段记录整个数据包的包长;而当该数据包未完整地承载于一个基带帧数据域的情况下,该包长字段默认设置为零。因此,接收端可以通过读取位于数据包头部的包长字段,根据其记录的数值是否为零来判断该数据包是否完整地承载于当前的基带帧数据域。
[0056]如步骤S23所述,若该数据包未完整地承载于当前的基带帧数据,则将当前基带帧起始位置开始至数据域末尾的所有数据作为该数据包的第一块,并继续从后续的若干个基带帧数据域中读取该数据包的剩余分块并依顺序与该数据包的第一块进行拼接以得到该数据包的信息码及校验字段。
[0057]在数据包较长,未完整地承载于一个基带帧数据域的情况下,接收端需要从若干个基带帧中提取属于该数据包的各个数据块,而属于同一个数据包的各个数据块将承载于连续的若干个基带帧中。因此,接收端在从当前的基带帧起始位置至数据域末尾获取了该数据包的第一个数据块后,将继续从后续的基带帧数据域中读取该数据包的剩余分块。
[0058]进一步地,该数据包的剩余分块是根据基带帧帧头中的起始位置字段和数据域长度字段之间的关系来确定的。具体来说,接收端通过判断基带帧帧头中的起始位置字段中记录的基带帧数据域的起始位置和数据域长度字段记录的数据域的总长度之间的大小关系来确定是否已获取到该数据包的最后一个数据块。
[0059]具体包括如下情形:
I)若某个基带帧帧头中的起始位置字段大于数据域长度字段,则确定该基带帧数据域全部用于承载数据包的剩余分块中的一个数据块,且该数据包的传输未完成。接收端将继续从后续的基带帧数据域中获取剩余的数据块。
[0060]2)若某个基带帧帧头中的起始位置字段等于数据域长度字段,则确定该基带帧数据域全部用于承载该数据包,且该数据包的传输已经完成。
[0061]3)若某个基带帧帧头中的起始位置字段小于数据域长度字段,则该基带基数据域头部至起始位置之间的数据为该数据包的剩余分块中的最后一个数据块。
[0062]如步骤S24所述,若该数据包完整地承载于当前的基带帧数据,则从当前的基带帧数据域的起始位置开始并根据该数据包头部的包长获取该数据包的信息码及校验字段。
[0063]其中,数据包的信息码的长度信息可以通过位于数据包头部长度字段直接或通过简单计算间接得到,而校验字段的长度则是根据发送端和接收端对校验字段计算算法的约定得到。
[0064]如步骤S25所述,记录组装该数据包的信息码及校验字段的基带帧的个数以确定该数据包被分块次数的数据信息。
[0065]在本实施例中,接收端后续对接收到的数据包进行校验时,需要考虑数据包被分块次数的数据信息。因此,在获取到完整的数据包之后,接收端还需要记录下组装该数据包的信息码及校验字段的基带帧的个数。
[0066]对于数据包未完整地承载于当前的基带帧数据域的情形,接收端可以记录下获取整个数据包的过程中共跨度了几个基带帧,从而可以确定该数据包被分成了几个数据块,并由此确定该数据包被分块次数的数据信息。而对于数据包完整地承载于当前的基带帧数据域的情形,所述被分块次数的数据信息即为被分块次数为零。
[0067]如步骤S26所述,根据基带帧帧头中的校验算法标志位中标志的预设校验字段生成方式与校验字段长度,从该数据包的末尾截取校验字段,数据包的剩余内容作为信息码。
[0068]具体地,接收端在获取到的整个数据包包括信息码和校验字段,两者是合并在一起的。因此,接收端需要从中分别获取信息码和校验字段。其中,校验字段的长度可以根据基带帧帧头中的校验算法标志位中标志的预设校验字段生成方式与校验字段长度来确定。而数据包的信息码则是在截取了校验字段之后数据包的剩余内容。
[0069]如步骤S27所述,对接收到的数据包信息码以及数据包被分块次数的数据信息进行校验计算以得到待比较校验字段。
[0070]具体地,接收端将结合接收到的数据包的信息码与根据上述步骤S25所确定的该数据包被分块次数的数据信息进行校验运算,以得到待比较校验字段。其中,所述校验运算的具体实施过程是根据基带帧帧头中的校验算法标志位中标志的预设校验字段生成方式来确定。并且对于同一个数据包,发送端和接收端采用的是相同的预设校验字段生成方式对该数据包的信息码进行处理以分别获取校验字段。
[0071]针对不同的预设校验字段生成方式,对数据包的信息码的处理方式可以参照上文图1描述的实施例中所述步骤S12的实施例,在此不再赘述。
[0072]如步骤S28所述,比较该待比较校验字段与获取到的校验字段是否一致。[0073]如步骤S29所述,若两者一致,则确定该数据包接收正确。反之,若两者不一致,则确定该数据包接收错误。
[0074]本发明实施例还提供了一种数据包的传输方法,具体包括如下步骤:
步骤S31:将当前待传输的数据包依次填充至一个或多个基带帧数据域;
步骤S32:生成该数据包的校验字段,其中所述校验字段根据该数据包的信息码和该数据包在填充至基带帧数据域的过程中被分块次数的数据信息来确定;
步骤S33:将该校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装; 步骤S34:将承载于该数据包的一个或多个基带帧经由信道传输至接收端。
[0075]综上所述,采用本技术方案提供的数据包封装方法和校验方法,发送端在生成数据包的校验字段时,考虑了数据包填充至基带帧数据域过程中被分块次数的数据信息,这样在接收端对接收到的数据包进行解析过程中,也将结合数据包被分块次数的数据信息来对数据包是否正确接收进行校验,从而提高了数据包(尤其是数据包被分成几个数据块承载于不同的基带帧中的情况下)在广播通信信道传输时的可靠性。
[0076]本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
【权利要求】
1.一种数据包的封装方法,其特征在于,包括: 在将当前待传输的数据包依次填充至一个或多个基带帧数据域的过程中,记录该数据包被分块次数的数据信息; 基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段; 将该校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装。
2.如权利要求1所述的数据包的封装方法,其特征在于,所述将当前待传输的数据依次填充至一个或多个基带帧数据域,记录该数据包被分块次数的数据信息包括: 步骤I):判断当前的基带帧数据域的可用空间是否足以承载当前待传输的数据包,该数据包包括信息码和预留校验字段长度; 步骤2):若该判断结果为否,则将该数据包进行分割以形成前半部分数据块和后半部分数据块,其中所述前半部分数据块适于填满该可用空间,所述后半部分数据块将填充至下一个基带帧数据域; 循环执行上述步骤I)和步骤2),直至当前的基带帧数据域的可用空间足以承载当前待传输的数据包; 基于上述步骤I)和步骤2)的循环执行次数确定当前待传输的数据包被分块次数的数据信息。·
3.如权利要求1所述的数据包的封装方法,其特征在于,所述基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段的步骤包括: 将该数据包被分块次数的数据信息附加至该数据包的信息码的末尾以形成待校验数据包; 采用第一预设校验字段生成方式对所述待校验数据包进行处理以生成第一校验字段,其中该第一预设校验字段生成方式由发送端和接收端来共同确定。
4.如权利要求1所述的数据包的封装方法,其特征在于,所述基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段的步骤包括: 采用第一预设校验字段生成方式对该数据包进行处理以生成中间数据; 将该数据包被分块次数的数据信息附加至该中间数据的末尾,再采用第一预设校验字段生成方式对前述数据进行处理以生成第二校验字段; 其中,该第一预设校验字段生成方式由发送端和接收端来共同确定。
5.如权利要求1所述的数据包的封装方法,其特征在于,所述基于该数据包的信息码和该数据包被分块次数的数据信息以生成该数据包的校验字段的步骤包括: 采用第一预设校验字段生成方式对该数据包进行处理以生成中间数据; 采用第二预设校验字段生成方式对该中间数据和该数据包被分块次数的数据信息进行处理以生成第三校验字段; 其中,该第一预设校验字段生成方式和第二预设校验字段生成方式由发送端和接收端来共同确定。
6.如权利要求3或4或5所述的数据包的封装方法,其特征在于,所述第一预设校验字段生成方式为循环冗余校验。
7.如权利要求5所述的数据包的封装方法,其特征在于,所述第二预设校验字段生成方式包括异或运算、加法运算、减法运算和乘法运算中的任一种运算方式。
8.一种数据包的校验方法,其特征在于,所述数据包由权利要求1所述的数据包的封装方法封装后填充至基带帧在信道中传输后于接收端恢复得到,所述校验方法包括: 从一个或多个基带帧数据域中获取完整的数据包,该完整的数据包包括信息码和校验字段; 根据基带帧帧头中的校验算法标志位中标志的预设校验字段生成方式与校验字段长度,从该数据包的末尾截取校验字段,数据包的剩余内容作为信息码; 对接收到的数据包的信息码以及数据包被分块次数的数据信息进行校验计算以得到待比较校验字段; 比较该待比较校验字段与获取到的校验字段是否一致; 若两者一致,则确定该数据包接收正确。
9.如权利要求8所述的数据包的校验方法,其特征在于,所述从一个或多个基带帧数据域中获取完整的数据包包括如下步骤: 从当前的基带帧数据域的起始位置开始依次读取数据包,其中所述起始位置由基带帧帧头中的起始位置字段来确定; 通过位于数据包头部的 包长字段是否为零来判断该数据包是否完整地承载于当前的基带帧数据域; 若该数据包未完整地承载于当前的基带帧数据,则将当前基带帧起始位置开始至数据域末尾的所有数据作为该数据包的第一块,并继续从后续的若干个基带帧数据域中读取该数据包的剩余分块并依顺序与该数据包的第一块进行拼接以得到该数据包的信息码及校验字段,其中该数据包的剩余分块是根据基带帧帧头中的起始位置字段和数据域长度字段之间的关系来确定的; 若该数据包完整地承载于当前的基带帧数据,则从当前的基带帧数据域的起始位置开始并根据该数据包头部的包长获取该数据包的信息码及校验字段; 记录组装该数据包的信息码及校验字段的基带帧的个数以确定该数据包被分块次数的数据信息。
10.如权利要求8所述的数据包的校验方法,其特征在于,所述该数据包的剩余分块根据基带帧帧头中的起始位置字段和数据域长度字段之间的关系来确定包括如下情形: 1)若某个基带帧帧头中的起始位置字段大于数据域长度字段,则确定该基带帧数据域全部用于承载数据包的剩余分块中的一个数据块,且该数据包的传输未完成; 2)若某个基带帧帧头中的起始位置字段等于数据域长度字段,则确定该基带帧数据域全部用于承载该数据包,且该数据包的传输已经完成; 3)若某个基带帧帧头中的起始位置字段小于数据域长度字段,则该基带基数据域头部至起始位置之间的数据为该数据包的剩余分块中的最后一个数据块。
11.一种数据包的传输方法,其特征在于,包括: 将当前待传输的数据包依次填充至一个或多个基带帧数据域; 生成该数据包的校验字段,其中所述校验字段根据该数据包的信息码和该数据包在填充至基带帧数据域的过程中被分块次数的数据信息来确定; 将该校验字段拼接至该数据包的信息码的末尾以完成该数据包的封装;将承载于该数据包的一个或多个 基带帧经由信道传输至接收端。
【文档编号】H04L1/00GK103595504SQ201310533289
【公开日】2014年2月19日 申请日期:2013年11月4日 优先权日:2013年11月4日
【发明者】张文军, 张娅, 张震宁, 应小青, 项立任, 史梦蕾 申请人:上海数字电视国家工程研究中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1