计算机网络之(3):FTP & Email(SMTP)

文章目录

  • FTP
    • FTP 的命令 & 响应
  • EMail(邮件传输协议)
    • 组成部分
      • 用户代理
      • 邮件服务器
        • 示例
      • SMTP 协议
    • SMTP 总结 & 与 HTTP 的对比
    • 报文格式
      • 报文格式的多媒体扩展
    • POP3 协议
      • 用户确认阶段
      • 事务处理阶段
        • list
        • retr
        • dele
        • quit
    • POP3 V.S. IMAP

FTP

计算机网络之(3):FTP & Email(SMTP)_第1张图片

  • FTP 服务器与客户端建立的连接包括 “控制连接” (控制连接也叫带歪连接 out of bound)和 “数据连接”;控制连接负责传输指令,数据连接用来收发数据。

  • 数据连接是服务器主动向客户端发起的连接 客户端率先向服务器请求 “控制连接”,连接成功之后如果要从服务器下载文件,那么服务器将主动与客户端建立 “数据连接” 然后将数据发送给客户端

  • FTP 的连接也是依靠 TCP 协议

  • 在控制连接上,客户端可以向服务器发出一系列的指令

    • list 文件列表
    • 进入某些目录
    • download 某些文件
    • upload 某些文件
      计算机网络之(3):FTP & Email(SMTP)_第2张图片
  • FTP 是有状态协议(HTTP 是无状态协议):因此 FTP 需要在服务器上维护客户的状态(当前连接的是谁,处在什么目录),而且每次用户建立连接的时候都需要提供身份认证。

FTP 的命令 & 响应

计算机网络之(3):FTP & Email(SMTP)_第3张图片

EMail(邮件传输协议)

组成部分

  • 用户代理:用于收发邮件的客户端软件(outlook, gmail)等
  • 邮件服务器
  • 简单邮件传输协议 SMTP
    计算机网络之(3):FTP & Email(SMTP)_第4张图片
  • 拉取协议:
    • POP3
    • IMAP
    • HTTP

用户代理

  • 通过代理软件来访问电子邮件应用;例如 Web 应用的用户代理是 web 浏览器,FTP 应用的用户代理是 FTP 客户端软件。因为客户不能直接与应用层的数据打交道,因此其实是我们通过一个客户端软件来完成与数据的交互,所以这些客户端软件是我们的用户代理

邮件服务器

  • 客户端:发送方的邮件服务器
  • 服务器:接收端的邮件服务器
  • 每次用户想发送邮件的时候,通过用户代理将邮件发送到己方邮件服务器的队列中;然后依次发送到目标邮件服务器。
  • 邮件服务器接收到来自其他邮件服务器的邮件时,将接收到的邮件分发到对应的用户的邮箱当中(依然在服务器上),然后用户通过用户代理(使用 POP3, IMAP, HTTP 等拉取协议呈现到用户的客户端(本地))
    计算机网络之(3):FTP & Email(SMTP)_第5张图片
示例
  • 假设你使用 google 的邮箱服务器,然后你想对一个使用 outlook 邮箱的学生 B 发一封邮件 e。
    • 首先 e 在你的本地电脑的 gmail 应用上(代理)写好后,点击发送,这时候 e 会被放入 google 邮箱服务器的队列中,当攒齐了一定数量的邮件,会统一发送出去
    • e 到达了对应的 outlook 邮箱服务器,outlook 根据客户的不同分发到各个用户的邮箱当中(在服务器上)
    • B 在本地的邮箱客户端(用户代理)上对邮件的内容进行拉取(POP3, IMAP, HTTP协议等),并且查看
  • 这个过程中,邮件服务器之间的通信协议是 SMTP(简单邮件传输协议);而在用户代理将邮件拉取下来呈现给用户的时候使用的是 拉取协议
    计算机网络之(3):FTP & Email(SMTP)_第6张图片

SMTP 协议

计算机网络之(3):FTP & Email(SMTP)_第7张图片
计算机网络之(3):FTP & Email(SMTP)_第8张图片

SMTP 总结 & 与 HTTP 的对比

  • 持久连接,google 和 outlook 服务器之间很多不同的用户进行邮件通信,因此服务器连接是持久的,这个不同于 HTTP 的短连接
  • SMTP 要求报文(首部和主体)都是 7 位 ASCII 码的编码范围(古老的标准,现在都已经更新了,这种版本没办法发中文)
  • SMTP 是将报文推出去,而 HTTP 是将内容拉取回来
  • HTTP 的每个对象被封装在各自的响应报文中;而 SMTP 的多个对象包含在一个响应的报文中(一个邮件可以包含三张图片,一段录音…等等内容)
    计算机网络之(3):FTP & Email(SMTP)_第9张图片

报文格式

  • 首部行:
    • to
    • from
    • subject

计算机网络之(3):FTP & Email(SMTP)_第10张图片

报文格式的多媒体扩展

  • 如果发送的内容是中文,那么无法用 ascii 码表示,这个时候需要进行编码来扩展这些操作;例如 base64 编码:将几个不在 ascii 码范围内的内容编码成长一点的,在 ascii 范围之内的内容(通过映射完成);对方接收到内容之后只要同样使用 base64 进行解码就可以得到同样的内容了
    计算机网络之(3):FTP & Email(SMTP)_第11张图片

POP3 协议

  • pop3 在会话中 是无状态的协议;它只维护不同用户的登录状态(你是谁,你应该匹配哪个邮箱),但是不在邮箱中维护状态(无论你在哪里用哪台 pc 登录的邮箱,在邮箱中的操作是不记录状态的,下次在别的地方登录之后还是初始的界面,不会按照上次的断点进行浏览)。
    计算机网络之(3):FTP & Email(SMTP)_第12张图片

用户确认阶段

  • 客户端命令:
    • user:申明用户名
    • pass:口令
  • 服务器响应:
    • +OK
    • -ERR

事务处理阶段

list
  • 展示报文号列表:上图中可以表示邮箱中有两个邮件,第一个邮件 498 字节,第二号邮件 912 字节
retr
  • 将对应编号的邮件拉到本地客户端,例如 retr 1 就是将 1 号邮件拉到本地提供给用户
dele
  • 客户端向邮件服务器发出的命令,例如上面我们再客户端 retr 1 之后,将邮箱中的 1 号邮件删除
  • 这种 retr + dele 的方式叫做:下载并删除模式
  • 也可以自己设置,不进行 dele 操作,保留邮箱中的邮件
quit
  • 关闭客户端和邮件服务器的连接

POP3 V.S. IMAP

  • IMAP 允许将每个报文与一个文件夹联系起来
  • 允许用户用目录来组织报文
  • 允许用户读取报文组件
  • IMAP 在会话过程中保留用户状态:
    • 目录名,报文 ID 与目录之间的映射(远程管理文件夹)
      计算机网络之(3):FTP & Email(SMTP)_第13张图片

你可能感兴趣的:(操作系统&计算机网络,服务器,网络,http)