《计算机网络——自顶向下方法》应用层——Email

因特网中的电子邮件

与普通的邮件相同,电子邮件是一种一步通信媒介。邮件系统主要有3个主要的组成部分:用户代理、邮件服务器和简单邮件传输协议(SMTP).
邮件服务器形成了电子邮件体系结构的核心。每个接收方在其中的某个邮件服务器上有一个邮箱。一个典型的邮件发送过程是:从发送方的用户代理开始,传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。当某个人需要从邮箱中取走报文的时,包含他邮箱的邮件服务器对其进行鉴别。同时,发送方也要能够处理接收方邮件服务器的故障。如果发送方的服务器不能将邮件交付给接收方的服务器,发送方的邮件服务器的报文队列中保持并在以后尝试再次发送,如果几天后仍然不行就以为电子邮件的形式通知发送发。
SMTP是因特网电子邮件中主要的应用层协议,依靠TCP提供可靠数据传输,从发送方的邮件服务器向接收方的邮件服务器发送邮件。

SMTP

SMTP用于从发送方的服务器发送报文到接收方的服务器。
SMTP一般不适用中间邮件服务器发送邮件,因此邮件并不在中间的某个邮件服务器上存留。RFC 5321给出了SMTP的定义。

与HTTP对比

两个协议都是用于从一台主机向另一台主机传送文件,当进行文件传输时二者都是使用持续连接,这是两者的一些共同特征。然而,这两个协议也有一些重要的区别:HTTP是一个拉协议,TCP连接是由想接收文件的机器发起的;SMTP是一个推协议,TCP连接是由发送该文件的机器发起的。第二个区别是SMTP要求报文使用7比特ASCII码格式,HTTP数据则不受这种限制。第三个重要的区别是在处理挺尸包含文本和图形的文档,HTTP把每个对象封装到自己的HTTP响应报文中,而SMTP则把所有的报文对象放在一个报文之中。

邮件报文格式和MIME

当一个人给另一个人发送电子邮件时,一个环境信息的首部位于报文体的前面,这些环境信息包括在一系列的首部行中,由RFC 5322定义,首部行和报文体用空行进行分隔。
这些首部行和SMTP命令是不同的,命令是SMTP握手协议个一部分,而本节的首部行是邮件 报文自身的一部分。

邮件访问协议

对于接收方,如何通过运行本地PC上的用户代理来获取位于他的某ISP邮件服务器上的邮件?首先必须明确的是接收方的用户代理不能使用SMTP取回报文,因为取报文是一个拉操作而SMTP是一个推协议。因此,通过引入一个特殊的邮件访问协议来解决这个难题,该协议将邮件接收方的服务器上的报文传送给他的本地PC.目前有一些流行的邮件访问协议,包括有第三版的邮局协议(POP3),因特网邮件访问协议(IMAP)

《计算机网络——自顶向下方法》应用层——Email_第1张图片
image

POP3

POP3由于RFC 1913进行定义,该协议非常简单,因此功能也相当有限。当代理带来了一个到邮件服务器端口110上的TCP连接收,POP3就开始工作了。POP3按照上个阶段进行工作:特许,事务处理以及更新。同时,POP3服务器并不在POP3会话过程中携带状态信息,这种不包括状态信息大大简化了POP3服务的实现。

IMAP

POP3协议并没有给用户提供任何创建远程文件夹并为报文自拍文件夹的方法。为了解决这个问题和其他的一些问题,由RFC 3501定义的邮件访问协议IMAP应运而生。
IMAP服务器把每个报文与一个文件夹联系起来,当报文第一次到达服务器时,它与收件人的INBOX文件夹相关联。值的注意的是,IMAP服务器维护了IMAP会话的用户状态信息。IMAP的另一个非常重要的特性就是它具有允许用户代理获取报文组件的命令。

基于Web的电子邮件

现在,越来越多的人用户使用web浏览器手法电子邮件,使用这种服务,用户代理就是普通的浏览器,用户和他的远程邮箱通信则是通过HTTP.

你可能感兴趣的:(《计算机网络——自顶向下方法》应用层——Email)