一种应用于IPoverDVB的IP数据封装方法及系统的制作方法

文档序号:7744592阅读:279来源:国知局

专利名称::一种应用于IPoverDVB的IP数据封装方法及系统的制作方法
技术领域
:本发明涉及IPoverDVB领域,特别涉及一种应用于IPoverDVB的IP数据封装方法及系统。
背景技术
:随着HFC双向网改造的深入开展,具有双向通信能力的终端日益增多,数据业务形式不仅仅只是单向的数据广播,双向交互数据业务的需求也随之增加,对带宽资源的竞争也日趋激烈。用户在高峰期会竞争带宽资源,特别是下行带宽资源,而系统的扩容又受到运营商资金、设备能力、网络规划等多种因素的限制,所以提高网络的利用率和传输效率是很有意义的。目前适用于IPoverDVB的IP数据封装协议主要包括DVB提出的MPE(Multi-protocolEncapsulation)和GSE(GenericStreamEncapsulation)以及IETF提出的ULE(UnidirectionalLightweightEncapsulation),其中MPE和ULE均米用MPEG-TS格式的物理层帧结构,而GSE采用DVB新一代广播系统的物理层帧结构。这三种封装格式效率以GSE最高,ULE次之,MPE封装效率最低,但是GSE采用的是新一代的物理层帧结构,ULE方式不符合DSM-CC段格式,均无法利用终端DEMUX模块对TS包中的数据进行拼接和校验,而通过软件对TS包中的数据进行拼接和校验会大量占用终端大量CPU资源,影响终端机顶盒的响应速度。同时以上描述的三种封装格式均未考虑将多个IP包封装在同一个DVB段中的策略,从而导致采用这三种封装格式传输数据包时(尤其当网络负载较小时),其网络利用率和传输效率均很低。因此如何在参考当前现有的封装协议的基础上,如何获得一种封装效率高的封装协议和方法是一个亟待解决的问题。
发明内容本发明的目的在于,为解决当前IPoverDVB数据封装协议均只能在一个DVB段中封装一个IP数据包进行发送,从而导致的网络利用率和传输效率均很低的问题,提出一种应用于IPoverDVB的IP数据封装方法及系统。为了实现上述目的,本发明提出一种用于IPoverDVB的多IP数据封装方法,该方法将若干个IP数据包封装到同一DVB段中进行传输,所述方法包含如下步骤步骤1,将一设定时间段内的若干个IP数据包采用优化的DSM-CC段格式封装在同一DVB段中进行发送。步骤2,终端对接收的TS包拼接得到该DVB段,还原并分发该DVB段中包含的若干IP数据包。其中,优化的DSM-CC段格式为基于DSM-CC段格式的能同时传输若干IP数据包的段格式。上述技术方案中,所述优化的DSM-CC段格式基于DSM-CC段格式,该优化的DSM-CC段格式还包含如下字段偏移量域指示符用以指示是否在同一个DVB段中同时传输多个IP数据包;偏移量用于指向第二个IP数据包的起始位置,即第一数据包的起始位置到第二个数据包起始位置的距离;负载个数用于记载一个DVB段中包含的IP数据包的个数;偏移量域用于指示第一个IP数据包的起始位置到本IP数据包起始包的起始位置的距离。可选的,所述偏移量域指示符占用DSMCC段中私有指示符之后的reserved字段,长度为Ibit;所述偏移量占用DSMCC段中私有指示符之后的tablejcLextension字段的低12bit;所述负载个数占用DSMCC段中table_id_extension字段之后的reserved和version_number字段共7bit;所述偏移量域位于DSMCC格式的段头部之后,包含“n_2”个16bit的偏移量字段,其中η表不负载个数的大小,每个16bit的偏移量字段指向段负载中对应数据包的起始位置。上述技术中,所述步骤2进一步包含如下步骤I)终端利用解复用器模块对接收到的TS包进行拼装和校验,获取完整DVB段结构。2)终端解析DVB段头部,获取偏移量域指示符字段、偏移量字段、负载个数字段以及偏移量域字段。3)根据上步骤获取的字段,对该DVB段的IP数据包依据负载进行拆解,按序获得多个IP数据包。上述技术方案中,所述拆解方法为终端解析DVB段头部信息,根据传输数据包个数字段以及偏移量域对负载进行拆解,还原DVB段中的IP数据包。基于上述方法,本发明还提供一种用于IPoverDVB的多IP数据封装及解封装系统,该装置将若干个IP数据包封装到同一DVB段中进行传输,该DVB段的格式符合DSM-CC段格式,所述系统包含将一设定时间段内的若干个IP数据包采用优化的DSM-CC段格式封装在同一DVB段中的封装发送单元;和对接收的封装多IP数据包的DVB段进行解封装,还原并分发该DVB段中的IP数据包的终端;其中,所述终端与封装发送单元分别位于DVB网络的终端与头端。上述技术方案中,所述优化的DSM-CC段格式基于DSM-CC段格式,该优化的DSM-CC段格式还包含如下字段偏移量域指示符用以指示是否在同一个DVB段中同时传输多个IP数据包;偏移量用于指向第二个IP数据包的起始位置,即第一数据包的起始位置到第二个数据包起始位置的距离;负载个数用于记载一个DVB段中包含的IP数据包的个数;偏移量域用于指示第一个IP数据包的起始位置到本IP数据包起始包的起始位置的距离。可选的,所述偏移量域指示符占用DSMCC段中私有指示符之后的reserved字段,长度为Ibit;所述偏移量占用DSMCC段中私有指示符之后的tablejcLextension的低12bit;所述负载个数占用DSMCC段中table_id_extension之后的reserved和version_number字段共7bit;所述偏移量域位于DSMCC段头部之后,包含“n_2”个16bit的偏移量字段,其中η表示负载个数的大小,每个16bit的偏移量字段指向段负载中对应数据包的起始位置。上述技术方案中,所述解封装如下步骤I)终端利用DEMUX模块对接收到的TS包进行拼装和校验,获取完整DVB段结构。2)终端解析段头部,获取偏移量域指示符字段、偏移量字段、负载个数字段以及偏移量域字段。3)根据上步骤获取的字段,对同一DVB段的IP数据包依据负载进行拆解,按序获得多个IP数据包。所述拆解方法为终端解析DVB段头部信息,根据传输数据包个数字段以及偏移量域对负载进行拆解,还原DVB段中的IP数据包。采用上述的技术方案后,本发明具有以下优点I、封装协议满足DSM-CC段格式,终端可以利用DEMUX模块进行解包,,减轻终端的处理压力。2、将多个IP数据包放在一个DVB段中传输,增加了传输有效负载,提高网络利用率和传输效率。图l_a本发明中封装协议的封装格式示意图;图Ι-b本发明基于现有技术的负载、TS包与DVB段的关系示意图;图2本发明中数据包封装方法的流程示意图;图3本发明中终端解析数据包流程示意图;图4本发明中终端对段负载拆解流程示意图。具体实施例方式下面结合附图及具体实施例对本发明作进一步的描述。现有技术的MPEG-2系统,IS0/IEC13818-1定义了一套私有表结构,可以将DSM-CC的消息封装成私有表的形式,然后进行打包,这样就可以在MPEG-2的传输流进行传输,DSM-CC段定义了额外的字段来满足额外的DSM-CC的需求,其结构与私有段结构兼容,可以用MPEG-2的解码器对其解码。其中现有技术的DSM-CC段的结构如下表所示句法比特数datagramsection(){tableid8section_syntaxindicatorIprivateindicatorIreserved2dsmccsectionlength12tablei(!extension16reserved2versionnumber5currentnextindicatorIsectionnumber8lastsectionnumber8if(table一id==0x3A){LLC一SNAPOelseif(table_id==0x3B){userNetworkMessage()}elseif(table_id==0x3C){downloadDataMessage()}elseif(table一id==0x3D){DSMCC_descriptor_list()}elseif(table_id==0x3E){for(i=0;i<dsmcc_section_length-9;i++){privatedatabyte8}if(sectionsyntaxindicator==“0”){checksum32}else{CRC一3232从上表中可以得知现有技术的DSM-CC段格式主要包括如下字段I)table_id:表标识符,8位,标识了DSMCCSection净荷中的数据和类型;2)section_syntax_indicator:段校验指示符,I位,设置为‘I’时代表使用CRC32字段,当设为‘0’代表使用checksum字段;3)private_indicator:私有指示符,I位,设置为段校验指示符的反码;4)reserved:预留字段,设置为‘11’;5)dsmcc_section_length:段长度,12位,当table_id的值不是0x3C,也不是0x3B时,该值的定义由用户定义;6)version_number:版本号,5位,当table_id的值不是0x3A到0x3C中的值时,该字段的值由用户定义;7)current_next_indicatorI位,如果table_id值在0x3A到0x3C范围内,该位被设置为‘1’,其他情况由用户定义;8)section_number:段号,8位,如果table_id值在0x3A或0x3B,该字段将为O;如果table_id的值为0x3C,该字段的值为DDB或DDR消息的moduleNumber字段最低的8位的值,其他的由用户定义;9)last_section_number:最后一个段号,8位,记录section_number的最大值;10)CRC_32DSMCC段的循环冗余校验和,32位;11)checksumDSMCC段的校验和,32位。本发明优化的DSM-CC段格式基于以上现有技术。如图Ι-a是本发明的基于DSM-CC段格式的封装若干个IP数据包的封装协议的封装格式示意图。图Ι-b是本发明的负载、TS包与DVB段的关系图。首先发送端将多个IP包封装到一个DVB段中,然后一个DVB段被切割为多个TS包在DVB网络中传输,即TS包为DVB网络中的基本传输单元。终端接收到TS包,将若干接收的TS包拼接成DVB段,然后再还原出DVB段中的IP数据包。本发明的一种应用于IPoverDVB的IP数据封装方法,该方法将多个IP数据包封装到同一DVB段中进行传输,终端对接收到的TS包进行拼接和校验得到段后,对DVB段中的负载进行拆解,还原DVB段中的IP数据包。即本发明为支持将多个数据包封装到同一个DVB段中进行传输,设计了一种应用于IPoverDVB的IP数据封装协议,该协议在符合DSM-CC段格式的同时,增加可选MAC地址域、网络协议类型域以及偏移量域,形成优化的DSM-CC段格式(如图Ι-a所示),具体添加如下字段MAC域指示符(MAC_flag):lbit,用以指示是否包含MAC字段,O表示不包含,I表示包含,该字段占用原有DSMCC段中私有指示符之后的reserved字段;偏移量域指示符(offset_flag):lbit,用以指示是否传输多个数据包在同一个段中传输,O表示否,I表示是,该字段占用原有DSMCC段中私有指示符之后的reserved字段;协议类型(protocolType):4bit,指示段载荷的网络协议类型,该字段占用原有DSMCC段中私有指示符之后的table_id_extension的高4位;偏移量(offsetl):12bit,该字段在offset_flag为I时有意义,指向第二个数据包的起始位置,即第一数据包的起始位置到第二个数据包起始位置的距离,单位为B,该字段占用原有DSMCC段中私有指示符之后的table_id_extension的低12位;负载个数(packet_number):7bit,只是段载荷中数据包的个数,一个段中最多支持128个数据包,该字段占用原有DSMCC段中table_id_extension之后的reserved和version_number字段;MAC地址域(MACfield):64bit,可选的MAC域,在MAC_flag为I时,存在该域,存储目标MAC地址,原有DSMCC段头部之后;偏移量域(offsetfield):16*(n_2)bit,在offset_flag为I时,存在该域,包含n-2个16bit的offset字段,其中η表不packet_number的大小,每个16bit的offset字段指向段负载中对应数据包的起始位置,即第一个数据包的起始位置到本数据起始包的起始位置的距离,单位为B,原有DSMCC段头部之后。上述方法中,数据封装打包器对数据的封装打包包括如下主要步骤I)设定数据包时间间隔上限值ULTime,该参数的作用是,在缓存为空时,ULTime时间间隔内接收到的数据包,可以封装在同一个段中;2)在数据封装打包器中缓存IP包;3)选择缓存中发往同一目的端的多个IP数据包按序放在一个段中,构造以上所述封装协议的封装头部以及CRC后,打包封装成TS包。其中,选择数据包个数时,所有数据包负载,封装协议头部,CRC尾部的总长度不能超过一个DSM-CC段长度上限,4096B;若缓存中的IP包不足以塞满一个段,但在ULTime时间间隔内,数据封装打包器没有收到新的数据包,则打包器不再等待,先处理当前缓存中的数据包。上述方法中,终端对接收的数据的解析还原包括如下步骤1)终端利用DEMUX模块对接收到的TS进行拼装和校验,获取完整段结构;2)终端解析段头部,获取offset_flag字段、offsetl字段以及offset域等字段;3),然后根据这些字段,对段的负载进行拆解,按序获得多个数据包。其中,所述的终端对段的负载进行拆解,包括如下子步骤401)根据本发明协议格式,解析获取offset_flag、packetNumber、offset域、MAC_flag等字段;402)通过MAC_flag字段和offset_flag字段计算头部长度headLen以及负载长度payLoadLen,headLen初始化为8B,当MAC_flag为I时,存在MAC域,headLen=headLen+8B,当offset_flag为I时,存在offset域,headLen=headLen+(n-1)*2Β,其中η表示段中所传输的数据包的个数。负载长度为整个段的长度减去段头部长度以及CRC的长度;403)若offset_flag==I转405),否则,转404);404)该段只传输单个IP数据包,整段负载即为数据包,结束;405)根据offset域,packetNumber计算各个包在section中的起始位置,再根据各个包起始位置计算每个包的长度;406)根据每个包起始位置和包长度信息,对负载进行拆分,还原IP数据包。实施例为了使本发明的目的、实现方法和优点更加清楚明白,以具体实施例并参照附图,对本发明做进一步的详细说明。本发明提出了一种应用于IPoverDVB的IP数据封装方法,该方法将多个IP数据包封装到同一DVB段中进行传输,终端对接收到的TS包进行拼接和校验得到该DVB段后,对DVB段中的负载进行拆解,还原DVB段中的IP数据包。如图Ι-a所示,说明了一种满足本发明的封装协议封装格式,该协议在符合DSM-CC段格式的同时,增加可选MAC地址域,网络协议类型域,偏移量域以支持多IP数据包封装在同一个DVB段中。具体封装格式包括如下字段MAC域指示符(MAC_flag):lbit,用以指示是否包含MAC字段,O表示不包含,I表示包含;偏移量域指示符(offset_flag):lbit,用以指示是否传输多个IP数据包在同一个段中传输,O表不否,I表不是;协议类型(protocolType):4bit,指示段载荷的网络协议类型;偏移量l(offsetl):12bit,该字段在offset_flag为I时有意义,指向第二个数据包的起始位置,即第一数据包的起始位置到第二个数据包起始位置的距离,单位为B;负载个数(packet_number):7bit,只是段载荷中数据包的个数,一个段中最多支持128个数据包;MAC地址域(MACfield):64bit,可选的MAC域,在MAC_flag为I时,存在该域,存储目标MAC地址;偏移量域(offsetfield):16*(n_2)bit,在offset_flag为I时,存在该域,包含n-2个16bit的offset字段,其中η表不packet_number的大小,每个16bit的offset字段指向段负载中对应数据包的起始位置,即第一个数据包的起始位置到本数据起始包的起始位置的距离,单位为B。数据封装打包器对数据的封装打包包括如下主要步骤1)设定数据包时间间隔上限值ULTime;2)在数据封装打包器中缓存IP包;3)选择缓存中发往同一目的端的连续的多个IP数据包放在一个段中,构造以上所述封装协议的封装头部后,打包封装成TS包。具体流程如图2所示,包括如下步骤201)初始化参数包括数据包时间间隔上限ULTime;—个段中传输数据包最大个数packetNumMax等,其中packetNumMax为128;202)记录当前负载长度payloadLen为O,负载包个数η为O;203)是否需要传输MAC域,若是转205),否转204);204)段负载最大长度IenMax设置为(4093_5_4)B,4093表示sectionlength字段之后的最大长度,5表示sectionlength后段头部的长度,不包括MAC域,4表示尾部CRC字段的长度,转206);205)段负载最大长度IenMax设置为(4093-11_4)B,11表示包括MAC域后sectionlength后段头部的长度,4表示尾部CRC字段的长度;206)缓存中是否有数据包,若有转208),否则转207);207)在ULTIME时间间隔内,是否收到新的数据包,若受到转208),否则转212);208)按序取一个数据包,并获得其长度packetLen;209)判断是否能够传输该数据包,判定条件如下packetLen+payIoadLen<IenMaxMn<packetNumMax若该条件为真,转210),否则转212);210)根据该数据包的packetLen,更新payloadLen,n,IenMax等参数,当传输的数据包个数超过2个时,封装协议头部中需要增加offset域,每个offset字段需要16bit,更新payloadLen时,需要更新IenMax参数;211)将该数据包加入发送队列,转206);212)将发送队列中的数据包作为段的负载,构建协议头部,进行封装打包,注数据包的存放顺序与数据包的接收顺序一致;213)ResetpayloadLen,n,IenMax等参数,清空发送队列,转206);终端对数据包的处理流程如图3所示,包括如下具体步骤301)终端利用DEMUX解析获取完整段结构;302)终端软件解析段头部,获取offset_flag、packetNumber、offset域等字段;303)根据上一步骤获取的信息对接收的段负载进行切割,还原成多个IP数据包。其中,所述的终端对段的负载进行拆解,包括如下子步骤401)根据本发明协议格式,解析获取offset_flag、packetNumber、offset域、MAC_flag等字段;402)通过MAC_flag字段和offset_flag字段计算头部长度headLen以及负载长度payLoadLen,headLen初始化为8B,当MAC_flag为I时,存在MAC域,headLen=headLen+8B,当offset_flag为I时,存在offset域,headLen=headLen+(n-1)*2Β,其中η表示段中所传输的数据包的个数。负载长度为整个段的长度减去段头部长度以及CRC的长度;403)若offset_flag==I转405),否则,转404);404)该段只传输单个IP数据包,整段负载即为数据包,结束;405)根据offset域,packetNumber计算各个包在section中的起始位置,再根据各个包起始位置计算每个包的长度;406)根据每个包起始位置和包长度信息,对负载进行拆分,还原IP数据包。以上所述仅为本发明的一个具体实施方式,并非用于限定本发明的保护范围,本领域的技术人员应当理解,在不脱离发明原理的前提下,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的保护范围中。权利要求1.一种用于IPoverDVB的多IP数据封装方法,该方法将若干个IP数据包封装到同一DVB段中进行传输,所述方法包含如下步骤步骤1,将一设定时间段内的若干个IP数据包采用优化的DSM-CC段格式封装在同一DVB段中进行发送;步骤2,终端对接收的TS包拼接得到该DVB段,还原并分发该DVB段中包含的若干IP数据包;其中,优化的DSM-CC段格式为基于DSM-CC段格式的能同时传输若干IP数据包的段格式。2.根据权利要求I所述的用于IPoverDVB的多IP数据封装方法,其特征在于,所述优化的DSM-CC段格式基于DSM-CC段格式,该优化的DSM-CC段格式还包含如下字段偏移量域指示符用以指示是否在同一个DVB段中同时传输多个IP数据包;偏移量用于指向第二个IP数据包的起始位置,即第一数据包的起始位置到第二个数据包起始位置的距离;负载个数用于记载一个DVB段中包含的IP数据包的个数;偏移量域用于指示第一个IP数据包的起始位置到本IP数据包起始包的起始位置的距离。3.根据权利要求2所述的用于IPoverDVB的多IP数据封装方法,其特征在于,所述偏移量域指示符占用DSMCC段中私有指示符之后的reserved字段,长度为Ibit;所述偏移量占用DSMCC段中私有指示符之后的tablejcLextension字段的低12bit;所述负载个数占用DSMCC段中table_id_extension字段之后的reserved和version_number字段共7bit;所述偏移量域位于DSMCC格式的段头部之后,包含“n-2”个16bit的偏移量字段,其中η表示负载个数的大小,每个16bit的偏移量字段指向段负载中对应数据包的起始位置。4.根据权利要求I所述的用于IPoverDVB的多IP数据封装方法,其特征在于,所述步骤2进一步包含如下步骤1)终端利用解复用器模块对接收到的TS包进行拼装和校验,获取完整DVB段结构;2)终端解析DVB段头部,获取偏移量域指示符字段、偏移量字段、负载个数字段以及偏移量域字段;3)根据上步骤获取的字段,对该DVB段的IP数据包依据负载进行拆解,按序获得多个IP数据包。5.根据权利要求4所述的用于IPoverDVB的多IP数据封装方法,其特征在于,所述拆解方法为终端解析DVB段头部信息,根据传输数据包个数字段以及偏移量域对负载进行拆解,还原DVB段中的IP数据包。6.一种用于IPoverDVB的多IP数据封装系统,该装置将若干个IP数据包封装到同一DVB段中进行传输,该DVB段的格式符合DSM-CC段格式,所述系统包含将一设定时间段内的若干个IP数据包采用优化的DSM-CC段格式封装在同一DVB段中的封装发送单元;和对接收的封装多IP数据包的DVB段进行解封装,还原并分发该DVB段中的IP数据包的终端;其中,所述终端与封装发送单元分别位于DVB网络的终端与头端。7.根据权利要求6所述的用于IPoverDVB的多IP数据封装系统,其特征在于,所述优化的DSM-CC段格式基于DSM-CC段格式,该优化的DSM-CC段格式还包含如下字段偏移量域指示符用以指示是否在同一个DVB段中同时传输多个IP数据包;偏移量用于指向第二个IP数据包的起始位置,即第一数据包的起始位置到第二个数据包起始位置的距离;负载个数用于记载一个DVB段中包含的IP数据包的个数;偏移量域用于指示第一个IP数据包的起始位置到本IP数据包起始包的起始位置的距离。8.根据权利要求7所述的用于IPoverDVB的多IP数据封装方法,其特征在于,所述偏移量域指示符占用DSMCC段中私有指示符之后的reserved字段,长度为Ibit;所述偏移量占用DSMCC段中私有指示符之后的table_id_extension的低12bit;所述负载个数占用DSMCC段中table_id_extension之后的reserved和version_number字段共7bit;所述偏移量域位于DSMCC段头部之后,包含“n-2”个16bit的偏移量字段,其中η表示负载个数的大小,每个16bit的偏移量字段指向段负载中对应数据包的起始位置。9.根据权利要求7所述的用于IPoverDVB的多IP数据封装方法,其特征在于,所述解封装如下步骤1)终端利用DEMUX模块对接收到的TS包进行拼装和校验,获取完整DVB段结构;2)终端解析段头部,获取偏移量域指示符字段、偏移量字段、负载个数字段以及偏移量域字段;3)根据上步骤获取的字段,对同一DVB段的IP数据包依据负载进行拆解,按序获得多个IP数据包。10.根据权利要求9所述的用于IPoverDVB的多IP数据封装方法,其特征在于,所述拆解方法为终端解析DVB段头部信息,根据传输数据包个数字段以及偏移量域对负载进行拆解,还原DVB段中的IP数据包。全文摘要本发明公开一种用于IPoverDVB的多IP数据封装方法及系统,该方法将若干个IP数据包封装到同一DVB段中进行传输,该DVB段的格式符合DSM-CC段格式,所述方法包含如下步骤将一设定时间段内的若干个IP数据包采用优化的DSM-CC段格式封装在同一DVB段中进行发送;终端对接收的DVB段进行解封装,该解封装为拼接和校验TS包,还原DVB段中的IP数据包。所述优化的DSM-CC段格式基于DSM-CC段格式,该优化的DSM-CC段格式还包含如下字段偏移量域指示符用以指示是否在同一个DVB段中同时传输多个IP数据包;偏移量、负载个数和偏移量域等字段以支持将多个IP数据包封装在一个DVB段。本发明将多个IP数据包放在一个DVB段中传输,增加了传输有效负载,提高网络利用率和传输效率。文档编号H04L12/951GK102916936SQ20111022379公开日2013年2月6日申请日期2011年8月5日优先权日2011年8月5日发明者王劲林,王献冠,刘磊,徐剑,杨中臻,郑艳伟申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1