应用服务器选取方法和网络连接方法

文档序号:7797443阅读:155来源:国知局
应用服务器选取方法和网络连接方法
【专利摘要】本申请提供了一种应用服务器选取方法和网络连接方法,其中,所述方法包括客户端向多个DNS服务器同时发送DNS查询请求,所述DNS查询请求中包括域名;当有DNS服务器根据所述DNS查询请求向客户端返回域名对应的IP地址,客户端根据所述IP地址生成候选IP地址列表;客户端根据所述侯选IP地址列表,向各IP地址对应的应用服务器同时发送连接请求;依据各应用服务器对所述连接请求的响应状态信息,确定最优应用服务器。本申请可以保证DNS解析服务可靠性并缩短耗时,同时能够满足一些特定的网络应用需求,并提高安全性。
【专利说明】应用服务器选取方法和网络连接方法
[0001] 本发明专利申请是申请日为2011年9月29日、申请号为201110294802. 4、名称为 "一种域名系统DNS的最优应用服务器选取方法和装置"的中国发明专利申请的分案申请。

【技术领域】
[0002] 本申请涉及互联网域名解析的【技术领域】,特别是涉及一种域名系统DNS的最优应 用服务器选取方法,及一种域名系统DNS的最优应用服务器选取装置。

【背景技术】
[0003] 在互联网的应用中,域名和IP地址是不可缺少的,因为人们访问网站必须要通过 网站的域名和IP地址来查找登录。现有技术查找域名和IP地址的时候要运用到DNS,也 就是域名系统(或称之为域名服务器)。DNS用于域名的解析,为Internet上的主机分配域 名地址和IP地址。也就是说,当用户向DNS请求域名地址解析时,该系统就会自动把域名 地址转为IP地址。在实际中,任何域名都至少有一个DNS来对域名进行解析,至少是两个。 因为DNS可以轮回处理,第一个解析失败可以找第二个。这样只要有一个DNS解析正常,就 不会影响域名的正常使用。
[0004] DNS协议可以使用UDP协议和TCP协议作为传输层协议,现有技术中,Windows客 户端主机系统仅实现了 m)P协议作为DNS协议的传输层协议。UDP协议具有以下特性:
[0005] 1、UDP协议是一个无接连协议,传输数据之前源端和终端不建立连接,当它想传送 时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP协 议传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制; 在接收端,UDP协议把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
[0006] 2、由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因 此一台服务机可同时向多个客户机传输相同的消息。
[0007] 3、UDP协议信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的 额外开销很小。
[0008] 4、吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源 端和终端王机性能的限制。
[0009] 5、UDP协议使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的 链接状态表。
[0010] 6、UDP协议是面向报文的。发送方的UDP协议对应用程序交下来的报文,在添加 首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程 序需要选择合适的报文大小。
[0011] 选择m)P协议作为DNS应用层协议的优点是速度快,但存在以下缺点:
[0012] 1、由于Windows系统实现DNS协议是基于同步的,DNS服务器根据自身的负载情 况把域名对应的IP地址集合随机散列返回给客户端,仅实现了基于服务器端的均衡负载, 解析服务是同步的,因此在某些特定网络状况下,解析耗时比较长,因此DNS解析服务不可 靠并且耗时时间较长;
[0013] 2、Windows系统DNS解析服务是面向全系统的,不具备特定应用程序可配置DNS服 务器,不能满足某些网络应用需求;
[0014] 3、Windows系统DNS解析服务存在漏洞,易被劫持篡改,安全性较低。
[0015] 因此,目前需要本领域技术人员迫切解决的一个技术问题就是:实现一种域名系 统DNS的最优应用服务器选取方法,以保证DNS解析服务可靠性并缩短耗时,同时能够满足 一些特定的网络应用需求,并提高安全性。


【发明内容】

