第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 所示,我们列出了最重要的 资源记录的类型
《计算机网络技术》 表10-1DS资源记录类型 类型 意义 值 SOA 认证开始记录,提供了关于名字服务器区域(Zone) 该区域的参数 的主要信息资源的名字。定义了DNS区域的一般参数 包括哪个服务器是该区域的认证服务器 A 主机记录或地址记录,用于把一个主机名与该主机的 32比特整数 P地址静态的关联起米 Ns 名字服务器记录,给出一个域的名称服务器,使得 本域的服务器名 他名称服务器可以查找这个域中的名称。 CNAME 别名记录,其使得用户可以使用指向单个主机地址的 域名 多个名称 MX 部件交换记录,用以告诉用户哪个服务器可以接受传 优先权和接收电子邮件的 入这个域的邮件。 域名 PTR P地址的域名 TXT 文本 未解释的ASCI文本 Authoritative data for cs.vu.nl 85400 starboss(9527L,720,720,241920,8640) 86400 fp cs.vu.nL. 86400 rowboat 130.37.56.201 HINFO Sun Unix little-sister 图10.2cs.vunl的可能DNS数据库的一部分 10.2.3Web服务 万维网WWW(World Wide Web)是因特网上发展最快同时又使用最多的一项服务,它可 以提供包括文本、图形、声音和视频等在内的多媒体信息的测览
6 《计算机网络技术》 表 10-1 DNS 资源记录类型 类型 意义 值 SOA 认证开始记录。提供了关于名字服务器区域(Zone) 的主要信息资源的名字。定义了DNS区域的一般参数, 包括哪个服务器是该区域的认证服务器 该区域的参数 A 主机记录或地址记录,用于把一个主机名与该主机的 IP 地址静态的关联起来 32 比特整数 NS 名字服务器记录,给出一个域的名称服务器,使得其 他名称服务器可以查找这个域中的名称。 本域的服务器名 CNAME 别名记录,其使得用户可以使用指向单个主机地址的 多个名称 域名 MX 邮件交换记录,用以告诉用户哪个服务器可以接受传 入这个域的邮件。 优先权和接收电子邮件的 域名 PTR 指针记录。其使得“反向解析”得以实现,即 DNS 服 务器可以给出与一个特定 IP 地址关联的“完全限定域 名” IP 地址的域名 TXT 文本 未解释的 ASCII 文本 ;Authoritative data for cs.vu.nl cs.vu.nl. 86400 IN SOA starboss(952771,7200,7200,2419200,86400) cs.vu.vl. 86400 IN TXT "Faculteit Wiskunde en lnformatica" cs.vu.nl. 86400 IN MX "Vrije Universiteit Amsterm". flits.cs.vu.nl. 86400 IN HINFO Sun Unix flits.cs.vu.nl. 86400 IN A 130.37.16.112 www.cs.vu.nl. 86400 IN CNAME star.cs.vu.nl ftp.cs.vu.nl. 86400 IN CNAME zephyr.cs.vu.nl rowboat IN A 130.37.56.201 IN MX 1 rowboat IN MX 2 zephyr IN HINFO Sun Unix little-sister IN A 130.37.62.23 IN HINFO Mac MacOS 图 10.2 cs.vu.nl 的可能 DNS 数据库的一部分 10.2.3 Web 服务 万维网 WWW(World Wide Web)是因特网上发展最快同时又使用最多的一项服务,它可 以提供包括文本、图形、声音和视频等在内的多媒体信息的浏览
第10章应用层 > 万维网起源于1989年欧州粒子物理研究室CEN。其目的是收集时刻变化的报告、蓝 图、绘制图、照片和其他文献。链接文档的万维网Wb的最初计划是由CERN的物理学家 Tim Berners-Lee于1989年3月提出的,第一个原型(基于文本的)于18个月后运行。1991 年12月在德克萨斯州的San Antonio91超文本会议上进行了一次公开演示,次年继续发展 并于1993年2月,在第一个图形界面Mosaic的发布时达到了其发展的高峰。到今天WWwW 己经成为因特网上不可缺少的技术。 l.web的基本概念 WWW由遍布在因特网中的被称为WWW服务器(又称为Web服务器)的计算机组成 Wb是一个容纳各种类型信息的集合,从用户的角度看,万维网由庞大的、世界范围的文 档集合而成,简称为页面(pagc)。页面具有严格的格式,页面是用超文本标识语言HTM (Hyper Text Markup Language)写成的,存放在Web服务器上。每一页面可以包含到世界 上任何地方的其他相关页面的超链接(Hyperlink),这种能够指向其他页面的页被称为超文 本(Hypertext)。用户可以跟随一个超链接到其所指向的其他页面,并且这一过程可以被无 限制的重复。通过这种方法可浏览无数的互相链接的信息。 用户使用浏览器总是从访问某个主页(Homepage)开始的。由于页中包含了超链接, 因此可以指向另外的页,这样就可以查看大量的信息。下面我们来看一下WWW中常用的 一些术语及其意义。 1)超文本标记语言(HTML) HTML是ISO标准8879-标准通用标识语言SGML(Standard Generalized Markup Language)在万维网上的应用。所谓标识语言就是格式化的语言,存在于wwW服务上的 页,就是由HTML描述的。它使用一些约定的标记对WWW上各种信息(包括文字、声音、 图形、图像、视颜等)、格式以及超级链接进行描述。当用户浏览WWW上的信息时,浏览 器会自动解释这些标记的含义,并将其显示为用户在屏幕上所看到的网页。 一个HTML文本包括文件头(Head、文件(Body)主体两部分。其结构如下所示: 其中,表示页的开始,表示页结束:它们是成对使用的。 表示头开始,表示头结束:表示主体开始,表示主体结束,它 们之间的内容才会在浏览器的正文中显示出来。HMTL的标识符有很多,有兴趣的同学可 以查看有关网页制作方法的书籍
第 10 章 应用层 7 万维网起源于 1989 年欧州粒子物理研究室 CERN。其目的是收集时刻变化的报告、蓝 图、绘制图、照片和其他文献。链接文档的万维网 Web 的最初计划是由 CERN 的物理学家 Tim Berners-Lee 于 1989 年 3 月提出的,第一个原型(基于文本的)于 18 个月后运行。1991 年 12 月在德克萨斯州的 San Antonio 91 超文本会议上进行了一次公开演示,次年继续发展, 并于 1993 年 2 月,在第一个图形界面 Mosaic 的发布时达到了其发展的高峰。到今天 WWW 已经成为因特网上不可缺少的技术。 1. Web 的基本概念 WWW 由遍布在因特网中的被称为 WWW 服务器(又称为 Web 服务器)的计算机组成。 Web 是一个容纳各种类型信息的集合,从用户的角度看,万维网由庞大的、世界范围的文 档集合而成,简称为页面(page)。页面具有严格的格式,页面是用超文本标识语言 HTML (Hyper Text Markup Language)写成的,存放在 Web 服务器上。每一页面可以包含到世界 上任何地方的其他相关页面的超链接(Hyperlink),这种能够指向其他页面的页被称为超文 本(Hypertext)。用户可以跟随一个超链接到其所指向的其他页面,并且这一过程可以被无 限制的重复。通过这种方法可浏览无数的互相链接的信息。 用户使用浏览器总是从访问某个主页(Homepage)开始的。由于页中包含了超链接, 因此可以指向另外的页,这样就可以查看大量的信息。下面我们来看一下 WWW 中常用的 一些术语及其意义。 1) 超文本标记语言(HTML) HTML 是 ISO 标准 8879-标准通用标识语言 SGML(Standard Generalized Markup Language)在万维网上的应用。所谓标识语言就是格式化的语言,存在于 WWW 服务上的 页,就是由 HTML 描述的。它使用一些约定的标记对WWW上各种信息(包括文字、声音、 图形、图像、视频等)、格式以及超级链接进行描述。当用户浏览WWW上的信息时,浏览 器会自动解释这些标记的含义,并将其显示为用户在屏幕上所看到的网页。 一个 HTML 文本包括文件头(Head)、文件(Body)主体两部分。其结构如下所示: 其中,表示页的开始,表示页结束;它们是成对使用的。 表示头开始,表示头结束;表示主体开始,表示主体结束,它 们之间的内容才会在浏览器的正文中显示出来。HMTL 的标识符有很多,有兴趣的同学可 以查看有关网页制作方法的书籍
《计算机网络技术》 2)超文本传输协议(HTTP) 超文本传输协议HTTP(Hypertext Transfer protocol)是用来在浏览器和WwW服务器 之间传送超文本的协议。HTTP协议由两个相当明显的项组成:从浏览器到服务器的请求集 和从服务器到浏览器的应答集。HTTP协议是一种面向对象的协议,为了保证WWW客户 机与WWW服务器之间通信不会产生二义性,HTTP精确定义了请求报文和响应报文的格 式。HTTP会话过程包括以下四个步骤:连接、请求、应答、关闭。如图10-3所示。 服务器 客户端 TP请求 mTP服务器 WW浏览器 P应答 网际网 TCP连接 图10-3HTTP会话过程 3)统一资源定位器URL 我们已经知道WWW是以页面的形式来组织信息的。那么我们怎样来识别不同的页面 怎样才能知道页面在哪个位置,以及如何访问页面呢?为了解决这个问题,WWW采用了 统一资源定位器URL(Uniform Resource Locator)的方法。 URL是在因特网上唯一确定资源位置的方法,其基本格式为: 协议:∥生机域名/资源文件名 其中,协议(protocol)用来指明资源类型,除了WWW用的HTTP协议之外,还可以 是FTP、TELNET等:主机域名表示资源所在机器的DNS名字:资源文件名用以提出资源 在所在机器上的位置,包含路径和文件名,通常“目录名/目录名/文件名”,也可以不含有 路径。例如,温州大学的WWW主页的URL就表示为:htp:ww.wZu.edu.cn/index..htm 在输入UL时,资源类型和服务器地址不分字母的大小写,但目录和文件名则可能区 分字母的大小写。这是因为大多数服务器安装了UNIX操作系统,而UNX的文件系统是 区分文件名的大小写的。 2.WWW服务的实现过程 WWW以客户机/服务器(Client/server)的模式进行工作。运行WWW服务器程序并 提供WWW服务的机器被称为WWW服务器:在客户端,用户通过一个被称为浏览器 (browser)的交互式程序来获得WWW信息服务。常用到的浏览器有Mosaic、Netscape和 微软的E(Internet explorer) 对于每个WwWW服务器站点都有一个服务器监听TCP的80端口(注:80为HTTP缺省
8 《计算机网络技术》 2) 超文本传输协议(HTTP) 超文本传输协议 HTTP(Hypertext Transfer protocol)是用来在浏览器和 WWW 服务器 之间传送超文本的协议。HTTP 协议由两个相当明显的项组成:从浏览器到服务器的请求集 和从服务器到浏览器的应答集。HTTP 协议是一种面向对象的协议,为了保证 WWW 客户 机与 WWW 服务器之间通信不会产生二义性,HTTP 精确定义了请求报文和响应报文的格 式。HTTP 会话过程包括以下四个步骤:连接、请求、应答、关闭。如图 10-3 所示。 HTTP服务器 WWW浏览器 网际网 TCP连接 HTTP请求 HTTP应答 服务器 客户端 图 10-3 HTTP 会话过程 3) 统一资源定位器 URL 我们已经知道 WWW 是以页面的形式来组织信息的。那么我们怎样来识别不同的页面, 怎样才能知道页面在哪个位置,以及如何访问页面呢?为了解决这个问题,WWW 采用了 统一资源定位器 URL(Uniform Resource Locator)的方法。 URL 是在因特网上唯一确定资源位置的方法,其基本格式为: 协议://主机域名/资源文件名 其中,协议(protocol)用来指明资源类型,除了 WWW 用的 HTTP 协议之外,还可以 是 FTP、TELNET 等;主机域名表示资源所在机器的 DNS 名字;资源文件名用以提出资源 在所在机器上的位置,包含路径和文件名,通常“目录名/目录名/文件名”, 也可以不含有 路径。例如,温州大学的 WWW 主页的 URL 就表示为:http://www.wzu.edu.cn/index.htm。 在输入 URL 时,资源类型和服务器地址不分字母的大小写,但目录和文件名则可能区 分字母的大小写。这是因为大多数服务器安装了 UNIX 操作系统,而 UNIX 的文件系统是 区分文件名的大小写的。 2. WWW 服务的实现过程 WWW 以客户机/服务器(Client/server)的模式进行工作。运行 WWW 服务器程序并 提供 WWW 服务的机器被称为 WWW 服务器;在客户端,用户通过一个被称为浏览器 (browser)的交互式程序来获得 WWW 信息服务。常用到的浏览器有 Mosaic、Netscape 和 微软的 IE(Internet explorer)。 对于每个 WWW 服务器站点都有一个服务器监听 TCP 的 80 端口(注:80 为 HTTP 缺省
第10章应用层 的TCP端口),看是否有从客户端(通常是浏览器)过来的连接。当客户端的浏览器在其地 址栏里输入一个URL或者单击WEB页上的一个超链接时,WEB浏览器就要检查相应的协 议以决定是否需要重新打开一个应用程序,同时对域名进行解析以获得相应的P地址。然 后,以该P地址并根据相应的应用层协议即HTTP所对应的TCP端口与服务器建立一个 TCP连接。连接建立之后,客户端的浏览器使用HTTP协议中的“GET”功能向WWW服 务器发出指定的WWW页面请求,服务器收到该请求后将根据客户端所要求的路径和文件 名使用HTTP协议中的“PUT”功能将相应HTML文档回送到客户端,如果客户端没有指 明相应的文件名,则由服务器返回一个缺省的HTML页面。页面传送完毕则中止相应的会 话连接。 下面我们以一个具体的例子来Wb服务的实现过程。假设有用户要访问浙江工商学院 主页Htp∥www.zjbti.net.cn/home/web2.htm,则浏览器与服务器的信息交互过程如下: 1)浏览器确定URL。 2)刘览器向DNS获取web服务器www zibti net.cn的P地址。 3) 浏览器以相应的P地址10.50.8.3应答。 4)浏览器和IP地址为10.50.8.3的80端口建立一条TCP连接。: 5)浏览器执行HTTP协议,发送GET/home/web2:.htm命令,请求读取该文件。 6 www.zjbti.net.cn服务器返回home/web2.htm文件到客户端。 7释放TCP连接。 8)浏览器显示home/web2.htm中的所有正文和图像。 自WWW服务问世以来,其己取代电子邮件服务成为因特网上最为广泛的服务。除了 普通的页面浏览外,WWW服务中的浏览器/服务器(brower/server,简称B/S)模式还取代 了传统的CS模式网络数据库工作模式,被广泛用于网络数据库应用开发中。 10.2.4E-mail服务 电子邮件(Electronic Mail,简称E-mail)是因特网上最受欢迎也最为广泛的应用之一。 电子邮件服务Email是一种通过计算机网络与其它用户进行联系的快速、简便、高效、廉价 的现代化通信手段。电子邮件之所以受到广大用户的喜爱,是因为与传统通信方式相比, 其具有以下明显的优点: ·成本低。与传统的邮件系统相比,电子邮件费用很低。传统的国内特快递需20元 人民币,国际快递则更贵,而通过电子邮件将信件发送外国外,可能只需付几分 钱的上网费。 ● 速度快。电子邮件一般只需几秒钟就可以到达目的地,远比人工邮件传递速度要 迅速。而且比较可靠: ·安全与可靠性高。使用电子邮件不必担心损坏,传统的邮件在投递过程中,有可 能信件被损坏,而使用电子邮件则不必担心这一点: 可达到范围广。电子邮件可以到达因特网可达的任何地方:并且可以实现一对多 的邮件传送,即可以一次同时向多人发出多个内容相同的邮件。 内容表达形式多样。电子邮件可以将文字,图像,语音等多种类型的信息集成在
第 10 章 应用层 9 的 TCP 端口),看是否有从客户端(通常是浏览器)过来的连接。当客户端的浏览器在其地 址栏里输入一个 URL 或者单击 WEB 页上的一个超链接时,WEB 浏览器就要检查相应的协 议以决定是否需要重新打开一个应用程序,同时对域名进行解析以获得相应的 IP 地址。然 后,以该 IP 地址并根据相应的应用层协议即 HTTP 所对应的 TCP 端口与服务器建立一个 TCP 连接。连接建立之后,客户端的浏览器使用 HTTP 协议中的“GET”功能向 WWW 服 务器发出指定的 WWW 页面请求,服务器收到该请求后将根据客户端所要求的路径和文件 名使用 HTTP 协议中的“PUT”功能将相应 HTML 文档回送到客户端,如果客户端没有指 明相应的文件名,则由服务器返回一个缺省的 HTML 页面。页面传送完毕则中止相应的会 话连接。 下面我们以一个具体的例子来 Web 服务的实现过程。假设有用户要访问浙江工商学院 主页 Http:// www.zjbti.net.cn/home/web2.htm,则浏览器与服务器的信息交互过程如下: 1) 浏览器确定 URL。 2) 浏览器向 DNS 获取 web 服务器 www.zjbti.net.cn 的 IP 地址。 3) 浏览器以相应的 IP 地址 10.50.8.3 应答。 4) 浏览器和 IP 地址为 10.50.8.3 的 80 端口建立一条 TCP 连接。; 5) 浏览器执行 HTTP 协议,发送 GET /home/web2.htm 命令,请求读取该文件。 6) www.zjbti.net.cn 服务器返回/home/web2.htm 文件到客户端。 7) 释放 TCP 连接。 8) 浏览器显示/home/web2.htm 中的所有正文和图像。 自 WWW 服务问世以来,其已取代电子邮件服务成为因特网上最为广泛的服务。除了 普通的页面浏览外,WWW 服务中的浏览器/服务器(brower/server,简称 B/S)模式还取代 了传统的 C/S 模式网络数据库工作模式,被广泛用于网络数据库应用开发中。 10.2.4 E-mail 服务 电子邮件(Electronic Mail,简称 E-mail)是因特网上最受欢迎也最为广泛的应用之一。 电子邮件服务 Email 是一种通过计算机网络与其它用户进行联系的快速、简便、高效、廉价 的现代化通信手段。电子邮件之所以受到广大用户的喜爱,是因为与传统通信方式相比, 其具有以下明显的优点: z 成本低。与传统的邮件系统相比,电子邮件费用很低。传统的国内特快递需 20 元 人民币,国际快递则更贵,而通过电子邮件将信件发送外国外,可能只需付几分 钱的上网费。 z 速度快。电子邮件一般只需几秒钟就可以到达目的地,远比人工邮件传递速度要 迅速。而且比较可靠; z 安全与可靠性高。使用电子邮件不必担心损坏,传统的邮件在投递过程中,有可 能信件被损坏,而使用电子邮件则不必担心这一点; z 可达到范围广。电子邮件可以到达因特网可达的任何地方;并且可以实现一对多 的邮件传送,即可以一次同时向多人发出多个内容相同的邮件。 z 内容表达形式多样。电子邮件可以将文字,图像,语音等多种类型的信息集成在
0 《计算机网络技术》 一个邮件中传送,因此它成为多媒体信息传送的重要手段。 那么电子邮件是如何通过网络被发送和接收出去的呢?首先电子邮件要有自己规范的 格式,就好象我们使用普通的邮政系统要遵循标准的邮件格式一样。 电子邮件的格式由信封和内容两大部分,即邮件头(header)和邮件主体(body)两部 分。邮件头包括收信人E-mail地址、发信人E-mail地址、发送日期、标题和发送优先级等, 其中,前两项是必选的。邮件主体才是发件人和收件人要处理的内容,早期的电子邮件系 统只能传递文本信息,而通过使用多用途因特网邮件扩展协议MIE(ultipurpose Internet Mail extensions),现在还可以发送语音,图像和柳频等信息。对千E-mail主 体不存在格式上的统一要求,但对信封即邮件头有严格的格式要求,尤其是E-mail地址。 Emal地址的标准格式为:@主机域名。其中,收信人信箱名指用户在 某个邮件服务器上注册的用户标识,相当于是他的一个私人邮箱,收信人信箱名通常用收 信人姓名的缩写来表示:●为分隔符,我们]一般把它读为英文的at:主机域名是指信箱所在 的邮件服务器的域名。例如zcr@mail.wzu.edu.cn,表示在温州大学的邮件服务器上的名为 CR的用户信箱 有了标准的电子邮件格式外,电子邮件的发送与接收还要依托由用户代理、邮件服务 器和邮件协议组成的电子邮件系统。图10.4给出了电子邮件系统的简单示意图。其中,用 户代理运行在客房机上的一个本地程序,它提供命令行方式、菜单方式或图形方式的界面 来与电子邮件系统交互,允许人们读取和发送电子邮件,如outlook express或hotmail 等。邮件服务器包括邮件发送服务器和邮件接收服务器。顾名思义,所谓邮件发送服务器 是指为用户提供邮件发送功能的邮件服务器,如图中的SMTP服务器:而邮件接收服务器是 指为用户提供邮件接收功能的邮件服务器,如图中的POP3服务器。用户在发送邮件时,要 使用邮件发送协议,常见的邮件发送协议有简单邮件传输协议SMTP(simple mail transte protocol)和MTME协议,前者只能传输文本信息,后者则可以传输包括文本、声音、图象 等在内的多媒体信息。当用户代理向电子邮件发送服务器发送电子邮件时或邮件发送服务 器向邮件接收服务器发送电子邮件时都要使用邮件发送协议。用户从邮件接收服务器接收 邮件时,要使用邮件接收协议,通常使用邮局协议POP3(post office protocol),该协 议由R℉C1225中定义,具有用户登录、退出、读取消息、删除消息的命令。POP3的关键之 处在于其能从远程邮箱中读取电子邮件,并将它存在用户本地的机器上以便以后读取。通 常,SMTP使用TCP的25号端口,而POP3则使用TCP的110号端口。 SWT SMTP 图10-4电子邮件系统的组成 图10.6给出了一个电子邮件发送和接收的具体实例。假定用户XXx使用 “XXx@sina.com”作为发信人地址向用户YYY发送一个文本格式的电子邮件,该发信人地
10 《计算机网络技术》 一个邮件中传送,因此它成为多媒体信息传送的重要手段。 那么电子邮件是如何通过网络被发送和接收出去的呢?首先电子邮件要有自己规范的 格式,就好象我们使用普通的邮政系统要遵循标准的邮件格式一样。 电子邮件的格式由信封和内容两大部分,即邮件头(header)和邮件主体(body)两部 分。邮件头包括收信人 E-mail 地址、发信人 E-mail 地址、发送日期、标题和发送优先级等, 其中,前两项是必选的。邮件主体才是发件人和收件人要处理的内容,早期的电子邮件系 统只能传递文本信息,而通过使用多用途因特网邮件扩展协议 MIME (Multipurpose Internet Mail Extensions),现在还可以发送语音,图像和视频等信息。对于 E-mail 主 体不存在格式上的统一要求,但对信封即邮件头有严格的格式要求,尤其是 E-mail 地址。 E-mail 地址的标准格式为:@主机域名。其中,收信人信箱名指用户在 某个邮件服务器上注册的用户标识,相当于是他的一个私人邮箱,收信人信箱名通常用收 信人姓名的缩写来表示;@为分隔符,我们一般把它读为英文的 at;主机域名是指信箱所在 的邮件服务器的域名。例如 zcr@mail.wzu.edu.cn,表示在温州大学的邮件服务器上的名为 ZCR 的用户信箱。 有了标准的电子邮件格式外,电子邮件的发送与接收还要依托由用户代理、邮件服务 器和邮件协议组成的电子邮件系统。图 10.4 给出了电子邮件系统的简单示意图。其中,用 户代理运行在客房机上的一个本地程序,它提供命令行方式、菜单方式或图形方式的界面 来与电子邮件系统交互,允许人们读取和发送电子邮件,如 outlook express 或 hotmail 等。邮件服务器包括邮件发送服务器和邮件接收服务器。顾名思义,所谓邮件发送服务器 是指为用户提供邮件发送功能的邮件服务器,如图中的 SMTP 服务器;而邮件接收服务器是 指为用户提供邮件接收功能的邮件服务器,如图中的 POP3 服务器。用户在发送邮件时,要 使用邮件发送协议,常见的邮件发送协议有简单邮件传输协议 SMTP(simple mail transter protocol)和 MIME 协议,前者只能传输文本信息,后者则可以传输包括文本、声音、图象 等在内的多媒体信息。当用户代理向电子邮件发送服务器发送电子邮件时或邮件发送服务 器向邮件接收服务器发送电子邮件时都要使用邮件发送协议。用户从邮件接收服务器接收 邮件时,要使用邮件接收协议,通常使用邮局协议 POP3(post office protocol),该协 议由 RFC 1225 中定义,具有用户登录、退出、读取消息、删除消息的命令。POP3 的关键之 处在于其能从远程邮箱中读取电子邮件,并将它存在用户本地的机器上以便以后读取。通 常,SMTP 使用 TCP 的 25 号端口,而 POP3 则使用 TCP 的 110 号端口。 因特网 SMTP SMTP 用 POP3 户 代 理 用 户 代 理 图 10-4 电子邮件系统的组成 图 10.6 给出了一个电子邮件发送和接收的具体实例。假定用户 XXX 使 用 “XXX@sina.com”作为发信人地址向用户 YYY 发送一个文本格式的电子邮件,该发信人地