一种域名查询方法及装置与流程

文档序号:12731275阅读:310来源:国知局
一种域名查询方法及装置与流程

本发明涉及通信技术领域,具体涉及一种域名查询方法及装置。



背景技术:

当客户端需要访问网络时,在浏览器中输入的网址,需要先通过递归域名系统(Domain Name System,简称DNS)进行域名解析,找到相应的IP地址,而后才能上网。递归DNS主要用于完成从域名到互联网协议(Internet Protocol,IP)地址的映射及其他互联网资源解析。而域名到IP地址的映射通常存储在多个授权的域名服务器(Name server,NS)的静态数据库中。

递归DNS在解析一个特定域名的时候,一般会有多个授权的域名服务器可供选择,面对多个域名服务器,递归DNS面临选择域名服务器的问题,最理想的结果当然是始终选择最快返回解析结果的一个域名服务器,但是因为网络质量的变化和域名服务器的状态变化,谁能最快返回解析结果,是动态变化的。



技术实现要素:

本发明实施例提供一种域名查询方法及装置,以预设概率选择域名服务器发送域名查询请求,向预测往返时延最小的域名服务器发送域名查询请求的概率最大,不仅可以适应动态网络变化,还能保证发送域名查询请求的网络时延比较小。

本发明第一方面提供一种域名查询方法,包括:

当接收到第一域名解析请求时,获取M个域名服务器中每个域名服务器的预测往返时延,其中,所述M大于或者等于2;

确定所述M个域名服务器中的第一域名服务器,所述第一域名服务器的所述预测往返时延最小;

确定所述M个域名服务器中的第二域名服务器,所述第二域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延的差值小于预设阈值;

以预设概率向所述第一域名服务器或所述第二域名服务器发送域名查询请求,其中,向所述第一域名服务器发送所述域名查询请求的概率P最大,其中,所述P的取值范围为0到1。

本发明第二方面提供一种域名查询装置,包括:

获取模块,用于当接收到第一域名解析请求时,获取M个域名服务器中每个域名服务器的预测往返时延,其中,所述M大于或者等于2;

第一确定模块,用于确定所述M个域名服务器中的第一域名服务器,所述第一域名服务器的所述预测往返时延最小;

第二确定模块,用于确定所述M个域名服务器中的第二域名服务器,所述第二域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延差值小于预设阈值;

发送模块,用于以预设概率向所述第一域名服务器或所述第二域名服务器发送域名查询请求,其中,向所述第一域名服务器发送所述域名查询请求的概率P最大,其中,所述P的取值范围为0到1。

实施本发明实施例,具有如下有益效果:

本发明实施例,递归DNS以预设概率向第一域名服务器或第二域名服务器发送域名查询请求,该第一域名服务器为M个域名服务器中预测往返时延最小的域名服务器,该第二域名服务器为M个域名服务器中预测往返时延与第一域名服务器的预测往返时延小于预设阈值的域名服务器,其中,向该第一域名服务器发送域名查询请求的概率最大,这种方式不仅可以适应动态网络变化,还能保证域名查询请求的网络时延比较小。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种域名查询网络架构图;

图2为本发明实施例提供的一种域名查询方法的流程图;

图3为本发明实施例提供的另一种域名查询方法的流程图;

图4为本发明实施例提供的又一种域名查询方法的流程图;

图5为本发明实施例提供的一种域名查询的网络架构图;

图6为本发明实施例提供的一种预测往返时延计算流程;

图7为本发明实施例提供的三种域名查询方案比较示意图;

图8为本发明实施例提供的一种域名查询装置的结构示意图;

图9为本发明实施例提供的一种获取模块的结构示意图;

图10为本发明实施例提供的另一种域名查询装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

请参照图1,为本发明实施例提供的一种域名查询的网络系统架构图,如图所示,该网络系统架构图包括用户客户端、递归DNS以及多个域名服务器(图1中以4个域名服务器作为举例)。

当客户端需要访问网络时,在浏览器中输入的网址,需要先通过递归DNS进行域名解析,找到相应的IP地址,而后才能上网。递归DNS主要用于完成从域名到互联网协议(Internet Protocol,IP)地址的映射及其他互联网资源解析。而域名到IP地址的映射通常存储在多个授权的域名服务器的静态数据库中。