[0016] 本申请所要解决的技术问题是提供一种域名系统DNS的最优应用服务器选取方 法,以保证DNS解析服务可靠性并缩短耗时,同时能够满足一些特定的网络应用需求,并提 高安全性。
[0017] 相应的,本申请还提供一种域名系统DNS的最优应用服务器选取装置,以确保上 述方法在实际中的应用及实现。
[0018] 为了解决上述问题,本申请公开了一种域名系统DNS的最优应用服务器选取方 法,包括:
[0019] 客户端向多个DNS服务器同时发送DNS查询请求,所述DNS查询请求中包括域名;
[0020] 当有DNS服务器根据所述DNS查询请求向客户端返回域名对应的IP地址,客户端 根据所述IP地址生成候选IP地址列表;
[0021] 客户端根据所述侯选IP地址列表,向各IP地址对应的应用服务器同时发送连接 请求;
[0022] 依据各应用服务器对所述连接请求的响应状态信息,确定最优应用服务器。
[0023] 优选的,所述的方法,还包括:
[0024] 将当前域名及对应最优服务器的IP地址写入客户端的缓存中,并记录所述域名 及对应IP地址记录的生命周期TTL信息。
[0025] 优选的,在客户端向多个DNS服务器同时发送DNS查询请求的步骤之前,还包括:
[0026] 客户端查询其缓存中是否有当前待请求查询的域名的对应IP地址的记录,若有, 则判断所述域名及对应IP地址记录的生命周期TTL信息是否过期,若否,则直接提取所述 IP地址。
[0027] 优选的,所述依据各应用服务器对所述连接请求的响应状态信息确定最优应用服 务器的步骤包括:
[0028] 若在预设时间内,有应用服务器第一时间响应所述连接请求,则中断与其它应用 服务器的连接,将当前应用服务器确定为最优应用服务器。
[0029] 优选的,所述依据各应用服务器对所述连接请求的响应状态信息确定最优应用服 务器的步骤包括:
[0030] 若超出预设时间后,有多台应用服务器响应所述连接请求,则对各台应用服务器 的连接时间进行排序,将连接时间最短的应用服务器确定为最优应用服务器。
[0031] 优选的,所述依据各应用服务器对所述连接请求的响应状态信息确定最优应用服 务器的步骤包括:
[0032] 当客户端所发送的DNS查询请求为基于HTTP协议的DNS查询请求时,获取响应所 述连接请求的应用服务器的下载速度,将下载速度最快的应用服务器确定为最优应用服务 器。
[0033] 优选的,所述客户端根据IP地址生成候选IP地址列表包括:
[0034] 获取所述IP地址所属的网段;
[0035] 从各网段提取一个IP地址写入候选IP地址列表。
[0036] 本申请实施例还公开了一种域名系统DNS的最优应用服务器选取装置,包括:
[0037] 域名请求模块:用于由客户端向多个DNS服务器同时发送DNS查询请求,所述DNS 查询请求中包括域名;
[0038] 候选IP地址列表生成模块:用于在有DNS服务器根据所述DNS查询请求向客户端 返回域名对应的IP地址,由客户端根据所述IP地址生成候选IP地址列表;
[0039] IP地址连接请求模块:用于由客户端根据所述侯选IP地址列表,向各IP地址对 应的应用服务器同时发送连接请求;
[0040] 最优应用服务器确定模块:用于依据各应用服务器对所述连接请求的响应状态信 息,确定最优应用服务器。
[0041] 优选的,所述的装置,还包括:
[0042] 域名信息记录模块:用于将当前域名及对应最优服务器的IP地址写入客户端的 缓存中,并记录所述域名及对应IP地址记录的生命周期TTL信息。
[0043] 优选的,所述的装置,还包括:
[0044] 客户端缓存查询模块:用于客户端查询其缓存中是否有当前待请求查询的域名的 对应IP地址的记录,若有,则判断所述域名及对应IP地址记录的生命周期TTL信息是否过 期,若否,则直接提取所述IP地址。
[0045] 优选的,所述最优应用服务器确定模块进一步包括:
[0046] 第一时间最优应用服务器确定子模块:用于在预设时间内,有应用服务器第一时 间响应所述连接请求时,中断与其它应用服务器的连接,将当前应用服务器确定为最优应 用服务器。
[0047] 优选的,所述最优应用服务器确定模块进一步包括:
[0048] 连接时间最优应用服务器确定子模块:用于在超出预设时间后,有多台应用服务 器响应所述连接请求时,对各台应用服务器的连接时间进行排序,将连接时间最短的应用 服务器确定为最优应用服务器。
[0049] 优选的,所述最优应用服务器确定模块进一步包括:
[0050] 下载速度最优应用服务器确定子模块:用于在客户端所发送的DNS查询请求为基 于HTTP协议的DNS查询请求时,获取响应所述连接请求的应用服务器的下载速度,将下载 速度最快的应用服务器确定为最优应用服务器。
[0051] 优选的,所述候选IP地址列表生成模块包括:
[0052] 网段获取子模块:获取所述IP地址所属的网段;
[0053] IP地址提取子模块:用于从各网段提取一个IP地址写入候选IP地址列表。
[0054] 与现有技术相比,本申请包括以下优点:
[0055] 本申请仍然采用UDP协议作为DNS协议的传输层协议,但是以异步并发方式发送 多个DNS查询请求给多个DNS服务器,由于采用异步并发的方式实现,当有DNS服务器响应 返回请求中域名对应的IP地址时,客户端立即解析,不受DNS服务器个数的增加而影响整 体解析响应时间。由于每个DNS服务器的请求及响应时间不同,因而可以获得最快的DNS 响应。从而解决了现有技术中Windows系统DNS解析服务不支持多DNS并发请求,解析服 务不可靠并且耗时时间较长的缺陷。
[0056] 本申请实现了 DNS服务器配置策略,并且不受DNS服务器个数的增加而影响整体 解析速度。满足各种网络应用需求。从而解决了现有技术中Windows系统DNS解析服务是 面向全系统的,不具备特定应用程序可配置DNS服务器,不能满足某些网络应用需求的缺 陷。
[0057] 本申请解析DNS服务器返回的IP地址,相应建立与对应应用服务器的连接,根据 连接时间最小作为最优应用服务器IP地址返回给调用者,实现了基于连接测速的优化策 略。对于HTTP协议的DNS查询请求,本申请还支持根据最快的HTTP GET下载该域名根URL 的下载速度作为最优应用服务器IP地址返回给调用者,实现了基于HTTP GET下载测速的优 化策略。解决了现有技术中Windows系统DNS解析服务不提供任何加速优化策略的缺陷: 达到了网络加速的目的。可以自适应发现最短路径与响应最快的最优应用服务器对应的IP 地址。可以运用于教育网加速应用、电信网通移动运营商网络资源优化访问。对用户而言, 提供了更快的网络服务。
[0058] 本申请自行实现了 DNS解析服务,并以加密方式保存经过优化的DNS解析结果。相 比Windows系统DNS解析服务有更高的安全性。本申请解决了 Windows系统DNS解析服务 存在漏洞,易被劫持篡改的缺陷。

【专利附图】

【附图说明】
[0059] 图1是本申请一种域名系统DNS的最优应用服务器选取方法实施例1的步骤流程 图;
[0060] 图2是本申请一种域名系统DNS的最优应用服务器选取方法实施例2的步骤流程 图;
[0061] 图3是本申请一种域名系统DNS的最优应用服务器选取装置实施例的结构图。

【具体实施方式】
[0062] 为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本申请作进一步详细的说明。
[0063] 为使本领域技术人员更好地理解本申请,以下对域名系统(DNS)的相关技术进行 说明。
[0064] 域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和 IP地址之间的转换信息。通常,网络用户通过UDP协议(User Datagram Protocol,用户数 据包协议)和DNS服务器进行通信,服务器在特定的53端口监听,并返回用户所需的相关信 息。
[0065] DNS分为Client (客户端)和Server (服务器),Client扮演发问的角色,也就是 问Server -个Domain Name (域名)的真正IP地址,Server要回答此Domain Name的真正 IP地址。通常,当地的DNS先会查自己的资料库,如果自己的资料库没有此Domain Name的 真正IP地址,则会往该DNS上所设的DNS服务器询问,依此得到此Domain Name的真正IP 地址之后,将该Domain Name对应的真正IP地址存起来,并回答客户。
[0066] DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个 名称资料包括:网域下的次网域名称以及主机名称,在每一个DNS名称服务器中都有一个 快取缓存区(Cache),这个快取缓存区的主要目的是将该名称服务器所查询出来的名称及 相对的IP地址记录在快取缓存区中,当下一次还有另外一个客户端到此服务器上去查询 相同的名称时,服务器就不用在到别台主机上去寻找,而可以直接从快取缓存区中找到对 应的名称记录资料,传回给客户端,从而加速客户端对名称查询的速度。
[0067] 例如,当DNS客户端向指定的DNS服务器查询网际网路上的某一台主机名称,DNS 服务器会在该资料库中找寻用户所指定的名称,如果没有,该服务器会在自己的快取缓存 区中查询有无该笔名称记录,如果找到对应的名称记录,则从DNS服务器直接将所对应到 的IP地址传回给客户端,如果名称服务器在资料记录查不到,且快取缓存区中也没有对应 的名称记录,服务器才会向别的名称服务器查询所要的名称。
[0068] 或如,DNS客户端向指定的DNS服务器查询网际网路上某台主机名称,当DNS服务 器在该资料记录找不到用户所指定的名称时,会转向该服务器的快取缓存区找寻是否有该 资料,当快取缓存区也找不到时,会向最接近的名称服务器去要求帮忙找寻该名称的IP地 址,在另一台服务器上也用相同的动作执行查询操作,当查询到后会回复原本要求查询的 源服务器,该源DNS服务器在接收到另一台DNS服务器查询的结果后,先将所查询到的主机 名称及对应IP地址记录到快取缓存区中,最后在将所查询到的结果回复给客户端。
[0069] 本申请的主要思想在于,实现了不调用Windows WinSock API实现DNS协议的机 制,通过将需要解析的域名同时异步并发发送给多个DNS服务器,一旦有DNS服务器响应返 回,则客户端解析IP地址,若IP地址多于1个,则根据不同网段进行筛选并存入侯选IP地 址列表,客户端遍历侯选IP地址列表,异步发送建立连接服务器请求,并根据各应用服务 器对所述连接请求的响应状态信息,确定最优应用服务器。
[0070] 参照图1,示出了本申请的一种域名系统DNS的最优应用服务器选取方法实施例1 的步骤流程图,具体可以包括以下步骤:
[0071] 步骤101 :客户端向多个DNS服务器同时发送DNS查询请求;
[0072] 在实际中,所述DNS查询请求中包括域名,可以由客户端根据预先设置的DNS服 务器列表,向列表中指定的多个DNS服务器异步并发发送。在具体应用中,可以通过1/0 Completion port机制(完成端口)实现异步并发的发送机制。
[0073] 步骤102 :当有DNS服务器根据所述DNS查询请求向客户端返回域名对应的IP地 址,客户端根据所述IP地址生成候选IP地址列表;
[0074] 若有DNS服务器根据客户端发起的DNS查询请求返回域名对应的IP地址,则客户 端将接收到的IP地址,逐个插入候选IP地址列表,然后可以根据是否在同一网段进行排重 处理。
[0075] 具体而言,在本申请的一种优选实施例中,所述客户端可以通过以下子步骤根据 IP地址生成候选IP地址列表:
[0076] 子步骤S01 :获取所述IP地址所属的网段;
[0077] 子步骤S02 :从各网段提取一个IP地址写入候选IP地址列表。
[0078] 在具体实现中,同一网段的IP地址可以只保留第一个IP地址作为候选最优IP,并 插入候选IP地址列表中。
[0079] 例如:返回的IP地址集合为:
[0080] 202. 101. 22. 35
[0081] 202. 101. 22. 36
[0082] 202. 102. 21. 23
[0083] 202. 102. 21. 25
[0084] 其中,202. 101. 22. 35 和 202. 101. 22. 36 属于同一网段的 IP 地址,202. 102. 21. 23 和202. 102. 21. 25属于同一网段的IP地址。
[0085] 提取各网段中的第一个IP地址,202. 101.22. 35和202. 102. 21. 23,将这两个IP 地址写入候选IP地址列表中,如下表所示:
[0086]

【权利要求】
1. 一种应用服务器选取方法,其包括: 向多个DNS服务器发送DNS查询请求,所述DNS查询请求中包括域名; 依据从所述DNS服务器返回的与所述域名对应的IP地址生成候选IP地址列表; 向与所述侯选IP地址列表中的各IP地址对应的应用服务器发送连接请求; 依据各应用服务器对所述连接请求的响应状态信息选取一应用服务器。
2. 如权利要求1所述的方法,还包括: 将当前域名及所选取的应用服务器的IP地址写入缓存中,并记录所述域名及对应IP 地址记录的生命周期TTL信息。
3. 如权利要求2所述的方法,其中,在向多个DNS服务器发送DNS查询请求之前,还包 括: 查询缓存中是否有当前待请求查询的域名的对应IP地址的记录; 如果有,则判断所述域名及对应IP地址记录的生命周期TTL信息是否过期; 如果没有过期,则直接提取所述IP地址。
4. 如权利要求1、2或3所述的方法,其中,所述依据各应用服务器对所述连接请求的响 应状态信息选取一应用服务器包括: 如果在预设时间内有应用服务器第一时间响应所述连接请求,则中断与其它应用服务 器的连接并选取当前应用服务器。
5. 如权利要求1至4中任一项所述的方法,其中,所述依据各应用服务器对所述连接请 求的响应状态信息选取一应用服务器包括: 如果超出预设时间后有多台应用服务器响应所述连接请求,则对各台应用服务器的连 接时间进行排序; 选取连接时间最短的应用服务器。
6. 如权利要求1、2或3所述的方法,其中,所述依据各应用服务器对所述连接请求的响 应状态信息选取一应用服务器包括: 当所述DNS查询请求为基于HTTP协议的DNS查询请求时,获取响应所述连接请求的应 用服务器的下载速度; 选取下载速度最快的应用服务器。
7. 如权利要求1至6中任一项所述的方法,其中,依据从所述DNS服务器返回的与所述 域名对应的IP地址生成候选IP地址列表进一步包括: 获取从所述DNS服务器返回的与所述域名对应的IP地址所属的网段; 从各网段提取一个IP地址写入候选IP地址列表。
8. -种网络连接方法,其包括: 查询缓存中是否有当前待请求查询的域名的对应IP地址的记录; 如果有,则判断所述域名及对应IP地址记录的生命周期TTL信息是否过期,否则向多 个DNS服务器发送DNS查询请求,所述DNS查询请求中包括域名; 如果没有过期,则直接提取所述IP地址以进行网络连接,否则向多个DNS服务器发送 DNS查询请求,所述DNS查询请求中包括域名; 依据从所述DNS服务器返回的与所述域名对应的IP地址生成候选IP地址列表; 向与所述侯选IP地址列表中的各IP地址对应的应用服务器发送连接请求; 依据各应用服务器对所述连接请求的响应状态信息选取一应用服务器进行网络连接。
9. 如权利要求8所述的方法,还包括: 将当前域名及所选取的应用服务器的IP地址写入缓存中,并记录所述域名及对应IP 地址记录的生命周期TTL信息。
10. 如权利要求8或9所述的方法,其中,所述依据各应用服务器对所述连接请求的响 应状态信息选取一应用服务器进行网络连接包括: 如果在预设时间内有应用服务器第一时间响应所述连接请求,则中断与其它应用服务 器的连接并选取当前应用服务器进行网络连接。
11. 如权利要求8至10中任一项所述的方法,其中,所述依据各应用服务器对所述连接 请求的响应状态信息选取一应用服务器进行网络连接包括: 如果超出预设时间后有多台应用服务器响应所述连接请求,则对各台应用服务器的连 接时间进行排序; 选取连接时间最短的应用服务器进行网络连接。
12. 如权利要求8或9所述的方法,其中,所述依据各应用服务器对所述连接请求的响 应状态信息选取一应用服务器进行网络连接包括: 当所述DNS查询请求为基于HTTP协议的DNS查询请求时,获取响应所述连接请求的应 用服务器的下载速度; 选取下载速度最快的应用服务器进行网络连接。
13. 如权利要求8至12中任一项所述的方法,其中,依据从所述DNS服务器返回的与所 述域名对应的IP地址生成候选IP地址列表进一步包括: 获取从所述DNS服务器返回的与所述域名对应的IP地址所属的网段; 从各网段提取一个IP地址写入候选IP地址列表。
【文档编号】H04L29/08GK104065761SQ201410062729
【公开日】2014年9月24日 申请日期:2011年9月29日 优先权日:2011年9月29日
【发明者】董斌雁, 孙鹏 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1