8. 连接建立 (Connection Establishment)
FTP控制连接通过TCP在用户进程端口U和服务器进程端口L之间建立。此协议被分配服务端口21 (八进制25), 即L=21。
端口分配
- 控制连接端口: 21 (服务器侦听端口)
- 数据连接端口: 20 (L-1, 服务器默认数据端口)
- 用户端口: 由用户系统动态分配或通过PORT命令指定
连接流程
-
控制连接建立
用户进程从其端口U发起到服务器端口21的TCP连接 -
身份验证
通过控制连接交换USER, PASS等命令进行身份验证 -
数据连接建立
根据FTP服务命令 (如RETR, STOR), 服务器从端口20发起到用户指定端口的数据连接 -
数据传输
文件数据通过数据连接传输, 命令和回复通过控制连接传输 -
连接关闭
数据传输完成后关闭数据连接, 会话结束时关闭控制连接
连接特性
- 双连接架构: FTP使用两个独立的TCP连接 - 控制连接和数据连接
- 控制连接持久性: 控制连接在整个FTP会话期间保持打开
- 数据连接临时性: 数据连接可以为每次文件传输重新建立
- 标准端口: 服务器使用众所周知的端口21, 确保客户端能够找到服务
这种双连接设计允许FTP在数据传输期间发送命令 (如ABOR中止传输), 提高了协议的灵活性和控制能力。