CN106027521B - 压缩方法、解压方法、压缩装置和解压装置 - Google Patents
压缩方法、解压方法、压缩装置和解压装置 Download PDFInfo
- Publication number
- CN106027521B CN106027521B CN201610338100.4A CN201610338100A CN106027521B CN 106027521 B CN106027521 B CN 106027521B CN 201610338100 A CN201610338100 A CN 201610338100A CN 106027521 B CN106027521 B CN 106027521B
- Authority
- CN
- China
- Prior art keywords
- heading
- compression
- information
- communication equipment
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Abstract
本发明公开了一种压缩方法、解压方法、压缩装置和解压装置。该压缩方法包括:第一通信设备确定第一报文头的长度;该第一通信设备根据该第一报文头的长度,从窗口中获取与该第一报文头长度相同的第二报文头;该第一通信设备通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的压缩信息;该第一通信设备向第二通信设备发送该压缩信息。因此,本发明的压缩方法和压缩装置能够简化压缩过程,缩短压缩时延;相应的本发明的解压方法和解压装置能够缩短解压时延。
Description
技术领域
本发明涉及通信技术领域,并且更具体地,涉及压缩方法、解压方法、压缩装置和解压装置。
背景技术
对报文头进行压缩是提高数据传输效率的一种有效手段,通过压缩报文头可以增加报文中有效净荷的比重,在给定时间内传输更多的数据包。鲁棒性头压缩(RobustHeader Compression,简称为“ROHC”)为现有技术中头部压缩的一种常用技术手段。采用ROHC算法对报文头进行压缩时,主要步骤包括:解析待压缩报文头中的所有字段;根据该所有每个字段的属性,使用去重标记或差值的方法与上下文进行匹配;根据匹配结果输出编码后的字段与标记。虽然,该ROHO压缩可以有效对抗压缩器和解压缩器之间的丢包现象,但是采用该ROHC算法对报文头进行压缩时需要对报文头进行全解析,并根据所有字段中每种字段的属性去匹配相应的字段从而进行压缩,该方法导致压缩复杂度高,压缩时延长。
发明内容
本发明实施例提供一种压缩方法、解压方法、压缩装置和解压装置,能够简化压缩过程,以便于缩短压缩时延。
第一方面,提供一种压缩方法,该压缩方法包括:第一通信设备确定第一报文头的长度;该第一通信设备根据该第一报文头的长度,从窗口中获取与该第一报文头长度相同的第二报文头;该第一通信设备通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的压缩信息;该第一通信设备向第二通信设备发送该压缩信息。
该第一通信设备无需解析该第一报文头的所有字段,仅需获取第一报文头的长度,并根据该长度获取第二报文头,通过将第一报文头和第二报文头进行字符比较获取该第一报文头的压缩信息,能够简化压缩过程,缩短压缩时延。
可选地,该压缩信息包括指示信息,该指示信息用于指示该第一报文头的长度。
进一步地,该压缩方法还包括,该第一通信设备确定第二报文头的长度;该第一通信设备根据该第二报文头的长度,从初始窗口中查找与该第二报文头长度相同的该第二报文头的压缩上下文;若查找到该压缩上下文,该第一通信设备通过将该压缩上下文替换为该第二报文头,将该初始窗口更新为该窗口;若未查找到该压缩上下文,该第一通信设备通过存储该第二报文头,将该初始窗口更新为该窗口。
结合第一方面,在第一方面的第一种可能的实现方式中,该第一通信设备通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的压缩信息,包括:该第一通信设备通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的第一差异数据信息,该第一差异数据信息用于指示该第一报文头的每个字符和该第二报文头相同位置处的每个字符是否相同;该第一通信设备根据该第一差异数据信息,获取该第一报文头的压缩信息。
该第一通信设备可以根据该第一差异数据信息对该第一报文头进行压缩,能够提高该压缩方法的兼容性和扩展性。另外,该第一通信设备获取该第一差异数据信息,以便于该第一通信设备根据该第一差异数据信息进行二次去重,能够提高报文头的压缩效率。
可选地,该第一差异数据信息可以用于指示该第一报文头和该第二报文头之间位置相同且内容相同的每个相同字符的位置,或该第一差异数据信息可以用于指示该第一报文头和该第二报文头之间位置相同且内容不同的每个差异字符的位置。
可选地,该第一差异数据信息可以用于指示第一报文头和第二报文头之间相同区域的位置以及相同区域包括的相同字符的数量,或该第一差异数据信息用于指示该第一报文头和第二报文头之间差异区域的位置以及差异区域包括的差异字符的数量。
结合第一方面或第一方面的上述可能的实现方式,在第一方面的第二种可能的实现方式中,该第一通信设备存储有该第二报文头的第二差异数据信息,该第二差异数据信息用于指示该第二报文头的每个字符和该第二报文头的压缩上下文相同位置处的每个字符是否相同,该第一通信设备根据该第一差异数据信息,获取该第一报文头的压缩信息,包括:该第一通信设备确定该第一差异数据信息和该第二差异数据信息是否相同;若该第一差异数据信息和该第二差异数据信息相同,该第一通信设备获取该第一报文头的压缩信息,该压缩信息包括二次去重标识和按序排列的第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该二次去重标识用于指示该第一差异数据信息和该第二差异数据信息相同。
如果第一差异数据信息和第二差异数据信息相同,该第一通信设备可以对该第一报文头进行二次压缩,能够进一步提高第一报文头的压缩率。
进一步地,若该第一差异数据信息和该第二差异数据信息不相同,该第一通信设备输出的压缩信息可以包括去重标识、按序排列的长度编码和第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该去重标识用于指示该第一差异数据信息和该第二差异数据信息不相同。
需要说明的是,如果第一差异数据信息和第二差异数据信息相同,该第一通信设备获取的压缩信息可以不包括长度编码(二次去重标识可以代替长度编码),从而能够提高压缩率。
结合第一方面或第一方面的上述可能的实现方式,在第一方面的第三种可能的实现方式中,该第一差异数据信息包括按序排列的第一数量信息和第二数量信息,该第一数量信息用于指示由该第一报文头和该第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二数量信息用于指示由该第一报文头和该第二报文头之间位置相同且内容不同的差异字符组成的差异区域包括的该差异字符的数量。
该第一差异数据信息包括按序排列的两种数量信息,可以简单且直观的呈现第一报文头的每个字符和第二报文头相同位置处每个字符的内容是否相同,以便于第一通信设备根据第一差异数据信息对第一报文头进行压缩。
结合第一方面或第一方面的上述可能的实现方式,在第一方面的第四种可能的实现方式中,该压缩信息包括按序排列的长度编码和第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量。
相较于字段压缩,该压缩方法采用字符压缩,并且该压缩信息包括按序排列的长度编码以及差异字符,不但可以提高压缩率,同时该方法简单易操作,与现有技术兼容性好。
结合第一方面或第一方面的上述可能的实现方式,在第一方面的第五种可能的实现方式中,该第一通信设备根据该第一报文头的长度,从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第一通信设备根据该第一报文头的长度,获取与该第一报文头长度相同的第二报文头对应的索引号;该第一通信设备根据该索引号,从该查找表中获取该索引号对应的索引地址;该第一通信设备根据该索引地址,从窗口中获取该第二报文头,该压缩信息包括该索引号、该索引地址或用于指示该第一报文头长度的指示信息。
该第一通信设备通过索引号获取第二报文头,可以提高第一通信设备获取第二报文头的效率,缩短压缩时延。同时,该第一通信设备无需复杂的编码,只需要将索引号、索引地址、或指示信息等作为压缩信息的一部分发送给第二通信设备,就可以使第二通信设备获取第二报文头。不但可以简化编码过程,同时索引号等信息占用的比特位较小,可以提高压缩率。
结合第一方面或第一方面的上述可能的实现方式,在第一方面的第六种可能的实现方式中,该第一通信设备通过将该窗口中的第二报文头替换为该第一报文头,更新该窗口;该第一通信设备根据该长度对应的报文头作为压缩上下文的频率,确定该第一报文头对应的索引号在索引表中的位置。
两个报文头的压缩时间越接近,关联性越高,及时更新窗口有利于提高后续报文头的压缩率。根据某一个长度的报文头作为压缩上下文的使用率,确定该长度的报文头对应的索引号在索引表中的位置,可以使第一通信设备可以快速获取使用频率高的报文头,从而提高第一通信设备获取压缩上下文的效率。
结合第一方面或第一方面的上述可能的实现方式,在第一方面的第七种可能的实现方式中,该压缩方法还包括:该第一通信设备获取该第一报文头的扩展字段,该扩展字段包括该第一报文头中除长度字段以外的至少一种字段;该第一通信设备根据该第一报文头的长度,从窗口中获取与该第一报文头的长度相同的第二报文头,包括:该第一通信设备根据该第一报文头的长度和该扩展字段,从窗口中获取与该第一报文头长度相同且包括的扩展字段与该第一报文头的扩展字段相同的第二报文头。
该第一通信设备在获取第二报文头时,根据第一报文头的长度和第一报文头的扩展字段获取的第二报文头,与第一报文头的匹配度更高,从而可以进一步提高第一报文头的压缩率。
第二方面,提供一种解压方法,该解压方法包括:第二通信设备接收第一通信设备发送的第一报文头的压缩信息;该第二通信设备根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头;该第二通信设备根据该压缩信息和该第二报文头,获取该第一报文头。
结合第二方面,在第二方面的第一种可能实现方式中,该第二通信设备存储有该第二报文头的第二差异数据信息,该第二差异数据信息用于指示该第二报文头的每个字符和该第二报文头的压缩上下文相同位置处的每个字符是否相同;该压缩信息包括二次去重标识和按序排列的第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该二次去重标识用于指示第一报文头的第一差异数据信息和该第二差异数据信息相同;该第二通信设备根据该压缩信息和该第二报文头,获取该第一报文头,包括:该第二通信设备根据该二次去重标识获取该第二差异数据信息,该第二通信设备根据该第二差异数据信息、该差异字符和该第二报文头,获取该第一报文头。
结合第二方面或第二方面的上述可能的实现方式,在第二方面的第二种可能的实现方式中,该第二差异数据信息包括按序排列的第一数量信息和第二数量信息,该第一数量信息用于指示由第二报文头和该压缩上下文之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二数量信息用于指示由该第二报文头和该压缩上下文之间位置相同且内容不同的差异字符组成的差异区域包括的差异字符的数量。
结合第二方面或第二方面的上述可能的实现方式,在第二方面的第三种可能的实现方式中,该压缩信息包括按序排列的长度编码和该第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二通信设备根据该压缩信息和该第二报文头,获取该第一报文头,包括:该第二通信设备根据该长度编码、该差异字符和该第二报文头,获取该第一报文头。
结合第二方面或第二方面的上述可能的实现方式,在第二方面的第四种可能的实现方式中,该解压方法还包括:该第二通信设备根据该压缩信息中该长度编码和该差异字符的排序,获取该第一报文头的第一差异数据信息;该第二通信设备存储该第一差异数据信息,以用于后续待压缩报文头的解压。
该第二通信设备可以将该第一差异数据信息进行存储,以便于该第二通信设备对后续报文头进行解压,可以缩短解压时延。
结合第二方面或第二方面的上述可能的实现方式,在第二方面的第五种可能的实现方式中,该压缩信息包括用于指示该第一报文头长度的指示信息,该第二通信设备根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第二通信设备根据该指示信息,从该窗口中获取该第二报文头;或该第二通信设备存储有查找表,该查找表包括该第二报文头对应的索引号和该索引号对应的索引地址;该压缩信息包括该第二报文头对应的索引号,该第二通信设备根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第二通信设备根据该索引号,从该查找表中获取该索引号对应的索引地址,该第二通信设备根据该索引地址,从该窗口中获取该第二报文头;或该压缩信息包括该索引地址,该第二通信设备根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第二通信设备根据该索引地址,从该窗口中获取该第二报文头。
压缩信息可以包括用于获取第二报文头的多种信息,以便于第二通信设备根据该压缩信息获取第二报文头,从而能提高第二通信设备获取第二报文头的效率。
结合第二方面或第二方面的上述可能的实现方式,在第二方面的第六种可能的实现方式中,该解压方法还包括:该第二通信设备通过将该窗口中的第二报文头替换为该第一报文头,更新该窗口;该第二通信设备根据该长度对应的报文头作为压缩上下文的频率,确定该第一报文头对应的索引号在索引表中的位置。
结合第二方面或第二方面的上述可能的实现方式,在第二方面的第七种可能的实现方式中,该第二通信设备从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第二通信设备从窗口中获取与该第一报文头长度相同且包括的扩展字段与该第一报文头的扩展字段相同的第二报文头。
第三方面,提供一种压缩装置,用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,该压缩装置包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的模块和/或单元。
第四方面,提供一种解压装置,用于执行第二方面或第二方面的任意可能的实现方式中的方法。具体地,该压缩装置包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的模块和/或单元。
第五方面,提供一种压缩设备,该压缩设备包括:发送器、存储器、处理器和总线系统。其中,发送器、存储器和处理器通过总线系统相连,发送器用于发送压缩信息,存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第六方面,提供一种解压设备,该解压设备包括:接收器、存储器、处理器和总线系统。其中,接收器、存储器和处理器通过总线系统相连,接收器用于接收压缩信息,存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
第七方面,提供了一种计算机存储介质,用于存储计算机程序,该计算机程序包括用于获取第一方面或第一方面的任意可能的实现方式中的方法的指令。
第八方面,提供了一种计算机存储介质,用于存储计算机程序,该计算机程序包括用于获取第二方面或第二方面的任意可能的实现方式中的方法的指令。
基于上述技术方案,本发明实施例的压缩方法和压缩装置可以简化压缩过程,缩短压缩时延;相应的本发明实施例的解压方法和解压装置可以简化解压过程。
附图说明
图1是根据本发明实施例的压缩方法的示意性流程图。
图2是根据本发明实施例的压缩方法的另一示意性流程图。
图3是根据本发明实施例的第一报文头和第二报文头的结构示意图。
图4是根据本发明实施例的第二报文头和第二报文头的压缩上下文的结构示意图。
图5是根据本发明另一实施例的第二报文头和第二报文头的压缩上下文的结构示意图。
图6是根据本发明实施例的解压方法的示意性流程图
图7是根据本发明实施例的压缩装置的示意性框图。
图8是根据本发明实施例的解压装置的示意性框图。
图9是根据本发明实施例的压缩设备的示意性框图。
图10是根据本发明实施例的解压设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据信息的各种计算机可读介质执行。部件可例如根据具有一个或多数量据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
另外,本发明的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘 (Compact Disk,简称“CD”)、数字通用盘(Digital VersatileDisk,简称“DVD”) 等),智能卡和闪存器件(例如,可擦写可编程只读存储器(ErasableProgrammable Read-Only Memory,简称“EPROM”)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/ 或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
应理解,本发明的技术方案,可以应用于各种通信系统,例如:GSM,码分多址(CDMA,Code Division Multiple Access)系统,宽带码分多址 (WCDMA,Wideband CodeDivision Multiple Access Wireless),通用分组无线业务(GPRS,General Packet RadioService),长期演进(LTE,Long Term Evolution)等。
还应理解,本发明结合通信设备描述了各个实施例。其中,该通信设备可以是用于发射或接收信号的各种设备。例如该通信设备可以是终端设备,该终端设备也可以称为用户设备(User Equipment,简称“UE”)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。接入终端可以是蜂窝电话、无绳电话、会话启动协议(Session Initiation Protocol,简称“SIP”)电话、无线本地环路(Wireless Local Loop,简称“WLL”)站、个人数字处理(PersonalDigital Assistant,简称“PDA”)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备以及未来5G 网络中的终端设备。
该通信设备还可以是网络侧设备等用于与移动设备通信的设备,网络侧设备可以是全球移动通讯(Global System of Mobile communication,简称“GSM”)或码分多址(Code Division Multiple Access,简称“CDMA”)中的基站(Base Transceiver Station,简称“BTS”),也可以是宽带码分多址 (Wideband Code Division Multiple Access,简称“WCDMA”)中的基站 (NodeB,简称“NB”),还可以是LTE中的eNB或演进型基站(EvolutionalNode B,简称“eNodeB”),或者中继站或接入点,或者车载设备、可穿戴设备以及未来5G网络中的网络侧设备。该终端设备还可以是路由器等设备。
图1是根据本发明实施例的方法100的示意性流程图。如图1所示,该方法100包括:
S110、第一通信设备确定第一报文头的长度;
具体而言,第一通信设备可以通过多种方式确定第一报文头的长度。例如,该第一通信设备可以根据相应的协议获取该第一报文头的长度字段,进而根据该长度字段获取该第一报文头的长度。例如,对于网络之间互连的协议(Internet Protocol,简称为“IP”)报文头而言,长度字段位于IP报文头4-7bit 位置;该第一通信设备可以根据协议获取该IP报文头4-7bit的长度字段,从而获取该第一报文头的长度。又例如,该第一通信设备在获取到第一报文头的压缩指示时,可以获取协议调用的参数,该参数中可以包括用于指示该第一报文头长度的长度指示信息,从而该第一通信设备可以获知该第一报文头的长度。
S120、该第一通信设备根据该第一报文头的长度,从窗口中获取与该第一报文头长度相同的第二报文头;
具体而言,长度相同的两个报文头相似性较高。因此,该第一通信设备可以从窗口中获取与第一报文头长度相同的第二报文头作为该第一报文头的压缩上下文。例如,该第一报文头的长度为16个字符,该第一通信设备可以从窗口中获取长度也为16个字符的第二报文头。
应理解,该压缩上下文可以是指对报文头进行压缩时的压缩对比信息 (也可以称之为参考信息)。该窗口可以认为是该压缩上下文的集合,换句话说,该窗口中可以存储至少一个压缩上下文。这些概念都为本领域技术人员所公知的技术,这里不再赘述。
可选地,作为示例而非限定的,该第一通信设备根据该第一报文头的长度,从窗口中获取与该第一报文头长度相同的第二报文头,可以包括:该第一通信设备根据该第一报文头的长度,获取与该第一报文头长度相同的第二报文头的索引号;该第一通信设备根据该索引号,从该查找表中获取该索引号对应的索引地址;该第一通信设备根据该索引地址,从窗口中获取该第二报文头,该压缩信息包括该索引号、该索引地址或用于指示该第一报文头长度的指示信息。
具体而言,该第一通信设备可以存储有索引表,该索引表包括索引号和索引号对应的索引地址。其中,每个索引号对应一个长度的报文头。该第一通信设备确定该第一报文头的长度后,可以获取与第一报文头长度相同的第二报文头对应的索引号。该第一通信设备可以根据该第二报文头对应的索引号,从该查找表中获取第二报文头对应的索引号的索引地址;从而该第一通信设备可以根据该索引地址,从窗口中获取该第二报文头。例如,该索引表可以如表1所示。
表1
如表1所示,该索引表可以包括索引号和索引地址两部分,每个索引号对应一个长度的报文头。假设,该第一报文头的长度为16个字符,长度为 17个字符的报文头A对应的索引号为Len0,长度为18个字符的报文头B 对应的索引号为Len1,长度为16个字符的报文头C对应的索引号为Len2 等。第一通信设备确定该第一报文头的长度后,可以确定该Len2对应的报文头为第二报文头,进而可以从查找表中获取Len2对应的索引地址Dis2,并根据该索引地址从窗口中获取该第二报文头。该第一通信设备通过该索引表从窗口中获取该第二报文头可以缩短获取第二报文头的时间,从而缩短压缩时延。
需要说明的是,以上列举的索引表仅为示例性说明,不应对本发明构成任何限定。还需要说明的是,以上列举的索引号仅为示例性说明。例如,长度为17个字符的报文头A对应的索引号可以为“Len0”也可以为“0”还可以为其他类型的标识,本发明在此不做限定。
还需要说明的是,以上列举的第一通信设备通过查找索引表,从窗口中获取第二报文头仅为示例性说明,不应对本发明构成任何限定,本发明也不应限于此。第一通信设备还可以通过其他方式获取该第二报文头,例如,该第一通信设备还可以通过遍历窗口的方法获取该第二报文头。
S130、该第一通信设备通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的压缩信息。
具体而言,该第一通信设备获取该第二报文头后,可以将第一报文头和第二报文头进行比较,从而根据该第一报文头和第二报文头之间的位置相同且内容相同的相同字符和位置相同且内容不同的差异字符对该第一报文头进行压缩,从而获取该第一报文头的压缩信息。换句话说,该第一通信设备可以将第一报文头和第二报文头进行逐字符对位比较,进而获取第一报文头的压缩信息。
应理解,在本发明实施例中该第一通信设备可以将第一报文头的第i个字符和第二报文头相同位置的第i个字符进行比较,从而根据比较结果对该第一报文头进行压缩,以用于获取该第一报文头的压缩信息。其中i=1、…、 N。
S140、该第一通信设备向第二通信设备发送该压缩信息。
具体而言,该第一通信设备获取该第一报文头的压缩信息后,可以向第二通信设备发送该压缩信息,因此,本发明实施例提供的压缩方法仅需确定该第一报文头的长度,进而将与第一报文头长度相同的第二报文头作为该第一报文头的压缩上下文,对该第一报文头进行压缩。该压缩方法100无需对该第一报文头的所有字段进行解析,可以简化压缩过程,缩短压缩时延。进一步地,由于第一报文头和第二报文头的长度相同,可以实现全字段对齐,从而进行逐字符对位比较的压缩。相较于现有技术中的字段进行压缩,该压缩方法100可以实现字符压缩,能够提高压缩效率。
需要说明的是,在本发明实施例提供的压缩方法100中,该第一通信设备通过第一报文头和第二报文头的比较对第一报文头进行字符压缩,是本发明一种优选的实施方式。进一步地,该第一通信设备获取该第二报文头后,还可以通过其他方式对该第一报文头进行压缩(例如比特压缩),本发明在此不做限定。
以上,结合图1详细说明了根据本发明实施例的方法100。在该方法100 中,该第一通信设备可以从该窗口中获取该第二报文头。事实上,该第一通信设备从窗口中获取该第二报文头之前,该第一通信设备需要将该第二报文头存储于该窗口中。以下结合图2详细说明该第一通信设备存储该第二报文的过程。
可选地,在该第一通信设备从窗口中获取第二报文头之前,该方法100 还包括:
S101、该第一通信设备确定该第二报文头的长度;
S102、该第一通信设备根据该第二报文头的长度,从初始窗口中查找与该第二报文头长度相同的该第二报文头的压缩上下文;
若查找到该第二报文头的压缩上下文,执行
S103、该第一通信设备通过将该压缩上下文替换为该第二报文头,将该初始窗口更新为该窗口;
若未查找到该第二报文头的压缩上下文,执行
S104、该第一通信设备通过存储该第二报文头,将该初始窗口更新为该窗口。
具体而言,该第一通信设备可以通过存储该第二报文头获取该窗口。通常情况下,第一通信设备需要对该第二报文头进行压缩处理,才会对获得包括该第二报文头的窗口。例如,第一通信设备在压缩第二报文头时,可以首先确定该第二报文头的长度,然后根据该第二报文头的长度从初始窗口中查找与该第二报文头长度相同的第二报文头的压缩上下文。为了简洁,可以假设该第二报文头的压缩上下文为第三报文头。该第一通信设备获取该存储第二报文头的窗口可以至少包括以下两种情况:
情况一、若该第一通信设备查找到该第三报文头,该第一通信设备可以根据该第三报文头对该第一报文头进行压缩,并通过将该第三报文头替换为该第二报文头,将该初始窗口更新为该窗口。
情况二、若该第一通信设备未查找到该第三报文头,该第一通信设备通过存储该第二报文头,将该初始窗口更新为该窗口。
不论初始窗口中是否包括第三报文头(即第二报文头的压缩上下文),该第一通信设备都可以通过存储第二报文头的方式,将该初始窗口更新为该窗口,从而使得该第一通信设备在压缩第一报文时可以从该窗口中获取与该第一报文头长度相同的第二报文头。
进一步地,若该第一通信设备在初始窗口中未查找到与第二报文头长度相同的第二报文头的压缩上下文,该第一通信设备可以创建该第二报文头在查找表中的索引号以及索引地址等信息,并在窗口中为该第二报文头开辟存储空间。需要说明的是,为了防止窗口中存储的报文头被该第二报文头覆盖,可以根据窗口中每种长度的报文头的使用频率,调整窗口中存储的报文头的位置,也可以调整第二报文头存储在窗口中的位置。例如,可以通过调整窗口中压缩上下文的位置,将使用频率较低的压缩上下文覆盖,也可以通过设置第二报文头存储在窗口中的位置,将使用频率较低的压缩上下文覆盖。
应理解,通常情况下,窗口和初始窗口包括的报文为经过压缩而存储的报文。换句话说,若该窗口包括第二报文头,该第二报文头很可能也经历过压缩过程。因此,该第一通信设备获取该窗口的过程也可能是该第二报文头的压缩过程。
上文结合了图2详细描述了如何获取该包括第二报文头的窗口,以下,结合图3和图4详细说明根据本发明实施例的方法100中该第一通信设备根据该第二报文头对第二报文头进行压缩的过程。
可选地,在本发明实施例提供的压缩方法100中,第一通信设备将第一报文头和第二报文头进行比较后,可以采用不同的方式获得压缩信息,进而方式压缩方式不同,获取的压缩信息也可以不相同。该第一通信设备通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的压缩信息,可以至少包括以下三种实现方式:
方式一、该第一通信设备将第一报文头和第二报文头进行比较,输出的压缩信息包括按序排列的长度编码和第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量。
具体而言,该第一通信设备将第一报文头和第二报文头比较,输出压缩信息。例如,假设该第一报文头和第二报文头的示意图如图3所示,该第一报文头的前四个字符和该第二报文头的前四个字符相同,该前四个相同字符可以组成一个相同区域,从而该长度编码中的第一个长度编码可以用于指示第一个相同区域包括四个相同字符。该第一报文头的第五、六和十一个字符与第二报文头相同位置上的字符不相同,因此,该“g”、“e”和“f”为该第一报文头的三个差异字符。该第一通信设备获取的该第一报文头的压缩信息可以包括表2所示的编码信息。
表2
1+vlen(4) |
0+“g” |
0+“e” |
1+vlen(4) |
0+“f” |
如表3所示,该第一个“1+vlen(4)”可以用于指示第一个相同区域包括四个相同字符。其中“1”为一个比特的标记位,可以用于指示相同区域,该 vlen(4)可以包括一个长度编码,该长度编码可以用于指示该第一个相同区域包括四个相同字符。该“0+g”用于指示差异字符为“g”。其中,“0”为一个比特的标记位,可以用于指示差异字符。同理,该第一通信设备获取的压缩信息可以包括按序排列的长度编码和差异字符。
需要说明的是,作为一个比特的标记位,“1”和“0”所指示的内容可以根据协议设定。例如,可以将“1”设定为指示相同区域,或者将“1”设定为指示差异字符。还需要说明的是,若该第一报文头和该第二报文头有N 个相同区域,根据相同区域在第一报文头中的位置,由于第一报文头和第二报文头的长度固定且相同,输出的压缩信息中长度编码的数量可以是N个也可以是N-1个,本发明不在此限定。
还需要说明的是,该压缩信息包括的差异字符为第一报文头包括的与第二报文头位置相同且内容不同的所有差异字符。
还需要说明的是,该压缩信息中长度编码和差异字符的排序跟第一报文头相同区域的位置和差异字符的位置有关。
方式二、该第一通信设备可以通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取第一报文头的第一差异数据信息。其中,该第一差异数据信息可以用于指示该第一报文头的每个字符和该第二报文头相同位置处的每个字符是否相同。换句话说,该第一差异数据信息可以用于指示该第一报文头的第i个字符和该第二报文头相同位置处的第 i个字符是否相同,i=1、…、N。
进一步地,该第一差异数据信息可以包括按序排列的第一数量信息和第二数量信息,该第一数量信息用于指示由该第一报文头和该第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二数量信息用于指示由第一报文头和第二报文头之间位置相同且内容不同的差异字符组成的差异区域包括的差异字符的数量。例如,假设第一报文头和第二报文头如图3所示,该第一差异数据信息可以如表3所示。
表3
相同区域 | 差异区域 |
4 | 2 |
4 | 1 |
如表3所示,该第一报文头中前四个字符为相同字符组成的一个相同区域(第一个相同区域),该第一个相同区域包括四个相同字符,该第一报文头中第五个和第六个字符为差异字符组成的一个差异区域(第二个差异区域),该第二个差异区域包括两个差异字符。同理,该第一报文头中第七至十个字符为相同字符组成的第二个相同区域,该第一报文头的第十一个字符为第一差异字符组成的第二个差异区域。由于该第一报文头一共有十六个字符,从该第一差异数据信息中还可以获知该第一报文头第十二至十六字符也为第三个相同区域。为了简化该第一差异数据信息,可以省略该最后一个相同区域。
可选地,作为示例而非限定地,该第一差异数据信息还可以用于指示该第一报文头和该第二报文头位置相同且内容相同的每个相同字符位置,或该第一差异数据信息可以用于指示该第一报文头和该第二报文头之间位置相同且内容不同的每个差异字符的位置。
可选地,作为示例而非限定地,该第一差异数据信息可以用于指示第一报文头和第二报文头之间相同区域的位置以及相同区域包括的相同字符的数量,或该第一差异数据信息可以用于指示该第二报文头和第二报文头之间差异区域的位置以及差异区域包括的差异字符的数量。
该第一通信设备可以根据该第一差异数据信息,获取压缩信息,其中,该压缩信息可以包括按序排列的长度编码和第一报文头包括的与该第二报文头位置相同且内容不同的差异字符。
需要说明的是,方式二和方式一的差别在于,方式二需要获取该第一报文头的第一差异数据信息,进而根据该第一差异数据信息获取该压缩信息,而方式一直接将第一报文头和第二报文头比较,获取该压缩信息。
还需要说明的是,在方式二中的长度编码以及差异字符等可以参见方式一中的相关描述,此处不再赘述。还需要说明的是,方式二中长度编码和差异字符的排序还可以和第一差异数据信息相关。
方式三、该第一通信设备存储有该第二报文头的第二差异数据信息。其中,报文头的差异数据信息可以用于指示该报文头的每个字符和该报文头的压缩上下文相同位置处的每个字符是否相同。例如,该第二差异数据信息用于指示第二报文头的每个字符和第二报文头的压缩上下文相同位置处的每个字符是否相同;该第一差异数据信息用于指示第一报文头的每个字符和第一报文头的压缩上下文(在本发明实施例中,该第一报文头的压缩上下文为第二报文头)相同位置处的每个字符是否相同。其中,该第二差异数据信息的相关描述可以参见第一差异数据信息的相关描述,本发明不在此赘述。
该第一通信设备通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的第一差异数据信息后,将该第一差异数据信息和该第二差异数据信息进行比较,确定该第一差异数据信息和第二差异数据信息是否相同。
若该第一差异数据信息和该第二差异数据信息相同,该第一通信设备输出的压缩信息包括二次去重标识和按序排列的第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该二次去重标识用于指示该第一差异数据信息和该第二差异数据信息相同。例如,假设第一报文头和第二报文头的结构图如图3所示,该第一差异数据信息可以如表2所示。该第二报文头和该第二报文头的压缩上下文的结构图如图4所示,该第二差异数据信息也可以如表2所示。此时,该第一差异数据信息和该第二差异数据信息相同,该第一通信设备获取的压缩信息可以包括表4所示的编码信息。
表4
其中,表4中第一行的“1”为二次去重标识,该第一通信设备可以将第一差异数据信息和第二差异数据信息进行比较,如果该第一差异数据信息和第二差异数据信息相同,相对于方式一和方式二而言,该第一通信设备获取的压缩信息不包括长度编码,可以进一步提高第一报文头的压缩率。
需要说明的是,该第一通信设备可以根据需要对该第一差异数据信息进行存储,以便于后续报文头的压缩。
还需要说明的是,以上列举的二次去重标识仅为示例性说明,不应对本发明构成任何限定。例如,该二次去重标识还可以是“0”等其他标识。
若该第一差异数据信息和该第二差异数据信息不相同,该第一通信设备输出的压缩信息可以包括去重标识、按序排列的长度编码和第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,去重标识用于指示该第一差异数据信息和该第二差异数据信息不相同。
例如,假设第一报文头和第二报文头如图3所示,该第一差异数据信息可以如表2所示。该第二报文头和该第二报文头的压缩上下文如图5所示,该第二差异数据信息可以如表5所示。
表5
相同区域 | 差异区域 |
3 | 3 |
4 | 1 |
此时,该第一差异数据信息和该第二差异数据信息不相同,该第一通信设备获取的压缩信息可以包括表6所示的编码信息。
表6
其中,表6中第一行的“0”为去重标识,该第一通信设备可以将第一差异数据信息和第二差异数据信息进行比较,如果该第一差异数据信息和第二差异数据信息不相同,该第一通信设备输出的压缩信息包括该去重标识、按序排列的长度编码和按序排列的差异字符。
可选地,作为示例而非限定地,该第一通信设备获取压缩信息后,会向第二通信设备发送该压缩信息,为了保证该第二通信设备接收到该压缩信息后可以快速获取到该压缩信息对应的压缩上下文(即获取第二报文头)该压缩信息还可以包括:上文列举的索引号、索引地址或用于指示第一报文头长度的指示信息,以便于该第二通信设备接收到该索引号、索引地址和指示信息后可以快速获取该第二报文头。
第一通信设备在编码压缩信息时,仅需在压缩信息中添加索引号、索引地址或指示信息等,就可以使第二通信设备获取第二报文头,简化了编码过程。进一步地,相较于字典压缩法中长度距离对的编码方法,该压缩方法100 可以仅在压缩信息中添加第二报文头的索引号等标识即可,无需复杂的编码过程,不但可以缩短压缩时延还可以提高压缩率。
可选地,作为示例而非限定地,该第一通信设备从窗口中获取该第二报文头后,可以通过将该窗口中的第二报文头替换为该第一报文头,更新该窗口;该第一通信设备根据该长度对应的报文头作为压缩上下文的频率,确定该第一报文头的索引号第一报文头对应的索引号第一报文头对应的索引号在索引表中的位置。可选地,该第一通信设备可以将该第一报文头的索引号第一报文头对应的索引号置于索引表的首位。
两个报文头的压缩时间越接近,两个报文头的关联性越高。因此,及时更新窗口,有利于提高后续报文头的压缩率。同时,可以将第一报文头的索引号第一报文头对应的索引号第一报文头对应的索引号置于索引表的首位,如果后续压缩报文的长度与该第一报文头的长度相同,该第一通信设备可以快速获取该第一报文头的索引号第一报文头对应的索引号第一报文头对应的索引号,以便于缩短压缩时延。
例如,当前该第二报文头对应的索引号为表1所示的Len2,当该第一通信设备获取该第二报文头后,可以通过存储第一报文头对该第二报文头进行覆盖,此时原本属于第二报文头对应的索引号Len2此时可以对应第一报文头(由于第一报文头和第二报文头的长度相同),该第一通信设备可以将Len2更新到索引表的顶部位置,如表7所示。
表7
索引号 | 索引地址 |
Len2 | Dis2 |
Len0 | Dis0 |
Len1 | Dis1 |
Len3 | Dis3 |
Len4 | Dis4 |
… | … |
如表7所示,由于压缩时间越接近,两个报文头的关联度越高。由于第一报文头的关联度与后续待压缩报文头的关联度较高,该第一通信设备可以将该第一报文头对应的索引号更新至索引表的顶部,如果后续待压缩报文头的长度与第一报文头的长度相同,该第一通信设备可以快速获取该第一报文头的索引号,从而快速获取该第一报文头。
上文结合图1至图5描述了,该第一通信设备可以基于第一报文头的长度从窗口中获取与第一报文头长度相同的第二报文头作为该第一报文头的压缩上下文。可选地,为了进一步地提高压缩率,该压缩方法100还可以包括:该第一通信设备获取该第一报文头的扩展字段,该扩展字段包括该第一报文头中除长度字段以外的至少一种字段;该第一通信设备根据该第一报文头的长度,从窗口中获取与该第一报文头的长度相同的第二报文头,包括:该第一通信设备根据该第一报文头的长度和该扩展字段,从窗口中获取与该第一报文头长度相同且包括的扩展字段与该第一报文头的扩展字段相同的第二报文头。
具体而言,为了进一步提高第一报文头和第二报文头的匹配度(即增加第一报文头和第二报文头相同字符的数量),该第一通信设备在获取第二报文时不但需要获取该第一报文头的长度,还需要获取该第一报文头的扩展字段,从而基于该长度和该扩展字段获取的第二报文头与第一报文头的相似性更高,从而可以提高第一报文头的压缩率。
此时,若该第一通信设备存储有索引表,假设该扩展字段为应用层端口号,该索引表可以如表8所示。
表8
第一索引号 | 第二索引号 | 索引地址 |
Len0 | Num0 | Dis0 |
Len0 | Num1 | Dis1 |
Len0 | Num2 | Dis2 |
Len1 | Num3 | Dis3 |
Len1 | Num4 | Dis4 |
Len1 | Num5 | Dis5 |
Len2 | Num6 | Dis6 |
Len2 | Num7 | Dis7 |
Len2 | Num8 | Dis8 |
如表8所示,该索引表可以包括索引号和索引地址两部分。其中,该索引号可以包括第一索引号和第二索引号。每个第一索引号对应某个长度的报文头,每个第二索引号对应某个应用层端口号的报文头。以该第一报文头的长度为16个字符,该第一报文头的应用层端口号为TFTP69UDP为例,假设,索引号Len0对应长度为17个字符的报文头,Len2对应长度为16个字符的报文头。Num3对应的应用层端口号为HTTP 80tcp的报文头,Num4对应的应用层端口号为TFTP69UDP的报文头,Num5对应的应用层端口号为 ONS53的报文头。该第一通信设备通过查找索引表可以获取索引号为Len1 和Num4对应的索引地址Dis4,以用于该第一通信设备根据该Dis4。
需要说明的是,该第一通信设备根据第一报文的长度和该第一报文头的扩展字段获取第二报文头之后进行压缩的过程与上述第一通信设备根据第一报文头的长度获取该第二报文头的压缩过程类似,不在此赘述。
还需要说明的是,以上列举的索引表、索引号、第一差异数据信息、第二差异数据信息、去重标识和二次去重标识仅为示例性说明,不应对本发明构成任何限定。
上文结合图1至图5描述了一种压缩方法,下面结合图6描述与该压缩方法对应的解压方法200。
图6是根据本发明实施例的解压方法200的示意性流程图。如图6 所示,该解压方法200包括:
S210、第二通信设备接收第一通信设备发送的第一报文头的压缩信息;
S220、该第二通信设备根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头;
S230、该第二通信设备根据该压缩信息和该第二报文头,获取该第一报文头。
具体而言,该第二通信设备接收该压缩信息后,可以根据该压缩信息获取与第一报文头长度相同的第二报文头。进而根据该压缩信息以及该第二报文头获取该第一报文。其中,该第一报文头获取该第二报文头的方法由多种。
例如,该压缩信息可以包括用于指示该第一报文头长度的指示信息,该第二通信设备根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第二通信设备根据该指示信息,从该窗口中获取该第二报文头。
具体而言,该压缩信息可以包括指示信息,该第二通信设备获取该指示信息后可以从窗口中获取与该第一报文头长度相同的第二报文头。具体的获取方法可以参见上文第一通信设备获取第二报文头的方法,此处不再赘述。
又例如,该第二通信设备存储有查找表,该查找表包括该第二报文头对应的索引号和该索引号对应的索引地址;该压缩信息包括该第二报文头对应的索引号,该第二通信设备根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第二通信设备根据该索引号,从该查找表中获取该索引号对应的索引地址,该第二通信设备根据该索引地址,从该窗口中获取该第二报文头。
具体而言,该压缩信息包括第二报文头对应的索引号,该第二通信设备可以根据该索引号获取相应的索引地址,从而根据该索引地址,从窗口中获取该第二报文头。
再例如,该压缩信息包括该索引地址,该第二通信设备根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第二通信设备根据该索引地址,从该窗口中获取该第二报文头
具体而言,该压缩信息包括索引地址,该第二通信设备接收到该压缩信息后,可以根据该索引地址直接获取该第二报文头。
需要说明的是,以上列举的第二通信设备获取该第二报文头的方法仅为示例性说明,任何获取与待压缩报文头长度相同的压缩上下文的解压方法均落入本发明的保护范围。
因此,本发明实施例的解压方法,获取与第一报文头长度相同的第二报文头对该第一报文头的压缩信息进行解压,能够简化解压过程,缩短解压时延。进一步地,该压缩信息可以包括索引号、指示信息以及索引地址等用于第二通信设备获取该第二报文头的信息,不但可以简化编码过程,还可以提高压缩率。
基于第一通信设备不同的压缩方式,该第二通信设备接收的压缩信息的有多种。
例如,在本发明实施例中,作为示例而非限定的,该压缩信息包括二次去重标识和按序排列的第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该二次去重标识用于指示第一报文头的第一差异数据信息和第二报文头的第二差异数据信息相同。该第二通信设备存储有该第二报文头的第二差异数据信息,该第二差异数据信息用于指示该第二报文头的每个字符和该第二报文头的压缩上下文相同位置处的每个字符是否相同。该第二通信设备根据该压缩信息和该第二报文头,获取该第一报文头,包括:该第二通信设备根据该二次去重标识,获取该第二差异数据信息,该第二通信设备根据该第二差异数据信息、该差异字符和该第二报文头,获取该第一报文头。
具体而言,该压缩信息中包括二次去重标识,该第二通信设备可以根据该二次去重标识获知该第一差异数据信息和该第二差异数据信息相同,因此该第二通信设备可以获取该第二差异数据信息,从而该第二通信设备可以根据该第二差异数据信息和第二报文头对该压缩信息进行解压。可选地,该第二差异数据信息包括按序排列的第一数量信息和第二数量信息,该第一数量信息用于指示由第二报文头和该压缩上下文之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二数量信息用于指示由该差异字符组成的差异区域包括的差异字符的数量。例如,假设该第二差异数据信息如表2所示,该第二通信设备获取该压缩信息以及第二差异数据信息后,可以获得该第一报文头。
又例如,在本发明实施例中,作为示例而非限定的,该压缩信息包括按序排列的长度编码和该第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二通信设备根据该压缩信息和该第二报文头,获取该第一报文头,包括:该第二通信设备根据该长度编码、该差异字符和该第二报文头,获取该第一报文头。可选地,该压缩信息还可以包括去重标识,该去重标识用于指示该第一报文头的第一差异数据信息和第二报文头的差异数据信息不同。
具体而言,该第二通信设备接收到该压缩信息后,可以根据压缩信息中该长度编码和该差异字符的排列顺序或位置,获取该第一报文头。进一步地,该第二通信设备还可以根据该长度编码和该差异字符的排列顺序或位置获取该第一报文头的第一差异数据信息;该第二通信设备存储该第一差异数据信息。该第二通信设备可以存储第一差异数据信息,以便于在后续报文头的压缩过程中可以是该第一差异数据信息。该第一通信设备通过压缩第一报文头可以获取该第一报文头的第一差异数据信息,进行存储。相应的该第二报文头可以通过解压该第一报文头的压缩信息,获取该第一报文头的第一差异数据信息,进行存储。
可选地,该解压方法还包括:该第二通信设备通过将该窗口中的第二报文头替换为该第一报文头,更新该窗口;该第二通信设备根据该长度对应的报文头作为压缩上下文的频率,确定该第一报文头对应的索引号在索引表中的位置。
具体而言,由于两个报文头的压缩时间越接近,两个报文头的相似度越高。因此,该第一通信设备在压缩第一报文头的时候会更新窗口,与之相应的,该第二通信设备在解压第一报文头的压缩信息时,也需要通过存储该第一报文头更新该窗口,以便于对后续报文头进行解压。
应理解,本发明实施例中,该第一通信设备存储的窗口和第二通信设备存储的窗口具有一致性。换句话说,第一通信设备存储的窗口与第二通信设备存储的窗口相同;第一通信设备存储的初始窗口与第二通信设备存储的初始窗口相同。
在本发明实施例中,作为示例而非限定的,该第二通信设备从窗口中获取与该第一报文头长度相同的第二报文头,包括:该第二通信设备从窗口中获取与该第一报文头长度相同且包括的扩展字段与该第一报文头的扩展字段相同的第二报文头。
具体而言,第二通信设备获取的第二报文头跟第一通信设备获取的第二报文头具有一致性,第一报文头基于何种条件获取该第二报文头,相应的该第二通信设备也会获取相同条件的第二报文头。
因此,本发明实施例提供的压缩方法可以缩短压缩时延。与之相应的,本发明实施例提供的解压方法仅需获取第二报文头可以缩短解压时延,简化解压过程。
应理解,上述解压方法200和上述压缩方法100可以是相对应的,因此上述索引表、索引号、第一差异数据信息、第二差异数据信息、二次去重等可以参见图1至图5所示的实施例中的相关描述,此处不再赘述。
以上结合图1至图6描述了压缩方法和解压方法,下面结合图7和图8 描述压缩装置和解压装置。
图7示出了根据本发明实施例的压缩装置的示意性框图。如图7所示,该压缩装置300包括:
确定模块310,用于确定第一报文头的长度;
获取模块320,用于根据该第一报文头的长度,从窗口中获取与该第一报文头长度相同的第二报文头;
该获取模块320还用于通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的压缩信息;
发送模块330,用于向通信设备发送该压缩信息。
因此,该压缩装置300无需对该第一报文头的所有字段进行解析,可以简化压缩过程,缩短压缩时延。进一步地,由于第一报文头和第二报文头的长度相同,可以实现全字段对齐,从而进行逐字符对位比较的压缩。相较于现有技术中的字段进行压缩,该压缩装置300可以实现字符压缩,能够提高压缩效率。
可选地,该获取模块320具体用于:
通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的第一差异数据信息,该第一差异数据信息用于指示该第一报文头的每个字符和该第二报文头相同位置处的每个字符是否相同;
根据该第一差异数据信息,获取该第一报文头的压缩信息。
可选地,该压缩装置300存储有该第二报文头的第二差异数据信息,该第二差异数据信息用于指示该第二报文头的每个字符和该第二报文头的压缩上下文相同位置处的每个字符是否相同,该获取模块320具体用于:确定该第一差异数据信息和该第二差异数据信息是否相同;
若该第一差异数据信息和该第二差异数据信息相同,获取该第一报文头的压缩信息,该压缩信息包括二次去重标识和按序排列的第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该二次去重标识用于指示该第一差异数据信息和该第二差异数据信息相同。
可选地,该第一差异数据信息包括按序排列的第一数量信息和第二数量信息,该第一数量信息用于指示由该第一报文头和该第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二数量信息用于指示由该第一报文头和该第二报文头之间位置相同且内容不同的差异字符组成的差异区域包括的该差异字符的数量。
可选地,该获取模块320获取的压缩信息包括按序排列的长度编码和第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量。
可选地,该获取模块320具体用于:根据该第一报文头的长度,获取与该第一报文头长度相同的第二报文头对应的索引号;根据该索引号,从该查找表中获取该索引号对应的索引地址;根据该索引地址,从窗口中获取该第二报文头,该压缩信息包括该索引号、该索引地址或用于指示该第一报文头长度的指示信息。
可选地,该压缩装置300还包括:更新模块,用于通过将该窗口中的第二报文头替换为该第一报文头,更新该窗口;该确定模块310还用于根据该长度对应的报文头作为压缩上下文的频率,确定该第一报文头对应的索引号在索引表中的位置。
可选地,该获取模块320还用于获取该第一报文头的扩展字段,该扩展字段包括该第一报文头中除长度字段以外的至少一种字段;
该获取模块320具体用于根据该第一报文头的长度和该扩展字段,从窗口中获取与该第一报文头长度相同且包括的扩展字段与该第一报文头的扩展字段相同的第二报文头。
因此,该压缩装置300无需解析第一报文头的所有字段,仅需获取该第一报文头的长度获取第二报文头可以简化压缩过程,缩短压缩时延。进一步,该压缩装置还可以基于该第一报文头的长度和扩展字段获取该第二报文头从而进一步提高第一报文的压缩率。并且该压缩装置300还可以对该第一报文头进行二次压缩,进一步提高压缩率。更进一步地,该第一通信设备在压缩时无需复杂的编码仅需将该索引号、索引地址或指示信息发送给第二通信设备就可以使第二通信设备获取该第二报文头,能够简化编码过程。
需要说明的是上述索引表、索引号、第一差异数据信息等可以参见图1 至图5所示的实施例中的相关描述,此处不再赘述。
还需要说明的是上述压缩装置可以对应于上述压缩方法或解压方法中的第一通信设备,该压缩装置中的通信设备可以对应于上述压缩方法或解压方法中的第二通信设备。
图8示出了本发明实施例的解压装置的示意性框图,如图8所示,该解压装置400包括:
接收模块410,用于接收通信设备发送的第一报文头的压缩信息;
获取模块420,用于根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头;
该获取模块420还用于根据该压缩信息和该第二报文头,获取该第一报文头。
因此,该解压装置400仅需根据压缩信息获取与第一报文头长度相同的第二报文头,从而根据该第二报文头对该压缩信息进行解压,可以缩短压缩时延。
可选地,该解压装置400存储有该第二报文头的第二差异数据信息,该第二差异数据信息用于指示该第二报文头的每个字符和该第二报文头的压缩上下文相同位置处的每个字符是否相同;该压缩信息包括二次去重标识和按序排列的第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该二次去重标识用于指示该第一差异数据信息和该第二差异数据信息相同;
该获取模块420还用于根据该二次去重标识,获取该第二差异数据信息;该获取模块420具体用于根据该第二差异数据信息、该差异字符和该第二报文头,获取该第一报文头。
可选地,该第二差异数据信息包括按序排列的第一数量信息和第二数量信息,该第一数量信息用于指示由第二报文头和该压缩上下文之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二数量信息用于指示由该第二报文头和该压缩上行文之间位置相同且内容不同的差异字符组成的差异区域包括的差异字符的数量。
可选地,该压缩信息包括按序排列的长度编码和该第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;
该获取模块420具体用于根据该长度编码、该差异字符和该第二报文头,获取该第一报文头。
可选地,该获取模块420还用于根据该压缩信息中该长度编码和该差异字符的排序,获取该第一报文头的第一差异数据信息;该解压装置400还包括存储模块,该存储模块用于存储该第一差异数据信息,以用于后续待压缩报文头的压缩。
可选地,该压缩信息包括用于指示该第一报文头长度的指示信息,该获取模块420具体用于根据该指示信息,从该窗口中获取该第二报文头;或
该解压装置400存储有查找表,该查找表包括该第二报文头对应的索引号和该索引号对应的索引地址;该压缩信息包括该第二报文头对应的索引号,该获取模块420具体用于根据该索引号,从该查找表中获取该索引号对应的索引地址,根据该索引地址,从该窗口中获取该第二报文头;或该压缩信息包括该索引地址,该获取模块420具体用于根据该索引地址,从该窗口中获取该第二报文头。
可选地,该解压装置400还包括:更新模块,该更新模块用于通过将该窗口中的第二报文头替换为该第一报文头,更新该窗口;确定模块,该确定模块用于根据该长度对应的报文头作为压缩上下文的频率,确定该第一报文头对应的索引号在索引表中的位置。
可选地,该获取模块420具体用于从窗口中获取与该第一报文头长度相同且包括的扩展字段与该第一报文头的扩展字段相同的第二报文头。
因此,上述压缩装置300可以缩短压缩时延,与之相应的该解压装置 300可以仅需获取一个第二报文头对该压缩信息进行解压可以缩短解压时延。
需要说明的是上述索引表、索引号、第一差异数据信息等可以参见图1 至图5所示的实施例中的相关描述,此处不再赘述。
还需要说明的是上述解压装置可以对应于上述压缩方法或解压方法中的第二通信设备,该解压装置中的通信设备可以对应于上述压缩方法或解压方法中的第一通信设备。
以上结合图7和图8描述了压缩装置和解压装置,以下结合图9和图 10描述压缩设备和解压设备。
图9示出了根据本发明实施例的压缩设备的示意性框图。如图9所示,该压缩设备500包括:
发送器510、存储器520、处理器530和总线系统540。其中,发送器 510、存储器520和处理器530通过总线系统540相连,发送器510用于发送压缩信息,存储器520用于存储指令,该处理器530用于执行该存储器520 存储的指令,该处理器530具体用于:
确定第一报文头的长度;根据该第一报文头的长度,从窗口中获取与该第一报文头长度相同的第二报文头;通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的压缩信息;向通信设备发送该压缩信息。
因此,该压缩设备无需对该第一报文头的所有字段进行解析,可以简化压缩过程,缩短压缩时延。进一步地,由于第一报文头和第二报文头的长度相同,可以实现全字段对齐,从而进行逐字符对位比较的压缩。相较于现有技术中的字段进行压缩,该压缩设备500可以实现字符压缩,能够提高压缩效率。
可选地,该处理器530具体用于:通过将该第一报文头的每个字符和该第二报文头相同位置处的每个字符进行比较,获取该第一报文头的第一差异数据信息,该第一差异数据信息用于指示该第一报文头的每个字符和该第二报文头相同位置处的每个字符是否相同;根据该第一差异数据信息,获取该第一报文头的压缩信息。
可选地,该压缩设备500存储有该第二报文头的第二差异数据信息,该第二差异数据信息用于指示该第二报文头的每个字符和该第二报文头的压缩上下文相同位置处的每个字符是否相同,该处理器530具体用于:确定该第一差异数据信息和该第二差异数据信息是否相同;
若该第一差异数据信息和该第二差异数据信息相同,获取该第一报文头的压缩信息,该压缩信息包括二次去重标识和按序排列的第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该二次去重标识用于指示该第一差异数据信息和该第二差异数据信息相同。
可选地,该第一差异数据信息包括按序排列的第一数量信息和第二数量信息,该第一数量信息用于指示由该第一报文头和该第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二数量信息用于指示由该第一报文头和该第二报文头之间位置相同且内容不同的差异字符组成的差异区域包括的该差异字符的数量。
可选地,该处理器530获取的压缩信息包括按序排列的长度编码和第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量。
可选地,该处理器530具体用于:根据该第一报文头的长度,获取与该第一报文头长度相同的第二报文头对应的索引号;根据该索引号,从该查找表中获取该索引号对应的索引地址;根据该索引地址,从窗口中获取该第二报文头,该压缩信息包括该索引号、该索引地址或用于指示该第一报文头长度的指示信息。
可选地,该处理器530还用于:通过将该窗口中的第二报文头替换为该第一报文头,更新该窗口;根据该长度对应的报文头作为压缩上下文的频率,确定该第一报文头对应的索引号在索引表中的位置。
可选地,该处理器530还用于获取该第一报文头的扩展字段,该扩展字段包括该第一报文头中除长度字段以外的至少一种字段;
该处理器530具体用于根据该第一报文头的长度和该扩展字段,从窗口中获取与该第一报文头长度相同且包括的扩展字段与该第一报文头的扩展字段相同的第二报文头。
因此,该压缩设备500无需解析第一报文头的所有字段,仅需获取该第一报文头的长度获取第二报文头可以简化压缩过程,缩短压缩时延。进一步,该压缩设备500还可以基于该第一报文头的长度和扩展字段获取该第二报文头从而进一步提高第一报文的压缩率。并且该压缩设备500还可以对该第一报文头进行二次压缩,进一步提高压缩率。
需要说明的是上述索引表、索引号、第一差异数据信息等可以参见图1 至图5所示的实施例中的相关描述,此处不再赘述。还需要说明的是上述压缩设备可以对应于上述压缩方法或解压方法中的第一通信设备,该压缩设备中的通信设备可以对应于上述压缩方法或解压方法中的第二通信设备。
应理解,在本发明实施例中,该处理器530可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器530还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件列件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器520可以包括只读存储器和随机存取存储器,并向处理器530 提供指令和数据。存储器520的一部分还可以包括非易失性随机存取存储器。例如,存储器520还可以存储设备类型的信息。
该总线系统540除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统540。
在实现过程中,上述方法的各步骤可以通过处理器530中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块列合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器520,处理器530读取存储器520中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
图10示出了本发明实施例的解压设备600的示意性框图,如图10所示,该解压设备600包括:
接收器610、存储器620、处理器630和总线系统640。其中,接收器 610、存储器620和处理器630通过总线系统640相连,接收器610用于接收压缩信息,存储器620用于存储指令,该处理器630用于执行该存储器620 存储的指令,该处理器630具体用于:
接收通信设备发送的第一报文头的压缩信息;根据该压缩信息,从窗口中获取与该第一报文头长度相同的第二报文头;根据该压缩信息和该第二报文头,获取该第一报文头。
因此,该解压设备600仅需根据压缩信息获取与第一报文头长度相同的第二报文头,从而根据该第二报文头对该压缩信息进行解压,可以缩短解压时延。
可选地,该解压设备600存储有该第二报文头的第二差异数据信息,该第二差异数据信息用于指示该第二报文头的每个字符和该第二报文头的压缩上下文相同位置处的每个字符是否相同;
该压缩信息可以包括二次去重标识和按序排列的第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该二次去重标识用于指示第二报文头的第一差异数据信息和该第二差异数据信息相同;
该处理器630具体用于根据该二次去重标识,获取该第二差异数据信息;该处理器630具体用于根据该第二差异数据信息、该差异字符和该第二报文头,获取该第一报文头。
可选地,该第二差异数据信息包括按序排列的第一数量信息和第二数量信息,该第一数量信息用于指示由第二报文头和该压缩上下文之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;该第二数量信息用于指示由该差异字符组成的差异区域包括的差异字符的数量。
可选地,该压缩信息包括按序排列的长度编码和按序排列的该第一报文头包括的与该第二报文头位置相同且内容不同的差异字符,该长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的该相同字符的数量;
该处理器630具体用于根据该长度编码、该差异字符和该第二报文头,获取该第一报文头。
可选地,该处理器630还用于根据该压缩信息中该长度编码和该差异字符的排列顺序或位置,获取该第一报文头的第一差异数据信息;
该处理器630还用于存储该第一差异数据信息,以用于后续待压缩报文头的压缩。
可选地,该压缩信息包括用于指示该第一报文头长度的指示信息,该处理器630具体用于根据该指示信息,从该窗口中获取该第二报文头;或
该处理设备600存储有查找表,该查找表包括该第二报文头对应的索引号和该索引号对应的索引地址;该压缩信息包括该第二报文头对应的索引号,该处理器630具体用于根据该索引号,从该查找表中获取该索引号对应的索引地址,根据该索引地址,从该窗口中获取该第二报文头;或
该压缩信息包括该索引地址,该处理器630具体用于根据该索引地址,从该窗口中获取该第二报文头。
可选地,该处理器630还用于:通过将该窗口中的第二报文头替换为该第一报文头,更新该窗口;根据该长度对应的报文头作为压缩上下文的频率,确定该第一报文头对应的索引号在索引表中的位置。
可选地,该处理器630具体用于从窗口中获取与该第一报文头长度相同且包括的扩展字段与该第一报文头的扩展字段相同的第二报文头。
因此,上述压缩设备500可以缩短压缩时延,与之相应的该解压设备 600仅需获取一个第二报文头对该压缩信息进行解压可以缩短解压时延。
需要说明的是上述索引表、索引号、第一差异数据信息等可以参见图1 至图5所示的实施例中的相关描述,此处不再赘述。
还需要说明的是上述解压设备600可以对应于上述压缩方法或解压方法中的第二通信设备,该解压设备600中的通信设备可以对应于上述压缩方法或解压方法中的第一通信设备。
应理解,在本发明实施例中,该处理器630可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器630还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件列件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器620可以包括只读存储器和随机存取存储器,并向处理器630 提供指令和数据。存储器620的一部分还可以包括非易失性随机存取存储器。例如,存储器620还可以存储设备类型的信息。
该总线系统640除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统640。
在实现过程中,上述方法的各步骤可以通过处理器630中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块列合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器620,处理器630读取存储器620中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的列成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或列件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内,因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (26)
1.一种压缩方法,其特征在于,所述压缩方法包括:
第一通信设备确定第一报文头的长度;
所述第一通信设备根据所述第一报文头的长度,从窗口中获取与所述第一报文头长度相同的第二报文头;
所述第一通信设备通过将所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符进行比较,获取所述第一报文头的压缩信息;
所述第一通信设备向第二通信设备发送所述压缩信息;
所述第一通信设备通过将所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符进行比较,获取所述第一报文头的压缩信息,包括:
所述第一通信设备通过将所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符进行比较,获取所述第一报文头的第一差异数据信息,所述第一差异数据信息用于指示所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符是否相同;
所述第一通信设备根据所述第一差异数据信息,获取所述第一报文头的压缩信息;
所述第一通信设备存储有所述第二报文头的第二差异数据信息,所述第二差异数据信息用于指示所述第二报文头的每个字符和所述第二报文头的压缩上下文相同位置处的每个字符是否相同,所述第一通信设备根据所述第一差异数据信息,获取所述第一报文头的压缩信息,包括:
所述第一通信设备确定所述第一差异数据信息和所述第二差异数据信息是否相同;
若所述第一差异数据信息和所述第二差异数据信息相同,所述第一通信设备获取所述第一报文头的压缩信息,所述压缩信息包括二次去重标识和按序排列的所述第一报文头包括的与所述第二报文头位置相同且内容不同的差异字符,所述二次去重标识用于指示所述第一差异数据信息和所述第二差异数据信息相同。
2.根据权利要求1所述的压缩方法,其特征在于,所述第一差异数据信息包括按序排列的第一数量信息和第二数量信息,所述第一数量信息用于指示由所述第一报文头和所述第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的所述相同字符的数量;所述第二数量信息用于指示由所述第一报文头和所述第二报文头之间位置相同且内容不同的差异字符组成的差异区域包括的所述差异字符的数量。
3.根据权利要求1所述的压缩方法,其特征在于,所述压缩信息包括按序排列的长度编码和所述第一报文头包括的与所述第二报文头位置相同且内容不同的差异字符,所述长度编码用于指示由所述第一报文头和所述第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的所述相同字符的数量。
4.根据权利要求1所述的压缩方法,其特征在于,所述第一通信设备根据所述第一报文头的长度,从窗口中获取与所述第一报文头长度相同的第二报文头,包括:
所述第一通信设备根据所述第一报文头的长度,获取与所述第一报文头长度相同的第二报文头对应的索引号;
所述第一通信设备根据所述索引号,从查找表中获取所述索引号对应的索引地址;
所述第一通信设备根据所述索引地址,从窗口中获取所述第二报文头,所述压缩信息包括所述索引号、所述索引地址或用于指示所述第一报文头长度的指示信息。
5.根据权利要求1所述的压缩方法,其特征在于,所述压缩方法还包括:
所述第一通信设备通过将所述窗口中的第二报文头替换为所述第一报文头,更新所述窗口;
所述第一通信设备根据所述长度对应的报文头,确定所述第一报文头对应的索引号在索引表中的位置。
6.根据权利要求1至5中任一项所述的压缩方法,其特征在于,所述压缩方法还包括:所述第一通信设备获取所述第一报文头的扩展字段,所述扩展字段包括所述第一报文头中除长度字段以外的至少一种字段;
所述第一通信设备根据所述第一报文头的长度,从窗口中获取与所述第一报文头的长度相同的第二报文头,包括:
所述第一通信设备根据所述第一报文头的长度和所述扩展字段,从窗口中获取与所述第一报文头长度相同且包括的扩展字段与所述第一报文头的扩展字段相同的第二报文头。
7.一种解压方法,其特征在于,所述解压方法包括:
第二通信设备接收第一通信设备发送的第一报文头的压缩信息;
所述第二通信设备根据所述压缩信息,从窗口中获取与所述第一报文头长度相同的第二报文头;
所述第二通信设备根据所述压缩信息和所述第二报文头,获取所述第一报文头;
所述第二通信设备存储有所述第二报文头的第二差异数据信息,所述第二差异数据信息用于指示所述第二报文头的每个字符和所述第二报文头的压缩上下文相同位置处的每个字符是否相同;
所述压缩信息包括二次去重标识和按序排列的所述第一报文头包括的与所述第二报文头位置相同且内容不同的差异字符,所述二次去重标识用于指示所述第一报文头的第一差异数据信息和所述第二差异数据信息相同,所述第一差异数据信息用于指示所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符是否相同;
所述第二通信设备根据所述压缩信息和所述第二报文头,获取所述第一报文头,包括:
所述第二通信设备根据所述二次去重标识,获取所述第二差异数据信息;
所述第二通信设备根据所述第二差异数据信息、所述差异字符和所述第二报文头,获取所述第一报文头。
8.根据权利要求7所述的解压方法,其特征在于,所述第二差异数据信息包括按序排列的第一数量信息和第二数量信息,所述第一数量信息用于指示由所述第二报文头和所述压缩上下文之间位置相同且内容相同的相同字符组成的相同区域包括的所述相同字符的数量;所述第二数量信息用于指示由所述第二报文头和所述压缩上下文之间位置相同且内容不同的差异字符组成的差异区域包括的差异字符的数量。
9.根据权利要求8所述的解压方法,其特征在于,所述压缩信息包括按序排列的长度编码和所述第一报文头包括的与所述第二报文头位置相同且内容不同的差异字符,所述长度编码用于指示由所述第一报文头和所述第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的所述相同字符的数量;
所述第二通信设备根据所述压缩信息和所述第二报文头,获取所述第一报文头,包括:
所述第二通信设备根据所述长度编码、所述差异字符和所述第二报文头,获取所述第一报文头。
10.根据权利要求9所述的解压方法,其特征在于,所述解压方法还包括:所述第二通信设备根据所述压缩信息中所述长度编码和所述差异字符的排序,获取所述第一报文头的第一差异数据信息;
所述第二通信设备存储所述第一差异数据信息,以用于后续待压缩报文头的解压。
11.根据权利要求7所述的解压方法,其特征在于,所述压缩信息包括用于指示所述第一报文头长度的指示信息,所述第二通信设备根据所述压缩信息,从窗口中获取与所述第一报文头长度相同的第二报文头,包括:所述第二通信设备根据所述指示信息,从所述窗口中获取所述第二报文头;或
所述第二通信设备存储有查找表,所述查找表包括所述第二报文头对应的索引号和所述索引号对应的索引地址;所述压缩信息包括所述第二报文头对应的索引号,所述第二通信设备根据所述压缩信息,从窗口中获取与所述第一报文头长度相同的第二报文头,包括:所述第二通信设备根据所述索引号,从所述查找表中获取所述索引号对应的索引地址,所述第二通信设备根据所述索引地址,从所述窗口中获取所述第二报文头;或
所述压缩信息包括所述第二报文头对应的索引地址,所述第二通信设备根据所述压缩信息,从窗口中获取与所述第一报文头长度相同的第二报文头,包括:所述第二通信设备根据所述索引地址,从所述窗口中获取所述第二报文头。
12.根据权利要求7所述的解压方法,其特征在于,所述解压方法还包括:
所述第二通信设备通过将所述窗口中的第二报文头替换为所述第一报文头,更新所述窗口;
所述第二通信设备根据所述长度对应的报文头,确定所述第一报文头对应的索引号在索引表中的位置。
13.根据权利要求7至12中任一项所述的解压方法,其特征在于,所述第二通信设备从窗口中获取与所述第一报文头长度相同的第二报文头,包括:
所述第二通信设备从窗口中获取与所述第一报文头长度相同且包括的扩展字段与所述第一报文头的扩展字段相同的第二报文头。
14.一种压缩装置,其特征在于,所述压缩装置包括:
确定模块,用于确定第一报文头的长度;
获取模块,用于根据所述第一报文头的长度,从窗口中获取与所述第一报文头长度相同的第二报文头;
所述获取模块还用于通过将所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符进行比较,获取所述第一报文头的压缩信息;
发送模块,用于向通信设备发送所述压缩信息;
所述获取模块具体用于:
通过将所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符进行比较,获取所述第一报文头的第一差异数据信息,所述第一差异数据信息用于指示所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符是否相同;
根据所述第一差异数据信息,获取所述第一报文头的压缩信息;
所述压缩装置存储有所述第二报文头的第二差异数据信息,所述第二差异数据信息用于指示所述第二报文头的每个字符和所述第二报文头的压缩上下文相同位置处的每个字符是否相同,所述获取模块具体用于:
确定所述第一差异数据信息和所述第二差异数据信息是否相同;
若所述第一差异数据信息和所述第二差异数据信息相同,获取所述第一报文头的压缩信息,所述压缩信息包括二次去重标识和按序排列的所述第一报文头包括的与所述第二报文头位置相同且内容不同的差异字符,所述二次去重标识用于指示所述第一差异数据信息和所述第二差异数据信息相同。
15.根据权利要求14所述的压缩装置,其特征在于,所述第一差异数据信息包括按序排列的第一数量信息第二数量信息,所述第一数量信息用于指示由所述第一报文头和所述第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的所述相同字符的数量;所述第二数量信息用于指示由所述第一报文头和所述第二报文头之间位置相同且内容不同的差异字符组成的差异区域包括的所述差异字符的数量。
16.根据权利要求14所述的压缩装置,其特征在于,所述获取模块获取的压缩信息包括按序排列的长度编码和所述第一报文头包括的与所述第二报文头位置相同且内容不同的差异字符,所述长度编码用于指示由第一报文头和第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的所述相同字符的数量。
17.根据权利要求14所述的压缩装置,其特征在于,所述获取模块具体用于:
根据所述第一报文头的长度,获取与所述第一报文头长度相同的第二报文头对应的索引号;
根据所述索引号,从查找表中获取所述索引号对应的索引地址;
根据所述索引地址,从窗口中获取所述第二报文头,所述压缩信息包括所述索引号、所述索引地址或用于指示所述第一报文头长度的指示信息。
18.根据权利要求14所述的压缩装置,其特征在于,所述压缩装置还包括:
更新模块,用于通过将所述窗口中的第二报文头替换为所述第一报文头,更新所述窗口;
所述确定模块还用于根据所述长度对应的报文头,确定所述第一报文头对应的索引号在索引表中的位置。
19.根据权利要求14至18中任一项所述的压缩装置,其特征在于,所述获取模块还用于获取所述第一报文头的扩展字段,所述扩展字段包括所述第一报文头中除长度字段以外的至少一种字段;
所述获取模块具体用于根据所述第一报文头的长度和所述扩展字段,从窗口中获取与所述第一报文头长度相同且包括的扩展字段与所述第一报文头的扩展字段相同的第二报文头。
20.一种解压装置,其特征在于,所述解压装置包括:
接收模块,用于接收通信设备发送的第一报文头的压缩信息;
获取模块,用于根据所述压缩信息,从窗口中获取与所述第一报文头长度相同的第二报文头;
所述获取模块还用于根据所述压缩信息和所述第二报文头,获取所述第一报文头;
所述解压装置存储有所述第二报文头的第二差异数据信息,所述第二差异数据信息用于指示所述第二报文头的每个字符和所述第二报文头的压缩上下文相同位置处的每个字符是否相同;
所述压缩信息包括二次去重标识和按序排列的第一报文头包括的与所述第二报文头位置相同且内容不同的差异字符,所述二次去重标识用于指示所述第一报文头的第一差异数据信息和所述第二差异数据信息相同,所述第一差异数据信息用于指示所述第一报文头的每个字符和所述第二报文头相同位置处的每个字符是否相同;
所述获取模块还用于根据所述二次去重标识,获取所述第二差异数据信息;
所述获取模块具体用于根据所述第二差异数据信息、所述差异字符和所述第二报文头,获取所述第一报文头。
21.根据权利要求20所述的解压装置,其特征在于,所述第二差异数据信息包括按序排列的第一数量信息和第二数量信息,所述第一数量信息用于指示由所述第二报文头和所述压缩上下文之间位置相同且内容相同的相同字符组成的相同区域包括的所述相同字符的数量;所述第二数量信息用于指示由所述第二报文头和所述压缩上行文之间位置相同且内容不同的差异字符组成的差异区域包括的差异字符的数量。
22.根据权利要求20所述的解压装置,其特征在于,所述压缩信息包括按序排列的长度编码和所述第一报文头包括的与所述第二报文头位置相同且内容不同的差异字符,所述长度编码用于指示由所述第一报文头和所述第二报文头之间位置相同且内容相同的相同字符组成的相同区域包括的所述相同字符的数量;
所述获取模块具体用于根据所述长度编码、所述差异字符和所述第二报文头,获取所述第一报文头。
23.根据权利要求20所述的解压装置,其特征在于,所述获取模块还用于根据所述压缩信息中所述长度编码和所述差异字符的排序,获取所述第一报文头的第一差异数据信息;
所述解压装置还包括存储模块,所述存储模块用于存储所述第一差异数据信息,以用于后续待压缩报文头的压缩。
24.根据权利要求20所述的解压装置,其特征在于,所述压缩信息包括用于指示所述第一报文头长度的指示信息,所述获取模块具体用于根据所述指示信息,从所述窗口中获取所述第二报文头;或
所述解压设备存储有查找表,所述查找表包括所述第二报文头对应的索引号和所述索引号对应的索引地址;所述压缩信息包括所述第二报文头对应的索引号,所述获取模块具体用于根据所述索引号,从所述查找表中获取所述索引号对应的索引地址,根据所述索引地址,从所述窗口中获取所述第二报文头;或
所述压缩信息包括所述索引地址,所述获取模块具体用于根据所述索引地址,从所述窗口中获取所述第二报文头。
25.根据权利要求20所述的解压装置,其特征在于,所述解压装置还包括:
更新模块,用于通过将所述窗口中的第二报文头替换为所述第一报文头,更新所述窗口;
确定模块,用于根据所述长度对应的报文头,确定所述第一报文头对应的索引号在索引表中的位置。
26.根据权利要求20至25中任一项所述的解压装置,其特征在于,所述获取模块具体用于从窗口中获取与所述第一报文头长度相同且包括的扩展字段与所述第一报文头的扩展字段相同的第二报文头。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610338100.4A CN106027521B (zh) | 2016-05-19 | 2016-05-19 | 压缩方法、解压方法、压缩装置和解压装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610338100.4A CN106027521B (zh) | 2016-05-19 | 2016-05-19 | 压缩方法、解压方法、压缩装置和解压装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106027521A CN106027521A (zh) | 2016-10-12 |
CN106027521B true CN106027521B (zh) | 2019-11-01 |
Family
ID=57095221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610338100.4A Active CN106027521B (zh) | 2016-05-19 | 2016-05-19 | 压缩方法、解压方法、压缩装置和解压装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106027521B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107509218A (zh) * | 2017-08-25 | 2017-12-22 | 中国联合网络通信集团有限公司 | 一种信息传输方法、装置及无线通信系统 |
CN110765756B (zh) * | 2019-10-29 | 2023-12-01 | 北京齐尔布莱特科技有限公司 | 一种文本处理方法、装置、计算设备及介质 |
CN115225725B (zh) * | 2022-05-25 | 2023-08-15 | 广州汽车集团股份有限公司 | 数据压缩存储方法、装置、车辆及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101400083A (zh) * | 2007-09-29 | 2009-04-01 | 华为技术有限公司 | 对报文进行头压缩和业务流分类发送的方法、系统及装置 |
CN102300258A (zh) * | 2011-08-26 | 2011-12-28 | 中兴通讯股份有限公司 | 上下文重用的方法及系统 |
CN102576388A (zh) * | 2009-12-23 | 2012-07-11 | 财团法人工业技术研究院 | 数据压缩方法与装置 |
CN103825869A (zh) * | 2012-11-19 | 2014-05-28 | 中兴通讯股份有限公司 | 以太网报文头的压缩及解压缩方法、压缩及解压缩设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013084116A (ja) * | 2011-10-07 | 2013-05-09 | Fujitsu Ltd | 通信装置、通信装置の制御方法及び情報処理システム |
-
2016
- 2016-05-19 CN CN201610338100.4A patent/CN106027521B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101400083A (zh) * | 2007-09-29 | 2009-04-01 | 华为技术有限公司 | 对报文进行头压缩和业务流分类发送的方法、系统及装置 |
CN102576388A (zh) * | 2009-12-23 | 2012-07-11 | 财团法人工业技术研究院 | 数据压缩方法与装置 |
CN102300258A (zh) * | 2011-08-26 | 2011-12-28 | 中兴通讯股份有限公司 | 上下文重用的方法及系统 |
CN103825869A (zh) * | 2012-11-19 | 2014-05-28 | 中兴通讯股份有限公司 | 以太网报文头的压缩及解压缩方法、压缩及解压缩设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106027521A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2011345072B2 (en) | Method and device for improving robustness of context update message in robust header compression | |
EP1378064B1 (en) | Method and system for providing a context for message compression | |
EP2854359B1 (en) | Compression and decompression methods of ethernet header and corresponding devices | |
CN108696492B (zh) | Ip报文的处理方法与装置 | |
US8817821B2 (en) | Method and device for user datagram protocol packet compression and decompression | |
CN106027521B (zh) | 压缩方法、解压方法、压缩装置和解压装置 | |
CN107534661A (zh) | 用于数据压缩的增强型压缩格式 | |
CN111225429A (zh) | 路由器的ssid获取方法、装置、设备和系统 | |
CN100433841C (zh) | 用于因特网协议第6版移动子协议MIPv6的鲁棒性头标压缩/解压方法 | |
US11050665B2 (en) | Data transmission method, apparatus, transmitting end, receiving end and system | |
CN110690943A (zh) | 数据编码方法、解码方法、编解码方法、设备及存储介质 | |
CN105532059B (zh) | 配置指示方法和通信设备 | |
Abdelfadeel et al. | Lschc: Layered static context header compression for lpwans | |
WO2017157023A1 (zh) | 一种soap报文传输方法及系统 | |
CN101534291A (zh) | Ip报文的发送、接收的方法及装置 | |
CN109525370B (zh) | 基于zigbee的数据包发送方法 | |
CN104767710B (zh) | 基于dfa的http分块传输编码的传输载荷提取方法 | |
CN110475243A (zh) | Ue能力信息的上报、获取和处理方法及对应装置 | |
CN105872063A (zh) | 一种基于dcc协议的ipv6地址编码、解码方法及对应的系统 | |
CN101110638A (zh) | 一种链表编码方法及系统 | |
CN111277580A (zh) | 节点数据发送方法、接收方法以及传输方法 | |
CN101258722A (zh) | 对网络中的乱序数据分组进行有效编码 | |
CN112910838B (zh) | 复合协议解析方法、装置、设备、系统和存储介质 | |
CN107800653B (zh) | 报文压缩方法及装置 | |
CN102082726B (zh) | 数据处理方法、装置和传输系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |