网课是b站中科大郑烇老师,杨坚老师课程,郑烇老师账号发布的
图片均来自郑老师分享的PPT
第二章 应用层
目录
2.3FTP
1、FTP:文件传输协议
- 向远程主机上传输文件或从远程主机接收文件
- 客户/服务器模式
客户端:发起传输的一方
服务器:远程主机 - ftp: RFC 959
- ftp服务器:端口号为21
2、FTP: 控制连接与数据连接分开
- FTP客户端与FTP服务器通过端口21联系,并使用TCP为传输协议
- 客户端通过控制连接获得身份确认
- 客户端通过控制连接发送命令浏览远程目录
- 收到一个文件传输命令时,服务器打开一个到客户端的数据连接
- 一个文件传输完成后,服务器关闭连接
- 服务器打开第二个TCP数据连接用来传输另一个文件
这里的连接是服务器主动建立的 - 控制连接: 带外( “out of band” )传送
控制信息和数据分别在两个TCP连接上传输
HTTP是带内传送 - FTP服务器维护用户的状态信息:当前路径、用户帐户与控制连接对应
FTP是有状态的协议,服务器维护
3、FTP命令、响应
1)命令样例:
在控制连接上以ASCII文本方式传送
- USER username
- PASS password
- LIST:请服务器返回远程主机当前目录的文件列表
- RETR filename:从远程主机的当前目录检索文件(gets)
- STOR filename:向远程主机的当前目录存放文件(puts)
2)返回码样例:
状态码和状态信息 (同HTTP)
- 331 Username OK, password required
- 125 data connection already open; transfer starting
- 425 Can’t open data connection
- 452 Error writing file
2.4EMail
1、EMail:电子邮件
1)组成部分
- 用户代理
- 邮件服务器
- 简单邮件传输协议:SMTP(SMTP是邮件发送协议)
(拉取的协议==邮件访问协议:POP3、HTTP、IMAP等等)
2)用户代理 (邮件阅读器)
- 撰写、编辑和阅读邮件
- 输出和输入邮件保存在服务器上
3)邮件服务器
- 邮箱中管理和维护发送给用户的邮件
- 输出报文队列保持待发送邮件报文
- 邮件服务器之间的SMTP协议:发送email报文
客户:发送方邮件服务器
服务器:接收端邮件服务器
2、EMail: SMTP
[RFC 2821]
- 使用TCP在客户端和服务器之间传送报文,端口号为25
- 直接传输:从发送方服务器到接收方服务器
- 传输的3个阶段
握手
传输报文
关闭 - 命令/响应交互
命令:ASCII文本
响应:状态码和状态信息 - 报文必须为7位ASCII码
1)SMTPl总结
- SMTP使用持久连接
- SMTP要求报文(首部和主体)为7位ASCII编 码
- SMTP服务器使用CRLF.CRLF决定报文的尾部
2)SMTP和HTTP比较:
- HTTP:拉(pull) (客户端向服务器拉取)
- SMTP:推(push) (服务器向客户端推送)
- 二者都是ASCII形式的命令/响应交互、状态码
- HTTP:每个对象封装在各自的响应报文中
- SMTP:多个对象包含在一个报文中
3、邮件报文格式
SMTP:交换email报文的协议
[RFC 822] 文本报文的标准
首部行
To:
From:
Subject:
与SMTP命令不同 !
主体
报文,只能是ASCII码字符
多媒体扩展
MIME:多媒体邮件扩展(multimedia mail extension)[RFC 2045, 2056]
在报文首部用额外的行申明MIME内容类型
4、邮件访问协议
1)POP3协议
POP3在会话中是无状态的
两种模式:
下载并删除 (接收方接收后改变客户机就不能阅读邮件了)
下载并保留 (不同的客户机上是报文的拷贝)
(1)用户确认阶段
- 客户端命令:
user: 申明用户名
pass: 口令 - 服务器响应
+OK
-ERR
(2)事物处理阶段
客户端:
- list: 报文号列表
- retr: 根据报文号检索报文
- dele: 删除
- quit
2)IMAP协议
IMAP服务器将每个报文与一个文件夹联系起来
允许用户用目录来组织报文
允许用户读取报文组件
IMAP在会话过程中保留用户状态: 目录名、报文ID与目录名之间映射
POP3是本地管理文件夹
IMAP是远程管理文件夹