第27章 FTP:文件传送协议
27.1 引言
FTP用于文件传输,使用两条TCP连接:
- 控制连接:端口21,持久连接
- 数据连接:端口20,按需创建
27.2 FTP协议
数据表示
- 文件类型:ASCII(默认)、EBCDIC、图像(二进制)、本地
- 格式控制:非打印(默认)、Telnet、Fortran
- 结构:文件(默认)、记录、页
- 传输方式:流(默认)、块、压缩
常用命令
| 命令 | 说明 |
|---|---|
| ABOR | 放弃传输 |
| LIST | 列表文件 |
| PASS | 口令 |
| PORT | 数据端口 |
| QUIT | 注销 |
| RETR | 取文件 |
| STOR | 存文件 |
| TYPE | 文件类型 |
| USER | 用户名 |
应答代码
- 1yz:预备应答
- 2yz:完成应答
- 3yz:中介应答
- 4yz:暂态否定
- 5yz:永久否定
连接管理
- 客户选择临时端口
- 客户发送PORT命令
- 服务器主动打开数据连接(端口20)
27.3 FTP的例子
连接管理:临时数据端口
- PORT命令发送端口号
- 服务器从端口20连接
默认数据端口
- 客户不发送PORT
- 使用控制连接相同端口号
- 2MSL可能导致失败
NVT ASCII vs 图像
- ASCII模式:CR LF转换
- 图像模式:无转换,更高效
异常中止传输
- 使用Telnet同步信号
- 控制连接发送ABOR
- 紧急方式中止数据流
匿名FTP
- 用户名:anonymous
- 口令:邮箱地址
27.4 小结
FTP使用两条TCP连接(控制+数据)。支持多种文件类型和传输模式。