递归DNS在解析一个特定域名的时候,如图1所示,在解析域名“qq.com”一般会有多个域名服务器可供选择,面对多个域名服务器,递归DNS面临选择域名服务器的问题。

本发明实施例主要是通过在递归DNS中进行改进,计算各个域名服务器的预测往返时延,大概率选择预测往返时延最小的域名服务器,同时也会存在一定概率选择其它满足条件的域名服务器,该条件可以是其它域名服务器的预测往返时延与最小往返时延的差值小于预设阈值,这样不仅可以逐渐发现最优的域名服务器,同时也能保证域名查询请求的往返时延比较小。

下面将结合附图2-附图10,对本发明实施例提供的域名查询方法及装置进行详细介绍。

请参照图2,为本发明实施例提供的一种域名查询方法的流程图;该方法可包括以下步骤S200-步骤S203。

S200,当接收到第一域名解析请求时,获取M个域名服务器中每个域名服务器的预测往返时延,其中,所述M大于或者等于2;

本发明实施例中,递归DNS接收客户端发送的第一域名解析请求,该第一域名解析请求中携带需要解析的域名,比如“qq.com”。递归DNS需要从域名服务器中查询该域名所对应的IP地址,因此,递归DNS需要向域名服务器发送域名查询请求。

最理想的情况是,向往返时延最小的域名服务器发送域名查询请求,由于网络质量的动态变化,以及域名服务器本身的变化,往往会存在往返时延的波动,如果仅仅以上次查询响应的往返时延作为参考标准,可能会导致将比较优质的域名服务器直接隔离。比如,该优质域名服务器存在网络质量变化,上次查询响应的往返时延变得非常大,后续则不会再次选择该域名服务器了(因为仅仅会选择预测往返时延最小的域名服务器),这种方式很难选择到最优的域名服务器。

本发明实施例中,递归DNS并不会始终选择预测往返时延最小的域名服务器。具体可选的,递归DNS获取M个域名服务器中每个域名服务器的预测往返时延,该预测往返时延可以是根据该域名服务器的多个历史往返时延进行计算得到的,比如,通过递归算法计算得到该预测往返时延,具体计算方式可以参照图3的实施例描述,需要说明的是,图3实施例描述仅仅为一种举例,并不对本发明的预测往返时延的计算方式构成限定。

对于一个域名服务器,会计算得到一个预测往返时延,存在M个域名服务器,因此会计算得到M个预测往返时延。

S201,确定所述M个域名服务器中的第一域名服务器,所述第一域名服务器的所述预测往返时延最小;

本发明实施例中,确定该M个域名服务器中的第一域名服务器,第一域名服务器的预测往返时延最小,因此该第一域名服务器仅仅包括一个域名服务器,比如该第一域名服务器的预测往返时延为RTT-min。

S202,确定所述M个域名服务器中的第二域名服务器,所述第二域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延差值小于预设阈值;

本发明实施例中,确定该M个域名服务器中的第二域名服务器,该第二域名服务器的预测往返时延与第一域名服务器的预测往返时延(比如为RTT-min)差值小于预设阈值,该预设阈值可以是RTT-BAND=300ms。

该第二域名服务器中可以包括至少一个域名服务器,该至少一个域名服务器的预测往返时延的范围在[RTT-min,RTT-min+RTT-BAND]。

S203,以预设概率向所述第一域名服务器或所述第二域名服务器发送域名查询请求,其中,向所述第一域名服务器发送所述域名查询请求的概率P最大,其中,P的取值范围在0到1。

可选的,所述第二域名服务器包括N(N大于等于1)个域名服务器,向所述N个域名服务器中每个所述域名服务器发送所述域名查询请求的概率为(1-P)/N。

本发明实施例中,当递归DNS获取到了M个域名服务器中的第一域名服务器和第二域名服务器后,以预设概率向第一域名服务器或第二域名服务器发送域名查询请求,可选的,该预设概率为不均等概率,其中,向第一域名服务器发送域名查询请求的概率P最大,P可以是大于50%,比如P=80%。该预设概率可以根据网络实际情况以及第二域名服务器中域名服务器的数量进行设置。

