计算机网络教程第9章应用层第9章应用层9.1域名系统DNS9.2文件传送协议FTP9.3远程登录TELNET9.4电子邮件9.5万维网(DomainNameSystem),但计算机的用户只是间接而不是直接使用域名系统。因特网的域名系统DNS是一个联机分布式数据库系统,并采用客户服务器方式。计算机网络教程第9章应用层9.1.2因特网的域名结构任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名(domainname)。现在顶级域名TLD(TopLevelDomain)有三类:(1)国家顶级域名nTDL(2)国际顶级域名Itdl(3)通用顶级域名gTDL图9-1是因特网名字空间的结构,它实际上是一个倒过来的树,树根在最上面而没有名字。计算机网络教程第9章应用层计算机网络教程第9章应用层9.1.3用域名服务器进行域名转换共有以下三种不同类型的域名服务器:(1)本地域名服务器(localnameserver)(2)根域名服务器(rootnameserver)(3)授权域名服务器(authoritativenameserver)图9-2是管辖区的划分举例。计算机网络教程第9章应用层计算机网络教程第9章应用层图9-3表示查询IP地址的过程。假定域名为m.xyz.com的主机想知道另一个域名为t.y.abc.com的主机的IP地址。于是向其本地域名服务器dns.xyz.com查询。由于查询不到,就向根域名服务器dns.com查询。根据被查询的域名中的“abc.com”再向授权域名服务器dns.abc.com发送查询报文,最后再向授权域名服务器dns.y.abc.com查询。以上的查询过程见图中的①→②→③→④的顺序。得到结果后,按照图中的⑤→⑥→⑦→⑧的顺序将回答报文传送给本地域名服务器dns.xyz.com。总共要使用8个UDP报文。这种查询方法叫做递归查询。计算机网络教程第9章应用层计算机网络教程第9章应用层以后的过程如图9-4所示。这就是递归与迭代相结合的查询方法。可以看出,对根域名服务器来说,负担减轻了一半。计算机网络教程第9章应用层计算机网络教程第9章应用层9.2文件传送协议FTP9.2.1概述文件传送协议FTP(FileTransferProtocol)是因特网上使用得最广泛的文件传送协议。文件共享协议中的另一大类是联机访问(on-lineaccess)。计算机网络教程第9章应用层9.2.2FTP的主要工作原理文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务。FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。FTP的工作情况如图9-5所示。在进行文件传输时,FTP的客户和服务器之间要建立两个连接:“控制连接”和“数据连接”。计算机网络教程第9章应用层计算机网络教程第9章应用层FTP一般都是交互式地工作。作为例子,图9-6给出了用户机器上显示出的信息。计算机网络教程第9章应用层计算机网络教程第9章应用层9.2.3简单文件传送协议TFTP和网络文件系统NFSTCP/IP协议族中还有一个简单文件传送协议TFTP(TrivialFileTransferProtocol),它是一个很小且易于实现的文件传送协议[RFC1350,783]。TFTP的主要优点有两个。第一,TFTP可用于UDP环境。第二,TFTP代码所占的内存较小。计算机网络教程第9章应用层TFTP的主要特点是:(1)每次传送的数据PDU中有512字节的数据,但最后一次可不足512字节;(2)数据PDU也称为文件块(block),每个块按序编号,从1开始;(3)支持ASCII码或二进制传送;(4)可对文件进行读或写;(5)使用很简单的首部。计算机网络教程第9章应用层9.3远程登录TELNET远程登录TELNET是一个简单的远程终端协议。用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一个主机上(使用主机名或IP地址)。现在由于PC机的功能越来越强,用户就较少使用TELNET了。图9-7说明了NVT的意义。计算机网络教程第9章应用层计算机网络教程第9章应用层9.4电子邮件9.4.1概述电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。电子邮件将邮件发送到ISP的邮件服务器,并放在其中的收信人邮箱(mailbox)中,收信人可随时上网到ISP的邮件服务器进行读取。简单邮件传送协议SMTP(SimpleMailTransferProtocol)[RFC821]和因特网文本报文格式[RFC822],它们已成为因特网的事实上的标准。计算机网络教程第9章应用层由于因特网的SMTP只能传送可打印的ASCII码邮件,因此在1993年又制定了新的电子邮件标准[RFC1521,1522],即“通用因特网邮件扩充”MIME(MultipurposeInternetMailExtensions)。MIME在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等)。MIME邮件可同时传送多种类型的数据。这在多媒体通信环境下是非常有用的。一个电子邮件系统应具有图9-8所示的3个主要组成部件,这就是用户代理、邮件服务器,以及电子邮件使用的协议。计算机网络教程第9章应用层计算机网络教程第9章应用层用户代理UA(UserAgent)就是用户与电子邮件系统的接口,在大多数情况下它就是在用户PC机中运行的程序。用户代理至少应当具有以下3个功能:·撰写。·显示。·处理。邮件服务器是电子邮件系统的核心构件。邮件服务器需要使用两个不同的协议。一个协议用于发送邮件,即SMTP协议,而另一个协议用于接收邮件,即邮局协议POP(PostOfficeProtocol)。计算机网络教程第9章应用层电子邮件由信封(envelope)和内容(content)两部分组成。TCP/IP体系的电子邮件系统规定电子邮件地址(e-mailaddress)的格式如下:收信人邮箱名@邮箱所在主机的域名在发送电子邮件时,邮件服务器只使用电子邮件地址中的后一部分,即目的主机的域名。计算机网络教程第9章应用层9.4.2简单邮件传送协议SMTP使用SMTP时,收信人可以是和发信人连接在同一个本地网络上的用户,也可以是因特网上其他网络的用户,或者是与因特网相连但不是TCP/IP网络上的用户。1.连接建立2.邮件传送3.连接释放计算机网络教程第9章应用层9.4.3电子邮件的信息格式一个电子邮件分为信封和内容两大部分。邮件内容首部包括一些关键字,后面加上冒号。最重要的关键字是:To和Subject。“To:”后面填入一个或多个收信人的电子邮件地址。。“Subject:”是邮件的主题。它反映了邮件的主要内容。邮件首部还有一项是抄送“Cc:”。这两个字符来自“Carboncopy”,意思是留下一个“复写副本”。这是借用旧的名词,表示应给某某人发送一个邮件副本。计算机网络教程第9章应用层9.4.4邮件读取协议POP3和IMAP现在常用的邮件读取协议有两个,即邮局协议第三个版本POP3和因特网报文存取协议IMAP(InternetMessageAccessProtocol)。现分别讨论如下。邮局协议POP是一个非常简单、但功能也有限的邮件读取协议。POP服务器只有在用户输入鉴别信息(用户名和口令)后才允许对邮箱进行读取。计算机网络教程第9章应用层在使用IMAP时,所有收到的邮件同样是先送到ISP的邮件服务器的IMAP服务器。而在用户的PC机上运行IMAP客户程序,然后与ISP的邮件服务器上的IMAP服务器程序建立TCP连接。用户在自己的PC机上就可以操纵ISP的邮件服务器的邮箱,就像在本地操纵一样,因此IMAP是一个联机协议。注意不要将邮件读取协议POP和IMAP与邮件传送协议SMTP弄混。发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用SMTP协议。而POP和IMAP则是用户从目的邮件服务器上读取邮件所使用的协议。计算机网络教程第9章应用层9.4.5通用因特网邮件扩充MIME1.MIME概述(1)SMTP不能传送可执行文件或其他的二进制对象。(2)SMTP限于传送7位的ASCII码。(3)SMTP服务器会拒绝超过一定长度的邮件。(4)某些SMTP的实现并没有完全按照[RFC821]的SMTP标准。计算机网络教程第9章应用层MIME增加的5个新的邮件首部的名称及其意义(有的可以是选项)。(1)MIME-Version:标识MIME的版本。现在的版本号是1.0。若无此行,则为英文文本。(2)Content-Description:这是可读字符串,说明此邮件是什么。和邮件的主题差不多。(3)Content-Id:邮件的惟一标识符。(4)Content-Transfer-Encoding:在传送时邮件的主体是如何编码的。(5)Content-Type:说明邮件的性质。计算机网络教程第9章应用层2.内容传送编码下面介绍几种常用的内容传送编码Content-Transfer-Encoding。最简单的编码使用7bit或8bit(即7位或8位ASCII码),而每行不能超过1000个字符。另一种编码称为quoted-printable,这种编码方法可用于当邮件中包含了非英文的文本。对于任意的二进制文件,可用base64编码(有人称为ASCIIarmor)。计算机网络教程第9章应用层3.内容类型MIME标准规定Content-Type说明必须含有两个标识符,即内容类型(type)和子类型(subtype),中间用“/”分开。表9-1列出了7种基本内容类型和15种子类型,以及简单的说明。计算机网络教程第9章应用层表9-1可出现在MIMEContent-Type说明中的七种基本类型及其意义内容类型子类型说明Text(正文)plain无格式的文本richtext有少量格式命令的文本Image(图像)gifGIF格式的静止图像jpegJPEG格式的静止图像Audio(音频)basic可听见的声音Video(视频)mpegMPEG格式的影片Applicationoctet-stream不间断的字节序列(应用)postscriptPostScript可打印文档计算机网络教程第9章应用层rfc822MIMERFC822邮件Messagepartial为传输将邮件分割开(报文)external-body邮件必须从网上获取mixed按规定顺序的几个独立部分Multipartalternative不同格式的同一邮件(多部分)parallel必须同时读取的几个部分digest每一个部分是一个完整的RFC822邮件计算机网络教程第9章应用层MIME的内容类型中的Multipart是很有用的,因为它使邮件增加了相当大的灵活性。标准为Multipart定义了四种可能的子类型,每个子类型都提供重要功能。(1)mixed子类型允许单个报文含有多个相互独立的子报文,每个子报文可有自己的类型和编码。(2)alternative子类型允许单个报文含有同一数据的多种表示。(3)parallel子类型允许单个报文含有可同时显示的各个子部分。(4)digest子类型允许单个报文含有一组其他报文。计算机网络教程第9章应用层9.5万维网(WorldWideWeb)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所,英文简称为Web。图9-9说明了万维网提供分布式服务的特点。计算机网络教程第9章应用层计算机网络教程第9章应用层正是由于万维网的出现,使因特网从仅由少数计算机专家使用变为普通百姓也能利用的信息资源。万维网是一