CN112839113B - 域名存储与解析方法、装置、电子设备及存储介质 - Google Patents
域名存储与解析方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112839113B CN112839113B CN201911156538.0A CN201911156538A CN112839113B CN 112839113 B CN112839113 B CN 112839113B CN 201911156538 A CN201911156538 A CN 201911156538A CN 112839113 B CN112839113 B CN 112839113B
- Authority
- CN
- China
- Prior art keywords
- domain name
- compression
- resource record
- resource
- storage
- 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
Images
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)
Abstract
本发明实施例提供一种域名存储与解析方法、装置、电子设备及存储介质;域名存储方法包括:对资源记录进行分组,形成资源记录集合;存储资源记录集合;其中,对资源记录集合内的域名进行压缩存储;将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,域名压缩存储信息用于描述域名的压缩情况以及存储位置。本发明实施例提供的域名存储与解析方法、装置、电子设备及存储介质,针对权威DNS服务器查询频率远多于更新频率的特点,通过分组压缩和建立重定位表实现快速的域名压缩存储,有助于提高查询效率。
Description
技术领域
本发明涉及网络通信领域,尤其涉及一种域名存储与解析方法、装置、电子设备及存储介质。
背景技术
DNS(Domain Name System,域名系统)主要用于承载域名与IP地址之间的转换,是互联网的关键基础设施之一。DNS服务器按照类别可分为权威DNS服务器和递归DNS服务器。权威DNS服务器保存了域名的权威信息。递归DNS服务器主要用于缓存与实现递归查询。
权威DNS服务器对用户所提交的查询请求的处理过程也就是域名解析的过程。响应时间是权威DNS服务器性能的重要评价指标。在不考虑网络状况对响应时间影响的前提下,服务器处理时间,即解析性能,是服务器管理者最关注的性能。
在现有技术中,权威DNS服务器对查询请求的处理流程依次为:接收、解压缩、存储、组装、压缩和发送。其中,所述的压缩是指域名压缩。域名压缩通过减少DNS数据中域名的冗余来降低带宽占用。域名压缩无论对于A记录、SOA记录、NS记录等常见记录查询请求的应答,还是对于用于主从服务器间数据同步的增量、全量查询请求的应答都具有十分重要的意义。以根区的全量区域数据传送为例,应答数据包共包含2万多条资源记录,压缩后的数据量占原数据量的82.7%。而CN等顶级域的资源记录总数则达到了千万数量级,CN区的全量区域数据在压缩后的数据量仅占原数据量的51%。域名压缩的重要性可见一斑。在DNS数据处理流程中,接收、存储、组装和发送主要受软硬件环境、业务复杂度等因素的影响,而压缩和解压缩则受到域名压缩方法的直接影响。
传统域名压缩衍生于适用于DNS域名压缩的一种无损压缩算法——LZ77。LZ77基于数据本身包含有重复的字符序列这个特性,使用指针来代替已经出现过的字符序列,从而达到压缩的目的。域名压缩利用指向数据包中已经出现过的域名的指针来代替整个域名或者部分域名。该压缩方法的压缩比高,但压缩过程耗时,主要消耗在域名的匹配过程。
DNS数据处理流程和LZ77压缩方法的原理决定了只有在应答数据包组装完成后,才能实施域名压缩。在高查询量场景下或全量区域传送等大数据量的应答时,解析过程进行实时的域名压缩非常消耗系统资源,且耗时较长。这是制约权威DNS服务器解析性能的主要原因。
近年来,在LZ77的基础上,一系列改进算法已经被提出,但能应用于DNS域名压缩的只有极少数算法,如LZO算法。此类算法虽可用于DNS,但其数据处理流程与传统域名压缩相比并未发生实质性变化。而对权威DNS服务器来说,数据更新频率远低于查询请求的频率,即大部分的查询使用同一版本的数据进行应答,现有技术中的域名压缩方法无法充分利用这一特点,因而无法从根本上提升解析性能。
发明内容
本发明实施例提供一种域名存储与解析方法、装置、电子设备及存储介质,用以解决现有技术中的域名压缩与解析方法没有充分利用权威DNS服务器数据更新频率远低于查询请求频率的特点,使得解析性能受到限制的缺陷。
根据本发明第一方面实施例的域名存储方法,应用于权威DNS服务器,该方法包括:
对资源记录进行分组,形成资源记录集合;
存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;
将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。
根据本发明的一个实施例,所述对资源记录进行分组包括:
对资源记录按照域名、资源记录的类型进行分组。
根据本发明的一个实施例,所述在所述资源记录集合内对域名进行压缩存储包括:
对所述资源记录集合内的第一条资源记录中的第一个域名不做压缩存储;对所述第一条资源记录中第一个域名之后的域名,若该域名之前的域名与该域名有相同的内容,采用指向相同域名的指针来替代该域名的原始内容,所述指针的偏移量以所在资源记录集合的首字节为基准计算得到。
根据本发明的一个实施例,所述域名压缩存储信息包括:
域名所在资源记录集合的类型、域名的原始内容、域名是否压缩、指针偏移量、域名或指针所在位置、域名压缩结果。
根据本发明第二方面实施例的域名解析方法,应用于权威DNS服务器,该方法包括:
根据所接收的查询请求,从本发明第一方面实施例所述的域名存储方法所存储的资源记录集合与重定位表中获取与所查询的域名对应的资源记录集合与重定位表,组装应答包;其中,所述组装应答包包括:
根据所述重定位表为同一域名下的资源记录集合中的资源记录进行域名记录所有者字段压缩与地址修正;
建立域名压缩字典,所述域名压缩字典描述了域名与域名压缩结果间的关联关系;
根据所述域名压缩字典,对将被组装到应答包中的资源记录做域名压缩。
根据本发明的一个实施例,所述域名记录所有者字段压缩包括:
对一个资源记录集合中的第一条资源记录的第一个域名,若已组装的应答包中存在内容相同的域名,采用指向相同域名的指针来替代该域名的原始内容,所述指针的偏移量以所述应答包中第一个资源记录集合的首字节为基准计算得到。
根据本发明的一个实施例,所述地址修正包括:
将资源记录中与地址相关的信息以已组装应答包中第一个资源记录集合的首字节的地址为基准计算得到。
根据本发明的一个实施例,所述根据所述域名压缩字典,对将被组装到应答包中的资源记录做域名压缩包括:
为将被组装到应答包中的资源记录的域名在所述域名压缩字典中查找到匹配域名,利用所述域名压缩字典中相匹配域名的域名压缩结果代替所述域名。
根据本发明第三方面实施例的域名存储装置,应用于权威DNS服务器,该装置包括:
资源记录分组模块,用于对资源记录进行分组,形成资源记录集合;
存储模块,用于存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;
重定位表生成模块,用于将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。
根据本发明第四方面实施例的域名解析装置,应用于权威DNS服务器,该装置包括:
应答包组装模块,用于根据所接收的查询请求,从本发明第三方面实施例所述的域名存储装置所存储的资源记录集合与重定位表中获取与所查询的域名对应的资源记录集合与重定位表,组装应答包;其中,所述应答包组装模块包括:
域名记录所有者字段压缩与地址修正单元,用于根据所述重定位表为同一域名下的资源记录集合中的资源记录进行域名记录所有者字段压缩与地址修正;
域名压缩字典建立单元,用于建立域名压缩字典,所述域名压缩字典描述了域名与域名压缩结果间的关联关系;
域名压缩单元,用于根据所述域名压缩字典,对将被组装到应答包中的资源记录做域名压缩。
根据本发明第五方面实施例的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明第一方面实施例所述的域名存储方法的步骤,或实现如本发明第二方面实施例所述的域名解析方法的步骤。
根据本发明第六方面实施例的一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明第一方面实施例所述的域名存储方法的步骤,或实现如本发明第二方面实施例所述的域名解析方法的步骤。
本发明实施例提供的域名存储与解析方法、装置、电子设备及存储介质,针对权威DNS服务器查询频率远多于更新频率的特点,通过分组压缩和建立重定位表实现快速的域名压缩存储,有助于提高查询效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的域名存储方法的示意图;
图2为一个示例中资源记录分组的示意图;
图3为对图2中的资源记录集合进行压缩存储的示意图;
图4为根据图3所示范例中的域名压缩结果所生成的重定位表的示意图;
图5为本发明实施例提供的域名存储方法中组装应答包步骤的流程图;
图6为根据图4所示重定位表对同一域名下的资源记录集合中的资源记录进行域名压缩与地址修正的示例图;
图7为一个域名压缩字典的示意图;
图8为图2所示资源记录集合被组装到应答包后的示意图;
图9为本发明实施例提供的域名存储装置的结构示意图;
图10为本发明实施例提供的域名解析装置的结构示意图;
图11示例了一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本发明实施例做详细说明之前,首先对本发明实施例中所涉及的相关概念做一统一说明。
资源记录(Resource Record,简称RR):资源记录是包含在DNS区域文件中的记录,不同的资源记录可以区别不同类型的计算机或服务。资源记录一般包括以下字段:域名、值、类型、分类和生命期。域名字段和值字段分别用来表示解析的内容和解析返回的结果。类型字段代表了值的种类:类型为A代表值字段是一个IPv4地址,类型为AAAA代表值字段是一个IPv6地址,类型为NS代表值字段是另一个域名服务器的域名,该域名服务器能够知道如何解析域名字段所指定的域名。分类字段允许指定其他的记录类型。生命期字段用于指出该资源记录的有效期是多少。
资源记录集合(Resource Record set,简称RRset):资源记录集合是同一域名的、多个相同类型的资源记录的集合。资源记录集合是DNS传输的基本单元,即当用户查询一个域名对应的信息时,DNS服务器所返回的不是资源记录,而是资源记录集合。
图1为本发明实施例提供的域名存储方法的示意图,如图1所示,本发明实施例提供的域名存储方法应用于权威DNS服务器,该方法具体包括:
步骤101、对资源记录进行分组,形成资源记录集合。
权威DNS服务器中保存有多个资源记录的信息,这些资源记录按照域名系统的区、域进行存储。在本步骤中,对资源记录进行分组,可将区域数据按照域名、资源记录的类型进行分组。
图2为一个示例中资源记录分组的示意图,如图2所示,在该示例中,共有四条资源记录,其中两条资源记录的类型为DS,这两条资源记录各自包括有一个域名“aaa.”;另外两条资源记录的类型为NS,其中一条资源记录包括有域名“aaa.”以及域名“ns1.dns.nic.aaa.”,另一条资源记录包括有“aaa.”以及域名“ns2.dns.nic.aaa.”。将这些资源记录按照类型、域名进行分组,形成两个RRset(Resource Record set,资源记录集合)。这两个资源记录集合的具体内容在图2中的顶部方框、中部方框中描述。图2中底部方框中的内容描述了域名“ns1.dns.nic.aaa.”所对应的IPv4地址(A记录)和IPv6地址(AAAA记录)。
在图2所示的示例中,出于便于理解的目的,仅描述了少数几条资源记录分组的情形。本领域技术人员应当了解,在实际应用中,资源记录数量、分组所得到的资源记录集合的数量都远远多于图2所示的示例。但资源记录分组的实现思想在本质上并没有区别。
步骤102、存储资源记录集合;其中,对资源记录集合内的域名进行压缩存储。
在RRset内部对域名进行压缩存储时,对RRset内部的第一条资源记录中的第一个域名不做压缩存储;对第一条资源记录中第一个域名之后的其他域名,如果该域名与之前的域名有相同的内容,采用指向相同域名的指针来替代域名的原始内容,指针的偏移量以RRset首字节为基准计算得到。
图3为对图2中的资源记录集合进行压缩存储的示意图;其中,图3(a)为图2中的DSRRset进行压缩存储的示意图,图3(b)为图2中的NS RRset进行压缩存储的示意图。
如图3(a)的左侧部分所示,在压缩存储前,DS RRset中的两条资源记录各自存储,域名“aaa.”都保存在第0字节。如图3(a)的右侧部分所示,在压缩存储后,DS RRset中的两条资源记录合并存储,其中第一条资源记录存储时不做压缩,第二条资源记录存储时,由于域名“aaa.”已经在第一条资源记录中出现过,因此用指针来替代域名的具体内容。替代后的内容可见图3(a)右侧部分第39字节,其中前两个比特位“1”、“1”是压缩标志位,之后的“0”是指针偏移量,表明被替代的内容在第0字节。
在图3(b)中,由于NS RRset中重复出现的域名包括域名“aaa.”以及域名“dns.nic.aaa.”,因此在对NS RRset做压缩存储时分别对域名“aaa.”以及域名“dns.nic.aaa.”做了替代。替代后的内容可见图3(b)右侧部分第32字节、第48字节。
步骤103、将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表。
在本发明实施例中,以重定位表的形式保存同一域名下、多个资源记录集合内部做域名压缩存储的信息。一个域名对应一张重定位表,一张重定位表中包括有对应域名、多个资源记录集合的域名压缩存储信息。此处的同一域名下、多个资源记录集合可以是同一域名下的全部资源记录集合,也可以是同一域名下的部分资源记录集合。
域名压缩存储信息描述了在一个资源记录集合内部做域名压缩存储后,与域名压缩存储结果相关的信息。在本发明实施例中,域名压缩存储信息包括:域名所在资源记录集合的类型、域名的原始内容、域名是否压缩、指针偏移量、域名或指针所在位置、域名压缩结果。
图4为根据图3所示范例中的域名压缩结果所生成的重定位表的示意图。如图4所示,按照步骤102的描述,DS RRset中第一条资源记录的域名“aaa.”未做压缩,因此重定位表中第1个域名未被压缩,不存在指针偏移量以及压缩结果,该资源记录是第一条,域名所在位置是第0字节。DS RRset中第二条资源记录的域名“aaa.”被压缩,因此是否压缩的标记为是,由于与其相同的域名位于第0字节,因此指针偏移量是0,用于替换域名的指针位于第39字节(可参见图3(a)右半部分)。压缩结果项为压缩结果的十六进制表示数。NS RRset中,域名压缩存储信息在重定位表中的存储与上面的描述相类似,此处不再重复。
以上是对本发明实施例提供的域名存储方法的步骤描述。
本发明实施例提供的域名存储方法针对权威DNS服务器查询频率远多于更新频率的特点,通过分组压缩和建立重定位表实现快速的域名压缩存储,有助于提高存储效率,进而提高域名查询的效率。
基于上述任一实施例,本发明实施例提供的域名解析方法应用于权威DNS服务器,该方法在实现时基于本发明前一实施例提供的域名压缩方法所生成的域名压缩结果,该方法包括:
根据所接收的查询请求,获取与所请求域名对应的资源记录集合以及重定位表,组装应答包。
在接收到查询请求后,根据查询请求中所包含的域名信息,可获取对应的资源记录集合以及重定位表。资源记录集合与重定位表由本发明前一实施例提供的域名压缩方法生成。
为了提高解析效率,应答包的组装是一个边查询边组装的过程,即组装应答包的进程一边接收与所要查询的域名相关的资源记录集合,一边将之前已经收到的资源记录集合组装到应答包中。图5为本发明实施例提供的域名存储方法中组装应答包步骤的流程图,如图5所示,组装应答包的过程进一步包括:
步骤501、根据重定位表为同一域名下的资源记录集合中的资源记录进行域名记录所有者字段(owner)压缩与地址修正。
应答包中所包含的资源记录集合一般有多个,这些资源记录集合在被组装到应答包中后,将不再像存储时那样各自独立存储,而是存在数据结构上的前后相邻关系。
按照本发明前一实施例提供的域名压缩方法,资源记录集合在存储时虽然做了域名压缩,但这一域名压缩过程是在资源记录集合内部实现的,因此还有继续压缩的空间。具体的说,对一个资源记录集合中的第一条资源记录的第一个域名,若已组装的应答包中存在内容相同的域名,则采用指向相同域名的指针来替代该域名的原始内容,所述指针的偏移量以所述应答包中第一个资源记录集合的首字节为基准计算得到。例如,图3(b)右半部分所描述的NS RRset中,第一条资源记录的第一个域名为“aaa.”,与图3(a)右半部分所描述的DS RRset中第一条资源记录的域名相同。由于在本发明前一实施例所提供的域名压缩方法中,所实现的域名压缩是在资源记录集合内部实现的,因此NS RRset中第一条资源记录的第一个域名未被压缩。当NS Rrset、DS RRset被组装到同一应答包中时,由于NS RRset中的资源记录在数据结构上位于DS RRset中的资源记录之后,因此NS RRset中第一条资源记录的第一个域名同样可以被指针所替代,实现对域名的进一步压缩。这一压缩过程可根据重定位表实现。资源记录集合中第一条资源记录的第一个域名的字段也被称为域名记录所有者字段,因此此类压缩也被称为同一域名下不同资源记录集合间的域名记录所有者字段的压缩。
多个资源记录集合被组装到应答包中后,存在数据结构上的前后相邻关系所带来的另一个变化是对与地址相关信息的修正。同一域名下的资源记录集合在存储时是各自独立存储的,因此资源记录集合中与地址相关的信息是相对地址信息,如指针偏移量、域名(或指针)所在位置。将它们组装到一个应答包中时,需要对地址相关信息进行修正。具体的说,在地址修正时,将资源记录中与地址相关的信息以已组装应答包中第一个资源记录集合的首字节的地址为基准计算得到。例如,将应答包中第二个及之后的资源记录集合中各个资源记录的域名(或指针)所在位置的值进行修正;若一个域名的指针所指向的域名的所在位置值发生了变化,那么该域名的指针偏移量也要对应修正。这一修正过程可根据重定位表实现。
图6为根据图4所示重定位表对同一域名下的资源记录集合中的资源记录进行域名压缩与地址修正的示例图。如图6所示,在生成应答包时,NS RRset位于DS RRset之后,因此对NS RRset中的第一条资源记录的第一个域名“aaa.”做域名压缩,压缩后,是否压缩项的值变为“是”,指针偏移量被赋值为“0”,压缩结果被赋值“C000”。由于NS RRset位于DSRRset之后,还要对NS RRset中各条资源记录的域名(或指针)所在位置进行修正,在修正时可参考重定位表中的信息,如将DS RRset的长度加上重定位表中对应资源记录的域名(或指针)所在位置值,就是该资源记录修正后的域名(或指针)所在位置值。NS RRset中域名“ns2.dns.nic.aaa.”的指针所指向的域名“dns.nic.aaa.”的所在位置值发生了变化,因此域名“ns2.dns.nic.aaa.”的指针偏移量也要对应修正。
步骤502、建立域名压缩字典,所述域名压缩字典描述了域名与域名压缩结果间的关联关系。
域名压缩字典的建立是一个动态的过程。所谓动态是指应答包在组装过程中根据之前组装的资源记录集合中的信息,将原始域名、域名压缩结果一并提取出来,作为字典中的词条保存在字典中。随着应答包组装过程的持续,可能会有新的原始域名、域名压缩结果不断添加到字典中。
图7为一个域名压缩字典的示意图,该域名压缩字典中包括了原始域名、域名所在位置(即图7中的当前位置)、域名压缩结果等信息。
步骤503、根据所述域名压缩字典,对将被组装到应答包中的资源记录做域名压缩。
资源记录集合在被组装到应答包之前,为资源记录集合中的域名搜索域名压缩字典,若能在域名压缩字典中查找到匹配域名,则利用域名压缩字典中相匹配域名的压缩结果代替该域名,完成域名压缩。此类压缩主要针对NS类资源记录、A类资源记录、AAAA类资源记录。
图8为图2所示资源记录集合被组装到应答包后的示意图,如图8所示,当需要添加A记录或AAAA记录时,匹配到域名“ns1.dns.nic.aaa.”,通过查找图7所示的域名压缩字典,可直接将压缩结果C066代替当前域名,完成域名压缩。
本发明实施例提供的域名解析方法在解析过程中利用分组压缩结果和重定位表,能实现快速压缩,提高了整个域名解析过程的效率。
基于上述任一实施例,图9为本发明实施例提供的域名存储装置的结构示意图,该装置应用于权威DNS服务器,该装置包括:
资源记录分组模块901,用于对资源记录进行分组,形成资源记录集合;
存储模块902,用于存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;
重定位表生成模块903,用于将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。
本发明实施例提供的域名存储装置针对权威DNS服务器查询频率远多于更新频率的特点,通过分组压缩和建立重定位表实现快速的域名压缩存储,有助于提高存储效率,进而提高查询效率。
基于上述任一实施例,图10为本发明实施例提供的域名解析装置的结构示意图,该装置应用于权威DNS服务器,该装置包括:
应答包组装模块1001,用于根据所接收的查询请求,从权利要求9所述的域名存储装置所存储的资源记录集合与重定位表中获取与所查询的域名对应的资源记录集合与重定位表,组装应答包;其中,所述应答包组装模块1001包括:
域名记录所有者字段压缩与地址修正单元10011,用于根据所述重定位表为同一域名下的资源记录集合中的资源记录进行域名记录所有者字段压缩与地址修正;
域名压缩字典建立单元10012,用于建立域名压缩字典,所述域名压缩字典描述了域名与域名压缩结果间的关联关系;
域名压缩单元10013,用于根据所述域名压缩字典,对将被组装到应答包中的资源记录做域名压缩。
本发明实施例提供的域名解析装置在解析过程中利用分组压缩结果和重定位表,能实现快速压缩,提高了整个域名解析过程的效率。
图11示例了一种电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1130中的逻辑指令,以执行如下方法:对资源记录进行分组,形成资源记录集合;存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。或执行如下方法:根据所接收的查询请求,从域名存储方法所存储的资源记录集合与重定位表中获取与所查询的域名对应的资源记录集合与重定位表,组装应答包。
此外,上述的存储器1130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:对资源记录进行分组,形成资源记录集合;存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。或例如包括:根据所接收的查询请求,从域名存储方法所存储的资源记录集合与重定位表中获取与所查询的域名对应的资源记录集合与重定位表,组装应答包。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种域名解析方法,其特征在于,应用于权威DNS服务器,该方法包括:
根据所接收的查询请求,从预设的域名存储方法所存储的资源记录集合与重定位表中获取与所查询的域名对应的资源记录集合与重定位表,组装应答包;其中,所述组装应答包包括:
根据所述重定位表为同一域名下的资源记录集合中的资源记录进行域名记录所有者字段压缩与地址修正;
建立域名压缩字典,所述域名压缩字典描述了域名与域名压缩结果间的关联关系;
根据所述域名压缩字典,对将被组装到应答包中的资源记录做域名压缩;
所述域名存储方法包括:
对资源记录进行分组,形成资源记录集合;
存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;
将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。
2.根据权利要求1所述的域名解析方法,其特征在于,所述域名记录所有者字段压缩包括:
对一个资源记录集合中的第一条资源记录的第一个域名,若已组装的应答包中存在内容相同的域名,采用指向相同域名的指针来替代该域名的原始内容,所述指针的偏移量以所述应答包中第一个资源记录集合的首字节为基准计算得到。
3.根据权利要求1所述的域名解析方法,其特征在于,所述地址修正包括:
将资源记录中与地址相关的信息以已组装应答包中第一个资源记录集合的首字节的地址为基准计算得到。
4.根据权利要求1所述的域名解析方法,其特征在于,所述根据所述域名压缩字典,对将被组装到应答包中的资源记录做域名压缩包括:
为将被组装到应答包中的资源记录的域名在所述域名压缩字典中查找到匹配域名,利用所述域名压缩字典中相匹配域名的域名压缩结果代替所述域名。
5.根据权利要求1所述的域名解析方法,其特征在于,所述预设的域名存储方法包括:
对资源记录进行分组,形成资源记录集合;
存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;
将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。
6.根据权利要求5所述的域名解析方法,其特征在于,所述对资源记录进行分组包括:
对资源记录按照域名、资源记录的类型进行分组。
7.根据权利要求5所述的域名解析方法,其特征在于,所述在所述资源记录集合内对域名进行压缩存储包括:
对所述资源记录集合内的第一条资源记录中的第一个域名不做压缩存储;对所述第一条资源记录中第一个域名之后的域名,若该域名之前的域名与该域名有相同的内容,采用指向相同域名的指针来替代该域名的原始内容,所述指针的偏移量以所在资源记录集合的首字节为基准计算得到。
8.根据权利要求5所述的域名解析方法,其特征在于,所述域名压缩存储信息包括:
域名所在资源记录集合的类型、域名的原始内容、域名是否压缩、指针偏移量、域名或指针所在位置、域名压缩结果。
9.一种域名解析装置,其特征在于,应用于权威DNS服务器,该装置包括:
应答包组装模块,用于根据所接收的查询请求,从域名存储装置所存储的资源记录集合与重定位表中获取与所查询的域名对应的资源记录集合与重定位表,组装应答包;其中,所述应答包组装模块包括:
域名记录所有者字段压缩与地址修正单元,用于根据所述重定位表为同一域名下的资源记录集合中的资源记录进行域名记录所有者字段压缩与地址修正;
域名压缩字典建立单元,用于建立域名压缩字典,所述域名压缩字典描述了域名与域名压缩结果间的关联关系;
域名压缩单元,用于根据所述域名压缩字典,对将被组装到应答包中的资源记录做域名压缩;
所述域名存储装置包括:
资源记录分组模块,用于对资源记录进行分组,形成资源记录集合;
存储模块,用于存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;
重定位表生成模块,用于将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。
10.根据权利要求9所述的域名解析装置,其特征在于,所述域名存储装置包括:
资源记录分组模块,用于对资源记录进行分组,形成资源记录集合;
存储模块,用于存储所述资源记录集合;其中,对所述资源记录集合内的域名进行压缩存储;
重定位表生成模块,用于将同一域名下、多个资源记录集合的域名压缩存储信息进行统一存储,生成重定位表;其中,所述域名压缩存储信息用于描述域名的压缩情况以及存储位置。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8之一所述的域名解析方法的步骤。
12.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8之一所述的域名解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156538.0A CN112839113B (zh) | 2019-11-22 | 2019-11-22 | 域名存储与解析方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156538.0A CN112839113B (zh) | 2019-11-22 | 2019-11-22 | 域名存储与解析方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112839113A CN112839113A (zh) | 2021-05-25 |
CN112839113B true CN112839113B (zh) | 2023-01-31 |
Family
ID=75922575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911156538.0A Active CN112839113B (zh) | 2019-11-22 | 2019-11-22 | 域名存储与解析方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112839113B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114070844B (zh) * | 2021-11-05 | 2024-05-14 | 统信软件技术有限公司 | 一种文件下载方法、装置、计算设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105284052A (zh) * | 2012-11-26 | 2016-01-27 | 思杰系统有限公司 | 用于基于字典的压缩的系统和方法 |
CN106484770A (zh) * | 2016-09-09 | 2017-03-08 | 中国互联网络信息中心 | 一种dns增量区域数据文件的处理方法 |
CN108616544A (zh) * | 2015-08-04 | 2018-10-02 | 法赛特安全公司 | 用于检测对域名系统记录系统的更新的方法、系统和介质 |
CN110417923A (zh) * | 2018-04-26 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 一种dns报文处理方法、装置及设备 |
-
2019
- 2019-11-22 CN CN201911156538.0A patent/CN112839113B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105284052A (zh) * | 2012-11-26 | 2016-01-27 | 思杰系统有限公司 | 用于基于字典的压缩的系统和方法 |
CN108616544A (zh) * | 2015-08-04 | 2018-10-02 | 法赛特安全公司 | 用于检测对域名系统记录系统的更新的方法、系统和介质 |
CN106484770A (zh) * | 2016-09-09 | 2017-03-08 | 中国互联网络信息中心 | 一种dns增量区域数据文件的处理方法 |
CN110417923A (zh) * | 2018-04-26 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 一种dns报文处理方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
基于Hash存储的高效DNS缓存系统;张伟等;《计算机工程与设计》;20170816(第08期);正文第2.4节 * |
Also Published As
Publication number | Publication date |
---|---|
CN112839113A (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4271988B2 (ja) | パケット通信装置 | |
US20230216884A1 (en) | Method for minimizing the risk and exposure duration of improper or hijacked dns records | |
US9231903B2 (en) | System and method for resolving a DNS request using metadata | |
WO2021078281A1 (zh) | 报文转发及域名地址查询 | |
US8788671B2 (en) | Managing content delivery network service providers by a content broker | |
US7225272B2 (en) | Method and apparatus for providing name services | |
CN107613039B (zh) | Ip地址归属地查询方法、装置、系统及存储介质 | |
US20130290563A1 (en) | Answer augmentation system for authoritative dns servers | |
US8886750B1 (en) | Alias resource record sets | |
CN103856580B (zh) | 一种IPv6客户机访问IPv4服务器的方法 | |
CN102546854A (zh) | 一种域名和服务器建立http连接的域名解析方法 | |
CN112866432B (zh) | 一种域名解析方法、系统、电子设备及存储介质 | |
JP2014515228A (ja) | データ識別子を符号化する方法 | |
CN114205330A (zh) | 域名解析方法、域名解析装置、服务器以及存储介质 | |
Blanchet | Finding the Authoritative Registration Data (RDAP) Service | |
US20230083671A1 (en) | Domain Name System Services for Variable-Length Address Networks | |
CN108111639A (zh) | 一种提高域名系统可用性的方法及系统 | |
CN103581361A (zh) | 一种域名解析代理方法、设备及系统 | |
CN112839113B (zh) | 域名存储与解析方法、装置、电子设备及存储介质 | |
CN104079682A (zh) | 一种基于域名系统dns的地址转换方法及装置 | |
CN110677512B (zh) | 一种地址解析方法及装置 | |
EP3340582A1 (en) | Determining a top level domain from a domain name | |
CN114500456A (zh) | 基于全网嗅探的dns调度优化方法、装置及计算设备 | |
CN107222588A (zh) | 一种提高dns可用性的方法及系统 | |
JP2023508447A (ja) | 埋め込み要求元情報を用いたコンテンツデリバリシステム |
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 |