[译] DNS: 为什么重要&如何工做

原文:https://dyn.com/blog/dns-why-its-important-how-it-works/web

域名系统(Domain Name System,也就是 DNS)被用来将人类可读的诸如 www.dyn.com 这样的主机名称处理成相似 204.13.248.115 的机器可读的 IP 地址。DNS 也提供一些关于域名的其余信息,好比邮件服务(译注:可参阅 https://baike.baidu.com/item/邮件服务器#3_4)。浏览器

可是为何说 DNS 如此重要?它是如何工做的?还有什么是你应该知道的呢?缓存

为何说 DNS 如此重要 ?

DNS 就像互联网上的电话簿。若是你知道某人的名字但不知道他的电话号码,在电话簿上就能够轻易查找到。DNS 在互联网上就提供了一样的服务。服务器

当你用浏览器访问 http://www.dyn.com 时,你的计算机使用 DNS 检索到该网站的 IP 地址为 204.13.248.115。若是没有 DNS,那就只能用 IP 地址直接访问网站了。网络

DNS 是如何工做的 ?

当你访问诸如 http://www.dyn.com 这样的域名时,你的计算机会按如下顺序,一步步的将人类可读的 web 地址转换为机器可读的 IP 地址。在每次使用到域名时都是这样,无论你是浏览网站、发送邮件仍是收听 Pandora 这种在线广播(译注:仅美国可用的一个极简在线音乐站点)时。网站

Step 1: 请求信息

整个过程开始于你要求计算机处理一个主机名的时候,好比说访问 http://www.dyn.com。计算机的目光首先会投向其本地的 DNS 缓存(译注:还会优先考虑代理插件、浏览器设置、hosts 文件等),那里存储了计算机最近接收过的信息。插件

若是计算机没有获得答案,就须要执行 DNS 查询 了。代理

Step 2: 询问递归式 DNS 服务器

若是本地没有存储所需的信息,计算机会联络你的 ISP(网络服务提供商)的递归式 DNS 服务器。这些专门的机器帮你干了 DNS 查询 的跑腿儿活。递归式服务器也有其自身的缓存,因此经常在这步就能完成查询过程,并将信息返回给用户了。code

Step 3: 询问 root 服务器

若是递归式服务器也没有答案,它们就会去查询 root nameservers 。一个 nameserver 就是一台用以回答关于域名的问题(如 IP 地址)的机器。全球的 13 个 root 服务器(译注:每一个又有若干台镜像,截至2017年11月,全球共有800台根域名服务器在运行)扮演着 DNS 的电话接线总机的角色。它们并不知道答案,但能够告诉咱们去问谁,从而能够找到答案。cdn

Step 4: 询问 TLD 服务器

root 服务器根据请求的首个部分,按从右向左读的顺序,找到 www.dyn.com 里面的 .com,并将请求导向 .com 对应的 TLD nameservers(顶级域名服务器)。每一个 TLD,如 .com.org.us,拥有其本身的一组域名服务器,扮演其接线员的角色。这些服务器也没有咱们须要的信息,但能够直接将咱们引荐到持有信息的服务器上去。

Step 5: 询问 DNS 权威服务器

TLD 服务器继续审视请求的下一个部分 -- www.dyn.com,并将查询引导至负责这部分域名的服务器 -- 这些被称为权威服务器(authoritative nameservers) 的机器负责将特定域名的全部信息存储在 DNS 记录(DNS records) 中。记录有不少种,每种包含一种不一样的信息。

在本例中,咱们想知道 www.dyn.com 对应的 IP 地址,因此咱们向权威服务器询问 地址记录(A,也就是Address Record)

Step 6: 接收一条记录

递归式服务器从权威服务器接收到 dyn.com 的 A 记录后,将其存储在自身的本地缓存中。当其余人再请求 dyn.com 的主机记录,递归式服务器就胸有成竹了,不用再走一遍查找流程了。

全部记录都有一个 time-to-live 值,相似于过时时间。一段时间以后,递归式服务器就须要记录的新拷贝,以确保信息不会过时。

Step 7: 获得答案

你的计算机获得递归式服务器返回的带有答案的记录后,将其存储在自身的缓存中;而后从记录中读出 IP 地址,并将该信息告知你的浏览器。随后浏览器就会创建一个和服务器的链接,并接收到网站数据。

从始到终,这一整个过程,只消数毫秒即可完成。

----------------------------------------

长按二维码或搜索 fewelife 关注咱们哦

相关文章
相关标签/搜索