通用数据流的封装方法、解封装方法及装置与流程

文档序号:16245850发布日期:2018-12-11 23:34阅读:800来源:国知局
通用数据流的封装方法、解封装方法及装置与流程

本发明涉及数字信息传送技术领域,尤其涉及一种通用数据流的封装方法、解封装方法及装置。

背景技术

目前的数字信息传送系统,尤其是数字广播系统中,经常需要将多个不同业务的数据放在同一个传送信道中传送。因此,需要采用一定的封装方法来实现多个业务复用在一个传送信道上。目前的方法是,指定一种标准的数据流格式,然后分别定义各种业务数据到标准的数据流的封装标准,以及标准的数据流到各种不同的传送信道的封装方法。

目前,指定的标准的数据流格式可以包括:mpeg-2ts和dvb-gse。其中,mpeg-2ts采用定长的ts包,在将变长的ip包封装成ts包时,处理开销和传送开销大。dvb-gse采用变长包格式,可以直接封装ip包,但难以对流数据进行封装,并且对定长包的封装效率较低。因此,上述封装方法,难以统一实现对变长包业务、定长包业务和流业务的高效复用和传送。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的第一个目的在于提出一种通用数据流的封装方法,用于解决现有技术中对变长包业务、定长包业务和流业务进行统一复用和传送时,效率差的问题。

本发明的第二个目的在于提出一种通用数据流的解封装方法。

本发明的第三个目的在于提出一种通用数据流的封装装置。

本发明的第四个目的在于提出一种通用数据流的解封装装置。

本发明的第五个目的在于提出另一种通用数据流的封装装置。

本发明的第六个目的在于提出另一种通用数据流的解封装装置。

本发明的第七个目的在于提出一种非临时性计算机可读存储介质。

本发明的第八个目的在于提出另一种非临时性计算机可读存储介质。

本发明的第九个目的在于提出一种计算机程序产品。

本发明的第十个目的在于提出另一种计算机程序产品。

为达上述目的,本发明第一方面实施例提出了一种通用数据流(generaldatastream,gds)的封装方法,包括:

按照通用数据流的格式,对传送对象的数据进行封装,得到至少一个数据区;所述数据区包括:数据区头和数据区净荷;所述数据区头包括:基本区头和扩展区头,或者,基本区头;所述基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;所述数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;所述扩展区头指示,用于指示是否存在扩展区头;所述扩展区头包括:至少一个扩展参数;

将所述一个或多个数据区进行级联,得到待传输的通用数据流,并对所述通用数据流进行传输;所述一个或多个数据区来自同一个传送对象或不同的传送对象。

进一步的,在所述数据区净荷封装方式为变长包封装方式时,所述数据区净荷包括:至少一个数据单元;所述数据单元包括:单元头和单元净荷;所述单元头包括:分段指示、单元长度和单元类型;

针对每个数据单元,在所述分段指示为整个数据包时,单元净荷中包括:整个数据包;

在所述分段指示为数据包的起始段、中间段或者末尾段时,单元净荷中包括:数据包的部分数据;从起始段到末尾段的多个数据单元的单元净荷中的数据组合,得到整个数据包。

进一步的,所述单元类型为,对象数据单元或者填充单元;

在所述单元类型为对象数据单元时,所述单元净荷为整个传送对象的数据包或者数据包的部分数据;

在所述单元类型为填充单元时,所述单元净荷为随机数据或者预设数据所组成的填充数据包。

进一步的,在所述数据区净荷封装方式为定长包封装方式时,所述数据区净荷由数据包级联而成;

所述扩展区头指示,存在扩展区头;所述扩展区头包括:包长度和包起始位置。

进一步的,在所述数据区净荷封装方式为流封装方式时,所述数据区净荷由传送对象的数据流填充得到。

进一步的,所述传送对象的数据流由协议类型定义的数据块级联而成;

所述扩展区头指示,存在扩展区头;所述扩展区头包括:块起始位置。

进一步的,在所述协议类型为mpeg-2ts时,所述块起始位置为ts数据包在数据区净荷中的起始位置;

在所述协议类型为dvb-gse时,所述块起始位置为gse数据包在数据区净荷中的起始位置。

本发明实施例的通用数据流的封装方法,按照通用数据流的格式,对传送对象的数据进行封装,得到至少一个数据区;数据区包括:数据区头和数据区净荷;数据区头包括:基本区头和扩展区头,或者,基本区头;基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数;将一个或多个数据区进行级联,得到待传输的通用数据流,并对通用数据流进行传输;其中,一个或多个数据区来自同一个传送对象或不同的传送对象;从而能够统一实现对变长包业务、定长包业务和流业务的复用和传送,并提高变长包业务、定长包业务和流业务的复用效率和传送效率。

为达上述目的,本发明第二方面实施例提出了一种通用数据流的解封装方法,包括:

接收通用数据流;所述通用数据流由一个或多个数据区级联而成;所述数据区包括:数据区头和数据区净荷;所述数据区头包括:基本区头和扩展区头,或者,基本区头;所述基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;所述数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;扩展区头指示,用于指示是否存在扩展区头;所述扩展区头包括:至少一个扩展参数;

针对所述通用数据流的每个数据区,根据所述传送对象标识,判断所述数据区是否为待解析数据区;

若所述数据区为待解析数据区,则根据所述扩展区头指示,判断是否存在扩展区头;

若存在扩展区头,则对所述扩展区头进行解析,获取扩展参数;

根据所述数据区长度,获取所述待解析数据区中的数据区净荷;

根据所述扩展参数和所述数据区净荷封装方式,对所述数据区净荷进行解封装,获取传送对象的数据。

本发明实施例的通用数据流的解封装方法,通过接收通用数据流;通用数据流由一个或多个数据区级联而成;数据区包括:数据区头和数据区净荷;数据区头包括:基本区头和扩展区头,或者,基本区头;基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数;针对通用数据流的每个数据区,根据传送对象标识,判断数据区是否为待解析数据区;若数据区为待解析数据区,则根据扩展区头指示,判断是否存在扩展区头,若存在扩展区头,则对扩展区头进行解析,获取扩展参数;根据数据区长度,获取待解析数据区中的数据区净荷;根据扩展参数和数据区净荷封装方式,对数据区净荷进行解封装,获取传送对象的数据,从而能够统一实现对变长包业务、定长包业务和流业务的复用和传送,并提高变长包业务、定长包业务和流业务的复用效率和传送效率。

为达上述目的,本发明第三方面实施例提出了一种通用数据流的封装装置,包括:

至少一个封装模块,用于按照通用数据流的格式,对传送对象的数据进行封装,得到至少一个数据区;所述数据区包括:数据区头和数据区净荷;所述数据区头包括:基本区头和扩展区头,或者,基本区头;所述基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;所述数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;其中,所述扩展区头指示,用于指示是否存在扩展区头;所述扩展区头包括:至少一个扩展参数;

级联模块,用于将所述一个或多个数据区进行级联,得到待传输的通用数据流,并对所述通用数据流进行传输;所述一个或多个数据区来自同一个传送对象或不同的传送对象。

为达上述目的,本发明第四方面实施例提出了一种通用数据流的解封装装置,包括:

接收模块,用于接收通用数据流;所述通用数据流由一个或多个数据区级联而成;所述数据区包括:数据区头和数据区净荷;所述数据区头包括:基本区头和扩展区头,或者,基本区头;所述基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;所述数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;所述扩展区头指示,用于指示是否存在扩展区头;所述扩展区头包括:至少一个扩展参数;

判断模块,用于针对所述通用数据流的每个数据区,根据所述传送对象标识,判断所述数据区是否为待解析数据区;

所述判断模块,还用于在所述数据区为待解析数据区时,根据所述扩展区头指示,判断是否存在扩展区头;

解析模块,用于在存在扩展区头时,对所述扩展区头进行解析,获取扩展参数;

获取模块,用于根据所述数据区长度,获取所述待解析数据区中的数据区净荷;

解封装模块,用于根据所述扩展参数和所述数据区净荷封装方式,对所述数据区净荷进行解封装,获取传送对象的数据。

