CN110417923A - 一种dns报文处理方法、装置及设备 - Google Patents
一种dns报文处理方法、装置及设备 Download PDFInfo
- Publication number
- CN110417923A CN110417923A CN201810384742.7A CN201810384742A CN110417923A CN 110417923 A CN110417923 A CN 110417923A CN 201810384742 A CN201810384742 A CN 201810384742A CN 110417923 A CN110417923 A CN 110417923A
- Authority
- CN
- China
- Prior art keywords
- domain name
- dns message
- positional shift
- shift value
- bit
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种DNS报文处理方法、装置及设备,若DNS报文中至少一个待处理域名数据包含指定域名,则确定待处理域名数据到指定域名的位置偏移值;比较位置偏移值与第一阈值;若比较结果为位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,位置指针由标识比特和预设比特位数的比特拼接构成,标识比特位于预设比特位数的比特之前;将待处理域名数据中的指定域名替换为位置指针。这可以适用于同一域名出现位置偏移较大的DNS报文,进而单个DNS报文里重复出现的域名无法压缩的情况出现的概率大大降低,使用更少的DNS报文传输相同体量的域名数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种DNS报文处理方法、装置及设备。
背景技术
域名系统DNS(Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网。通过DNS,用户进行某些应用时,可以直接使用域名,而直接由网络中的DNS服务器将域名解析为正确的IP地址。
具体地,DNS客户端通过向DNS服务器发送DNS请求报文(DNS Query),DNS请求报文携带域名,请求获取该域名对应的IP地址。DNS服务器在接收到DNS请求报文以后,根据请求的域名进行查找,并在查找到DNS客户端请求的域名对应的IP地址之后,发送DNS响应报文(DNS Reply)通知DNS客户端,DNS客户端就可以向此IP地址请求网络服务。
其中,在DNS响应报文中包括DNS客户端请求的域名和对应的IP地址。通常情况下,在DNS响应报文中可能会重复出现同一域名,这包括两域名完全相同或该同一域名另一个域名中的一部分内容。
对于这种DNS报文,业界希望可以提供一种有效的处理机制以降低DNS报文的体量。
发明内容
有鉴于此,本申请实施例提供了一种DNS报文处理方法、装置及设备,用于解决现有技术中DNS报文因重复出现同一域名而造成体量过大的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种DNS报文处理方法,包括:
若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
若比较结果为所述位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
将所述待处理域名数据中的指定域名替换为所述位置指针。
本申请实施例还提供一种DNS报文处理装置,包括:
位置偏移确定模块,若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较模块,比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
位置指针确定模块,根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
替换模块,将所述待处理域名数据中的指定域名替换为所述位置指针。
本申请实施例还提供一种电子设备,包括至少一个处理器及存储器,存储器存储有程序,并且被配置成由至少一个处理器执行以下步骤:
若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
若比较结果为所述位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
将所述待处理域名数据中的指定域名替换为所述位置指针。
本申请实施例还提供一种计算机可读存储介质,包括与电子设备结合使用的程序,程序可被处理器执行以完成以下步骤:
若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
若比较结果为所述位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
将所述待处理域名数据中的指定域名替换为所述位置指针。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
首先确定DNS报文中的当前至少一个待处理域名数据是否包含已出现的指定域名,若包含已出现的指定域名,则可以确定待处理域名数据到指定域名的位置偏移值。接着,比较该位置偏移值与第一阈值,该第一阈值可以是根据预设比特位数确定的。若比较结果为该位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;将所述待处理域名数据中的指定域名替换为所述位置指针。因此,位置指针对应的位置偏移值范围可以由标识比特和预设比特位数的比特共同所决定。本申请实施例记载的技术方案可以适用于同一域名出现位置偏移较大的DNS报文,进而单个DNS报文里重复出现的域名无法压缩的情况出现的概率大大降低,进而可以使用本方法压缩更多的报文,使用更少的DNS报文传输相同体量的域名数据,达到提高域名数据传输速度,减轻DNS服务器负载的目的。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种DNS报文处理方法的流程图;
图2为本说明书实施例提供的一种DNS报文的示例图;
图3为本说明书实施例提供的一种DNS报文处理方法的一个应用示例图;
图4为本说明书实施例提供的一种DNS报文处理方法的另一个应用示例图;
图5为本说明书实施例提供的一种DNS报文处理方法的另一个应用示例图;
图6为本申请实施例提供的一种DNS报文处理装置的结构示意图。
具体实施方式
对现有技术进行分析发现,现有技术提出一种DNS报文处理方案,若DNS报文中一域名数据中重复出现在前已出现的指定域名,则可以基于该域名数据与指定域名在报文中的位置偏移值生成预设比特位数n的比特,作为位置指针,将该域名数据中出现的指定域名替换为所述位置指针,并在该位置指针之前增加标识比特11,该标识比特11起到标记作用,不作为位置偏移值计数的一部分。位置指针的数据长度远小于重复出现的域名的数据长度,这可以对DNS报文进行压缩,降低其体量。
在这种情况下,该位置指针可以表征的位置偏移值范围为(0~2n-1),若该位置偏移值超过2n-1,则现有DNS报文处理方案不再可行。
本说明书实施例提出一种改进的DNS报文处理方法、装置及设备,首先确定DNS报文中的当前至少一个待处理域名数据是否包含已出现的指定域名,若包含已出现的指定域名,则可以确定待处理域名数据到指定域名的位置偏移值。接着,比较该位置偏移值与第一阈值,该第一阈值可以是根据预设比特位数确定的。若比较结果为该位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;将所述待处理域名数据中的指定域名替换为所述位置指针。因此,位置指针对应的位置偏移值范围可以由标识比特和预设比特位数的比特共同所决定。因此,位置指针对应的位置偏移值范围可以由标识比特和预设比特位数的比特共同决定。相比于现有技术中位置指针对应的位置偏移值范围为(0~2n-1),本申请实施例记载的技术方案可以适用于同一域名出现位置偏移较大的情形,进而单个DNS报文里重复出现的域名无法压缩的情况出现的概率大大降低,进而可以使用本方法压缩更多的报文,使用更少的DNS报文传输相同体量的域名数据,达到提高域名数据传输速度,减轻DNS服务器负载的目的。
需要说明的是,这里的DNS报文的类型可以包括AXFR或IXFR,其中AXFR可以理解为完全区域传输,IXFR可以理解为增量区域传输,在此不作具体限定。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书实施例提供的一种DNS报文处理方法的流程图,所述方法如下所示。这里DNS报文可以为DNS响应报文,DNS响应报文为DNS服务器对客户端的请求报文的答复,此时所述DNS报文处理方法的执行主体为DNS服务器。若DNS报文为DNS请求报文,则所述DNS报文处理方法的执行主体为DNS客户端。
步骤101:若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值。
结合参考图2所示一种DNS报文的示例,该DNS报文为DNS响应报文,可以包括:
其中,QUESTION段的域名example.com是DNS请求报文中描述的域名,表明当前报文是对域名example.com的响应报文。在当前的DNS响应报文中,ANSWER段、AUTHORITY段及ADDITIONAL段,各自可以包含一个或多个待处理域名数据example.com,这里的待处理域名数据均重复出现了QUESTION段的example.com,则QUESTION段的example.com确定为指定域名。
其中,对于待处理域名数据到指定域名的位置偏移值,可以是指待处理域名数据的位置与指定域名的位置之间的字节数。
其中,本申请实施例记载的DNS报文处理方法还可以包括:
根据所述待处理域名数据,按照靠近所述DNS报文的报文头的顺序查询所述DNS报文,得到所述指定域名。
指定域名是指在待处理域名数据之前已出现在DNS报文中的域名,例如可以是最早出现在DNS报文中的域名,比当前的待处理域名数据要靠近报文头,例如图2所示QUESTION段比ANSWER段等都要靠近报文头。这样,可以在依次生成DNS报文的内容时,若出现一次待处理域名数据,则可以向前查询指定域名。
优选地,根据所述待处理域名数据,按照靠近所述DNS报文的报文头的顺序查询所述DNS报文,可以包括:
根据所述待处理域名数据中的至少一个域名标签查询所述DNS报文;
若查询到的域名中各域名标签以相同的排列方式出现于所述待处理域名数据中,则所述查询到的域名作为所述指定域名。
具体地,参考图2所示QUESTION段的指定域名example.com,包括example和com两个域名标签,该两个域名标签以相同的排列方式呈现在后续其他段,则确认该指定域名。
若在另一个应用示例中,指定域名为example.com,待处理域名数据为www.example.com,指定域名中的各域名标签均包含在待处理域名数据中。
因此,待处理域名数据可以包含指定域名的全部域名标签或完整的指定域名的一部分域名标签,待处理域名数据中的域名标签数不小于指定域名的域名标签数。
在本申请实施例中,DNS报文处理方法还可以包括:
根据所述指定域名,按照远离DNS报文的报文头的顺序查询所述DNS报文,得到所述待处理域名数据。
作为一种应用示例,可以根据ANSWER段的指定域名向下查询DNS报文,以得到出现该指定域名的待处理域名数据。
步骤103:比较位置偏移值与第一阈值,第一阈值是根据预设比特位数确定的。
若预设比特位数为n,则确定第一阈值为2n-1。
在本说明书实施例中,DNS报文的报文长度受到DNS报文的传输协议的限定,例如在TCP传输协议中,DNS报文的最大报文长度为216-1。因此,在比较位置偏移值与第一偏移值阈值之前,可以根据DNS报文的传输协议确定预设比特位数。
具体地,可以根据DNS报文的传输协议确定报文长度阈值;则
预设比特位数比报文长度阈值对应的比特位数少两个比特位。
根据上文所述,由于本申请实施例记载的DNS报文处理方法中,最终的位置指针包含两个比特位的标识比特和预设比特位数的比特,因此预设比特位数比报文长度阈值对应的比特位数少两个比特位。
如图2所示待处理域名数据与指定域名均为example.com,则在TCP传输协议下,预设比特位数为14位。
对UDP等其他传输协议,预设比特位数可能不同,在此不再一一列举限定。
步骤105:若比较结果为位置偏移值超过第一阈值,则根据位置偏移值,确定位置指针,位置指针由标识比特和预设比特位数的比特拼接构成,标识比特位于预设比特位数的比特之前。
这样,标识比特也作为位置偏移值计数的一部分。
在本说明书实施例中,标识比特可以为01或10中的一种。
在第一阈值为2n-1时,当标识比特为01时,位置指针对应的位置偏移值范围为(2n,2n+1-1);当标识比特为10时,位置指针对应的位置偏移值范围为(2n+1,2n+1+2n-1)。
因此,这可以解决当位置偏移值偏大时,如何对DNS报文进行压缩的问题。
作为一个应用示例,若n为14,214=16384,指定域名为example.com,待处理域名数据为example.com,位置偏移值为16480,则参考图3所示,待处理域名数据可以压缩为表格一:
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
表格一
参考图3所示,原本example.com共占用12个字节,压缩后仅占用16个比特位,共2个字节。
作为另一个应用示例,若待处理域名数据为www.example.com,则参考图4所示,待处理数据可以压缩为表格二:
3 | w | w | w | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
表格二
在表格二中,3表示其后域名标签www的字节数,占用一个字节。压缩后的待处理域名数据占用6个字节。
作为另一个应用示例,若n为14,215=32768,指定域名为example.com,待处理域名数据为example.com,位置偏移值为32868,则参考图5所示,待处理域名数据可以压缩为表格三:
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
表格三
在本说明书实施例中,当位置偏移值超过2n+1+2n-1时,标识比特可以为11。在这种情况下,标识比特11可以作为位置指针计数的一部分。
在本说明书实施例中,若比较结果为位置偏移值不超过第一阈值,则可以基于位置偏移值直接生成预设比特位数的偏移比特,作为位置指针,在偏移比特之前增添标识比特11,作为标识比特,此时,这标识比特11并不作为位置指针计数的一部分。
优选地,在本申请实施例中,根据位置偏移值,确定位置指针,可以包括:
比较位置偏移值与第二阈值,第二阈值是在标识比特为01时,根据标识比特和预设比特数的比特拼接构成的位置指针的范围所确定;
若比较结果为所述位置偏移值超过所述第二阈值,则根据所述位置偏移值确定位置指针,其中所述标识比特为10。
在这种情况下,在标识比特为01时,预设比特位数的各比特位均为1,基于该位置指针得到的第二阈值为2n+1-1。一旦当前的位置偏移值超过2n+1-1,则转而根据位置偏移值确定包含标识标特10的位置指针。例如,在n=14时,第二阈值为2n+1-1=215-1=32767。如图4所示示例,位置偏移值为32868,超过32767,则可以确定包含标识比特10的位置指针。
这里位置指针的范围是指在各比特位选择0/1时所得到的不同位置指针。
步骤107:将待处理域名数据中的指定域名替换为位置指针。
参考图3-5所示应用示例图,其中的example.com均可以替换为对应的位置指针,实现对待处理域名数据的压缩。
本申请实施例记载的DNS报文处理方可以适用于同一域名出现位置偏移较大的情形,进而单个DNS报文里重复出现的域名无法压缩的情况出现的概率大大降低,进而可以使用本方法压缩更多的报文,使用更少的DNS报文传输相同体量的域名数据,达到提高域名数据传输速度,减轻DNS服务器负载的目的。
图6为本申请实施例提供的一种DNS报文处理装置的结构示意图,所述结构如下所示。DNS报文处理装置可以包括:
位置偏移确定模块601,若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较模块602,比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
位置指针确定模块603,根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
替换模块604,将所述待处理域名数据中的指定域名替换为所述位置指针。
可选地,DNS报文处理装置还可以包括:
查询模块605,根据所述待处理域名数据,按照靠近所述DNS报文的报文头的顺序查询所述DNS报文,得到所述指定域名。
可选地,根据所述待处理域名数据,按照靠近所述DNS报文的报文头的顺序查询所述DNS报文,包括:
根据所述待处理域名数据中的至少一个域名标签查询所述DNS报文;
若查询到的域名中各域名标签以相同的排列方式出现于所述待处理域名数据中,则所述查询到的域名作为所述指定域名。
可选地,DNS报文处理装置还可以包括:
查询模块605,根据所述指定域名,按照远离所述DNS报文的报文头的顺序查询所述DNS报文,得到所述待处理域名数据
可选地,根据所述位置偏移值,确定位置指针,可以包括:
比较所述位置偏移值与第二阈值,所述第二阈值是在标识比特为01时,根据所述标识比特和预设比特数的比特拼接构成的位置指针的范围所确定;
若比较结果为所述位置偏移值超过所述第二阈值,则根据所述位置偏移值确定位置指针,其中所述标识比特为10。
可选地,所述预设比特位数为14位。
可选地,在比较所述位置偏移值与第一偏移值阈值之前,还包括:
根据所述DNS报文的传输协议确定所述预设比特位数。
可选地,根据所述DNS报文的传输协议确定所述预设比特位数,包括:
根据所述DNS报文的传输协议确定报文长度阈值;则
所述预设比特位数比所述报文长度阈值对应的比特位数少两个比特位。
利用本申请实施例提供的DNS报文处理装置,可以有效处理同一域名出现位置偏移较大的DNS报文,进而单个DNS报文里重复出现的域名无法压缩的情况出现的概率大大降低,进而可以使用本方法压缩更多的报文,使用更少的DNS报文传输相同体量的域名数据,达到提高域名数据传输速度,减轻DNS服务器负载的目的。
基于同一发明构思,本申请实施例还提供一种电子设备,包括至少一个处理器及存储器,存储器存储有程序,并且被配置成由至少一个处理器执行以下步骤:
若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
若比较结果为所述位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
将所述待处理域名数据中的指定域名替换为所述位置指针。
其中,处理器的其他功能还可以参见上述实施例中记载的内容,这里不再一一赘述。
基于同一个发明构思,本申请实施例还一种计算机可读存储介质,包括与电子设备结合使用的程序,程序可被处理器执行以完成以下步骤:
若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
若比较结果为所述位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
将所述待处理域名数据中的指定域名替换为所述位置指针。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (19)
1.一种DNS报文处理方法,包括:
若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
若比较结果为所述位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
将所述待处理域名数据中的指定域名替换为所述位置指针。
2.如权利要求1所述的DNS报文处理方法,所述标识比特为01或10中的一种。
3.如权利要求1所述的DNS报文处理方法,还包括:
根据所述待处理域名数据,按照靠近所述DNS报文的报文头的顺序查询所述DNS报文,得到所述指定域名。
4.如权利要求3所述的DNS报文处理方法,根据所述待处理域名数据,按照靠近所述DNS报文的报文头的顺序查询所述DNS报文,包括:
根据所述待处理域名数据中的至少一个域名标签查询所述DNS报文;
若查询到的域名中各域名标签以相同的排列方式出现于所述待处理域名数据中,则所述查询到的域名作为所述指定域名。
5.如权利要求1所述的DNS报文处理方法,还包括:
根据所述指定域名,按照远离所述DNS报文的报文头的顺序查询所述DNS报文,得到所述待处理域名数据。
6.如权利要求1所述的DNS报文处理方法,根据所述位置偏移值,确定位置指针,包括:
比较所述位置偏移值与第二阈值,所述第二阈值是在标识比特为01时,根据所述标识比特和预设比特数的比特拼接构成的位置指针的范围所确定;
若比较结果为所述位置偏移值超过所述第二阈值,则根据所述位置偏移值确定偏移指针,其中所述标识比特为10。
7.如权利要求1所述的DNS报文处理方法,所述预设比特位数为14位。
8.如权利要求1所述的DNS报文处理方法,在比较所述位置偏移值与第一偏移值阈值之前,还包括:
根据所述DNS报文的传输协议确定所述预设比特位数。
9.如权利要求8所述的DNS报文处理方法,根据所述DNS报文的传输协议确定所述预设比特位数,包括:
根据所述DNS报文的传输协议确定报文长度阈值;则
所述预设比特位数比所述报文长度阈值对应的比特位数少两个比特位。
10.一种DNS报文处理装置,包括:
位置偏移确定模块,若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较模块,比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
位置指针确定模块,根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
替换模块,将所述待处理域名数据中的指定域名替换为所述位置指针。
11.如权利要求10所述的DNS报文处理装置,还包括:
查询模块,根据所述待处理域名数据,按照靠近所述DNS报文的报文头的顺序查询所述DNS报文,得到所述指定域名。
12.如权利要求11所述的DNS报文处理装置,根据所述待处理域名数据,按照靠近所述DNS报文的报文头的顺序查询所述DNS报文,包括:
根据所述待处理域名数据中的至少一个域名标签查询所述DNS报文;
若查询到的域名中各域名标签以相同的排列方式出现于所述待处理域名数据中,则所述查询到的域名作为所述指定域名。
13.如权利要求10所述的DNS报文处理装置,还包括:
查询模块,根据所述指定域名,按照远离所述DNS报文的报文头的顺序查询所述DNS报文,得到所述待处理域名数据。
14.如权利要求10所述的DNS报文处理装置,根据所述位置偏移值,确定位置指针,包括:
比较所述位置偏移值与第二阈值,所述第二阈值是在标识比特为01时,根据所述标识比特和预设比特数的比特拼接构成的位置指针的范围所确定;
若比较结果为所述位置偏移值超过所述第二阈值,则根据所述位置偏移值确定位置指针,其中所述标识比特为10。
15.如权利要求10所述的DNS报文处理装置,所述预设比特位数为14位。
16.如权利要求10所述的DNS报文处理装置,在比较所述位置偏移值与第一偏移值阈值之前,还包括:
根据所述DNS报文的传输协议确定所述预设比特位数。
17.如权利要求16所述的DNS报文处理装置,根据所述DNS报文的传输协议确定所述预设比特位数,包括:
根据所述DNS报文的传输协议确定报文长度阈值;则
所述预设比特位数比所述报文长度阈值对应的比特位数少两个比特位。
18.一种电子设备,包括至少一个处理器及存储器,存储器存储有程序,并且被配置成由至少一个处理器执行以下步骤:
若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
若比较结果为所述位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
将所述待处理域名数据中的指定域名替换为所述位置指针。
19.一种计算机可读存储介质,包括与电子设备结合使用的程序,程序可被处理器执行以完成以下步骤:
若DNS报文中的至少一个待处理域名数据包含已出现的指定域名,则确定所述待处理域名数据到所述指定域名的位置偏移值;
比较所述位置偏移值与第一阈值,所述第一阈值是根据预设比特位数确定的;
若比较结果为所述位置偏移值超过第一阈值,则根据所述位置偏移值,确定位置指针,所述位置指针由标识比特和所述预设比特位数的比特拼接构成,所述标识比特位于所述预设比特位数的比特之前;
将所述待处理域名数据中的指定域名替换为所述位置指针。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810384742.7A CN110417923B (zh) | 2018-04-26 | 2018-04-26 | 一种dns报文处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810384742.7A CN110417923B (zh) | 2018-04-26 | 2018-04-26 | 一种dns报文处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110417923A true CN110417923A (zh) | 2019-11-05 |
CN110417923B CN110417923B (zh) | 2021-10-29 |
Family
ID=68345922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810384742.7A Active CN110417923B (zh) | 2018-04-26 | 2018-04-26 | 一种dns报文处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110417923B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112839113A (zh) * | 2019-11-22 | 2021-05-25 | 中国互联网络信息中心 | 域名存储与解析方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608396A (en) * | 1995-02-28 | 1997-03-04 | International Business Machines Corporation | Efficient Ziv-Lempel LZI data compression system using variable code fields |
US5933104A (en) * | 1995-11-22 | 1999-08-03 | Microsoft Corporation | Method and system for compression and decompression using variable-sized offset and length fields |
CN103685589A (zh) * | 2012-09-07 | 2014-03-26 | 中国科学院计算机网络信息中心 | 基于二进制编码的dns数据压缩、解压缩方法及系统 |
CN104410424A (zh) * | 2014-11-26 | 2015-03-11 | 西安电子科技大学 | 嵌入式设备内存数据的快速无损压缩方法 |
-
2018
- 2018-04-26 CN CN201810384742.7A patent/CN110417923B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608396A (en) * | 1995-02-28 | 1997-03-04 | International Business Machines Corporation | Efficient Ziv-Lempel LZI data compression system using variable code fields |
US5933104A (en) * | 1995-11-22 | 1999-08-03 | Microsoft Corporation | Method and system for compression and decompression using variable-sized offset and length fields |
CN103685589A (zh) * | 2012-09-07 | 2014-03-26 | 中国科学院计算机网络信息中心 | 基于二进制编码的dns数据压缩、解压缩方法及系统 |
CN104410424A (zh) * | 2014-11-26 | 2015-03-11 | 西安电子科技大学 | 嵌入式设备内存数据的快速无损压缩方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112839113A (zh) * | 2019-11-22 | 2021-05-25 | 中国互联网络信息中心 | 域名存储与解析方法、装置、电子设备及存储介质 |
CN112839113B (zh) * | 2019-11-22 | 2023-01-31 | 中国互联网络信息中心 | 域名存储与解析方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110417923B (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107579951B (zh) | 一种业务数据处理方法、业务处理方法及设备 | |
CN110298194B (zh) | 基于区块链的文件处理方法、装置、设备及存储介质 | |
CN108683695A (zh) | 热点访问处理方法、缓存访问代理设备及分布式缓存系统 | |
CN108848244A (zh) | 一种分页显示的方法及装置 | |
CN109614404B (zh) | 一种数据缓存系统及方法 | |
CN111885082B (zh) | 一种web应用包处理方法、装置及设备 | |
CN108334515A (zh) | 一种处理崩溃文件中堆栈地址的方法、装置及系统 | |
CN106326062B (zh) | 应用程序的运行状态控制方法和装置 | |
CN110263050B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN107016045A (zh) | 一种分页数据查询的方法及装置 | |
CN108449378A (zh) | 一种信息推送方法、装置及设备 | |
CN109542541A (zh) | 反序列化方法及装置 | |
CN110471629A (zh) | 一种动态扩容的方法、装置、存储介质、设备及系统 | |
US9380126B2 (en) | Data collection and distribution management | |
CN110417923A (zh) | 一种dns报文处理方法、装置及设备 | |
CN109144600A (zh) | 一种应用程序的运行方法、设备及计算机可读介质 | |
CN109302449A (zh) | 数据写入方法、数据读取方法、装置和服务器 | |
CN108470043A (zh) | 一种业务结果的获取方法及装置 | |
CN107908552A (zh) | 一种基于链接的测试方法、装置及设备 | |
CN110019069A (zh) | 一种日志处理方法、装置及设备 | |
CN112565210A (zh) | Cdn节点推荐方法、系统、电子设备及存储介质 | |
CN111209277A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN113849125B (zh) | 一种cdn服务器磁盘读取的方法、装置及系统 | |
CN110096477A (zh) | 一种数据存储的方法及装置 | |
CN107943923B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |