CN103685589A - 基于二进制编码的dns数据压缩、解压缩方法及*** - Google Patents

基于二进制编码的dns数据压缩、解压缩方法及*** Download PDF

Info

Publication number
CN103685589A
CN103685589A CN201210333176.XA CN201210333176A CN103685589A CN 103685589 A CN103685589 A CN 103685589A CN 201210333176 A CN201210333176 A CN 201210333176A CN 103685589 A CN103685589 A CN 103685589A
Authority
CN
China
Prior art keywords
time
data
record
domain
information
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.)
Granted
Application number
CN201210333176.XA
Other languages
English (en)
Other versions
CN103685589B (zh
Inventor
阳任科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Internet Network Information Center
Original Assignee
Computer Network Information Center of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Computer Network Information Center of CAS filed Critical Computer Network Information Center of CAS
Priority to CN201210333176.XA priority Critical patent/CN103685589B/zh
Publication of CN103685589A publication Critical patent/CN103685589A/zh
Application granted granted Critical
Publication of CN103685589B publication Critical patent/CN103685589B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于二进制编码的DNS数据压缩、解压缩方法及***,属于计算机网络技术领域。其中,DNS数据压缩方法为:1)从数据源文件中读取日志信息后,将数据打包放到一缓存队列中;2)数据压缩模块从该数据缓存队列中取出数据并压缩后,将其存储到一压缩信息缓存中;3)从该压缩信息缓存中取出数据并进行二进制编码后保存到一结果文件中。解压缩方法为:1)将结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中;2)从缓存中取出数据,将其存储到一解压信息缓存中;3)从解压信息缓存中取出数据并进行解压得到日志记录信息。本方法实现了日志的高比例压缩,而且压缩的文件还能用gzip进一步压缩。

Description

基于二进制编码的DNS数据压缩、解压缩方法及***
技术领域
本发明涉及一种基于二进制编码的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.***.com,这是完整格式,将其加入到哈希表中,,这个值就是完整的压缩前的域名。
(2)读入一条记录,域名为:www.cnnic.cn,这是完整格式,将其加入到哈希表中,这个值就是完整的压缩前的域名。
(3)读入一条记录,域名为:1013#23,这是压缩格式,1013和23指明了域名在哈希表中的位置,从哈希表中相应的位置处读出域名的完整格式,取到的值就是完整的压缩前的域名。
IP的解压过程,逻辑处理和流程和域名解压一模一样,只是处理的信息变成了“IP地址”。

Claims (10)