为达上述目的,本发明第五方面实施例提出了另一种通用数据流的封装装置,包括:

存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述的通用数据流的封装方法。

为达上述目的,本发明第六方面实施例提出了另一种通用数据流的解封装装置,包括:

存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述的通用数据流的解封装方法。

为达上述目的,本发明第七方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的通用数据流的封装方法。

为达上述目的,本发明第八方面实施例提出了另一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的通用数据流的解封装方法。

为达上述目的,本发明第九方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的通用数据流的封装方法。

为达上述目的,本发明第十方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的通用数据流的解封装方法。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例提供的一种通用数据流的封装方法的流程示意图;

图2为通用数据流的结构示意图;

图3为扩展区头的结构示意图;

图4为ip业务对应的数据区的结构示意图;

图5为atm业务对应的数据区的结构示意图;

图6为pcm业务对应的数据区的结构示意图;

图7为有格式流业务对应的数据区的结构示意图;

图8为本发明实施例提供的一种通用数据流的解封装方法的流程示意图;

图9为本发明实施例提供的一种通用数据流的封装装置的结构示意图;

图10为本发明实施例提供的一种通用数据流的解封装装置的结构示意图;

图11为本发明实施例提供的另一种通用数据流的封装装置的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例的通用数据流的封装方法、解封装方法及装置。

图1为本发明实施例提供的一种通用数据流的封装方法的流程示意图。如图1所示,该通用数据流的封装方法包括以下步骤:

s101、按照通用数据流的格式,对传送对象的数据进行封装,得到至少一个数据区;数据区包括:数据区头和数据区净荷;数据区头包括:基本区头和扩展区头,或者,基本区头;基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数。

s102、将一个或多个数据区进行级联,得到待传输的通用数据流,并对通用数据流进行传输;一个或多个数据区来自同一个传送对象或不同的传送对象。

本发明提供的通用数据流的封装方法的执行主体为通用数据流的封装装置,通用数据流的封装装置具体可以为终端设备或者服务器等硬件设备,或者可以为硬件设备上安装的软件。本实施例中,通用数据流的结构可以如图2所示,在图2中,通用数据流包括:数据区a、数据区b、数据区c、数据区d等等。

其中,传送对象标识(transportobjectidentity,toi)表示,该数据区净荷中的封装数据所属的传送对象。传送对象例如可以为业务,传送对象标识可以为业务标识。业务例如可以为,ip业务、以太网业务、atm业务、pcm业务、ts业务、gse业务等。其中,ip业务和以太网业务属于变长包业务;atm业务属于定长包业务;pcm业务属于无格式流业务;ts业务和gse业务属于有格式流业务。

在图2中,数据区a和数据区d中的传送对象标识都是601,即这两个数据区的数据区净荷中的封装数据为业务1(toi=601)的业务数据。本实施例中,传送对象标识可以由通用数据流的封装装置分配,或者根据业务标识映射产生。例如,ts业务一般采用13位的pid标识,如果传送对象标识为24位,则可以在pid标识前面添加一个11位固定前缀,得到传送对象标识。

本实施例中,数据区长度表示,整个数据区包含的数据量。当直接指示数据区长度时,数据区长度的位数限制了数据区的最大长度。例如当位数为16时,数据区的最大长度为65535个字节。

本实施例中,数据区净荷封装方式表示,传送对象的数据封装到数据区净荷的方式。数据区净荷封装方式为:变长包封装方式、定长包封装方式或者流封装方式。

本实施例中,扩展区头指示,用来指示扩展区头是否存在。在有些封装方式中,扩展区头不必存在,但是,在某些封装方式中,必须引入一些新的参数,这些参数可以放在扩展区头中来传送,称为扩展参数。扩展区头包括:一个或多个扩展参数。

本实施例中,扩展区头的结构例如可以如图3所示,在图3中,扩展区头由扩展区头长度和至少一个扩展参数域级联而成;每个扩展参数域封装一个扩展参数,包括:扩展参数类型、扩展参数长度和扩展参数值。其中,扩展区头长度表示,整个扩展区头包含的数据量;扩展参数类型表示,扩展参数的名称等,用来区分不同的扩展参数;扩展参数长度表示,整个扩展参数域包含的数据量;扩展参数值为扩展参数的内容。

