域名解析方法及装置、数据传输方法及装置与流程

文档序号:11843522阅读:201来源:国知局
域名解析方法及装置、数据传输方法及装置与流程

本申请涉及通信技术领域,尤其涉及一种域名解析方法及装置、数据传输方法及装置。



背景技术:

在计算机网络结构中,域名与IP地址存在对应关系,由域名系统(Domain Name System,简称为DNS)实现域名到IP地址的解析。

为了提高不同地理位置的资源访问速度,常会使用内容分发网络(Content Delivery Network,简称为CDN)技术,即分布式的服务器设计,位于各地的服务器对外提供相同的服务。此时,每个服务器都有自己的IP地址。当用户访问某一网址时,DNS服务器会根据客户端IP地址(即来源IP)和欲访问的域名等信息,返回对应的服务器IP地址(即目的IP)。

理想情况下,DNS服务器的返回结果应该是最适合用户的服务器IP地址,例如,地理位置较近的服务器的IP地址或者网段类似的服务器的IP地址)。但在实际应用中,上述返回结果并不能令人满意,主要原因如下:

1、用户被动获取DNS结果

DNS服务器不能及时知晓目标服务器的状态,当目标服务器不能正常服务或服务效率较低时,DNS服务器仍会对外提供该目标服务器的地址,导致客户端使用受阻。

DNS服务器本身的判断逻辑有瑕疵。DNS服务器的判断依据是客户端IP地址等信息,而不是用户直接所处的真实网络环境,这样判断出来的结果可能和实际网络环境有出入。

2、网络环境变化,本地未主动管理DNS结果

DNS服务器解析的结果会被客户端缓存,当客户端网络环境发生变化(如设备 移动、网络切换)时,系统已缓存的解析结果不再适合最新的网络环境。在当前大多的软件设计中,不存在自动感知网络情况、刷新DNS解析结果的逻辑,从而无法获得较为理想的解析结果。

本地通过Hosts文件管理的域名与IP地址的映射信息,缓存时间不可控,刷新不及时。



技术实现要素:

本申请实施例提供了一种域名解析方法及装置、数据传输方法及装置,以至少解决依赖于远端DNS服务器进行域名解析,无法获得理想的解析结果的问题。

本申请实施例提供了一种域名解析方法,包括:代理服务器拦截客户端发出的网络请求,其中,所述代理服务器设置在所述客户端的网络出口;所述代理服务器从所述网络请求中获取目标域名,并通过域名解析得到所述目标域名对应的IP地址。

本申请实施例还提供了一种域名解析装置,所述域名解析装置设置在客户端的网络出口,所述域名解析装置包括:拦截单元,用于拦截所述客户端发出的网络请求;获取单元,用于从所述网络请求中获取目标域名;域名解析单元,用于通过域名解析得到所述目标域名对应的IP地址。

本申请实施例提供了一种数据传输方法,包括:代理服务器拦截客户端发出的网络请求,其中,所述代理服务器设置在所述客户端的网络出口;所述代理服务器从所述网络请求中获取目标域名,并通过域名解析得到所述目标域名对应的IP地址;所述代理服务器与所述IP地址对应的目标服务器建立连接,并将所述网络请求转发给所述目标服务器;所述代理服务器接收所述目标服务器返回的数据,并把所述数据发送给所述客户端。

本申请实施例还提供了一种数据传输装置,所述数据传输装置设置在客户端的网络出口,所述数据传输装置包括:拦截单元,用于拦截所述客户端发出的网络请求;获取单元,用于从所述网络请求中获取目标域名;域名解析单元,用于通过域名解析得到所述目标域名对应的IP地址;连接建立单元,用于与所述IP地址对应的目标服务器建立连接,并将所述网络请求转发给所述目标服务器;数据传输单元,用于接收所述目标服务器返回的数据,并把所述数据发送给所述客户端。

通过本申请的域名解析方法及装置、数据传输方法及装置,域名解析是由设置在 客户端网络出口的代理服务器完成的,即本地管理域名解析结果,而不是依赖于DNS服务器,避开了被动接受远端DNS服务器解析结果的传统流程,从而解决了DNS服务器解析结果不合适的问题。另外,代理服务器主动与目标服务器建立连接,由被动依赖变为了主动管理,在与较合适的目标服务器连接的基础上实现数据传输。

当然实施本申请的任一产品或者方法必不一定需要同时达到以上所述的所有优点。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的限定。在附图中:

图1是本申请实施例的域名解析方法的流程图;

图2是本申请实施例的更新操作的流程图;

图3是本申请一实施例的域名解析装置的结构框图;

图4是本申请另一实施例的域名解析装置的结构图;

图5是本申请又一实施例的域名解析装置的结构框图;

图6是本申请实施例的数据传输方法的流程图;

图7是本申请实施例的数据传输装置的结构示意图;

图8是本申请一实施例的数据传输装置的结构框图;

图9是本申请另一实施例的数据传输装置的结构框图;

图10是本申请又一实施例的数据传输装置的结构框图。

具体实施方式

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

本申请实施例提供了一种域名解析方法,图1是本申请实施例的域名解析方法的流程图。如图1所示,该方法包括如下的步骤S101至步骤S102。

步骤S101,代理服务器拦截客户端发出的网络请求,其中,代理服务器设置在 客户端的网络出口。网络请求可以是http请求,也可以是https请求。

步骤S102,代理服务器从网络请求中获取目标域名,并通过域名解析得到目标域名对应的IP地址。代理服务器接收到网络请求后,解析请求头,获取其中的host参数值,即目标域名。

通过图1所示的流程,域名解析是由设置在客户端网络出口的代理服务器完成的,即本地管理域名解析结果,而不是依赖于DNS服务器,避开了被动接受远端DNS服务器解析结果的传统流程,从而解决了DNS服务器解析结果不合适的问题。

上述代理服务器存储有域名解析信息,域名解析信息包括:域名、域名对应的所有IP地址以及域名对应的最佳IP地址。其中,域名最初可以由开发者指定,或是动态由服务器推送更新。域名解析信息的存储形式可以有多种,需保证域名与IP地址的对应关系。例如,可以列表的形式存储域名解析信息,包括:域名列表、每个域名对应的IP地址列表以及域名与IP地址的最佳映射列表。本领域技术人员可以通过现有技术实现具体的存储形式以及对应关系,此处不再赘述。

在一个实施例中,步骤S102中代理服务器通过域名解析得到目标域名对应的IP地址可以包括:代理服务器判断目标域名是否在域名解析信息中;如果是,代理服务器从域名解析信息中获取目标域名对应的最佳IP地址;如果否,代理服务器向客户端的DNS模块发送目标域名,由DNS模块进行域名解析,代理服务器接收DNS模块返回的目标域名对应的IP地址。

本实施例中,如果本地代理服务器能够实现目标域名的解析,则由本地代理服务器进行域名解析,解析结果是目标域名对应的最佳IP地址,即由本地代理服务器解析得到的解析结果比较理想;如果本地代理服务器不能实现目标域名的解析,则使用客户端的DNS模块进行域名解析,保证在本地代理服务器不能解析当前目标域名的情况下,用户仍可以获取目标域名对应的IP地址(可能不是最佳的),从而访问对应的服务器,获取数据。

在一个实施例中,可以按照预设的时间间隔执行更新操作,以更新域名解析信息。例如,可以每隔3天,更新一次。

如图2所示,更新操作可以包括以下步骤:

步骤S201,逐个读取代理服务器中存储的域名。

步骤S202,分别对每个域名进行以下处理:获取该域名对应的所有IP地址,并 在所有IP地址中确定该域名对应的最佳IP地址。其中,可以利用互联网上的公开数据,获取域名对应的所有IP地址。

步骤S203,根据每个域名对应的所有IP地址和最佳IP地址更新域名解析信息。在实际应用中,根据上述更新操作,可以仅更新域名对应的最佳IP地址,也可以同时更新域名对应的所有IP地址及对应的最佳IP地址。

本实施例中为了保证代理服务器能够进行主动的域名解析,定时维护代理服务器中存储的域名解析信息,解决了缓存更新不及时的问题。

在一个实施例中,可以通过以下两种方式确定某域名对应的最佳IP地址。

(1)对该域名对应的所有IP地址中的每个IP地址执行ping操作,探测IP地址所对应的服务器的响应速度,将响应速度最快的IP地址作为最佳IP地址;或,

(2)从该域名对应的所有IP地址中每个IP地址对应的服务器上下载相同的文件,将下载速度最快的IP地址作为最佳IP地址。

在实际应用中,可以根据使用场景来决定使用上述哪种方式确定最佳IP地址。如果要快速获知最佳IP,可以使用方式(1);如果要获知最准确的IP地址,可以使用方式(2)。

基于同一发明构思,本申请实施例还提供了一种域名解析装置,如下面的实施例所述。该域名解析装置可以用于实现上述实施例所描述的域名解析方法。由于该域名解析装置解决问题的原理与域名解析方法相似,因此该域名解析装置的实施可以参见域名解析方法的实施,重复之处不再赘述。

域名解析装置可以是代理服务器。

图3是本申请实施例的域名解析装置的结构框图,如图3所示,该装置可以包括:拦截单元31、获取单元32和域名解析单元33。下面对其结构进行具体说明。

拦截单元31,用于拦截客户端发出的网络请求。该拦截单元31可以是软件、硬件或二者的结合,例如,可以是完成网络请求接收功能的输入输出接口、处理芯片等元器件。

获取单元32,连接至拦截单元31,用于从网络请求中获取目标域名。该获取单元32可以是软件、硬件或二者的结合,例如,可以是实现网络请求解析以及目标域名获取功能的处理芯片等元器件。

域名解析单元33,连接至获取单元32,用于通过域名解析得到目标域名对应的 IP地址。该域名解析单元33可以是软件、硬件或二者的结合,例如,可以是实现域名解析功能的处理芯片等元器件,又如,该域名解析单元33可以包括一输入接口和一输出接口,输入接口接收域名输入,输出接口输出该域名对应的IP地址。

通过上述设置在客户端网络出口的域名解析装置实现域名解析,即本地管理域名解析结果,而不是依赖于DNS服务器,避开了被动接受远端DNS服务器解析结果的传统流程,从而解决了DNS服务器解析结果不合适的问题。

上述域名解析装置也可以通过软件实现,例如,使用JavaScript语言、Python语言或C语言编程实现,还可以通过软件与硬件的结合实现。

如图4所示,上述域名解析装置还可以包括:存储单元34,连接至域名解析单元33,用于存储域名解析信息,域名解析信息包括:域名、域名对应的所有IP地址以及域名对应的最佳IP地址。

域名解析单元33包括:判断模块,连接至获取单元32,用于判断目标域名是否在域名解析信息中;获取模块,连接至判断模块,用于在判断结果为是的情况下,从域名解析信息中获取目标域名对应的最佳IP地址;收发模块,连接至判断模块,用于在判断结果为否的情况下,向客户端的DNS模块发送目标域名,并接收DNS模块返回的目标域名对应的IP地址。

在一个实施例中,如图5所示,上述域名解析装置还可以包括:更新单元35,连接至存储单元34,用于按照预设的时间间隔执行更新操作,以更新域名解析信息。

更新单元35包括:读取模块、处理模块和更新模块。其中,读取模块,连接至存储单元34,用于按照预设的时间间隔,逐个读取代理服务器中存储的域名;处理模块,连接至读取模块,用于分别对每个域名进行以下处理:获取该域名对应的所有IP地址,并在所有IP地址中确定该域名对应的最佳IP地址;更新模块,连接至处理模块,用于根据每个域名对应的所有IP地址和最佳IP地址更新域名解析信息。

处理模块具体用于对所有IP地址中的每个IP地址执行ping操作,将响应速度最快的IP地址作为最佳IP地址;或,从所有IP地址中每个IP地址对应的服务器上下载相同的文件,将下载速度最快的IP地址作为最佳IP地址。

当然,上述单元或模块划分只是一种示意划分,本申请并不局限于此。该装置还可以仅包括:存储单元、域名解析单元和接收单元,存储单元执行与存储相关的功能,域名解析单元执行与域名解析相关的功能,接收单元执行与拦截网络请求相关的功 能,只要能实现本申请的目的的单元或模块划分,均应属于本申请的保护范围。

基于与上述域名解析方法及装置相同的发明构思,本申请实施例还提供了一种数据传输方法,其中,域名解析部分的实施可参见上述域名解析方法实施例中的内容,重复之处不再赘述。

