具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
域名(Domain Name)是由一串用“点”分隔的字符组成的互联网上特定一台计算机或计算机组的名称,例如:域名为www.ddd.com。在互联网中,互联网服务提供商(InternetService Provider,ISP)能够为域名匹配对应的IP地址,例如:域名为www.ddd.com对应的IP地址为:11.22.33.44。
域名成树状结构,从根域名到直接服务的DNS服务器(Domain Name Server,域名服务器)分为多个级别,例如:www.heli.edu.cn为域名,该域名分为4个级别,分别是主机名“www”,三级域名为“heli”,二级域名为“edu”,顶级域名为“cn”。
由于互联网设备之间的通讯大部分是基于TCP/IP协议(Transmission ControlProtocol/Internet Protocol,传输控制协议/因特网互联协议)完成通讯,然而,TCP/IP协议是基于IP地址完成双方的连接。因此,互联网设备在网络上进行通讯时,其只能够识别出如“196.168.31.21”之类的IP地址,却未能够识别出域名。并且,对于用户而言,其无法精确地记住10个以上IP地址的网站,因此,用户访问网站时,更多的是在浏览器的地址栏中输入域名完成期望内容页面的获取。在期望内容页面的获取过程中,DNS服务器能够将用户访问的域名“翻译”成对应的IP地址,然后再次从该IP地址调取期望内容页面。
DNS服务器是一种组织成域层次结构的计算机和网络服务命名系统,其用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。其中,根据功能类型区分,DNS服务器包括权威DNS与非权威DNS,权威DNS为自身数据库中存在与DNS请求相对应的映射,非权威DNS为不存在相对应的映射,而存在对应缓存查询结果。
请参阅图1,图1是本发明实施例提供一种传统域名解析的架构示意图。如图1所示,该架构10包括广东移动用户11、上海电信用户12、广东移动LDNS13(本地运营商域名服务,Local DNS)、上海电信LDNS14以及权威DNS15。
广东移动用户11可以使用移动终端向广东移动LDNS13发送域名解析请求,例如:该域名解析请求包括域名www.dd.com。
上海电信用户12可以使用移动终端向上海电信LDNS14发送域名解析请求,例如:该域名解析请求包括域名www.ff.com。
一般的,广东移动LDNS13和上海电信LDNS14皆缓存有对应的域名解析结果。当广东移动LDNS13或上海电信LDNS14接收到域名解析请求,其调取缓存记录,查询是否缓存有域名解析结果。若缓存,广东移动LDNS13或上海电信LDNS14直接向广东移动用户11或上海电信用户12返回该域名解析结果。若未缓存,其开始向权威DNS15发起DNS递归解析请求,以使权威DNS15查询到对应的域名解析结果,并且将向广东移动用户11或上海电信用户12返回该域名解析结果。
然而,传统域名解析流程存在一定的缺陷,举例而言:由于LDNS缓存有域名解析结果,其未向权威DNS发起DNS递归解析请求,若域名是通过http(s)协议或其它端口提供服务的,用户访问就会出现失败。例如:支付服务、游戏通过指定端口连接connect server服务等。并且,LDNS的运维水平参差不齐,时有出现缓存服务器故障导致用户访问异常的问题。再进一步的,当LDNS自身不进行域名递归解析,而是把域名解析请求转发到其它LDNS的递归DNS上时,其会导致权威DNS收到的域名解析请求的来源IP就成了其它LDNS的IP,最终导致用户流量被导向了错误的IDC,用户访问变慢。
基于LDNS域名解析的缺点,传统技术再次提出基于Http(s)协议构建新域名解析架构。Http(s)协议为安全超文本传输协议,其是一种面向安全信息通信的协议,并还可以和HTTP协议结合使用。请参阅图2,图2是本发明实施例提供另一种传统域名解析架构示意图。如图2所示,该传统域名解析架构20包括用户终端21与HTTP域名服务器22,其中,该Http(s)域名服务器22支持Http(s)协议的域名解析。
用户终端21向HTTP(S)域名服务器发起域名解析请求,其中,该用户终端21的IP地址为202.106.2.2。Http(s)域名服务器22根据该域名解析请求查找到域名对应的IP地址:4.3.2.2。
如前所述,采用Http(s)协议进行域名解析,其可以避免LocalDNS造成的域名劫持和跨网访问问题,解决移动互联网服务中域名解析异常带来的困扰,并且定位比较准确,解析比较正常。
然而,如前所述,Http(s)域名服务器返回给客户端的IP的节点未必是最优节点。在分布式服务中,集中调度是较为常见的调度方式,由于Http(s)域名服务器未能够得到全局的各个服务节点的运行状况与节点使用情况,单纯的集中调度造成域名的解析结果不够准确。
请一并参阅图3与图4,图3是本发明实施例提供一种域名解析系统的结构示意图,图4是本发明实施例提供一种域名解析方法的信令图。如图3所示,该系统30包括:客户端31、中心域名服务器32、邮件服务器33以及边缘节点34。客户端31可以通过有线方式或者无线方式分别与中心域名服务器32、邮件服务器33、边缘节点34以及邮件服务器35通讯。该有线方式的传输媒介可以为光纤、同轴电缆、电话线、网线等等,该无线方式可以为无线个人局域网(WPAN)、无线局域网(WLAN)以及蜂窝网络(Cellular Network),其中,无线个人局域网包括诸如:红外线通信(IRDA)、蓝牙(Bluetooth)、ZigBee,无线局域网包括诸如:802.11b标准、802.11a标准、802.11g标准,蜂窝网络包括诸如:GSM、CDMA、TD-SCDMA、WCDMA及CDMA2000。
在本实施例中,中心域名服务器32、邮件服务器33以及边缘节点34皆支持Http(s)域名的解析。
如图4所示,该域名解析方法包括:
步骤301、通讯时,客户端31向中心域名服务器32发送第一Http(s)域名解析请求。该第一Http(s)域名解析请求包括待解析域名。
步骤302、中心域名服务器32接收客户端发送的第一Http(S)域名解析请求,根据客户端的源IP地址或者参数中的IP地址,判断待解析域名的域名服务类型是否属于分布式类型。
步骤303、若待解析域名的域名服务类型属于非分布式类型,中心域名服务器32根据第一Http(s)域名解析请求向客户端31返回解析结果。
步骤304、客户端31根据该解析结果向对应的服务器发起应用内容请求。例如:客户端31向中心域名服务器32发起邮箱域名解析请求,中心域名服务器32解析出该邮箱域名解析请求属于非分布式类型,亦即,客户端31请求的邮件应用内容并非分布地存储在各类应用服务器内,而是存储在专有的邮件服务器33,于是,中心域名服务器32将解析结果发送给客户端31,以使客户端31根据该解析结果直接向邮件服务器33发起邮件应用内容。
步骤305、若待解析域名的域名服务类型属于分布式类型,中心域名服务器32根据第一Http(s)域名解析请求向客户端31返回跳转状态码与跳转URL(Uniform ResourceLocator)。
具体的,中心域名服务器32动态生成跳转URL,并向客户端31返回跳转状态码,以及将跳转URL填充到http(s)响应的Location字段,其中,该http(s)响应为中心域名服务器32响应于第一Http(s)域名解析请求的响应。
在本实施例中,该跳转URL指向服务于客户端31所在区域的边缘节点34,跳转状态码用于指示客户端31重新跳转至跳转URL指向的边缘节点34,该跳转状态码可以包括诸如302重定向的状态码等等。302重定向是指:对应当前请求的响应可以在另一个URI上被找到,而且客户端应当采用GET的方式访问那个资源。
步骤306、在待解析域名的域名服务类型属于分布式类型,并且客户端31接收到中心域名服务器32返回的http(s)响应时,客户端31根据跳转状态码向跳转URL所指向的边缘节点34发送第二Http(s)域名解析请求。
步骤307、边缘节点34根据该第二Http(s)域名解析请求解析出待解析域名对应的IP地址。
步骤308、边缘节点34向客户端31返回IP地址。
由于边缘节点34知悉各个内容服务节点的状态,解析结果更加准确,因此,其能够为客户端推荐最优的IP地址。
请参阅图3,边缘节点34包括边缘域名服务器341、应用服务器342以及调度服务器343。客户端31通过有线方式或无线方式分别与边缘域名服务器341和应用服务器342通讯,调度服务器343与应用服务器342通讯。
边缘域名服务器341能够为客户端提供一个进入网络的通道和与其它服务器通讯的功能。一般的,边缘域名服务器341是一组完成单一功能的服务器,例如:防火墙服务器,高速缓存服务器,负载均衡服务器等等。
在本实施例中,边缘域名服务器341位于边缘节点并能够提供基于Http(s)协议的域名解析功能的服务器。该边缘域名服务器341与调度服务器342通讯,通过推(Push)或者拉(Pull)方式获取IP地址,并将该IP地址以HTTP响应的方式返回给客户端31。
应用服务器342能够为客户端31提供应用内容服务的服务器。当应用服务器342接收到调度服务器342发送的资源查询请求时,应用服务器342根据该资源查询请求查询自身的资源使用情况,并向调度服务器343反馈该资源使用情况,例如:中央处理器(CentralProcessing Unit,CPU)、内存、带宽、连接数等等资源使用信息。
调度服务器343接收应用服务器342的资源使用情况的反馈,根据设定的调度规则,确定能够提供最优服务的应用服务器342的IP地址,并且动态地推荐给边缘域名服务器341,其中,推荐的方式可以是主动发送和/或被动发送。
在本实施例中,无论是边缘域名服务器341或应用服务器342或调度服务器343,其皆可以是一个物理服务器或者多个物理服务器虚拟而成的一个逻辑服务器,亦可以是多个可互联通信的服务器组成的服务器群,且与域名解析关联的各个功能模块可分别分布在服务器群中的各个服务器上。
下面,请参阅图5,图5是本发明实施例提供一种边缘节点的域名解析方法的信令图。如图5所示,该域名解析方法包括:
步骤501、当客户端31接收到中心域名服务器32返回的跳转状态码与跳转URL时,客户端31再次向边缘域名服务器341发送第二Http(s)域名解析请求。
步骤502、边缘域名服务器341根据第二Http(s)域名解析请求,触发调度服务器343。
步骤503、调度服务器343访问应用服务器342以获取应用服务器342的资源使用情况。
步骤504、各个应用服务器342将各自的资源使用情况反馈给调度服务器343。在该过程中,当该边缘节点34内的各个应用服务器342的资源不可用时,亦即:应用服务器342属于停用状态,调度服务器343将处于停用状态下的应用服务器342的状态反馈给边缘域名服务器341。于是,边缘域名服务器341根据第二Http(s)域名解析请求访问另外的预设边缘节点,直至访问到可向客户端31返回IP地址的预设边缘节点。其中,该另外的预设边缘节点与先前的预设边缘节点毗邻。
步骤505、当该边缘节点34内的各个应用服务器342的资源可用时,调度服务器343根据预设调度规则,确定能够提供最优服务的应用服务器342的IP地址。
步骤506、调度服务器343向边缘域名服务器341返回待解析域名对应的IP地址。
步骤507、边缘域名服务器341向客户端31返回待解析域名对应的IP地址。
步骤508、客户端31向IP地址所指向的应用服务器342发送内容服务请求。
步骤509、对应的应用服务器342根据该内容服务请求向客户端31返回对应的内容服务。
在本实施例中,边缘域名服务器341动态解析域名,并且接收调度服务器343反馈的最优IP地址,从而为客户端31推荐最优的IP地址。
基于同一发明构思,请参阅图6,本发明实施例还提供一种客户端。如图6所示,该客户端31包括至少一个处理器311以及与所述至少一个处理器311通信连接的存储器312;其中,所述存储器312存储有可被所述至少一个处理器311执行的指令,所述指令被所述至少一个处理器311执行,以使所述至少一个处理器311能够用于执行上述各个实施例所示的域名解析的控制逻辑。
在一些实施例中,边缘域名服务器341或中心域名服务器32可以采用如图6所示的硬件架构,以完成对应的域名解析的控制逻辑,在此不再赘述。
作为本发明实施例的另一方面,本发明实施例提供一种域名解析装置,应用于客户端。其中,该域名解析装置作为软件系统,其可以存储在图6所阐述客户端31内。该域名解析装置包括若干指令,该若干指令存储于存储器内,处理器可以访问该存储器,调用指令进行执行,以完成上述域名解析装置。
如图7所示,该域名解析装置40包括:第一发送模块41、第一接收模块42、第二发送模块43及第二接收模块44。
第一发送模块41用于向中心域名服务器发送第一Http(s)域名解析请求;
第一接收模块42用于在第一Http(s)域名解析请求的待解析域名属于分布式类型时,接收中心域名服务器返回的跳转状态码与跳转URL,跳转URL指向服务于客户端所在区域的边缘节点;
第二发送模块43用于根据跳转状态码向所述边缘节点发送第二Http(s)域名解析请求,以使边缘节点根据第二Http(s)域名解析请求解析出待解析域名对应的IP地址,并返回IP地址。
第二接收模块44用于接收边缘节点返回的IP地址。
由于边缘节点知悉各个内容服务节点的状态,解析结果更加准确,因此,其能够为客户端推荐最优的IP地址。
在一些实施例中,如图7所示,该域名解析装置40还包括:跳转模块45,跳转模块45用于在第一Http(s)域名解析请求的待解析域名属于非分布式类型时,根据中心域名服务器返回的Http(s)域名解析响应,跳转至对应的服务器。
在一些实施例中,如图7所示,该域名解析装置40还包括:第三发送模块46,第三发送模块46用于向所述IP地址指向的边缘节点发送内容服务请求。
在一些实施例中,跳转状态码为302重定向的状态码。
作为本发明实施例的又另一方面,本发明实施例提供一种域名解析装置,应用于边缘节点。其中,该域名解析装置作为软件系统,其可以存储在所阐述边缘域名服务器内。该域名解析装置包括若干指令,该若干指令存储于存储器内,处理器可以访问该存储器,调用指令进行执行,以完成上述域名解析装置。
如图8所示,该域名解析装置50包括:第三接收模块51与解析模块52。
第三接收模块51用于接收客户端发送的第二Http(s)域名解析请求;
解析模块52用于根据第二Http(s)域名解析请求解析出待解析域名对应的IP地址,并向客户端返回所述IP地址。
由于边缘节点知悉各个内容服务节点的状态,解析结果更加准确,因此,其能够为客户端推荐最优的IP地址。
在一些实施例中,边缘节点包括边缘域名服务器、调度服务器及应用服务器。该解析模块52用于:边缘域名服务器根据第二Http(s)域名解析请求触发调度服务器访问应用服务器;当应用服务器的资源使用情况属于可用状态时,调度服务器根据应用服务器的资源使用情况与预设调度规则,向边缘域名服务器返回待解析域名对应的IP地址;边缘域名服务器向客户端返回IP地址。
其中,调度服务器返回待解析域名对应的IP地址的方式包括主动发送和/或被动发送。
在一些实施例中,该解析模块52还用于:当应用服务器的资源使用情况属于停用状态时,边缘域名服务器根据第二Http(s)域名解析请求直至访问到可向客户端返回IP地址的另外预设边缘节点。
作为本发明实施例的又另一方面,本发明实施例提供一种域名解析装置,应用于中心域名服务器。其中,该域名解析装置作为软件系统,其可以存储在所阐述中心域名服务器内。该域名解析装置包括若干指令,该若干指令存储于存储器内,处理器可以访问该存储器,调用指令进行执行,以完成上述域名解析装置。
如图9所示,该域名解析装置60包括:第四接收模块61与第一返回模块62。
第四接收模块61用于接收客户端发送的第一Http(s)域名解析请求,第一Http(s)域名解析请求包括待解析域名。
第一返回模块62用于在第一Http(s)域名解析请求的待解析域名属于分布式类型时,向客户端返回跳转状态码与跳转URL,跳转URL指向服务于客户端所在区域的边缘节点。跳转状态码为302重定向的状态码。
由于边缘节点知悉各个内容服务节点的状态,解析结果更加准确,因此,其能够为客户端推荐最优的IP地址。
在一些实施例中,如图10所示,该域名解析装置60还包括第二返回模块63,第二返回模块63用于在第一Http(s)域名解析请求的待解析域名属于非分布式类型时,向客户端返回Http(s)域名解析响应,以使客户端跳转至对应的服务器。
由于装置实施例和上述各个实施例是基于同一构思,在内容不互相冲突的前提下,装置实施例的内容可以引用上述各个实施例的,在此不赘述。
作为本发明实施例的又另一方面,本发明实施例提供多种域名解析方法(请参阅下述各个实施例所述的域名解析方法)。本发明实施例的域名解析方法的功能除了借助上述图7或图8或图9与图10所述的域名解析装置的软件系统来执行,其亦可以借助硬件平台来执行。例如:域名解析方法可以在合适类型具有运算能力的处理器的电子设备中执行,例如:单片机、数字处理器(Digital Signal Processing,DSP)等等。
下述各个实施例的域名解析方法对应的功能是以指令的形式存储在客户端或边缘域名服务器或中心域名服务器的存储器上,当要执行下述各个实施例的域名解析方法对应的功能时,客户端或边缘域名服务器或中心域名服务器的处理器访问存储器,调取并执行对应的指令,以实现下述各个实施例的域名解析方法对应的功能。
存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如上述实施例中的域名解析装置40或域名解析装置50或域名解析装置60对应的程序指令/模块,或者下述实施例域名解析方法对应的步骤。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行域名解析装置40或域名解析装置50或域名解析装置60的各种功能应用以及数据处理,即实现上述实施例域名解析装置40或域名解析装置50或域名解析装置60的各个模块与单元的功能,或者下述实施例域名解析方法对应的步骤的功能。
存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任意方法实施例中的域名解析方法,例如,执行下述实施例描述的图11与图13或者图14与图15或者图16所示的各个步骤。
在第一方面,请参阅图11,图11是本发明实施例提供一种域名解析方法的流程示意图。如图11所示,该域名解析方法70包括:
步骤71、向中心域名服务器发送第一Http(s)域名解析请求,以使在第一Http(s)域名解析请求的待解析域名属于分布式类型时,中心域名服务器返回跳转状态码与跳转URL,跳转URL指向服务于客户端所在区域的边缘节点;
步骤72、根据跳转状态码向边缘节点发送第二Http(s)域名解析请求,以使边缘节点根据第二Http(s)域名解析请求解析出待解析域名对应的IP地址,并返回IP地址。
在步骤71中,跳转状态码可以为302重定向的状态码。
由于边缘节点知悉各个内容服务节点的状态,解析结果更加准确,因此,其能够为客户端推荐最优的IP地址。
在一些实施例中,如图12所示,该域名解析方法70还包括:
步骤73、在第一Http(s)域名解析请求的待解析域名属于非分布式类型时,根据中心域名服务器返回的Http(s)域名解析响应,跳转至对应的服务器。
在一些实施例中,如图13所示,该域名解析方法70还包括:
步骤74、向IP地址指向的边缘节点发送内容服务请求。
在第二方面,请参阅图14,图14是本发明又另一实施例提供一种域名解析方法的流程示意图。如图14所示,该域名解析方法80包括:
步骤81、接收客户端发送的第二Http(s)域名解析请求;
步骤82、根据第二Http(s)域名解析请求解析出待解析域名对应的IP地址,并向客户端返回所述IP地址。
由于边缘节点知悉各个内容服务节点的状态,解析结果更加准确,因此,其能够为客户端推荐最优的IP地址。
在一些实施例中,边缘节点包括边缘域名服务器、调度服务器及应用服务器。如图15所示,步骤82包括:
步骤821、边缘域名服务器根据第二Http(s)域名解析请求触发调度服务器访问应用服务器;
步骤822、判断应用服务器的资源使用情况是否属于可用状态;
步骤823、当应用服务器的资源使用情况属于可用状态时,调度服务器根据应用服务器的资源使用情况与预设调度规则,向边缘域名服务器返回待解析域名对应的IP地址;
步骤823、边缘域名服务器向客户端返回所述IP地址;
步骤824、当应用服务器的资源使用情况属于停用状态时,边缘域名服务器根据第二Http(s)域名解析请求直至访问到可向客户端返回所述IP地址的另外预设边缘节点。
在第三方面,请参阅图16,图16是本发明又另一实施例提供一种域名解析方法的流程示意图。如图16所示,该域名解析方法90包括:
步骤91、接收客户端发送的第一Http(s)域名解析请求,第一Http(s)域名解析请求包括待解析域名;
步骤92、判断待解析域名的域名服务类型是否属于分布式类型;
步骤93、若待解析域名的域名服务类型属于分布式类型,根据第一Http(s)域名解析请求向客户端返回跳转状态码与跳转URL,跳转URL指向服务于客户端所在区域的边缘节点;
其中,跳转状态码为302重定向的状态码。
步骤94、若待解析域名的域名服务类型属于非分布式类型,向客户端返回Http(s)域名解析响应,以使客户端跳转至对应的服务器。
由于边缘节点知悉各个内容服务节点的状态,解析结果更加准确,因此,其能够为客户端推荐最优的IP地址。
由于各个方法实施例和上述各个实施例是基于同一构思,在内容不互相冲突的前提下,各个方法实施例的内容可以引用上述各个实施例的,在此不赘述。
作为本发明实施例的又另一方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行如上任一项所述的域名解析方法。
由于边缘节点知悉各个内容服务节点的状态,解析结果更加准确,因此,其能够为客户端推荐最优的IP地址。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。