计算机网络(七):应用层之域名系统——DNS

计算机网络(七):应用层之域名系统——DNS

一、域名系统——DNS
DNS——域名系统的作用是将主机的域名转换成IP地址,使得用户能够方便地访问各种网络资源和服务,因此它是互联网各种应用层协议实现的基础。
DNS的用途如图所示,其通过六步将主机名转换成IP地址:

  1. 用户将主机名传递给文件传输客户端。
  2. 文件传输客户端将主机名传递给DNS客户端。
  3. 在启动后,每一台电脑都知道DNS服务器的地址。DNS客户端使用已知DNS服务器IP地址向DNS服务器发送附有查询的报文,查询报文使用已知的DNS服务器IP地址给出文件服务器名。
  4. DNS服务器进行响应,发回客户想要获得的文件传输服务器的IP地址。
  5. DNS客户端将IP地址传递到文件传输服务器。
  6. 文件传输客户端使用接收到的IP地址来访问文件传输服务器。
    计算机网络(七):应用层之域名系统——DNS_第1张图片

二、域名系统的功能
DNS系统提供了如下3中基本功能:
 名字空间定义:系统提供一个给所有可能出现的结点命名的名字空间;
 名字注册:系统为每台主机分配一个在全网具有唯一性的名字;
 名字解析:系统为用户提供一种有效地完成主机名与网络IP地址转换的机制
计算机网络(七):应用层之域名系统——DNS_第2张图片
其中,名字服务器的层次结构如下图所示。
计算机网络(七):应用层之域名系统——DNS_第3张图片

三、域名解析
将名字映射为地址或者将地址映射为名字的过程,称为名字-地址解析。DNS是一个客户-服务器应用程序,需要将地址映射为名字或者将名字映射为地址时,主机要调用一个称为解析程序的DNS客户程序。
解析程序用一个映射请求访问最近的一个DNS服务器。如果服务器含有该信息,它就满足解析程序的请求;否则,它将解析程序交付给其他服务器,或者查询其他服务器来提供这种服务。在解析程序接收到映射后,它解析这一响应,以确定它是一个真正的解析还是一个差错,最后将结果传递给发送这一请求的进程。
一个解析可能是递归解析或者迭代解析

  1. 递归解析
    如下图,给出递归解析的一个例子。在递归解析中,从本地DNS服务器出发(本地服务知道根服务的IP地址),若找不到对应的IP地址则一层层递归到最终知道目的主机IP地址的服务器,之后一步步返回,并将查询的结果缓存以待将来的查询(事件7),并最终返回到主机。
    计算机网络(七):应用层之域名系统——DNS_第4张图片
  2. 迭代解析
    迭代解析的一个例子如图所示。在迭代解析中,每个不知道映射的服务器将下一台服务器的IP地址发送回请求查询的主机上。图中,2、4、6给出的报文包含了相同的查询,均是查询目的主机的IP地址;而事件3给出的报文包含顶层域服务器的IP地址,事件5给出的报文包含McGraw-Hill本地DNS服务的IP地址,事件7给出的报文包含目的IP地址。
    计算机网络(七):应用层之域名系统——DNS_第5张图片
    PS:DNS报文通常是在UDP协议下实现封装的。

参考资料:《计算机网络教程:自顶向下方法》

你可能感兴趣的:(计算机网络,计算机网络,应用层,域名系统(DNS))