第10章应用层 第10章应用层 基本要求:掌握TCPP的应用层的主要应用及工作原理,包括DNS服务、HTTP服 务、FTP服务和E-mail服务:理解OSI应用层的功能与作用。 本章难点:应用实体的组成及服务,DS域名服务的体系结构及工作过程,电子邮件服 务的工作过程,FTP服务的工作原理。 教学时数和实验:5-6学时,建议另外开设各2学时的“DNS的配置”、 “FTP的配置 与使用”和“WW服务的配置与使用”实验。 在前面各章中,我们对0SI参考模型下面六层的功能进行了讨论,并介绍了工作在物 理层和数据链路层的各种局域网技术和广域网技术。0SI参考模型下面六层所实现的最终目 的就是为应用层服务的。应用层为网络用户提供了名种名样的网络应用服务,是用户使用 网络应用的接口,如果没有应用层,那么下面各层的存在就失去了意义。本章我们先简单 回顾OSI应用层的功能,然后着重就TCP/IP应用层展开讨论。 10.1应用层功能概述 应用层位于OS参考模型的最高层,其通过使用下面各层所提供的服务,直接向用户 提供服务,是计算机网络与用户之间的界面或接口。应用层由若干面向用户提供服务的应 用程序和支持应用程序的通信组件组成。 为了向用户提供有效的网络应用服务,应用层需要确立相互通信的应用程序或进程的 有效性并提供同步,需要提供应用程序或进程所需要的信息交换和远程操作,需要建立错 误恢复的机制以保证应用层数据的一致性。应用层为各种实际的应用所提供这些通信支持 服务统称为应用服务组件((application serviceelement,简称ASE)。 不同的ASE使得各种实际的应用能够方便地与下层进行通信。其中,最重要的三个 ASE分别是关联控制服务组件(association contro serviceelement,简称ACS曰)、远端操作业 务组件(remote operation service element,简称ROSE)和传输服务组件(reliable transfer service ,简称RTSE).ACSE可以将两个应用程序名关联起来,用于在两个应用程序之间 建立、维护和终止连接:ROSE采用类似远端过程调用的请求-应答机制实现远程操作:RTSE 则通过优化会话层来提供可靠的传输。 在应用服务组件外,OSI的应用层提供了五种不同的应用协议来解决不同的应用类型要 求。它们是报文处理系统(Message Handling System,简称MHS):文件传送、存取和管理 (File Transfer,Access and Management,简称FTAM):虚拟终端协议(Virtual Terminal
第 10 章 应用层 1 第 10 章 应用层 基本要求:掌握 TCP/IP 的应用层的主要应用及工作原理,包括 DNS 服务、 HTTP 服 务、 FTP 服务和 E-mail 服务;理解 OSI 应用层的功能与作用。 本章难点:应用实体的组成及服务,DNS 域名服务的体系结构及工作过程,电子邮件服 务的工作过程,FTP 服务的工作原理。 教学时数和实验:5-6 学时,建议另外开设各 2 学时的“DNS 的配置”、 “FTP 的配置 与使用”和“WWW 服务的配置与使用”实验。 在前面各章中,我们对 OSI 参考模型下面六层的功能进行了讨论,并介绍了工作在物 理层和数据链路层的各种局域网技术和广域网技术。OSI 参考模型下面六层所实现的最终目 的就是为应用层服务的。应用层为网络用户提供了多种多样的网络应用服务,是用户使用 网络应用的接口,如果没有应用层,那么下面各层的存在就失去了意义。本章我们先简单 回顾 OSI 应用层的功能,然后着重就 TCP/IP 应用层展开讨论。 10.1 应用层功能概述 应用层位于 OSI 参考模型的最高层,其通过使用下面各层所提供的服务,直接向用户 提供服务,是计算机网络与用户之间的界面或接口。应用层由若干面向用户提供服务的应 用程序和支持应用程序的通信组件组成。 为了向用户提供有效的网络应用服务,应用层需要确立相互通信的应用程序或进程的 有效性并提供同步,需要提供应用程序或进程所需要的信息交换和远程操作,需要建立错 误恢复的机制以保证应用层数据的一致性。应用层为各种实际的应用所提供这些通信支持 服务统称为应用服务组件(application service element,简称 ASE)。 不同的 ASE 使得各种实际的应用能够方便地与下层进行通信。其中,最重要的三个 ASE 分别是关联控制服务组件(association control service element,简称 ACSE)、远端操作业 务组件(remote operation service element,简称 ROSE)和传输服务组件(reliable transfer service element,简称 RTSE)。ACSE 可以将两个应用程序名关联起来,用于在两个应用程序之间 建立、维护和终止连接;ROSE 采用类似远端过程调用的请求-应答机制实现远程操作;RTSE 则通过优化会话层来提供可靠的传输。 在应用服务组件外,OSI 的应用层提供了五种不同的应用协议来解决不同的应用类型要 求。它们是报文处理系统(Message Handling System,简称 MHS);文件传送、存取和管理 (File Transfer,Access and Management,简称 FTAM);虚拟终端协议(Virtual Terminal
《计算机网络技术》 Protocol,简称VTP):目录服务(Directory Service,简称DS):事物处理(Transaction Processing,简称TP):远程数据库访问(Remote Database Access,简称RDA)等。 但是,由于目前OS1七层模型只是起到参考模型的作用,所以并没有实际的网络应用 是按照上述协议实现的。而TCPP的应用层却相反,拥有许多主流的应用层协议和基于这 些协议实现的TCPAP应用。 10.2 TCP/IP的应用层 10.2.1概述 TCPP的应用层解决TCP/IP应用所存在的共性问题,包括与应用相关的支撑协议和应 用协议两大部分。TCPP应用层的支撑协议包括域名服务系统(DNS)、简单网络管理协议 (SNMP)等:典型应用包括WEB浏览、电子邮件、文件传输访问、远程登录等,与应用 相关的协议包括超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、文件传输协议(FTP)、 简单文件传输协议(TFTP)和虚拟终端协议(Telnet).等。下面我们就一些典型的应用层协 议的功能和作用作一下简介。 ·DNS:实现域名和P地址之间的相互转换。 ●SNMP:由于因特网结构复杂,拥有众多的操作者,因此需要好的工具进行网络管 理,而SNMP提供了一种监控和管理计算机网络的有效方法。日前其己成为计算 机网络管理的事实标准。 HTTP:用来在浏览器和WWW服务器之间传送超文本的协议。 ● SMTP:一个用于实现电子邮件传输的应用协议。 ·FTP:建立在TCP协议上,用于实现文件传输的协议。通过FTP用户可以方便地 连接到远程服务器上,可以进行查看、别除、移动、复制、更名远程服务器上的 文件内容的操作,并能进行上传文件和下载文件等操作。 ●TFTP:建立在UDP协议之上用于提供小而简单的文件传输服务,从某个意义上来 说是对FTP的一种补充,特别是在文件特别小并且只有传输需求的时候该协议显 得更加有效率。 Telnet:实现虚拟或仿真终端的服务,允许用户把自己的计算机当作远程主机上的 一个终端,使用基于文本界面的命令连接并控制远程计算机。通过该协议用户可 以登录到远程主机上并在远程主机上执行操作命令,来控制和管理远程主机上的 文件及其他资源。 下面若干小节,我们将选择上面这些协议中的一些重要或典型的例子进行较详细的讨
2 《计算机网络技术》 Protocol ,简称 VTP);目录服务(Directory Service,简称 DS);事物处理(Transaction Processing,简称 TP);远程数据库访问(Remote Database Access,简称 RDA)等。 但是,由于目前 OSI 七层模型只是起到参考模型的作用,所以并没有实际的网络应用 是按照上述协议实现的。而 TCP/IP 的应用层却相反,拥有许多主流的应用层协议和基于这 些协议实现的 TCP/IP 应用。 10.2 TCP/IP 的应用层 10.2.1 概述 TCP/IP 的应用层解决 TCP/IP 应用所存在的共性问题,包括与应用相关的支撑协议和应 用协议两大部分。TCP/IP 应用层的支撑协议包括域名服务系统(DNS)、简单网络管理协议 (SNMP)等;典型应用包括 WEB 浏览、电子邮件、文件传输访问、远程登录等,与应用 相关的协议包括超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、文件传输协议(FTP)、 简单文件传输协议(TFTP)和虚拟终端协议(Telnet)等。下面我们就一些典型的应用层协 议的功能和作用作一下简介。 z DNS:实现域名和 IP 地址之间的相互转换。 z SNMP:由于因特网结构复杂,拥有众多的操作者,因此需要好的工具进行网络管 理,而 SNMP 提供了一种监控和管理计算机网络的有效方法。目前其已成为计算 机网络管理的事实标准。 z HTTP:用来在浏览器和 WWW 服务器之间传送超文本的协议。 z SMTP:一个用于实现电子邮件传输的应用协议。 z FTP:建立在 TCP 协议上,用于实现文件传输的协议。通过 FTP 用户可以方便地 连接到远程服务器上,可以进行查看、删除、移动、复制、更名远程服务器上的 文件内容的操作,并能进行上传文件和下载文件等操作。 z TFTP:建立在 UDP 协议之上用于提供小而简单的文件传输服务,从某个意义上来 说是对 FTP 的一种补充,特别是在文件特别小并且只有传输需求的时候该协议显 得更加有效率。 z Telnet:实现虚拟或仿真终端的服务,允许用户把自己的计算机当作远程主机上的 一个终端,使用基于文本界面的命令连接并控制远程计算机。通过该协议用户可 以登录到远程主机上并在远程主机上执行操作命令,来控制和管理远程主机上的 文件及其他资源。 下面若干小节,我们将选择上面这些协议中的一些重要或典型的例子进行较详细的讨 论
第10章应用层 10.2.2DNS服务 任何TCPP应用在网络层都是基于P协议实现的,因此必然要涉及到P地址。但是 32位二进制长度的P地址难以记忆,即使采用打点十进制表示也不具备太大的可记忆性。 所以应用程序很少直接使用P地址来访问主机。一般采用更容易记忆的ASC串符号来指 代P地址,这种特殊用途的ASCI串被称为域名。 例如 人们很容易记住代表新浪网的域 名“www.sia.com”,但是恐怕极少有人知道或者记得新浪网站的P地址。使用域名访问主 机虽然方便,但却带来了一个新的问题,即所有的应用程序在使用这种方式访问网络时, 首先需要将这种以ASCI串表示的域名转换为P地址,因为网络本身只认识P地址。哪么 如何解决域名和P地址之间的映射问题呢? 域名与IP地址的映射在上个世纪0年代由网络信息中心(NIC)负责完成,NIC记录 所有的域名地址和P地址的映射关系,并负责将记录的地址映射信息分发给接入因特网的 所有最低级域名服务器(仅管辖域内的主机和用户)。每台服务器上维护一个称之为 “hosts.xt'的文件,记录其他各域的域名服务器及其对应的IP地址。NIC负责所有域名服 务器上"hosts txt"文件的一致性。主机之间的通信直接查阅域名服务器上的hosts.txt文件。 但是,随者网络规模的扩大,接入网络的主机也不断增加,从而要求每台域名服务器都可 以容纳所有的域名地址信息就变得极不现实,同时对不断增大的hosts.txt文件一致性的维扩 也浪费了大量的网络系统资源。 为了解决i这些问题,提出了域名系统DNS(domain name system),它通过分级的域名 服务和管理功能提供了高效的域名解释服务。DNS包括域及域名、主机、域名服务器三大 要素。 1.域、域名和域名空间 域(Domain)指由地理位置或业务类型而联系在一起的一组计算机构成的一种集合, -个域内可以容纳多台主机。在域中,所有主机由域名(Domain name)米标识,而域名由字 符和(或)数字组成,用于替代主机的数字化地址。当因特网的规模不断增大时,域和域 中所拥有的主机数目也随之增多,管理一个大而经常变化的域名集合就变得非常复杂,为 此提出了一种分级的基于域的命名机制,从而得到了分级结构的域名空间。 域名空间的分级结构有点类似于邮政系统中的分级地址结构,如“中国浙江省温州 大学信息学院某某某”。如图10.1所示,在域名空间的根域之下,被分为几百个顶级 (top-level)域,其中每个域可以包括许多主机。还可以被划分为子域,而子域下还可以有 更小的子域划分。域名空间的整个形状如一棵倒立的树,根不代表任何具体的域,树叶则 代表没有子域的域,但这种叶子域可以包含一台主机或者成千上万台的主机。 顶级域名由一般域名和闲家域名两大举组成。其中,一般域名最初只有六个域,即CO (商业机构)、EDU(教有单位 GOV (政府音 MIL (军直苗位) NET 提供网络 服务的系统)和OG(非COM类的组织),后来又增加了一个为国际组织所使用的顶级域 名NT:国家级域名是指代表不同国家的顶级域名,如CN表示中国、UK表示英国、FR 表示法国、P表示日本等等。几乎所有美国组织都处于一般域中,而几乎所有非美国的组 织都列在其所在国的域下。 采用分级结构的域名空间后,每个域就采用从节点往上到根的路径命名 一个完整的 名字就是将节点所在的层到最高层的域名串起来,成员间由点分隔。例如在图10.1中关于
第 10 章 应用层 3 10.2.2 DNS 服务 任何 TCP/IP 应用在网络层都是基于 IP 协议实现的,因此必然要涉及到 IP 地址。但是 32 位二进制长度的 IP 地址难以记忆,即使采用打点十进制表示也不具备太大的可记忆性。 所以应用程序很少直接使用 IP 地址来访问主机。一般采用更容易记忆的 ASCII 串符号来指 代 IP 地址,这种特殊用途的 ASCII 串被称为域名。例如,人们很容易记住代表新浪网的域 名“www.sina.com”,但是恐怕极少有人知道或者记得新浪网站的 IP 地址。使用域名访问主 机虽然方便,但却带来了一个新的问题,即所有的应用程序在使用这种方式访问网络时, 首先需要将这种以 ASCII 串表示的域名转换为 IP 地址,因为网络本身只认识 IP 地址。哪么 如何解决域名和 IP 地址之间的映射问题呢? 域名与 IP 地址的映射在上个世纪 70 年代由网络信息中心(NIC)负责完成,NIC 记录 所有的域名地址和 IP 地址的映射关系,并负责将记录的地址映射信息分发给接入因特网的 所有最低级域名服务器(仅管辖域内的主机和用户)。每台服务器上维护一个称之为 “hosts.txt’的文件,记录其他各域的域名服务器及其对应的 IP 地址。NIC 负责所有域名服 务器上"hosts.txt"文件的一致性。主机之间的通信直接查阅域名服务器上的 hosts.txt 文件。 但是,随着网络规模的扩大,接入网络的主机也不断增加,从而要求每台域名服务器都可 以容纳所有的域名地址信息就变得极不现实,同时对不断增大的 hosts.txt 文件一致性的维护 也浪费了大量的网络系统资源。 为了解决这些问题,提出了域名系统 DNS(domain name system),它通过分级的域名 服务和管理功能提供了高效的域名解释服务。DNS 包括域及域名、主机、域名服务器三大 要素。 1. 域、域名和域名空间 域(Domain)指由地理位置或业务类型而联系在一起的一组计算机构成的一种集合, 一个域内可以容纳多台主机。在域中,所有主机由域名(Domain name)来标识,而域名由字 符和(或)数字组成,用于替代主机的数字化地址。当因特网的规模不断增大时,域和域 中所拥有的主机数目也随之增多,管理一个大而经常变化的域名集合就变得非常复杂,为 此提出了一种分级的基于域的命名机制,从而得到了分级结构的域名空间。 域名空间的分级结构有点类似于邮政系统中的分级地址结构,如“中国 浙江省 温州 大学 信息学院 某某某”。如图 10.1 所示,在域名空间的根域之下,被分为几百个顶级 (top-level)域,其中每个域可以包括许多主机。还可以被划分为子域,而子域下还可以有 更小的子域划分。域名空间的整个形状如一棵倒立的树,根不代表任何具体的域,树叶则 代表没有子域的域,但这种叶子域可以包含一台主机或者成千上万台的主机。 顶级域名由一般域名和国家域名两大类组成。其中,一般域名最初只有六个域,即 COM (商业机构)、EDU(教育单位)、GOV(政府部门)、MIL(军事单位)、NET(提供网络 服务的系统)和 ORG(非 COM 类的组织),后来又增加了一个为国际组织所使用的顶级域 名 INT;国家级域名是指代表不同国家的顶级域名,如 CN 表示中国、UK 表示英国、FR 表示法国、JP 表示日本等等。几乎所有美国组织都处于一般域中,而几乎所有非美国的组 织都列在其所在国的域下。 采用分级结构的域名空间后,每个域就采用从节点往上到根的路径命名,一个完整的 名字就是将节点所在的层到最高层的域名串起来,成员间由点分隔。例如在图 10.1 中关于
《计算机网络技术》 温州大学的域名就应表达为wzu.edu.cn。域名对大小写不敏感,所以edu和EDU是一样的. 成员名最多长达63个字符 路径全名不能超过255个 每个域都对分配其下面的域存在控制权。要创建一个新的域,必须征得其所属域的同 意。如果温州大学希望自己的域名为wz.edu.cn,则需要向cedu.cn的域管理者提出申请并 获得批准。采取这种方式,就可以避免同一域中的名字冲突,并且每个域都记录自己的所 有子域。一日一个新的子域被创建和昏记,叫这个子域坏可以创建白己的子域而无须再征 得它的上一级的同意,即采用分级管理的方式。例如,若温州大学想再为它的信息学院仓 建一个子域,这时就不需要再征得cdu.cn的同意了。 注意,域的命名遵循的是组织界限,而不是物理网络。位于同一物理网络内的主机可 以有不同的域,而位于同一域内的主机也可属于不同的物理网络。 通用的 一国家的 int mil 0r net 图10.1域名空间示意图 2.域名系统与域名解析 在因特网中向主机提供域名解析服务的机器被称为域名服务器或名字服务器。从理论 上,一台名字服务器就可以包括整个DNS数据库,并响应所有的查询。但实际上这样DNS 服务器就会由于负载过重而不能运行。于是,与分级结构的域名空间相对应,用于域名解 析的域名系统DNS在实现上也采用了层次化模式,类似于分布式数据库查询系统。 域名解析使用UDP协议,其UDP端口号为53,域名服务器又叫名字服务器。提出DNS 解析请求的主机与域名服务器之间采用客户机-服务器(C-S)模式工作。当某个应用程序需 要将一个名字映射为一个P地址时,应用程序调用一种名为解析器(resolver,参数为要解 析的域名地址)的库过程,由解析器将UDP分组传送给本地DNS服务器上,由本地DNS 服务器负责查找名字并将P地址返回给解析器。解析器再把它返回给调用程序。本地DS 服务器以数据库查询方式完成域名解析过程,并且采用了递归查询。递归查询的具体过程 如下:
4 《计算机网络技术》 温州大学的域名就应表达为 wzu.edu.cn。域名对大小写不敏感,所以 edu 和 EDU 是一样的。 成员名最多长达 63 个字符,路径全名不能超过 255 个字符。 每个域都对分配其下面的域存在控制权。要创建一个新的域,必须征得其所属域的同 意。如果温州大学希望自己的域名为 wzu.edu.cn,则需要向 edu.cn 的域管理者提出申请并 获得批准。采取这种方式,就可以避免同一域中的名字冲突,并且每个域都记录自己的所 有子域。一旦一个新的子域被创建和登记,则这个子域还可以创建自己的子域而无须再征 得它的上一级的同意,即采用分级管理的方式。例如,若温州大学想再为它的信息学院创 建一个子域,这时就不需要再征得 edu.cn 的同意了。 注意,域的命名遵循的是组织界限,而不是物理网络。位于同一物理网络内的主机可 以有不同的域,而位于同一域内的主机也可属于不同的物理网络。 int edu gov mil org net us jp cn com sun yale eng eng cs a inda robot edu wzu 通用的 国家的 图 10.1 域名空间示意图 2. 域名系统与域名解析 在因特网中向主机提供域名解析服务的机器被称为域名服务器或名字服务器。从理论 上,一台名字服务器就可以包括整个 DNS 数据库,并响应所有的查询。但实际上这样 DNS 服务器就会由于负载过重而不能运行。于是,与分级结构的域名空间相对应,用于域名解 析的域名系统 DNS 在实现上也采用了层次化模式,类似于分布式数据库查询系统。 域名解析使用 UDP 协议,其 UDP 端口号为 53,域名服务器又叫名字服务器。提出 DNS 解析请求的主机与域名服务器之间采用客户机-服务器(C-S)模式工作。当某个应用程序需 要将一个名字映射为一个 IP 地址时,应用程序调用一种名为解析器(resolver,参数为要解 析的域名地址)的库过程,由解析器将 UDP 分组传送给本地 DNS 服务器上,由本地 DNS 服务器负责查找名字并将 IP 地址返回给解析器。解析器再把它返回给调用程序。本地 DNS 服务器以数据库查询方式完成域名解析过程,并且采用了递归查询。递归查询的具体过程 如下:
第10章应用层 ·当解析器查询域名时,它把查询传递给本地的一台名字服务器。 首先,名字服务器在本地的内存缓冲区中搜索最近时间里解析的名称地址。如果 本地缓冲区中找到了要解析的名称。则这台名字服务器可以提供客户机要求的P 地址。 ·否则,名字服务器在本地静态表中搜寻,看是否在管理员录入的项中有主机名称 对应的P地址。如果要解析的名称存在于静态表中,名字服务器也向客户机发送 相应的P地址。 如果上两项都未解析出其对应的P地址,则要求解析的域名为一远程域名。这台 名字服务器会向根名称服务器香询。 ·根名称服务器向主机名称中指定的顶层域名称服务器搜寻,顶层域名服务器再向 主机名称中指定的二层域名服务器搜寻,依次下去,一直到要解析的名称全部解 析完毕。 。能完全解析主机名称的第一台服务器将解析出的P地址报告给客户机。 下面我们以一个具体的实例域名解析为P地址的过程说明域名解析过程。假设因特网 上的一台主机H通过URL地址htp:www.wZu.edu.cn要解析温州大学Web主机的P地址, 则主机H将查询本地的DNS服务器DSl,由于DS1中没有关于www.wzu.edu.cnf的有效信 息,因此Ds1将根据本地根域服条器列表文件cache dns中的根域服各器地址香询根域服条 器DS2:DS2将具有cn顶级域授权的名称服务器DS3的地址返回给DS1:接着DS1将域 名wZu.的查询包发给DS3,DS3返回cn次级域edu的名称服务器地址,然后DS1再与该名 称服务器联系,这样直至得到目标主机的IP地址。为了优化DNS的性能,每个DNS查询 结果都有一个生存时间(timc-to--live TTL),表示查询结果在本地高速缓存中保留的时间, 这样重复的域名就能在高速缓存中找到,这就是为什么我们有时候用浏览器中的刷新按钮 能很快看到网页的原因,因为这时候用的是缓存的P地址 除了将域名解析为P地址外,有时系统还可能需要将P地址解析为域名,这时就需要 名为in-addr.arpa的逆向域(reverse domains)。该域内的条目是按P地址组织的,用于IP 到域名的反向解析。 从上面的的讨论可以看出,DNS服务实际上是一个递归的数据库查询过程,所以每一 台DNS服务器都要维持一个关于域名和P地址映射关系的数据库,这个数据库又被称为 DNS的资记 ecord)。 资源记录的数据格式形如“Domain_name Time_to live Type Class Value”。即每 一条资源记录共有5个字段,其中: ·Domain name(域名):指出这条记录所指向的域。通常,每个域有许多记录。 ●Time to live(生存时间):指出记录的稳定性。高度稳定的信息被赋予一个很大的 值,变化很大的信息被赋予一个较小的值 Type(类型):指出记录的类型 ·Class(类别):对于Internet信息,它总是N。对于非Internet信息,则使用其他 代码。 ●Vae(值):这个字段可以是数字、域名成ASC川串。其语义堪于记录类型。 在DNS数据库里存在的资源记录有哪些类型呢?如表10-1所示,我们列出了最重要的 资源记录的类型
第 10 章 应用层 5 z 当解析器查询域名时,它把查询传递给本地的一台名字服务器。 z 首先,名字服务器在本地的内存缓冲区中搜索最近时间里解析的名称地址。如果 本地缓冲区中找到了要解析的名称。则这台名字服务器可以提供客户机要求的 IP 地址。 z 否则,名字服务器在本地静态表中搜寻,看是否在管理员录入的项中有主机名称 对应的 IP 地址。如果要解析的名称存在于静态表中,名字服务器也向客户机发送 相应的 IP 地址。 z 如果上两项都未解析出其对应的 IP 地址,则要求解析的域名为一远程域名。这台 名字服务器会向根名称服务器查询。 z 根名称服务器向主机名称中指定的顶层域名称服务器搜寻,顶层域名服务器再向 主机名称中指定的二层域名服务器搜寻,依次下去,一直到要解析的名称全部解 析完毕。 z 能完全解析主机名称的第一台服务器将解析出的 IP 地址报告给客户机。 下面我们以一个具体的实例域名解析为 IP 地址的过程说明域名解析过程。假设因特网 上的一台主机 H 通过 URL 地址 http://www.wzu.edu.cn 要解析温州大学 Web 主机的 IP 地址, 则主机 H 将查询本地的 DNS 服务器 DS1,由于 DS1 中没有关于www.wzu.edu.cn的有效信 息,因此 DS1 将根据本地根域服务器列表文件 cache.dns 中的根域服务器地址查询根域服务 器 DS2;DS2 将具有 cn 顶级域授权的名称服务器 DS3 的地址返回给 DS1;接着 DS1 将域 名 wzu.的查询包发给 DS3,DS3 返回 cn 次级域 edu 的名称服务器地址,然后 DS1 再与该名 称服务器联系,这样直至得到目标主机的 IP 地址。为了优化 DNS 的性能,每个 DNS 查询 结果都有一个生存时间(time-to-live TTL),表示查询结果在本地高速缓存中保留的时间, 这样重复的域名就能在高速缓存中找到,这就是为什么我们有时候用浏览器中的刷新按钮 能很快看到网页的原因,因为这时候用的是缓存的 IP 地址。 除了将域名解析为 IP 地址外,有时系统还可能需要将 IP 地址解析为域名,这时就需要 名为 in-addr.arpa 的逆向域(reverse domains)。该域内的条目是按 IP 地址组织的,用于 IP 到域名的反向解析。 从上面的的讨论可以看出,DNS 服务实际上是一个递归的数据库查询过程,所以每一 台 DNS 服务器都要维持一个关于域名和 IP 地址映射关系的数据库,这个数据库又被称为 DNS 的资源记录(resource record)。 资源记录的数据格式形如“Domain_name Time_to_live Type Class Value”。即每 一条资源记录共有 5 个字段,其中: z Domain_name(域名):指出这条记录所指向的域。通常,每个域有许多记录。 z Time_to_live(生存时间):指出记录的稳定性。高度稳定的信息被赋予一个很大的 值,变化很大的信息被赋予一个较小的值。 z Type(类型):指出记录的类型。 z Class(类别):对于 Internet 信息,它总是 IN。对于非 Internet 信息,则使用其他 代码。 z Value(值):这个字段可以是数字、域名或 ASCII 串。其语义基于记录类型。 在 DNS 数据库里存在的资源记录有哪些类型呢?如表 10-1 所示,我们列出了最重要的 资源记录的类型