发明内容
本发明提供一种数据传输方法、处理方法及装置,用以提高隧道报文中对原始报文的压缩效果。
本发明实施例提供一种数据传输方法,包括:
获取待传输的原始报文和当前的参考报文;所述当前的参考报文和所述原始报文为同一隧道中传输的报文;
对所述原始报文与所述当前的参考报文进行差分后压缩,获得信息报文;
利用隧道协议封装所述信息报文生成隧道报文;所述隧道报文包括压缩信息头,所述压缩信息头中包括所述当前的参考报文对应的参考报文标识;
发送所述隧道报文。
可选的,获取当前的参考报文之前,还包括:
确认所述原始报文是否满足参考报文更新条件,若不满足则获取所述当前的参考报文。
可选的,还包括:
若所述原始报文满足参考报文更新条件,则根据所述原始报文更新所述当前的参考报文并更新所述当前的参考报文的参考报文标识;
利用所述隧道协议封装所述原始报文生成隧道报文;所述隧道报文包括压缩信息头,所述压缩信息头中包括所述当前的参考报文对应的参考报文标识。
可选的,所述压缩信息头中还包括更新标识,所述更新标识用于指示所述隧道报文对应的原始报文为当前的参考报文。
本发明实施例提供一种数据处理方法,包括:
接收隧道报文;
解封所述隧道报文,得到信息报文,所述信息报文为对原始报文与参考报文进行差分后压缩得到的;所述参考报文和所述原始报文为同一隧道中传输的报文;
根据所述隧道报文的压缩信息头中包括的参考报文标识,获取所述参考报文;
根据所述信息报文和所述参考报文,获得所述原始报文。
可选的,解封所述隧道报文,得到信息报文之前,还包括:
确认所述隧道报文的压缩信息头中的更新标识是否为设定值;
若所述隧道报文的压缩信息头中的更新标识是所述设定值,则对所述隧道报文解封,得到所述信息报文。
可选的,还包括:
若所述隧道报文的压缩信息头中的更新标识不是所述设定值,则对所述隧道报文解封,获取所述原始报文,并关联保存所述原始报文和所述压缩信息头中的参考报文标识。
本发明实施例提供一种数据传输装置,包括:
处理单元,用于通过收发单元获取待传输的原始报文和当前的参考报文;所述当前的参考报文和所述原始报文为同一隧道中传输的报文;
所述处理单元,还用于对所述原始报文与所述当前的参考报文进行差分后压缩,获得信息报文;
所述处理单元,还用于利用隧道协议封装所述信息报文生成隧道报文;所述隧道报文包括压缩信息头,所述压缩信息头中包括所述当前的参考报文对应的参考报文标识;
所述处理单元,还用于控制所述收发单元发送所述隧道报文。
可选的,所述处理单元还用于:
确认所述原始报文是否满足参考报文更新条件,若不满足则获取所述当前的参考报文。
可选的,所述处理单元还用于:
若所述原始报文满足参考报文更新条件,则根据所述原始报文更新所述当前的参考报文并更新所述当前的参考报文的参考报文标识;
利用所述隧道协议封装所述原始报文生成隧道报文;所述隧道报文包括压缩信息头,所述压缩信息头中包括所述当前的参考报文对应的参考报文标识。
可选的,所述压缩信息头中还包括更新标识,所述更新标识用于指示所述隧道报文对应的原始报文为当前的参考报文。
本发明实施例提供一种数据处理装置,包括:
收发单元,用于接收隧道报文;
处理单元,用于解封所述隧道报文,得到信息报文,所述信息报文为对原始报文与参考报文进行差分后压缩得到的;所述参考报文和所述原始报文为同一隧道中传输的报文;
所述处理单元,还用于根据所述隧道报文的压缩信息头中包括的参考报文标识,获取所述参考报文;
所述处理单元,还用于根据所述信息报文和所述参考报文,获得所述原始报文。
可选的,所述处理单元还用于:
确认所述隧道报文的压缩信息头中的更新标识是否为设定值;
若所述隧道报文的压缩信息头中的更新标识是所述设定值,则对所述隧道报文解封,得到所述信息报文。
可选的,所述处理单元还用于:
若所述隧道报文的压缩信息头中的更新标识不是所述设定值,则对所述隧道报文解封,获取所述原始报文,并关联保存所述原始报文和所述压缩信息头中的参考报文标识。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项所述的数据传输方法。
本发明实施例提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的数据传输方法。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项所述的数据处理方法。
本发明实施例提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的数据处理方法。
综上所述,本发明实施例提供一种数据传输方法、处理方法及装置,其中,数据传输方法包括:获取待传输的原始报文和当前的参考报文;当前的参考报文和原始报文为同一隧道中传输的报文;对原始报文与当前的参考报文进行差分后压缩,获得信息报文;利用隧道协议封装信息报文生成隧道报文;隧道报文包括压缩信息头,压缩信息头中包括当前的参考报文对应的参考报文标识;发送隧道报文。同一隧道内的各个报文之间具有一定的相关性,由于原始报文和当前的参考报文是同一隧道内的报文,因此对原始报文和当前的参考报文进行差分后所获得的差分结果相较于原始报文具有更高的规律性,其信息熵相较于原始报文更小,因此对差分结果进行压缩相较于现有技术直接对原始报文的压缩能够获得更好的压缩效果。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
隧道传输技术是一种常见的网络传输技术,图1为本发明实施例提供的一种隧道传输交互示意图,如图1所示,隧道设备(如VPN)为用户1、用户2、……、用户N提供隧道传输服务,N个用户的数据通过隧道设备访问网络服务器。具体应用过程中,隧道设备分别为N个用户分配不同的IP地址,这些IP地址虽然不同,但具有一定的相似性,用户构建原始报文并将原始报文发送给隧道设备,原始报文的报文头中便包含有隧道设备分配给用户的IP地址信息。由此可见,同一隧道内的原始报文至少具有相同或相似的IP地址信息,因此同一隧道内的原始报文具有一定的相关性。当然,以上只是以IP地址为例,具体实施过程中,原始报文中的传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(UserDatagram Protocol,UDP)信息也同样具有一定的相关性。
图2为本发明实施例提供的一种数据传输方法流程示意图,如图2所示,包括以下步骤:
S201:获取待传输的原始报文和当前的参考报文;当前的参考报文和原始报文为同一隧道中传输的报文。
S202:对原始报文与当前的参考报文进行差分后压缩,获得信息报文。
S203:利用隧道协议封装信息报文生成隧道报文;隧道报文包括压缩信息头,压缩信息头中包括当前的参考报文对应的参考报文标识。
S204:发送隧道报文。
在S201中,当前的参考报文可以是隧道中传输过的历史原始报文,也可以是根据隧道中原始报文特征而专门设计的参考报文,使得当前的参考报文与待传输的原始报文之间具有足够的相关性。在当前的参考报文是隧道中传输过的历史原始报文的情况下,为了提高当前的参考报文与待传输的原始报文之间的相关性,可选的,根据预设的参考报文更新条件不断更新当前的参考报文。具体来说,在S201中获取当前的参考报文之前,还包括:确认原始报文是否满足参考报文更新条件,若不满足则获取当前的参考报文。若原始报文满足参考报文更新条件,则根据原始报文更新当前的参考报文。参考报文的更新条件可根据实际应用环境确定,例如,可以每隔3个原始报文,确定一个原始报文为参考报文。
在S202中,在原始报文不满足参考报文更新条件的情况下,对原始报文与当前的参考报文进行差分,由于原始报文和参考报文为同一隧道中传输的报文,因此二者之间具有一定的相关性,其差分结果规律性更强,以异或差分为例,差分结果中将以0字符为主,只有少部分字符为1。对差分结果进行压缩,可以采用传统的lzo、zlib等压缩算法进行压缩,将获得更好的压缩效果,即压缩后的文件大小与差分结果的大小之比更低,因此本发明实施例中信息报文的大小将远远小于现有技术中对直接原始文件压缩后的文件大小。
在S203中,所使用的隧道协议可以是点对点隧道协议(Point-to-PointTunneling Protocol,PPTP)、第二层隧道协议(Layer 2 Tunneling Protocol,L2TP)、IP安全协议(IP Security Protocol,IPSec)等隧道传输协议,本发明实施例对此不多作限定。可选的,在原始报文不满足参考报文更新条件时,采用隧道协议封装S202中获得的信息报文,在原始报文满足参考报文更新条件时,采用隧道协议封装原始报文以生成隧道报文。在隧道报文中,还包括压缩信息头,压缩信息头包括了S202中所使用的当前参考报文对应的参考报文标识。可选的,在原始报文满足参考报文更新条件时,根据原始报文更新当前的参考报文的同时更新当前的参考报文的参考报文标识,在对原始报文采用隧道协议封装后生成的隧道报文中,其压缩信息头中所包括的参考报文标识为该原始报文对应的参考报文标识。
图3为一种现有的隧道报文帧格式示意图,图4为本发明实施例提供的一种隧道报文帧格式示意图。如图3和图4示,本发明实施例所提供的不同隧道协议下帧格式与现有的帧格式类似,对于PPTP协议下的帧格式,二者都具有IP头、通用路由封装(Generic RouteEncapsulation,GRE)头、点到点协议(Point-to-Point Protocol,PPP)头等,对于L2TP协议下的帧格式,二者都具有IP头、UDP头、L2TP头、PPP头等,对于IPSec协议下的帧格式,二者都具有IP头、认证头(Authentication Header,AH)、封装安全协议(Encapsulating SecurityProtocol,ESP)头、ESP尾等。区别在于现有技术直接对原始报文进行了压缩和封装,而本发明实施例的帧格式中携带了压缩信息头和信息报文(或作为参考报文的原始报文)。
采用本发明实施例所提供的隧道报文可以在S204中按照现有的隧道报文发送隧道报文。
同一隧道内的各个报文之间具有一定的相关性,由于原始报文和当前的参考报文是同一隧道内的报文,因此对原始报文和当前的参考报文进行差分后所获得的差分结果相较于原始报文具有更高的规律性,其信息熵相较于原始报文更小,因此对差分结果进行压缩相较于现有技术直接对原始报文的压缩能够获得更好的压缩效果。
在S202中,需要对不满足参考报文更新条件的原始报文进行差分。本发明实施例提供一种可行的原始报文和当前的参考报文进行差分的实现方式,请参考图5,为本发明实施例提供的一种差分过程示意图,如图5所示,进行差分的原始报文和参考报文并不一定具有相同的长度,在参考报文较短时对参考报文低位补零使其达到与原始报文一致的长度,在参考报文较长时,从低位截短参考报文使其达到与原始报文一致的长度。之后,原始报文和参考报文相同位的字符进行减法处理,获得与原始报文长度一致的差分结果。
与上述数据传输方法相对应的,本发明实施例还提供一种数据处理方法,可以处理通过上述数据传输方法传输的隧道报文。图6为本发明实施例提供的一种数据处理方法流程示意图,如图6所示,包括以下步骤:
S601:接收隧道报文。
S602:解封隧道报文,得到信息报文,信息报文为对原始报文与参考报文进行差分后压缩得到的;参考报文和原始报文为同一隧道中传输的报文。
S603:根据隧道报文的压缩信息头中包括的参考报文标识,获取参考报文。
S604:根据信息报文和参考报文,获得原始报文。
在S602中,可采用与现有技术类似的操作解封隧道报文,去除隧道报文的报文头,如图4中PPTP帧格式中的IP头、GRE头、PPP头等,从而获得信息报文。在本发明实施例所提供的隧道报文中还有可能包括作为参考报文的原始报文,则解封隧道报文后还可能获得隧道报文中的原始报文。
在理想的情况下,隧道报文接收方可根据压缩信息头中参考报文标识是否发生变化来判断对隧道报文解封后获得的报文是信息报文还是原始报文,具体来说,若参考报文标识较上一次接收的隧道报文中的参考报文标识未发生变化,说明解封后获得的是信息报文,若参考报文标识较上一次接收的隧道报文中的参考报文标识发生了变化,说明解封后获得的是作为参考报文的原始报文。但是在实际操作过程中,隧道报文的接收顺序可能与发送顺序不一致,即后发送的隧道报文被率先接收的情况,此时便会出现判断错误。为了避免这种情况的发生,可选的,压缩信息头中还包括更新标识,更新标识用于指示隧道报文对应的原始报文是否为参考报文,例如,更新标识为0时说明隧道报文对应的原始报文为参考报文,此时对隧道报文解封后获得的是作为参考报文的原始报文,更新标识为1时说明隧道报文对应的原始报文不是参考报文,此时对隧道报文解封后获得的是信息报文。可选的,在确认隧道报文解封后获得的是作为参考报文的原始报文时,关联记录该原始报文和压缩信息头中参考报文标识,在利用参考报文逆差分时,便可直接根据参考报文标识获取对应的参考报文。
在603中,若隧道报文解封后获得的是信息报文,则还需对其进行解压和逆差分操作,因此需要根据压缩信息头中的参考报文标识确定生成该信息报文时所使用的参考报文。接收方可直接查询本地中保存的原始报文与参考报文标识间的对应关系,压缩信息头中的参考报文标识所指向的原始报文即是该信息报文所对应的参考报文。
在S604中,需要先对信息报文解压缩,再根据S603中所确定参考报文对其进行逆差分操作。可选的,压缩信息头中还包括压缩算法标识,接收方可根据压缩算法标识确定信息报文所对应的压缩算法并进行解压缩操作,从而获得原始报文与参考报文的差分结果。之后,根据参考报文和差分结果进行逆差分操作,便可获得原始报文。与图5所示的差分过程相对应的,本发明实施例还提供一种可行的逆差分实施方式,如图7所示,为本发明实施例提供的一种逆差分过程示意图。如图7所示,进行逆差分的差分结果和参考报文并不一定具有相同的长度,在参考报文较短时对参考报文低位补零使其达到与差分结果一致的长度,在参考报文较长时,从低位截短参考报文使其达到与差分结果一致的长度。之后,差分结果和参考报文相同位的字符进行加法处理,获得与差分结果长度一致的原始报文。
本发明实施例提供以下两种可行的实现方式,以分别说明本发明实施例所提供的数据传输方法和数据处理方法。应理解,以下两种可行的实现方式仅为举例说明,并不代表本发明实施例仅包括或仅适用于以下两种情况。
假设压缩算法标识分别包括以下几种情况:0(无压缩)、1(lzo算法)、2(zlib算法)、3(其它算法)。更新标识包括以下几种情况:0(原始报文)、1(信息报文)。
图8为本发明实施例提供的一种可行的数据传输方法流程示意图,如图8所示,包括以下步骤:
S801:接收待发送原始报文。
S802:判断原始报文是否作为参考报文,即是否满足参考报文更新条件;若是,则执行S807,若否,则执行S803。
S803:将原始报文与当前参考报文做差分处理。
S804:根据预设的压缩算法,将差分结果执行压缩处理获取信息报文。
S805:为信息报文封装压缩信息头,压缩信息头中包括参考报文标识、压缩算法标识、更新标识。
假设S804中采用的压缩算法为lzo算法,此时压缩算法标识为1。同时,也可确定更新标识为1,指示隧道报文中包括的是信息报文。
S806:根据隧道协议封装其余各层头部信息,获得隧道报文。
S807:根据原始报文更新当前参考报文。
S808:更新参考报文标识。例如,可以直接在前一个参考报文标识的基础上加1。
S809:为原始报文封装压缩信息头。
压缩信息头中压缩算法标识为0,表示原始报文未经压缩,更新标识为0,指示隧道报文中包括的是作为参考报文的原始报文。
S810:发送隧道报文。
基于相同的假设,与图8向对应的,图9为本发明实施例提供一种可行的数据处理方法流程示意图,如图9所示,包括以下步骤:
S901:接收隧道报文。
S902:拆除隧道报文中除压缩信息头之外的隧道各层头部信息。
S903:根据压缩信息头中的更新标识判断隧道报文中包括的是否是参考报文;若是,则执行S907;若否,则执行S904。
S904:拆除压缩信息头内容。
S905:根据压缩信息头中的压缩报文标识选择相应的压缩算法,对解封获得的信息报文进行解压处理。
S906:根据压缩信息头中的参考报文标识确定参考报文,将解压后获得的差分结果根据参考报文进行逆差分,从而获得原始报文。
S907:更新存储参考报文(原始报文)及其参考报文标识。
S908:拆除压缩信息头内容。
S909:将原始报文发往下游。
本发明实施例所提供的数据传输方法和数据处理方法充分利用隧道内所传输原始报文间的相关性,采用相近报文差分后再压缩的方法,从时间维度提升压缩率,提升隧道传输效率,更大程度保障带宽服务质量。
基于相同的技术构思,本发明实施例还提供一种数据传输装置,该装置能够实现上述任一实施例所提供的数据传输方法。图10为本发明实施例提供的一种数据传输装置结构示意图,如图10所示,装置1000包括收发单元1001和处理单元1002,其中:
处理单元1002,用于通过收发单元1001获取待传输的原始报文和当前的参考报文;当前的参考报文和原始报文为同一隧道中传输的报文;
处理单元1002,还用于对原始报文与当前的参考报文进行差分后压缩,获得信息报文;
处理单元1002,还用于利用隧道协议封装信息报文生成隧道报文;隧道报文包括压缩信息头,压缩信息头中包括当前的参考报文对应的参考报文标识;
处理单元1002,还用于控制收发单元1001发送隧道报文。
可选的,处理单元1002还用于:
确认原始报文是否满足参考报文更新条件,若不满足则获取当前的参考报文。
可选的,处理单元1002还用于:
若原始报文满足参考报文更新条件,则根据原始报文更新当前的参考报文并更新当前的参考报文的参考报文标识;
利用隧道协议封装原始报文生成隧道报文;隧道报文包括压缩信息头,压缩信息头中包括当前的参考报文对应的参考报文标识。
可选的,压缩信息头中还包括更新标识,更新标识用于指示隧道报文对应的原始报文为当前的参考报文。
基于相同的技术构思,本发明实施例还提供一种数据处理装置,该装置能够实现上述任一实施例所提供的数据处理方法。图11为本发明实施例提供的一种数据处理装置结构示意图,如图11所示,装置1100包括收发单元1101和处理单元1102,其中:
收发单元1101,用于接收隧道报文;
处理单元1102,用于解封隧道报文,得到信息报文,信息报文为对原始报文与当前的参考报文进行差分后压缩得到的;当前的参考报文和原始报文为同一隧道中传输的报文;
处理单元1102,还用于根据隧道报文的压缩信息头中包括的参考报文标识,获取当前的参考报文;
处理单元1102,还用于根据信息报文和当前的参考报文,获得原始报文。
可选的,处理单元1102还用于:
确认隧道报文的压缩信息头中的更新标识是否为设定值;
若隧道报文的压缩信息头中的更新标识是设定值,则对隧道报文解封,得到信息报文。
可选的,处理单元1102还用于:
若隧道报文的压缩信息头中的更新标识不是设定值,则对隧道报文解封,获取原始报文,并根据原始报文更新当前的参考报文。
基于相同的技术构思,本发明实施例还提供一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)等。如图12所示,为本发明实施例提供的一种计算设备结构示意图,该计算设备可以包括中央处理器1201(Center Processing Unit,CPU)、存储器1202、输入设备1203、输出设备1204等,输入设备1203可以包括键盘、鼠标、触摸屏等,输出设备1204可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode RayTube,CRT)等。
存储器1202可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储本发明实施例所提供的数据传输方法的程序,处理器通过调用存储器存储的程序指令,按照获得的程序指令执行上述任一项所述的数据传输方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,用于存储为上述计算设备所用的计算机程序指令,其包含用于执行上述任一项所述的数据传输方法的程序。
所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
基于相同的技术构思,本发明实施例还提供一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)等。如图13所示,为本发明实施例提供的一种计算设备结构示意图,该计算设备可以包括中央处理器1301(Center Processing Unit,CPU)、存储器1302、输入设备1303、输出设备1304等,输入设备1303可以包括键盘、鼠标、触摸屏等,输出设备1304可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode RayTube,CRT)等。
存储器1302可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储本发明实施例所提供的数据处理方法的程序,处理器通过调用存储器存储的程序指令,按照获得的程序指令执行上述任一项所述的数据处理方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,用于存储为上述计算设备所用的计算机程序指令,其包含用于执行上述任一项所述的数据验证方法的程序。
所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。