由于向第一域名服务器发送域名查询请求的概率最大,因此可以保证域名查询请求的查询响应的往返时延会比较小。

对于第二域名服务器中的每个域名服务器,递归DNS把预测往返时延落在[RTT-min,RTT-min+RTT-BAND]之间的所有域名服务器可以进行不均等的概率性随机选择,也可以进行均等的概率选择。

若递归DNS对第二域名服务器中的每个域名服务器进行不均等的概率性随机选择,则可以是预测往返时延越小的域名服务器,选择概率越大。这样在网络动态变化过程中,可以逐步发现真正往返时延最小的域名服务器,同时也能迅速发现各个域名服务器的质量变化。

若递归DNS对第二域名服务器中的每个域名服务器进行均等的概率性选择,则向所述第一域名服务器发送所述域名查询请求的概率P,第二域名服务器中包括N个域名服务器,向所述N个域名服务器中每个所述域名服务器发送所述域名查询请求的概率为(1-P)/N。

如图5所示,即是本发明实施例提供的一种概率选择示意图,该网络架构中包括4个域名服务器,其中该4个域名服务器的预测往返时延大小排序如下:RTT1<RTT2<RTT3<RTT4,其中,RTT1最小,因此递归DNS向域名服务器1发送域名查询请求的概率最大,为80%,RTT2和RTT3与最小的RTT1的差值小于预设阈值RTT-BAND,因此递归DNS也会以一定概率向域名服务器2和域名服务器3发送域名查询请求。

本发明实施例,递归DNS以预设概率向第一域名服务器或第二域名服务器发送域名查询请求,该第一域名服务器为M个域名服务器中预测往返时延最小的域名服务器,该第二域名服务器为M个域名服务器中预测往返时延与第一域名服务器的预测往返时延小于预设阈值的域名服务器,其中,向该第一域名服务器发送域名查询请求的概率最大,这种方式不仅可以适应动态网络变化,还能保证域名查询请求的网络时延比较小。

请参照图3,为本发明实施例提供的另一种域名查询方法的流程图;该方法可包括以下步骤:

S300,当接收到第一域名解析请求时,针对M个域名服务器中的每个所述域名服务器,获取所述域名服务器的历史往返时延平均值以及离当前时间最近的最新往返时延;

S301,根据所述历史往返时延平均值和所述最新往返时延,计算所述域名服务器的预测往返时延。

S302,存储所述预测往返时延,所述预测往返时延用于在下次接收到第二域名解析请求时计算所述域名服务器的预测往返时延时使用。

可选的,所述历史往返时延平均值为所述域名服务器的Q(Q≥2)个历史往返时延和历史预测往返时延的均值,所述历史预测往返时延为历史存储的距离当前时间最近的所述域名服务器的预测往返时延;

所述Q个历史往返时延为从往返时延序列中选择的往返时延,所述往返时延序列为将所述域名服务器的所有历史往返时延按时间先后顺序进行排序后的序列;

所述Q个往返时延为在所述往返时延序列的所述最新往返时延之前的Q个往返时延。

本发明实施例中,递归DNS可以是采用递归的方式计算M个域名服务器中每个域名服务器的预测往返时延,这里以计算其中一个域名服务器的预测往返时延作为举例说明,具体可选的,获取所存储的该域名服务器的最新往返时延,比如为RTT_new,该RTT_new为距离当前时间最近的一次查询响应的往返时延。

递归DNS查询所存储的时间在RTT_new之前的Q个历史往返时延,比如,按照时间先后顺序,将所有历史往返时延组成往返时延序列,比如该往返时延序列为RTTi,RTTi-1.….RTT3,RTT2,RTT1,RTT_new,其中,RTT1时间次近,仅仅在RTT_new之前,RTTi时间最远。递归DNS查询所存储的时间在RTT_new之前的Q个历史RTT为RTT1,RTT2,RTT3…RTT Q,其中,Q小于i。

