本发明属于三网融合技术领域,尤其涉及用于CDN调度的方法、客户端、服务器和系统。
背景技术:
传统的互联网CDN调度系统主要基于DNS调度,该调度方法下,CDN调度服务器(CDN GSLB)根据客户使用的Local DNS IP地址来确认该DNS服务器的地理位置,并把在该服务器就近的CDN节点IP返回给客户。
现有客户使用的Local DNS一般由网络运营商提供,部署高度集中,而且越来越多出现DNS劫持问题,导致CDN难以精确定位用户位置,从而使调度不准确。
由于互联网应用流量越来越大,CDN调度不精确问题,使用户无法得到就近服务,从而造成访问性能不佳的问题。
为解决以上问题,部分CP/SP及CDN运营商开始应用HTTP DNS方案。例如,利用HTTP方式向DNS服务器进行查询,该方案通过私有协议把DNS封装在HTTP中,这种方法带来了性能及部署新问题。
1)同一配置服务器下,HTTP并发比DNS少一个数据级,如8核CPU服务器对DNS响应可轻松达80万QPS,而HTTP只能达到几万并发;
2)HTTP DNS分布式部署困难,容易造成单点故障。
技术实现要素:
本发明要解决的技术问题是CDN难以精确定位用户位置,从而 使调度不准确。
根据本发明一方面,提出一种用于CDN调度的DNS客户端,包括:
列表接收单元,用于在使用由CDN加速的域名时,向DNS管理服务器发送下载请求,并接收所述DNS管理服务器返回的DNS服务器列表以及CDN加速域名列表;
查询单元,用于向所述DNS服务器发送查询请求,在所述查询请求中携带所述DNS客户端的IP地址以及CDN加速域名;
节点获取单元,用于接收CDN调度服务器根据所述DNS客户端的IP地址返回的访问CDN加速域名的最近节点。
进一步,所述查询单元按速度排列所述DNS服务器列表中的DNS服务器,并向速度最快的所述DNS服务器发送查询请求。
进一步,所述列表接收单元通过HTTPS发送下载请求;
所述查询单元使用DNS协议发送查询请求。
根据本发明一方面,提出一种用于CDN调度的DNS服务器,包括:
请求接收单元,用于接收DNS客户端发送的查询请求,在所述查询请求中携带所述DNS客户端的IP地址以及CDN加速域名;
转发单元,用于将所述查询请求转发给CDN调度服务器,以使所述CDN调度服务器根据所述DNS客户端的IP地址返回访问CDN加速域名的最近节点。
进一步,所述转发单元支持EDNS协议,以将所述DNS客户端的IP地址转发给CDN调度服务器。
根据本发明一方面,提出一种用于CDN调度的DNS管理服务器,包括:
保存单元,用于保存DNS服务器列表以及CDN加速域名列表;
响应单元,用于接收客户端的下载请求,并向所述客户端返回DNS服务器列表以及CDN加速域名列表。
进一步,所述响应单元检查所述客户端的软件版本。
根据本发明一方面,提出一种用于CDN调度的系统,包括:
DNS客户端,用于在使用由CDN加速的域名时,向DNS管理服务器发送下载请求,并接收所述DNS管理服务器返回的DNS服务器列表以及CDN加速域名列表;向所述DNS服务器发送查询请求,在所述查询请求中携带所述DNS客户端的IP地址以及CDN加速域名;
DNS管理服务器,用于接收所述DNS客户端的下载请求,并返回DNS服务器列表以及CDN加速域名列表;
DNS服务器,用于接收所述DNS客户端的所述查询请求,并转发给CDN调度服务器;
CDN调度服务器,用于接收所述DNS服务器的查询请求,并根据所述DNS客户端的IP地址,向所述DNS客户端返回访问CDN加速域名的最近节点。
进一步,所述DNS客户端按速度排列所述DNS服务器列表中的DNS服务器,并向速度最快的所述DNS服务器发送查询请求。
进一步,所述DNS管理服务器检查所述DNS客户端的软件版本。
进一步,所述DNS客户端通过HTTPS向DNS管理服务器发送下载请求;使用DNS协议向所述DNS服务器发送查询请求;
所述DNS服务器通过EDNS协议向CDN调度服务器发送所述查询请求。
根据本发明一方面,提出一种CDN调度方法,包括:
DNS客户端使用由CDN加速的域名时,向DNS管理服务器发送下载请求,并接收所述DNS管理服务器返回的DNS服务器列表以及CDN加速域名列表;
所述DNS客户端向所述DNS服务器发送查询请求,在所述查询请求中携带所述DNS客户端的IP地址以及CDN加速域名;
所述DNS服务器将所述查询请求转发给CDN调度服务器;
所述CDN调度服务器根据所述DNS客户端的IP地址返回访问CDN加速域名的最近节点。
进一步,所述DNS客户端按速度排列所述DNS服务器列表中的DNS服务器,并向速度最快的所述DNS服务器发送查询请求。
进一步,所述DNS管理服务器检查所述DNS客户端的软件版本。
本发明中,DNS客户端将其IP地址传送给CDN调度服务器,CDN调度服务器可以根据DNS客户端的IP地址精确定位用户位置,实现CDN精确调度。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为一种用于CDN调度的DNS客户端的结构示意图。
图2为一种用于CDN调度的DNS服务器的结构示意图。
图3为一种用于CDN调度的DNS管理服务器的结构示意图。
图4为一种用于CDN调度的系统的结构示意图。
图5为一种CDN调度方法的流程示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详 细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提出了一种以DNS协议为基础的改进CDN调度方法,通过在客户端集成DNS客户端模块,客户端应用发起由CDN加速的业务时,将通过该DNS客户端向CDN关联的DNS服务器发起DNS请求,DNS服务器再向CDN调度服务器发起调度请求,DNS服务器向CDN发起的DNS请求使用EDNS协议,可携带客户端IP地址,从而使CDN调度服务器可收集到客户端IP,进而可相应返回精准调度信息。
下面将结合附图和具体实施例,对本发明做进一步说明。
图1为一种用于CDN调度的DNS客户端的结构示意图。该DNS客户端10包括:列表接收单元101、查询单元102、以及节点获取单元103。其中:
列表接收单元101,用于在使用由CDN加速的域名时,向DNS管理服务器发送下载请求,并接收所述DNS管理服务器返回的DNS服务器列表以及CDN加速域名列表;
列表接收单元101在客户端启动时即获取DNS列表与CDN加速域名列表,并可定时更新相关信息。对于非CDN加速域名,不用调用客户端的定制DNS模块,通过以前的模块访问即可。
查询单元102,用于向所述DNS服务器发送查询请求,在所述查询请求中携带所述DNS客户端的IP地址以及CDN加速域名;
节点获取单元103,用于接收CDN调度服务器根据所述DNS客户端的IP地址返回的访问CDN加速域名的最近节点。
其中,所述列表接收单元通过HTTPS发送下载请求;
所述查询单元使用DNS协议发送查询请求。
在该实施例中,DNS客户端将其IP地址传送给CDN调度服务器,CDN调度服务器可以根据DNS客户端的IP地址精确定位用户位置,实现CDN精确调度。
在本发明的实施例中,所述查询单元按速度排列所述DNS服务器列表中的DNS服务器,并向速度最快的所述DNS服务器发送查询请求。从而实现DNS服务器对DNS客户端的快速响应。
图2为一种用于CDN调度的DNS服务器的结构示意图。该DNS服务器20包括:请求接收单元201、以及转发单元202。其中:
请求接收单元201,用于接收DNS客户端发送的查询请求,在所述查询请求中携带所述DNS客户端的IP地址以及CDN加速域名;
转发单元202,用于将所述查询请求转发给CDN调度服务器,以使所述CDN调度服务器根据所述DNS客户端的IP地址返回访问CDN加速域名的最近节点。
其中,DNS服务器不对外服务,只对CDN加速的客户端服务,其只递归指定的加速域名。所述转发单元支持EDNS协议,以将所述DNS客户端的IP地址转发给CDN调度服务器。
在该实施例中,DNS服务器将DNS客户端的IP地址传送给CDN调度服务器,CDN调度服务器可以根据DNS客户端的IP地址精确定位用户位置,实现CDN精确调度。
图3为一种用于CDN调度的DNS管理服务器的结构示意图。该DNS管理服务器30包括:保存单元301、以及响应单元302。其中:
保存单元301,用于保存DNS服务器列表以及CDN加速域名列表;
响应单元302,用于接收客户端的下载请求,并向所述客户端返回DNS服务器列表以及CDN加速域名列表。
在该实施例中,DNS管理服务器将DNS服务器列表返回给DNS客户端,则DNS客户端可以从中选择一个DNS服务器,并将DNS客户端的IP地址传送给DNS服务器,以通过该DNS服务器将DNS客户端的IP地址传送给CDN调度服务器,实现CDN调度服务器对于DNS客户端的精确定位。
在本发明的实施例中,所述响应单元检查所述客户端的软件版本。防止非法用户下载。
图4为一种用于CDN调度的系统的结构示意图。该系统包括:DNS客户端10、DNS服务器20、DNS管理服务器30、以及CDN调度服务器40。其中:
DNS客户端10,用于在使用由CDN加速的域名时,向DNS管理服务器发送下载请求,并接收所述DNS管理服务器返回的DNS服务器列表以及CDN加速域名列表;向所述DNS服务器发送查询请求,在所述查询请求中携带所述DNS客户端的IP地址以及CDN加速域名;其中,所述DNS客户端通过HTTPS向DNS管理服务器发送下载请求;使用DNS协议向所述DNS服务器发送查询请求;
DNS管理服务器30,用于接收所述DNS客户端的下载请求,并返回DNS服务器列表以及CDN加速域名列表;
DNS服务器20,用于接收所述DNS客户端的所述查询请求,并转发给CDN调度服务器;其中,所述DNS服务器通过EDNS协议向CDN调度服务器发送所述查询请求;
CDN调度服务器40,用于接收所述DNS服务器的查询请求,并根据所述DNS客户端的IP地址,向所述DNS客户端返回访问CDN加速域名的最近节点。
CDN调度服务器配置为响应指定DNS服务器的请求,从而提供了DNS攻击保护,保护其不受DNS攻击影响。
在该实施例中,DNS客户端将其IP地址传送给CDN调度服务器,CDN调度服务器可以根据DNS客户端的IP地址精确定位用户位置,实现CDN精确调度。
将传统DNS查询分为HTTP与DNS两个步骤,保证DNS服务器性能。相对于现有最接近技术(HTTP DNS),具备以下优点:
性能比HTTP调度高一个数量级;
对DNS服务器改动较小,易于开发实施,并可采用成熟的分布式DNS技术,减小了单点故障风险;
CDN调度服务器可安全地获取客户端地址,为后续精准调度提供了基础。
在本发明的实施例中,所述DNS客户端按速度排列所述DNS服务器列表中的DNS服务器,并向速度最快的所述DNS服务器发送查询请求。从而实现DNS服务器对DNS客户端的快速响应。
在本发明的实施例中,所述DNS管理服务器检查所述DNS客户端的软件版本。防止非法用户下载。
下面通过一个具体实施例,对本发明的系统做进一步说明。
本方案中,新设DNS管理服务器,设置支持EDNS协议的专用DNS服务器,并需要在客户终端中定制一个专用DNS客户端。
DNS客户端只在使用CDN服务时启用,专用DNS客户端内置DNS管理服务器IP地址。
DNS管理服务器记录了支持EDNS协议的专用DNS服务器地址。DNS管理服务器一般通过IP Anycast技术实现分布式部署。
DNS服务器地址不对外公布,只为CDN客户提供DNS解释服务。
当用户使用到由CDN加速的域名时,DNS客户端首先通过HTTPS向DNS管理服务器发送地址列表下载请求,获取CDN关联DNS地址列表;下载时,DNS管理服务器需检查DNS客户端的软件版本,防止非法用户下载。下载后,DNS客户端使用DNS协议向DNS服务器查询CDN加速域名的IP,DNS服务器通过EDNS把客户端地址传给CDN调度服务器。
图5为一种CDN调度方法的流程示意图。该方法包括以下步骤:
在步骤501,DNS客户端使用由CDN加速的域名时,向DNS管 理服务器发送下载请求,并接收所述DNS管理服务器返回的DNS服务器列表以及CDN加速域名列表;
在步骤502,所述DNS客户端向所述DNS服务器发送查询请求,在所述查询请求中携带所述DNS客户端的IP地址以及CDN加速域名;
在步骤503,所述DNS服务器将所述查询请求转发给CDN调度服务器;
在步骤504,所述CDN调度服务器根据所述DNS客户端的IP地址返回访问CDN加速域名的最近节点。
在该实施例中,DNS客户端将其IP地址传送给CDN调度服务器,CDN调度服务器可以根据DNS客户端的IP地址精确定位用户位置,实现CDN精确调度。
将传统DNS查询分为HTTP与DNS两个步骤,保证DNS服务器性能。相对于现有最接近技术(HTTP DNS),具备以下优点:
性能比HTTP调度高一个数量级;
对DNS服务器改动较小,易于开发实施,并可采用成熟的分布式DNS技术,减小了单点故障风险;
CDN调度服务器可安全地获取客户端地址,为后续精准调度提供了基础。
在本发明的实施例中,在步骤502中,所述DNS客户端按速度排列所述DNS服务器列表中的DNS服务器,并向速度最快的所述DNS服务器发送查询请求。从而实现DNS服务器对DNS客户端的快速响应。
在本发明的实施例中,在步骤501中,所述DNS管理服务器检查所述DNS客户端的软件版本,在判断DNS客户端合法后,向其返回DNS服务器列表以及CDN加速域名列表。以防止非法用户下载。
至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。