CN103685589B - 基于二进制编码的dns数据压缩、解压缩方法及系统 - Google Patents
基于二进制编码的dns数据压缩、解压缩方法及系统 Download PDFInfo
- Publication number
- CN103685589B CN103685589B CN201210333176.XA CN201210333176A CN103685589B CN 103685589 B CN103685589 B CN 103685589B CN 201210333176 A CN201210333176 A CN 201210333176A CN 103685589 B CN103685589 B CN 103685589B
- Authority
- CN
- China
- Prior art keywords
- time
- data
- record
- information
- domain
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于二进制编码的DNS数据压缩、解压缩方法及系统,属于计算机网络技术领域。其中,DNS数据压缩方法为:1)从数据源文件中读取日志信息后,将数据打包放到一缓存队列中;2)数据压缩模块从该数据缓存队列中取出数据并压缩后,将其存储到一压缩信息缓存中;3)从该压缩信息缓存中取出数据并进行二进制编码后保存到一结果文件中。解压缩方法为:1)将结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中;2)从缓存中取出数据,将其存储到一解压信息缓存中;3)从解压信息缓存中取出数据并进行解压得到日志记录信息。本方法实现了日志的高比例压缩,而且压缩的文件还能用gzip进一步压缩。
Description
技术领域
本发明涉及一种基于二进制编码的DNS数据压缩、解压缩方法及系统,属于计算机网络技术领域。
背景技术
域名系统(Domain Name System,DNS)是互联网基础设施提供的一项核心服务,系统包括可以将域名和IP地址相互映射的一个分布式数据库,以及实现域名和网络可以识别的IP地址转换功能的系统。
DNS经过几十年的发展,已经成为目前全球最大、最复杂的分布式数据库系统,具有良好的扩展性和高效的解析性能。同时,巨大的工作量使得DNS系统产生了海量的数据。现有的系统一般都是使用字符编码的方式保留原始日志。
现有技术的缺陷是:
DNS海量的查询和应答服务产生了巨大日志量,一方面这些日志需要在本地进行保存,另一方面很多任务都需要跨地区、跨网段进行日志传输。目前缺乏一种稳定有效的日志压缩技术来提高日志保存和传输的效率。因此,如果开发出能稳定高效运行的日志压缩系统能大大的推动目前的各项工作。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种基于二进制编码的DNS数据压缩、解压缩方法及系统;本发明改进的方向为:
1)设计高效的DNS信息压缩算法;
2)使用二进制编码方式进行日志存储,提高压缩比例;
3)设计优良的系统架构,保证系统能进行企业级应用。
本发明的技术方案为:
一种基于二进制编码的DNS数据压缩、解压缩系统,其特征在于包括一数据读取模块,一二进制编码模块,一数据压缩模块,一二进制解码模块,一数据解压模块;其中
所述数据读取模块,用于从DNS数据源文件中读取日志信息后,将数据打包放到一缓存队列中;
所述数据压缩模块,用于从所述数据缓存队列中取出数据并压缩后,将其存储到一压缩信息缓存中;
所述二进制编码模块,用于从所述压缩信息缓存中取出数据并进行二进制编码后保存到一结果文件中;
所述二进制解码模块,用于将所述结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中;
所述数据解压模块,用于从压缩信息缓存中取出数据,将其存储到一解压信息缓存中;然后从该解压信息缓存中取出数据并进行解压得到日志记录信息。
一种基于二进制编码的DNS数据压缩方法,其步骤为:
1)数据读取模块从DNS数据源文件中读取日志信息后,将数据打包放到一缓存队列中;
2)数据压缩模块从该数据缓存队列中取出数据并压缩后,将其存储到一压缩信息缓存中;
3)二进制编码模块从该压缩信息缓存中取出数据并进行二进制编码后保存到一结果文件中。
进一步的,采用可变长度整型编码规则进行所述二进制编码;所述可变长度整型编码的最大长度为128字节。
进一步的,二进制编码后的每个数据域包括标志字段和数据字段两部分;其中,标志字段用于指明数据的类型和数据在消息结构体中的序号,数据字段用于存储数据的值;一个DNS数据包二进制编码后对应一个消息结构体。
进一步的,所述数据压缩模块对日志信息中的时间数据信息进行压缩,其方法为:首先从所述缓存队列中读取一条记录,如果是首条记录则保留该记录完整的时间格式;否则判断当前记录的在设定级时间域及其上级时间域的时间与上一条记录的对应级时间域是否相等,如果相等,则只保留设定级时间域下一级时间的时间;如果不相等,则判断当前记录时间与上一记录时间间隔是否大于设定阈值,如果大于该阈值,则保留当前记录完整的时间格式,否则比较设定级时间域下一级时间的时间,如果当前记录设定级时间域下一级时间小于上一条记录对应时间,则只保留当前记录设定级时间域的下一级时间域的时间,否则保留当前记录完整的时间格式。
进一步的,所述设定级时间域为秒时间域,所述阈值为1秒。
进一步的,从缓存队列取出数据的时候,用哈希表做为域名和IP地址信息压缩的辅助结构。
进一步的,所述数据压缩模块对日志信息中的域名数据和IP数据信息进行压缩;a)对于域名数据进行压缩的方法为:从所述缓存队列中读取一条记录,在所述哈希链表中搜索该记录中的域名;如果存在该域名,则将该域名在哈希链表中的哈希位置保存到所述结果文件中,如果不存在该域名,则在所述哈希链表中为该域名构建结点并将该域名保存到所述结果文件中;b)对于IP地址数据信息进行压缩的方法为:从所述缓存队列中读取一条记录,在所述哈希链表中搜索该记录中的IP地址;如果存在该IP,则将该IP在哈希链表中的哈希位置保存到所述结果文件中,如果不存在该IP,则在所述哈希链表中为该IP构建结点并将该IP保存到所述结果文件中。
一种基于二进制编码的DNS数据压缩文件的解压缩方法,其步骤为:
1)二进制解码模块将结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中;
2)数据解压模块从压缩信息缓存中取出数据,将其存储到一解压信息缓存中;
3)数据解压模块从该解压信息缓存中取出数据并进行解压得到日志记录信息。
进一步的,所述数据解压模块从该解压信息缓存中取出数据,对时间数据进行解压,其方法为:首先从所述解压信息缓存中读取一条记录,如果是完整的时间格式,则将其设为基准时间;否则判断当前记录的时间域的时间是否大于或等于上一条记录的对应时间域的时间,如果是,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式;如果小于,则利用上一条记录的完整格式时间将当前记录的时间域的上一级时间域加1并判断上一级时间域是否需要进制,如需要进制则利用上一条记录的完整格式时间进行调整并继续逐级判断是否需要进制,合成当前记录的完整时间格式;如果不需要进制,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式;其中,所述时间域为微秒时间域。
进一步的,所述数据解压模块从该解压信息缓存中取出数据,对域名数据和IP数据进行解压;a)对于域名数据,其解压方法为:从所述解压信息缓存中读取一条记录,如果域名为完整格式,则将其加入到哈希链表中并返回;如果域名信息为所述哈希链表中的位置信息,则根据该位置信息从所述哈希链表相应位置处读出域名的完整格式,并返回;b)对于IP数据,其解压方法为:从所述解压信息缓存中读取一条记录,如果IP为完整格式,则将其加入到哈希链表中并返回;如果IP信息为所述哈希链表中的位置信息,则根据该位置信息从所述哈希链表相应位置处读出IP的完整格式,并返回。
本发明整个系统由数据读取模块(即文件I/O)、数据压缩和数据解压三个部分组成。系统的进程模型如图1所示。
缓存使用了“生产者-消费者”模式,文件I/O模块做为“生产者”从源文件(DNS数据源文件为DNS服务产生的原始日志文件,一般采用字符编码方式保存)中读取信息后,将数据打包放到缓存队列中;而数据处理模块(压缩/解压模块)则作为“消费者”,将数据从缓存中取出并进行处理。其中,压缩模块会根据算法,得到压缩后的数据信息,这时,压缩模块成为了“生产者”将信息存入到压缩信息缓存(即用来存储压缩信息的缓存)中,文件I/O模块这时候成为了“消费者”,从压缩信息缓存中取出数据,并保存到结果文件中;解压模块的处理流程类似,首先二进制解码模块将结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中(即用来存储二进制编码解压后信息的缓存);然后数据解压模块从压缩信息缓存中取出数据,将其存储到一解压信息缓存中(即用来存储压缩信息的缓存);数据解压模块从该解压信息缓存中取出数据并进行解压得到日志记录信息。数据解压模块还原压缩前的信息,并写入到解压结果文件中。
数据压缩总的思想原则是:“去除不需要的信息,压缩冗余的数据”。在DNS信息中,时间,查询类型、IP和域名这四类信息对于分析系统进行各种数据分析统计最重要,其中时间、IP和域名这三类信息在日志文件中存在大量的冗余信息,所以可以针对这三类数据,使用特定算法,去除冗余,用较小的空间来表示相同的内容,这样就得到了特定的压缩信息。
解压模块从“压缩结果文件”中读取信息,并通过算法还原压缩前的信息,并把信息写入到解压结果文件。压缩模块主要是针对时间、IP和域名进行了压缩,所以解压模块也是针对这三个部分的信息进行解压还原。
同时,所有的信息在磁盘上保存时使用了二进制编码,这样就再一次对存储空间进行了压缩,大大节省了存储空间。原理如下所述。
系统的数字使用了“基于128的可变长度整型”编码规则(最大长度为128字节)。这种方法是用一系列的字节来表示一个任意大小的数字,其中字节的长度是可变长的,类似于字符串。
这个可变长度整型中的每个字节的第一个比特用做“标志位”,如果标志位是1,则表示这个字节非该可变长度整型的最后一个字节;如果标志位是0,则表示该字节是这个可变长度整型的最后一个字节。而标志位后面的7个比特用于组成该可变长度整型的值。同时,组成该可变长度整型的字节采用“低位在前”的表示方式。如下就是几个表示的例子。
1)“00000001”。其中第一个比特为0,表示该字节是最后一个字节,随后的7个比特位组成了这个可变长度整型的值,所以这个变长整形的值是1.
2)“1010110000000010”。其中第一个字节的第一个位是1,表示该字节非最后一个字节;第二个字节的第一个位是0,表示该字节是最后一个字节。于是,组成该可变长度整型的数字段为:“0101100”和“0000010”。又因为采用了“低位在前”的表示方式,所以,该数字的值为“00000100101100”,十进制表示为:300
在系统中每个数据域都由“标志字段”和“数据字段”组成。其中,标志字段指明了该数据的“类型”和“在消息结构体中的序号”,一个DNS数据包二进制编码后对应一个消息结构体;数据字段用于存储数据的值。
数据编码中,用编号0-5分别对应各个类型,每个数据域用三个比特来表示其类型。所用的数据类型如表1所示:
表1、数据编码类型表
TYPE | 意义 | 类型 |
0 | 变量 | int32,int64,uint32,uint64 |
1 | 64bit | double |
2 | 变长 | string,bytes,repeated fields |
3 | start group | Groups |
4 | end group | Groups |
5 | 32bit | fixed32,float |
每个数据域的二进制编码序列的第一个字节就是标志字段,标志字段的后三位表示数据域的数据类型。如编码序列“08 96 15”解析如下:
08----00001000:最后三位000表示数据类型是0,属于可变长度整型。0001表示在消息结构体中的序号为1。
9615---1 0010110 00000001:按照基于128可变长度整型的编码规则可见该数据组成序列是:0000010010110,十进制就是150。
在编码序列中089615就表示了消息结构体中的第二个数据域的值150。
本发明通过高效的压缩算法以及二进制的编码存储方式使得日志容量大大减少,同时合理的系统架构设计使得系统能稳定高效的运行。
首先利用高效的压缩算法对源数据进行压缩,然后在把信息保存到磁盘时,使用了二进制编码的方式,进一步对信息进行压缩,这样就使得日志容量大大减少。同时,合理的系统架构设计使得系统能稳定高效的运行。
与现有技术相比,本发明的技术效果:
本发明通过高效的压缩算法以及二进制编码存储方式实现了日志的高比例压缩,在普通情形下,压缩比能达到30%--40%,理想情况下能达到70%。压缩后的文件还可以继续用gzip压缩,最后的文件可以达到源文件的20%--40%。而且本方法压缩完后的文件还能用gzip进一步压缩。
各个模块同时并行工作,耦合度低,同步机制少,这样使得系统能稳定高效的运行,具备了企业的应用能力。
附图说明
图1为本发明的系统模型图;
图2为压缩时间的算法流程图;
图3保存整个日志域名的哈希链表结构;
图4域名压缩流程图;
图5时间解压算法流程图;
图6域名和IP解压算法流程图。
具体实施方式
1、数据压缩模块
1)时间压缩
在日志文件中,每条记录都保留完整的时间记录,这不是必须的,可以只保留时间域中的一部分信息,形成压缩格式的时间,解压时可以根据记录间的关系还原完整格式的时间;其中时间域包括:年、月、日、时、分、秒、微秒。
压缩时间的算法如图2所示。
时间压缩过程举例如下:
依次从日志中读入5条记录:
(1)读入第一条记录,时间是:20120305122356 916453。这是首条记录,所以最后在压缩文件中记录完整的时间格式:“20120305122356 916453”。
(2)读入第二条记录,时间是:20120305122356 916460,和上一条记录的时间“20120305122356 916453”比较,发现都是56秒,所以最后只在压缩文件中记录微秒“916460”。
(3)读入第三条记录,时间是:20120305122357 916413,和上一条记录的时间“20120305122356 916460”比较,秒的值相差1,微秒部分“916413”小于“916460”,所以最后只在压缩文件中保留记录微秒部分“916413”。
(4)读入第四条记录,时间是:20120305122358 916530,和上一条记录的时间“20120305122357 916413”比较,秒的值相差1,微秒部分“916530”大于“916413”所以,最后在压缩文件中记录完整的格式“20120305122358 916530”。
(5)读入第五条记录,时间是:2012030512401 916530,和上一条记录的时间“20120305122358 916530”比较,秒的值相差3,所以最后在压缩文件中记录完整的格式“2012030512401 916530”。
2)域名和IP压缩
日志中域名记录会占用大量的空间,在对源数据信息进行缓存时,系统中使用一个哈希链表保存整个日志的域名,其存储结构如图3所示。
对每个域名的值进行哈希,得到一个哈希链表位置,在日志中使用哈希表的位置来代替域名字符串,这样就可以节省大量的空间,解压时,再使用相同的哈希算法还原域名字符串。算法流程如图4所示。
域名压缩过程举例如下:
(1)读入一条记录,该记录中的域名为www.sina.com.cn,搜寻哈希表,哈希表中不存在,那么最后在压缩文件中记录完整的域名“www.sina.com.cn”。
(2)读入另外一条记录,该记录中的域名为www.sina.com.cn,搜寻哈希表,哈希表中域名存在,位置为1013(桶号)23(桶中的序号),所以最后在压缩文件中保存的是该域名在哈希表中的位置信息“1013#23”。
哈希表位置表示法使用4个字节表示哈希表中的“桶号”,一个字节表示“序号”。这样使用5个字节就可以表示一个域名,比完整域名的字符串表示,大大节省了空间。
IP地址压缩方法,算法和域名压缩类似。IP地址全部使用整数表示,这样可以节省空间。如果是IPv4地址,则直接将32位整数传给文件I/O模块;如果是IPv6地址,则需要进行压缩,使用哈希表位置信息来代替重复的IP地址。
2数据解压模块
1)时间解压
在压缩文件中存在两种时间格式。一种是完整的时间格式,这钟格式的时间信息不需要进行解压操作;另一种是压缩的时间格式,需要根据解压算法将其还原成完整的时间信息。时间解压算法如图5所示。
时间解压过程举例如下:
(1)读入一条记录:时间为:20120305122358 916453,是完整格式,所以,将其设为基准时间;
(2)读入一条记录:时间值为:916331,这是压缩格式916331小于基准时间的微秒916453,
所以将基准时间的秒加1,这时基准时间的秒变成“59”,因为59<60,所以,最后利用基准时间的年月日时分秒和当前时间的微秒拼成完整格式的当前时间:“20120305122357916331”,这个值就是解压后得到的时间值,同时将基准时间设为当前时间。
(3)读入一条记录,时间值为:816334,这是压缩格式,因为816334小于基准时间的微秒916331,所以,将基准时间的秒加1,此时为59+1=60,因此,应该同时调整基准时间的秒和分,分的值为:23+1=34,秒的值为:60-60=0,此时基准时间的年月日时分秒为:20120305122400,因此合成的当前完整时间为:“20120305122400816334”,这个值就是解压后得到的时间值,并把当前时间设为基准时间
(4)读入一条记录,时间为:903332,这是压缩格式,因为903332大于基准时间的微秒,利用基准时间的年月日时分秒和当前微秒值拼成当前的完整时间:“20120305122400903332”,这个值就是解压后得到的时间值,并把当前时间设为基准时间。
解压时,需要多次调整时间。调整“秒”时,如果秒的值大于60秒,就又需要继续调整“分”,如果,此时,“分”大于60分,则需要继续调整“小时”,依次类推,直到最后的“年”被调整为合理的值,然后利用基准时间得到完整的时间格式。
2)域名和IP解压
压缩文件中的域名格式有两种:1)完整格式的域名,不需要解压,需要将其加入到哈希表中以后供非完整格式的域名解压利用;2)非完整格式的域名,它由两个数字组成,指明了域名信息在哈希表中的位置,需要访问哈希表并取得完整格式的域名。算法如图6所示。
域名解压过程如下:
(1)读入一条记录,域名为:www.baidu.com,这是完整格式,将其加入到哈希表中,,这个值就是完整的压缩前的域名。
(2)读入一条记录,域名为:www.cnnic.cn,这是完整格式,将其加入到哈希表中,这个值就是完整的压缩前的域名。
(3)读入一条记录,域名为:1013#23,这是压缩格式,1013和23指明了域名在哈希表中的位置,从哈希表中相应的位置处读出域名的完整格式,取到的值就是完整的压缩前的域名。
IP的解压过程,逻辑处理和流程和域名解压一模一样,只是处理的信息变成了“IP地址”。
Claims (7)
1.一种基于二进制编码的DNS数据压缩方法,其步骤为:
1)数据读取模块从DNS数据源文件中读取日志信息后,将数据打包放到一缓存队列中;
2)数据压缩模块从该数据缓存队列中取出数据并压缩后,将其存储到一压缩信息缓存中;
3)二进制编码模块从该压缩信息缓存中取出数据并进行二进制编码后保存到一结果文件中;
其中,所述数据压缩模块对日志信息中的时间数据信息进行压缩的方法为:首先从所述缓存队列中读取一条记录,如果是首条记录则保留该记录完整的时间格式;否则判断当前记录的在设定级时间域及其上级时间域的时间与上一条记录的对应级时间域是否相等,如果相等,则只保留设定级时间域下一级时间的时间;如果不相等,则判断当前记录时间与上一记录时间间隔是否大于设定阈值,如果大于该阈值,则保留当前记录完整的时间格式,否则比较设定级时间域下一级时间的时间,如果当前记录设定级时间域下一级时间小于上一条记录对应时间,则只保留当前记录设定级时间域的下一级时间域的时间,否则保留当前记录完整的时间格式。
2.如权利要求1所述的方法,其特征在于采用可变长度整型编码规则进行所述二进制编码;所述可变长度整型编码的最大长度为128字节。
3.如权利要求2所述的方法,其特征在于二进制编码后的每个数据域包括标志字段和数据字段两部分;其中,标志字段用于指明数据的类型和数据在消息结构体中的序号,数据字段用于存储数据的值;一个DNS数据包二进制编码后对应一个消息结构体。
4.如权利要求1所述的方法,其特征在于所述数据压缩模块对日志信息中的域名数据和IP数据信息进行压缩;a)对于域名数据进行压缩的方法为:从所述缓存队列中读取一条记录,在哈希链表中搜索该记录中的域名;如果存在该域名,则将该域名在哈希链表中的哈希位置保存到所述结果文件中,如果不存在该域名,则在所述哈希链表中为该域名构建结点并将该域名保存到所述结果文件中;b)对于IP地址数据信息进行压缩的方法为:从所述缓存队列中读取一条记录,在所述哈希链表中搜索该记录中的IP地址;如果存在该IP,则将该IP在哈希链表中的哈希位置保存到所述结果文件中,如果不存在该IP,则在所述哈希链表中为该IP构建结点并将该IP保存到所述结果文件中。
5.一种基于二进制编码的DNS数据压缩文件的解压缩方法,其步骤为:
1)二进制解码模块将结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中;
2)数据解压模块从压缩信息缓存中取出数据,将其存储到一解压信息缓存中;
3)数据解压模块从该解压信息缓存中取出数据并进行解压得到日志记录信息;
其中,所述数据解压模块从该解压信息缓存中取出数据,对时间数据进行解压的方法为:首先从所述解压信息缓存中读取一条记录,如果是完整的时间格式,则将其设为基准时间;否则判断当前记录的时间域的时间是否大于或等于上一条记录的对应时间域的时间,如果是,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式;如果小于,则利用上一条记录的完整格式时间将当前记录的时间域的上一级时间域加1并判断上一级时间域是否需要进制,如需要进制则利用上一条记录的完整格式时间进行调整并继续逐级判断是否需要进制,合成当前记录的完整时间格式;如果不需要进制,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式;其中,所述时间域为微秒时间域。
6.如权利要求5所述的方法,其特征在于所述数据解压模块从该解压信息缓存中取出数据,对域名数据和IP数据进行解压;a)对于域名数据,其解压方法为:从所述解压信息缓存中读取一条记录,如果域名为完整格式,则将其加入到哈希链表中并返回;如果域名信息为所述哈希链表中的位置信息,则根据该位置信息从所述哈希链表相应位置处读出域名的完整格式,并返回;b)对于IP数据,其解压方法为:从所述解压信息缓存中读取一条记录,如果IP为完整格式,则将其加入到哈希链表中并返回;如果IP信息为所述哈希链表中的位置信息,则根据该位置信息从所述哈希链表相应位置处读出IP的完整格式,并返回。
7.一种基于二进制编码的DNS数据压缩、解压缩系统,其特征在于包括一数据读取模块,一二进制编码模块,一数据压缩模块,一二进制解码模块,一数据解压模块;其中
所述数据读取模块,用于从DNS数据源文件中读取日志信息后,将数据打包放到一缓存队列中;
所述数据压缩模块,用于从所述数据缓存队列中取出数据并压缩后,将其存储到一压缩信息缓存中;
所述二进制编码模块,用于从所述压缩信息缓存中取出数据并进行二进制编码后保存到一结果文件中;
所述二进制解码模块,用于将所述结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中;
所述数据解压模块,用于从压缩信息缓存中取出数据,将其存储到一解压信息缓存中;然后从该解压信息缓存中取出数据并进行解压得到日志记录信息;
其中,所述数据压缩模块对日志信息中的时间数据信息进行压缩,其方法为:首先从所述缓存队列中读取一条记录,如果是首条记录则保留该记录完整的时间格式;否则判断当前记录的在设定级时间域及其上级时间域的时间与上一条记录的对应级时间域是否相等,如果相等,则只保留设定级时间域下一级时间的时间;如果不相等,则判断当前记录时间与上一记录时间间隔是否大于设定阈值,如果大于该阈值,则保留当前记录完整的时间格式,否则比较设定级时间域下一级时间的时间,如果当前记录设定级时间域下一级时间小于上一条记录对应时间,则只保留当前记录设定级时间域的下一级时间域的时间,否则保留当前记录完整的时间格式;所述数据解压模块从解压信息缓存中取出数据,对时间数据进行解压,其方法为:首先从所述解压信息缓存中读取一条记录,如果是完整的时间格式,则将其设为基准时间;否则判断当前记录的时间域的时间是否大于或等于上一条记录的对应时间域的时间,如果是,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式;如果小于,则利用上一条记录的完整格式时间将当前记录的时间域的上一级时间域加1并判断上一级时间域是否需要进制,如需要进制则利用上一条记录的完整格式时间进行调整并继续逐级判断是否需要进制,合成当前记录的完整时间格式;如果不需要进制,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210333176.XA CN103685589B (zh) | 2012-09-07 | 2012-09-07 | 基于二进制编码的dns数据压缩、解压缩方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210333176.XA CN103685589B (zh) | 2012-09-07 | 2012-09-07 | 基于二进制编码的dns数据压缩、解压缩方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103685589A CN103685589A (zh) | 2014-03-26 |
CN103685589B true CN103685589B (zh) | 2017-01-25 |
Family
ID=50321860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210333176.XA Active CN103685589B (zh) | 2012-09-07 | 2012-09-07 | 基于二进制编码的dns数据压缩、解压缩方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103685589B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017037502A1 (en) * | 2015-08-29 | 2017-03-09 | Chan Kam Fu | Compression code and method by location |
CN105357212A (zh) * | 2015-11-23 | 2016-02-24 | 北京天地互连信息技术有限公司 | 一种保证安全和隐私的dns端到端解析方法 |
CN105516307A (zh) * | 2015-12-09 | 2016-04-20 | 浪潮电子信息产业股份有限公司 | 一种基于压缩的优化云存储系统日志存储的方法 |
CN106877877B (zh) * | 2017-02-28 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种在线数据压缩在存储中的集成方法及系统 |
CN109995373B (zh) * | 2018-01-03 | 2023-08-15 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
CN108268658B (zh) * | 2018-02-06 | 2021-02-26 | 政采云有限公司 | 基于MySQL数据库的大文本字段存储方法和系统 |
CN108600405A (zh) * | 2018-03-14 | 2018-09-28 | 中国互联网络信息中心 | 一种加速dns解析软件日志记录的方法和系统 |
CN110417923B (zh) * | 2018-04-26 | 2021-10-29 | 阿里巴巴集团控股有限公司 | 一种dns报文处理方法、装置及设备 |
CN108989484A (zh) * | 2018-08-07 | 2018-12-11 | 北京奇安信科技有限公司 | 一种域名系统dns日志的压缩存储方法及装置 |
CN109165144B (zh) * | 2018-09-06 | 2023-06-13 | 南京聚铭网络科技有限公司 | 一种基于变长记录的安全日志压缩存储和检索方法 |
CN110413481A (zh) * | 2019-07-25 | 2019-11-05 | 厦门市美亚柏科信息股份有限公司 | 用于日志取证分析的方法、装置及计算机可读介质 |
CN112702445B (zh) * | 2019-10-23 | 2023-04-07 | 中盈优创资讯科技有限公司 | 基于dns响应数据报文的递归日志提取方法及装置 |
CN112527753B (zh) * | 2020-12-11 | 2023-05-26 | 平安科技(深圳)有限公司 | Dns解析记录无损压缩方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859686A (zh) * | 2005-07-07 | 2006-11-08 | 上海华为技术有限公司 | 一种记录小区日志的实现方法 |
CN101163046A (zh) * | 2007-11-22 | 2008-04-16 | 北京金山软件有限公司 | 一种分布式网站日志数据采集方法和分布式网站系统 |
CN101320348A (zh) * | 2008-06-25 | 2008-12-10 | 中兴通讯股份有限公司 | 一种嵌入式系统的日志功能实现方法 |
-
2012
- 2012-09-07 CN CN201210333176.XA patent/CN103685589B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859686A (zh) * | 2005-07-07 | 2006-11-08 | 上海华为技术有限公司 | 一种记录小区日志的实现方法 |
CN101163046A (zh) * | 2007-11-22 | 2008-04-16 | 北京金山软件有限公司 | 一种分布式网站日志数据采集方法和分布式网站系统 |
CN101320348A (zh) * | 2008-06-25 | 2008-12-10 | 中兴通讯股份有限公司 | 一种嵌入式系统的日志功能实现方法 |
Non-Patent Citations (1)
Title |
---|
一种高效的DNS 日志压缩算法;王艳峰 等;《计算机工程》;20100831;第36卷(第15期);正文第2节,图1-3 * |
Also Published As
Publication number | Publication date |
---|---|
CN103685589A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103685589B (zh) | 基于二进制编码的dns数据压缩、解压缩方法及系统 | |
US7358874B2 (en) | Data compression using a stream selector with edit-in-place capability for compressed data | |
CN112953550B (zh) | 数据压缩的方法、电子设备及存储介质 | |
KR20190117652A (ko) | 압축된 게놈 서열 리드로부터 게놈 참조 서열의 복원 방법 및 시스템 | |
CN111629081B (zh) | 互联网协议ip地址数据处理方法、装置及电子设备 | |
KR101969848B1 (ko) | 유전자 데이터를 압축하는 방법 및 장치 | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
CN101222476A (zh) | 一种可扩展标记语言文件编辑器、文件传输方法及系统 | |
CN108696492A (zh) | Ip报文的处理方法与装置 | |
CN113094346A (zh) | 基于时间序列的大数据编解码方法及装置 | |
CN112527736A (zh) | 基于dna的数据存储方法、数据恢复方法及终端设备 | |
Hernández-Illera et al. | Serializing RDF in compressed space | |
CN105574021A (zh) | 一种数据库的数据压缩方法和装置 | |
US20130063287A1 (en) | Decoding encoded data | |
Skibiński et al. | Fast and efficient log file compression | |
CN113297208A (zh) | 数据处理方法及装置 | |
CA2770348A1 (en) | Compression of bitmaps and values | |
CN105302915A (zh) | 基于内存计算的高性能数据处理系统 | |
CN102023978A (zh) | 一种海量数据处理方法及系统 | |
CN111061722A (zh) | 一种数据压缩、数据解压缩方法、装置及设备 | |
CN103198127B (zh) | 大文件排序方法及系统 | |
CN102693315A (zh) | 一种基于共享内存映射的url去重方法及装置 | |
CN116707532A (zh) | 一种压缩文本的解压方法、装置、存储介质及电子设备 | |
Skibiński et al. | Combining efficient XML compression with query processing | |
WO2009001174A1 (en) | System and method for data compression and storage allowing fast retrieval |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210207 Address after: 100190 room 506, building 2, courtyard 4, South 4th Street, Zhongguancun, Haidian District, Beijing Patentee after: CHINA INTERNET NETWORK INFORMATION CENTER Address before: 100190 No. four, 4 South Street, Haidian District, Beijing, Zhongguancun Patentee before: Computer Network Information Center, Chinese Academy of Sciences |