应用层-4、Email应用

参考哈工大公开课。

Email应用概述:

Email 是电子邮件,就跟写信一样,把信寄出去,几经周折,到达目标客户端;它和主要HTTP网络请求的区别就是,HTTP更类似对话,要对方马上回答;而email可能不会马上到达目标客户端。在运输层,email和http一样都是用的TCP协议,只是email用的端口是25,而http用的是80。且Email是持久性连接。

Email应用的构成组件:

Email构成组件可以分为三个:邮件客户端、邮件服务器和SMTP协议。

1、 邮件客户端:主要负责读、写Email消息;与服务器交互,收、发Email消息。邮件客户端可以包括Foxmail这类客户端软件,也可以是Web客户端。

2、 邮件服务器:由邮箱和消息队列组成。主要负责接收、转发客户端发送的邮件,邮箱用于存储用户发送的Email,消息队列用于存储待发送的Email。

3、 SMTP协议:SMTP协议是邮件服务器直接传递消息所使用的协议,在这个协议里面:客户端是指发送消息的服务器,服务器是指接收消息的服务器。

图一:Email应用原理示例图

 

Email传输过程:

Email使用命令/响应交互模式:命令是ASCII文本;响应是状态代码和语句。它的传输过程于HTTP类似也包括3个阶段:握手(建立连接),消息的传输和关闭连接。

图二:Email应用示例图

 

SMTP交互示例(图二的 3,4,5 过程):

图三:SMTP交互示例

 

Email消息格式:

Email消息包括两个部分:头部行(header)和消息体(body)。头部行包括(To,From,Subject);消息体包含email消息本身,且只能是ASCII字符。两者之间用空白行隔开,具体如下图:

图四:Email消息格式

 

MIME 消息格式拓展

由于Email消息只支持ASCII符号,所以对于多媒体信息必须加以特殊的处理方式才可以发送。这些文件都是二进制的,通过对其进行特定的格式编码,使其成为ASCII符号,用户在收到消息后有相同的规则进行解码,恢复成原文件。

图五:MIME 消息格式拓展

邮件的接收

邮件的发送和服务器间的邮件传递可以使用SMTP协议,但是接收邮件不是使用的这种协议,而是使用的其他协议,有三种:POP3协议;IMAP协议;HTTP协议;

 

POP3协议(无状态)

POP3协议分认证过程和事物阶段。

认证阶段:就是身份确认,客户端输入信息,服务器进行验证,类似一般的登录过程;

事物阶段:包括List—列出消息数量;Retr:用编号获取消息;Dele—删除消息;Quit

 

POP3协议是无状态协议,那它的接收就分两种模式:

下载并删除:就是只能下载一次,下载完就直接删除;

下载并保持:下载完依然保存在服务器端,可以无限制下载。

 

IMAP协议(有状态)

IMAP协议相对于POP3协议有如下特点:

1、 所有消息同一保存在服务器上;

2、 运行用户利用文件夹组织消息;

3、 支持会话的用户状态:就是可以做到多端数据同步,比如你在服务器上修改了一个文件夹的名字,其他终端也会同步修改。