网络通讯大部分是基于 TCP/IP 的,而 TCP/IP 是基于 IP 地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的 IP 地址,而不能认识域名。我们无法记住 10 个以上 IP 地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名, 就能看到所需要的页面,这是因为有一个叫“DNS 服务器”的计算机自动把我们的域名“翻 译”成了相应的 IP 地址,然后调出 IP 地址所对应的网页。
具体什么是 DNS?
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于 TCP/IP 网络,它所提供的服务是用来将主机名和域名转换为 IP 地址的工作。DNS 就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。
DNS 的过程
首先是查找浏览器缓存,浏览器会保存一段时间你之前访问过的一些网址的 DNS 信息,不同浏览器保存的时常不等。如果没有找到对应的记录,这个时候浏览器会尝试调用系统缓存来继续查找这个网址 的对应 DNS 信息。
如果还是没找到对应的 IP,那么接着会发送一个请求到路由器上,然后路由器在自己的路由器缓存上查找记录,路由器一般也存有 DNS 信息。如果还是没有,这个请求就会被发送到 ISP(注:Internet Service Provider,互联网服务提供商,就是那些拉网线到你家里的运营商,中国电信中国移动什么的),ISP 也会有相应的 ISP DNS 服务器,一听中国电信就知道这个 DNS 服务器的规模肯定不会小,所以基本上都能在这里找得到。
如果还是没有的话, 你的 ISP 的 DNS 服务器会将请求发向根域名服务器进行搜索。根域名服务器就是面向全球的顶级 DNS 服务器,共有 13 台逻辑上的服务器,从 A 到 M 命名,真正的实体服务器则有几百台,分布于全球各大洲。所以这些服务器有真正完整的 DNS 数据库。如果到了这里还是找不到域名的对应信息,那只能说明一个问题:这个域名本来就不存在,它没有在网上正式注册过。或者卖域名的把它回收掉了(通常是因为欠费)。 这也就是为什么打开一个新页面会有点慢,因为本地没什么缓存,要这样递归地查询下去。