这里以Q=2作为举例说明,递归DNS计算在RTT_new之前的2个往返时延与历史预测往返时延的历史平均值RTT_old_avg,计算公式可以是RTT_old_avg=(RTT1+RTT2+RTT_cal-n-1)/3。RTT_cal-n-1为上一次计算该域名服务器的预测往返时延得到的。

该域名服务器的预测往返时延计算方式如下,预测往返时延用RTT_cal-n表示:

RTT_cal-n=RTT_old_avg+factor*(RTT_new-RTT_old_avg)。(factor取值为0.25)

然后将这个新的RTT_cal-n取代Q个RTT中的时间最长的一个历史往返时延,即是RTTQ。

当递归DNS接收到第二域名解析请求时,需要再次计算预测往返时延,则可以计算该预测往返时延与最新的Q个历史往返时延的平均值,需要说明的是,上述RTT_new已经成为该Q个历史往返时延中的一个。

后续DNS在选择域名服务器上,采用大概率选择最优往返时延,即是预测往返时延最小的域名服务器,另外小概率在所有和最小往返时延的差距在RTT_BAND之间的域名服务器中随机选择。

请参照图6,是本发明实施例提供的一种预测往返时延的计算流程图,如图所示,递归DNS维护一个域名服务器的三次历史往返时延,分别为RTT1、RTT2以及RTT3;其中RTT3时间最远,RTT1时间最近。

除了上述RTT1、RTT2以及RTT3外,距离当前时间最近的一次查询响应的网络往返时延为RTT_new。

计算历史平均值为RTT-old-avg=(RTT 1+RTT 2+RTT3)/3

预测RTT-call=RTT-old-avg+0.25*(RTT-new-RTT-old-avg)

将最近计算出来的RTT-call替代时间最长的RTT3,

RTT3=RTT2;

RTT2=RTT1;

RTT1=RTT-call;

请参照图7所示,采用本发明实施例的技术方案unbound-新机制后,1000次查询响应的递归平均时延为13.004ms,延时超过100ms的次数为4,可见明显比现有方案的平均时延更小。

S303,确定所述M个域名服务器中的第一域名服务器,所述第一域名服务器的预测往返时延最小;

S304,确定所述M个域名服务器中的第二域名服务器,所述第二域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延差值小于预设阈值;

S305,以预设概率向所述第一域名服务器或所述第二域名服务器发送域名查询请求,其中,向所述第一域名服务器发送所述域名查询请求的概率P(0≤P≤1)最大。

本发明实施例步骤S302~S304请参照图2的实施例步骤S201~S203,在此不再赘述。

本发明实施例,递归DNS以预设概率向第一域名服务器或第二域名服务器发送域名查询请求,该第一域名服务器为M个域名服务器中预测往返时延最小的域名服务器,该第二域名服务器为M个域名服务器中预测往返时延与第一域名服务器的预测往返时延小于预设阈值的域名服务器,其中,向该第一域名服务器发送域名查询请求的概率最大,这种方式不仅可以适应动态网络变化,还能保证域名查询请求的网络时延比较小。

请参照图4,为本发明实施例提供的又一种域名查询方法的流程图;该方法可包括以下步骤:

S400,当接收到第一域名解析请求时,获取M个域名服务器中每个域名服务器的预测往返时延;

S401,确定所述M个域名服务器中的第一域名服务器,所述第一域名服务器的所述预测往返时延最小;

S402,确定所述M个域名服务器中的第二域名服务器,所述第二域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延差值小于预设阈值;

S403,以预设概率向所述第一域名服务器或所述第二域名服务器发送域名查询请求,其中,向所述第一域名服务器发送所述域名查询请求的概率P(0≤P≤1)最大。

本发明实施例步骤S400~S403请参照图2的实施例步骤S200~S203,在此不再赘述。

S404,确定所述至少两个域名服务器中的第三域名服务器,所述第三域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延差值大于所述预设阈值;

S405,将所述第三域名服务器确定为故障服务器。

本发明实施例中,确定该至少两个域名服务器中的第三域名服务器,第三域名服务器可以包括至少一个域名服务器,该第三域名服务器的预测往返时延与往返时延最小的第一域名服务器的预测往返时延差值大于预设阈值。将该第三域名服务器确定为故障服务器。

