计算机网络自学笔记:FTP和SMTP

HTTP和FTP都是文件传输协议,但FTP使用两个并行的TCP连接来传输文件,一个是控制连接(controlconnection),一个是数据连接(dataconnection)。

控制连接用于在两个主机之间传输控制信息,如用户标识、口令、改变远程目录的命令。数据连接用于实际传输一个文件。

也称FTP的控制信息是带外(out-of-band)带外传送的。

当用户主机与远程主机开始一个FTP会话前,FTP的客户机首先在21号端口上发起一个用于控制的与服务器的TCP连接。

当FTF的服务器端从该连接上收到一个文件传输的命令后,在20号端口发起一个到客户机的数据连接。FTP在该数据连接上传送一个文件后关闭该连接。

对FTP传输而言,控制连接贯穿了整个用户会话期间,但是针对会话中的每一次文件传输都需要建立一个新的数据连接。

F'TP服务器在整个会话期间保留用户的状态信息。例如服务器必须追踪用户在远程目录树上的当前位置。对每个活跃用户会话的状态进行追踪等。

FTP命令和回答,都是按照7位ASII格式在控制连接上传送常见的命令如下:

USERusername:用于向服务器传送用户标识。

PASSpassword:用干向服务器传送用户口令。

LIST:用于请求服务器返回远程主机当前目录的所有文件列表。

RETRfilename:用于从远程主机的当前目录下载文件。

STORfilename:用于向远程主机的当前目录上传文件。

要注意区分用户在FTP客户端输入的命令和FTF协议在控制连接上发送的命令之间的区别,尽管它们一般有一一对应关系。

每个命令都对应着一个从服务器返回到客户机的回答。回答是一个3位数字,后跟一个可选信息。

1:电子邮件系统

电子邮件系统有3个主要组成部分:

用户代理(usesagent),邮件服务器(mailserver)和简单邮件传输协议(SimpleMailTransferProtocol)。

用户代理就是邮件客户端允许用户阅读、回复、转发、保存和撰写邮件。可以认为Web浏览器也是一种用户代理,因为现在很多人都使用浏览器处理邮件。

邮件服务器组成了电子邮件体系结构的核心。每个接收方在他的邮件服务器上有一个邮箱,邮箱管理和维护用户接收到的邮件。

一个典型的邮件发送过程是从发送方的用户代理开始的,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。当接收方在他的邮箱中访问邮件时,接收方邮件服务器会鉴别用户的身份(使用用户名和口令)。

发送方服务器不能将邮件交付到接收方服务器时,会在一个消息队列中保持该邮件并在以后尝试再次发送。通常每3分钟左右进行一次尝试,如果几天后仍不能成功,服务器删除该邮件并以电子邮件的形式通知发送方。

SMTP是因特网电子邮件应用的核心。SMTP用于从发送方的邮件服务器发送邮件到接收方的邮件服务器。

SMTP限制所有邮件消息的主体部分(不仅是其首部)只能采用简单的7位ASCll码表示。

在用SMTP传送邮件之前,需要将二进制多媒体数据编码为ASCll码,并且在使用SMTP传送后需要将相应的ASCll码邮件解码还原为多媒体数据。

SMTP一般不使用中间邮件服务器发送邮件。

SMTP客户机和服务器的一次交互

计算机网络自学笔记:FTP和SMTP_第1张图片
计算机网络自学笔记:FTP和SMTP_第2张图片

SMTP用的是持久连接,如果发送邮件服务器有几个邮件发往同一个接收邮件服务器,它可以通过同一个TCP连接发送所有这些邮件。对每个邮件,客户机都用一个新的MAILFROM开始,用一个独立的句点指示该邮件的结束,并且仅当所有邮件发送完后才发送QUIT。

2 与HTTP的对比

SMTP和HTTP这两个协议都用于从一台主机向另一台主机传送文件。

HTTP从Web服务器向、浏览器、传送文件(也称为对象),SMTP从一个邮件服务器向另

一个邮件服务器传送文件(即电子邮件)。

当进行文件传送时,持久HTTP和SMTP都使用持久连接。

区别首先在于HTTP是一个拉协议,用户使用它从该服务器拉取信息。SMTP基本上是

一个推协议,即发送邮件服务器把文件推向接收邮件服务器。特别是,这个TCP连接是由要发送文件的机器发起的。

第二个区别就是我们前面间接提到过的,SMTP要求每个消息(包括它们的主体)都使用7位ASCII码格式。HTTP数据则没有这个限制。

第三个重要区别在于如何处理一个既包含文本又包含图形的文件,HTTP把每个对象封装到单独的HTTP响应消息中,而电子邮件则把所有消息对象放在一个消息之中

最后一个重要区别是HTTP使用带内控制,而SMTP使用带外控制。

3:邮件消息格式和MIME

电子邮件的每个首部行都包含了可读的文本,它们是由关键词后跟冒号、值组成的。某些关键词是必需的,有些则是可选的。

每个首部都必须含有一个From:首部行和一个To:首部行,可以包含一个Subject:首部

行或者其他可选的首部行。

在邮件首部之后,紧接着是一个空白行,然后是以ACII格式表示的邮件主体。

非ACCII码数据的MIME扩展

多用途因特网邮件扩展(MultipurposeInternetMailExtension,MIME)是对电子邮件格式的扩展。

支持多媒体的两个关键首部是Content-Type和Content-transfer-Encoding。

Content-Type:首部允许接收用户代理对邮件采取适当的动作。例如,通过它指出消息主体包含一个图形,接收用户代理可以为消息主体启用一个图形的解压缩程序。

Content-transfer-Encoding:首部行提示接收用户代理该消息主体已经使用了ASCII编码,并指出了所用的编码类型。因此,当用户代理接收到包含这两个首部行的邮件时,就会根据Content-transfer-Encoding的值将邮件主体还原成非ASCII的格式。

4邮件访问协议

一旦SMTP将邮件从发送方的邮件服务器交付给接收方的邮件服务器,该邮件就被放入了收件人的邮箱中。

用户可以通过在用户端系统上运行一个用户代理(电子邮件客户端)来阅读电子邮件。

目前有多个流行的邮件访问协议,包括第三版的邮局协议(PostOfficeProtocolVersion3,POP3)、因特网邮件访问协议(InternetMailAccessProtocol,IMAP)以及HTTP。

•POP3

POP3是一个非常简单的邮件访问协议,其功能相当有限。当用户代理(客户机)打开了一个到邮件服务器(服务器)端口110上的TCP连接后,POP3就开始工作了。

POP3按照三个阶段进行工作:认证(authorization),事务处理以及更新。在第一个阶段,即特许阶段,用户代理发送(以明文形式)用户名和口令以鉴别用户。

在第二个阶段,即事务处理阶段,用户代理取回邮件,在这个阶段,用户代理还能进行如下操作;对邮件做删除标记,取消邮件删除标记,以及获取邮件的统计信息。

在第三个阶段,即更新阶段,它出现在客户机发出了quit命令之后,目的是结束该POP3会话;这时,邮件服务器删除那些被标记为删除的邮件。

特许阶段有两个主要的命令:user和pass

事务处理过程。使用POP3的用户代理通常由用户配置为“下载并删除”或者“下载并保留”方式。

在下载并删除方式下,用户代理发出list,retr和dele命令。用户代理从邮件服务器取回每封邮件并删除它们在服务器上的备份。

当邮件接收方希望从多个不同的机器访问他的邮件,如从办公室的PC、家里的PC或他的便携机来访问邮件。下载并删除方式会给收件人带来很多不方便。

•IMAP

因特网邮件访问协议(IMAP)比POP3具有更多的特色,因此更加复杂。

IMAP服务器把每个邮件与一个文件夹联系起来,当邮件第一次到达服务器时,它是放

在收件人的收件箱文件夹里。收件人则可以把邮件移到一个新的、用户创建的文件夹中,或阅读邮件、删除邮件等。IMAP协议为用户提供了创建文件夹以及在文件夹之间移动邮件的命令.它还为用户提供了在远程文件夹中查询邮件的命令,按指定条件去查询匹配的邮件。

与POP3不同的是,IMAP服务器维护了IMAP会话的用户状态信息,例如,文件夹的名字以及哪个邮件与哪个文件夹相关联。

IMAP的另一个重要特性是它具有允许用户代理获取邮件组件的命令。例如,用户代理可以只读取一个邮件首部。

•基于Web的电子邮件

越来越多的用户使用他们的Web浏览器收发电子邮件。

基于Web的电子邮件,用户代理就是普通的浏览器,用户和其远程邮箱之间的通信则

通过HTTP进行。当一个收件人想从他的邮箱中取一个邮件时,该电子邮件从邮件服务器发送到他的浏览器,使用的是HTTP而不是POP或者IMAP协议。当发件人要发送一封电子邮件时,使用的也是HTTP而不是SMTP。

但是,用户的邮件服务器在与其他的邮件服务器之间发送和接收邮件时,仍然使用SMTP。

你可能感兴趣的:(计算机网络自学笔记:FTP和SMTP)