CN106464745B - Dns的服务器、客户端及数据同步方法 - Google Patents

Dns的服务器、客户端及数据同步方法 Download PDF

Info

Publication number
CN106464745B
CN106464745B CN201580028567.2A CN201580028567A CN106464745B CN 106464745 B CN106464745 B CN 106464745B CN 201580028567 A CN201580028567 A CN 201580028567A CN 106464745 B CN106464745 B CN 106464745B
Authority
CN
China
Prior art keywords
record
server
client
field
message
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
Application number
CN201580028567.2A
Other languages
English (en)
Other versions
CN106464745A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN106464745A publication Critical patent/CN106464745A/zh
Application granted granted Critical
Publication of CN106464745B publication Critical patent/CN106464745B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开一种DNS的服务器、客户端及数据同步方法,利用服务器与客户端之间的交互消息中的字段标识服务器中的记录是否发生更新,其中交互消息包括客户端向服务器发送的消息以及服务器向客户端发送的信息,在服务器的所述记录发生更新时,客户端根据接收到的交互消息的字段即可更新本地缓存区的记录。本发明能够自动保持客户端与服务器之间的数据同步,确保解析记录及时生效。

Description

DNS的服务器、客户端及数据同步方法
技术领域
本发明涉及DNS(Domain Name System,域名系统)技术领域,具体涉及一种DNS的服务器、客户端及两者的数据同步方法。
背景技术
DNS可以将域名和IP地址相互映射,使得人们无需记住仅能被计算机直接读取的IP字符串,即可访问互联网。当前,DNS的服务器(Server)与客户端(Client)之间只有查询和被查询的关系,而没有保证两者数据同步的同步机制,所谓数据是指客户端向服务器查询与域名相关的信息资源。
当客户端向服务器发送查询消息以进行域名解析时,服务器将解析后的数据返回给客户端,客户端将数据存储于自身的缓存区(Cache)中,这种数据也称为记录,且该记录在缓存区中均被赋予有一存活时间(Time To Live,TTL)。具体而言,在存活时间内,所述记录可被客户端调用以运行相关业务,而超过存活时间,缓存区中的记录会被老化清理。若在存活时间内服务器中的相关记录已经更新,则客户端调用的是更新之前的记录,这无疑会导致业务运行失败,可见,记录从更新到生效往往需要经过很长时间。当前为了确保记录及时生效,只能通过用户手动对需要更新记录的客户端的缓存区逐一清理,使得客户端可以再次向服务器发送查询消息以获取最新的记录,但操作繁琐且效率低下。
发明内容
鉴于此,本发明的多个方面提供一种DNS的服务器、客户端及数据同步方法,能够自动保持客户端与服务器之间的数据同步,确保解析记录及时生效。
第一方面提供一种域名系统的数据同步方法,包括:利用服务器与客户端之间的交互消息中的字段标识服务器中的记录是否发生更新,其中交互消息包括客户端向服务器发送的消息以及服务器向客户端发送的信息;在服务器的记录发生更新时,客户端根据接收到的交互消息的字段更新本地缓存区的记录。
结合第一方面,在第一种可能的实现方式中,利用服务器与客户端之间的交互消息中的字段标识服务器的记录是否发生更新的步骤包括:客户端向服务器发送第一查询消息;客户端接收服务器在判断服务器中的记录是否发生更新之后向客户端反馈的第一指示消息,第一指示消息包括标识服务器中记录是否发生更新的字段;在服务器的记录发生更新时,客户端根据接收到的交互消息的字段更新本地缓存区的记录的步骤包括:客户端清除当前缓存区的记录;客户端向服务器发送第二查询消息,以向服务器请求更新后的记录;客户端接收服务器反馈的第二指示消息,第二指示消息包括更新后的记录;客户端在接收到第二指示消息后存储更新后的记录。
结合第一方面,在第二种可能的实现方式中,利用服务器与客户端之间的交互消息中的字段标识服务器的记录是否发生更新的步骤包括:客户端接收服务器发送的第一指示消息,所述第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段;客户端根据接收到的交互消息的字段更新本地缓存区的记录的步骤包括:客户端清除当前缓存区中与版本信息对应的记录,并向服务器发送查询消息,以向服务器请求更新后的记录;服务器向客户端反馈第三指示消息,第三指示消息包括更新后的记录;客户端将接收到的更新后的记录存储于缓存区中。
结合第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,第一指示消息为具有头域部分Header和更新域部分Changes的DNS消息,头域部分包括Z字段和CHCOUNT字段,Z字段用于标识服务器中的记录是否发生更新,CHCOUNT字段用于标识更新域部分中发生更新的记录的个数,更新域部分用于标识发生更新的客户端的记录。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,头域部分还包括Opcode字段,Opcode字段用于标识第一指示消息的类型,以表示第一指示消息为查询服务器中的记录是否发生更新的消息。
第二方面提供一种DNS的服务器,包括接收模块和发送模块,接收模块和发送模块用于收发服务器与客户端之间的交互消息,交互消息包括接收模块接收的客户端向服务器发送的消息以及服务器的发送模块向客户端发送的信息,交互消息包括标识服务器中的记录是否发生更新的字段,使得客户端在服务器的记录发生更新时根据接收到的交互消息的字段更新本地缓存区的记录。
结合第二方面,在第一种可能的实现方式中,接收模块用于接收客户端发送的第一查询消息,服务器还包括处理模块,处理模块用于判断服务器中的记录是否发生更新,并控制发送模块向客户端反馈第一指示消息,第一指示消息包括标识服务器中记录是否发生更新的字段,使得客户端在服务器中的记录发生更新时清除当前缓存区的记录;在处理模块判断记录发生更新时,接收模块进一步用于接收客户端发送的用以请求更新后的记录的第二查询消息,处理模块控制发送模块向客户端反馈包括更新后的记录的第二指示消息,使得存储更新后的记录。
结合第二方面,在第二种可能的实现方式中,发送模块用于向客户端发送第一指示消息,第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,使得客户端清除当前缓存区中与版本信息对应的记录;接收模块进一步用于接收客户端发送的请求更新后的记录的查询消息,处理模块控制发送模块向客户端反馈包括更新后的记录的第三指示消息,使得客户端将更新后的记录存储于缓存区中。
结合第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,第一指示消息为具有头域部分和更新域部分的DNS消息,头域部分包括Z字段和CHCOUNT字段,Z字段用于标识服务器中的记录是否发生更新,CHCOUNT字段用于标识更新域部分中发生更新的记录的个数,更新域部分用于标识发生更新的客户端的记录。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,头域部分还包括Opcode字段,Opcode字段用于标识第一指示消息的类型,以表示第一指示消息为查询服务器中的记录是否发生更新的消息。
第三方面提供一种DNS的客户端,包括接收模块、发送模块、处理模块及存储模块,接收模块和发送模块分别用于接收和发送服务器与客户端之间的交互消息,所述交互消息包括客户端的发送模块向服务器发送的消息以及接收模块接收的服务器向客户端发送的信息,交互消息包括标识服务器中的记录是否发生更新的字段,处理模块用于在服务器的记录发生更新时根据接收模块接收到的交互消息的字段更新存储模块的记录。
结合第三方面,在第一种可能的实现方式中,发送模块用于向服务器发送第一查询消息,接收模块用于接收服务器反馈的第一指示消息,所述第一指示消息包括标识服务器中记录是否发生更新的字段;在处理模块根据第一指示消息判断服务器的记录发生更新时控制存储模块清除当前的记录,并控制发送模块进一步向服务器发送用于请求更新后的记录的第二查询消息,并由接收模块接收服务器反馈的第二指示消息,所述第二指示消息包括更新后的记录,处理模块用于控制存储模块存储更新后的记录。
结合第三方面,在第二种可能的实现方式中,接收模块用于接收服务器发送的第一指示消息,第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,处理模块用于控制存储模块清除当前与版本信息对应的记录,并控制发送模块向服务器发送用以请求更新后的记录的查询消息,以及控制接收模块接收服务器反馈的第三指示消息,第三指示消息包括更新后的记录,处理模块进一步用于控制存储模块存储更新后的记录。
结合第三方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,第一指示消息为具有头域部分和更新域部分的DNS消息,头域部分包括Z字段和CHCOUNT字段,Z字段用于标识服务器中的记录是否发生更新,CHCOUNT字段用于标识更新域部分中发生更新的记录的个数,更新域部分用于标识发生更新的客户端的记录。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,头域部分还包括Opcode字段,Opcode字段用于标识第一指示消息的类型,以表示第一指示消息为查询服务器中的记录是否发生更新的消息。
第四方面提供一种DNS的服务器,包括接收器和发送器,接收器和发送器用于收发服务器与客户端之间的交互消息,交互消息包括接收器接收的客户端向服务器发送的消息以及服务器的发送器向客户端发送的信息,交互消息包括标识服务器中的记录是否发生更新的字段,使得客户端在服务器的记录发生更新时根据接收到的交互消息的字段更新本地缓存区的记录。
结合第四方面,在第一种可能的实现方式中,接收器用于接收客户端发送的第一查询消息,服务器还包括处理器,处理器用于判断服务器中的记录是否发生更新,并控制发送器向客户端反馈第一指示消息,第一指示消息包括标识服务器中记录是否发生更新的字段,使得客户端在服务器中的记录发生更新时清除当前缓存区的记录;在处理器判断记录发生更新时,接收器进一步用于接收客户端发送的用以请求更新后的记录的第二查询消息,处理器控制发送器向客户端反馈包括更新后的记录的第二指示消息,使得存储更新后的记录。
结合第四方面,在第二种可能的实现方式中,发送器用于向客户端发送第一指示消息,第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,使得客户端清除当前缓存区中与版本信息对应的记录;接收器进一步用于接收客户端发送的请求更新后的记录的查询消息,处理器控制发送器向客户端反馈包括更新后的记录的第三指示消息,使得客户端将更新后的记录存储于缓存区中。
结合第四方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,第一指示消息为具有头域部分和更新域部分的DNS消息,头域部分包括Z字段和CHCOUNT字段,Z字段用于标识服务器中的记录是否发生更新,CHCOUNT字段用于标识更新域部分中发生更新的记录的个数,更新域部分用于标识发生更新的客户端的记录。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,头域部分还包括Opcode字段,Opcode字段用于标识第一指示消息的类型,以表示第一指示消息为查询服务器中的记录是否发生更新的消息。
第五方面提供一种DNS的客户端,包括接收器、发送器、处理器及存储器,接收器和发送器分别用于接收和发送服务器与客户端之间的交互消息,所述交互消息包括客户端的发送器向服务器发送的消息以及接收器接收的服务器向客户端发送的信息,交互消息包括标识服务器中的记录是否发生更新的字段,处理器用于在服务器的记录发生更新时根据接收器接收到的交互消息的字段更新存储器的记录。
结合第五方面,在第一种可能的实现方式中,发送器用于向服务器发送第一查询消息,接收器用于接收服务器反馈的第一指示消息,所述第一指示消息包括标识服务器中记录是否发生更新的字段;在处理器根据第一指示消息判断服务器的记录发生更新时控制存储器清除当前的记录,并控制发送器进一步向服务器发送用于请求更新后的记录的第二查询消息,并由接收器接收服务器反馈的第二指示消息,所述第二指示消息包括更新后的记录,处理器用于控制存储器存储更新后的记录。
结合第五方面,在第二种可能的实现方式中,接收器用于接收服务器发送的第一指示消息,第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,处理器用于控制存储器清除当前与版本信息对应的记录,并控制发送器向服务器发送用以请求更新后的记录的查询消息,以及控制接收器接收服务器反馈的第三指示消息,第三指示消息包括更新后的记录,处理器进一步用于控制存储器存储更新后的记录。
结合第五方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,第一指示消息为具有头域部分和更新域部分的DNS消息,头域部分包括Z字段和CHCOUNT字段,Z字段用于标识服务器中的记录是否发生更新,CHCOUNT字段用于标识更新域部分中发生更新的记录的个数,更新域部分用于标识发生更新的客户端的记录。
结合第五方面的第三种可能的实现方式,在第四种可能的实现方式中,头域部分还包括Opcode字段,Opcode字段用于标识第一指示消息的类型,以表示第一指示消息为查询服务器中的记录是否发生更新的消息。
上述的技术方案中,利用DNS中服务器与客户端之间的交互消息中的字段标识服务器中的记录是否发生更新,客户端接收到服务器发送来的交互消息,并根据交互消息中的字段即可更新本地缓存区的记录,从而能够自动保持客户端与服务器之间的数据同步,确保解析记录及时生效。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明的数据同步方法一实施例的流程示意图;
图2是本发明的数据同步方法另一实施例的流程示意图;
图3是本发明的服务器一实施例的原理框示意图;
图4是本发明的服务器一实施例的结构示意图;
图5是本发明的客户端一实施例的原理框示意图;
图6是本发明的客户端一实施例的结构示意图。
具体实施方式
为使本发明的发明目的、技术方案以及有益效果更加清楚明白,以下参照附图并列举较佳实施例,对本发明作出进一步详细说明。
本发明的一个实施例中,利用DNS中服务器与客户端之间的交互消息中的字段标识服务器中的记录是否发生更新,所述交互消息既可以为客户端向服务器发送的消息也可以为服务器向客户端发送的信息,客户端接收服务器发送来的交互消息,并根据交互消息中的字段更新本地缓存区的记录。
例如,图1是本发明的数据同步方法一实施例的流程示意图。
步骤S11:客户端向服务器发送第一查询消息。
本实施例的第一查询消息为客户端与服务器之间进行域名解析的DNS Query(查询消息)。
步骤S12:服务器判断所述服务器中的记录是否发生更新。
服务器可以根据第一查询消息携带的客户端本地缓存区存储的记录的版本信息,判断服务器中的记录是否发生更新,所述记录的版本信息可以包括所述记录对应的域名以及所述记录被存储的时间,例如,若第一查询消息携带的记录被存储的时间为2月2日11点,服务器在2月2日12点已经更新了该记录对应的域名所对应的数据,则服务器基于该域名对应的数据的更新时间2月2日12点晚于2月2日11点,即可判定服务器中的记录已经发生更新。
若判定所述服务器中的记录未发生更新,则执行步骤S13;若判定所述服务器中的记录发生更新,则执行步骤S14-S18。
步骤S13:服务器不向客户端反馈第一指示消息。
当然,服务器也可以向客户端反馈第一指示消息,但此时第一指示消息包括标识服务器中与所述版本信息对应的记录未发生更新的字段。
步骤S14:服务器向客户端反馈第一指示消息,所述第一指示消息包括标识服务器中与所述版本信息对应的记录已经发生更新的字段。
本实施例的第一指示消息为与DNS Query对应的DNS Respone(应答信息),其实质上可以理解为一种具有如下表1所示的DNS格式消息,但与现有的DNS格式消息仅包括头域部分(Header)、问题域部分(Question)、答案域部分(Answer)、权威域部分(Authority)、附加域部分(Additional)不同的是,本发明实施例中的所述第一指示消息除了包括头域部分(Header)、问题域部分(Question)、答案域部分(Answer)、权威域部分(Authority)、附加域部分(Additional)外,还包括用于标识发生更新的记录的更新域部分(Changes),即用于表示客户端的缓存区中哪些记录发生了更新,也就是说,更新域部分携带的是发生更新之前的记录,而非更新之后的记录。
Header 头域部分
Question 问题域部分
Answer 答案域部分
Authority 权威域部分
Additional 附加域部分
Changes 更新域部分
表1
其中,更新域部分可以采用RFC1035中规定的Question section format(问题部分格式),即包括QNAME字段、QTYPE字段和QCLASS字段,QNAME字段表示客户端所查询的域名,QTYPE字段表示所述域名的类型,QCLASS字段表示查询所使用的网络类别,例如QCLASS取值为1时为Internet。
本实施例的头域部分具有如下表2所示的格式:
表2
其中,0~15这16位字段的取值构成第一指示消息的ID(IDentity),且所述ID由客户端发送的第一查询消息携带;QR字段表示第一指示消息为应答消息,该字段取值为1;Opcode字段表示第一指示消息的类型,该字段取值为2,表示所述第一指示消息是服务器向客户端发送的应答信息;AA字段表示发送第一指示消息的服务器是否为授权的权威域名服务器,若是,则该字段取值为1;TC字段表示第一指示消息的字段是否超长,如果超过512字节,则该字段取值为1,如果小于等于512字节,则该字段取值为0;RD字段表示服务器是否完成递归查询,并在完成时该字段取值为1,如果服务器未完成递归查询,该字段取值为0;RA字段表示服务器是否支持递归查询,例如RA字段取值为1表示支持递归查询,RA字段取值为0表示不支持递归查询;RCODE字段表示递归查询的结果,该字段取值为0时表示递归查询成功,否则为对应的错误码;QDCOUNT字段表示问题域部分的个数,ANCOUNT字段表示答案域部分的个数、NSCOUNT字段表示权威域部分的个数、ARCOUNT字段表示附加域部分的个数。
现有的DNS格式消息的头域部分未设置CHCOUNT字段,且头域部分的Z字段未被使用,本实施例正是利用所述Z字段标识服务器中的记录是否发生更新,即利用所述Z字段传递服务器中的记录的版本信息,例如客户端发送的第一查询消息的Z字段取值为001,若服务器反馈的第一指示消息中的Z字段取值为002,则表示服务器中的记录发生更新,客户端需要对第一指示消息中的更新域部分所携带的记录进行更新。并在所述记录发生更新时,利用所述CHCOUNT字段标识所述更新域部分中发生更新的记录的个数。
步骤S15:在所述记录发生更新时,客户端清除本地缓存区当前的记录。
步骤S16:客户端向服务器发送第二查询消息,以请求更新后的记录。
步骤S17:服务器向客户端反馈携带有所述更新后的记录的第二指示消息。
步骤S18:客户端存储更新后的记录。
需要指出的是,步骤S16-S18即为域名解析过程,即当客户端向服务器发送DNS查询消息以进行域名解析时,服务器将解析后的数据返回给客户端,客户端将数据存储于自身的缓存区中。也就是说,在清除本地缓存区中的已经老化的记录后,客户端可以根据需要随即或间隔一段时间又或者不向服务器发送所述DNS查询消息。
所述第二查询消息和所述第二指示消息即为客户端与服务器之间进行域名解析时的DNS Query和DNS Respone。进一步结合上述,可知本实施例实质上是在现有DNS格式消息的基础上进行的改进,可认为是通过复用现有DNS格式消息实现解析记录更新的快速知会,从而自动保持客户端与服务器之间的数据同步,确保解析记录及时生效。
再次结合表1和表2,在图1所示实施例的基础上但与之不同的是,本发明其他实施例可以进一步赋予DNS格式消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息为“DNS记录变更查询消息”,即标识所述第一指示消息为用于查询所述服务器中的记录是否发生更新的消息。此时头域部分的Z字段与前述使用方法相同。
图2是本发明的数据同步方法另一实施例的流程示意图。
步骤S21:服务器向客户端发送第一指示消息,所述第一指示消息包括标识服务器的记录已经发生更新的第一字段及标识发生更新的记录的版本信息的第二字段。
所述第一指示消息为DNS中服务器与客户端之间进行域名解析的DNS格式消息,结合表1和表2,通过赋予DNS格式消息中头域部分的Opcode字段的取值,例如2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以标识服务器中的记录是否发生更新。
步骤S22:客户端清除当前缓存区中与版本信息对应的记录,并向服务器发送查询消息,以向服务器请求更新后的记录。
步骤S23:服务器向客户端反馈携带有更新后的记录的第三指示消息。
步骤S24:客户端将接收到的所述更新后的记录存储于本地缓存区中。
本实施例的服务器在判定记录发生更新时主动告知客户端,从而使得客户端自动保持与服务器之间的数据同步,确保解析记录及时生效。
本发明的其他实施例可以利用DNS格式消息中头域部分的Z字段传递服务器中的记录的版本信息从而标识服务器的记录是否发生更新,例如客户端发送的第一查询消息的Z字段取值为001,若服务器反馈的第一指示消息中的Z字段取值为002,则表示服务器中的记录发生更新,客户端需要对第一指示消息中的更新域部分所携带的记录进行更新,并在记录发生更新时,利用头域部分的CHCOUNT字段标识更新域部分中发生更新的记录的个数,此时头域部分的Opcode字段与现有DNS格式消息的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
本发明还提供一种如图3所示的服务器,如图3所示,所述服务器30包括接收模块31和处理模块32、发送模块33,收发模块31和发送模块33分别用于接收和发送服务器30与客户端之间的交互消息,所述交互消息携带有标识服务器30中的记录是否发生更新的字段,使得客户端根据接收到的交互消息的字段更新本地缓存区的记录。
所述交互消息既包括客户端向服务器30发送的消息,还包括服务器30向客户端发送的信息,具体而言:
所述交互消息为客户端向服务器30发送的消息时,
接收模块31接收客户端发送的第一查询消息,处理模块32判断服务器30中的记录是否发生更新,并控制发送模块33向客户端反馈第一指示消息,所述第一指示消息包括标识服务器30中记录是否发生更新的字段,使得客户端在服务器30中的记录发生更新时清除当前缓存区的记录。
在处理模块32判断记录发生更新时,接收模块31进一步接收客户端发送的用以请求更新后的记录的第二查询消息,处理模块32根据所述第二查询消息控制发送模块33向客户端反馈包括更新后的记录的第二指示消息,使得客户端存储更新后的记录,从而自动保持与服务器30之间的数据同步,确保解析记录及时生效。
本实施例的第一查询消息和第一指示消息为DNS中服务器30与客户端之间进行域名解析的DNS格式消息,结合表1和表2,通过赋予第一指示消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器30中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以传递服务器30中的记录的版本信息从而标识服务器30的记录是否发生更新,例如客户端发送的第一查询消息的Z字段取值为001,若服务器30反馈的第一指示消息中的Z字段取值为002,则表示服务器30中的记录发生更新,客户端需要对第一指示消息中的更新域部分所携带的记录进行更新。并且更新域部分携带的仅仅发生更新之前的记录,而非更新之后的记录。
当然,还可以仅利用第一指示消息中头域部分的Z字段标识服务器30中与所述版本信息对应的记录是否发生更新,并在所述记录发生更新时,利用头域部分的CHCOUNT字段标识所述更新域部分中发生更新的记录的个数,此时所述头域部分的Opcode字段与现有的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
所述第二查询消息和所述第二指示消息即为客户端和服务器30之间进行域名解析时的DNS Query和DNS Respone。
所述交互消息为服务器30向客户端发送的消息时,
发送模块33向客户端发送第一指示消息,所述第一指示消息包括标识服务器30的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,使得客户端清除当前缓存区中与版本信息对应的记录。接收模块31进一步接收客户端发送的请求更新后的记录的查询消息,处理模块32根据查询消息控制发送模块33向客户端反馈包括更新后的记录的第三指示消息,使得客户端根据第三指示消息将更新后的记录存储于缓存区中。
本实施例的第一指示消息为DNS中服务器30与客户端之间进行域名解析的DNS格式消息,结合表1和表2,可以仅利用第一指示消息中头域部分的Z字段标识服务器30中与所述版本信息对应的记录是否发生更新,并在所述记录发生更新时,利用头域部分的CHCOUNT字段标识所述更新域部分中发生更新的记录的个数,此时所述头域部分的Opcode字段与现有的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
当然,还可以通过赋予第一指示消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器30中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以传递服务器30中的记录的版本信息从而标识服务器30的记录是否发生更新,并且更新域部分携带的仅仅发生更新之前的记录,而并非更新之后的记录。
所述查询消息和所述第三指示消息即为客户端和服务器30之间进行域名解析时的DNS Query和DNS Respone。
本发明进一步提供一种如图4所示的客户端,如图4所示,所述客户端40包括接收模块41、处理模块42及存储模块43、发送模块44,其中,接收模块41和发送模块44分别用于接收和发送服务器与客户端40之间的交互消息,所述交互消息包括标识服务器中的记录是否发生更新的字段,处理模块42用于根据接收模块41接收到的交互消息的字段更新存储模块43的记录。
所述交互消息既包括客户端40向服务器发送的消息,还包括服务器向客户端40发送的信息,具体而言:
所述交互消息为客户端40向服务器发送的消息时,
发送模块44用于向服务器发送第一查询消息,接收模块41接收服务器反馈的第一指示消息,所述第一指示消息包括标识服务器中记录是否发生更新的字段。
其中,在处理模块42根据所述第一指示消息判断服务器的记录发生更新时控制存储模块43清除当前的记录,并控制发送模块44进一步向服务器发送用于请求更新后的记录的第二查询消息,并接收服务器反馈的第二指示消息,所述第二指示消息包括更新后的记录,处理模块42用于控制存储模块43存储更新后的记录。
本实施例的第一查询消息和第一指示消息为DNS中服务器与客户端40之间进行域名解析的DNS格式消息,结合表1和表2,通过赋予第一指示消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以传递服务器中的记录的版本信息从而标识服务器的记录是否发生更新,并且更新域部分携带的仅仅发生更新之前的记录,而并非更新之后的记录。
当然,还可以仅利用第一指示消息中头域部分的Z字段标识服务器中与所述版本信息对应的记录是否发生更新,并在所述记录发生更新时,利用头域部分的CHCOUNT字段标识所述更新域部分中发生更新的记录的个数,此时所述头域部分的Opcode字段与现有的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
所述第二查询消息和所述第二指示消息即为客户端40和服务器之间进行域名解析时的DNS Query和DNS Respone。
所述交互消息为服务器向客户端40发送的消息时,
接收模块41接收服务器发送的第一指示消息,所述第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,处理模块42控制存储模块43清除当前与版本信息对应的记录,并控制发送模块44向服务器发送用以请求更新后的记录的查询消息,以及控制接收模块41接收服务器反馈的第三指示消息,所述第三指示消息包括更新后的记录,处理模块42进一步控制存储模块43存储更新后的记录,从而使得客户端40自动保持与服务器之间的数据同步,确保解析记录及时生效。
本实施例的第一指示消息为DNS中服务器与客户端40之间进行域名解析的DNS格式消息,结合表1和表2,可以利用第一指示消息中头域部分的Z字段标识服务器中与所述版本信息对应的记录是否发生更新,并在所述记录发生更新时,利用头域部分的CHCOUNT字段标识所述更新域部分中发生更新的记录的个数,此时所述头域部分的Opcode字段与现有的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
当然,还可以通过赋予第一指示消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以传递服务器中的记录的版本信息从而标识服务器的记录是否发生更新,并且更新域部分携带的仅仅发生更新之前的记录,而并非更新之后的记录。
所述查询消息和所述第三指示消息即为客户端40和服务器之间进行域名解析时的DNS Query和DNS Respone。
在本实施例中,以上所描述的服务器30与客户端40的各个模块结构,对应执行上述各实施例所述的数据同步方法,因此具有与其相同的技术效果。
应该理解到,上述服务器30与客户端40的实施方式仅仅是示意性的,所描述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统中,或一些特征可以忽略,或不执行。另外,模块相互之间的耦合或通信连接可以是通过一些接口,也可以是电性或其它的形式。上述各个功能模块作为服务器30与客户端40的组成部分,可以是或者也可以不是物理框,既可以位于一个地方,也可以分布到多个网络单元上,既可以采用软件功能框的形式实现,也可以采用硬件的形式实现,例如图5所示的服务器以及图6所示的客户端。
如图5所示,服务器包括接收器51、存储器52、处理器53及总线54、发送器55,接收器51、存储器52、处理器53、发送器55通过总线54连接,其中:
接收器51和发送器55分别用于接收和发送服务器与客户端之间的交互消息,所述交互消息携带有标识服务器中的记录是否发生更新的字段。
存储器52可以实现为计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等的一种或多种,存储有用以实现数据同步的应用程序。
处理器53通过调用存储器52中存储的应用程序,执行如下操作:
所述交互消息为客户端向服务器发送的消息时,
控制接收器51接收客户端发送的第一查询消息,处理器53判断服务器中的记录是否发生更新,并控制发送器55向客户端反馈第一指示消息,所述第一指示消息包括标识服务器中记录是否发生更新的字段,使得客户端在服务器中的记录发生更新时清除当前缓存区的记录。
在处理器53判断记录发生更新时,控制接收器51接收客户端发送的用以请求更新后的记录的第二查询消息,处理器53根据所述第二查询消息控制发送器55向客户端反馈包括更新后的记录的第二指示消息,使得客户端存储更新后的记录,从而自动保持与服务器之间的数据同步,确保解析记录及时生效。
其中,第一查询消息和第一指示消息为DNS中服务器与客户端之间进行域名解析的DNS格式消息,结合表1和表2,通过赋予第一指示消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以传递服务器中的记录的版本信息从而标识服务器的记录是否发生更新,并且更新域部分携带的仅仅发生更新之前的记录,而非更新之后的记录。
当然,还可以仅利用第一指示消息中头域部分的Z字段标识服务器中与所述版本信息对应的记录是否发生更新,并在所述记录发生更新时,利用头域部分的CHCOUNT字段标识所述更新域部分中发生更新的记录的个数,此时所述头域部分的Opcode字段与现有的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
所述第二查询消息和所述第二指示消息即为客户端和服务器之间进行域名解析时的DNS Query和DNS Respone。
所述交互消息为服务器向客户端发送的消息时,
控制发送器55向客户端发送第一指示消息,所述第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,使得客户端清除当前缓存区中与版本信息对应的记录。控制接收器51进一步接收客户端发送的请求更新后的记录的查询消息,处理器53根据查询消息控制发送器55向客户端反馈包括更新后的记录的第三指示消息,使得客户端根据第三指示消息将更新后的记录存储于缓存区中。
其中,第一指示消息为DNS中服务器与客户端之间进行域名解析的DNS格式消息,结合表1和表2,可以利用第一指示消息中头域部分的Z字段标识服务器中与所述版本信息对应的记录是否发生更新,并在所述记录发生更新时,利用头域部分的CHCOUNT字段标识所述更新域部分中发生更新的记录的个数,此时所述头域部分的Opcode字段与现有的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
当然,还可以通过赋予第一指示消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以传递服务器中的记录的版本信息从而标识服务器的记录是否发生更新,并且更新域部分携带的仅仅发生更新之前的记录,而并非更新之后的记录。
所述查询消息和所述第二指示消息即为客户端和服务器之间进行域名解析时的DNS Query和DNS Respone。
如图6所示,客户端包括接收器61、存储器62、处理器63及总线64、发送器65,收发器61、存储器62、处理器63、发送器65通过总线64连接,其中:
接收器61和发送器65分别用于接收和发送服务器与客户端之间的交互消息,所述交互消息包括标识服务器中的记录是否发生更新的字段。
存储器62可以实现为计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等的一种或多种,存储有用以实现数据同步的应用程序。
处理器63通过调用存储器62中存储的应用程序,执行如下操作:
所述交互消息为客户端向服务器发送的消息时,
控制发送器65向服务器发送第一查询消息,并控制接收器61接收服务器反馈的第一指示消息,所述第一指示消息包括标识服务器中记录是否发生更新的字段。
在处理器63根据所述第一指示消息判断服务器的记录发生更新时控制存储器63清除当前的记录,处理器63控制发送器65进一步向服务器发送用于请求更新后的记录的第二查询消息,并控制接收器61接收服务器反馈的第二指示消息,所述第二指示消息包括更新后的记录,处理器63进一步用于控制存储器62清除当前的记录,并存储更新后的记录。
其中,第一查询消息和第一指示消息为DNS中服务器与客户端之间进行域名解析的DNS格式消息,结合表1和表2,通过赋予第一指示消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以传递服务器中的记录的版本信息从而标识服务器的记录是否发生更新,并且更新域部分携带的仅仅发生更新之前的记录,而并非更新之后的记录。
当然,还可以仅利用第一指示消息中头域部分的Z字段标识服务器中与所述版本信息对应的记录是否发生更新,并在所述记录发生更新时,利用头域部分的CHCOUNT字段标识所述更新域部分中发生更新的记录的个数,此时所述头域部分的Opcode字段与现有的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
所述第二查询消息和所述第二指示消息即为客户端和服务器之间进行域名解析时的DNS Query和DNS Respone。
所述交互消息为服务器向客户端发送的消息时,
处理器63控制接收器61接收服务器发送的第一指示消息,所述第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,处理器63控制存储器62清除当前与版本信息对应的记录,并控制发送器65向服务器发送用以请求更新后的记录的查询消息,以及控制接收器61接收服务器反馈的第三指示消息,所述第三指示消息包括更新后的记录,处理器63进一步控制存储器62存储更新后的记录,从而使得客户端自动保持与服务器之间的数据同步,确保解析记录及时生效。
其中,第一指示消息为DNS中服务器与客户端之间进行域名解析的DNS格式消息,结合表1和表2,可以利用第一指示消息中头域部分的Z字段标识服务器中与所述版本信息对应的记录是否发生更新,并在所述记录发生更新时,利用头域部分的CHCOUNT字段标识所述更新域部分中发生更新的记录的个数,此时所述头域部分的Opcode字段与现有的相同,并且所述更新域部分携带的仅仅是发生更新之前的记录,而并非更新之后的记录。
当然,还可以通过赋予第一指示消息中头域部分的Opcode字段的取值,例如为2~15中的任一个,利用Opcode字段标识所述第一指示消息的类型,以表示所述第一指示消息为查询服务器中的记录是否发生更新的消息,其中Opcode字段取值为2时所述第一指示消息与现有的DNS格式消息(DNS Respone)的Opcode字段取值相同,Opcode字段取值为3~15中的任一个时标识所述第一指示消息是否为“DNS记录变更查询消息”。此时头域部分的Z字段仍被使用以传递服务器中的记录的版本信息从而标识服务器的记录是否发生更新,并且更新域部分携带的仅仅发生更新之前的记录,而并非更新之后的记录。
所述查询消息和所述第二指示消息即为客户端和服务器之间进行域名解析时的DNS Query和DNS Respone。
本领域技术人员可以清楚地了解到,上述服务器与客户端的各个元件的具体工作过程,可参考前述方法实施例中的对应过程,为描述方便和简洁此处不再赘述。各个元件可以单独或集成设置于物理元件中。并且,上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中,即,本发明实施例可以以软件产品的形式体现出来,其包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
再次说明,以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (20)

1.一种域名系统DNS的数据同步方法,其特征在于,所述方法包括:
利用服务器与客户端之间的交互消息中的字段标识所述服务器中的记录是否发生更新,其中所述交互消息包括所述客户端向所述服务器发送的消息以及所述服务器向所述客户端发送的信息;
在所述服务器的所述记录发生更新时,所述客户端根据接收到的所述交互消息的字段更新本地缓存区的记录;
其中,所述利用服务器与客户端之间的交互消息中的字段标识所述服务器的记录是否发生更新的步骤包括:
所述客户端向所述服务器发送第一查询消息;
所述客户端接收所述服务器在判断所述服务器中的记录是否发生更新后反馈的第一指示消息,所述第一指示消息包括标识所述服务器中记录是否发生更新的所述字段;
在所述服务器的所述记录发生更新时,所述客户端根据接收到的所述交互消息的字段更新本地缓存区的记录的步骤包括:
所述客户端清除当前所述缓存区的记录;
所述客户端向所述服务器发送第二查询消息,以向所述服务器请求更新后的记录;
所述客户端接收所述服务器反馈的第二指示消息,所述第二指示消息包括所述更新后的记录;
所述客户端在接收到所述第二指示消息后存储所述更新后的记录。
2.根据权利要求1所述的方法,其特征在于,所述利用服务器与客户端之间的交互消息中的字段标识所述服务器的记录是否发生更新的步骤包括:
所述客户端接收所述服务器发送的第一指示消息,所述第一指示消息包括标识所述服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段;
所述客户端根据接收到的所述交互消息的字段更新本地缓存区的记录的步骤包括:
所述客户端清除当前所述缓存区中与所述版本信息对应的记录,并向所述服务器发送查询消息,以向所述服务器请求更新后的记录;
所述服务器向所述客户端反馈第三指示消息,所述第三指示消息包括所述更新后的记录;
所述客户端将接收到的所述更新后的记录存储于所述缓存区中。
3.根据权利要求1或2所述的方法,其特征在于,所述第一指示消息为具有头域部分Header和更新域部分Changes的DNS消息,所述头域部分包括Z字段和CHCOUNT字段,所述Z字段用于标识所述服务器中的记录是否发生更新,所述CHCOUNT字段用于标识所述更新域部分中所述发生更新的记录的个数,所述更新域部分用于标识发生更新的所述客户端的记录。
4.根据权利要求3所述的方法,其特征在于,所述头域部分还包括Opcode字段,所述Opcode字段用于标识所述第一指示消息的类型,以表示所述第一指示消息为查询所述服务器中的记录是否发生更新的消息。
5.一种DNS的服务器,其特征在于,所述服务器包括接收模块和发送模块,所述接收模块和所述发送模块分别用于接收和发送所述服务器与客户端之间的交互消息,所述交互消息包括所述接收模块接收的所述客户端向所述服务器发送的消息以及所述服务器的所述发送模块向所述客户端发送的信息,所述交互消息包括标识所述服务器中的记录是否发生更新的字段,使得所述客户端在所述服务器的所述记录发生更新时根据接收到的所述交互消息的字段更新本地缓存区的记录;
所述接收模块用于接收所述客户端发送的第一查询消息,所述服务器还包括处理模块,所述处理模块用于判断所述服务器中的记录是否发生更新,并控制所述发送模块向所述客户端反馈第一指示消息,所述第一指示消息包括标识所述服务器中记录是否发生更新的所述字段,使得所述客户端在所述服务器中的记录发生更新时清除当前所述缓存区的记录;
在所述处理模块判断所述记录发生更新时,所述接收模块进一步用于接收所述客户端发送的用以请求更新后的记录的第二查询消息,所述处理模块控制所述发送模块向所述客户端反馈包括所述更新后的记录的第二指示消息,使得所述客户端存储所述更新后的记录。
6.根据权利要求5所述的服务器,其特征在于,所述发送模块用于向所述客户端发送第一指示消息,所述第一指示消息包括标识所述服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,使得所述客户端清除当前所述缓存区中与所述版本信息对应的记录;所述接收模块进一步用于接收所述客户端发送的请求更新后的记录的查询消息,所述处理模块控制所述发送模块向所述客户端反馈包括所述更新后的记录的第三指示消息,使得所述客户端将所述更新后的记录存储于所述缓存区中。
7.根据权利要求5或6所述的服务器,其特征在于,所述第一指示消息为具有头域部分和更新域部分的DNS消息,所述头域部分包括Z字段和CHCOUNT字段,所述Z字段用于标识所述服务器中的记录是否发生更新,所述CHCOUNT字段用于标识所述更新域部分中所述发生更新的记录的个数,所述更新域部分用于标识发生更新的所述客户端的记录。
8.根据权利要求7所述的服务器,其特征在于,所述头域部分还包括Opcode字段,所述Opcode字段用于标识所述第一指示消息的类型,以表示所述第一指示消息为查询所述服务器中的记录是否发生更新的消息。
9.一种DNS的客户端,其特征在于,所述客户端包括接收模块、发送模块、处理模块及存储模块,所述接收模块和所述发送模块分别用于接收和发送所述服务器与客户端之间的交互消息,所述交互消息包括所述客户端的所述发送模块向所述服务器发送的消息以及所述接收模块接收的所述服务器向所述客户端发送的信息,所述交互消息包括标识所述服务器中的记录是否发生更新的字段,所述处理模块用于在所述服务器的所述记录发生更新时根据所述接收模块接收到的所述交互消息的字段更新所述存储模块的记录;
所述发送模块用于向所述服务器发送第一查询消息,所述接收模块用于接收所述服务器反馈的第一指示消息,所述第一指示消息包括标识所述服务器中记录是否发生更新的所述字段;
在所述处理模块根据所述第一指示消息判断所述服务器的所述记录发生更新时控制所述存储模块清除当前的记录,并控制所述发送模块进一步向所述服务器发送用于请求更新后的记录的第二查询消息,并由所述接收模块接收所述服务器反馈的第二指示消息,所述第二指示消息包括所述更新后的记录,所述处理模块用于控制所述存储模块存储所述更新后的记录。
10.根据权利要求9所述的客户端,其特征在于,所述接收模块用于接收服务器发送的第一指示消息,所述第一指示消息包括标识所述服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,所述处理模块用于控制所述存储模块清除当前与所述版本信息对应的记录,并控制所述发送模块向所述服务器发送用以请求更新后的记录的查询消息,以及控制所述接收模块接收所述服务器反馈的第三指示消息,所述第三指示消息包括所述更新后的记录,所述处理模块进一步用于控制所述存储模块存储所述更新后的记录。
11.根据权利要求9或10所述的客户端,其特征在于,所述第一指示消息为具有头域部分和更新域部分的DNS消息,所述头域部分包括Z字段和CHCOUNT字段,所述Z字段用于标识所述服务器中的记录是否发生更新,所述CHCOUNT字段用于标识所述更新域部分中所述发生更新的记录的个数,所述更新域部分用于标识发生更新的所述客户端的记录。
12.根据权利要求11所述的客户端,其特征在于,所述头域部分还包括Opcode字段,所述Opcode字段用于标识所述第一指示消息的类型,以表示所述第一指示消息为查询所述服务器中的记录是否发生更新的消息。
13.一种DNS的服务器,其特征在于,所述服务器包括接收器和发送器,所述接收器和所述发送器分别用于接收和发送所述服务器与客户端之间的交互消息,所述交互消息包括所述接收器接收的所述客户端向所述服务器发送的消息以及所述服务器的所述发送器向所述客户端发送的信息,所述交互消息包括标识所述服务器中的记录是否发生更新的字段,使得所述客户端在所述服务器的所述记录发生更新时根据接收到的所述交互消息的字段更新本地缓存区的记录;
所述接收器用于接收所述客户端发送的第一查询消息,所述服务器还包括处理器,所述处理器用于判断所述服务器中的记录是否发生更新,并控制所述发送器向所述客户端反馈第一指示消息,所述第一指示消息包括标识所述服务器中记录是否发生更新的所述字段,使得所述客户端在所述服务器中的记录发生更新时清除当前所述缓存区的记录;
在所述处理器判断所述记录发生更新时,所述接收器进一步用于接收所述客户端发送的用以请求更新后的记录的第二查询消息,所述处理器控制所述发送器向所述客户端反馈包括所述更新后的记录的第二指示消息,使得所述客户端存储所述更新后的记录。
14.根据权利要求13所述的服务器,其特征在于,所述发送器用于向所述客户端发送第一指示消息,所述第一指示消息包括标识所述服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,使得所述客户端清除当前所述缓存区中与所述版本信息对应的记录;所述接收器进一步用于接收所述客户端发送的请求更新后的记录的查询消息,所述处理器控制所述发送器向所述客户端反馈包括所述更新后的记录的第三指示消息,使得所述客户端将所述更新后的记录存储于所述缓存区中。
15.根据权利要求13或14所述的服务器,其特征在于,所述第一指示消息为具有头域部分和更新域部分的DNS消息,所述头域部分包括Z字段和CHCOUNT字段,所述Z字段用于标识所述服务器中的记录是否发生更新,所述CHCOUNT字段用于标识所述更新域部分中所述发生更新的记录的个数,所述更新域部分用于标识发生更新的所述客户端的记录。
16.根据权利要求15所述的服务器,其特征在于,所述头域部分还包括Opcode字段,所述Opcode字段用于标识所述第一指示消息的类型,以表示所述第一指示消息为查询所述服务器中的记录是否发生更新的消息。
17.一种DNS的客户端,其特征在于,所述客户端包括接收器、发送器、处理器及存储器,所述接收器和所述发送器分别用于接收和发送所述服务器与客户端之间的交互消息,所述交互消息包括所述客户端的所述发送器向所述服务器发送的消息以及所述接收器接收的所述服务器向所述客户端发送的信息,所述交互消息包括标识所述服务器中的记录是否发生更新的字段,所述处理器用于在所述服务器的所述记录发生更新时根据所述接收器接收到的所述交互消息的字段更新所述存储器的记录;
所述发送器用于向所述服务器发送第一查询消息,所述接收器用于接收所述服务器反馈的第一指示消息,所述第一指示消息包括标识所述服务器中记录是否发生更新的所述字段;
在所述处理器根据所述第一指示消息判断所述服务器的所述记录发生更新时控制所述存储器清除当前的记录,并控制所述发送器进一步向所述服务器发送用于请求更新后的记录的第二查询消息,并由所述接收器接收所述服务器反馈的第二指示消息,所述第二指示消息包括所述更新后的记录,所述处理器用于控制所述存储器存储所述更新后的记录。
18.根据权利要求17所述的客户端,其特征在于,所述接收器用于接收服务器发送的第一指示消息,所述第一指示消息包括标识所述服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,所述处理器用于控制所述存储器清除当前与所述版本信息对应的记录,并控制所述发送器向所述服务器发送用以请求更新后的记录的查询消息,以及控制所述接收器接收所述服务器反馈的第三指示消息,所述第三指示消息包括所述更新后的记录,所述处理器进一步用于控制所述存储器存储所述更新后的记录。
19.根据权利要求17或18所述的客户端,其特征在于,所述第一指示消息为具有头域部分和更新域部分的DNS消息,所述头域部分包括Z字段和CHCOUNT字段,所述Z字段用于标识所述服务器中的记录是否发生更新,所述CHCOUNT字段用于标识所述更新域部分中所述发生更新的记录的个数,所述更新域部分用于标识发生更新的所述客户端的记录。
20.根据权利要求19所述的客户端,其特征在于,所述头域部分还包括Opcode字段,所述Opcode字段用于标识所述第一指示消息的类型,以表示所述第一指示消息为查询所述服务器中的记录是否发生更新的消息。
CN201580028567.2A 2015-06-30 2015-06-30 Dns的服务器、客户端及数据同步方法 Active CN106464745B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/082719 WO2017000144A1 (zh) 2015-06-30 2015-06-30 Dns的服务器、客户端及数据同步方法

Publications (2)

Publication Number Publication Date
CN106464745A CN106464745A (zh) 2017-02-22
CN106464745B true CN106464745B (zh) 2019-11-29

Family

ID=57607470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580028567.2A Active CN106464745B (zh) 2015-06-30 2015-06-30 Dns的服务器、客户端及数据同步方法

Country Status (2)

Country Link
CN (1) CN106464745B (zh)
WO (1) WO2017000144A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494859B (zh) * 2018-03-28 2020-07-14 烽火通信科技股份有限公司 网络数据的同步方法及系统
CN110855466A (zh) * 2018-12-24 2020-02-28 互联网域名系统北京市工程研究中心有限公司 一种dns服务器向客户端主动推送更新的方法
CN109547585A (zh) * 2019-01-14 2019-03-29 中国雄安集团数字城市科技有限公司 一种基于边缘计算云的快速切换的方法
CN110647279A (zh) * 2019-10-09 2020-01-03 贵州天霓物联技术有限公司 物品存储箱内物品的管理方法、系统、装置、设备及介质
CN111885212B (zh) * 2020-06-03 2023-05-30 山东伏羲智库互联网研究院 域名存储方法及装置
CN114124888A (zh) * 2020-08-25 2022-03-01 中国移动通信有限公司研究院 一种域名解析方法及装置
CN113163023B (zh) * 2021-02-26 2023-02-21 北京车和家信息技术有限公司 一种域名管理方法、装置、介质和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769031B1 (en) * 2000-09-29 2004-07-27 Interland, Inc. Dynamically incorporating updates to active configuration information
CN1805450A (zh) * 2005-01-10 2006-07-19 华为技术有限公司 在域名系统dns机制中实现服务器与客户端数据同步的方法
CN102984286A (zh) * 2012-11-14 2013-03-20 上海牙木通讯技术有限公司 一种dns服务器的缓存更新方法、装置及系统
US8438240B2 (en) * 2011-09-27 2013-05-07 Cloudflare, Inc. Distributing transmission of requests across multiple IP addresses of a proxy server in a cloud-based proxy service
WO2014184711A2 (en) * 2013-05-13 2014-11-20 Yandex Europe Ag Method of and system for providing a client device with an automatic update of an ip address associated with a domain name

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059071A1 (en) * 2012-01-11 2014-02-27 Saguna Networks Ltd. Methods, circuits, devices, systems and associated computer executable code for providing domain name resolution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769031B1 (en) * 2000-09-29 2004-07-27 Interland, Inc. Dynamically incorporating updates to active configuration information
CN1805450A (zh) * 2005-01-10 2006-07-19 华为技术有限公司 在域名系统dns机制中实现服务器与客户端数据同步的方法
US8438240B2 (en) * 2011-09-27 2013-05-07 Cloudflare, Inc. Distributing transmission of requests across multiple IP addresses of a proxy server in a cloud-based proxy service
CN102984286A (zh) * 2012-11-14 2013-03-20 上海牙木通讯技术有限公司 一种dns服务器的缓存更新方法、装置及系统
WO2014184711A2 (en) * 2013-05-13 2014-11-20 Yandex Europe Ag Method of and system for providing a client device with an automatic update of an ip address associated with a domain name

Also Published As

Publication number Publication date
CN106464745A (zh) 2017-02-22
WO2017000144A1 (zh) 2017-01-05

Similar Documents

Publication Publication Date Title
CN106464745B (zh) Dns的服务器、客户端及数据同步方法
US10187459B2 (en) Distributed load balancing system, health check method, and service node
CN107733670B (zh) 一种转发策略配置方法和装置
CN106375492A (zh) 一种cdn业务的处理方法、相关设备及通信系统
CN102845123B (zh) 虚拟私云的连接方法及隧道代理服务器
CN105704034B (zh) 接入网络的方法和中央服务器
US9825861B2 (en) Packet forwarding method, apparatus, and system
CN107197059B (zh) 一种dns解析方法及装置
CN103780715A (zh) 域名解析实现方法、客户端和云服务器
CN107181812B (zh) 一种加速代理设备、加速代理方法以及一种内容管理系统
CN107342925B (zh) 一种报文传输方法及装置
CN107547346B (zh) 一种报文传输方法和装置
CN109076082A (zh) 面向身份的网络和协议中的匿名身份
CN105245629A (zh) 基于dhcp的主机通信方法及装置
CN103763195B (zh) 一种传输报文的方法及装置
CN108418806A (zh) 一种报文的处理方法及装置
CN102196009A (zh) 登录网络的方法、服务器及客户端
CN104144223B (zh) 一种数据获取方法及装置
CN106899621B (zh) 一种调度系统及方法
CN108243265A (zh) 一种dns解析处理方法及装置
CN104468138B (zh) 一种多媒体会议的实现方法、相关设备以及系统
CN104253798A (zh) 一种网络安全监控方法和系统
CN106878479B (zh) 一种地址分配方法及装置
CN106375489B (zh) 媒体访问控制mac地址的处理方法及装置
CN108429641A (zh) 一种网络设备管理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant