计算机网络 | 应用层(3)-- 因特网中的电子邮件
💓个人主页:mooridy
💓专栏地址:《计算机网络:自定向下方法》 大纲式阅读笔记
关注我🌹,和我一起学习更多计算机的知识
🔝🔝🔝
目录
3. 因特网中的电子邮件
3.1 电子邮件系统
典型邮件发送过程
3.2 SMTP
Alice 向 Bob 发送邮件步骤
SMTP 通信过程
SMTP 特性
邮件报文格式
邮件访问协议
POP3
IMAP
HTTP
3. 因特网中的电子邮件
3.1 电子邮件系统
电子邮件系统主要由三个部分组成:
- 用户代理 (user agent):用户撰写完邮件后,用户代理将邮件发送至邮件服务器,并放入服务器的外出报文队列 (Outgoing message queue);当用户阅读邮件时,用户代理从邮件服务器的指定邮箱中获取报文。
- 邮件服务器 (mail server):用于存放邮件,每个用户在邮件服务器上都拥有一个用户邮箱 (user mailbox),服务器负责管理和维护发送给用户的报文。同时,邮件服务器既要将邮件发送到指定服务器,也要接收邮件,兼具 SMTP 客户端和服务端的双重角色。
- SMTP:作为应用层协议,SMTP 采用 TCP 可靠数据传输服务。
典型邮件发送过程
邮件从发送方的用户代理出发,先传输到发送方的邮件服务器,接着再传递到接收方的邮件服务器,最后分发至接收方的邮箱。例如当 Bob 要读取邮箱中的报文时,包含其邮箱的邮件服务器会通过用户名和口令进行身份鉴别。
如果 Alice 的邮件服务器无法将邮件交付给 Bob 的服务器,会将该报文保留在报文队列(message queue)中,并尝试重新发送,一般每 30 分钟左右尝试一次。若几天后仍未成功送达,服务器将删除该报文,并以电子邮件的形式通知发送方 Alice。
3.2 SMTP
SMTP 主要用于实现从发送方邮件服务器到接收方邮件服务器的报文传输。
Alice 向 Bob 发送邮件步骤
- Alice 调用用户代理,填写 Bob 的邮件地址,撰写邮件后指示用户代理发送。
- Alice 的用户代理将报文发送至她的邮件服务器,并置于报文队列中。
- Alice 邮件服务器上的 SMTP 客户端发现队列中的报文后,与 Bob 邮件服务器上的 SMTP 服务器建立 TCP 连接。
- 完成初始 SMTP 握手后,SMTP 客户端通过 TCP 连接发送 Alice 的报文。
- Bob 邮件服务器上的 SMTP 服务端接收报文,并将其存入 Bob 的用户邮箱。
- Bob 在方便时调用用户代理读取邮件。
SMTP 通信过程
- SMTP 客户端尝试与 SMTP 服务器的 25 端口建立 TCP 连接,若服务器未启动,客户端后续会再次尝试连接。
- 连接建立后,SMTP 客户端和服务端在传输信息前会进行握手,客户端在握手时指明发送方和接收方的邮件地址。
- 握手完成后,客户端发送报文。
- 若客户端还有其他报文需发送至该服务器,可在同一 TCP 连接上重复上述操作;若无,则指示 TCP 关闭连接 。
- 例子:客户的主机名为crepes, fr,服务器的主机名为hamburger. eduo以C:开头的ASCII码文本行正是客户交给其TCP套接字的那些行,以S:开头的ASCII码则是服务器发送给其TCP套接字的那些行。一旦创建了 TCP连接,就开始了下列过程
SMTP 特性
- 持续连接:当发送邮件服务器有多个报文需发往同一接收邮件服务器时,可通过同一个 TCP 连接完成所有报文的发送。每个报文以新的
MAIL FROM: crepes, fr
开头,以独立句点表示邮件结束,所有邮件发送完毕后发送QUIT
命令。 - 与 HTTP 对比
- 传输模式:SMTP 是推协议,即发送邮件服务器主动将文件推向接收邮件服务器;HTTP 是拉协议,用户从 Web 服务器获取信息。
- 数据格式:SMTP 要求每个报文(包括报文主体)采用 7 比特 ASCII 码格式,而 HTTP 数据无此限制。
- 传输方式:HTTP 可能为网页中的每个对象分别发送一个请求,SMTP 则将所有报文对象整合在一个报文中传输。
邮件报文格式
- 首部:
From
首部行:必填项。To
首部行:必填项。Subject
首部行:可选项。- 其他可选首部行。
- 报文体:采用 ASCII 码格式。
邮件访问协议
POP3
POP3 协议的工作流程分为三个阶段:
- 特许阶段:用户代理以明文形式发送用户名和口令,用于用户身份鉴别。
- 事务处理阶段:用户代理获取报文,并可进行下载、标记删除、取消删除标记、获取邮件统计信息等操作。
- 更新阶段:用户代理发送结束命令,会话终止,邮件服务器删除标记为删除的报文。
POP3 存在的缺陷:用户虽能将邮件下载到本地并创建文件夹管理,但该协议不支持在远程创建文件夹并对报文进行归类。这导致用户在不同设备上使用时,需重新创建文件夹管理邮件,操作较为繁琐。
IMAP
相较于 POP3,IMAP 有以下改进:
- 服务器将每个邮件报文与文件夹关联,支持用户创建文件夹、移动邮件,还提供在文件夹中阅读、删除邮件以及查询邮件的功能。
- 允许用户代理按需获取邮件报文的部分内容,避免下载如含音频或视频等大容量邮件的全部内容。
HTTP
用户使用普通浏览器作为用户代理,通过 HTTP 从邮件服务器获取邮件,也使用 HTTP 将邮件发送至邮件服务器。不过,邮件服务器之间仍采用 SMTP 协议进行通信。