一种缓存控制方法、装置和系统与流程

文档序号:12494406阅读:207来源:国知局
一种缓存控制方法、装置和系统与流程

本发明实施例涉及通信领域,尤其涉及一种缓存控制方法、装置和系统。



背景技术:

DNS(Domain Name System,域名系统)是一种组织成域层次结构的计算机和网络服务命名的系统,用于将主机名和域名转换为IP地址。DNS缓存(Cache)用于缓存DNS查询结果(即使用DNS服务器解析时查找到的域名和IP地址的对应关系)以快速解析域名。

目前的4G(the 4Generation mobile communication technology,第4代通信技术)移动核心网中,DNS查询主要应用于MME(Mobility Management Entity,移动管理实体)设备的各种业务场景中的网元查询,MME会将DNS查询结果存储在MME的DNS缓存中,后续,在MME收到终端发送的携带有域名的业务请求消息之后,首先在MME自身的DNS Cache中查询是否存在该域名对应的DNS查询结果,若MME确定自身的DNS Cache中没有该域名对应的DNS查询结果,则MME再在HOST中查询是否存在该域名对应的DNS查询结果,若没有,MME则向DNS服务器发起用于查询该域名对应的IP地址的请求消息。同时,MME会对其DNS缓存中存储的域名和IP地址的对应关系记录配置缓存时长(又称:生存时间(TTL,Time To Live))、一般MME会将MME本地配置的生存时间和DNS服务器查询响应中的TTL值中最小的TTL值作为DNS缓存的缓存时长,当某一项DNS查询结果的缓存时长大于DNS缓存的缓存时长时,MME将该记录删掉。

但是,上述方案中,当TTL值固定不变时,在缓存时长内若某项DNS查询结果的缓存时长未超过DNS的缓存时长,则MME不会删除该DNS查询结果,在DNS Cache缓存空间有限时,若短时间内DNS Cache中产生大量的DNS查询结果,则会造成DNS Cache溢出。



技术实现要素:

本发明的实施例提供一种缓存控制方法、装置和系统,用以解决现有技术中由于TTL值固定不变导致的DNS Cache缓存溢出的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,本发明实施例提供一种缓存控制方法,包括:获取缓存控制装置用于计算所述缓存控制装置的负荷的状态信息;根据缓存控制装置的状态信息,计算缓存控制装置的负荷;根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置当前TTL(Time To Live,生存时间)值。

本发明实施例提供一种缓存控制方法,通过获取缓存控制装置的状态信息,根据缓存控制装置的状态信息,计算缓存控制装置的负荷,以及根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置生存时间TTL值,使得缓存控制装置生存时间TTL值可以根据缓存控制装置的负荷进行变化,这样可以使得缓存控制装置的TTL值是一个随缓存控制装置的负荷动态变化的量,而不是一个固定的TTL值,因此,当MME的DNS缓存中的某一项DNS查询结果的生存时间大于或等于时缓存控制装置的TTL值时,MME可以及时从DNS Cache中将该过期的DNS查询结果删掉,不致于过多的DNS查询结果占用DNS Cache空间,这样在DNS Cache缓存空间有限的情况下,可以避免DNS Cache缓存溢出的问题。

结合第一方面,在第一方面的第一种可能的实现方式中,根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置当前生存时间TTL值,包括:在缓存控制装置的负荷小于或等于预设负荷阈值时,将缓存控制装置的当前TTL值减小;在缓存控制装置的负荷大于预设负荷阈值时,将缓存控制装置的当前TTL值增大。

结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置当前生存时间TTL值,包括:根据缓存控制装置的负荷与预设负荷阈值的关系,将缓存控制装置的当前TTL值更新至第一预设阈值,该第一预设阈值大于或等于预设TTL最小值且该第一预设阈值小于或等于预设TTL最大值。

结合第一方面至第一方面的第二种可能的实现方式中任意一种可能的实现方式,在第一方面的第三种可能的实现方式中,当缓存控制装置的负荷大于预设负荷阈值时,缓存控制装置的当前TTL值小于或等于第一预设阈值,第一预设阈值小于或等于预设TTL最大值;当缓存控制装置的负荷小于或等于预设负荷阈值时,缓存控制装置的当前TTL值大于或等于第一预设阈值,第一预设阈值大于或等于预设TTL最小值的值。

结合第一方面至第一方面的第三种可能的实现方式中任意一种可能的实现方式,在第一方面的第四种可能的实现方式中,根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置当前生存时间TTL值:当缓存控制装置的负荷大于预设负荷阈值时,采用公式TTL2=MIN(TTLmax,(TTL1+TTLmax)/2)计算缓存控制装置更新后的TTL值;其中,TTL2表示第一预设阈值,TTLmax表示预设TTL最大值,TTL1表示缓存控制装置的当前TTL值;当缓存控制装置的负荷小于或等于预设负荷阈值时,采用公式TTL2=MAX(TTLmin,(TTL1-K))计算缓存控制装置更新后的TTL值;其中,TTL2表示第一预设阈值,TTLmin表示预设TTL最小值;K表示预设值,TTL1表示缓存控制装置的当前TTL值;将缓存控制装置的当前TTL值更新为缓存控制装置更新后的TTL值。

结合第一方面至第一方面的第四种可能的实现方式中任意一种可能的实现方式,在第一方面的第五种可能的实现方式中,缓存控制装置的状态信息包括至少一个子状态,该至少一个子状态中每个子状态对应一个权重;根据缓存控制装置的状态信息,计算缓存控制装置的负荷,包括:根据缓存控制装置的状态信息,采用公式计算缓存控制装置的负荷,其中,P表示缓存控制装置的负荷,Ci表示缓存控制装置的状态信息包括的第i个子状态的参数,λi表示第i个子状态的权重,i表示子状态的编号。

结合第一方面至第一方面的第五种可能的实现方式中任意一种可能的实现方式,在第一方面的第六种可能的实现方式中,上述缓存控制装置的状态信息至少包括以下任意一项:CPU使用率、内存占用率、配套存储设备输入/输出数量、缓存控制装置网络输入/输出数量和单位时间内接收的查询信息的数量。

第二方面,本发明实施例提供一种缓存控制装置,该装置包括:获取单元,用于获取缓存控制装置用于计算缓存控制装置负荷的状态信息;负载计算器,用于根据缓存控制装置的状态信息,计算缓存控制装置的负荷;TTL控制器,用于根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置当前生存时间TTL值。

结合第二方面,在第二方面的第一种可能的实现方式,本发明实施例提供的TTL控制器具体用于:在缓存控制装置的负荷小于或等于预设负荷阈值时,将缓存控制装置的当前TTL值减小;在缓存控制装置的负荷大于预设负荷阈值时,将缓存控制装置的当前TTL值增大。

结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,本发明实施例提供的TTL控制器具体用于:根据缓存控制装置的负荷与预设负荷阈值的关系,将缓存控制装置的当前TTL值更新至第一预设阈值,第一预设阈值大于或等于预设TTL最小值且第一预设阈值小于或等于预设TTL最大值。

结合第二方面至第二方面的第二种可能的实现方式中任意一种可能的实现方式,在第二方面的第三种可能的实现方式,当缓存控制装置的负荷大于预设负荷阈值时,该第一预设阈值大于或等于缓存控制装置的当前TTL值,且该第一预设阈值小于或等于所述预设TTL最大值;当缓存控制装置的负荷小于或等于预设负荷阈值时,该第一预设阈值为小于或等于缓存控制装置的当前TTL值,且第一预设阈值大于或等于预设TTL最小值的值。

结合第二方面至第二方面的第三种可能的实现方式中任意一种可能的实现方式,在第二方面的第四种可能的实现方式中,TTL控制器具体用于:当缓存控制装置的负荷大于预设负荷阈值时,采用公式TTL2=MIN(TTLmax,(TTL1+TTLmax)/2)计算缓存控制装置更新后的TTL值;其中,TTL2表示第一预设阈值,TTLmax表示预设TTL最大值,TTL1表示缓存控制装置的当前TTL值;当缓存控制装置的负荷小于或等于预设负荷阈值时,采用公式TTL2=MAX(TTLmin,(TTL1-K))计算所述缓存控制装置更新后的TTL值;其中,TTL2表示第一预设阈值,TTLmin表示预设TTL最小值;K表示预设值,TTL1表示缓存控制装置的当前TTL值;将缓存控制装置的当前TTL值更新为缓存控制装置更新后的TTL值。

结合第二方面至第二方面的第四种可能的实现方式中任意一种可能的实现方式,在第二方面的第五种可能的实现方式中,缓存控制装置的状态信息包括至少一个子状态,至少一个子状态中每个子状态对应一个权重;负载计算器,具体用于:根据公式计算缓存控制装置的负荷,其中,P表示缓存控制装置的负荷,Ci表示缓存控制装置的状态信息包括的第i个子状态的参数,λi表示第i个子状态的权重,i表示子状态的编号。

结合第二方面至第二方面的第五种可能的实现方式中任意一种可能的实现方式,在第一方面的第六种可能的实现方式中,上述缓存控制装置的状态信息至少包括以下任意一项:CPU使用率、内存占用率、配套存储设备输入/输出数量、缓存控制装置网络输入/输出数量和单位时间内接收的查询信息的数量。

第三方面,本发明实施例提供一种DNS(域名系统,Domain Name System)查询系统,该DNS查询系统包括:第二方面至第二方面的第四种可能的实现方式中任意一种可能的实现方式所描述的缓存控制装置、至少一个服务网关、DNS查询服务器、DNS服务器以及移动管理实体MME;其中,缓存控制装置与至少一个服务网关相连,DNS服务器与DNS查询服务器和MME相连;其中,缓存控制装置,用于更新缓存控制装置的生存时间TTL值,以及向DNS服务器发送至少包括缓存控制装置更新后的TTL值的DNS响应消息;DNS服务器,用于接收MME发送的DNS请求消息,以及将DNS请求消息发送给缓存控制装置,以及接收缓存控制装置发送的DNS响应消息;MME,用于向DNS服务器发送DNS请求消息,该DNS请求消息中携带有域名;以及接收DNS服务器发送的DNS响应消息。

