欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种优化域名访问的方法及装置独创技术34367字

一种优化域名访问的方法及装置

2021-04-07 08:56:54

一种优化域名访问的方法及装置

  技术领域

  本发明涉及网络通信技术领域,特别涉及一种优化域名访问的方法及装置。

  背景技术

  目前,DNS(Domain Name System的缩写)是互联网核心协议之一,简单而言就是把域名解析到对应的IP地址。如果没有DNS,那么我们所有的访问都需要知道目标服务器的IP地址,IPv4的地址有4字节,而IPv6的地址有16字节,这绝对是一个不可能完成的挑战。

  为了提升DNS查询的性能,一般通过缓存(Cache)DNS查询结果的方式,无论是浏览器、操作系统还是本地的DNS服务器都支持缓存。这种缓存方式不仅提高了查询性能,同时降低了上游DNS服务器的负载,如图3所示是一个典型的DNS查询过程。

  在企业办公中,由于服务器动态部署、动态负载均衡的原因,域名对应的IP地址会发生动态变化,因此,为了防止域名和IP地址的对应关系发生错误,DNS查询结果的有效时间一般不会很长,比如:600秒,超过这个时间,缓存就无效了。典型的chrome浏览器的缓存时间一般设置为60秒,操作系统也一般设置为60秒,也有DNS缓存的时间设置为15秒。这种TTL值设置得比较短的行为导致网络中的设备频繁的进行DNS更新,加重网络设备处理DNS服务的负担,而对于低性能的网络设备而言,这些问题更加突出,为此,本发明提出了一种域名访问优化的方法,以减轻低端网络设备的负担。

  发明内容

  本发明提供一种优化域名访问的方法及装置,用以解决上述的情况。

  一种优化域名访问的方法,其特征在于,包括:

  接收DNS请求消息,并转发至上级DNS服务器;

  接收所述上级DNS服务器的DNS响应报文,并根据所述DNS响应报文保存增强缓存条目,更新所述DNS响应报文的TTL参数;

  将更新TTL参数后的DNS响应报文转发至请求用户。

  作为本发明的一种实施例,所述增强后的缓存条目包括:DNS请求者的域名、DNS请求者IP地址,DNS响应报文中的TTL值。

  作为本发明的一种实施例,所述方法还包括:

  在收到DNS请求消息时,若本地缓存条目中已经有对应的DNS响应时,增加该DNS请求的缓存条目;其中,

  所述缓存条目包括解析并增强更新后所述DNS响应报文的TTL的值。

  作为本发明的一种实施例,所述方法包括:

  在没有接收到上级DNS服务器的DNS响应报文时,主动或周期发送DNS CacheUpdate消息给DNS请求者;

  在收到上级DNS服务器的DNS响应报文时,若所述DNS响应报文中的域名和IP地址的对应关系与本地DNS缓存不一致,发送DNS Cache Update消息给DNS请求者;其中,

  所述DNS Cache Update消息的内容与DNS响应报文的格式一致。

  作为本发明的一种实施例,所述接收DNS请求消息,并转发至上级DNS服务器还包括:

  判断本地是否存在域名的缓存条目,在本地是不存在域名的缓存条目时,转发至上级DNS服务器;其中,

  所述缓存条目通过以下步骤获取:

  步骤1:根据所述缓存条目和DNS请求消息,构建所述本地缓存条目和DNS请求消息的关联函数G:

  

  其中,所述q表示所述缓存条目的内容集;所述N表示请求特征数量;所述L表示缓存条目中内容的类型数;所述A(b)表示距离函数,所述b表示所述DNS请求消息的请求特征;所述β表示域名参数;

  步骤2:根据所述DNS请求消息,构建所述域名的存在性预测模型H:

  

  其中,所述bi表示第i个所述DNS请求消息的请求特征;所述Bj表示第j个域名特征;

  步骤3:根据所述关联函数和存在性预测模型,通过回归法进行计算,判断本地是否存在域名的缓存条目:

  

  其中,所述G(qi)表示第l个所述缓存条目内容和DNS请求消息的关联值;所述表示域名存在性结果的均值;

  当F≥1时,表示本地存在域名的缓存条目;

  当F<1时,表示本地不存在域名的缓存条目。

  一种优化域名访问的装置,其特征在于,包括:

  响应模块:用于接收DNS请求消息,并转发至上级DNS服务器应;

  接收模块:用于接收上级DNS服务器的DNS响应报文,并根据所述DNS响应报文保存增强缓存条目,更新所述的DNS响应报文的TTL参数;

  转发模块:用于将更新TTL参数后的DNS响应报文转发至请求用户。

  作为本发明的一种实施例,所述接收模块还包括:

  增强单元:用于增强缓存条目;其中,

  所述增强后的缓存条目包括:DNS请求者的域名、DNS请求者IP地址,DNS响应报文中的TTL值。

  作为本发明的一种实施例,所述接收模块还包括:

  解析单元:用于在收到DNS请求消息时,若本地缓存条目中已经有对应的DNS响应时,增加该DNS请求的缓存条目;其中,

  所述缓存条目包括解析并增强更新后所述DNS响应报文的TTL的值。

  作为本发明的一种实施例,所述转发模块包括:

  第一发送子单元:用于在没有接收到上级DNS服务器的DNS响应报文时,主动或者周期发送DNS Cache Update消息给DNS请求者;

  第二发送单元:用于在收到上级DNS服务器的DNS响应报文时,若所述DNS响应报文中的域名和IP地址的对应关系与本地DNS缓存不一致,发送DNS Cache Update消息给DNS请求者;其中,

  所述DNS Cache Update消息的内容与DNS响应报文的格式一致。

  作为本发明的一种实施例,所述响应模块还用于判断本地是否存在域名的缓存条目,在本地是不存在域名的缓存条目时,转发至上级DNS服务器;其中,

  所述缓存条目通过以下步骤获取:

  步骤1:根据所述缓存条目和DNS请求消息,构建所述本地缓存条目和DNS请求消息的关联函数G:

  

  其中,所述q表示所述缓存条目的内容集;所述N表示请求特征数量;所述L表示缓存条目中内容的类型数;所述A(b)表示距离函数,所述b表示所述DNS请求消息的请求特征;所述β表示域名参数;

  步骤2:根据所述DNS请求消息,构建所述域名的存在性预测模型H:

  

  其中,所述bi表示第i个所述DNS请求消息的请求特征;所述Bj表示第j个域名特征;

  步骤3:根据所述关联函数和存在性预测模型,通过回归法进行计算,判断本地是否存在域名的缓存条目:

  

  其中,所述G(qi)表示第l个所述缓存条目内容和DNS请求消息的关联值;所述表示域名存在性结果的均值;

  当F≥1时,表示本地存在域名的缓存条目;

  当F<1时,表示本地不存在域名的缓存条目。

  本发明的有益效果在于:本发明通过上级DNS服务器的响应消息,补充了域名地址。通过CPE的增强DNS服务,有效地降低了整系统的DNS请求和响应消息数量。当代理服务器的数量有数以千计时,可以成百倍地降低整系统的DNS消息的处理负荷,尤其是对于低处理能力的代理服务器作用重大,所有访问过的条目不再发送请求消息,直接能从本地找到域名,无需解决缓存失效的问题。同时提升了整个系统的DNS响应时间,可以从几十甚至上百ms(毫秒)缩短到几个ms(毫秒)以内。

  本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。

  下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

  附图说明

  附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。

  在附图中:

  图1为本发明实施例中优化域名访问的方法的方法流程图;

  图2为本发明实施例中优化域名访问的装置的装置组成图;

  图3为本发明实施例中现有技术DNS缓存处理示意图;

  图4为本发明实施例中增强DNS缓存示意图;

  图5为本发明实施例中增强DNS的过程示意图;

  图6为本发明实施例中DNS请求处理过程示意图;

  图7为本发明实施例中DNS响应处理过程示意图;

  图8为本发明实施例中超时处理示意图;

  图9为本发明实施例中无缓存DNS请求处理过程示意图;

  图10为本发明实施例中有缓存DNS请求处理流程图;

  图11为本发明实施例中DNS缓存更新流程图。

  具体实施方式

  以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

  本发明中的服务器中:增强DNS服务器是CPE代理服务器的一种功能,附图4和附图5为本发明中增强DNS服务器的结构。增强DNS服务器是本地预设的增强服务。CPE1代表第二CPE代理服务器,CPE2代表第一CPE代理服务器,DNS Cache Update是DNS缓存更新的缓存条目;

  如附图1所示,本发明的一种优化域名访问的方法的方法流程图,包括:

  步骤100:接收DNS请求消息,并转发至上级DNS服务器;DNS请求的是用户的请求,DNS上级服务器是本地的上级服务器,DNS在在接收到请求消息时,会根据请求的消息自动生成响应信息。在一个实施例中本发明的用户主机需要访问某域名网站(比如:www.baidu.com),由于本地没有对应域名的IP地址,用户主机会向CPE代理服务器发送DNS请求;而CPE代理服务器也没有用户需要的缓存条目,即,没有对应域名的IP地址;CPE代理服务器将DNS请求消息通过增强DNS服务器处理;在判断本地没有或有用户需要的缓存条目,进而确定获取域名的途径。如附图6所示,增强DNS缓存模块,即增强DNS服务器收到了DNS请求,如果DNS请求对应的条目存在,则更新增强缓存记录,把DNS请求者的IP增加到记录中,并使用缓存数据,返回DNS响应消息;如果缓存不存在,则向上级DNS服务器转发DNS请求消息。

  步骤101:接收上级DNS服务器的DNS响应报文,并根据所述DNS响应报文保存增强缓存条目,更新所述DNS响应报文的TTL参数;如附图10所示,本发明更新的缓存条目是增强DNS服务器的缓存条目信息,即本地的缓存条目,在更新之后,在请求者列表中增加增强DNS服务器中的IP地址。使用发送缓存的DNS响应消息向增强DNS服务器发送DNS响应消息;CPE代理服务器收到增强DNS服务器的DNS响应消息,缴存该消息,并转发给请求用户。

  如附图9所示,根据所述DNS响应报文保存增强缓存条目,并更新所述的DNS响应报文的TTL参数;本发明中增强DNS服务器在接收到DNS响应时,还会解析TTL的值,比如:300S,更新TTL值为28800S(8小时),缓存更新后的响应消息。

  步骤102:将更新TTL参数后的DNS响应报文转发至请求用户。记录增强DNS缓存条目信息,这些信息包含:DNS请求域名、请求者第二CPE代理服务器的IP地址、TTL原始值信息,并把缓存的DNS响应消息发送给第一CPE代理服务器;代理服务器收到DNS响应时,缴存该消息,并转发给请求用户。

  本发明的有益效果在于:本发明通过上级DNS服务器的响应消息,补充了域名地址。通过CPE的增强DNS服务,有效地降低了整系统的DNS请求和响应消息数量。当代理服务器的数量有数以千计时,可以成百倍地降低整系统的DNS消息的处理负荷,尤其是对于低处理能力的代理服务器作用重大,所有访问过的条目不再发送请求消息,直接能从本地找到域名,无需解决缓存失效的问题。同时提升了整个系统的DNS响应时间,可以从几十甚至上百ms(毫秒)缩短到几个ms(毫秒)以内。

  实施例2:

  作为本发明的一种实施例,所述增强后的缓存条目包括:DNS请求的域名、DNS请求者IP地址,DNS响应报文中的TTL值;本发明是优化域名的方法,增强后的缓存条目中DNS请求的域名,即目标域名是本发明的目的域名,本发明中DNS请求者IP地址与DNS请求的域名相对应,TTL值决定了更新缓存的时间。

  在本发明中:增强DNS服务器是用户在CPE代理服务器中预设的一种功能;

  所述CPE代理服务器用于将所述DNS请求消息通过增强DNS服务器缓存更新,还用于将所述DNS响应转发至请求用户;代理服务器是客户的本地服务器,本地是否存在域名也需要CPE代理服务器确定,CPE代理服务器的载体为电脑手机等等。

  CPE代理服务器包括第一CPE代理服务器和第二CPE代理服务器;其中,

  所述第一CPE代理服务器用于在首次接收DNS请求时,连通增强上级DNS服务器;在一个实施例中:用户主机需要访问某域名网站(比如:www.baidu.com),由于本地没有对应域名的IP地址,主机会向CPE1发送DNS请求;

  CPE1收到DNS请求消息,本地没有用户需要的缓存条目,转发该请求给上级增强DNS服务器;

  增强DNS服务器收到CPE1的DNS请求消息,如果本地没有缓存条目,则转发该请求给本服务器的上级DNS服务器;

  增强DNS服务器收到上级服务器的DNS响应消息,解析TTL的值,比如:300S,更新TTL值为28800S(8小时),缓存更新后的响应消息。记录增强DNS缓存条目信息,这些信息包含:DNS请求域名、请求者CPE1的IP地址、TTL原始值信息,并把缓存的DNS响应消息发送给CPE1;

  CPE1收到DNS响应消息,缴存该消息,并转发给请求用户。

  所述第二CPE代理服务器用于再次接收DNS请求时,在本地获取目标域名。在一个实施例中:用户主机需要访问某域名网站(比如:www.baidu.com),由于本地没有对应域名的IP地址,主机会向CPE2发送DNS请求;

  CPE2收到DNS请求消息,本地没有用户需要的缓存条目,转发该请求给上级增强DNS服务器;

  增强DNS服务器收到CPE2的DNS请求消息,本地存在该域名的缓存条目,则更新增强DNS缓存条目信息,在请求者列表中增加的IP地址。使用发送缓存的DNS响应消息向CPE2发送DNS响应消息;

  CPE收到DNS响应消息,缴存该消息,并转发给请求用户。

  第一CPE代理服务器和第二CPE代理服务器分别对接增强DNS服务器不存在域名的缓存条目,以及上级DNS服务器更新缓存条目后,存在域名的缓存条目两种情况。

  上述技术方案的有益效果在于:将域名获取的情况进行划分,当代理服务器的数量有数以千计时,可以成百倍地降低整系统的DNS消息的处理负荷,尤其是对于低处理能力的代理服务器作用重大,所有访问过的条目不再发送请求消息,无需解决缓存失效的问题。

  实施例3:

  作为本发明的一种实施例,在收到DNS请求消息时,若本地缓存条目中已经有对应的DNS响应时,增加该DNS请求的增强缓存条目;其中,

  所述增强缓存条目包括解析并增强更新所述DNS响应的TTL的值。

  本发明阐述了在本地无DNS缓存信息,无域名地址,则记录响应消息中的原始TTL值,并更新DNS响应消息的TTL字段,缓存更新后的DNS响应消息。并记录增强缓存条目,增强缓存条目包含的信息有:域名信息,请求者IP和原始的TTL值。

  如附图7所示,本发明在本地已经存在缓存信息的情况下,还包括在缓存信息与DNS响应消息除TTL值外全部一致,无需处理;信息与DNS响应消息除TTL值外存在差异,则更新DNS响应缓存信息,调用缓存更新模块,DNS响应消息和DNS响应都属于DNS响应报文。在一个实施例中:本发明用于在DNS响应消息变化触发DNS缓存更新

  本实施例结合图11详细说明TTL失效更新流程:

  增强DNS服务器在增强DNS缓存条目的TTL超时前,比如在1/2的TTL时间时,向上级DNS服务器发送该缓存条目的DNS请求;

  增强DNS服务器收到上级DNS的响应消息,将该DNS响应消息与缓存的DNS消息进行对比,判断除TTL之外的字段:

  如果没有变化,则不作任何处理,用例结束。

  如果内容发生变化,则使用DNS响应消息中的内容更新缓存条目(TTL除外)。

  增强DNS服务器向获取增强DNS缓存条目中该域名对应的CPE IP列表,并向每个CPE发送DNS Cache Update消息。

  CPE收到DNS Cache Update消息,更新缓存。

  实施例4:

  作为本发明的一种实施例,如附图11所示,本发明还包括:

  在没有接收到上级DNS服务器的DNS响应报文时,主动或周期发送DNS CacheUpdate消息给DNS请求者;

  在收到上级DNS服务器的DNS响应报文时,若所述DNS响应报文中的域名和IP地址的对应关系与本地DNS缓存不一致,发送DNS Cache Update消息给DNS请求者;其中,

  所述DNS Cache Update消息的内容与DNS响应报文的格式一致。本发明根据更新后增强DNS服务的缓存条目,获取更新后的增强DNS服务器的缓存条目中域名对应的CPE IP列表,并向所述CPE代理服务器发送DNS Cache Update消息。DNS Cache Update消息内容与DNS响应报文的格式一致。本发明在在没有接收到上级DNS服务器的响应消息时,主动或者周期性发送DNS Cache Update消息给DNS请求者。

  如附图8所示,原始TTL超时前,即,在所述增强DNS服务器在缓存更新所述TTL的时间内,向上级DNS服务器发送DNS请求消息。缓存更新模块获取域名对应的增强缓存条目,并对每个请求者发送DNS Cache Update消息,该DNS Cache Update消息的内容与缓存的DNS响应消息内容完全一致。

  在所述CPE代理服务器收到DNS Cache Update消息,更新缓存;

  由于DNS Cache Update消息可能由于各种原因丢失,而导致CPE未收到该更新消息而发生错误。因此,存在周期性同步或由于管理需要而强制进行DNS缓存更新的流程,更新流程如下:

  增强DNS服务器获取增强DNS缓存条目中某域名所对应的CPE IP列表和DNS响应缓存信息,并向每个CPE发送DNS Cache Update消息。

  CPE代理服务器收到DNS Cache Update消息,更新缓存。

  在一个实施例中:本发明包含一种DNS响应消息强制更新流程;

  由于DNS Cache Update消息可能由于各种原因丢失,而导致CPE未收到该更新消息而发生错误。因此,存在周期性同步或由于管理需要而强制进行DNS缓存更新的流程,更新流程如下:

  增强DNS服务器获取增强DNS缓存条目中某域名所对应的CPE IP列表和DNS响应缓存信息,并向每个CPE发送DNS Cache Update消息;

  CPE收到DNS Cache Update消息,更新缓存。

  实施例5:

  作为本发明的一种实施例,所述接收DNS请求消息,并转发至上级DNS服务器还包括:

  判断本地是否存在域名的缓存条目,在本地是不存在域名的缓存条目时,转发至上级DNS服务器;其中,

  所述缓存条目通过以下步骤获取:

  步骤1:根据所述缓存条目和DNS请求消息,构建所述本地缓存条目和DNS请求消息的关联函数G:

  

  其中,所述q表示所述缓存条目的内容集;所述N表示请求特征数量;所述L表示缓存条目中内容的类型数;所述A(b)表示距离函数,所述b表示所述DNS请求消息的请求特征;所述β表示域名参数;

  步骤2:根据所述DNS请求消息,构建所述域名的存在性预测模型H:

  

  其中,所述bi表示第i个所述DNS请求消息的请求特征;所述Bj表示第j个域名特征;

  步骤3:根据所述关联函数和存在性预测模型,通过回归法进行计算,判断本地是否存在域名的缓存条目:

  

  其中,所述G(qi)表示第l个所述缓存条目内容和DNS请求消息的关联值;所述表示域名存在性结果的均值;

  当F≥1时,表示本地存在域名的缓存条目;

  当F<1时,表示本地不存在域名的缓存条目。

  上述技术方案的原理和有益效果在于在于:本发明在判断本地,增强DNS服务器中是不是存在域名的缓存条目,即,是不是存在域名时,首先通过构建关联函数将DNS请求信息和缓存条目结合起来,然后单独根据DNS请求信息预测增强DNS服务器之内是不是存在域名,因此,本发明通过DNS请求信息基于域名特征,即现有技术中的域名特征来构建预测模型,在增强DNS服务器中预测是不是存在域名,最后通过线性回归算法,结合关联函数和存在性预测模型实现对增强DNS服务器是不是存在域名的缓存条目进行判断。

  实施例6:

  如附图2所示,一种优化域名访问的装置,包括:

  响应模块:用于接收DNS请求消息,并转发至上级DNS服务器应;

  DNS请求的是用户的请求,上级服务器是本地的上级服务器,在一个实施例中本发明的用户主机需要访问某域名网站(比如:www.baidu.com),由于本地没有对应域名的IP地址,用户主机会向CPE代理服务器发送DNS请求;而CPE代理服务器也没有用户需要的缓存条目,即,没有对应域名的IP地址;CPE代理服务器将DNS请求消息通过增强DNS服务器处理;在判断本地没有或有用户需要的缓存条目,进而确定获取域名的途径。如附图6所示,增强DNS缓存模块,即增强DNS服务器收到了DNS请求,如果DNS请求对应的条目存在,则更新增强缓存记录,把DNS请求者的IP增加到记录中,并使用缓存数据,返回DNS响应消息;如果缓存不存在,则向上级DNS服务器转发DNS请求消息。

  接收模块:用于根接收上级DNS服务器的DNS响应报文,并根据所述DNS响应报文保存增强缓存条目,更新所述DNS响应报文的TTL参数;如附图10所示,本发明更新的缓存条目是增强DNS服务器的缓存条目信息,即本地的缓存条目,在更新之后,在请求者列表中增加增强DNS服务器中的IP地址。使用发送缓存的DNS响应消息向增强DNS服务器发送DNS响应消息;CPE代理服务器收到增强DNS服务器的DNS响应消息,缴存该消息,并转发给请求用户。

  如附图9所示,根据所述DNS响应报文保存增强缓存条目,并更新所述的DNS响应报文的TTL参数;本发明中增强DNS服务器在接收到DNS响应时,还会解析TTL的值,比如:300S,更新TTL值为28800S(8小时),缓存更新后的响应消息。

  转发模块:用于更新TTL参数后的DNS响应报文转发至请求用户。记录增强DNS缓存条目信息,这些信息包含:DNS请求域名、请求者第二CPE代理服务器的IP地址、TTL原始值信息,并把缓存的DNS响应消息发送给第一CPE代理服务器;代理服务器收到DNS响应时,缴存该消息,并转发给请求用户。

  记录增强DNS缓存条目信息,这些信息包含:DNS请求域名、请求者第二CPE代理服务器的IP地址、TTL原始值信息,并把缓存的DNS响应消息发送给第一CPE代理服务器;代理服务器收到DNS响应时,缴存该消息,并转发给请求用户。

  本发明的有益效果在于:本发明通过上级DNS服务器的响应消息,补充了域名地址。通过CPE的增强DNS服务,有效地降低了整系统的DNS请求和响应消息数量。当代理服务器的数量有数以千计时,可以成百倍地降低整系统的DNS消息的处理负荷,尤其是对于低处理能力的代理服务器作用重大,所有访问过的条目不再发送请求消息,直接能从本地找到域名,无需解决缓存失效的问题。同时提升了整个系统的DNS响应时间,可以从几十甚至上百ms(毫秒)缩短到几个ms(毫秒)以内。

  实施例7:

  作为本发明的一种实施例,所述接收模块还包括:

  增强单元:用于增强缓存条目;其中,

  所述增强后的缓存条目包括:DNS请求者的域名、DNS请求者IP地址,DNS响应报文中的TTL值。本发明是优化域名的方法,增强后的缓存条目中DNS请求的域名,即目标域名是本发明的目的域名,本发明中DNS请求者IP地址与DNS请求的域名相对应,TTL值决定了更新缓存的时间。

  在本发明中:增强DNS服务器是用户在CPE代理服务器中的有一种功能;其中,

  所述CPE代理服务器用于将所述DNS请求消息通过增强DNS服务器缓存更新,还用于将所述DNS响应转发至请求用户;代理服务器是客户的本地服务器,本地是否存在域名也需要CPE代理服务器决定。

  CPE代理服务器包括第一CPE代理服务器和第二CPE代理服务器;其中,

  所述第一CPE代理服务器用于在首次接收DNS请求时,连通增强上级DNS服务器;

  所述第二CPE代理服务器用于再次接收DNS请求时,在本地获取目标域名。

  第一CPE代理服务器和第二CPE代理服务器分别对接增强DNS服务器不存在域名的缓存条目,以及上级DNS服务器更新缓存条目后,存在域名的缓存条目两种情况。

  上述技术方案的有益效果在于:将域名获取的情况进行划分,当代理服务器的数量有数以千计时,可以成百倍地降低整系统的DNS消息的处理负荷,尤其是对于低处理能力的代理服务器作用重大,所有访问过的条目不再发送请求消息,无需解决缓存失效的问题。

  实施例8:

  作为本发明的一种实施例,所述接收模块还包括:

  解析单元:用于在收到DNS请求消息时,若本地缓存条目中已经对应的DNS响应时,增加该DNS请求的增强缓存条目;其中,

  所述增强缓存条目包括解析并增强更新所述DNS响应的TTL的值。

  本发明阐述了在本地无DNS缓存信息,则记录响应消息中的原始TTL值,并更新DNS响应消息的TTL字段,缓存更新后的DNS响应消息。并记录增强缓存条目,增强缓存条目包含的信息有:域名信息,请求者IP和原始的TTL值。

  如附图7所示,本发明在本地已经存在缓存信息的情况下,还包括在缓存信息与DNS响应消息除TTL值外全部一致,无需处理;信息与DNS响应消息除TTL值外存在差异,则更新DNS响应缓存信息,调用缓存更新模块。

  实施例9:

  作为本发明的一种实施例,所述转发模块包括:

  第一发送子单元:用于在没有接收到上级DNS服务器的响应消息时,主动或者周期发送DNS Cache Update消息给DNS请求者;

  第二发送单元:用于在收到上级DNS服务器的响应消息时,DNS消息中的域名和IP地址的对应关系与本地DNS缓存不一致,发送DNS Cache Update消息给DNS请求者;其中,

  所述DNS Cache Update消息内容与DNS响应报文的格式一致。

  通过DNS响应更新所述增强DNS服务器的缓存条目;根据更新后的所述增强DNS服务器的缓存条目,获取更新后的增强DNS服务器的缓存条目中域名对应的CPE IP列表,并向所述CPE代理服务器发送DNS Cache Update消息。DNS Cache Update消息内容与DNS响应报文的格式一致。本发明在在没有接收到上级DNS服务器的响应消息时,主动或者周期性发送DNS Cache Update消息给DNS请求者。

  如附图8所示,原始TTL超时前,即,在所述增强DNS服务器在缓存更新所述TTL的时间内,向上级DNS服务器发送DNS请求消息。缓存更新模块获取域名对应的增强缓存条目,并对每个请求者发送DNS Cache Update消息,该DNS Cache Update消息的内容与缓存的DNS响应消息内容完全一致。

  根据更新后的所述增强DNS服务器的缓存条目,获取更新后的增强DNS服务器的缓存条目中域名对应的CPE IP列表,并向所述CPE代理服务器发送DNS Cache Update消息。

  在所述CPE代理服务器收到DNS Cache Update消息,更新缓存;

  由于DNS Cache Update消息可能由于各种原因丢失,而导致CPE未收到该更新消息而发生错误。因此,存在周期性同步或由于管理需要而强制进行DNS缓存更新的流程,更新流程如下:

  增强DNS服务器获取增强DNS缓存条目中某域名所对应的CPE IP列表和DNS响应缓存信息,并向每个CPE发送DNS Cache Update消息。

  实施例10:

  作为本发明的一种实施例,所述响应模块还用于判断本地是否存在域名的缓存条目,在本地是不存在域名的缓存条目时,转发至上级DNS服务器;其中,

  所述缓存条目通过以下步骤获取:

  步骤1:根据所述缓存条目和DNS请求消息,构建所述本地缓存条目和DNS请求消息的关联函数G:

  

  其中,所述q表示所述缓存条目的内容集;所述N表示请求特征数量;所述L表示缓存条目中内容的类型数;所述A(b)表示距离函数,所述b表示所述DNS请求消息的请求特征;所述β表示域名参数;

  步骤2:根据所述DNS请求消息,构建所述域名的存在性预测模型H:

  

  其中,所述bi表示第i个所述DNS请求消息的请求特征;所述Bj表示第j个域名特征;

  步骤3:根据所述关联函数和存在性预测模型,通过回归法进行计算,判断本地是否存在域名的缓存条目:

  

  其中,所述G(qi)表示第l个所述缓存条目内容和DNS请求消息的关联值;所述表示域名存在性结果的均值;

  当F≥1时,表示本地存在域名的缓存条目;

  当F<1时,表示本地不存在域名的缓存条目。

  上述技术方案的原理和有益效果在于在于:本发明在判断增强DNS服务器中是不是存在域名的缓存条目,即,是不是存在域名时,首先通过构建关联函数将DNS请求信息和缓存条目结合起来,然后单独根据DNS请求信息预测增强DNS服务器之内是不是存在域名,因此,本发明通过DNS请求信息基于域名特征,即现有技术中的域名特征来构建预测模型,在增强DNS服务器中预测是不是存在域名,最后通过线性回归算法,结合关联函数和存在性预测模型实现对增强DNS服务器是不是存在域名的缓存条目进行判断。

  在一个实施例中:如图5所示。

  本发明的的增强DNS缓存模块,即增强DNS服务,包括:缓存DNS响应消息,记录增强缓存条目。

  本发明的增强缓存模块的DNS请求消息处理过程如图4所示。增强DNS缓存模块收到了DNS请求,如果DNS请求对应的条目存在,则更新增强缓存记录,把DNS请求者的IP增加到记录中,并使用缓存数据,返回DNS响应消息;如果缓存不存在,则向上级DNS服务器转发DNS请求消息。

  本发明的增强缓存模块收到DNS响应消息的处理流程如图5所示:

  如果本地无DNS缓存信息,则记录响应消息中的原始TTL值,并更新DNS响应消息的TTL字段,缓存更新后的DNS响应消息。并记录增强缓存条目,增强缓存条目包含的信息有:域名信息,请求者IP和原始的TTL值。

  如果本地已经存在缓存信息,且缓存信息与DNS响应消息除TTL值外全部一致,无需处理。

  如果本地已经存在缓存信息,且信息与DNS响应消息除TTL值外存在差异,则更新DNS响应缓存信息,调用缓存更新模块。

  所述的缓存更新模块包括:原始TTL超时前,向上级DNS服务器发送DNS请求消息。缓存更新模块获取域名对应的增强缓存条目,并对每个请求者发送DNS Cache Update消息,该DNS Cache Update消息的内容与缓存的DNS响应消息内容完全一致,如图6所示为缓存更新模块处理过程。

  本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

  显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

《一种优化域名访问的方法及装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)