以下实施例中,以ip业务为例进行说明,其中,ip业务为变长包业务,传送对象的数据为ip业务数据;传送对象标识所表示的传送对象为变长包业务。在传送对象为变长包业务时,数据区净荷封装方式为变长包封装方式;对应的,数据区净荷包括:至少一个数据单元;数据单元包括:单元头和单元净荷;单元头包括:分段指示、单元长度和单元类型。如图4所示,为ip业务对应的数据区的结构示意图。

本实施例中,分段指示可以为2位字段,用于表示传送对象的数据包封装到数据单元时的分段状态,分段状态可以为以下四种状态之一:单元净荷为一个完整的数据包、单元净荷为数据包的一个分段且为起始段、单元净荷为数据包的一个分段且为中间段、单元净荷为数据包的一个分段且为末尾段。

本实施例中,单元长度表示,数据单元包含的数据量;单元长度可以选择为11位字段,以满足ip包封装的需要;单元类型表示,单元净荷中封装的数据类型。单元类型可以为对象数据单元或者填充单元。在单元类型为对象数据单元时,单元净荷为整个传送对象的数据包或者数据包的部分数据;在单元类型为填充单元时,单元净荷为随机数据或者预设数据所组成的填充数据包。

以ip业务为例,当将ip数据包封装到数据单元中时,有的ip数据包不用分段,直接封装到一个数据单元的单元净荷中,则单元头中的分段指示为完整ip数据包;有的ip数据包可以分段封装到若干个连续的数据单元中,并用分段指示来指示其为该ip数据包的起始段、中间段或末尾段。这些数据单元可以按生成顺序放在一个数据区传送,也可以放在通用数据流上的含有相同传送对象标识的多个数据区上传送。但是,属于同一个ip数据包的数据单元应按照其生成顺序依次封装到这些数据区的数据区净荷中,中间不能插入其他ip数据包的数据单元。我们只需要将具有相同传送对象标识的数据区级联起来,就可以通过分段指示恢复出完整的ip数据包。

采用上述变长包封装方式,每个数据单元的单元头只需要两个字节即可封装一个ip数据包,且一个数据区可以同时封装多个ip数据包,因此,可以尽可能减少数据区头所占用的开销,最终,在对变长包的封装上可以实现比mpeg2-ts和dvb-gse更高的效率。

以下实施例中,以atm业务为例进行说明,其中,atm业务为定长包业务,传送对象的数据为atm业务数据;传送对象标识所表示的传送对象为定长包业务。在传送对象为定长包业务时,数据区净荷封装方式为定长包封装方式;数据区净荷由数据包级联而成;扩展区头指示,存在扩展区头;扩展区头包括:包长度和包起始位置。

如图5所示,为atm业务对应的数据区的结构示意图。在图5中,每个p代表一个定长数据包,如一个atm数据包。本实施例中,包长度表示,一个定长数据包的数据量;包起始位置表示,某个定长数据包在数据区净荷中的起始位置。

以atm业务为例,包长度为53,表示数据区净荷中每个atm数据包的长度为53个字节。当将一个atm业务的atm数据包封装到数据区净荷时,由于数据区长度不能保证正好是53字节的整数倍,这将导致以下结果:某一个atm数据包可能被封装到前一个数据区的末尾和后一个数据区的起始,当然,这两个数据区对应同一个传送对象标识。因此,在数据区的扩展区头中,需要通过包起始位置来指示数据区净荷中某个atm数据包的起始位置:例如第一个atm数据包的起始位置。这样,我们只要将属于同一个传送对象标识的前后两个数据区净荷拼接起来,就可以恢复完整的atm数据包。另外,即使上一个数据区丢失,也可以通过包起始位置来确定本数据区净荷中某个atm数据包的起始位置,然后再根据包长度正确解析出后续的atm数据包。这种定长包封装方式通过将多个定长数据包封装在一个数据区中,可大幅提高定长数据包的封装效率,避免了dvb-gse协议为每个数据包添加一个gse包头带来的开销。

以下实施例中,以pcm业务为例进行说明,其中,pcm业务为无格式流业务,传送对象的数据为pcm业务数据;传送对象标识所表示的传送对象为无格式流业务。在传送对象为无格式流业务时,数据区净荷封装方式为流封装方式;数据区净荷由传送对象的数据流填充得到。如图6所示,为pcm业务对应的数据区的结构示意图。

对于接收端来说,将拥有同一个传送对象标识的数据区的数据区净荷按接收顺序拼接起来,即可恢复原始的pcm业务数据流。

以下实施例中,以mpeg-2ts业务和dvb-gse业务为例进行说明,其中,mpeg2-ts业务和dvb-gse业务均为有格式流业务,mpeg2-ts业务的数据为一个传输流,dvb-gse业务的数据为一个通用流;在传送对象为有格式流业务时,数据区净荷封装方式为流封装方式;数据区净荷由传送对象的数据流填充得到;所述传送对象的数据流由协议类型定义的数据块(datablock,db)级联而成;扩展区头指示,存在扩展区头;扩展区头包括块起始位置。如图7所示,为有格式流业务对应的数据区的结构示意图。

本实施例中,协议类型表示,传送对象的数据的封装协议;块起始位置表示,数据块(db)在数据区净荷中的起始位置。其中,数据块的含义由协议类型决定。本实施例中,协议类型可以为,mpeg-2ts、dvb-gse等。在协议类型为mpeg-2ts时,数据块db为一个ts包,块起始位置为ts数据包在数据区净荷中的起始位置;在协议类型为dvb-gse时,数据块db为一个gse包,块起始位置为gse包在数据区净荷中的起始位置。

上述封装方式实现了mpeg-2ts业务数据和dvb-gse业务数据的统一传输,可以将mpeg2-ts业务数据和dvb-gse业务数据通过一种格式来交给传输信道发送,简化传送接口并通过数据区的隔离来保证业务质量。

通过上述实施例可知,本发明可以根据变长包业务、定长包业务和流业务的数据特点来分别采用最有效的封装方式,从而统一实现对变长包业务、定长包业务和流业务的高效复用和传送。

本发明实施例的通用数据流的封装方法,按照通用数据流的格式,对传送对象的数据进行封装,得到至少一个数据区;数据区包括:数据区头和数据区净荷;数据区头包括:基本区头和扩展区头,或者,基本区头;基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式或定长包封装方式或流封装方式;扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数;将一个或多个数据区进行级联,得到待传输的通用数据流,并对通用数据流进行传输;其中,一个或多个数据区来自同一个传送对象或不同的传送对象;从而能够统一实现对变长包业务、定长包业务和流业务的复用和传送,并提高变长包业务、定长包业务和流业务的复用效率和传送效率。

图8为本发明实施例提供的一种通用数据流的解封装方法的流程示意图。如图8所示,该通用数据流的解封装方法包括以下步骤:

s801、接收通用数据流;通用数据流由一个或多个数据区级联而成;数据区包括:数据区头和数据区净荷;数据区头包括:基本区头和扩展区头,或者,基本区头;基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数。

本发明提供的通用数据流的解封装装置具体可以为终端设备或者服务器等硬件设备,或者可以为硬件设备上安装的软件。

其中,传送对象标识(transportobjectidentity,toi)表示,该数据区净荷中的封装数据所属的传送对象。传送对象例如可以为业务,传送对象标识可以为业务标识。业务例如可以为,ip业务、以太网业务、atm业务、pcm业务、ts业务、gse业务等。其中,ip业务和以太网业务属于变长包业务;atm业务属于定长包业务;pcm业务属于无格式流业务;ts业务和gse业务属于有格式流业务。

本实施例中,扩展区头封装至少一个扩展参数的方法是:扩展区头可以由扩展区头长度和至少一个扩展参数域级联而成;扩展参数域中包括:扩展参数类型、扩展参数长度和扩展参数值。其中,扩展区头长度表示,整个扩展区头包含的数据量;扩展参数类型表示,扩展参数的名称等,用来区分不同的扩展参数;扩展参数长度表示,整个扩展参数域包含的数据量;扩展参数值为扩展参数的内容。

s802、针对通用数据流的每个数据区,根据传送对象标识,判断数据区是否为待解析数据区。

本实施例中,针对具体的某种业务,例如某个ip业务,只需要该ip业务对应的数据区,而不需要解析其他业务的数据区,从而减少解析工作量。而对于mpeg2-ts或dvb-gse来说,需要逐个对ts包或gse包进行解析。

本实施例中,步骤802之前,所述的方法还可以包括:获取各个数据区的数据区头的起始位置。在通用数据流中包含的第一个数据区头的起始位置一般来自物理层信道帧。举例来说,在中国移动多媒体广播系统(chinamobilemultimediabroadcasting,cmmb)中,可以将一个封装了多个业务的通用数据流直接放在由若干个时隙构成的复用帧上传送,在发送端保证复用帧头和数据区头对齐,则在接收端,可以从接收时隙中恢复出复用帧,而复用帧的第一个字节即为一个数据区头的起始位置。在获得第一个数据区头后,可以通过数据区长度得到后续的数据区头的起始位置。

s803、若数据区为待解析数据区,则根据扩展区头指示,判断是否存在扩展区头,若存在扩展区头,则对扩展区头进行解析,获取扩展参数。

本实施例中,若存在扩展区头,则通用数据流的解封装装置可以执行以下过程:对扩展区头进行解析,获取扩展参数;扩展区头由扩展区头长度和至少一个扩展参数域级联而成;扩展参数域中包括:扩展参数类型、扩展参数长度和扩展参数值。

本实施例中,可采用串行方式或者并行方式来解析数据区。当采用串行方式时,若数据区不是待解析数据区,则获取通用数据流中的下一个数据区,然后重复执行步骤802和步骤803。在并行方式中,在步骤802之前获得通用数据流的多个数据区,然后对每个数据区并行执行步骤802和步骤803,若某个数据区不是待解析的数据区,则终止该数据区的解析。

s804、根据数据区长度,获取待解析数据区中的数据区净荷。

s805、根据扩展参数和数据区净荷封装方式,对数据区净荷进行解封装,获取传送对象的数据。

本实施例中,数据区净荷封装方式可以为:变长包封装方式、定长包封装方式或者流封装方式。通用数据流的解封装装置执行步骤805的过程,可以参考图1至图7所示实施例,此处不再做详细说明。

本发明实施例的通用数据流的解封装方法,通过接收通用数据流;通用数据流由一个或多个数据区级联而成;数据区包括:数据区头和数据区净荷;数据区头包括:基本区头和扩展区头,或者,基本区头;基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数;针对通用数据流的每个数据区,根据传送对象标识,判断数据区是否为待解析数据区;若数据区为待解析数据区,则根据扩展区头指示,判断是否存在扩展区头,若存在扩展区头,则对扩展区头进行解析,获取扩展参数;根据数据区长度,获取待解析数据区中的数据区净荷;根据扩展参数和数据区净荷封装方式,对数据区净荷进行解封装,获取传送对象的数据,从而能够统一实现对变长包业务、定长包业务和流业务的复用和传送,并提高变长包业务、定长包业务和流业务的复用效率和传送效率。

图9为本发明实施例提供的一种通用数据流的封装装置的结构示意图。如图9所示,该通用数据流的封装装置包括:

至少一个封装模块91,用于按照通用数据流的格式,对传送对象的数据进行封装,得到至少一个数据区;所述数据区包括:数据区头和数据区净荷;所述数据区头包括:基本区头和扩展区头,或者,基本区头;所述基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;所述数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;其中,所述扩展区头指示,用于指示是否存在扩展区头;所述扩展区头包括:至少一个扩展参数;

级联模块92,用于将所述一个或多个数据区进行级联,得到待传输的通用数据流,并对所述通用数据流进行传输;一个或多个数据区来自同一个传送对象或不同的传送对象。

