DNS 怎么工作
很少有人能记住所有朋友的电话号码,通常都是在通讯录里按名字找。互联网也一样:电脑靠数字地址找到彼此,可人很难记住这些数字。所以我们用好记的名字,再由 DNS 把名字换成数字地址。
名字比数字好记
前面学过,电脑靠数字地址找到彼此。可这些数字,人记起来非常费劲。
就像不用背电话号码、按名字找人一样,我们用好记的名字来代替数字。在地址栏里输入的那个名字,叫作域名。
点名字卡片和数字地址卡片比一比。名字一眼就记住,数字一下就弄混,哪个更好记,马上就能体会到。
名字看一眼就记住了,数字却很快就弄混。人想用名字,电脑需要数字,双方想要的东西不一样。
所以,得有人把名字换成数字。做这件事的,就是 DNS。
向 DNS 询问名字
想按名字去某个地方时,电脑会先问 DNS:“这个名字的数字地址是什么?”DNS 就会回答:“那个名字的地址是这个。”
就像打查号台报上名字,对方告诉你号码一样。像这样凭名字查出地址,叫作域名解析,也叫查询。
点一个名字,我的电脑就会向 DNS 发出问题,这个名字的数字地址会作为答案传回来。
问题一发出去,地址就清清楚楚地回来了。我们只知道名字,电脑要用的数字却到手了。
现在,就能朝着这个数字地址真正开始连接了。可 DNS 到底把那么多名字和地址记在哪儿?
DNS 是一本巨大的电话簿
DNS 就像一份记着大量“名字和地址”配对的清单。想想电话簿就明白了:名字一个个排下来,旁边写着对应的地址。
一报名字,DNS 就在清单里找到对应的那一对,把地址取出来。所以我们只要报出名字就行。
在电话簿里点一个名字,对应的那一行就会亮起来,显示这个名字的数字地址。每个名字都配着一个地址。
不过,真实的 DNS 并不是一本书。世界上的名字实在太多,所以由全球无数台服务器分工保存这份清单。
最顶上的根服务器会告诉你负责“.com”这类结尾名字的服务器,那台服务器再告诉你这个名字的主人所运营的服务器。就这样依次问上几次,拿到最终答案。
可要是每次都从头走一遍这条路,就会很慢。所以有个聪明的办法。
查过一次就记下来
查过一次的名字和地址,先记一会儿才聪明。像这样记下来,叫作缓存。
下次再查同一个名字,就不用跑到远处的电话簿,直接从旁边记下的内容里取出地址就行。所以从第二次起,连接要快得多。
把同一个名字查两次。第一次要跑到电话簿,所以慢;第二次直接取出记下的地址,所以快。点“清空记忆”,就会重新从头查。
第二次查询明显快多了,因为没跑去电话簿,而是直接从记忆里取出来的。
当然,记忆只保留一小会儿。地址可能会变,所以不能太久地相信它;能记多久,由这个名字的主人来定。
即便如此,在这一小段时间里,有了记忆,互联网就更快了。
小结
一句话概括:人用名字,电脑用数字,DNS 把名字换成数字地址。
DNS 就像一本塞满配对的巨大电话簿,查过一次的会先记一阵子,下次就更快。所以我们可以把复杂的数字交给 DNS,自己只记名字就好。
每点一次按钮,就会多出现一个要点。(名字 vs 数字 → 问 DNS → 巨大的电话簿 → 查过就记住)四个都出现,回顾就完成了。
现在你知道名字是怎样变成数字地址的了。拿到了地址,终于可以把数据发给对方的电脑了。
可要是有几个数据包在路上丢了,或者顺序乱了,会怎样?下一课,就来讲怎样保证数据一样不漏、按顺序送到。