DNS的服务器、客户端及数据同步方法技术

技术编号:14704897 阅读:66 留言:0更新日期:2017-02-25 04:57
本发明专利技术公开一种DNS的服务器、客户端及数据同步方法,利用服务器与客户端之间的交互消息中的字段标识服务器中的记录是否发生更新,其中交互消息包括客户端向服务器发送的消息以及服务器向客户端发送的信息,在服务器的所述记录发生更新时,客户端根据接收到的交互消息的字段即可更新本地缓存区的记录。本发明专利技术能够自动保持客户端与服务器之间的数据同步,确保解析记录及时生效。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及DNS(DomainNameSystem,域名系统)
,具体涉及一种DNS的服务器、客户端及两者的数据同步方法。
技术介绍
DNS可以将域名和IP地址相互映射,使得人们无需记住仅能被计算机直接读取的IP字符串,即可访问互联网。当前,DNS的服务器(Server)与客户端(Client)之间只有查询和被查询的关系,而没有保证两者数据同步的同步机制,所谓数据是指客户端向服务器查询与域名相关的信息资源。当客户端向服务器发送查询消息以进行域名解析时,服务器将解析后的数据返回给客户端,客户端将数据存储于自身的缓存区(Cache)中,这种数据也称为记录,且该记录在缓存区中均被赋予有一存活时间(TimeToLive,TTL)。具体而言,在存活时间内,所述记录可被客户端调用以运行相关业务,而超过存活时间,缓存区中的记录会被老化清理。若在存活时间内服务器中的相关记录已经更新,则客户端调用的是更新之前的记录,这无疑会导致业务运行失败,可见,记录从更新到生效往往需要经过很长时间。当前为了确保记录及时生效,只能通过用户手动对需要更新记录的客户端的缓存区逐一清理,使得客户端可以再次向服务器发送查询消息以获取最新的记录,但操作繁琐且效率低下。
技术实现思路
鉴于此,本专利技术的多个方面提供一种DNS的服务器、客户端及数据同步方法,能够自动保持客户端与服务器之间的数据同步,确保解析记录及时生效。第一方面提供一种域名系统的数据同步方法,包括:利用服务器与客户端之间的交互消息中的字段标识服务器中的记录是否发生更新,其中交互消息包括客户端向服务器发送的消息以及服务器向客户端发送的信息;在服务器的记录发生更新时,客户端根据接收到的交互消息的字段更新本地缓存区的记录。结合第一方面,在第一种可能的实现方式中,利用服务器与客户端之间的交互消息中的字段标识服务器的记录是否发生更新的步骤包括:客户端向服务器发送第一查询消息;客户端接收服务器在判断服务器中的记录是否发生更新之后向客户端反馈的第一指示消息,第一指示消息包括标识服务器中记录是否发生更新的字段;在服务器的记录发生更新时,客户端根据接收到的交互消息的字段更新本地缓存区的记录的步骤包括:客户端清除当前缓存区的记录;客户端向服务器发送第二查询消息,以向服务器请求更新后的记录;客户端接收服务器反馈的第二指示消息,第二指示消息包括更新后的记录;客户端在接收到第二指示消息后存储更新后的记录。结合第一方面,在第二种可能的实现方式中,利用服务器与客户端之间的交互消息中的字段标识服务器的记录是否发生更新的步骤包括:客户端接收服务器发送的第一指示消息,所述第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段;客户端根据接收到的交互消息的字段更新本地缓存区的记录的步骤包括:客户端清除当前缓存区中与版本信息对应的记录,并向服务器发送查询消息,以向服务器请求更新后的记录;服务器向客户端反馈第三指示消息,第三指示消息包括更新后的记录;客户端将接收到的更新后的记录存储于缓存区中。结合第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,第一指示消息为具有头域部分Header和更新域部分Changes的DNS消息,头域部分包括Z字段和CHCOUNT字段,Z字段用于标识服务器中的记录是否发生更新,CHCOUNT字段用于标识更新域部分中发生更新的记录的个数,更新域部分用于标识发生更新的客户端的记录。结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,头域部分还包括Opcode字段,Opcode字段用于标识第一指示消息的类型,以表示第一指示消息为查询服务器中的记录是否发生更新的消息。第二方面提供一种DNS的服务器,包括接收模块和发送模块,接收模块和发送模块用于收发服务器与客户端之间的交互消息,交互消息包括接收模块接收的客户端向服务器发送的消息以及服务器的发送模块向客户端发送的信息,交互消息包括标识服务器中的记录是否发生更新的字段,使得客户端在服务器的记录发生更新时根据接收到的交互消息的字段更新本地缓存区的记录。结合第二方面,在第一种可能的实现方式中,接收模块用于接收客户端发送的第一查询消息,服务器还包括处理模块,处理模块用于判断服务器中的记录是否发生更新,并控制发送模块向客户端反馈第一指示消息,第一指示消息包括标识服务器中记录是否发生更新的字段,使得客户端在服务器中的记录发生更新时清除当前缓存区的记录;在处理模块判断记录发生更新时,接收模块进一步用于接收客户端发送的用以请求更新后的记录的第二查询消息,处理模块控制发送模块向客户端反馈包括更新后的记录的第二指示消息,使得存储更新后的记录。结合第二方面,在第二种可能的实现方式中,发送模块用于向客户端发送第一指示消息,第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,使得客户端清除当前缓存区中与版本信息对应的记录;接收模块进一步用于接收客户端发送的请求更新后的记录的查询消息,处理模块控制发送模块向客户端反馈包括更新后的记录的第三指示消息,使得客户端将更新后的记录存储于缓存区中。结合第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,第一指示消息为具有头域部分和更新域部分的DNS消息,头域部分包括Z字段和CHCOUNT字段,Z字段用于标识服务器中的记录是否发生更新,CHCOUNT字段用于标识更新域部分中发生更新的记录的个数,更新域部分用于标识发生更新的客户端的记录。结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,头域部分还包括Opcode字段,Opcode字段用于标识第一指示消息的类型,以表示第一指示消息为查询服务器中的记录是否发生更新的消息。第三方面提供一种DNS的客户端,包括接收模块、发送模块、处理模块及存储模块,接收模块和发送模块分别用于接收和发送服务器与客户端之间的交互消息,所述交互消息包括客户端的发送模块向服务器发送的消息以及接收模块接收的服务器向客户端发送的信息,交互消息包括标识服务器中的记录是否发生更新的字段,处理模块用于在服务器的记录发生更新时根据接收模块接收到的交互消息的字段更新存储模块的记录。结合第三方面,在第一种可能的实现方式中,发送模块用于向服务器发送第一查询消息,接收模块用于接收服务器反馈的第一指示消息,所述第一指示消息包括标识服务器中记录是否发生更新的字段;在处理模块根据第一指示消息判断服务器的记录发生更新时控制存储模块清除当前的记录,并控制发送模块进一步向服务器发送用于请求更新后的记录的第二查询消息,并由接收模块接收服务器反馈的第二指示消息,所述第二指示消息包括更新后的记录,处理模块用于控制存储模块存储更新后的记录。结合第三方面,在第二种可能的实现方式中,接收模块用于接收服务器发送的第一指示消息,第一指示消息包括标识服务器的记录已经发生更新的第一字段以及标识发生更新的记录的版本信息的第二字段,处理模块用于控制存储模块清除当前与版本信息对应的记录,并控制发送模块向服务器发送用以请求更新后的记录的查询消息,以及控制接收模块接收服务器反馈的第三指示消息,第三指示消息包括更新后的记录,处理模块进一步用于控本文档来自技高网...
DNS的服务器、客户端及数据同步方法

【技术保护点】
一种域名系统DNS的数据同步方法,其特征在于,所述方法包括:利用服务器与客户端之间的交互消息中的字段标识所述服务器中的记录是否发生更新,其中所述交互消息包括所述客户端向所述服务器发送的消息以及所述服务器向所述客户端发送的信息;在所述服务器的所述记录发生更新时,所述客户端根据接收到的所述交互消息的字段更新本地缓存区的记录。

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

【专利技术属性】
技术研发人员:韩军伟陈琳
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1