1.一种基于二进制编码的DNS数据压缩方法,其步骤为:
1)数据读取模块从DNS数据源文件中读取日志信息后,将数据打包放到一缓存队列中;
2)数据压缩模块从该数据缓存队列中取出数据并压缩后,将其存储到一压缩信息缓存中;
3)二进制编码模块从该压缩信息缓存中取出数据并进行二进制编码后保存到一结果文件中。
2.如权利要求1所述的方法,其特征在于采用可变长度整型编码规则进行所述二进制编码;所述可变长度整型编码的最大长度为128字节。
3.如权利要求2所述的方法,其特征在于二进制编码后的每个数据域包括标志字段和数据字段两部分;其中,标志字段用于指明数据的类型和数据在消息结构体中的序号,数据字段用于存储数据的值;一个DNS数据包二进制编码后对应一个消息结构体。
4.如权利要求1所述的方法,其特征在于所述数据压缩模块对日志信息中的时间数据信息进行压缩,其方法为:首先从所述缓存队列中读取一条记录,如果是首条记录则保留该记录完整的时间格式;否则判断当前记录的在设定级时间域及其上级时间域的时间与上一条记录的对应级时间域是否相等,如果相等,则只保留设定级时间域下一级时间的时间;如果不相等,则判断当前记录时间与上一记录时间间隔是否大于设定阈值,如果大于该阈值,则保留当前记录完整的时间格式,否则比较设定级时间域下一级时间的时间,如果当前记录设定级时间域下一级时间小于上一条记录对应时间,则只保留当前记录设定级时间域的下一级时间域的时间,否则保留当前记录完整的时间格式。
5.如权利要求1所述的方法,其特征在于所述数据压缩模块对日志信息中的域名数据和IP数据信息进行压缩;a)对于域名数据进行压缩的方法为:从所述缓存队列中读取一条记录,在所述哈希链表中搜索该记录中的域名;如果存在该域名,则将该域名在哈希链表中的哈希位置保存到所述结果文件中,如果不存在该域名,则在所述哈希链表中为该域名构建结点并将该域名保存到所述结果文件中;b)对于IP地址数据信息进行压缩的方法为:从所述缓存队列中读取一条记录,在所述哈希链表中搜索该记录中的IP地址;如果存在该IP,则将该IP在哈希链表中的哈希位置保存到所述结果文件中,如果不存在该IP,则在所述哈希链表中为该IP构建结点并将该IP保存到所述结果文件中。
6.一种基于二进制编码的DNS数据压缩文件的解压缩方法,其步骤为:
1)二进制解码模块将结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中;
2)数据解压模块从压缩信息缓存中取出数据,将其存储到一解压信息缓存中;
3)数据解压模块从该解压信息缓存中取出数据并进行解压得到日志记录信息。
7.如权利要求6所述的方法,其特征在于所述数据解压模块从该解压信息缓存中取出数据,对时间数据进行解压,其方法为:首先从所述解压信息缓存中读取一条记录,如果是完整的时间格式,则将其设为基准时间;否则判断当前记录的时间域的时间是否大于或等于上一条记录的对应时间域的时间,如果是,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式;如果小于,则利用上一条记录的完整格式时间将当前记录的时间域的上一级时间域加1并判断上一级时间域是否需要进制,如需要进制则利用上一条记录的完整格式时间进行调整并继续逐级判断是否需要进制,合成当前记录的完整时间格式;如果不需要进制,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式;其中,所述时间域为微秒时间域。
8.如权利要求6所述的方法,其特征在于所述数据解压模块从该解压信息缓存中取出数据,对域名数据和IP数据进行解压;a)对于域名数据,其解压方法为:从所述解压信息缓存中读取一条记录,如果域名为完整格式,则将其加入到哈希链表中并返回;如果域名信息为所述哈希链表中的位置信息,则根据该位置信息从所述哈希链表相应位置处读出域名的完整格式,并返回;b)对于IP数据,其解压方法为:从所述解压信息缓存中读取一条记录,如果IP为完整格式,则将其加入到哈希链表中并返回;如果IP信息为所述哈希链表中的位置信息,则根据该位置信息从所述哈希链表相应位置处读出IP的完整格式,并返回。
9.一种基于二进制编码的DNS数据压缩、解压缩***,其特征在于包括一数据读取模块,一二进制编码模块,一数据压缩模块,一二进制解码模块,一数据解压模块;其中
所述数据读取模块,用于从DNS数据源文件中读取日志信息后,将数据打包放到一缓存队列中;
所述数据压缩模块,用于从所述数据缓存队列中取出数据并压缩后,将其存储到一压缩信息缓存中;
所述二进制编码模块,用于从所述压缩信息缓存中取出数据并进行二进制编码后保存到一结果文件中;
所述二进制解码模块,用于将所述结果文件中二进制编码压缩日志信息进行二进制编码解压后,保存到压缩信息缓存中;
所述数据解压模块,用于从压缩信息缓存中取出数据,将其存储到一解压信息缓存中;然后从该解压信息缓存中取出数据并进行解压得到日志记录信息。
10.如权利要求9所述的***,其特征在于所述数据压缩模块对日志信息中的时间数据信息进行压缩,其方法为:首先从所述缓存队列中读取一条记录,如果是首条记录则保留该记录完整的时间格式;否则判断当前记录的在设定级时间域及其上级时间域的时间与上一条记录的对应级时间域是否相等,如果相等,则只保留设定级时间域下一级时间的时间;如果不相等,则判断当前记录时间与上一记录时间间隔是否大于设定阈值,如果大于该阈值,则保留当前记录完整的时间格式,否则比较设定级时间域下一级时间的时间,如果当前记录设定级时间域下一级时间小于上一条记录对应时间,则只保留当前记录设定级时间域的下一级时间域的时间,否则保留当前记录完整的时间格式;所述数据解压模块从解压信息缓存中取出数据,对时间数据进行解压,其方法为:首先从所述解压信息缓存中读取一条记录,如果是完整的时间格式,则将其设为基准时间;否则判断当前记录的时间域的时间是否大于或等于上一条记录的对应时间域的时间,如果是,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式;如果小于,则利用上一条记录的完整格式时间将当前记录的时间域的上一级时间域加1并判断上一级时间域是否需要进制,如需要进制则利用上一条记录的完整格式时间进行调整并继续逐级判断是否需要进制,合成当前记录的完整时间格式;如果不需要进制,则利用上一条记录的完整格式时间和当前记录的时间域的时间合成当前记录的完整时间格式。
CN201210333176.XA 2012-09-07 2012-09-07 基于二进制编码的dns数据压缩、解压缩方法及*** Active CN103685589B (zh)

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 true CN103685589A (zh) 2014-03-26
CN103685589B 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)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357212A (zh) * 2015-11-23 2016-02-24 北京天地互连信息技术有限公司 一种保证安全和隐私的dns端到端解析方法
CN105516307A (zh) * 2015-12-09 2016-04-20 浪潮电子信息产业股份有限公司 一种基于压缩的优化云存储***日志存储的方法
WO2017037502A1 (en) * 2015-08-29 2017-03-09 Chan Kam Fu Compression code and method by location
CN106877877A (zh) * 2017-02-28 2017-06-20 郑州云海信息技术有限公司 一种在线数据压缩在存储中的集成方法及***
CN108268658A (zh) * 2018-02-06 2018-07-10 政采云有限公司 基于MySQL数据库的大文本字段存储方法和***
CN108600405A (zh) * 2018-03-14 2018-09-28 中国互联网络信息中心 一种加速dns解析软件日志记录的方法和***
CN108989484A (zh) * 2018-08-07 2018-12-11 北京奇安信科技有限公司 一种域名***dns日志的压缩存储方法及装置
CN109165144A (zh) * 2018-09-06 2019-01-08 南京聚铭网络科技有限公司 一种基于变长记录的安全日志压缩存储和检索方法
CN109995373A (zh) * 2018-01-03 2019-07-09 上海艾拉比智能科技有限公司 一种整数数组的混合打包压缩方法
CN110417923A (zh) * 2018-04-26 2019-11-05 阿里巴巴集团控股有限公司 一种dns报文处理方法、装置及设备
CN110413481A (zh) * 2019-07-25 2019-11-05 厦门市美亚柏科信息股份有限公司 用于日志取证分析的方法、装置及计算机可读介质
CN112527753A (zh) * 2020-12-11 2021-03-19 平安科技(深圳)有限公司 Dns解析记录无损压缩方法、装置、电子设备及存储介质
CN112702445A (zh) * 2019-10-23 2021-04-23 中盈优创资讯科技有限公司 基于dns响应数据报文的递归日志提取方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100384282C (zh) * 2005-07-07 2008-04-23 上海华为技术有限公司 一种记录小区日志的实现方法
CN101163046A (zh) * 2007-11-22 2008-04-16 北京金山软件有限公司 一种分布式网站日志数据采集方法和分布式网站***
CN101320348A (zh) * 2008-06-25 2008-12-10 中兴通讯股份有限公司 一种嵌入式***的日志功能实现方法

Cited By (20)

* Cited by examiner, † Cited by third party
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 苏州浪潮智能科技有限公司 一种在线数据压缩在存储中的集成方法及***
CN106877877A (zh) * 2017-02-28 2017-06-20 郑州云海信息技术有限公司 一种在线数据压缩在存储中的集成方法及***
CN109995373B (zh) * 2018-01-03 2023-08-15 上海艾拉比智能科技有限公司 一种整数数组的混合打包压缩方法
CN109995373A (zh) * 2018-01-03 2019-07-09 上海艾拉比智能科技有限公司 一种整数数组的混合打包压缩方法
CN108268658A (zh) * 2018-02-06 2018-07-10 政采云有限公司 基于MySQL数据库的大文本字段存储方法和***
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报文处理方法、装置及设备
CN110417923A (zh) * 2018-04-26 2019-11-05 阿里巴巴集团控股有限公司 一种dns报文处理方法、装置及设备
CN108989484A (zh) * 2018-08-07 2018-12-11 北京奇安信科技有限公司 一种域名***dns日志的压缩存储方法及装置
CN109165144A (zh) * 2018-09-06 2019-01-08 南京聚铭网络科技有限公司 一种基于变长记录的安全日志压缩存储和检索方法
CN109165144B (zh) * 2018-09-06 2023-06-13 南京聚铭网络科技有限公司 一种基于变长记录的安全日志压缩存储和检索方法
CN110413481A (zh) * 2019-07-25 2019-11-05 厦门市美亚柏科信息股份有限公司 用于日志取证分析的方法、装置及计算机可读介质
CN112702445A (zh) * 2019-10-23 2021-04-23 中盈优创资讯科技有限公司 基于dns响应数据报文的递归日志提取方法及装置
CN112702445B (zh) * 2019-10-23 2023-04-07 中盈优创资讯科技有限公司 基于dns响应数据报文的递归日志提取方法及装置
CN112527753A (zh) * 2020-12-11 2021-03-19 平安科技(深圳)有限公司 Dns解析记录无损压缩方法、装置、电子设备及存储介质
CN112527753B (zh) * 2020-12-11 2023-05-26 平安科技(深圳)有限公司 Dns解析记录无损压缩方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN103685589B (zh) 2017-01-25

Similar Documents

Publication Publication Date Title
CN103685589A (zh) 基于二进制编码的dns数据压缩、解压缩方法及***
CN111629081B (zh) 互联网协议ip地址数据处理方法、装置及电子设备
CN103326732B (zh) 压缩数据的方法、解压数据的方法、编码器和解码器
US8244530B2 (en) Efficient indexing of documents with similar content
CN102024047B (zh) 数据检索方法及装置
EP1866776B1 (en) Method for detecting the presence of subblocks in a reduced-redundancy storage system
CN112953550B (zh) 数据压缩的方法、电子设备及存储介质
CN109241072A (zh) 基于Canal的缓存更新方法及***
CN104715039A (zh) 基于硬盘和内存的列式存储和查询方法及设备
CN103379160A (zh) 一种超大文件的差异同步方法
CN113094346A (zh) 基于时间序列的大数据编解码方法及装置
CN103258030A (zh) 基于字典与游长编码的移动设备内存压缩方法
CN1924854B (zh) 智能移动终端的桌面搜索方法
CN105574021A (zh) 一种数据库的数据压缩方法和装置
CN102023978B (zh) 一种海量数据处理方法及***
CN111008183B (zh) 一种用于业务风控日志数据的存储方法及***
CN105302915A (zh) 基于内存计算的高性能数据处理***
CN101800761A (zh) 一种基于网络字典的无损数据压缩方法
CN103618554B (zh) 基于字典的内存页面压缩方法
CN105320609A (zh) 一种基于移动终端的数据存储方法及***
CN105631000B (zh) 基于移动终端位置特征信息的终端缓存的数据压缩方法
CN104111899A (zh) 一种缓存数据的存储方法及***及读取方法
US8463759B2 (en) Method and system for compressing data
US8988258B2 (en) Hardware compression using common portions of data
Skibiński et al. Combining efficient XML compression with query processing

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

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

TR01 Transfer of patent right