14年前的一个让我疑惑的面试题

超级欧派课程 2024-03-06 15:05:14

这个面试问题让我在14年前的一次面试中疑惑不解。

“DNS是如何运作的?”

那次面试发生在学校,当时我并没做过太多的准备。

但是,自那之后我在许多个面试中回答了这个问题,现在这个问题不再困扰我。

以下是我收集的一些重要细节,帮助你清晰回答这个问题(我也会在最后揭示我在实际的校招环节中是怎么回答的)

✅ DNS究竟是什么?

DNS(Domain Name System,域名系统)就像是互联网的电话簿。

它之所以被创造出来,是因为我们人类并不擅长记忆那些数字。

或者,你也可以说我们更擅长记忆名字。

因此,DNS服务器帮助我们将我们喜欢的网站的IP地址对应到更容易记忆的名字,例如,"google[dot]com"。

✅ DNS服务器的分类

有4种类型的DNS服务器:

- DNS递归解析器

- 根域名服务器

- 顶级域(TLD)域名服务器

- 权威域名服务器

以下是它们在等级结构中的位置:

✅ DNS查询的步骤

当你在浏览器中访问 "www[dot]google[dot]com" 时,DNS是如何解析的?

在最糟糕的情况下需要10个步骤。

步骤一

[1] 浏览器将DNS查询发送给操作系统。

[2] 操作系统会首先检查自己的缓存。

[3] 如果找到了,那就一切顺利。否则,操作系统会将查询发送给DNS递归解析器(由你的网络服务提供商提供)

步骤二

[1] DNS递归解析器就像那种无论做什么都会完成任务的员工。

[2] 它从查询全球13个根IP地址中的一个开始获取IP地址,这些地址都由一些全球重要组织控制。

步骤三

[1] 这些根域名服务器记录着诸如com、net等顶级域名的位置。

[2] 由于这些根服务器并不知道www[dot]google[dot]com的IP地址,所以他们只返回“com”服务器的位置。

步骤四

[1] 接下来,DNS解析器会查询顶级域名“com”服务器的地址。

[2] 每个顶级域名都有4-13个名服务器集群分布在多个不同的位置。

步骤五

[1] 顶级域名服务器也并不知道google[dot]com的IP地址。

[2] 但是,它知道Google的名服务器的位置,例如“ns1[dot]google[dot]com”。

步骤六

[1] 最后,DNS解析器查询Google的某个名服务器来获取IP地址。

[2] 基本上来说,这些就是对应的域的权威名服务器。

步骤七

[1] 这一次,名服务器知道IP地址。

[2] 这是因为它实际上是对应的那个域的权威名服务器。

步骤八

[1] DNS解析器获得IP地址。

[2] 它将IP地址提供给用户的操作系统。

步骤九和十

[1] 操作系统将这个IP地址提供给浏览器。

[2] 浏览器随后启动和服务器的TCP连接(前提是它使用的是HTTP/1或HTTP/2协议)。

尽管这整个过程可能看起来复杂。

事实确实如此,但是通常,DNS解析并不需要逐一经过每个步骤:

- 浏览器会把DNS记录缓存一段时间

- 在去找DNS解析器之前,操作系统也会检查自身的缓存

- 此外,所有的DNS服务器都会维护自己的缓存来缩短整个过程。

至于我当时的面试?

让我来告诉你,尽管我的回答是“我现在不清楚,但我肯定稍后会查阅”,我依然被录取了。

有时,你只需要有足够的运气。但是,做好准备永远是更好的选择。

你在面试中是否遇到过这个问题,或者类似的问题?

如果想了解更多面试技巧和注意事项可以关注我的专栏,里面有更多面试技巧哦

0 阅读:0

超级欧派课程

简介:感谢大家的关注