CN107645538A - 提供动态压缩字典的方法及装置和电子设备 - Google Patents
提供动态压缩字典的方法及装置和电子设备 Download PDFInfo
- Publication number
- CN107645538A CN107645538A CN201710690864.4A CN201710690864A CN107645538A CN 107645538 A CN107645538 A CN 107645538A CN 201710690864 A CN201710690864 A CN 201710690864A CN 107645538 A CN107645538 A CN 107645538A
- Authority
- CN
- China
- Prior art keywords
- dictionary
- compression
- compressed
- line
- client
- 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.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书实施例提供一种提供动态压缩字典的方法及装置和电子设备,服务端从网络层服务器采集数据,然后根据采集到的数据训练得到新的压缩字典;再通过计算所述新的压缩字典和当前线上压缩字典的压缩率,在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,说明这个新的压缩字典更为高效,从而可以将所述线上压缩字典更新为所述新的压缩字典。
Description
技术领域
本说明书实施例涉及数据压缩技术领域,尤其涉及一种提供动态压缩字典的方法及装置和电子设备。
背景技术
在无线网络服务中,数据包(Data Packet)的大小可以直接影响网络服务质量。比如在2G(2-Generation wireless telephone technology,第二代手机通信技术规格)网络中,RTT(Round Trip Time,网络延时)一般超过1秒;而完成单个RPC(Remote ProcedureCall Protocol,远程过程调用协议)服务一般需要多个RTT,这样就容易出现较长时间的延迟,严重影响用户体验。为了减少网络传输数据包的大小,通常可以采用基于压缩算法的静态字典对数据包内容进行压缩,从而减少数据包的大小。这里的静态字典一般是预先下发到客户端的,客户端基于本地的静态字典对数据包进行压缩。
需要提供更为高效的压缩字典。
发明内容
本说明书实施例提供的一种提供动态压缩字典的方法及装置和电子设备:
根据本说明书实施例的第一方面,提供一种提供动态压缩字典的方法,所述方法包括:
从网络层服务器采集用于训练压缩字典的数据;
对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
根据本说明书实施例的第二方面,提供一种提供动态压缩字典的方法,所述方法包括:
客户端向服务端上报本地压缩字典的标识;
所述服务端判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
在所述标识对应的压缩字典不是线上压缩字典的情况下,所述服务端将所述线上压缩字典推送给所述客户端;
所述客户端将本地压缩字典更新为所述服务端推送的线上压缩字典。
根据本说明书实施例的第三方面,提供一种提供动态压缩字典的方法,所述方法包括:
接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
根据本说明书实施例的第四方面,提供一种提供动态压缩字典的方法,所述方法包括:
向服务端上报本地压缩字典的标识;
在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
根据本说明书实施例的第五方面,提供一种提供动态压缩字典的装置,所述装置包括:
数据采集单元,从网络层服务器采集用于训练压缩字典的数据;
字典训练单元,对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
压缩率判断单元,判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
字典更新单元,在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
根据本说明书实施例的第六方面,提供一种提供动态压缩字典的装置,所述装置包括:
标识接收单元,接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
字典判断单元,判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
字典推送单元,在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
根据本说明书实施例的第七方面,提供一种提供动态压缩字典的装置,所述装置包括:
标识上报单元,向服务端上报本地压缩字典的标识;
字典更新单元,在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
根据本说明书实施例的第八方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
从网络层服务器采集用于训练压缩字典的数据;
对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
根据本说明书实施例的第九方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
根据本说明书实施例的第十方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
向服务端上报本地压缩字典的标识;
在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
本说明书实施例中,服务端从网络层服务器采集数据,然后根据采集到的数据训练得到新的压缩字典;再通过计算所述新的压缩字典和当前线上压缩字典的压缩率,在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,说明这个新的压缩字典更为高效,从而可以将所述线上压缩字典更新为所述新的压缩字典。
附图说明
图1是本说明书一实施例提供的实现提供动态压缩字典的系统架构图;
图2是本说明书一实施例提供的提供动态压缩字典的方法的流程图;
图3是本说明书一实施例提供的压缩字典训练和更新方法的流程图;
图4是本说明书一实施例提供的提供动态压缩字典的方法的流程图;
图5是本说明书提供的以客户端为主体的方法流程图;
图6是本说明书提供的以服务端为主体的方法流程图;
图7是本说明书一实施例提供的提供动态压缩字典的装置的模块示意图;
图8是本说明书一实施例提供的提供动态压缩字典的装置的模块示意图;
图9是本说明书一实施例提供的提供动态压缩字典的装置的模块示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
需要说明的是,所述压缩字典主要是将数据包中重复内容映射为对应的字符,所述重复内容的大小通常要大于甚至远大于对应的字符,从而实现压缩数据包的目的。
举例说明,某个数据“AAA,BBB,CCC,AAA,BBB,CCC”;假设压缩字典中“AAA”对应“X”,“BBB”对应“Y”,“CCC”对应“Z”;那么,经过该压缩字典可以将这个数据中内容映射为“X,Y,Z”;压缩后数据大小相较于压缩前大大减少。
如前所述,现有用于进行数据压缩的字典通常采用的是静态字典。而在实际应用中,由于业务时常发生变化,涉及到的数据内容也会响应变化,而静态字典中的数据内容依然是根据以前业务制定的,因此,继续使用静态字典压缩新业务数据的效果会大打折扣。本说明书提供了一种动态更新压缩字典的方法,可以及时根据业务数据的变化来调整线上压缩字典,从而确保数据压缩的效率。
以下请求参考图1所示本说明书实施例中提供的实现提供动态压缩字典的系统架构图。图1所示该系统100可以包括客户端11、网络层服务器12、服务端13。
其中,所述客户端11可以是指发送数据的设备,例如用户使用的台式计算机、膝上型计算机、平板计算机、智能手机、手持式计算机、个人数字助理(“PDA”),或者其它任何的有线或无线处理器驱动装置。
所述网络层服务器12可以是指OSI(Open System Interconnection,网络七层协议)中网络层的服务器。一般的,数据是经由网络层进行传递的。例如,设备A向设备B发送数据的过程为:本端设备A发送数据至网络层服务器12,再由该网络层服务器12路由到对端设备B,对端设备B接收数据。
所述服务端13可以是提供压缩字典以及可以更新压缩字典的服务器。本说明书中,所述服务端13可以用于训练压缩字典,并在新压缩字典满足一定条件的情况下,更新线上压缩字典。所述线上压缩字典可以是指应用于客户端11以及网络层服务器12上最优的压缩字典。
值得一提的是,如图1所示,所述服务端13可以根据业务需求的不同,具体可以包括字典训练服务器131以及字典管控服务器132;
所述字典训练服务器131可以用于训练新的压缩字典。具体地,所述字典训练服务器131可以采集经由所述网络层服务器12传递的数据;然后可以根据这些数据训练压缩字典,并可以在新压缩字典满足一定条件的情况下,更新所述字典管控系统132中的线上压缩字典。
所述字典管控系统132中管理有多种压缩字典;这些压缩字典可以包括线上压缩字典,以及历史使用过的压缩字典。在上述字典训练系统131更新所述字典管控系统132中的线上压缩字典后,所述字典管控系统132可以向上述客户端11以及网络层服务器12下发该更新后的线上压缩字典。
客户端11在向网络层服务器12发送数据包前,首先利用本地(该本地是指客户端11)的压缩字典(通常为线上压缩字典)对该数据包进行压缩,然后将压缩后数据包发送至网络层服务器12;网络层服务器12接收到客户端11发送的数据包后,可以根据本地(该本地是指网络层服务器12)的压缩字典(需要与客户端11的压缩字典一致,通常为线上压缩字典)对数据包进行解压缩,从而得到原始未压缩的数据包,并将解压缩的数据包路由到对端设备,由于路由过程并不是本说明书重点,此处不对其具体展开。
以下请结合图2所示的例子介绍本说明书一种实现提供动态压缩字典的方法的实施例,如图2所示,该方法可以包括以下步骤:
步骤210:客户端向服务端上报本地压缩字典的标识。
如前所述,客户端中缓存或者保存有服务端提供的压缩字典;所述压缩字典可以对应有一个唯一的标识,例如压缩字典的ID。
在一个具体地实施例中,所述步骤210,可以包括:
客户端在建立网络连接之后,向服务端上报本地压缩字典的标识。
在实际应用中,线上压缩字典可以认为是动态更新的;而客户端未接入网络期间,线上压缩字典很可能已经更新的,这样客户端本地压缩字典已经属于历史压缩字典,也需要进行更新。因此,每一次客户端连接网络后,都需要上报标识,进而执行后续步骤。
步骤220:所述服务端判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典。
如前所述,压缩字典和标识是一一对应的,服务端中记录有全量的压缩字典。所述全量的压缩字典,不仅包括了线上压缩字典,也包括了历史使用过的压缩字典。
由于线上压缩字典可以认为是最优的压缩字典,也就是压缩效率最高的压缩字典。如果客户端上报的标识对应的压缩字典不是线上压缩字典,说明客户端本地的压缩字典已经过时,需要更新压缩字典。
以下请参考图3,为本说明书提供的压缩字典训练和更新方法的流程图:
A1:服务端从网络层服务器采集用于训练压缩字典的数据。
所述数据采集可以通过在网络层服务器中埋点,通过埋点程序收集所述网络层服务器上数据,这些数据可以是任意客户端发送的解压后的信息;并且,可以根据预设上传规则,将这些采集到的数据上传给服务器。
这里的上传规则,可以是人为设定的。
例如,业内常用的T+1规则,即采集第T日的数据,在第T日结束后,将采集到的数据上传给服务端,而服务端可以在第T+1日对这些第T日的数据进行处理,本说明书中即根据第T日的数据,训练字典。上述内容仅为示例,所述上传规则也可以是其它人为设定的规则。
A2:所述服务端对所述采集到的数据进行压缩字典训练,得到新的压缩字典。
这里的压缩字典训练一般的可以基于算法,所述算法可以是任意用于训练字典的算法,也就是说任何可以达到训练字典的算法都可以应用于本说明书中,本说明书中对该算法并不做具体的限定。
A3:所述服务端判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率。
所述压缩率可以反映字典压缩数据效率的高低;一般的,压缩率越高,可以说明字典压缩数据的效率越高,反之,压缩率越低,可以说明字典压缩数据的效率越低。
举例说明,分别使用字典A和字典B对同一具有100个字符的数据进行压缩;
假设,经过字典A压缩后的数据还有50个字符,则字典A的压缩率为:(100-50)/100=50%;
经过字典B压缩后的数据还有30个字符,则字典B的压缩率为:(100-30)/100=70%;
很明显,字典B的压缩率高于字典A的压缩率。
A4:在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,所述服务端将所述线上压缩字典更新为所述新的压缩字典。
如果新字典的压缩率高于线上字典的压缩率,说明这个新字典压缩数据的效率要高于线上字典压缩数据的效率;因此,为了提高压缩数据的效率,需要采用该新字典,可以将线上字典替换为该新字典。
反之,如果新字典的压缩率不高于线上字典的压缩率,说明这个新字典压缩数据的效率要低于线上字典压缩数据的效率;因此,无需替换线上字典。
以上述T+1的规则为例加以说明:
服务端每天从网络服务器中采集当天的数据(即第T日的数据);然后,在后一天(即第T+1日)根据这些采集到的数据训练新字典(该新字典即为第T日字典);在训练得到新字典后,可以与线上字典比较压缩率;如果新字典的压缩率大于线上字典的压缩率,则可以将线上字典替换为该新字典;如果新字典的压缩率不大于线上字典的压缩率,则无需替换,继续使用线上字典;如此,可以始终保证线上字典的压缩率最大化,进而确保数据压缩效率。
通过服务端从网络层服务器采集数据,然后根据采集到的数据训练得到新的压缩字典;再通过计算所述新的压缩字典和当前线上压缩字典的压缩率,在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,说明这个新的压缩字典更为高效,从而可以将所述线上压缩字典更新为所述新的压缩字典。如此,可以实现服务端动态更新线上压缩字典。
步骤230:在所述标识对应的压缩字典不是线上压缩字典的情况下,所述服务端将所述线上压缩字典推送给所述客户端。
如前所述,由于线上压缩字典可以认为是最优的压缩字典,也就是压缩效率最高的压缩字典。如果客户端上报的标识对应的压缩字典不是线上压缩字典,说明客户端本地的压缩字典已经过时,需要更新客户端中压缩字典,即所述服务端可以将所述线上压缩字典推送给所述客户端。
步骤240:所述客户端将本地压缩字典更新为所述服务端推送的线上压缩字典。
所述客户端将本地压缩字典更新为所述服务端推送的线上压缩字典,如此,客户端可以保持本地压缩字典为最优的(压缩效率最高)的压缩字典。
本说明书实施例中,服务端通过判断客户端本地压缩字典是否是线上压缩字典,如果客户端本地压缩字典不是线上压缩字典,则向客户端推送线上压缩字典,从而使得客户端中压缩字典可以动态调整为最优的压缩字典。而所述线上压缩字典由于是服务端动态更新的,因此始终保证了线上压缩字典为压缩效率最高的压缩字典。
进一步的,如图4所示,在所述步骤240之后,所述方法还可以包括:
步骤250:所述客户端使用本地压缩字典压缩待发送数据包。
步骤260:所述客户端将压缩后的数据包发送给网络层服务器。
本实施例内容描述了客户端应用压缩字典的过程。如前所述,客户端发送数据,需要经由网络层服务器进行转发(也称为路由)。
在实际应用中,网络层服务器还需要对客户端发送的数据包进行解压缩,而解压缩也需要使用到压缩字典,解压缩的字典需要和压缩的字典一致才可以解压出原始的数据包;如何保证解压缩和压缩时字典一致需要解决。
本说明中提供了一种字典协商机制,可以保证解压缩和压缩时字典一致。在上述图4所示的步骤250之前,所述方法还可以包括:
所述客户端与网络层服务器协商压缩字典;
所述步骤250,具体包括:
所述客户端根据协商后确定的压缩字典压缩待发送数据包。
本实施例中,所述协商压缩字典可以是位于数据传输层。
以下请参考图5所示的客户端与网络服务器之间压缩字典协商的过程:
B1:客户端将本地压缩字典的标识推送给网络层服务器;
B2:在所述网络层服务器获取到所述标识对应的压缩字典的情况下,确定该压缩字典为协商后的压缩字典。
如果网络层服务器可以获取到客户端推送标识对应的压缩字典,说明网络层服务器同样具有该压缩字典。这样的话,客户端基于该压缩字典发送的数据包,服务器也可以根据该压缩字典进行解压缩。
另一方面的,在所述网络层服务器未获取到所述标识对应的压缩字典的情况下,网络层服务器可以下发线上压缩字典给客户端;进而,客户端可以采用该网络层服务器下发的压缩字典进行数据压缩。进而一步的,客户端也可以将本地压缩字典更新为所述网络层服务器下发的压缩字典。
在实际应用过程中,所述客户端除了推送本地压缩字典的标识之外,还可以推送压缩字典。一般的,数据压缩以及数据解压缩,除了需要使用到压缩字典外,还可以使用到压缩算法。因此,不仅需要协商统一的压缩字典,还可能需要协商统一的压缩算法。
在本说明书的另一个实施例中,基于图4实施例上,在所述步骤260之后,所述方法还可以包括:
所述网络层服务器接收所述客户端发送的数据包;
所述网络层服务器根据协商后确定的压缩字典对所述数据包进行解压缩。
本实施例描述了网络层服务器在接收到客户端发送的已经压缩过的数据包后,解压缩数据包从而还原出原始数据包。
如前所述,网络层服务器可以使用协商后确定的压缩字典对数据包进行解压缩。也就是说,网络层服务器解压缩的压缩字典是和客户端压缩数据包时使用的压缩字典一致的。
解压缩成功后,网络层服务器就可以获取到原始的数据包。
进一步的,在解压缩失败的情况下,所述网络层服务器向所述客户端发送通知信息;
所述客户端在接收到所述网络层服务器发送的通知信息后,在不使用压缩字典的情况下发送数据包。
对于解压缩失败的情况,网络层服务器无法获取原始的数据包,为了进行补救,此时网络层服务器需要通知客户端;而客户端接到通知后,可以在不使用压缩字典的情况下重新发送所述待发送数据包;这样,网络层服务器再次接收到的数据包也就无需解压缩,直接可以进行路由。
以下结合图5介绍本申请以客户端为主体的方法实施例,该实施例可以对应图2:
步骤310:向服务端上报本地压缩字典的标识;
步骤320:在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
所述向服务端上报本地压缩字典的标识,具体包括:
在建立网络连接之后,向服务端上报本地压缩字典的标识。
进一步的,参考图4所示的实施例,在所述步骤320之后,所述方法还包括:
使用本地压缩字典压缩待发送数据包;
将压缩后的数据包发送给网络层服务器。
进一步的,在所述使用本地压缩字典压缩待发送数据包之前,所述方法还包括:
与网络层服务器协商压缩字典;
所述使用本地压缩字典压缩待发送数据包,具体包括:
根据协商后确定的压缩字典压缩待发送数据包。
进一步的,所述协商压缩字典位于数据传输层。
进一步的,所述协商压缩字典,具体包括:
将本地压缩字典的标识推送给网络层服务器;
接收所述网络层服务器返回的协商确定的压缩字典。
进一步的,在所述将压缩后的数据包发送给网络层服务器之后,所述方法还包括:
在接收到所述网络层服务器发送的表示解压缩失败后,在不使用压缩字典的情况下重新发送所述待发送数据包。
上述以客户端为主体的方法实施例具体步骤可以参考前述图2-图4所示实施例。
通过本实施例,客户端可以更新本地的压缩字典,使得本地压缩字典与最优(例如压缩率最高)的线上压缩字典保持一致,从而提升数据压缩效率。
以下结合图6介绍本申请以服务端为主体的方法实施例,该实施例可以对应图2:
步骤410:接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
步骤420:判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
步骤430:在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
所述线上压缩字典通过如下方式得到:
从网络层服务器采集用于训练压缩字典的数据;
对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
上述以服务端为主体的方法实施例具体步骤可以参考前述图2-图4所示实施例。
通过本实施例,服务端通过判断客户端本地压缩字典是否是线上压缩字典,如果客户端本地压缩字典不是线上压缩字典,则向客户端推送线上压缩字典,从而使得客户端中压缩字典可以动态调整为最优的压缩字典。而所述线上压缩字典由于是服务端动态更新的,因此始终保证了线上压缩字典为压缩效率最高的压缩字典。
与前述提供动态压缩字典的方法实施例相对应,本说明书还提供了提供动态压缩字典的装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本说明书提供动态压缩字典的装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该提供动态压缩字典的实际功能,还可以包括其他硬件,对此不再赘述。
参见图7,为本说明书一实施例提供的提供动态压缩字典的装置的模块图,所述装置对应了图3所示实施例,所述装置包括:
数据采集单元610,从网络层服务器采集用于训练压缩字典的数据;
字典训练单元620,对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
压缩率判断单元630,判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
字典更新单元640,在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
在一个可选的实施例中:
所述装置还包括:
推送子单元,将更新后的线上压缩字典推送至客户端和/或网络层服务器。
在一个可选的实施例中:
所述装置还包括:
接收子单元,接收客户端上报的标识;
判断子单元,判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
推送子单元,在所述标识对应的压缩字典不是线上压缩字典的情况下,将所述线上压缩字典推送给所述客户端。
参见图8,为本说明书一实施例提供的提供动态压缩字典的装置的模块图,所述装置对应了图6所示实施例,所述装置包括:
标识接收单元710,接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
字典判断单元720,判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
字典推送单元730,在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
在一个可选的实施例中:
所述线上压缩字典通过如下子单元得到:
数据采集子单元,从网络层服务器采集用于训练压缩字典的数据;
字典训练子单元,对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
压缩率判断子单元,判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
字典更新子单元,在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
参见图9,为本说明书一实施例提供的提供动态压缩字典的装置的模块图,所述装置对应了图5所示实施例,所述装置包括:
标识上报单元810,向服务端上报本地压缩字典的标识;
字典更新单元820,在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
在一个可选的实施例中:
所述标识上报单元810,具体包括:
在建立网络连接之后,向服务端上报本地压缩字典的标识。
在一个可选的实施例中:
所述装置还包括:
数据压缩子单元,使用本地压缩字典压缩待发送数据包;
数据发送子单元,将压缩后的数据包发送给网络层服务器。
在一个可选的实施例中:
在所述数据压缩子单元之前,所述装置还包括:
字典协商子单元,与网络层服务器协商压缩字典;
所述数据发送子单元,具体包括:
根据协商后确定的压缩字典压缩待发送数据包。
在一个可选的实施例中:
所述协商压缩字典位于数据传输层。
在一个可选的实施例中:
所述字典协商子单元,具体包括:
标识推送子单元,将本地压缩字典的标识推送给网络层服务器;
接收字典子单元,接收所述网络层服务器返回的协商确定的压缩字典。
在一个可选的实施例中:
在所述数据发送子单元之后,所述装置包括:
第二数据发送子单元,在接收到所述网络层服务器发送的表示解压缩失败后,在不使用压缩字典的情况下重新发送所述待发送数据包。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图7描述了提供动态压缩字典的装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
从网络层服务器采集用于训练压缩字典的数据;
对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
以上图8描述了提供动态压缩字典的装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
以上图9描述了提供动态压缩字典的装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
向服务端上报本地压缩字典的标识;
在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
Claims (27)
1.一种提供动态压缩字典的方法,所述方法包括:
从网络层服务器采集用于训练压缩字典的数据;
对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
2.根据权利要求1所述的方法,所述方法还包括:
将更新后的线上压缩字典推送至客户端和/或网络层服务器。
3.根据权利要求1所述的方法,所述方法还包括:
接收客户端上报的标识;
判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
在所述标识对应的压缩字典不是线上压缩字典的情况下,将所述线上压缩字典推送给所述客户端。
4.一种提供动态压缩字典的方法,所述方法包括:
客户端向服务端上报本地压缩字典的标识;
所述服务端判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
在所述标识对应的压缩字典不是线上压缩字典的情况下,所述服务端将所述线上压缩字典推送给所述客户端;
所述客户端将本地压缩字典更新为所述服务端推送的线上压缩字典。
5.根据权利要求4所述的方法,所述客户端向服务端上报本地压缩字典的标识,具体包括:
客户端在建立网络连接之后,向服务端上报本地压缩字典的标识。
6.根据权利要求4所述的方法,所述线上压缩字典通过如下方式得到:
服务端从网络层服务器采集用于训练压缩字典的数据;
所述服务端对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
所述服务端判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,所述服务端将所述线上压缩字典更新为所述新的压缩字典。
7.根据权利要求4所述的方法,所述方法还包括:
所述客户端使用本地压缩字典压缩待发送数据包;
所述客户端将压缩后的数据包发送给网络层服务器。
8.根据权利要求7所述的方法,在所述客户端使用本地压缩字典压缩待发送数据包之前,所述方法还包括:
所述客户端与网络层服务器协商压缩字典;
所述客户端使用本地压缩字典压缩待发送数据包,具体包括:
所述客户端根据协商后确定的压缩字典压缩待发送数据包。
9.根据权利要求8所述的方法,所述协商压缩字典位于数据传输层。
10.根据权利要求8所述的方法,所述协商压缩字典,具体包括:
客户端将本地压缩字典的标识推送给网络层服务器;
在所述网络层服务器获取到所述标识对应的压缩字典的情况下,确定该压缩字典为协商后的压缩字典。
11.根据权利要求8所述的方法,在所述客户端将压缩后的数据包发送给网络层服务器之后,所述方法还包括:
所述网络层服务器接收所述客户端发送的数据包;
所述网络层服务器根据协商后确定的压缩字典对所述数据包进行解压缩。
12.根据权利要求11所述的方法,所述方法还包括:
在解压缩失败的情况下,所述网络层服务器向所述客户端发送通知信息;
所述客户端在接收到所述网络层服务器发送的通知信息后,在不使用压缩字典的情况下重新发送所述待发送数据包。
13.一种提供动态压缩字典的方法,所述方法包括:
接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
14.根据权利要求13所述的方法,所述线上压缩字典通过如下方式得到:
从网络层服务器采集用于训练压缩字典的数据;
对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
15.一种提供动态压缩字典的方法,所述方法包括:
向服务端上报本地压缩字典的标识;
在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
16.根据权利要求15所述的方法,所述向服务端上报本地压缩字典的标识,具体包括:
在建立网络连接之后,向服务端上报本地压缩字典的标识。
17.根据权利要求15所述的方法,所述方法还包括:
使用本地压缩字典压缩待发送数据包;
将压缩后的数据包发送给网络层服务器。
18.根据权利要求17所述的方法,在所述使用本地压缩字典压缩待发送数据包之前,所述方法还包括:
与网络层服务器协商压缩字典;
所述使用本地压缩字典压缩待发送数据包,具体包括:
根据协商后确定的压缩字典压缩待发送数据包。
19.根据权利要求18所述的方法,所述协商压缩字典位于数据传输层。
20.根据权利要求18所述的方法,所述协商压缩字典,具体包括:
将本地压缩字典的标识推送给网络层服务器;
接收所述网络层服务器返回的协商确定的压缩字典。
21.根据权利要求17所述的方法,在所述将压缩后的数据包发送给网络层服务器之后,所述方法还包括:
在接收到所述网络层服务器发送的表示解压缩失败后,在不使用压缩字典的情况下重新发送所述待发送数据包。
22.一种提供动态压缩字典的装置,所述装置包括:
数据采集单元,从网络层服务器采集用于训练压缩字典的数据;
字典训练单元,对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
压缩率判断单元,判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
字典更新单元,在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
23.一种提供动态压缩字典的装置,所述装置包括:
标识接收单元,接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
字典判断单元,判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
字典推送单元,在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
24.一种提供动态压缩字典的装置,所述装置包括:
标识上报单元,向服务端上报本地压缩字典的标识;
字典更新单元,在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
25.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
从网络层服务器采集用于训练压缩字典的数据;
对所述采集到的数据进行压缩字典训练,得到新的压缩字典;
判断所述新的压缩字典的压缩率是否大于当前线上压缩字典的压缩率;
在所述新的压缩字典的压缩率大于当前线上压缩字典的压缩率的情况下,将所述线上压缩字典更新为所述新的压缩字典。
26.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端上报的标识;所述标识为所述客户端本地压缩字典的标识;
判断所述标识对应的压缩字典是否为线上压缩字典;所述线上压缩字典为最优的压缩字典;
在所述标识对应的压缩字典不是线上压缩字典的情况下,所述线上压缩字典推送给所述客户端,以使所述客户端更新本地压缩字典。
27.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
向服务端上报本地压缩字典的标识;
在接收到所述服务端推送的线上压缩字典的情况下,将本地压缩字典更新为所述线上压缩字典;所述线上压缩字典为最优的压缩字典。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710690864.4A CN107645538A (zh) | 2017-08-14 | 2017-08-14 | 提供动态压缩字典的方法及装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710690864.4A CN107645538A (zh) | 2017-08-14 | 2017-08-14 | 提供动态压缩字典的方法及装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107645538A true CN107645538A (zh) | 2018-01-30 |
Family
ID=61110735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710690864.4A Pending CN107645538A (zh) | 2017-08-14 | 2017-08-14 | 提供动态压缩字典的方法及装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107645538A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111193752A (zh) * | 2020-02-28 | 2020-05-22 | 广州市百果园信息技术有限公司 | 一种数据压缩的方法、装置、压缩服务器和存储介质 |
CN111782660A (zh) * | 2020-07-17 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 基于键值存储的数据压缩的方法和系统 |
US11122095B2 (en) | 2019-09-23 | 2021-09-14 | Netapp, Inc. | Methods for dictionary-based compression and devices thereof |
EP4009696A4 (en) * | 2019-08-05 | 2022-09-14 | Huawei Technologies Co., Ltd. | COMMUNICATION METHOD AND DEVICE |
WO2023143264A1 (zh) * | 2022-01-30 | 2023-08-03 | 华为技术有限公司 | 数据压缩方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1528052A (zh) * | 2001-03-14 | 2004-09-08 | ��˹��ŵ�� | 用于提供消息压缩的上下文的方法和系统 |
US20130346483A1 (en) * | 2012-06-25 | 2013-12-26 | Radware, Ltd. | System and method for creation, distribution, application, and management of shared compression dictionaries for use in symmetric http networks |
CN103891150A (zh) * | 2011-10-01 | 2014-06-25 | 英特尔公司 | 用于高带宽字典压缩的压缩格式 |
CN104081739A (zh) * | 2011-12-23 | 2014-10-01 | 阿卡麦科技公司 | 在覆盖网络中利用压缩和差异化引擎的基于主机/路径的数据差异化 |
CN104917786A (zh) * | 2014-03-11 | 2015-09-16 | 杭州雾隐美地传媒有限公司 | 一种节省客户端和服务器交互时的传输流量的方法和模块 |
CN105634801A (zh) * | 2015-12-25 | 2016-06-01 | 北京奇虎科技有限公司 | 更新数据的方法及装置 |
CN105956046A (zh) * | 2016-04-25 | 2016-09-21 | 广州神马移动信息科技有限公司 | 一种字典的更新方法、系统和服务器 |
-
2017
- 2017-08-14 CN CN201710690864.4A patent/CN107645538A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1528052A (zh) * | 2001-03-14 | 2004-09-08 | ��˹��ŵ�� | 用于提供消息压缩的上下文的方法和系统 |
CN103891150A (zh) * | 2011-10-01 | 2014-06-25 | 英特尔公司 | 用于高带宽字典压缩的压缩格式 |
CN104081739A (zh) * | 2011-12-23 | 2014-10-01 | 阿卡麦科技公司 | 在覆盖网络中利用压缩和差异化引擎的基于主机/路径的数据差异化 |
US20130346483A1 (en) * | 2012-06-25 | 2013-12-26 | Radware, Ltd. | System and method for creation, distribution, application, and management of shared compression dictionaries for use in symmetric http networks |
CN104917786A (zh) * | 2014-03-11 | 2015-09-16 | 杭州雾隐美地传媒有限公司 | 一种节省客户端和服务器交互时的传输流量的方法和模块 |
CN105634801A (zh) * | 2015-12-25 | 2016-06-01 | 北京奇虎科技有限公司 | 更新数据的方法及装置 |
CN105956046A (zh) * | 2016-04-25 | 2016-09-21 | 广州神马移动信息科技有限公司 | 一种字典的更新方法、系统和服务器 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4009696A4 (en) * | 2019-08-05 | 2022-09-14 | Huawei Technologies Co., Ltd. | COMMUNICATION METHOD AND DEVICE |
US11122095B2 (en) | 2019-09-23 | 2021-09-14 | Netapp, Inc. | Methods for dictionary-based compression and devices thereof |
US11444997B2 (en) | 2019-09-23 | 2022-09-13 | Netapp, Inc. | Methods for dictionary-based compression and devices thereof |
CN111193752A (zh) * | 2020-02-28 | 2020-05-22 | 广州市百果园信息技术有限公司 | 一种数据压缩的方法、装置、压缩服务器和存储介质 |
CN111782660A (zh) * | 2020-07-17 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 基于键值存储的数据压缩的方法和系统 |
WO2023143264A1 (zh) * | 2022-01-30 | 2023-08-03 | 华为技术有限公司 | 数据压缩方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107645538A (zh) | 提供动态压缩字典的方法及装置和电子设备 | |
CN104054068B (zh) | 用于远程桌面协议的改进的带宽优化 | |
KR100289520B1 (ko) | 웹브라우저애플리케이션의성능향상방법및장치,클라이언트/서버시스템의성능향상방법및장치 | |
US9727574B2 (en) | System and method for applying an efficient data compression scheme to URL parameters | |
CN103907327B (zh) | 电信网络中的不显眼内容压缩 | |
CN102316536B (zh) | 一种调整网页内容的方法及网关 | |
US7640362B2 (en) | Adaptive compression in an edge router | |
JP2009518755A (ja) | 無線装置と通信するためにデータを圧縮/解凍するための方法及び装置 | |
JPH11500250A (ja) | 差分化通信システム | |
CN107948324A (zh) | 请求传输系统、方法、装置及存储介质 | |
MXPA03011150A (es) | Sistema y metodo para incrementar el ancho de banda efectivo de una red de comunicaciones. | |
CN108200165A (zh) | 请求传输系统、方法、装置及存储介质 | |
JP5753946B2 (ja) | フォントファイルをダウンロードする方法およびシステム | |
JP2004531993A (ja) | キャッシュ及び空白化手法を用いてテキストベースの圧縮を行なうための装置と方法 | |
Gutwin et al. | Improving network efficiency in real-time groupware with general message compression | |
CN112350979B (zh) | 数据传输方法和设备 | |
JP2007523424A (ja) | 状態メモリ管理の方法及び装置 | |
CN1316748C (zh) | 使用请求-应答通信模式用于数据压缩的通信系统和方法 | |
CN110704361A (zh) | Rdma数据发送及接收方法、电子设备及可读存储介质 | |
JP4031516B2 (ja) | サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム | |
KR20020008579A (ko) | 압축기능을 갖는 웹 프락시 솔루션 | |
CN108833135A (zh) | 一种Mesh组网管理方法、管理设备以及延长器 | |
CN106790494A (zh) | 一种地址信息的更新方法和缓存设备 | |
Preet et al. | Comparison of various routing and compression algorithms: a comparative study of various algorithms in wireless networking | |
CN116827826B (zh) | 边缘节点的评估方法、装置以及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180130 |
|
RJ01 | Rejection of invention patent application after publication |