具体可选的,当一个域名服务器的预测往返时延超过预设阈值的时候则标记为故障,放入故障列表,以后查询的时候不选择这个故障的服务器,对故障的服务器做离线探测。

本发明实施例,递归DNS以预设概率向第一域名服务器或第二域名服务器发送域名查询请求,该第一域名服务器为M个域名服务器中预测往返时延最小的域名服务器,该第二域名服务器为M个域名服务器中预测往返时延与第一域名服务器的预测往返时延小于预设阈值的域名服务器,其中,向该第一域名服务器发送域名查询请求的概率最大,这种方式不仅可以适应动态网络变化,还能保证域名查询请求的网络时延比较小。

请参照图8,为本发明实施例提供的一种域名查询装置的结构示意图,如图所示,本发明实施例的域名查询装置包括:

获取模块10,用于当接收到第一域名解析请求时,获取M个域名服务器中每个域名服务器的预测往返时延;

本发明实施例中,递归DNS接收客户端发送的第一域名解析请求,该第一域名解析请求中携带需要解析的域名,比如“qq.com”。递归DNS需要从域名服务器中查询该域名所对应的IP地址,因此,递归DNS需要向域名服务器发送域名查询请求。

最理想的情况是,向往返时延最小的域名服务器发送域名查询请求,由于网络质量的动态变化,以及域名服务器本身的变化,往往会存在往返时延的波动,如果仅仅以上次查询响应的往返时延作为参考标准,可能会导致将比较优质的域名服务器直接隔离。比如,该优质域名服务器存在网络质量变化,上次查询响应的往返时延变得非常大,后续则不会再次选择该域名服务器了(因为仅仅会选择预测往返时延最小的域名服务器),这种方式很难选择到最优的域名服务器。

本发明实施例中,递归DNS并不会始终选择预测往返时延最小的域名服务器。具体可选的,递归DNS获取M个域名服务器中每个域名服务器的预测往返时延,该预测往返时延可以是根据该域名服务器的多个历史往返时延进行计算得到的,比如,通过递归算法计算得到该预测往返时延,具体计算方式可以参照图3的实施例描述,需要说明的是,图3实施例描述仅仅为一种举例,并不对本发明的预测往返时延的计算方式构成限定。

对于一个域名服务器,会计算得到一个预测往返时延,存在M个域名服务器,因此会计算得到M个预测往返时延。

第一确定模块11,用于确定所述M个域名服务器中的第一域名服务器,所述第一域名服务器的所述预测往返时延最小;

本发明实施例中,确定该M个域名服务器中的第一域名服务器,第一域名服务器的预测往返时延最小,因此该第一域名服务器仅仅包括一个域名服务器,比如该第一域名服务器的预测往返时延为RTT-min。

第二确定模块12,确定所述M个域名服务器中的第二域名服务器,所述第二域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延差值小于预设阈值;

本发明实施例中,确定该M个域名服务器中的第二域名服务器,该第二域名服务器的预测往返时延与第一域名服务器的预测往返时延(比如为RTT-min)差值小于预设阈值,该预设阈值可以是RTT-BAND=300ms。

该第二域名服务器中可以包括至少一个域名服务器,该至少一个域名服务器的预测往返时延的范围在[RTT-min,RTT-min+RTT-BAND]。

发送模块13,用于以预设概率向所述第一域名服务器或所述第二域名服务器发送域名查询请求,其中,向所述第一域名服务器发送所述域名查询请求的概率P最大,其中,P的取值范围在0到1。

可选的,所述第二域名服务器包括N(N大于等于1)个域名服务器,向所述N个域名服务器中每个所述域名服务器发送所述域名查询请求的概率为(1-P)/N。

本发明实施例中,当递归DNS获取到了M个域名服务器中的第一域名服务器和第二域名服务器后,以预设概率向第一域名服务器或第二域名服务器发送域名查询请求,可选的,该预设概率为不均等概率,其中,向第一域名服务器发送域名查询请求的概率P最大,P可以是大于50%,比如P=80%。该预设概率可以根据网络实际情况以及第二域名服务器中域名服务器的数量进行设置。