图6是本申请实施例的数据传输方法的流程图。如图6所示,该方法包括如下的步骤S601至步骤S604。

步骤S601,代理服务器拦截客户端发出的网络请求,其中,代理服务器设置在客户端的网络出口。网络请求可以是http请求,也可以是https请求。

步骤S602,代理服务器从网络请求中获取目标域名,并通过域名解析得到目标域名对应的IP地址。代理服务器接收到网络请求后,解析请求头,获取其中的host参数值,即目标域名。

步骤S603,代理服务器与该IP地址对应的目标服务器建立连接,并将上述网络请求转发给目标服务器。

步骤S604,代理服务器接收目标服务器返回的数据,并把数据发送给客户端。即实现了客户端与服务器之间的数据传输。

通过图6所示的流程,域名解析是由设置在客户端网络出口的代理服务器完成的,即本地管理域名解析结果,而不是依赖于DNS服务器,避开了被动接受远端DNS服务器解析结果的传统流程,从而解决了DNS服务器解析结果不合适的问题。并且,代理服务器主动与目标服务器建立连接,由被动依赖变为了主动管理,在与较合适的目标服务器连接的基础上实现数据传输。

上述代理服务器存储有域名解析信息,域名解析信息包括:域名、域名对应的所有IP地址以及域名对应的最佳IP地址。

在一个实施例中,步骤S602中代理服务器通过域名解析得到目标域名对应的IP地址可以包括:代理服务器判断目标域名是否在域名解析信息中;如果是,代理服务器从域名解析信息中获取目标域名对应的最佳IP地址;如果否,代理服务器向客户端的DNS模块发送目标域名,由DNS模块进行域名解析,代理服务器接收DNS模块返回的目标域名对应的IP地址。本实施例在目标域名不在域名解析信息中的情况下,由DNS模块提供解析结果(即目标域名对应的IP地址),代理服务器获得解析结果后,与该IP地址对应的目标服务器进行主动连接。

在一个实施例中,可以按照预设的时间间隔执行更新操作,以更新域名解析信息。例如,可以每隔3天,更新一次。更新操作可以包括以下步骤:逐个读取代理服务器中存储的域名;分别对每个域名进行以下处理:获取该域名对应的所有IP地址,并在所有IP地址中确定该域名对应的最佳IP地址;根据每个域名对应的所有IP地址和最佳IP地址更新域名解析信息。

在一个实施例中,可以通过以下两种方式确定某域名对应的最佳IP地址。

(1)对该域名对应的所有IP地址中的每个IP地址执行ping操作,探测IP地址所对应的服务器的响应速度,将响应速度最快的IP地址作为最佳IP地址;或,

(2)从该域名对应的所有IP地址中每个IP地址对应的服务器上下载相同的文件,将下载速度最快的IP地址作为最佳IP地址。

基于同一发明构思,本申请实施例还提供了一种数据传输装置,如下面的实施例所述。该数据传输装置可以用于实现上述实施例所描述的数据传输方法。由于该数据传输装置解决问题的原理与数据传输方法相似,因此该数据传输装置的实施可以参见数据传输方法的实施,重复之处不再赘述。

图7是本申请实施例的数据传输装置的结构示意图,如图7所示,数据传输装置10设置在客户端20的网络出口,客户端20通过数据传输装置10与目标服务器30连接,并进行数据传输。该数据传输装置10可以是代理服务器。

图8是本申请实施例的数据传输装置的结构框图,如图8所示,该数据传输装置可以包括:拦截单元31、获取单元32、域名解析单元33、连接建立单元36和数据传输单元37。其中,与域名解析相关的单元或模块的实施可以参见上述域名解析装置实施例中的内容,重复之处不再赘述。下面对其结构进行具体说明。

拦截单元31,用于拦截客户端发出的网络请求。

获取单元32,连接至拦截单元31,用于从网络请求中获取目标域名。

域名解析单元33,连接至获取单元32,用于通过域名解析得到目标域名对应的IP地址。

连接建立单元36,连接至域名解析单元33,用于与IP地址对应的目标服务器建立连接,并将网络请求转发给目标服务器。该连接建立单元36可以是软件、硬件或二者的结合,例如,可以是实现连接的网络接口、处理芯片等元器件。

数据传输单元37,连接至连接建立单元36,用于接收目标服务器返回的数据, 并把数据发送给客户端。该数据传输单元37可以是软件、硬件或二者的结合,例如,可以是实现数据传输的输入输出接口、网络接口、处理芯片等元器件。

通过上述设置在客户端网络出口的数据传输装置实现域名解析,即本地管理域名解析结果,而不是依赖于DNS服务器,且数据传输装置主动与目标服务器建立连接,由被动依赖变为了主动管理,避开了被动接受远端DNS服务器解析结果的传统流程,从而解决了DNS服务器解析结果不合适的问题。

上述数据传输装置也可以通过软件实现,例如,使用Javascript语言、Python语言或C语言编程实现,还可以通过软件与硬件的结合实现。

如图9所示,上述数据传输装置还可以包括:存储单元34,连接至域名解析单元33,用于存储域名解析信息,域名解析信息包括:域名、域名对应的所有IP地址以及域名对应的最佳IP地址。

域名解析单元33包括:判断模块,连接至获取单元32,用于判断目标域名是否在域名解析信息中;获取模块,连接至判断模块,用于在判断结果为是的情况下,从域名解析信息中获取目标域名对应的最佳IP地址;收发模块,连接至判断模块,用于在判断结果为否的情况下,向客户端的DNS模块发送目标域名,并接收DNS模块返回的目标域名对应的IP地址。

在一个实施例中,如图10所示,上述数据传输装置还可以包括:更新单元35,连接至存储单元34,用于按照预设的时间间隔执行更新操作,以更新域名解析信息。

更新单元35包括:读取模块、处理模块和更新模块。其中,读取模块,连接至存储单元34,用于按照预设的时间间隔,逐个读取代理服务器中存储的域名;处理模块,连接至读取模块,用于分别对每个域名进行以下处理:获取该域名对应的所有IP地址,并在所有IP地址中确定该域名对应的最佳IP地址;更新模块,连接至处理模块,用于根据每个域名对应的所有IP地址和最佳IP地址更新域名解析信息。

处理模块具体用于对所有IP地址中的每个IP地址执行ping操作,将响应速度最快的IP地址作为最佳IP地址;或,从所有IP地址中每个IP地址对应的服务器上下载相同的文件,将下载速度最快的IP地址作为最佳IP地址。

当然,上述单元或模块划分只是一种示意划分,本申请并不局限于此。该数据传输装置还可以仅包括:存储单元、域名解析单元和数据传输单元,存储单元执行与存储相关的功能,域名解析单元执行与域名解析相关的功能,数据传输单元执行与拦截 网络请求、获取信息、建立连接和收发数据相关的功能,只要能实现本申请的目的的单元或模块划分,均应属于本申请的保护范围。

需要说明的是,上述域名解析装置和数据传输装置可以是利用硬件集成的用于实现相应功能的装置,也可以利用软件编程实现相应功能,或者是软件硬件相结合得到的装置,还可以对客户端现有的器件进行硬件、软件或二者结合上的改进以实现相应功能。

综上所述,在客户端网络出口架设代理服务器,通过代理服务器实现本地域名解析,不依赖DNS服务器的解析结果,避开了被动接受远端DNS服务器解析结果的传统流程。代理服务器主动与最适合的服务器建立连接并发送请求,实现客户端与服务器的数据传输。

本申请的实施例中,由本地代理服务器进行域名解析,解析结果是目标域名对应的最佳IP地址,即由本地代理服务器解析得到的解析结果比较理想;在本地代理服务器不能解析当前目标域名的情况下,使用客户端的DNS模块进行域名解析,保证用户仍可以访问到服务器,获取数据。为了保证代理服务器能够进行主动的域名解析,本申请的实施例中进一步设置了定时维护代理服务器中存储的域名解析信息,解决了缓存更新不及时的问题。另外,本申请的实施例中还给出了确定最佳IP地址的两种方式,可以根据使用场景选择使用哪种方式,以便快速地获得最佳IP地址或者获得最准确的最佳IP地址。

当然实施本申请的任一产品或者方法必不一定需要同时达到以上所述的所有优点。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等) 上实施的计算机程序产品的形式。

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

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

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

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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