CN112153166A - 一种dns快速解析方法、装置、终端及介质 - Google Patents

一种dns快速解析方法、装置、终端及介质 Download PDF

Info

Publication number
CN112153166A
CN112153166A CN201910572490.5A CN201910572490A CN112153166A CN 112153166 A CN112153166 A CN 112153166A CN 201910572490 A CN201910572490 A CN 201910572490A CN 112153166 A CN112153166 A CN 112153166A
Authority
CN
China
Prior art keywords
domain name
preset
dns server
resolution
analysis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910572490.5A
Other languages
English (en)
Inventor
陈孝良
邢越峰
苏少炜
常乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing SoundAI Technology Co Ltd
Original Assignee
Beijing SoundAI Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing SoundAI Technology Co Ltd filed Critical Beijing SoundAI Technology Co Ltd
Priority to CN201910572490.5A priority Critical patent/CN112153166A/zh
Publication of CN112153166A publication Critical patent/CN112153166A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种DNS快速解析方法,应用于计算机领域,包括:向目标DNS服务器以及预设DNS服务器发出域名解析请求,以使目标DNS服务器以及预设DNS服务器分别解析域名解析请求,分别得到对应的解析结果,并分别向终端发送对应的解析结果;设置第一预置时长,在第一预置时长内,优先获取目标DNS服务器返回的解析结果,若在第一预置时长内,没有获取到由目标DNS服务器返回的解析结果,则获取由预设DNS服务器返回的解析结果。本公开还提供了一种装置、电子设备及存储介质。以上过程,有效解决了现有技术中解析DNS的方法等待时间长、易失败的的问题。

Description

一种DNS快速解析方法、装置、终端及介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种DNS快速解析方法、装置、电子终端及存储介质。
背景技术
在终端的交互方案中,设备间的沟通效率十分重要。终端需要借助大量的线上资源完成复杂的交互,在请求这些线上资源的过程中需要频繁的解析域名,而这个过程的效率受网络状态的影响较大。
现有的解析域名的方法一般通过分布式的域名系统(Domain Name System,简称DNS)服务器来实现多点、多缓存的DNS解析,这种解析方式通过单一的UDP数据通路收发DNS解析请求和结果。但这种解析方式严重依赖DNS服务器质量和应用设备到DNS服务器的网络通路质量,在复杂网络状态下易发生故障,整个解析过程可能出现等待时间长、易失败等问题。
发明内容
本公开提供了一种DNS快速解析方法、装置、终端及存储介质,以解决当前解析DNS的方法等待时间长、易失败的问题。
本公开的一个方面提供了一种DNS快速解析方法方法,应用于终端,包括:向目标DNS服务器以及预设DNS服务器发出域名解析请求,以使所述目标DNS服务器以及预设DNS服务器分别解析所述域名解析请求,分别得到对应的解析结果,并分别向终端发送对应的解析结果;设置第一预置时长,在所述第一预置时长内,优先获取所述目标DNS服务器返回的解析结果,若在第一预置时长内,没有获取到由所述目标DNS服务器返回的解析结果,则获取由所述预设DNS服务器返回的解析结果。
可选地,所述若在第一预置时长内,没有获取到由所述目标DNS服务器返回的解析结果,则获取由所述预设DNS服务器返回的解析结果包括:若在第一预置时长内,获取到所述目标DNS服务器返回的解析失败通知,则立刻获取由所述预设DNS服务器返回的解析结果;若在第一预置时长内,所述目标DNS服务器和所述预设DNS服务器均返回的是解析失败通知,则立刻向预设HTTP服务器发送所述域名解析请求,以使所述预设HTTP服务器解析所述域名解析请求;设置第二预置时长,若在第一预置时长内,所述目标DNS服务器解析未完成,则在第二预置时长内,优先获取所述目标DNS服务器和所述预设DNS服务器中最先返回的解析结果。
可选地,所述方法还包括:若在所述第二预置时长内,没有获取到由所述目标DNS服务器或所述预设DNS服务器返回的解析结果,则向预设HTTP服务器发送所述域名解析请求,以使所述预设HTTP服务器解析所述域名解析请求。
可选地,所述若在所述第二预置时长内,没有获取到由所述目标DNS服务器或所述预设DNS服务器返回的解析结果,则向预设HTTP服务器发送所述域名解析请求,以使所述预设HTTP服务器解析所述域名解析请求还包括:如果所述预设HTTP服务器完成对所述域名解析请求的解析,所述预设HTTP服务器将解析结果返回给所述终端;如果所述预设HTTP服务器对所述域名解析请求的解析失败,所述预设HTTP服务器通知所述终端解析失败。
可选地,所述方法还包括:在获取到所述域名解析请求对应的解析结果后,将接收到的解析结果存储于本地域名库中。
可选地,在所述方法之前,还包括:获取待解析的域名;判断所述本地域名库中是否存在所述待解析的域名;如果所述本地域名库中存在所述待解析的域名,则获取所述本地域名库中存储的所述待解析的域名对应的解析结果,并向所述目标DNS服务器以及所述预设DNS服务器发出所述域名解析请求,获取所述待解析的域名最新的解析结果,更新本地域名库;如果所述本地域名库中不存在所述待解析的域名,则向所述目标DNS服务器以及所述预设DNS服务器发出所述域名解析请求,获取所述待解析的域名最新的解析结果,并将解析结果存入本地域名库。
可选地,所述终端向目标DNS服务器以及预设DNS服务器发出域名解析请求使用UDP通信协议,向预设HTTP服务器发送域名解析请求使用TCP通信协议。
本公开的另一个方面提供了一种DNS快速解析装置,包括:第一处理模块,用于向目标DNS服务器以及预设DNS服务器发出域名解析请求,以使所述目标DNS服务器以及预设DNS服务器分别解析所述域名解析请求,分别得到对应的解析结果,并分别向终端发送对应的解析结果;第二处理模块,用于设置第一预置时长,在所述第一预置时长内,优先获取所述目标DNS服务器返回的解析结果,若在第一预置时长内,没有获取到由所述目标DNS服务器返回的解析结果,则获取由所述预设DNS服务器返回的解析结果。
本公开的另一个方面提供了一种终端,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第一方面中的任一项所述的一种DNS快速解析方法中的各个步骤。
本公开的另一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面中的任一项所述的一种DNS快速解析方法中的各个步骤。
在本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
本公开实施例为终端提供了多级DNS解析服务,当终端产生到域名解析请求后,同时向目标DNS服务器以及预设DNS服务器发出域名解析请求,在目标DNS服务器未能按时返回解析结果时,返回预设DNS服务器的解析结果,当目标DNS服务器、预设DNS服务器均未能按时返回解析结果时,再向预设HTTP服务器发送域名解析请求,由预设HTTP服务器作为补充方案返回解析结果。多级解析服务器相互配合,最大限度地保证在一定时间内返回解析结果。其中,终端与目标DNS服务器以及预设DNS服务器之间的通信使用UDP通信协议,与预设HTTP服务器的通信使用TCP通信协议,可保证通信连接更稳定,必免终端的DNS解析受网络状态的影响。本公开提出的技术方案提高了终端的DNS解析速度和成功率,保证了终端在复杂网络状态下的快速响应。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了本公开实施例提供的一种DNS快速解析方法的流程图;
图2示意性示出了本公开实施例提供的一种DNS快速解析方法方法的另一种流程图;
图3示意性示出了本公开实施例提供的一种DNS快速解析装置的结构框图;
图4示意性示出了本公开实施例提供的一种终端的结构框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
图1示意性示出了本公开实施例提供的一种DNS快速解析方法的流程图。
具体的,如图1所示,本公开实施例的一种DNS快速解析方法应用于终端,包括以下操作:
步骤S1,向目标DNS服务器以及预设DNS服务器发出域名解析请求,以使目标DNS服务器以及预设DNS服务器分别解析域名解析请求,分别得到对应的解析结果,并分别向终端发送对应的解析结果。
当终端需要获取线上资源时,终端需解析大量的域名。在这一过程中,对域名的解析效率往往受网络状态的影响。因此,为了提高域名解析效率,在终端本地会记录解析域名的结果,以便再次需要解析此域名时在本地记录中即可查询解析结果,提高获取域名的效率。
因此,在向网络请求域名解析之前,终端首先在本地查询是否存在待解析的域名的解析结果,包括:
步骤S01,获取待解析的域名。
步骤S02,判断本地域名库中是否存在待解析的域名。
本地域名库在终端首次运行时建立。
将终端请求解析的所有域名及对应的域名解析结果存储于本地域名库,以便需要查找,减少重复向网络请求域名解析的次数,以提高域名解析效率。
当终端获取待解析的域名后,首先查询本地域名库中是否已存在该待解析的域名对应的解析结果,分两种情况:
如果所述本地域名库中存在所述待解析的域名,则获取所述本地域名库中存储的所述待解析的域名对应的解析结果,并向所述目标DNS服务器以及所述预设DNS服务器发出所述域名解析请求,获取所述待解析的域名最新的解析结果,更新本地域名库。
当本地域名库中存在待解析的域名时,终端先将本地域名库中存储的解析结果返回并使用,保证域名解析的速度。但由于DNS记录时常更新,即域名对应的解析结果时常变化,为了避免本地域名库中的解析结果已过期,终端即使从获取了本地域名库中的解析结果后,也需要向目标DNS服务器以及预设DNS服务器发出所述域名解析请求,已获取最新的域名解析结果,用于更新本地域名库。虽然在本地域名库中已存在解析结果的情况下,终端直接使用的本地域名库中的解析结果可能已过期,但解析结果已过期的这种情况出现的概率较小,在大多数情况下,终端直接使用本地域名库中的解析结果能保证获取解析结果的效率。当出现本地域名库中解析结果已过期的情况时,由于终端也向目标DNS服务器以及预设DNS服务器发出了域名解析请求,更新了本地域名库,因此能保证终端在下一次发出同样的域名解析请求时从本地域名库中获取正确的解析结果。
如果所述本地域名库中不存在所述待解析的域名,则向所述目标DNS服务器以及所述预设DNS服务器发出所述域名解析请求,获取所述待解析的域名最新的解析结果,并将解析结果存入本地域名库。
当本地域名库中不存在待解析的域名时,终端向所处网络环境中系统默认的目标DNS服务器发送域名解析请求,将获取到的解析结果存于本地域名库中,便于下次解析相同的域名时可直接从本地域名库中查找,提高解析效率系统默认的DNS服务器位于分布式DNS服务网络中,往往具备根据应用终端IP进行负载均衡配置的能力,应当优先启用这类服务器返回的结果。
由于终端与分布式DNS服务器通过单一的UDP数据通路通信,这种通信方式容易受网络状态的影响。
在本实施例中,为了防止出现因为网络状态不佳导致域名解析失败或解析速度较慢的问题,在终端向目标DNS服务器发出域名解析请求的同时,也会向预设DNS服务器发出域名解析请求,以使目标DNS服务器以及预设DNS服务器分别解析域名解析请求,在目标DNS服务器不能及时返回解析结果时,预设DNS服务器作为补充向终端返回解析结果,以保证解析效率。其中,预设DNS服务器由终端的开发者控制,预设DNS服务器上保存着大量终端所需的线上资源服务器的DNS解析结果,可支持终端的大部分服务内容。
步骤S2,设置第一预置时长,在第一预置时长内,优先获取目标DNS服务器返回的解析结果,若在第一预置时长内,没有获取到由目标DNS服务器返回的解析结果,则获取由预设DNS服务器返回的解析结果。
终端给目标DNS服务器解析域名预设解析时长,即第一预置时长,在第一预置时长内,终端优先接收目标DNS服务器返回的解析结果。当目标DNS服务器解析超时时,为了避免目标DNS服务器解析时间过长,终端会尝试接收预设DNS服务器返回的解析结果。
在第一预置时长内,没有获取到由目标DNS服务器返回的解析结果包括目标服务器未完成解析和目标服务器解析失败两种情况。
若在第一预置时长内,获取到目标DNS服务器返回的解析失败通知,则立刻获取由预设DNS服务器返回的解析结果。
若在第一预置时长内,所述目标DNS服务器和所述预设DNS服务器均返回的是解析失败通知,则立刻向预设HTTP服务器发送所述域名解析请求,以使所述预设HTTP服务器解析所述域名解析请求。
如果在第一预置时长内,所述目标DNS服务器和所述预设DNS服务器均返回的是解析失败通知,为了保证以最快的速度获得解析结果,终端应立刻向预设HTTP服务器发送所述域名解析请求,从预设HTTP服务器获得解析结果。
设置第二预置时长,若在第一预置时长内,所述目标DNS服务器解析未完成,则在第二预置时长内,优先获取所述目标DNS服务器和所述预设DNS服务器中最先返回的解析结果。
终端给预设DNS服务器解析域名预设解析时长,即第二预置时长,也是为了避免预设DNS服务器解析时间过长,若预设DNS服务器解析时长超过第二预置时长,则需要启动下一级的解析请求,以保证在一定时间内获得解析结果。如果在第一预置时长内,所述目标DNS服务器解析未完成,但目标DNS服务器对域名的解析并没有停止,在第一预置时长到第二预置时长之间目标DNS服务器仍有可能返回解析结果,此时目标DNS服务器和预设DNS服务器返回的解析结果优先级相同,终端将获取先返回的解析结果。
终端中预置了预设DNS服务器的IP地址,可通过预设DNS服务器的IP地址进行快速的域名解析,具有快速可靠的优点,但同一域名往往对应多个IP的服务器,当所有终端请求同一个域名时,如果获取的IP结果都一样,那么会导致这个IP的服务器工作量大于其他IP的服务器,导致服务器负载不均衡。且维护预置DNS服务器是一笔额外的开销,使DNS服务器承载量和更新速度不高,因此预设DNS服务器仅能作为目标DNS服务器的补充,在解析速度和解析稳定性方面提供保障。
步骤S3,若在第二预置时长内没有获取到由所述目标DNS服务器或预设DNS服务器返回的解析结果,则向预设HTTP服务器发送域名解析请求,以使预设HTTP服务器解析域名解析请求。
在本实施例中,终端与目标DNS服务器和预设DNS服务器的通信均采用UDP通信协议,依旧容易受网络状态的影响。为了一进步保证对域名解析的稳定性,防止前两步域名解析失败,在本实施例中,提供了第三种解析服务,即终端可向预设HTTP服务器发送域名解析请求,以使预设HTTP服务器解析域名解析请求。
终端向目标DNS服务器以及预设DNS服务器发出域名解析请求使用UDP通信协议,向预设HTTP服务器发送域名解析请求使用TCP通信协议。
TCP通信协议比UDP通信协议更加稳定,不容易受网络状态的影响,但连接建立更复杂。在DNS服务器不能正常回复消息时,可以尝试使用HTTP服务器。在本实施例中,使用预设DNS服务器和预设HTTP服务器作为补充的方案,同时涉及到了这两种连接方式,保证工作方式多样性,不会因为某一通路故障而影响DNS解析的成功率。
若在第二预置时长内,所述目标DNS服务器或所述预设DNS服务器未返回解析结果,且均未返回解析失败通知,则向预设HTTP服务器发送所述域名解析请求后,优先获取所述目标DNS服务器、所述预设DNS服务器和所述预设HTTP服务器中最先返回的解析结果。
在本实施例中,向预设HTTP服务器发送域名解析请求作为最后的补充方案,也可能存在解析失败的问题,包括:
如果预设HTTP服务器完成对域名解析请求的解析,预设HTTP服务器将解析结果返回给终端;
如果预设HTTP服务器对域名解析请求的解析失败,预设HTTP服务器通知终端解析失败。
此外,预置HTTP服务器回复的内容为格式化的文本,其中可能包含很多不同的域名-IP对应结果,因此需要从中找出本次解析需要的最终IP结果。
在上述终端请求域名解析的过程中,终端始终优先接收目标DNS服务器返回的解析结果。
若超过第一预置时长后,目标DNS服务器向终端返回解析结果,则优先接收目标DNS服务器返回的解析结果。
上述方法还包括:在获取到域名解析请求对应的解析结果后,将接收到的解析结果存储于本地域名库中。
无论本地域名库中是否已存在待解析域名对应的解析结果,终端在获取到域名解析请求对应的解析结果后,都将解析结果存储与本地域名库中。当本地域名库中已存在待解析域名对应的解析结果时,终端将获取到的域名解析请求对应的解析结果存于本地域名库是对本地域名库的更新,防止本地域名库中的解析结果过期;当本地域名库中不存在待解析域名对应的解析结果时,终端将获取到的域名解析请求对应的解析结果存于本地域名库是对本地域名库的扩张,增加本地域名空存储的解析结果的数量。
图2示意性示出了本公开实施例提供的一种DNS快速解析方法方法的另一种流程图。
如图2所示,图2示意性示出了本公开实施例中终端从获取域名到获得域名解析结果的完整过程。
首先,终端获取待解析的域名。
当终端获取待解析的域名后,判断本地域名库中是否存在待解析的域名。
如果所述本地域名库中存在所述待解析的域名,则终端获取所述本地域名库中存储的所述待解析的域名对应的解析结果,并向所述目标DNS服务器以及所述预设DNS服务器发出所述域名解析请求,获取所述待解析的域名最新的解析结果,更新本地域名库;
如果所述本地域名库中不存在所述待解析的域名,则终端向所述目标DNS服务器以及所述预设DNS服务器发出所述域名解析请求,获取所述待解析的域名最新的解析结果,并将解析结果存入本地域名库。
当本地域名库中不存在待解析的域名时,终端再向所处网络环境中系统默认的目标DNS服务器和预设DNS服务器发送域名解析请求,包括:
向目标DNS服务器发出域名解析请求,以使目标DNS服务器解析域名解析请求;
向预设DNS服务器发出域名解析请求,以使预设DNS服务器解析域名解析请求。
判断是否超过第一预置时长。
在所述第一预置时长内,优先获取所述目标DNS服务器返回的解析结果,若在第一预置时长内,终端没有获取到由目标DNS服务器返回的解析结果,则获取由预设DNS服务器返回的解析结果。
判断是否超过第二预置时长。
在获取预设DNS服务器返回的解析结果之前,判断是否优先获取到了目标DNS服务器返回的解析结果。
如果在第一预置时长内,所述目标DNS服务器解析未完成,在第一预置时长到第二预置时长之间目标DNS服务器仍有可能返回解析结果,此时目标DNS服务器和预设DNS服务器返回的解析结果优先级相同,终端将获取先返回的解析结果。
若在第二预置时长内,终端没有获取到由预设DNS服务器返回的解析结果,则向预设HTTP服务器发送域名解析请求,以使预设HTTP服务器解析域名解析请求。
在获取预设HTTP服务器返回的解析结果之前,判断是否优先获取了目标DNS服务器和预设DNS服务器返回的的解析结果。
在第二预置时长内,所述目标DNS服务器或所述预设DNS服务器未返回解析结果,且均未返回解析失败通知,所述目标DNS服务器或所述预设DNS服务器对域名的解析并未停止,在第二预置时长外仍有可能返回解析结果,因此,终端向预设HTTP服务器发送所述域名解析请求后,目标DNS服务器、预设DNS服务器和预设HTTP服务器均有可能返回解析结果,终端将获取最先返回的其中一个解析结果。
第一预置时长可以预置为10毫秒、20毫秒,100毫秒,200毫秒;
第二预置时长可以预置1秒,2秒等。
其中第一预置时长为20-100毫秒,尤其是50-80毫秒;第二预置时长为1.2-1.8秒,针对智能语音识别平台,交互效率较为适中;此时用户需要获取的解析目标为智能语音识别服务器或智能语音识别云平台。
预设HTTP服务器对域名解析请求进行解析,不管解析是否成功,预设HTTP服务器都会向终端返回解析结果,包括:
如果预设HTTP服务器完成对域名解析请求的解析,预设HTTP服务器将解析结果返回给终端;
如果预设HTTP服务器对域名解析请求的解析失败,预设HTTP服务器通知终端解析失败。
终端在获取到域名解析请求对应的解析结果后,将接收到的解析结果存储于本地域名库中,包括:
判断本地域名库中是否已存在解析结果;
如果本地域名库中已存在解析结果,则更新本地域名库;
如果本地域名库中不存在解析结果,则将获取到的解析结果存储于本地域名库中。
将解析结果存入本地域名库后,终端将输出解析结果。
在上述过程中,还存在目标DNS服务器和预设DNS服务器返回解析失败通知的情况,在图中未示出。
在第一预置时长内,假设目标DNS服务器返回了解析失败通知,则立刻获取预置DNS服务器的返回的解析结果;
如果在第一预置时长内,预置DNS服务器也返回了解析失败通知,则立刻向预设HTTP服务器发送域名解析请求,以保证获取解析结果的速度;
如果在第二预置时长内,目标DNS服务器和预置DNS服务器均返回了解析失败通知,不必等到超过第二预置时长,立刻向预设HTTP服务器发送域名解析请求。
本公开实施例为终端提供了多级DNS解析服务,当终端产生到域名解析请求后,同时向目标DNS服务器以及预设DNS服务器发出域名解析请求,在目标DNS服务器未能返回解析结果时,返回预设DNS服务器的解析结果,当目标DNS服务器、预设DNS服务器均未能返回解析结果时,再向预设HTTP服务器发送域名解析请求,由预设HTTP服务器作为补充方案返回解析结果。多级解析服务器相互配合,最大限度地保证在一定时间内返回解析结果。其中,终端与目标DNS服务器以及预设DNS服务器之间的通信使用UDP通信协议,与预设HTTP服务器的通信使用TCP通信协议,可保证通信连接更稳定,必免终端的DNS解析受网络状态的影响。本公开提出的技术方案提高了终端的DNS解析速度和成功率,保证了终端在复杂网络状态下的快速响应。
图3本公开实施例提供的一种DNS快速解析的结构框图。
如图3所示,DNS快速解析装置包括:第一处理模块310及第二处理模块320。
具体地,第一处理模块310,用于向目标DNS服务器以及预设DNS服务器发出域名解析请求,以使目标DNS服务器以及预设DNS服务器分别解析解析请求,分别得到对应的解析结果,并分别向终端发送对应的解析结果;
第二处理模块320,用于设置第一预置时长,在所述第一预置时长内,优先获取所述目标DNS服务器返回的解析结果,若在第一预置时长内,没有获取到由所述目标DNS服务器返回的解析结果,则获取由所述预设DNS服务器返回的解析结果。
可以理解的是,第一处理模块310及第二处理模块320可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,第一处理模块310及第二处理模块320中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,第一处理模块310及第二处理模块320中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图4示意性示出了本公开实施例提供的一种终端的结构框图。
请参见图4,图4示出了一种终端的硬件结构图。
本实施例中所描述的终端,包括:
存储器41、处理器42及存储在存储器41上并可在处理器上运行的计算机程序,处理器执行该程序时实现前述图1所示实施例中描述的一种DNS快速解析方法。
进一步地,该终端还包括:
至少一个输入设备43;至少一个输出设备44。
上述存储器41、处理器42、输入设备43和输出设备44通过总线45连接。
其中,输入设备43具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备44具体可为显示屏。
存储器41可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器41用于存储一组可执行程序代码,处理器42与存储器41耦合。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (10)

1.一种DNS快速解析方法,应用于终端,其特征在于,包括:
向目标DNS服务器以及预设DNS服务器发出域名解析请求,以使所述目标DNS服务器以及预设DNS服务器分别解析所述域名解析请求,分别得到对应的解析结果,并分别向终端发送对应的解析结果;
设置第一预置时长,在所述第一预置时长内,优先获取所述目标DNS服务器返回的解析结果,若在第一预置时长内,没有获取到由所述目标DNS服务器返回的解析结果,则获取由所述预设DNS服务器返回的解析结果。
2.根据权利要求1所述的方法,其特征在于,所述若在第一预置时长内,没有获取到由所述目标DNS服务器返回的解析结果,则获取由所述预设DNS服务器返回的解析结果包括:
若在所述第一预置时长内,获取到所述目标DNS服务器返回的解析失败通知,则立刻获取由所述预设DNS服务器返回的解析结果;
若在所述第一预置时长内,所述目标DNS服务器和所述预设DNS服务器均返回的是解析失败通知,则立刻向预设HTTP服务器发送所述域名解析请求,以使所述预设HTTP服务器解析所述域名解析请求;
设置第二预置时长,若在所述第一预置时长内,所述目标DNS服务器解析未完成,则在所述第二预置时长内,优先获取所述目标DNS服务器和所述预设DNS服务器中最先返回的解析结果。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在所述第二预置时长内,没有获取到由所述目标DNS服务器或所述预设DNS服务器返回的解析结果,则向预设HTTP服务器发送所述域名解析请求,以使所述预设HTTP服务器解析所述域名解析请求。
4.根据权利要求3所述的方法,其特征在于,所述若在所述第二预置时长内,没有获取到由所述目标DNS服务器或所述预设DNS服务器返回的解析结果,则向预设HTTP服务器发送所述域名解析请求,以使所述预设HTTP服务器解析所述域名解析请求包括:
如果所述预设HTTP服务器完成对所述域名解析请求的解析,所述预设HTTP服务器将解析结果返回给所述终端;
如果所述预设HTTP服务器对所述域名解析请求的解析失败,所述预设HTTP服务器通知所述终端解析失败。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在获取到所述域名解析请求对应的解析结果后,将接收到的解析结果存储于本地域名库中。
6.根据权利要求1至4所述的方法,其特征在于,在所述方法之前,还包括:
获取待解析的域名;
判断所述本地域名库中是否存在所述待解析的域名;
如果所述本地域名库中存在所述待解析的域名,则获取所述本地域名库中存储的所述待解析的域名对应的解析结果,并向所述目标DNS服务器以及所述预设DNS服务器发出所述域名解析请求,获取所述待解析的域名最新的解析结果,更新本地域名库;
如果所述本地域名库中不存在所述待解析的域名,则向所述目标DNS服务器以及所述预设DNS服务器发出所述域名解析请求,获取所述待解析的域名最新的解析结果,并将解析结果存入本地域名库。
7.根据权利要求1所述的方法,其特征在于,所述终端向目标DNS服务器以及预设DNS服务器发出域名解析请求使用UDP通信协议,向预设HTTP服务器发送域名解析请求使用TCP通信协议。
8.一种DNS快速解析装置,其特征在于,包括:
第一处理模块,用于向目标DNS服务器以及预设DNS服务器发出域名解析请求,以使所述目标DNS服务器以及预设DNS服务器分别解析所述域名解析请求,分别得到对应的解析结果,并分别向终端发送对应的解析结果;
第二处理模块,用于设置第一预置时长,在所述第一预置时长内,优先获取所述目标DNS服务器返回的解析结果,若在第一预置时长内,没有获取到由所述目标DNS服务器返回的解析结果,则获取由所述预设DNS服务器返回的解析结果。
9.一种终端,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求1至7中的任一项所述的一种DNS快速解析方法中的各个步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任一项所述的一种DNS快速解析方法方法中的各个步骤。
CN201910572490.5A 2019-06-27 2019-06-27 一种dns快速解析方法、装置、终端及介质 Pending CN112153166A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910572490.5A CN112153166A (zh) 2019-06-27 2019-06-27 一种dns快速解析方法、装置、终端及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910572490.5A CN112153166A (zh) 2019-06-27 2019-06-27 一种dns快速解析方法、装置、终端及介质

Publications (1)

Publication Number Publication Date
CN112153166A true CN112153166A (zh) 2020-12-29

Family

ID=73869116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910572490.5A Pending CN112153166A (zh) 2019-06-27 2019-06-27 一种dns快速解析方法、装置、终端及介质

Country Status (1)

Country Link
CN (1) CN112153166A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472915A (zh) * 2021-06-30 2021-10-01 中国平安人寿保险股份有限公司 域名解析方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025794A (zh) * 2010-01-22 2011-04-20 中国移动通信集团北京有限公司 一种域名解析方法、dns服务器及系统
CN102790808A (zh) * 2011-05-16 2012-11-21 奇智软件(北京)有限公司 一种域名解析方法和系统、一种客户端
CN106331216A (zh) * 2016-09-13 2017-01-11 腾讯科技(深圳)有限公司 域名的解析方法和装置
CN106657426A (zh) * 2015-11-04 2017-05-10 中兴通讯股份有限公司 域名解析请求的处理方法、装置及服务器
CN107124482A (zh) * 2017-05-26 2017-09-01 深圳市米联科信息技术有限公司 一种dns数据包转发方法、系统及路由器
US9756071B1 (en) * 2014-09-16 2017-09-05 A10 Networks, Inc. DNS denial of service attack protection
CN109347997A (zh) * 2018-12-18 2019-02-15 深圳创维数字技术有限公司 域名解析方法、装置、服务器及存储介质
CN109639748A (zh) * 2017-10-09 2019-04-16 阿里巴巴集团控股有限公司 Dns服务器的缓存更新方法、装置、系统及域名系统
CN109922120A (zh) * 2018-12-10 2019-06-21 网宿科技股份有限公司 提高dns可用性的方法及终端

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025794A (zh) * 2010-01-22 2011-04-20 中国移动通信集团北京有限公司 一种域名解析方法、dns服务器及系统
CN102790808A (zh) * 2011-05-16 2012-11-21 奇智软件(北京)有限公司 一种域名解析方法和系统、一种客户端
US9756071B1 (en) * 2014-09-16 2017-09-05 A10 Networks, Inc. DNS denial of service attack protection
CN106657426A (zh) * 2015-11-04 2017-05-10 中兴通讯股份有限公司 域名解析请求的处理方法、装置及服务器
CN106331216A (zh) * 2016-09-13 2017-01-11 腾讯科技(深圳)有限公司 域名的解析方法和装置
CN107124482A (zh) * 2017-05-26 2017-09-01 深圳市米联科信息技术有限公司 一种dns数据包转发方法、系统及路由器
CN109639748A (zh) * 2017-10-09 2019-04-16 阿里巴巴集团控股有限公司 Dns服务器的缓存更新方法、装置、系统及域名系统
CN109922120A (zh) * 2018-12-10 2019-06-21 网宿科技股份有限公司 提高dns可用性的方法及终端
CN109347997A (zh) * 2018-12-18 2019-02-15 深圳创维数字技术有限公司 域名解析方法、装置、服务器及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472915A (zh) * 2021-06-30 2021-10-01 中国平安人寿保险股份有限公司 域名解析方法、装置、设备及存储介质
CN113472915B (zh) * 2021-06-30 2023-02-07 中国平安人寿保险股份有限公司 域名解析方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
EP3002927B1 (en) Page redirection method, routing device, terminal device and system
US10838769B2 (en) Application program interface based service lookup in a service architecture
US8438251B2 (en) Methods and systems for implementing a virtual storage network
US20190199834A1 (en) Method, apparatus and terminal device for communication protocol compatibility
US20110265071A1 (en) Apparatus and Method for Loading and Updating Codes of Cluster-Based Java Application System
US10126980B2 (en) Managing data operations in a quorum-based data replication system
CN113259479B (zh) 一种数据处理方法以及设备
US20170289243A1 (en) Domain name resolution method and electronic device
US20190081924A1 (en) Discovering address mobility events using dynamic domain name services
EP2779583A1 (en) Telecommunication method and system
US8326913B2 (en) Method and system for service contract discovery
US20160100025A1 (en) Ui framework support for portal systems
CN103701867A (zh) 一种处理调用请求的方法、系统及中心服务器
US20170155741A1 (en) Server, method, and system for providing service data
US20170374154A1 (en) Generating a response to a client device in an internet of things domain
US10462258B2 (en) Resource download method, electronic device, and apparatus
CN111694639A (zh) 进程容器地址的更新方法、装置和电子设备
CN109710832B (zh) 一种用于搜索寄宿程序的方法与设备
CN112153166A (zh) 一种dns快速解析方法、装置、终端及介质
WO2018068655A1 (zh) 一种许可管理方法和系统
AU2018390863B2 (en) Computer system and method for extracting dynamic content from websites
CN111818179A (zh) 用户请求的处理方法、装置、计算设备和介质
KR102196403B1 (ko) 재지향 감소
CN109660589B (zh) 请求处理方法及装置、电子设备
US10146885B1 (en) Method and system for deciding on ordering of scripting language source code for dependency resolution

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination