Cdn节点分配服务器及系统的制作方法
【专利摘要】本发明提供了一种CDN节点分配服务器及系统。所述CDN节点分配服务器包括:请求解析模块,用于接收客户端的服务请求并从中解析出来源IP地址;ISP查询模块,用于查询所述来源IP地址所归属的ISP;位置查询模块,用于查询所述来源IP地址所归属地域;节点分配模块,用于根据查询到的归属ISP以及归属地域,按照预设规则选择与所述客户端匹配的CDN节点并将被选CDN节点IP地址下发至客户端。因此相比于现有技术,通过本发明,可以为用户分配更合适的CDN节点。
【专利说明】CDN节点分配服务器及系统
【技术领域】
[0001]本发明涉及网络通信【技术领域】,尤其涉及一种⑶N节点分配服务器及包括该⑶N节点分配服务器的CDN节点分配系统。
【背景技术】
[0002]⑶N技术是指在网络各处放置节点服务器,从而在现有的互联网基础之上形成一层智能虚拟网络架构。通过⑶N技术,可以将网站的内容发布至最接近用户的网络“边缘”,使用户可以就近取得所需的内容,从而可以提高用户访问网站的响应速度,提升用户体验。传统的CDN技术中,节点服务器的分配方案主要通过动态DNS技术实现。
[0003]DNS (Domain Name Service,域名服务)技术是指将互联网域名转换成IP地址的技术,其通过建立域名和IP地址相互映射的分布式数据库,使用户能够方便的通过域名访问互联网。其基本流程通常如图1中所示,客户端向本地DNS服务器发送请求解析目标域名的请求,如果本地DNS服务器无法直接解析目标域名,会通过根DNS服务器查询能够解析上述目标域名的主DNS服务器,该主DNS服务器一般是网站自建的DNS服务器或者域名托管商的DNS服务器;然后本地DNS服务器直接连接查询到的主DNS服务器对目标域名进行解析,并将得到的解析结果返回至用户客户端。
[0004]在动态DNS技术中,其假设用户客户端与其使用的本地DNS服务器在同一区域,并根据已知的IP地域信息构造包括IP地址与所归属地域之间的对应关系表。在进行CDN节点分配时,通过查询所述本地DNS服务器的IP地址归属地域,从而为用户客户端下发该地域内的距离用户客户端最近的⑶N节点的IP地址。
[0005]由于动态DNS技术是基于用户客户端使用的本地DNS服务器IP地址实现的,然而在实际使用中可以发现,有相当一部分用户由于各种各样的原因,并没有直接使用本地DNS服务器,因此依然使用本地DNS服务器的IP地址来推测用户客户端所归属地域就不正确了。这样,就会导致分配的CDN节点地址可能并不与用户客户端匹配。
【发明内容】
[0006]本发明的目的在于针对【背景技术】中的部分问题或者全部问题,提供一种CDN节点分配服务器及包括该CDN节点分配服务器的CDN节点分配系统。
[0007]具体的,所述⑶N节点分配服务器,包括:
[0008]请求解析模块,用于接收客户端的服务请求并从中解析出来源IP地址;
[0009]ISP查询模块,用于查询所述来源IP地址所归属的ISP ;
[0010]位置查询模块,用于查询所述来源IP地址所归属地域;
[0011]节点分配模块,用于根据查询到的归属ISP以及归属地域,按照预设规则选择与所述客户端匹配的⑶N节点并将被选⑶N节点IP地址下发至客户端。
[0012]所述⑶N节点分配系统,包括若干组上述的⑶N节点分配服务器;所述⑶N节点分配服务器与所述客户端以及CDN节点通信连接。[0013]由以上技术方案可见,本发明所提供的⑶N节点分配服务器中,通过从客户端的服务请求中解析来源IP地址,并查询来源IP地址所归属的ISP以及所归属地域,最后根据查询到的归属ISP以及归属地域,为客户端分配匹配的CDN节点。因此相比于现有技术,通过本发明,可以为用户分配更合适的CDN节点。
【专利附图】
【附图说明】
[0014]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1是现有技术中DNS技术的基本流程示意图;
[0016]图2是本发明一种实施方式中CDN节点分配服务器的模块示意图;
[0017]图3是本发明一种实施方式中通过自治域信息查询获取第一数据文件的方法示意图;
[0018]图4是本发明一种实施方式中获取第二数据文件的方法示意图;
[0019]图5是本发明一种实施方式中CDN节点分配服务器的输出结果示意图;
[0020]图6是本发明所提供的CDN节点分配系统架构示意图。
【具体实施方式】
[0021]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]视频网站的兴起对CDN技术提出了更高的要求,这是因为视频比传统的网页拥有大得多的数据量,而且需要更高的传输速度、流畅性以及承载能力。视频网站播放的视频主要有点播类视频和直播类视频;而直播类视频又分为广播式视频直播(例如体育比赛直播)和交互式视频直播(例如视频社交)。其中,直播类视频对视频播放的实时性要求比普通点播类视频要高得多,而直播类视频中交互式视频直播对数据延迟要求比广播式视频直播要高得多。因此,本实施例中以对CDN技术要求最高的交互式视频直播网站为例对本发明所提供的CDN节点分配服务器加以详细的说明。
[0023]本实施例中首先提供了一种CDN节点分配服务器,如图2中所示,该CDN节点分配服务器至少包括CPU、内存以及非易失性存储器,所述内存中运行有请求解析模块、ISP查询模块、位置查询模块以及节点分配模块;虽然本实施例中所述请求解析模块、ISP查询模块、位置查询模块以及节点分配模块为软件模块,但是容易理解的是,其也可以为实现具体功能的硬件模块,在此不做特殊限定。所述CDN节点分配服务器中:
[0024]请求解析模块主要用于接收用户客户端的服务请求并从中解析出来源IP地址。例如:
[0025]用户客户端可以通过动态DNS技术访问到最近的⑶N节点分配服务器,即用户客户端在通过域名访问视频社交网站时,如果本地DNS服务器无法直接解析该视频社交网站域名,则会通过根DNS服务器查询能够解析该视频社交网站域名的主DNS服务器;然后本地DNS服务器直接连接查询到的主DNS服务器对该视频社交网站域名进行解析,所述主DNS服务器通过查询所述本地DNS服务器的IP地址所在的地域,从而将该地域内距离所述本地DNS服务器最近的⑶N节点分配服务器IP地址下发至该本地DNS服务器,所述本地DNS服务器将接收到的CDN节点分配服务器IP地址下发至用户客户端。由于动态DNS技术存在【背景技术】中所述的缺陷,用户实际连接的CDN节点分配服务器并不一定是距离最近的,但无论连到哪里并不影响本发明的技术效果。CDN节点分配服务器中的请求解析模块在接收到客户端的服务请求时,从中解析出服务请求的来源IP地址,即用户客户端的真实地址。
[0026]ISP查询模块主要用于查询所述来源IP地址所归属的ISP (Internet ServicePixwider,互联网服务提供商)。例如,在所述非易失存储器中预存储有包含IP地址与ISP对应关系的第一数据文件;所述ISP查询模块可以从所述第一数据文件中查询所述来源IP地址所归属的ISP。所述第一数据文件可以通过多种途径获取,例如,可以通过ISP自治域信息查询获取所述第一数据文件或者由所述ISP提供所述第一数据文件。其具体过程可以如下:
[0027]ISP自治域信息查询。现有技术中,互联网的IP地址以AS自治域的方式分配给ISP进行管理,自治域是指在一个或多个实体管辖下的所有IP网络和路由器的全体,它们对互联网执行共同的路由策略,自治域之间的关系是互联网路由协议的基础。因此,可以连接互联网上公开的路由器,通过查询路由信息的方式,获取指定自治域的所有IP地址段,图3中演示了通过连接到route-server.1p.att.net发布查询命令获取AS4134中IP地址段的方法,AS4134是中国电信公司的一个自治域。图3最下面列表中的Destination—列即为AS4134的IP地址段列表。
[0028]由所述ISP提供,即通过与中小运营商合作得到其IP地址列表。某些小的、区域性的电信运营商,没有自己独立的自治域,但他们同时有提高用户体验的需求。因此,在实际操作中,可以通过与中小运营商合作,得到中小运营商的IP地址列表,并进行针对性优化。
[0029]此外,由于在本实施例中,由ISP合作方提供的IP地址与ISP对应关系可以认为具有最高的正确性;而通过自治域信息查询获取的IP地址与ISP对应关系中,由于有小运营商租用IP地址的现象存在,因此可以认为具有次高的正确性。所以,可以为通过不同方式获取的IP地址与ISP对应关系标注不同的优先级,从而可以在后续CDN节点分配时,根据标注的优先级选择相应途径获取的IP地址与ISP对应关系;例如,可以将由ISP合作方提供的IP地址与ISP对应关系的标注为优选,将通过自治域信息查询获取的IP地址与ISP对应关系标注为备选。
[0030]最后,将得到的IP地址与ISP之间的对应关系表存储为ISPWry.dat,即上述第一数据文件。
[0031]位置查询模块主要用于查询所述来源IP地址所归属地域。例如,在所述非易失存储器中预存储有包含IP地址与地域之间对应关系的第二数据文件;所述位置查询模块从所述第二数据文件中查询所述来源IP地址所归属地域。所述第二数据文件可以通过搜集互联网上现有的IP地址与其所归属地域对应关系信息获取;比如:
[0032]QQffry.Dat是互联网上出现的一种开放式数据格式,其功能是存储IP地址与该IP地址描述信息之间的对应关系,其数据结构可参考以下网址http://lumaqq.linuxsir.org/articIe/qqwry_format_detai1.html。互联网上存在多个利用此格式存储IP地址相关数据的网站或者软件,其地域信息库由民间自发维护的,具有相当高的准确性。如图4中所示,为使用cz88.net网站版本进行的IP归属地域查询信息。
[0033]节点分配模块主要用于根据查询到的归属ISP以及归属地域,按照预设规则选择与所述客户端匹配的CDN节点并将被选CDN节点IP地址下发至客户端。例如,所述预设规则包括:优先根据查询到的归属ISP选择与所述客户端匹配的CDN节点;次优先根据查询到的归属地域选择与所述客户端匹配的CDN节点。而其中优先根据查询到的归属ISP选择与所述客户端匹配的CDN节点又包括:优先根据通过ISP提供的IP地址得到的来源IP归属ISP信息选择与客户端匹配的CDN节点;次优先根据通过ISP自治域信息查询获取的IP地址与ISP的对应关系得到的归属ISP信息选择与所述客户端匹配的⑶N节点。
[0034]如上所述,在本实施例中,由ISP合作方提供的IP地址与ISP对应关系可以认为有完全的正确性,在进行CDN节点分配时最优先考虑;通过自治域信息查询获取的IP地址与ISP对应关系中,由于有小运营商租用IP地址的现象存在,因此也可以认为具有完全的正确性,在进行CDN节点分配时次优先考虑;即当通过自治域信息查询到的数据与ISP合作方提供的数据重合时,优先考虑ISP合作方提供的数据。而通过QQWry.dat获取的用户地域信息,根据经验判断其具有较高的可信度,当没有ISP合作方提供的数据以及通过自治域信息查询到的数据时,优先考虑通过QQWry.dat获取的用户地域信息。因此,根据来源IP地址归属的归属ISP以及归属地域分配⑶N节点时,优先使用ISP信息,一方面由于其数据可信度更高,另一方面是由互联网结构决定,不同地域的同一运营商网络(比如广东电信与广西电信),比同一地域的不同运营商(比如广东电信与广东联通),具有更好的网络联通性。
[0035]此外,所述节点分配模块还用于,通过SNMP (Simple Network ManagementProtocol,简单网络管理协议)协议或者其他方式,实时动态监测各CDN节点的存活状态、连接数、带宽占用以及CPU占用等信息。在根据来源IP地址归属的归属ISP以及归属地域选取到多个CDN节点时,根据上述存活状态、连接数、带宽占用以及CPU占用等信息选择合适的首选CDN节点以及备选CDN节点。如图5中所示,为所述CDN节点分配服务器最终输出的信息:
[0036]其中,<ip> 一段为用户客户端的来源IP地址;〈ratchip> —段是为用户客户端分配的观看视频流首选⑶N服务器IP地址;〈m0reWatchip> —段为根据备份规则生成的观看视频流备选⑶N服务器IP地址,当首选的watchip不可用时依次尝试此列表中服务器;〈uploadip〉一段为根据用户来源地址分配的视频发布⑶N服务器IP地址,当用户发布直播视频流时使用。
[0037]进一步的,本实施例中还提供了一种⑶N节点分配系统,如图6中所示,该⑶N节点分配系统包括若干组上述的CDN节点分配服务器;所述CDN节点分配服务器与所述客户端以及CDN节点通信连接。每一组中的CDN节点分配服务器通过保护机制保活。例如,当两个所述CDN节点分配服务器为一组时,每一组中的CDN节点分配服务器之间可以通过心跳守护进程(Heartbeat)关联,两台服务器同时只活跃一台,而活跃服务器定期向另外一台服务器发送心跳数据包,当此活跃服务器宕机或者是心跳守护进程监测到服务状态异常时,停止发送心跳数据包,则另外一台服务器自动将自己升级成活跃服务器,并开始向外发送心跳数据包。因此,每一组中的任意一台CDN节点分配服务器因为各种原因宕机时,另外一台CDN节点分配服务器会实时切换成活跃状态,从而可以保证高可靠性。
[0038]当两个或两个以上所述CDN节点分配服务器(CDN节点分配服务器的数量可以根据需要无限扩展)为一组时,每一组中的⑶N节点分配服务器均连接至LVS(Linux VirtualServer, Linux虚拟服务器),LVS服务器根据轮询或者其他负载分流规则,将所有外部请求分配到下面的所有CDN节点分配服务器中,并同时监测所有CDN节点分配服务器的服务存活状态以及负载,当某台CDN节点分配服务器的服务存活状态为不可用时,LVS服务器会将其自动从分配策略列表中移除,并且将外部请求分配到其他CDN节点分配服务器上,从而可以保证高可靠性。
[0039]进一步的,所述LVS可以包括主用LVS和备用LVS ;主用LVS和备用LVS之间通过心跳守护进程关联,同一时间,只有主用LVS处于活跃状态。主用LVS定期向备用LVS发送心跳数据包,当主用LVS宕机或者是心跳守护进程监测到服务状态异常时,停止发送心跳数据包,则备用LVS自动将自己升级成主用LVS,并开始向外发送心跳数据包。因此,每一组中的任意一台LVS因为各种原因宕机时,另外一台LVS会实时切换成活跃状态,从而可以在最大程度上保证高可靠性。
[0040]综上所述,本实施例所提供的CDN节点分配服务器中,通过从客户端的服务请求中解析来源IP地址,并查询来源IP地址所归属的ISP以及所归属地域,最后根据查询到的归属ISP以及归属地域,为客户端分配匹配的CDN节点。因此相比于现有技术,准确性更高,从而可以为用户分配更合适的CDN节点。并且,由于所有的逻辑实现均在上述CDN节点分配服务器本地,因此服务性能非常高,实测单台CDN节点分配服务器每秒可以处理超过10万次查询请求。综上所述,本发明所提供的CDN节点分配服务器具有很高的准确度和灵活性,并且在高效性以及高可用性方面均达到了很高的标准。
[0041]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种⑶N节点分配服务器,其特征在于,包括: 请求解析模块,用于接收客户端的服务请求并从中解析出来源IP地址; ISP查询模块,用于查询所述来源IP地址所归属的ISP ; 位置查询模块,用于查询所述来源IP地址所归属地域; 节点分配模块,用于根据查询到的归属ISP以及归属地域,按照预设规则选择与客户端匹配的⑶N节点并将被选⑶N节点IP地址下发至客户端。
2.根据权利要求1所述的CDN节点分配服务器,其特征在于,所述CDN节点分配服务器中预存储有包含IP地址与ISP对应关系的第一数据文件;所述ISP查询模块从所述第一数据文件中查询所述来源IP地址所归属的ISP。
3.根据权利要求1所述的CDN节点分配服务器,其特征在于,所述CDN节点分配服务器中预存储有包含IP地址与地域对应关系的第二数据文件;所述位置查询模块从所述第二数据文件中查询所述来源IP地址所归属地域。
4.根据权利要求1-3任意一项所述的CDN节点分配服务器,其特征在于,所述预设规则包括: 优先根据查询到的归属ISP选择与所述客户端匹配的CDN节点; 次优先根据查询到的归属地域选择与所述客户端匹配的CDN节点。
5.根据权利要求4所述的CDN节点分配服务器,其特征在于,所述第一数据文件通过ISP自治域信息查询获取或者由所述ISP提供。
6.根据权利要求5所述的CDN节点分配服务器,其特征在于,优先根据查询到的归属ISP选择与所述客户端匹配的⑶N节点包括: 优先根据查询ISP提供的第一数据文件得到的来源IP归属ISP信息选择与客户端匹配的CDN节点; 次优先根据查询通过ISP自治域信息查询获取的第一数据文件得到的归属ISP信息选择与所述客户端匹配的CDN节点。
7.根据权利要求1-3或5-6任意一项所述的CDN节点分配服务器,其特征在于,所述节点分配模块还用于,实时监测各⑶N节点的存活状态、连接数、带宽占用以及CPU占用信息。
8.—种⑶N节点分配系统,其特征在于,包括若干组根据权利要求1-5任意一项所述CDN节点分配服务器;所述CDN节点分配服务器与所述客户端以及CDN节点通信连接。
9.根据权利要求8所述的CDN节点分配系统,其特征在于,两个所述CDN节点分配服务器为一组;每一组中的⑶N节点分配服务器之间通过心跳守护进程关联。
10.根据权利要求8所述的CDN节点分配系统,其特征在于,至少两个所述CDN节点分配服务器为一组;每一组中的⑶N节点分配服务器均连接至LVS ;所述LVS包括通过心跳守护进程关联的主用LVS和备用LVS。
【文档编号】H04L29/12GK103825975SQ201410067447
【公开日】2014年5月28日 申请日期:2014年2月26日 优先权日:2014年2月26日
【发明者】李亦峰, 马宇翔 申请人:北京太阳庄科技有限公司