由于向第一域名服务器发送域名查询请求的概率最大,因此可以保证域名查询请求的查询响应的往返时延会比较小。

对于第二域名服务器中的每个域名服务器,递归DNS把预测往返时延落在[RTT-min,RTT-min+RTT-BAND]之间的所有域名服务器可以进行不均等的概率性随机选择,也可以进行均等的概率选择。

若递归DNS对第二域名服务器中的每个域名服务器进行不均等的概率性随机选择,则可以是预测往返时延越小的域名服务器,选择概率越大。这样在网络动态变化过程中,可以逐步发现真正往返时延最小的域名服务器,同时也能迅速发现各个域名服务器的质量变化。

若递归DNS对第二域名服务器中的每个域名服务器进行均等的概率性选择,则向所述第一域名服务器发送所述域名查询请求的概率P,第二域名服务器中包括N个域名服务器,向所述N个域名服务器中每个所述域名服务器发送所述域名查询请求的概率为(1-P)/N。

如图5所示,即是本发明实施例提供的一种概率选择示意图,该网络架构中包括4个域名服务器,其中该4个域名服务器的预测往返时延大小排序如下:RTT1<RTT2<RTT3<RTT4,其中,RTT1最小,因此递归DNS向域名服务器1发送域名查询请求的概率最大,为80%,RTT2和RTT3与最小的RTT1的差值小于预设阈值RTT-BAND,因此递归DNS也会以一定概率向域名服务器2和域名服务器3发送域名查询请求。

请一并参照图9,如图9所示,获取模块10包括获取单元100和计算单元101;

获取单元100,用于针对M个域名服务器中的每个所述域名服务器,获取所述域名服务器的历史往返时延平均值以及离当前时间最近的最新往返时延;

可选的,所述历史往返时延平均值为所述域名服务器的Q(Q≥2)个历史往返时延和历史预测往返时延的均值,所述历史预测往返时延为历史存储的距离当前时间最近的所述域名服务器的预测往返时延;

所述Q个历史往返时延为从往返时延序列中选择的往返时延,所述往返时延序列为将所述域名服务器的所有历史往返时延按时间先后顺序进行排序后的序列;

所述Q个往返时延为在所述往返时延序列的所述最新往返时延之前的Q个往返时延。

计算单元101,用于根据所述历史往返时延平均值和所述最新往返时延,计算所述域名服务器的预测往返时延。

本发明实施例中,递归DNS可以是采用递归的方式计算M个域名服务器中每个域名服务器的预测往返时延,这里以计算其中一个域名服务器的预测往返时延作为举例说明,具体可选的,获取所存储的该域名服务器的最新往返时延,比如为RTT_new,该RTT_new为距离当前时间最近的一次查询响应的往返时延。

递归DNS查询所存储的时间在RTT_new之前的Q个历史往返时延,比如,按照时间先后顺序,将所有历史往返时延组成往返时延序列,比如该往返时延序列为RTTi,RTTi-1.….RTT3,RTT2,RTT1,RTT_new,其中,RTT1时间次近,仅仅在RTT_new之前,RTTi时间最远。递归DNS查询所存储的时间在RTT_new之前的Q个历史RTT为RTT1,RTT2,RTT3…RTT Q,其中,Q小于i。

这里以Q=2作为举例说明,递归DNS计算在RTT_new之前的2个往返时延与历史预测往返时延的历史平均值RTT_old_avg,计算公式可以是RTT_old_avg=(RTT1+RTT2+RTT_cal-n-1)/3。RTT_cal-n-1为上一次计算该域名服务器的预测往返时延得到的。

该域名服务器的预测往返时延计算方式如下,预测往返时延用RTT_cal-n表示:

RTT_cal-n=RTT_old_avg+factor*(RTT_new-RTT_old_avg)。(factor取值为0.25)

然后将这个新的RTT_cal-n取代Q个RTT中的时间最长的一个历史往返时延,即是RTTQ。

当递归DNS接收到第二域名解析请求时,需要再次计算预测往返时延,则可以计算该预测往返时延与最新的Q个历史往返时延的平均值,需要说明的是,上述RTT_new已经成为该Q个历史往返时延中的一个。

后续DNS在选择域名服务器上,采用大概率选择最优往返时延,即是预测往返时延最小的域名服务器,另外小概率在所有和最小往返时延的差距在RTT_BAND之间的域名服务器中随机选择。

请参照图6,是本发明实施例提供的一种预测往返时延的计算流程图,如图所示,递归DNS维护一个域名服务器的三次历史往返时延,分别为RTT1、RTT2以及RTT3;其中RTT3时间最远,RTT1时间最近。

除了上述RTT1、RTT2以及RTT3外,距离当前时间最近的一次查询响应的网络往返时延为RTT_new。

计算历史平均值为RTT-old-avg=(RTT 1+RTT 2+RTT3)/3

预测RTT-call=RTT-old-avg+0.25*(RTT-new-RTT-old-avg)

将最近计算出来的RTT-call替代时间最长的RTT3,

RTT3=RTT2;

RTT2=RTT1;

RTT1=RTT-call;

请参照图7所示,采用本发明实施例的技术方案unbound-新机制后,1000次查询响应的递归平均时延为13.004ms,延时超过100ms的次数为4,可见明显比现有方案的平均时延更小。

本发明实施例,递归DNS以预设概率向第一域名服务器或第二域名服务器发送域名查询请求,该第一域名服务器为M个域名服务器中预测往返时延最小的域名服务器,该第二域名服务器为M个域名服务器中预测往返时延与第一域名服务器的预测往返时延小于预设阈值的域名服务器,其中,向该第一域名服务器发送域名查询请求的概率最大,这种方式不仅可以适应动态网络变化,还能保证域名查询请求的网络时延比较小。

请参照图10,为本发明实施例提供的另一种域名查询装置的结构示意图,如图所示,本发明实施例的域名查询装置包括:

获取模块20,用于当接收到第一域名解析请求时,获取M个域名服务器中每个域名服务器的预测往返时延;

第一确定模块21,用于确定所述M个域名服务器中的第一域名服务器,所述第一域名服务器的所述第一预测往返时延最小;

第二确定模块22,用于确定所述M个域名服务器中的第二域名服务器,所述第二域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延差值小于预设阈值;

发送模块23,用于以预设概率向所述第一域名服务器或所述第二域名服务器发送域名查询请求,其中,向所述第一域名服务器发送所述域名查询请求的概率P最大。

获取模块20、第一确定模块21、第二确定模块22以及发送模块23请参照图7的描述,在此不再赘述。

可选的,本发明实施例的域名查询装置还可以包括存储模块24;

存储模块24,用于存储所述预测往返时延,所述预测往返时延用于在下次接收到第二域名解析请求时计算所述域名服务器的预测往返时延时使用。

可选的,本发明实施例的域名查询装置还可以包括第三确定模块25和第四确定模块26;

第三确定模块25,用于确定所述至少两个域名服务器中的第三域名服务器,所述第三域名服务器的所述预测往返时延与所述第一域名服务器的所述预测往返时延差值大于所述预设阈值;

第四确定模块26,用于将所述第三域名服务器确定为故障服务器。

本发明实施例中,确定该至少两个域名服务器中的第三域名服务器,第三域名服务器可以包括至少一个域名服务器,该第三域名服务器的预测往返时延与往返时延最小的第一域名服务器的预测往返时延差值大于预设阈值。将该第三域名服务器确定为故障服务器。

具体可选的,当一个域名服务器的预测往返时延超过预设阈值的时候则标记为故障,放入故障列表,以后查询的时候不选择这个故障的服务器,对故障的服务器做离线探测。

本发明实施例,递归DNS以预设概率向第一域名服务器或第二域名服务器发送域名查询请求,该第一域名服务器为M个域名服务器中预测往返时延最小的域名服务器,该第二域名服务器为M个域名服务器中预测往返时延与第一域名服务器的预测往返时延小于预设阈值的域名服务器,其中,向该第一域名服务器发送域名查询请求的概率最大,这种方式不仅可以适应动态网络变化,还能保证域名查询请求的网络时延比较小。

尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。

本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。

本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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