结合第三方面,在第三方面的第一种可能的实现方式中,DNS响应消息中还包括:缓存控制装置所选择的服务网关的标识,相应的,MME还用于根据所选择的服务网关的标识,与所选择的服务网关建立连接。

结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,缓存控制装置还用于:获取至少一个服务网关中每个服务网关的状态信息,该状态信息包括每个服务网关的负荷以及每个服务网关与DNS服务器之间的位置关系以及DNS查询系统为每个服务网关所设定的优先策略;以及用于在接收到DNS服务器发送的第一查询消息后,根据每个服务网关的状态信息,从每个服务网关中选择一个服务网关。

结合第三方面至第三方面的第二种可能的实现方式中任意一种可能的实现方式,在第三方面的第三种可能的实现方式中,服务网关的状态信息包括以下任意一项:处理器使用率、内存占用率、配套存储设备input/output(I/O)数量、网络I/O数量、用户连接数等)以及所述服务网关的失败信息。

附图说明

图1为本发明实施例提供的一种DNS查询系统的结构示意图;

图2为本发明实施例提供的一种缓存控制方法的流程示意图;

图3为本发明实施例提供的一种缓存控制方法的实际应用流程示意图;

图4为本发明实施例提供的一种缓存控制装置的结构示意图一;

图5为本发明实施例提供的一种缓存控制装置的结构示意图二;

图6为本发明实施例提供的一种缓存控制装置的结构示意图三;

图7为本发明实施例提供的缓存控制装置的负荷和TTL值之间的关系示意图。

具体实施方式

本发明实施例提供的缓存控制方法可以应用于DNS查询系统中,如图1所示,该DNS查询系统包括:至少一个服务器网关(如图1中的服务网关102-2和服务网关102-1),缓存控制装置101、DNS服务器103、MME(Mobility Management Entity,移动管理实体)104以及DNS查询服务器105,其中,缓存控制装置101与至少一个服务网关及DNS服务器103相连,DNS服务器103与MME104以及DNS查询服务器105相连。

其中,缓存控制装置101用于收集至少一个服务网关中每个服务网关的状态信息,例如,缓存控制装置101可以收集服务网关102-1的状态信息和服务网关102-2的状态信息,其中,服务网关的状态信息指服务网关处理器的使用率、服务网关内存占用率、配套存储设备(I/O)数量(input/output,输入/输出)、网络I/O数量、用户连接数以及服务网关的失败信息、以及每个服务网关与DNS服务器之间的位置关系以及DNS查询系统为每个服务网关所设置的优先策略等。

该缓存控制装置101可以按照预设周期周期性的收集每个服务网关的状态信息,本发明实施例对该预设周期不进行限定,可以根据需要进行选择设置。

缓存控制装置101还用于接收DNS服务器103发送的DNS查询消息,然后根据该DNS查询消息从至少一个服务网关中选择一个服务网关,作为为MME服务的服务网关。

示例性的,从DNS服务器103收到DNS查询消息,缓存控制装置101根据收集的每个服务网关的状态信息从服务网关102-1和服务102-2中选择一个作为服务网关,每个服务网关的状态信息包括DNS服务器103和服务网关102-1和服务102-2之间的地理位置关系、DNS查询系统为服务网关102-1和服务网关102-2所设置的优先策略等,之后缓存控制装置101向DNS服务器发送DNS响应信息,该DNS响应信息中包括缓存控制装置101所选择的服务网关的标识。

其中,服务网关的标识用于唯一识别该服务网关,示例性的,该服务网关的标识可以为服务网关的网络地址。

本发明实施例提供的缓存控制装置101可以被配置为一种权威DNS服务器,该权威DNS服务器用于记录域和IP地址之间的映射。

其中,权威DNS服务器是指经过上一级授权对域名进行解析的服务器,同时它可以把解析授权转授给设备。

DNS服务器103用于接收MME104发送的域名请求消息,并将该域名请求消息翻译为对应域名地址,本发明实施例中DNS服务器103用于将MME104发送的域名请求消息翻译为对应的MME缓存控制装置地址,由MME缓存控制装置接收到请求消息后选择服务网关,返回请求结果。

MME104,为4G网络设备实体,主要负责移动性管理、承载管理、用户的鉴权认证、SGW和PGW的选择等功能,本发明实例中用于服务网关PGW(PDN GateWay,PDN网关)的选择。

Serving GW(Gateway),服务网关,该服务网关是一个用户面实体,负责用户面数据路由处理,缓存处于空闲状态的UE的下行数据。管理和存储UE的SAE承载(bearer)上下文,比如IP承载业务参数和网络内部路由信息等。是3GPP系统内部用户面的锚点,一个用户在一个时刻只能有一个Serving GW。

本发明实施例中的服务网关为用于提供移动核心网网关服务的设备,当DNS查询系统中的服务网关的数量在两个或两个以上时,该两个或两个以上的服务网关可以位于不同的位置为用户提供相同的服务内容。例如,服务网关102-1可以位于北京市海淀区,102-2可以位于北京市通州区。在本发明实施例中,服务网关102-1和服务网关102-2分别有各自的全称域名(Fully Qualified Domain Name,FQDN)又称:完全合格域名,示例性的,表示全称域名会设置为FQDN1,则服务网关102-1的连接地址可以设置为FQDN1-1,服务网关102-2的连接地址可以设置为FQDN1-2。

示例性的,本发明实施例中的服务网关指PGW,(PDN GW)分组数据网网关,负责UE接入PDN的网关,分配用户IP地址,是3GPP和非3GPP接入系统的移动性锚点,Internet、IMS等。

DNS查询服务器105用于:DNS查询系统是树状分级设置的,与DNS服务器103作用相同,用于补充DNS查询结果。

需要说明的是,图1所示的DNS查询系统仅是示例性的示出了两个服务网关(例如,服务网关102-1和服务网关102-2),但是可以理解的是本发明实施例提供的DNS查询系统还可以包括三个以上的服务网关。具体的服务网关的数量可以根据本地上网服务范围以及每个区域的用户数量等因素确定。

具体的,如图2所示,本发明实施例提供一种缓存控制方法,该方法应用于缓存控制装置中,该方法包括:

S201、缓存控制装置获取缓存控制装置的状态信息,该状态信息用于计算缓存控制装置的负荷。

S202、缓存控制装置根据缓存控制装置的状态信息,计算缓存控制装置的负荷。

S203、缓存控制装置根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置当前生存时间(TTL,Time-to-Live)值。

本发明实施例提供一种缓存控制方法,通过获取缓存控制装置的状态信息,根据缓存控制装置的状态信息,计算缓存控制装置的负荷,以及根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置生存时间TTL值,使得缓存控制装置生存时间TTL值可以根据缓存控制装置的负荷进行变化,这样可以使得缓存控制装置的TTL值是一个随缓存控制装置的负荷动态变化的量,而不是一个固定的TTL值,因此,当MME的DNS缓存中的某一项DNS查询结果的生存时间大于或等于时缓存控制装置的TTL值时,MME可以及时从DNS Cache中将该过期的DNS查询结果删掉,不致于过多的DNS查询结果占用DNS Cache空间,这样在DNS Cache缓存空间有限的情况下,可以避免DNS Cache缓存溢出的问题。

本发明实施例中的TTL值指域名解析的结果,也即DNS查询记录在MME的DNS Cache中存储的时间。

本发明实施例提供的缓存控制装置动态变化的TTL值可以通过CPU、硬件处理器或者其他计算设备来实现。

其中,本发明实施例对上述预设负荷阈值不进行限定,该预设负荷阈值可以根据需要进行设置。示例性的,该预设负荷阈值可以根据不同MME设备厂家的设备说明设定,或根据设备使用情况设定,比如TTL最大值不会造成MME的DNS Cache缓存溢出。

本发明实施例可以将预设负荷阈值存储在缓存控制装置的存储单元中。

其中,本发明实施例中可以通过缓存控制装置的负荷是否大于预设负荷阈值来更新缓存控制装置当前生存时间TTL值。

可选的,本发明实施例中缓存控制装置的状态信息至少包括以下任意一项:

CPU(中央处理器,Central Processing Unit)使用率、内存占用率、配套存储设备输入/输出数量、缓存控制装置网络输入/输出数量和单位时间内接收的查询信息的数量。

其中,本发明实施例中的查询信息可以指代DNS请求信息。

本发明实施例中的步骤S201可以通过以下方式实现:

S2011、根据缓存控制装置的状态信息,采用公式计算所述缓存控制装置的负荷,其中,P表示缓存控制装置的负荷,Ci表示缓存控制装置的状态信息包括的第i个子状态的参数,λi表示第i个子状态的权重,i表示子状态的编号。

示例性的,本发明实施例仅以缓存控制装置的负荷信息包括CPU使用率以及内存使用率为例进行说明,其中,CPU使用率的权重为50%,内存使用率的权重为50%,则缓存控制装置的负荷=CPU使用率×50%+内存使用率×50%。

在实际使用过程中,每个子状态的权重可以根据需要进行设置。

一方面,本发明实施例中的步骤S203可以通过以下方式实现:

S2031A、在缓存控制装置的负荷小于或等于预设负荷阈值时,将缓存控制装置的当前TTL值减小。

具体的,将缓存控制装置的当前TTL值减小的方式有多种,示例性的,可以线性减小缓存控制装置的当前TTL值,使得减小后的缓存控制装置的TTL值小于缓存控制装置的当前TTL值,无论通过哪一种减小方式只要能够在缓存控制装置的负荷小于或等于预设负荷阈值时,使得减小后的缓存控制装置的TTL值小于当前TTL值即可,本发明实施例对此不进行限定。

示例性的,步骤S2031A可以通过以下方式实现:

S2031A1、当缓存控制装置的负荷小于或等于预设负荷阈值时,采用公式TTL2=MAX(TTLmin,(TTL1-K))计算缓存控制装置更新后的TTL值;其中,TTL2表示第一预设阈值,TTLmin表示预设TTL最小值;TTL1表示缓存控制装置的当前TTL值,K表示预设值。

其中,K值应该小于或等于缓存控制装置的当前TTL值。具体的,该K值可以根据(TTLmin+TTLmax)/20来确定。

S2031A2、将缓存控制装置的当前TTL值更新为缓存控制装置更新后的TTL值。

S2032A、在缓存控制装置的负荷大于预设负荷阈值时,将缓存控制装置的当前TTL值增大。

具体的,将缓存控制装置的当前TTL值增大的方式有多种,示例性的,可以以指数形式增加本发明实施例提供的缓存控制装置的TTL值,以使得增大后的缓存控制装置的TTL值大于缓存控制装置的当前TTL值,无论通过哪一种增大方式只要能够在缓存控制装置的负荷大于预设负荷阈值时,增大缓存控制装置的TTL值使得增大后的缓存控制装置的TTL值大于缓存控制装置的当前TTL值即可,本发明实施例对此不进行限定。

示例性的,步骤S2032A还可以通过以下方式实现:

S2032A1、当缓存控制装置的负荷大于预设负荷阈值时,采用公式TTL2=MIN(TTLmax,(TTL1+TTLmax)/2)计算缓存控制装置更新后的TTL值;其中,TTL2表示第一预设阈值,TTLmax表示预设TTL最大值,TTL1表示缓存控制装置的当前TTL值。

S2032A2、将缓存控制装置的当前TTL值更新为缓存控制装置更新后的TTL值。

需要说明的是,若采用公式TTL2=MIN(TTLmax,(TTL1+TTLmax)/2)或者采用公式TTL2=MAX(TTLmin,(TTL1-K))计算出的缓存控制装置的TTL值为小数时,而本发明实施例提供的TTL值只能为整数时,可以通过保留小数点后预设位数的数值(例如,保留小数点后两位)将公式TTL2=MIN(TTLmax,(TTL1+TTLmax)/2)的计算结果设为整数。

由于,TTL增大和缓存控制装置的负荷超过预设负荷阈值相关,因此,TTL值指数增加时,可以在缓存控制装置发生错误前快速稳定缓存控制装置。

另一方面,本发明实施例可以将TTL值更新为预设TTL最大值和预设TTL最小值之间的任意一个TTL值,示例性的,将该TTL值更新为第一预设阈值,该第一预设阈值属于[TTLmin,TTLmax],其中,TTLmin表示预设TTL最小值,TTLmax表示预设TTL最大值。

具体的,本发明实施例中的步骤S203可以通过以下方式实现:

S2031B、根据缓存控制装置的负荷与预设负荷阈值的关系,将缓存控制装置的TTL值更新至第一预设阈值,该第一预设阈值大于或等于预设TTL最小值且第一预设阈值小于或等于预设TTL最大值。

具体的,当缓存控制装置的负荷大于预设负荷阈值时,第一预设阈值大于或等于缓存控制装置的当前TTL值,且第一预设阈值小于或等于缓存控制装置的预设TTL最大值。

其中,缓存控制装置的当前TTL值为当前时刻缓存控制装置所具有的TTL值。

具体的,当缓存控制装置的负荷小于或等于预设负荷阈值时,第一预设阈值小于或等于缓存控制装置的当前TTL值,且第一预设阈值大于或等于缓存控制装置的预设TTL最小值。

综上所述,当缓存控制装置确定该缓存控制装置的负荷大于预设负荷阈值时,可以将TTL值更新为预设TTL最大值,或者也可以将TTL值更新为第一预设阈值,该第一预设阈值为在预设TTL最大值和当前TTL值之间的任意一个值。

本发明实施例中根据缓存控制装置的负荷所确定的TTL值为属于预设TTL最大值和TTL最小值之间的任意一个数值,而不是一个固定的TTL值,因此失败的用户数量会有效减少,同时,缓存控制装置的负荷也会保持在一个合理的范围内。

需要说明的是,本发明实施例提供的缓存控制装置中预先设置有预设TTL最大值和预设TTL最小值,缓存控制装置对不同的域名设定不同的TTL值,每个域名所设置的TTL值在更新后位于预设TTL最小值和预设TTL最大值之间。例如,当缓存控制装置初始化时,可以将缓存控制装置的TTL值设置为初始值,该初始值可以为预设TTL最大值,这样,当缓存控制装置启动以后,该缓存控制装置向DNS服务器反馈的DNS响应消息中便携带有预设TTL最大值,然后缓存控制装置可以根据缓存控制装置的状态来减小TTL值的初始值,当TTL值减小后,缓存控制装置依旧可以根据缓存控制装置的状态信息增大TTL值。

当缓存控制装置的负荷超于预设负荷阈值时,缓存控制装置会增大缓存控制装置的TTL值,之后,当缓存控制装置的负荷小于或等于预设负荷阈值时,缓存控制装置会较小缓存控制装置的TTL值。

可选的,本发明实施例在步骤S203之后,还包括步骤S204:

S204、向DNS服务器发送DNS响应消息,该DNS响应消息至少包括以下任意一项:缓存控制装置更新后的TTL值和缓存控制装置所选择的服务网关的标识,由于更新后的TTL值仅应用于MME中,为了保证DNS服务器能够与MME具有相同的TTL值,这样做可以使得DNS服务器和MME最终都会得到更新后的TTL值,来控制其内存中缓存的老化时长。

可选的,本发明实施例中的缓存控制装置与至少一个服务网关相连,相应的,本发明实施例在步骤S204之前,还可以包括以下步骤S205和步骤S206:

S205、获取至少一个服务网关中每个服务网关的状态信息,服务网关的状态信息还包括每个服务网关与DNS服务器之间的位置关系,以及DNS查询系统为每个服务网关所设置的优先策略。

S206、根据每个服务网关的状态信息从至少一个服务网关中选择一个服务网关。

示例性的,缓存控制装置可以根据每个网关的状态信息确定每个服务网关的比例,然后从每个服务网关的比例中选择一个满足预设要求的服务网关。

本发明实施例中每个服务网关均会有一个优先策略,每个服务网关的优先策略可以用于调节该服务网关的业务占比,示例性的,如图2所示的服务网关102-1占比30%,服务网关102-2占比70%。

需要说明的是,本发明实施例中当缓存控制装置应用于图1所示的DNS查询系统中时,该DNS查询系统可以只包括一个服务网关,那么缓存控制装置可以直接将该服务网关的标识发送给DNS服务器,以使得MME可以根据该服务网关的标识与该服务网关进行连接,但是为了保证当一个服务网关出现问题时,DNS服务器还可以与该出现问题的服务网关之外的其余服务网关建立连接,因此,优选的,本发明实施例中的DNS查询系统应当包括两个或两个以上的服务网关。

可选的,本发明实施例在步骤S201之前还可以包括步骤S207:

S207、接收DNS服务器发送的DNS请求消息。具体的,在缓存控制装置接收到DNS服务器发送的DNS请求消息可以根据缓存控制装置的状态信息计算缓存控制装置的负荷。

如图3所示,本发明实施例提供一种缓存控制方法的具体应用,如图3所示,包括:

S301、缓存控制装置接收DNS服务器发送的DNS请求消息。

S302、缓存控制装置获取缓存控制装置的状态信息。

S303、缓存控制装置根据缓存控制装置的状态信息,计算缓存控制装置的负荷。

S304、缓存控制装置判断缓存控制装置的负荷是否大于预设负荷阈值,若缓存控制装置的负荷大于预设负荷阈值则执行步骤S305、S307、S308和S309;若缓存控制装置的负荷小于或等于预设负荷阈值则执行步骤S306、S307、S308和S309。

S305、缓存控制装置将缓存控制装置的TTL值增大,使得增大后的缓存控制装置的TTL值大于缓存控制装置的当前TTL值(也即缓存控制装置增大之前的TTL值)且小于预设TTL最大值。

S306、缓存控制装置将缓存控制装置的TTL值减小,使得减小后的缓存控制装置的TTL值小于缓存控制装置的当前TTL值,且大于或等于预设TTL最小值。

S307、缓存控制装置获取至少一个服务网关中每个服务网关的状态信息。

S308、缓存控制装置根据每个服务网关的状态信息,从至少一个服务网关中选择一个服务网关,该服务网关。

S309、缓存控制装置向DNS服务器发送DNS响应消息,该DNS响应消息中包括所选择的服务网关的标识和缓存控制装置更新后的TTL值中的任意一项或两项。

本发明实施例提供一种缓存控制方法,通过获取缓存控制装置的状态信息,根据缓存控制装置的状态信息,计算缓存控制装置的负荷,以及根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置生存时间TTL值,使得缓存控制装置生存时间TTL值可以根据缓存控制装置的负荷进行变化,这样可以使得缓存控制装置的TTL值是一个随缓存控制装置的负荷动态变化的量,而不是一个固定的TTL值,因此,当MME的DNS缓存中的某一项DNS查询结果的生存时间大于或等于时缓存控制装置的TTL值时,MME可以及时从DNS Cache中将该过期的DNS查询结果删掉,不致于过多的DNS查询结果占用DNS Cache空间,这样在DNS Cache缓存空间有限的情况下,可以避免DNS Cache缓存溢出的问题。

如图4所示,本发明实施例提供一种缓存控制装置,该缓存控制装置包括:负载计算器401,用于获取缓存控制装置用于计算缓存控制装置的负荷的状态信息,以及用于根据缓存控制装置的状态信息,计算缓存控制装置的负荷。

TTL控制器402,用于根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置生存时间TTL值。

本发明实施例提供一种缓存控制装置,通过获取缓存控制装置的状态信息,根据缓存控制装置的状态信息,计算缓存控制装置的负荷,以及根据缓存控制装置的负荷与预设负荷阈值的关系,更新缓存控制装置生存时间TTL值,使得缓存控制装置生存时间TTL值可以根据缓存控制装置的负荷进行变化,这样可以使得缓存控制装置的TTL值是一个随缓存控制装置的负荷动态变化的量,而不是一个固定的TTL值,因此,当MME的DNS缓存中的某一项DNS查询结果的生存时间大于或等于时缓存控制装置的TTL值时,MME可以及时从DNS Cache中将该过期的DNS查询结果删掉,不致于过多的DNS查询结果占用DNS Cache空间,这样在DNS Cache缓存空间有限的情况下,可以避免DNS Cache缓存溢出的问题。

可选的,本发明实施例中的TTL控制器402具体用于:

在缓存控制装置的负荷小于或等于预设负荷阈值时,将缓存控制装置的当前TTL值减小;

在缓存控制装置的负荷大于预设负荷阈值时,将缓存控制装置的当前TTL值增大。

可选的,本发明实施例提供的TTL控制器402具体用于:

根据缓存控制装置的负荷与预设负荷阈值的关系,将缓存控制装置的TTL值更新至第一预设阈值,改第一预设阈值大于或等于预设TTL最小值且第一预设阈值小于或等于预设TTL最大值。

进一步可选的,本发明实施例中的TTL控制器402具体用于:

当缓存控制装置的负荷大于预设负荷阈值时,第一预设阈值大于或等于缓存控制装置的当前TTL值,且第一预设阈值小于或等于预设TTL最大值;

当缓存控制装置的负荷小于或等于预设负荷阈值时,第一预设阈值为小于或等于所述缓存控制装置的当前TTL值,且第一预设阈值大于或等于所述预设TTL最小值的值。

可选的,本发明实施例提供的TTL控制器402具体用于:

当缓存控制装置的负荷大于预设负荷阈值时,采用公式TTL2=MIN(TTLmax,(TTL1+TTLmax)/2)计算缓存控制装置更新后的TTL值;其中,TTL2表示第一预设阈值,TTLmax表示预设TTL最大值,TTL1表示缓存控制装置的当前TTL值。

当缓存控制装置的负荷小于或等于预设负荷阈值时,采用公式TTL2=MAX(TTLmin,(TTL1-K))计算缓存控制装置更新后的TTL值;其中,TTL2表示第一预设阈值,TTLmin表示预设TTL最小值;K表示预设值,TTL1表示缓存控制装置的当前TTL值。

将缓存控制装置的当前TTL值更新为缓存控制装置更新后的TTL值。

可选的,缓存控制装置的状态信息包括至少一个子状态,所述该至少一个子状态中每个所述子状态对应一个权重;。

本发明实施例中的负载计算器401具体用于:根据缓存控制装置的状态信息,采用公式计算缓存控制装置的负荷,其中,P表示缓存控制装置的负荷,Ci表示缓存控制装置的状态信息包括的第i个子状态的参数,λi表示第i个子状态的权重,i表示子状态的编号。

可选的,如图5所示,本发明实施例提供的缓存控制装置还包括:网关选择器403,用于从至少一个服务网关中选择一个服务网关。

可选的,网关选择器403具体用于:获取至少一个服务网关中每个服务网关的状态信息,根据每个服务网关的状态信息从中选择一个服务网关。

可选的,如图6所示,本发明实施例提供的缓存控制装置还包括:

DNS请求处理器404,与DNS服务器相连,用于接收DNS服务器发送的DNS请求消息,以及向DNS服务器发送DNS响应消息,该DNS响应消息包括所选择的服务网关的标识以及缓存控制装置更新后的TTL值。

本发明实施例中的DNS请求处理器404、网关选择器403、负载计算器401和TTL控制器402可以通过至少一个CPU或硬件处理器实现。

具体的,本发明实施例提供的网关选择器403按照预设周期周期性的从至少一个服务网关中收集每个服务网关的状态信息,然后根据收集到的每个服务网关的状态信息,从每个服务网关的状态信息中选择一个服务网关作为用于为MME服务的服务网关。

本发明实施例的缓存控制装置会将缓存控制装置本身的负载和DNS请求消息的数量反应到动态调整TTL值上,在适当控制缓存控制装置的负荷的同时有效实现至少两个服务网关间的负载均衡。

示例性的,缓存控制装置向DNS服务器发送缓存控制装置更新后的TTL值之后,DNS服务器在接收到缓存控制装置更新后的TTL值之后,若确定MME发送的DNS请求消息请求访问的域名对应的记录的时长未超过更新后的TTL值时,DNS服务器将停止向缓存控制装置发送DNS请求消息,因此,需要缓存控制装置处理的DNS请求消息的数量可以根据缓存控制装置的TTL值变化。例如,当缓存控制装置的TTL值增大,DNS服务器向缓存控制装置发送的DNS请求消息数量就会减少。但是,当缓存控制装置的TTL值大于预设TTL最大值时,在缓存控制装置中将很难立即反映出每个服务网关的状态变化。例如,当服务网关102-1的连接信息存储在DNS服务器103中时,服务网关102-1立即出现了失败,在缓存控制装置的TTL值过期前,DNS服务器103提供给MME的102-1的连接信息依旧是之前存储的缓存信息,由于失败导致连接传送时延。

当缓存控制装置的TTL值减小时,缓存控制装置会立即反映出至少一个服务网关中每个服务网关的状态变化,同时,可以实现至少一个服务网关之间的负载均衡,示例性的,当服务网关102-1发生失败的时候,缓存控制装置会向MME提供服务网关102-2的连接信息,然后MME可以根据服务网关102-2的连接信息与服务网关102-2建立连接,而不是与发生失败的服务网关102-1连接。但是,当TTL值小于预设TTL最小值时,缓存控制装置需要处理的DNS请求就会增加,由于非正常增加的DNS请求数量(例如,拒绝服务攻击(DOS))会使得缓存控制装置错误增加。

如图7所示,在图7中最上面的图示出了本发明实施例提供的缓存控制装置的负荷随时间的变化示意图,在图7的最下方的图中示出了本发明实施例提供的缓存控制装置的TTL值随着缓存控制装置的负荷的增大或者减小的变化示意图。其中,图7中的TTLmax指代预设TTL最大值;TTLmin指代预设TTL最小值。

首先,在t1时刻,TTL控制器将本发明实施例提供的缓存控制装置的TTL值设置为预设TTL最大值(如图7最下方的图中所示的TTLmax)。在t1到t2这段区间内,由于该缓存控制装置的负荷小于或者等于预设负荷阈值,因此,在t1-t2这段区间内,TTL控制器将TTL值线性减小。在t2到t3这段区间内,TTL控制器将TTL值设置为预设TTL最小值(如图7最下方图中所示的TTLmin)。

其次,在t3到t4这段区间内,本发明实施例提供的缓存控制装置的负荷大于预设负荷阈值,因此,TTL控制器按照指数形式增大本发明实施例提供的缓存控制装置的TTL值。

在t4时刻之后,本发明实施例提供的缓存控制装置的负荷小于预设负荷阈值,因此,TTL控制器将本发明实施例提供的缓存控制装置的TTL值再次线性减小。

综上所述,本发明实施例提供的缓存控制装置能够根据该缓存控制装置的负荷动态的改变缓存控制装置的TTL值,使得TTL控制器可以在满足缓存控制装置稳定性和服务质量的情况下将TTL值减小到最小。

可选的,本发明实施例提供一种DNS查询系统,应用于图1所示的DNS查询系统中,该DNS查询系统包括:缓存控制装置,至少一个服务网关、DNS查询服务器、DNS服务器以及移动管理实体MME。

其中,缓存控制装置与至少一个服务网关相连,DNS服务器与所述DNS查询服务器和MME相连;其中,缓存控制装置,用于更新缓存控制装置的生存时间TTL值,以及向DNS服务器发送所选择的服务网关的标识及缓存控制装置更新后的TTL值;DNS服务器用于,接收MME发送的DNS请求消息,然后向缓存控制装置发送该DNS请求消息,然后接收缓存控制装置发送的DNS响应消息,向MME发送DNS响应消息。

MME用于,向DNS服务器发送DNS请求消息,该DNS请求消息中携带有域名;以及接收DNS服务器发送的携带有所选择的服务网关的标识及所述缓存控制装置更新后的TTL值,以及与标识所指示的服务网关建立连接。

其中,MME是接受其所连接的服务网关服务的设备。

MME向DNS服务器发送DNS请求消息,该DNS请求消息包括请求访问的域名(例如,FQDN1)。

缓存控制装置用于从至少一个服务网关中选择一个服务网关,然后向DNS服务器发送所选择的服务网关的连接信息和缓存控制装置更新后的TTL值。

DNS服务器用于向MME反馈DNS响应信息,该DNS响应信息包括所选择的服务网关的连接信息和缓存控制装置更新后的TTL值。

MME用于根据收到的DNS响应信息连接到DNS响应信息中包括的所选择的服务网关。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的全部或部分步骤。所述存储介质是非短暂性(英文:non-transitory)介质,包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1