Skip to main content

4. FILE TRANSFER (文件传输)

本节讨论两种文件传输协议: 文件传输协议 (FTP) 和简单文件传输协议 (TFTP)。

4.1 文件传输协议 -- FTP (FILE TRANSFER PROTOCOL -- FTP)

4.1.1 引言 (Introduction)

文件传输协议 (FTP) 是用于主机之间文件传输的协议。FTP使用两个并行的TCP连接: 一个用于命令和回复的控制连接,以及一个用于文件传输的数据连接。

每个支持文件传输的互联网主机都必须 (MUST) 实现FTP。但是,不需要通用文件传输服务的主机可以 (MAY) 实现FTP客户端功能。

4.1.2 协议详解 (Protocol Walk-Through)

控制连接 (Control Connection)

FTP控制连接是用于从客户端 (USER-PI) 向服务器 (SERVER-PI) 发送FTP命令并将服务器的回复返回给客户端的Telnet连接。

FTP命令包括:

  • USER: 用户名
  • PASS: 密码
  • ACCT: 账户
  • CWD: 更改工作目录
  • CDUP: 更改到父目录
  • SMNT: 结构挂载
  • QUIT: 注销
  • RETR: 检索文件
  • STOR: 存储文件
  • STOU: 存储唯一文件
  • APPE: 追加
  • ALLO: 分配
  • REST: 重新启动
  • RNFR: 重命名从
  • RNTO: 重命名到
  • ABOR: 中止
  • DELE: 删除
  • RMD: 删除目录
  • MKD: 创建目录
  • PWD: 打印工作目录
  • LIST: 列出文件
  • NLST: 名称列表
  • SITE: 站点参数
  • SYST: 系统
  • STAT: 状态
  • HELP: 帮助
  • NOOP: 无操作

数据连接 (Data Connection)

FTP数据连接用于文件传输和目录列表。FTP支持主动 (PORT) 和被动 (PASV) 模式来建立数据连接。

4.1.3 特定问题 (Specific Issues)

4.1.3.1 FTP重启机制 (FTP Restart Mechanism)

FTP REST命令允许在指定的检查点重新启动文件传输。FTP服务器应该 (SHOULD) 为RETR实现REST命令。

4.1.3.2 FTP TYPE命令 (FTP TYPE Command)

TYPE命令指定表示类型 (ASCII、EBCDIC、Image/Binary、Local)。FTP实现必须 (MUST) 至少支持以下TYPE命令:

  • ASCII非打印 (TYPE A N)
  • Image (TYPE I)

4.1.3.3 FTP PASV命令 (FTP PASV Command)

PASV命令请求服务器在数据端口上监听并等待连接。FTP服务器应该 (SHOULD) 实现PASV。

4.1.3.4 FTP PORT命令 (FTP PORT Command)

PORT命令指定服务器应连接到的数据端口。FTP服务器必须 (MUST) 实现PORT。

4.1.4 FTP要求摘要 (FTP Requirements Summary)

功能章节必须应该可以不得
实现FTP4.1.1x
支持TYPE A N4.1.3.2x
支持TYPE I4.1.3.2x
实现PORT4.1.3.4x
实现PASV4.1.3.3x
为RETR实现REST4.1.3.1x

4.2 简单文件传输协议 -- TFTP (TRIVIAL FILE TRANSFER PROTOCOL -- TFTP)

4.2.1 引言 (Introduction)

简单文件传输协议 (TFTP) 是建立在UDP之上的简单文件传输协议。TFTP是为不需要FTP复杂性的应用程序设计的。

通用互联网主机应该 (SHOULD) 实现TFTP客户端功能。通用互联网主机可以 (MAY) 实现TFTP服务器功能。

4.2.2 协议详解 (Protocol Walk-Through)

TFTP使用五种类型的数据包:

  1. 读取请求 (RRQ): 请求读取文件
  2. 写入请求 (WRQ): 请求写入文件
  3. 数据 (DATA): 文件数据包
  4. 确认 (ACK): 确认接收数据
  5. 错误 (ERROR): 错误条件

4.2.3 特定问题 (Specific Issues)

4.2.3.1 TFTP超时 (TFTP Timeout)

TFTP使用带有超时和重传的简单停止等待协议。TFTP实现必须 (MUST) 使用自适应超时。

4.2.3.2 TFTP选项 (TFTP Options)

TFTP支持可选扩展,包括块大小协商和超时协商。这些选项可以 (MAY) 被实现。

4.2.4 TFTP要求摘要 (TFTP Requirements Summary)

功能章节必须应该可以不得
实现TFTP客户端4.2.1x
实现TFTP服务器4.2.1x
使用自适应超时4.2.3.1x
支持TFTP选项4.2.3.2x