第27章 FTP:文件传送协议

27.1 引言

FTP用于文件传输,使用两条TCP连接:

  • 控制连接:端口21,持久连接
  • 数据连接:端口20,按需创建

27.2 FTP协议

数据表示

  1. 文件类型:ASCII(默认)、EBCDIC、图像(二进制)、本地
  2. 格式控制:非打印(默认)、Telnet、Fortran
  3. 结构:文件(默认)、记录、页
  4. 传输方式:流(默认)、块、压缩

常用命令

命令说明
ABOR放弃传输
LIST列表文件
PASS口令
PORT数据端口
QUIT注销
RETR取文件
STOR存文件
TYPE文件类型
USER用户名

应答代码

  • 1yz:预备应答
  • 2yz:完成应答
  • 3yz:中介应答
  • 4yz:暂态否定
  • 5yz:永久否定

连接管理

  1. 客户选择临时端口
  2. 客户发送PORT命令
  3. 服务器主动打开数据连接(端口20)

27.3 FTP的例子

连接管理:临时数据端口

  • PORT命令发送端口号
  • 服务器从端口20连接

默认数据端口

  • 客户不发送PORT
  • 使用控制连接相同端口号
  • 2MSL可能导致失败

NVT ASCII vs 图像

  • ASCII模式:CR LF转换
  • 图像模式:无转换,更高效

异常中止传输

  • 使用Telnet同步信号
  • 控制连接发送ABOR
  • 紧急方式中止数据流

匿名FTP

  • 用户名:anonymous
  • 口令:邮箱地址

27.4 小结

FTP使用两条TCP连接(控制+数据)。支持多种文件类型和传输模式。