专利名称:一种在网络中选择服务器的方法
技术领域:
本发明涉及内容传送网络(CDN,Content Delivery Network)技术,尤其涉及一种在CDN中选择最优边缘服务器的方法。
背景技术:
内容传送网络是为了改善英特网(Internet)的服务质量(QoS,Qualityof Service)而发展起来的技术,如图1所示,它一般包括三类设备分布在网络边缘的边缘服务器,将内容传送到边缘服务器的中心内容分发设备,以及用户请求调度系统。其中用户请求调度系统是一类负载均衡设备,它的功能是当用户对内容的请求到达请求调度系统时,该设备在分布的边缘服务器之中选择一个最合适的,然后让该边缘服务器向用户提供内容。这样可以减轻源服务器的处理压力,同时减少了骨干网络的带宽消耗,减少了数据包经过骨干路由后由于多“跳”传输带来的丢包、延迟、失真等负面影响,大大改善了宽带网络上大量视音频、动画等多媒体内容的视听质量。上述这个“最合适的”的指标是多样化的,可能是边缘服务器负载最轻,网络拓扑上离用户最近,用户和该边缘服务器之间的网络带宽最大,与用户之间IP报文的传输时间最短等等。现有技术中用户请求调度系统对边缘服务器的选择方式主要有一、基于扩展的域名解析服务器(DNS)协议的方式。如图2所示,图中设备1为CDN系统的授权DNS服务器,处理所有指向CDN网络的DNS请求。该设备维护着一个域名与对应的边缘服务器IP的数据库表格,并且包含所有边缘服务器的运行状态、处理负载等信息。当用户在浏览器中输入一个包含域名的标准资源地址(URL)时,由于尚未确定最后向哪一台边缘服务器发起连接,所以首先通过DNS协议向DNS服务器发送域名,请求与该域名对应的边缘服务器的IP地址,DNS服务器收到该DNS请求解析后,根据掌握的所有边缘服务器的健康和负载消息选择一个健康并且负载轻的服务器的IP地址返还给用户浏览器,最后用户浏览器向这个IP发起连接。
本技术方案的缺点首先来源于DNS协议本身标准的DNS查询数据包中只包含要查询的域名,而不关注请求使用的协议和目标内容,比如文件路径、文件名、认证信息等,因此DNS服务器只能选择一个物理可用的边缘服务器,从应用层的角度看,它既不能保证该边缘服务器能提供用户所要求的业务,比如在图2中,DNS服务器很可能为用户对流媒体内容的请求选择IP地址为ip1的普通FTP服务器,也不能保证该边缘服务器上有需要的内容;其次,它没有考虑用户和服务器之间的网络连接状况,因此可能出现用户由离他很远的一台服务器来服务,服务质量没有改善。因此,这种选择方式只是对减轻服务器压力有益,对用户访问质量没有太大的改善。
二、静态的IP地址绑定方式。事先确定一个IP地址段和边缘服务器的对应关系,将所有的来自某个或某几个IP地址范围内的用户请求全部交由一个对应的边缘服务器进行处理。边缘服务器增加内容主动的“下拉(pull)”功能,即当用户向边缘服务器请求不存在的内容时,边缘服务器会自动地从源服务器下载内容到本地设备中缓存,在数据流缓存的同时为用户提供服务。
这种方式的缺点是同第一种方式类似,不能保证对应的边缘服务器有用户请求的内容;此外,由于绑定关系是固定的,如果网络规划不当,或某一区域的用户请求集中时,有可能导致某些边缘服务器过载而其它边缘服务器空闲的情况,对边缘服务器的要求也会更高。而且,网页制作者必须在URL里增加字段描述,指出当边缘服务器上没有内容时应该从哪个源URL去下拉内容,这也增加了对网页制作的限制。
三、动态选择的方式。用户调度系统收到用户请求后,让所有的边缘服务器通过网际控制报文协议(ICMP)报文确定与用户之间的网络关系,然后选择报文传递时间最短的一个边缘服务器,向用户提供服务。它可以实时获取边缘服务器和用户之间的网络连接状态,从而保证用户访问的带宽。
本技术方案只是在网络传送方面具有优势,但缺点是一方面加重边缘服务器的负担,另一方面如果边缘服务器数目太多,而用户接入的网络带宽太小时,可能导致不正确的结果,并对用户应用也会造成影响。而且,这种选择方法耗时长,要等到所有的边缘服务器都取得对用户的网络状况信息后,才能做决策。另外,它没有充分利用现有的网络拓扑,实际上,用户接入侧的网络拓扑的变化很小,而且一般用户只有一条网络接入,测量边缘服务器到用户之间的网络实际上并没有必要。
由上所述可知现有的技术方案在选择边缘服务器时,往往只针对了“最合适的”的指标中的一个指标而进行优化。一方面可能没有找到真正的“最合适的”边缘服务器,另一方面没有考虑现有网络的结构,也没有考虑到不同的业务对边缘服务器的选择策略应有所不同,所以效果并不理想。
发明内容
本发明的目的就是提供一种更合理的选择最优边缘服务器的方法,既能够很快地给出选择结果,又能保证很好的内容命中率,同时使边缘服务器之间的负载分配更为合理,而且不会增加用户侧的网络流量。
本发明的目的是这样实现的一种在网络中选择服务器的方法,其特征在于该方法包括以下步骤a1、用户请求调度系统收到用户端的请求,根据当前用户端的IP地址确定该用户端的接入服务器,并进一步确定对该接入服务器所采用的调度策略;a2、判断对该接入服务器采用的调度策略是否为静态策略,如果是,则根据静态配置选择最优的边缘服务器;否则,则先根据静态配置确定一组候选边缘服务器,然后动态检测该组边缘服务器中每个候选边缘服务器到该用户接入服务器之间的网络连接状况,根据检测结果选择最优的边缘服务器。
调度系统事先根据网络的分布情况确定对每个接入服务器所采用的调度策略。
所述的静态配置包括至少包括用户请求的内容名称、用户IP地址的用户信息;边缘服务器是否保存有用户请求的内容;边缘服务器是否能够提供用户需要的业务类型;边缘服务器是否正常运行;边缘服务器内部网口是否过载;系统是否使用中心存储服务器作为备用服务器。
所述的根据静态配置选择最优的边缘服务器包括b1、用户请求调度系统根据步骤a1中所述的接入服务器确定该接入服务器所绑定的一个边缘服务器和一个备用边缘服务器;b2、根据边缘服务器是否正常运行判断该边缘服务器是否过载,如果过载,则说明该边缘服务器的所有网口均过载,并执行步骤b4;否则,选择该边缘服务器为最优边缘服务器;b3、判断步骤b2中所述的边缘服务器的每个网口是否过载,如果不过载,则选择此网口对用户服务,并结束流程;否则,返回步骤b3,对下一个网口进行判断;b4、根据备用边缘服务器是否正常运行判断该备用边缘服务器是否过载,如果过载,则说明该备用边缘服务器的所有网口均过载,并报错或者选择中心存储服务器作为备用服务器来处理用户请求,并结束本流程,否则,选择该备用边缘服务器为最优边缘服务器;b5、依次判断步骤b4中所述的备用边缘服务器的每个网口是否过载,如果不过载,则选择此网口为用户提供服务,并结束流程,否则,返回步骤b5,对下一个网口进行判断。
调度系统事先根据网络的分布情况按就近原则为采用静态策略的接入服务器绑定一个边缘服务器和一个备用边缘服务器。
所述的根据静态配置确定一组候选边缘服务器包括以下步骤c1、用户请求调度系统根据步骤a1中所述的接入服务器确定该接入服务器所对应的一组边缘服务器和一组备用边缘服务器;c2、根据边缘服务器是否正常运行依次判断该组边缘服务器中的每个边缘服务器是否过载,如果过载,则将过载的边缘服务器从该组中删除,否则,将该边缘服务器保留;判断该组边缘服务器是否全部过载,如果是,则执行步骤c4,否则,对该组中余下的边缘服务器执行步骤c3;c3、依次判断步骤c2中所述余下的每个边缘服务器的每个网口是否过载,如果不过载,则选择此网口,并执行步骤c6;否则,返回步骤c3,对下一个网口进行判断;c4、根据备用边缘服务器是否正常运行依次判断该组备用边缘服务器中的每个备用边缘服务器是否过载,如果过载,则将过载的备用边缘服务器从该组中删除,否则,级将该备用边缘服务器保留;判断该组备用边缘服务器是否全部过载,如果是,则报错或者选择中心存储服务器作为备用服务器来处理用户请求,并结束本流程,否则,对该组中余下的备用边缘服务器执行步骤c5;c5、依次判断步骤c4中所述余下的每个备用边缘服务器的每个网口是否过载,如果不过载,则选择此网口,并执行步骤c6,否则,返回步骤c5,对下一个网口进行判断;c6、将当前组中余下的边缘服务器作为一个候选组;c7、判断步骤c6所述候选组中是否存在含有用户所请求的内容和业务类型的边缘服务器,如果存在,则将该候选组中所有含有用户所请求的内容和业务类型的边缘服务器作为一组候选边缘服务器,如果不存在,则将从所述候选组中选择一个负载最轻的边缘服务器作为最优边缘服务器对用户提供服务,或者选择中心存储服务器作为备用服务器来处理用户请求。
调度系统事先根据网络的分布情况按就近原则为采用动态策略的接入服务器指定一组边缘服务器和一组备用边缘服务器。
所述动态检测每个边缘服务器与所选用户接入服务器之间的连接状况,根据检测结果选择最优边缘服务器,包括以下步骤
c8、用户请求调度系统指示步骤c7中所述的候选边缘服务器组中的每个候选边缘服务器,分别检测该边缘服务器自身与上述的用户接入服务器之间的网络连接状况,根据连接状况的检测结果,选择与该用户接入服务器距离最短的边缘服务器作为最优的边缘服务器;c9、用户请求调度系统使用步骤c8中所选择的最优的边缘服务器和该边缘服务器已被选中的网口对用户端提供服务。
本发明中通过静态和动态相结合的调度方法选择最优边缘服务器,从而能快速准确地给出选择的结果;通过判断边缘服务器中是否有用户所请求的内容和业务类型以及边缘服务器是否过载来筛选边缘服务器,从而保证了很好的内容命中率,边缘服务器之间的负载分配也更为合理;在动态检测网络时,不是直接检测边缘服务器到用户端的网络连接,而是检测边缘服务器到用户所属接入服务器的连接,所以不会对用户应用造成影响,也不会增加用户侧的网络流量。
图1为CDN网络结构图;图2为利用DNS协议在CDN网络中选择最优边缘服务器的方案图;图3为选择最优边缘服务器的系统结构图;图4为选择最优边缘服务器的流程图。
具体实施例方式
下面结合附图和具体实施例来说明本发明的实施方法。
本发明的核心思想为用户请求调度系统结合了静态和动态两种选择策略,针对具体的用户确定相应的选择策略,如果是静态策略,则采用静态的IP地址绑定方式选择最优的边缘服务器;如果是动态策略,则采用先根据静态配置确定一组候选边缘服务器,然后动态检测该组边缘服务器到用户接入服务器之间连接状况的方式选择最优的边缘服务器。
图3为选择最优边缘服务器的系统结构图。其中,实线表示内容信息,虚线表示状态信息,点划线表示用户信息。如图3所示,其中内容管理器负责从内容提供端汇聚内容,经过智能优化分布拓扑后,把内容合理的分布到边缘服务器上,内容分布信息一方面输入系统数据库管理,一方面实时通知用户请求调度系统。边缘服务器、中心存储服务器接收内容的分布,接收用户请求调度系统转发的用户请求,并处理用户最终的内容请求。边缘服务器、中心存储服务器定时把自身运行的状况、设备负载、设备的业务能力等状态属性信息通知用户请求调度系统。
用户请求调度系统为本发明的核心,该调度系统从系统数据库获得系统运行的初始化信息,包括内容分布拓扑、所有中心/边缘设备初始状态属性。用户请求调度系统在运行过程中,从内容管理器获得实时内容信息,从边缘服务器获得设备运行信息。
内容管理器与内容提供端、数据库之间使用TCP协议通信,从而保证通信可靠性;用户请求调度系统与数据库之间使用标准数据库接口,与中心存储服务器/边缘存储器采用基于用户数据报协议(UDP)的专用协议,以提高效率;用户请求调度系统与用户之间使用标准超文本传输(HTTP)协议通信,以保证通用性。用户请求调度系统与用户之间也可通过其他的协议进行通讯。
用户对某项内容的请求输入信息主要有要访问的内容属性,如文件名、文件类型、服务提供商的标识;用户的身份信息,如IP。用户期望获得的是能够提供服务的边缘服务器的IP地址。用户请求调度系统从用户的输入信息中获取必要的请求参数,从CDN系统中其他设备获得内容分布和各边缘服务器的运行状态,从而确定最优的边缘服务器。用户请求调度系统在选择最优服务器(包括边缘服务器和中心存储服务器)时将考虑如下因素1、用户信息如请求的内容名称、内容属性、业务属性、用户IP;2、用户与边缘服务器明确绑定的静态策略以及先确定候选组,再从该候选组中选择最优边缘服务器的动态策略;
3、边缘服务器是否保存有用户请求的内容;4、边缘服务器是否能够提供用户需要的业务类型;5、服务器是否正常运行;6、服务器内部网口是否过载;7、用户与边缘服务器间的网络连接状况是否通畅;8、系统是否使用中心存储服务器作为备用服务器;上述判断因素可以灵活选配。
当前的网络IP地址一般是按照宽带网络接入服务器来分配。用户调度系统事先根据网络的分布情况按就近原则为每个接入服务器确定好对应的边缘服务器和备用边缘服务器,并事先规定好每个接入服务器所采用的调度策略,如果该接入服务器对应一个边缘服务器和一个备用边缘服务器,则采用静态策略;如果该接入服务器对应一组边缘服务器和一组备用边缘服务器,则采用动态策略。这里,所述的静态策略是指根据静态配置选择最优的边缘服务器;所述的动态策略是指先根据静态配置确定一组候选边缘服务器,然后动态检测该组边缘服务器中每个候选边缘服务器到该用户接入服务器之间的网络连接状况,根据检测结果选择最优的边缘服务器。
如图4所示,选择最优服务器大体分成两个步骤a1、用户请求调度系统根据当前用户的IP地址确定此用户的接入服务器,并进一步确定对该接入服务器所采用的调度策略;a2、如果采用的是静态策略,则根据静态配置选择最优的边缘服务器;如果采用的是动态策略,则先根据静态配置确定一组候选边缘服务器,然后动态检测该组边缘服务器中每个候选边缘服务器到该用户接入服务器之间的网络连接状况,根据检测结果选择最优的边缘服务器。
下面是本实施例中静态策略的具体步骤b1、用户请求调度系统根据步骤a1中所述的接入服务器确定该接入服务器所绑定的一个边缘服务器和一个备用边缘服务器,此处的一个边缘服务器和一个备用边缘服务器是用户调度系统事先根据网络的分布情况按就近原则为采用静态策略的接入服务器指定的;b2、根据边缘服务器是否正常运行判断该边缘服务器是否过载,如果过载,则执行步骤b4;否则,选择该边缘服务器为最优边缘服务器;b3、判断步骤b2中所述的边缘服务器的每个网口是否过载,如果不过载,则选择此网口对用户服务,并结束流程;否则,返回步骤b3,对下一个网口进行判断;b4、根据备用边缘服务器是否正常运行判断该备用边缘服务器是否过载,如果过载,则报错或者选择中心存储服务器作为备用服务器来处理用户请求,并结束本流程,否则,选择该备用边缘服务器为最优边缘服务器;b5、依次判断步骤b4中所述的备用边缘服务器的每个网口是否过载,如果不过载,则选择此网口为用户提供服务,并结束流程,否则,返回步骤b5,对下一个网口进行判断。
下面是本实施例中动态策略的具体步骤c1、用户请求调度系统根据步骤c1中所述的接入服务器确定该接入服务器所对应的一组边缘服务器和一组备用边缘服务器,此处的一组边缘服务器和一组备用边缘服务器是用户调度系统事先根据网络的分布情况按就近原则为采用动态策略的接入服务器指定的;c2、根据边缘服务器是否正常运行依次判断该组边缘服务器中的每个边缘服务器是否过载,如果过载,则将过载的边缘服务器从该组中删除,否则,将该边缘服务器保留;判断该组边缘服务器是否全部过载,如果是,则执行步骤c4,否则,对该组中余下的边缘服务器执行步骤c3;c3、依次判断步骤c2中所述余下的每个边缘服务器的每个网口是否过载,如果不过载,则选择此网口,并执行步骤c6;否则,返回步骤c3,对下一个网口进行判断;c4、根据备用边缘服务器是否正常运行依次判断该组备用边缘服务器中的每个备用边缘服务器是否过载,如果过载,则将过载的备用边缘服务器从该组中删除,否则,级将该备用边缘服务器保留;判断该组备用边缘服务器是否全部过载,如果是,则报错或者选择中心存储服务器作为备用服务器来处理用户请求,并结束本流程,否则,对该组中余下的备用边缘服务器执行步骤c5;c5、依次判断步骤c4中所述余下的每个备用边缘服务器的每个网口是否过载,如果不过载,则选择此网口,并执行步骤c6,否则,返回步骤c5,对下一个网口进行判断;c6、将当前组中余下的边缘服务器作为一个候选组;c7、判断步骤c6所述候选组中是否存在含有用户所请求的内容和业务类型的边缘服务器,如果存在,则将该候选组中所有含有用户所请求的内容和业务类型的边缘服务器作为一组候选边缘服务器,如果不存在,则将从所述候选组中选择一个负载最轻的边缘服务器作为最优边缘服务器对用户提供服务,或者选择中心存储服务器作为备用服务器来处理用户请求。
c8、用户请求调度系统指示步骤c7中所述的候选边缘服务器组中的每个候选边缘服务器,分别检测该边缘服务器自身与上述用户接入服务器之间的网络连接状况,例如,向接入服务器发送网间控制报文协议(ICMP)报文,检测回复时间,根据连接状况检测结果,选择与用户接入服务器距离最短的边缘服务器作为最优的边缘服务器;c9、用户请求调度系统使用步骤c8中所选择的最优的边缘服务器和该边缘服务器已被选中的网口对用户端提供服务。
上述实施例为实现本发明方案的一个比较完整的实施方式,在具体的选择过程中也可能增加或删除过程中的步骤而获得一个近似最优的服务器,比如不做动态检测,根据其它的方式获得网络拓扑(如事先输入)。此外,在选择时考虑的因素不仅限于本文所列的八个因素的范围。
权利要求
1.一种在网络中选择服务器的方法,其特征在于该方法包括以下步骤a1、用户请求调度系统收到用户端的请求,根据当前用户端的IP地址确定该用户端对应的接入服务器,并进一步确定对该接入服务器所采用的调度策略;a2、判断对该接入服务器采用的调度策略是否为静态策略,如果是,则根据静态配置选择最优的边缘服务器;否则,则先根据静态配置确定一组候选边缘服务器,然后动态检测该组边缘服务器中每个候选边缘服务器到该用户接入服务器之间的网络连接状况,根据检测结果选择最优的边缘服务器。
2.如权利要求1所述的方法,其特征在于,调度系统事先根据网络的分布情况确定对每个接入服务器所采用的调度策略。
3.如权利要求1所述的方法,其特征在于,所述的静态配置包括至少包括用户请求的内容名称、用户IP地址的用户信息;边缘服务器是否保存有用户请求的内容;边缘服务器是否能够提供用户需要的业务类型;边缘服务器是否正常运行;边缘服务器内部网口是否过载;系统是否使用中心存储服务器作为备用服务器。
4.如权利要求3所述的方法,其特征在于,所述的根据静态配置选择最优的边缘服务器包括b1、用户请求调度系统根据步骤a1中所述的接入服务器确定该接入服务器所绑定的一个边缘服务器和一个备用边缘服务器;b2、根据边缘服务器是否正常运行判断该边缘服务器是否过载,如果过载,则执行步骤b4;否则,选择该边缘服务器为最优边缘服务器;b3、判断步骤b2中所述的边缘服务器的每个网口是否过载,如果不过载,则选择此网口对用户服务,并结束流程;否则,返回步骤b3,对下一个网口进行判断;b4、根据备用边缘服务器是否正常运行判断该备用边缘服务器是否过载,如果过载,则报错或者选择中心存储服务器为用户提供服务,并结束本流程,否则,选择该备用边缘服务器为最优边缘服务器;b5、依次判断步骤b4中所述的备用边缘服务器的每个网口是否过载,如果不过载,则选择此网口为用户提供服务,并结束流程,否则,返回步骤b5,对下一个网口进行判断。
5.如权利要求4所述的方法,其特征在于,调度系统事先根据网络的分布情况按就近原则为采用静态策略的接入服务器绑定一个边缘服务器和一个备用边缘服务器。
6.如权利要求3所述的方法,其特征在于,所述的根据静态配置确定一组候选边缘服务器包括以下步骤c1、用户请求调度系统根据步骤a1中所述的接入服务器确定该接入服务器所对应的一组边缘服务器和一组备用边缘服务器;c2、根据边缘服务器是否正常运行依次判断该组边缘服务器中的每个边缘服务器是否过载,如果过载,则将过载的边缘服务器从该组中删除,否则,将该边缘服务器保留;判断该组边缘服务器是否全部过载,如果是,则执行步骤c4,否则,对该组中余下的边缘服务器执行步骤c3;c3、依次判断步骤c2中所述余下的每个边缘服务器的每个网口是否过载,如果不过载,则选择此网口,并执行步骤c6;否则,返回步骤c3,对下一个网口进行判断;c4、根据备用边缘服务器是否正常运行依次判断该组备用边缘服务器中的每个备用边缘服务器是否过载,如果过载,则将过载的备用边缘服务器从该组中删除,否则,将该备用边缘服务器保留;判断该组备用边缘服务器是否全部过载,如果是,则报错或者选择中心存储服务器为用户提供服务,并结束本流程,否则,对该组中余下的备用边缘服务器执行步骤c5;c5、依次判断步骤c4中所述余下的每个备用边缘服务器的每个网口是否过载,如果不过载,则选择此网口,并执行步骤c6,否则,返回步骤c5,对下一个网口进行判断;c6、将当前组中余下的边缘服务器作为一个候选组;c7、判断步骤c6所述候选组中是否存在含有用户所请求的内容和业务类型的边缘服务器,如果存在,则将该候选组中所有含有用户所请求的内容和业务类型的边缘服务器作为一组候选边缘服务器,如果不存在,则将从所述候选组中选择一个负载最轻的边缘服务器作为最优边缘服务器对用户提供服务,或者选择中心存储服务器作为备用服务器来处理用户请求。
7.如权利要求6所述的方法,其特征在于,调度系统事先根据网络的分布情况按就近原则为采用动态策略的接入服务器指定一组边缘服务器和一组备用边缘服务器。
8.如权利要求6所述的方法,其特征在于,所述动态检测每个边缘服务器与所选用户接入服务器之间的连接状况,根据检测结果选择最优边缘服务器,包括以下步骤c8、用户请求调度系统指示步骤c7中所述的候选边缘服务器组中的每个候选边缘服务器,分别检测该边缘服务器自身与上述用户接入服务器之间的网络连接状况,根据连接状况的检测结果,选择与该用户接入服务器距离最短的边缘服务器作为最优的边缘服务器;c9、用户请求调度系统使用步骤c8中所选择的最优的边缘服务器和该边缘服务器已被选中的网口对用户端提供服务。
全文摘要
本发明公开了一种在网络中选择服务器的方法,该方法根据用户信息确定选择策略,如果是静态策略,则通过判断边缘服务器是否过载来选择最优的边缘服务器;如果是动态策略,则先通过判断边缘服务器是否过载以及边缘服务器中是否有用户所请求的内容和业务类型来筛选确定一组候选边缘服务器,然后动态检测该组边缘服务器到用户接入服务器之间连接状况,从而选择最优的边缘服务器。本方法不但能快速准确地给出选择的结果,而且保证了很好的内容命中率,服务器之间的负载分配也更为合理,既不会对用户应用造成影响,也不会增加用户侧的网络流量。
文档编号H04L12/24GK1585357SQ0315366
公开日2005年2月23日 申请日期2003年8月19日 优先权日2003年8月19日
发明者杜朝晖, 张正勇, 杨锦春, 刘全生 申请人:华为技术有限公司