(4层)域名系统 DNS

1.域名系统概述

域名系统 DNS 是互联网使用的命名系统,用来把便于人们使用的机器名字转换为 IP 地址。

早在 ARPANET 时代,整个网络上只有数百台电脑,那时使用一个叫做 hosts 的文件,列出所有主机名字和相应的 IP 地址。只要用户输入一台主机名字,计算机就可以很快地把这台主机名字转换为机器能够识别的二进制 IP 地址。

为什么机器在处理 IP 数据报时要使用 IP 地址而不是域名字呢?这是因为 IP 地址的长度是固定的 32 位(如果是 IPv6 地址,那就是 128 位,也是定长的),而域名的长度并不是固定的,机器处理起来比较困难。

互联网的域名系统 DNS 被设计成为一个联机分布式数据库系统,并采用客户服务器方式。DNS 使大多数名字都在本地解析,仅少量解析需要在互联网上通信,因此 DNS 系统的效率很高。由于 DNS 是分布式系统,即使单个计算机出了故障,也不会妨碍整个 DNS 系统的正常运行。

2.互联网的域名结构

任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。这里,域 是名字空间中一个可被管理的划分。域 还可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。

级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边。

3.域名服务器

域名体系是抽象的。但具体实现域名系统则是使用分布在各地的域名服务器。根据域名服务器所起的作用,可以把域名服务器划分为以下四种不同的类型:

  • 根域名服务器:根域名服务器是最高层次的域名服务器。
  • 顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
  • 权限域名服务器:负责一个区的域名服务器。
  • 本地域名服务器:当一台主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。由此可看出本地域名服务器的重要性。

下面简单讨论一下域名的解析过程:

  • 主机向本地域名服务器的查询一般都采用递归查询。
  • 本地域名服务器向根域名服务器的查询通常采用迭代查询。

递归查询

如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。因此,递归查询返回的查询结果或者是所要查询的 IP 地址,或者是报错,表示无法查询到所需的 IP 地址。

迭代查询

当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询)。

为了提供 DNS 查询效率,并减轻根域名服务器的负荷和减少互联网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

不但域名服务器中需要高速缓存,在主机中也需要。

你可能感兴趣的:(计算机网络,前端,http,网络)