发明内容
有鉴于此,本发明实施例的目的在于提供一种合成复帧的方法、装置和解析复帧的方法、装置,以实现通过减小自定义HDLC帧头开销,提高传输效率。
为解决上述问题,本发明实施例提供了一种合成复帧的方法,包括:
获取至少两个高级数据链路控制HDLC数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;
获取所述至少两个HDLC数据帧的长度信息,所述长度信息为每个HDLC数据帧的用户信息和数据信息的长度;
将所述至少两个HDLC数据帧合并为复帧,所述复帧包括:
所述目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和长度信息;
所述将至少两个HDLC数据帧合并为复帧包括:
保留一份表示所述目的地址信息的地址域Addr字段和表示控制属性信息的控制域Control字段;
为每个HDLC数据帧增加用于记录该HDLC数据帧长度信息的字段,将分别表示所述HDLC数据帧的用户信息和数据信息的帧域Label N字段和有效载荷信息Info字段拷贝到所对应的长度信息的字段后,形成包含所述至少两个HDLC数据帧信息的HDLC复帧。
还提供了一种解析复帧的方法,包括:
获取复帧的目的地址信息和控制属性信息,以及HDLC数据帧的长度信息;
根据目的地址信息、控制属性信息以及HDLC数据帧的长度信息,生成HDLC数据帧;
生成所述HDLC数据帧帧检验序列信息;
所述生成HDLC数据帧包括:
复制复帧数据的表示所述目的地址信息的地址域Addr字段和表示控制属性信息的控制域Control字段;
根据记录每个HDLC数据帧长度信息的字段,计算每个HDLC数据帧的长度,并把分别表示所述HDLC数据帧的用户信息和数据信息的帧域Label N字段和有效载荷信息Info字段拷贝到相应的Control字段之后。
还提供了一种合成复帧的装置,包括:
第一获取单元,用于获取至少两个高级数据链路控制HDLC数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;
第二获取单元,用于获取所述至少两个HDLC数据帧的长度信息,所述长度信息为每个HDLC数据帧的用户信息和数据信息的长度;
合并单元,用于将所述至少两个HDLC数据帧合并为复帧,所述复帧包括:
所述目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和所述长度信息;
所述将至少两个HDLC数据帧合并为复帧包括:
保留一份表示所述目的地址信息的地址域Addr字段和表示控制属性信息的控制域Control字段;
为每个HDLC数据帧增加用于记录该HDLC数据帧长度信息的字段,将分别表示所述HDLC数据帧的用户信息和数据信息的帧域Label N字段和有效载荷信息Info字段拷贝到所对应的长度信息的字段后,形成包含所述至少两个HDLC数据帧信息的HDLC复帧。
还提供了一种解析复帧的装置,包括:
第三获取单元,用于获取复帧的目的地址信息和控制属性信息,以及HDLC数据帧的长度信息;
第一生成单元,用于根据所述目的地址信息和控制属性信息,以及所述HDLC数据帧的长度信息,生成HDLC数据帧;所述生成HDLC数据帧包括:复制复帧数据的表示所述目的地址信息的地址域Addr字段和表示控制属性信息的控制域Control字段;根据记录每个HDLC数据帧长度信息的字段,计算每个HDLC数据帧的长度,并把分别表示所述HDLC数据帧的用户信息和数据信息的帧域Label N字段和有效载荷信息Info字段拷贝到相应的Control字段之后;
第二生成单元,用于生成所述HDLC数据帧帧检验序列信息。
还提供了一种复帧处理***,包括合成复帧的装置和解析复帧的装置,
所述合成复帧的装置用于获取至少两个高级数据链路控制HDLC数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;获取所述至少两个HDLC数据帧的长度信息,所述长度信息为每个HDLC的用户信息和数据信息的长度;将所述至少两个HDLC数据帧合并为复帧,所述复帧包括:所述目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和所述长度信息;所述将至少两个HDLC数据帧合并为复帧包括:保留一份表示所述目的地址信息的地址域Addr字段和表示控制属性信息的控制域Control字段;为每个HDLC数据帧增加用于记录该HDLC数据帧长度信息的字段,将分别表示所述HDLC数据帧的用户信息和数据信息的帧域Label N字段和有效载荷信息Info字段拷贝到所对应的长度信息的字段后,形成包含所述至少两个HDLC数据帧信息的HDLC复帧;
所述解析复帧的装置用于接收来自所述合成复帧的装置的复帧,获取复帧的目的地址信息和控制属性信息,以及HDLC数据帧的长度信息;根据目的 地址信息、控制属性信息以及HDLC数据帧的长度信息,生成HDLC数据帧;并生成所述HDLC数据帧帧检验序列信息;所述生成HDLC数据帧包括:复制复帧数据的表示所述目的地址信息的地址域Addr字段和表示控制属性信息的控制域Control字段;根据记录每个HDLC数据帧长度信息的字段,计算每个HDLC数据帧的长度,并把分别表示所述HDLC数据帧的用户信息和数据信息的帧域Label N字段和有效载荷信息Info字段拷贝到相应的Control字段之后。
与现有技术相比,本发明实施例具有以下优点:
利用本发明的实施例,通过获取至少两个高级数据链路控制HDLC数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;
获取所述至少两个HDLC数据帧的长度信息,所述长度信息为每个HDLC数据帧的用户信息和数据信息的长度;
将所述至少两个HDLC数据帧合并为复帧,所述复帧包括:
所述目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和所述长度信息。从而实现了:
首先,将目的地址和控制属性相同的单帧数据的帧头进行了共用,节约了具有相同类似属性的数据占用,提高了使用效率。
其次,合并后的复帧数据既包括了各个单帧数据相同的属性,也将各个单帧数据不相同的数据都进行了保存和指示。
最后,利用本发明的复帧合并方法,使得传输效率得到了提升,而且,合成的单帧数据越多,传输效率提升越明显。
具体实施方式
下面结合附图对本发明具体实施方式做进一步的详细阐述。
首先,介绍本发明各个实施例有关的基本概念。
基站收发信台BTS使用HDLC传输数据时,其帧格式可以参考图1中所示,其中:
Addr表示地址域:可以是基站收发信台或基站控制器的地址。
Control表示控制域:在使用时可以是HDLC链路的属性;如优先级等属 性。
Label N表示不同帧域:该域可以包括序列号、用户唯一标识等信息来区别各个用户,各个用户在Label N内的信息各不相同。
Info表示有效载荷信息:用户的数据可以在这一字段传输。
另外,在帧首头尾还有Flag(帧起始/结束标记)信息,在帧尾有FCS(FrameCheck Sequence,帧检验序列)等信息等。
为了实现HDLC多帧复用,对原帧结构进行以下修改:
如图2所示,在HDLC数据帧中,增加多帧复用信息指示字段“M”(Multi-frame Indication:多帧指示):
M=0:表示本数据帧为单帧,只有一个有效数据帧的数据信息;
M=1:表示本数据帧为复帧,包含超过一个有效数据帧的数据信息;
对于所属领域的技术人员而言,可以明白,还可以采用其他的方式用于指示单帧和复帧。不仅仅是限于使用M=0表示单帧,还可以使用相反的方式进行标识。只需要在原帧中增加新的指示字段进行复帧或单帧标识的,都可以实现本发明。
假定数据帧①、②是到同一个BSC的两个数据帧,由于其目的地址相同,因此Addr字段相同;
数据帧①、②具有相同的优先级及其他控制属性,则Control字段相同;
数据帧①、②不同的字段包括Label字段,如代表不同的用户;Info字段,如代表不同的语音。
则多帧合并后的复帧格式可以如③所示:
其中:Addr和Control字段相同,只保留一份;
为了在复帧中找出数据帧①Info域的长度,增加了LEN字段,LEN字段用以指示Label 1+Info字段长度之和。
同样,对数据帧②增加字段LEN以记录Label 2+Info字段的长度之和。
最后,重新对整数据帧③进行CRC校验,得到的结果填入FCS字段。在首、尾增加Flag字段,即可形成一个包含两帧信息的HDLC复帧。
重复上述过程,可以得到包含多个HDLC数据帧信息的复帧。
参考图3所示,是本发明实施例提供的方法实施例,包括步骤:
步骤301、获取至少两个HDLC(高级数据链路控制,High-Level Data LinkControl)数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;
步骤302、获取所述至少两个HDLC数据帧的长度信息,该长度信息为用户信息和数据信息的长度;
步骤303、将所述至少两个HDLC数据帧合并为复帧,所述复帧包括:
所有HDLC数据帧的共同的目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和长度信息。
以下以获取两个HDLC数据帧为例说明本发明实施例一的方法,包括步骤:
步骤A、获取两个HDLC数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;
步骤B、获取上述两个HDLC数据帧的长度信息,该长度信息为每个HDLC数据帧的用户信息和数据信息的长度之和;
在步骤B之前,还可以包括:
根据上述两个HDLC数据帧的多帧复用信息,判断上述两个HDLC数据帧是否为单帧,如果上述两个HDLC数据帧为单帧,则执行获取两个HDLC数据帧的长度信息的步骤,即执行步骤B。
步骤C、将上述两个HDLC数据帧合并为复帧,所述复帧包括:
上述两个HDLC数据帧共同的目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和长度信息。
上述实施一以获取两个HDLC数据帧为例说明本发明实施例的方法,对于所属领域的技术人员而言,该方法包括但不限于获取两个HDLC数据帧,获取三个HDLC数据帧、四个HDLC数据帧或者更多都可以使用本发明实施例一提供的方法,在此不再赘述。
其中,所述复帧还进一步包括:帧检验序列信息,所述帧检验序列信息为所述复帧的帧检验序列信息。
其中,获取HDLC数据帧可以具体为:在预设时间段内获取或者获取不多于预设个数的HDLC数据帧。
利用本发明的实施例,通过将具有相同目的地址和控制属性的HDLC数据帧进行合并,复用各个HDLC数据帧的目的地址和控制属性,从而实现了:
首先,将目的地址和控制属性相同的单帧数据的帧头进行了共用,节约了具有相同类似属性的数据占用,提高了使用效率。
其次,合并后的复帧数据既包括了各个单帧数据相同的属性,也将各个单帧数据不相同的数据都进行了保存和指示。
最后,利用本发明的复帧合并方法,使得传输效率得到了提升,而且,合成的单帧数据越多,传输效率提升越明显。
其中,上述实施例中,所述将HDLC数据帧合并为复帧之后,还包括:
发送所述复帧。
在上述数据帧合并的基础上,参考图4所示,是本发明实施例提供的合并复帧的方法的实施例二,本实施例说明了如何将多个数据报文合并成为复帧数据后进行发送。
发送过程进行之前,要求把多个数据报文合成为一个复帧,合并的复帧的大小可以用两个参数来控制:等待时间t,和最大复帧长度MAX_Len。其中:等待时间决定同一个复帧在合成过程中需要等待的最大时间;MAX_Len决定一个复帧中最大可以包含多少个数据包或最大数据长度。
步骤401、获取一个发送报文(该报文可以为HDLC数据帧),判断所述报文M域的数值;
步骤402、如果M=1,说明当前数据为复帧,不予处理;对已经是复帧的数据,不能再进行复用。
步骤403、如果M=0,则说明本HDLC数据帧可以被合成为复帧,准备数据区,启动本复帧定时器,填写复帧头Control和Addr字段;
步骤404、计算Label+Info的长度LEN,写入复帧Control字段后,把Label和Info的数据写在LEN后;LEN是用来表示Label+Info的长度,用以定位复帧中每个Label+Info域的长度。
步骤405、判断复帧的定时器是否到时,或复帧个数是否达到允许的最大复帧数据包个数。两者之一条件满足,则执行步骤410,否则,执行步骤406; 本步骤在实际应用中可以以周期性进行监控的方式进行,与其他步骤可以并行进行;
步骤406、获取下一个发送报文,判断所述报文M域的数值;如果M=1,说明当前数据为复帧,不予处理;
步骤407、如果M=0,则与现有HDLC数据帧比较,判断与现有HDLC数据帧的Addr、Control是否都相同,如果Addr、Control相同,执行步骤408,否则,另开辟一数据区,执行步骤403;
步骤408、计算该报文的Label+Info的长度LEN,与Label+Info字段依次写入上一帧信息Info之后,参见图2复帧帧结构。在公共头后,每帧数据都格式都是LEN+Label+Info,LEN+Label+Info,因此下一帧数据应写入上一帧之后,即Info域之后,重复步骤405;
步骤409、计算整个复用帧的FCS,并写入最后一HDLC数据帧Info之后,补一个Flag(0x7E),用于增加帧起始/结束标志;
步骤410、将M值设定为“1”,用于指示当前数据为复帧;完成复帧组帧过程,关闭定时器,清除复帧缓冲区,发送所述复帧。
参考图5所示,是本发明的复帧解析的方法的实施例一,包括步骤:
步骤501、对于接收到的复帧,获取复帧数据的目的地址信息和控制属性信息,以及HDLC数据帧的长度信息;
步骤502、根据HDLC数据帧的长度信息,目的地址信息和控制属性信息,生成HDLC数据帧;
步骤503、生成所述HDLC数据帧帧检验序列信息。
利用本发明的复帧解析的方法的实施例,通过对于接收到的复帧数据,复制所述复帧数据的地址域和控制域;根据复帧长度字段信息,计算所述各个数据帧的长度;复制复帧数据中的用户信息和数据信息;计算所述各个数据帧帧校验码。从而实现了:
首先,仅仅需要将复帧中传输的各个数据帧所共有的数据复制到各个数据帧中,减少了传输过程的数据传输量,提高了传输效率。
其次,将复帧中所携带的各个数据帧所特有的信息复制到各个数据帧, 便捷地恢复了各个数据帧。
其中,上述实施例中,所述获取所述复帧数据的目的地址信息和控制属性信息之前,还包括:
判断所述复帧帧校验是否成功,如果是,则接收该复帧,执行步骤501。
其中,上述实施例中,所述获取所述复帧数据的目的地址信息和控制属性信息之前,还包括:
根据所述复帧数据多帧复用信息指示,判断所述复帧是否为复帧,则执行步骤501。
参考图6所示,是本发明实施例提供的解析复帧的方法的实施例二,本实施例用于说明复帧接收过程后,如何解析出复帧中的各个子帧,包括步骤:
步骤601、收到一个数据帧,判断FCS校验是否成功;
步骤602、如果校验成功,接收数据,执行步骤604;
步骤603、如果校验失败,不接收所述数据;
步骤604、判断数据帧中M的值,如果等于1,则为复帧。进入步骤606;
步骤605、如果数据帧中M的值等于0,表明当前数据是单帧数据,按单帧数据的处理方式进行处理;
步骤606、依次恢复包括第一帧数据在内的各个数据帧,恢复过程包括:
复制复帧数据的Addr、Control域,根据LEN字段,计算第一帧数据的长度,把Label和Info拷贝到Control之后,计算第一帧数据的FCS,恢复出第一帧数据。
恢复第二帧数据,恢复过程包括:
复制Addr、Control域,根据第二帧的LEN字段,计算第二帧数据的长度,把Label和Info拷贝到Control之后。重新计算第二帧数据的FCS,恢复出第二帧数据。
依次类推,恢复出复帧中所有数据。
从接收和发送过程可以看出,由于有复用指示字段“M”的存在,收、发双方均可不必预先协商是否使用多帧复用技术,这可以简化设计和实现过程。
利用本发明的复帧合并方法,使得传输效率得到了提升,以上述帧格式 为例:
假定传输的数据是语音帧,有效长度为20字节;
Addr为1字节;Control为2字节;Label为1字节;FCS为2字节。LEN长度为1字节。
在未使用多帧复用技术前,传输效率为:
Length(Info)/(Length(首尾Flag+Addr+Control+Label+Info+FCS))=20/(2+1+2+1+20+2)=20/28=71.4%
如果把5个数据帧复用到一个数据帧中,则传输效率为:
(5*Length(Info))/(5*Length(LEN+Label+Info)+Length(首尾Flag+Addr+Control+FCS))=(5*20)/(5*(1+1+20)+(2+1+2+2))=100/117=85.47%
其传输效率比不使用复用技术时提高了85.47%-71.4%=14.07%。
对于所属领域的技术人员而言,通过提高复用帧的个数,会在更大程度上提高传输效率。
参考图7所示,是本发明的合成复帧数据的装置的实施例一,包括:
第一获取单元701,用于获取至少两个高级数据链路控制HDLC数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;
第二获取单元702,用于获取所述至少两个HDLC数据帧的长度信息,所述长度信息为每个HDLC数据帧的用户信息和数据信息的长度;
合并单元703,用于将所述至少两个HDLC数据帧合并为复帧,所述复帧包括:
所述目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和所述长度信息。
利用本发明的实施例,通过由第一获取单元701获取至少两个高级数据链路控制HDLC数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;第二获取单元702获取所述至少两个HDLC数据帧的长度信息,所述长度信息为每个HDLC数据帧的用户信息和数据信息的长度;合并单元703将所述至少两个HDLC数据帧合并为复帧,所述复帧包括:
所述目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和所述长度信息。从而实现了:
首先,将目的地址和控制属性相同的单帧数据的帧头进行了共用,节约了具有相同类似属性的数据占用,提高了使用效率。
其次,合并后的复帧数据既包括了各个单帧数据相同的属性,也将各个单帧数据不相同的数据都进行了保存和指示。
最后,利用本发明的复帧合并方法,使得传输效率得到了提升,而且,合成的单帧数据越多,传输效率提升越明显。
其中,上述实施例中,还包括:
第一判断单元,用于根据所述至少两个HDLC数据帧的多帧复用信息,判断所述至少两个HDLC数据帧是否为单帧,如果所述至少两个HDLC数据帧为单帧,则指示所述第一获取单元工作。
其中,上述实施例中,所述复帧还进一步包括:帧检验序列信息,所述帧检验序列信息为所述复帧的帧检验序列信息。
其中,上述实施例中,还包括:
第二判断单元,用于判断预先设置的复帧定时器是否到时,如果复帧定时器到时,或
判断所述第一获取单元获取HDLC数据帧的个数达到最大个数,则:
指示所述第一获取单元结束获取HDLC数据帧的过程。。
其中,上述实施例中,还包括:
设置单元,用于在所述复帧中设置多帧复用信息,以用于指示所述复帧为复帧。
其中,上述实施例中,还包括:
发送单元,用于发送所述复帧。
参考图8所示,是本发明的解析复帧数据的装置的实施例一,包括:
第三获取单元801,用于获取复帧的目的地址信息和控制属性信息,以及HDLC数据帧的长度信息;
第一生成单元802,用于根据所述目的地址信息和控制属性信息,以及所述HDLC数据帧的长度信息,生成HDLC数据帧;
第二生成单元803,用于生成所述HDLC数据帧帧检验序列信息。
利用本发明的复帧解析的装置的实施例,通过第三获取单元801,获取复帧的目的地址信息和控制属性信息,以及各个HDLC数据帧的长度信息,所述长度信息包含用户信息和数据信息的长度;第一生成单元802,根据所述目的地址信息和控制属性信息,以及各个所述HDLC数据帧的长度信息,所述长度信息为每个HDLC数据帧的用户信息和数据信息的长度,生成HDLC数据帧;第二生成单元803,生成所述HDLC数据帧帧检验序列信息。从而实现了:
首先,仅仅需要将复帧中传输的各个数据帧所共有的数据复制到各个数据帧中,减少了传输过程的数据传输量,提高了传输效率。
其次,将复帧中所携带的各个数据帧所特有的信息复制到各个数据帧,便捷地恢复了各个数据帧。
其中,上述实施例中,还包括:
第三判断单元,用于判断所述复帧帧校验是否成功,如果是,则指示所述第三获取单元工作。
其中,上述实施例中,还包括:
第四判断单元,用于根据所述复帧多帧复用信息指示,判断所述数据为复帧,则指示所述第三获取单元工作。
其中,上述实施例中,还包括:
接收单元,用于如果所述复帧帧校验成功,则接收所述数据。
参考图9所示,是本发明的复帧处理***的实施例一,包括:合成复帧的装置901和解析复帧的装置902,其中,所述合成复帧的装置用于获取至少两个高级数据链路控制HDLC数据帧,其中获取的HDLC数据帧具有相同的目的地址信息和控制属性信息;获取所述至少两个HDLC数据帧的长度信息,所述长度信息为每个HDLC的用户信息和数据信息的长度;将所述至少两个HDLC数据帧合并为复帧,所述复帧包括:所述目的地址信息和控制属性信息,以及所述至少两个HDLC数据帧的用户信息、数据信息和所述长度信息;
所述解析复帧的装置用于接收来自所述合成复帧的装置的复帧,获取复帧的目的地址信息和控制属性信息,以及HDLC数据帧的长度信息;根据目的地址信息、控制属性信息以及HDLC数据帧的长度信息,生成HDLC数据帧; 并生成所述HDLC数据帧帧检验序列信息。。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。