Skip to main content

8. 连接建立 (Connection Establishment)

FTP控制连接通过TCP在用户进程端口U和服务器进程端口L之间建立。此协议被分配服务端口21 (八进制25), 即L=21。


端口分配

  • 控制连接端口: 21 (服务器侦听端口)
  • 数据连接端口: 20 (L-1, 服务器默认数据端口)
  • 用户端口: 由用户系统动态分配或通过PORT命令指定

连接流程

  1. 控制连接建立
    用户进程从其端口U发起到服务器端口21的TCP连接

  2. 身份验证
    通过控制连接交换USER, PASS等命令进行身份验证

  3. 数据连接建立
    根据FTP服务命令 (如RETR, STOR), 服务器从端口20发起到用户指定端口的数据连接

  4. 数据传输
    文件数据通过数据连接传输, 命令和回复通过控制连接传输

  5. 连接关闭
    数据传输完成后关闭数据连接, 会话结束时关闭控制连接


连接特性

  • 双连接架构: FTP使用两个独立的TCP连接 - 控制连接和数据连接
  • 控制连接持久性: 控制连接在整个FTP会话期间保持打开
  • 数据连接临时性: 数据连接可以为每次文件传输重新建立
  • 标准端口: 服务器使用众所周知的端口21, 确保客户端能够找到服务

这种双连接设计允许FTP在数据传输期间发送命令 (如ABOR中止传输), 提高了协议的灵活性和控制能力。