本实施例中,各模块功能的详细描述,可以参考图1至图7所示实施例,此处不再做详细说明。

本发明实施例的通用数据流的封装装置,按照通用数据流的格式,对传送对象的数据进行封装,得到至少一个数据区;数据区包括:数据区头和数据区净荷;数据区头包括:基本区头和扩展区头,或者,基本区头;基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;其中,扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数;将一个或多个数据区进行级联,得到待传输的通用数据流,并对通用数据流进行传输;其中,一个或多个数据区来自同一个传送对象或不同的传送对象;从而能够统一实现对变长包业务、定长包业务和流业务的复用和传送,并提高变长包业务、定长包业务和流业务的复用效率和传送效率。

图10为本发明实施例提供的一种通用数据流的解封装装置的结构示意图。如图10所示,该通用数据流的解封装装置包括:

接收模块11,用于接收通用数据流;所述通用数据流由一个或多个数据区级联而成;所述数据区包括:数据区头和数据区净荷;所述数据区头包括:基本区头和扩展区头,或者,基本区头;所述基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数;

判断模块12,用于针对所述通用数据流的每个数据区,根据所述传送对象标识,判断所述数据区是否为待解析数据区;

所述判断模块12,还用于在所述数据区为待解析数据区时,根据所述扩展区头指示,判断是否存在扩展区头;

解析模块13,用于在存在扩展区头时,对所述扩展区头进行解析,获取扩展参数;

获取模块14,用于根据所述数据区长度,获取所述待解析数据区中的数据区净荷;

解封装模块15,用于根据所述扩展参数和所述数据区净荷封装方式,对所述数据区净荷进行解封装,获取传送对象的数据。

本实施例中,各模块功能的详细描述,可以参考图1至图8所示实施例,此处不再做详细说明。

本发明实施例的通用数据流的解封装装置,通过接收通用数据流;通用数据流由一个或多个数据区级联而成;数据区包括:数据区头和数据区净荷;数据区头包括:基本区头和扩展区头,或者,基本区头;基本区头包括:传送对象标识、数据区长度、数据区净荷封装方式以及扩展区头指示;数据区净荷封装方式为,变长包封装方式、定长包封装方式或者流封装方式;扩展区头指示,用于指示是否存在扩展区头;扩展区头包括:至少一个扩展参数;针对通用数据流的每个数据区,根据传送对象标识,判断数据区是否为待解析数据区;若数据区为待解析数据区,则根据扩展区头指示,判断是否存在扩展区头;若存在扩展区头,则对扩展区头进行解析,获取扩展参数;根据数据区长度,获取待解析数据区中的数据区净荷;根据数据区净荷封装方式,对数据区净荷进行解封装,获取传送对象的数据,从而能够统一实现对变长包业务、定长包业务和流业务的复用和传送,提高变长包业务、定长包业务和流业务的复用效率和传送效率。

图11为本发明实施例提供的另一种通用数据流的封装装置的结构示意图。该通用数据流的封装装置包括:

存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序。

处理器1002执行所述程序时实现上述实施例中提供的通用数据流的封装方法。

进一步地,通用数据流的封装装置还包括:

通信接口1003,用于存储器1001和处理器1002之间的通信。

存储器1001,用于存放可在处理器1002上运行的计算机程序。

存储器1001可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

处理器1002,用于执行所述程序时实现上述实施例所述的通用数据流的封装方法。

如果存储器1001、处理器1002和通信接口1003独立实现,则通信接口1003、存储器1001和处理器1002可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线、外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器1001、处理器1002及通信接口1003,集成在一块芯片上实现,则存储器1001、处理器1002及通信接口1003可以通过内部接口完成相互间的通信。

处理器1002可能是一个中央处理器(centralprocessingunit,简称为cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者是被配置成实施本发明实施例的一个或多个集成电路。

本实施例还提供另一种通用数据流的解封装装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的通用数据流的解封装方法。

本实施例还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上所述的通用数据流的封装方法,或者,解封装方法。

本实施例还提供一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的通用数据流的封装方法,或者,解封装方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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