DNS的上班原理是什么 小米汽车1面

不论你能否从事IT行业,和网络打交道是在劫难逃,比如,微信,抖音,网购亘古未有,当咱们在阅读器外面输入一个域名,阅读器是如何定位到远程的主机?其中会教训哪些环节?当天咱们就来聊一聊其面前的原理?

一、什么是DNS?

其实,当用户在阅读器输入“example.com”启动访问时,阅读器会智能向 DNS主机发送恳求,DNS解析器将域名转换为IP地址,而后将 IP前往给阅读器,阅读器再访问该 IP,因此,整个环节中用户无需知道网站的 IP地址,却可轻松访问网站。如下图:

在上述形容中,有一个外围点是 DNS,那么,DNS是什么呢?

DNS是 Domain Name System的首字母缩写,翻译为域名系统,域名和IP地址的映射相关都保留在 DNS主机上,因此,DNS是互联网的电话簿。

网上有很多专用的 DNS主机,比如 Google的“8.8.8.8”,Cloudflare 公司的“1.1.1.1”等。

二、DNS上班原理

要了解 DNS的上班原理,须要从 DNS主机和 DNS查问环节两个关键点来启动解说。

在整个 DNS上班环节中,会教训 4种 DNS主机,整个恳求环节如下图:

1.DNS解析器

DNS解析器是一种主机,担任整个域名转IP的环节,当收到客户端 DNS查问恳求时,DNS解析器会依据“DNS查问类型”来查问对应的 IP地址。因此,递归 DNS解析器是域名转IP的总担任人。

2.根域名主机

根域名主机是将人类可读的域名转换为 IP地址的第一步,它治理着根域名,根域名用一个点(.)示意,因此,可以把根域名主机了解成一个索引。

世界共有 13组根域名主机,它们以英文字母“A到M”依序命名,网域称号格局为“A~M.root-servers.net”,详细信息如下表:

3.顶级域名主机

顶级域名主机(top-level domain,简写 TLD),托管着一些顶级域名(比如 .com,.io, .net),它是域名转IP的第二步,可以把顶级域名主机了解成一个二级索引。

4.威望性域名主机

威望性域名主机(Authoritative nameserver),它是实在存储详细域名的主机,比如(example.com,redis.io)等,它是域名转IP的最后一步,假设威望性域名主机能查问记载,则前往 IP地址,否则做以下处置:

因此,可以把威望性域名了解成一个数据行。

须要留意:在某些状况下,主域名的威望称号主机或者并不间接存储子域名的记载,而是委托给另一个专门治理子域名的称号主机。比如,CNAME记载,子域名的记载指向另一个域名,因此,CNAME记载须要额外的查问步骤,以找到实践的 IP地址或进一步的 DNS记载。

DNS是一个散布式系统,外部的域名主机以及其保留的域名是一个树状结构,如下图:

5.DNS查找环节

DNS 查找关键有以下 8个步骤:

上述 8个 DNS查找步骤可以前往“yuanjava.com”的 IP地址后,最后,阅读器经常使用该 IP地址向主机收回 HTTP恳求,失掉对应的数据显示在网页中。

整个环节如下图:

三、DNS查问类型

在上述 DNS上班原理解说时,咱们提到了 DNS查问类型,那么 DNS查问类型有哪些呢?

通常来说,DNS查问类型有 3种:

1.递归查问

在递归查问中,DNS客户端要求 DNS主机(通常是递归解析器)前往恳求的资源记载或失误信息。假设递归解析器找不到记载,就会前往一个失误。

2.迭代查问

在迭代查问中,DNS客户端准许 DNS主机前往它能提供的最佳答案。假设查问的 DNS主机没有婚配的记载,它会前往一个指向更低层域名空间的 DNS主机的援用,客户端再向援用地址收回查问。这个环节会继续,直到找到结果或出现失误或超时。

3.非递归查问

非递归查问通常出当初 DNS解析器客户端查问 DNS主机时,DNS主机能间接查到记载,要么由于它是该记载的威望主机,要么由于该记载存在于它的缓存中。通常,DNS主机会缓存 DNS记载以缩小带宽消耗和抢先主机的负载。

DNS解析器经过组合上述 3种查问模式,可以优化 DNS解析环节和缩短传输距离。在现实状况下,可以经常使用缓存的记载数据,从而使 DNS 域名主机能够前往非递归查问。

四、DNS查问实例演示

为了更好的演示域名的整个 DNS查问环节,本文经过对我的技术博客www.yuanjava.com这个域名启动 DNS解析,经常使用到的工具备dig命令,而后经常使用 3种模式启动解析:

在进入正式的解析之前,咱们先来了解下 dig指令。

dig(Domain Information Groper,域名信息搜查器)是一个用于查问 DNS信息的命令,dig可以口头各种类型的 DNS查问,并显示详细的照应信息,包括查问的解析环节、照应期间、前往的记载等。

dig的基本语法:

dig @server name type

经常使用示例

(1)查问记载

dig yuanjavacom # 前往 yuanjavacom的 IPv4地址记载dig yuanjavacom # 前往 yuanjavacom的IPv6地址记载dig yuanjavacom # 前往 yuanjavacom的邮件交流记载dig @ yuanjavacom #指定 Google公共的 dig @ yuanjavacom #指定 cloudflare公共的 

(2)结果前往

dig的输入通常蕴含以下 6个局部:

解说完 dig指令后,咱们正式进入 DNS解析的实战演习:

2.经常使用指定的DNS主机

首先,经常使用 13台根域名主机的恣意一台启动解析,这里以”198.41.0.4”为例,指令如下:

dig @ yuanjavacom

指令口头如下图:

由于根域名主机给不了”yuanjava.com”的 IP地址,所以口头结果中没有 ANSWER SECTION,但是前往了.com对应的顶级域名主机的 IPv4和 IPv6,选用第一台顶级域名主机的IPv4,继续解析,指令如下:

dig @ yuanjavacom

指令口头如下图:

顶级域名主机也给不了”yuanjava.com”的 IP地址,但前往了威望主机的 IP地址,选用第一台威望域名主机的 IP,继续解析,指令如下:

dig @ yuanjavacom

指令口头如下图:

最后,威望域名主机查到了域名对应的 IP,到此,DNS域名解析的整个环节咱们就经过手动的方法启动了演示。

3.经常使用地下的DNS主机

经常使用地下的 DNS主机,会屏蔽外部域名主机查问环节,最终给出 IP地址,区分口头上方 2个指令:

dig @ yuanjavacomdig @ yuanjavacom

指令口头结果截图如下(截图中没有 Additional局部):

4.经常使用运营商的DNS主机

除了上述两种模式,咱们还可以经常使用运营商智能性能的 DNS主机,比如上方为家庭 wifi网络的示例截图:

五、DNS缓存

由于一个域名对应的 IP地址变化的频率很低,所以,可以将域名和 IP的映射相关缓存起来并且设置必定的失效期间,从而提高数据恳求的性能和牢靠性。那么,DNS缓存有哪些呢?

1.阅读器的DNS缓存

在 Chrome阅读器中,可以经过chrome://net-internals/#dns 检查 DNS缓存的形态,如下图:

2.操作系统的DNS缓存

除了阅读器会设置 DNS缓存外,在每一层的域名主机也会设计对应的 DNS缓存,缓存查问的环节如下:

六、总结

本文经过在阅读器外面输入一个域名为例,详细地剖析了 DNS的上班原理,另外,为了更好地理解 DNS域名解析环节,咱们经过 3种模式来手动演示整个环节。

您可能还会对下面的文章感兴趣: