Appearance
题目
下列关于 FTP 协议的叙述中,错误的是( )。
错因
A
A 命题"数据连接每次传输完后关闭"是对的——FTP 主动模式下每次执行 LIST、RETR、STOR 等命令都新建一条 TCP 数据连接,传完即关;下次再建。这是 FTP 的"按需新建数据连接"机制。
B
B 命题"控制连接整个会话保持打开"是对的——FTP 用控制连接传所有命令-响应(USER / PASS / CWD / LIST / RETR ...),登录起到 QUIT 期间一直保持。这是 FTP 协议的设计:"控制信道常驻、数据信道按需"。
D
D 命题"客户端与服务器的 21 端口建立控制连接"是对的——FTP 服务器在 21 端口监听,客户端用任意临时端口主动连服务器 21 端口建立控制连接。这就是 FTP 控制连接的标准建立方式。
总解析
FTP 协议的两条 TCP 连接:
| 连接 | 谁主动 | 端口 | 何时建立 / 关闭 |
|---|---|---|---|
| 控制连接 | 客户端 → 服务器 21 | 服务器 21 | 登录建立、QUIT 关闭,整个会话保持 |
| 数据连接(主动模式) | 服务器 → 客户端 临时端口 | 服务器 20 | 每次传输任务建立、完成即关 |
| 数据连接(被动模式) | 客户端 → 服务器临时端口 | 服务器临时端口 | 同上 |
主动模式(PORT)流程:
- 客户端在控制连接里告知服务器:"我开了端口 P 等你来连"
- 服务器从自己 20 端口主动发起 TCP 连接到客户端的端口 P —— 这是 FTP 区别于其他协议的特点
- 数据连接打开,传文件 / 目录列表
- 传完关闭
为什么 C 错:
C 命题"服务器与客户端的 TCP 20 端口建立数据连接"——这把"客户端某临时端口"误说成"客户端 20 端口"。20 端口是服务器自己的端口,不是客户端的端口。客户端的端口是临时分配的(如 49152~65535 中的某个)。
如果改写正确:应该是"服务器从自己的 TCP 20 端口主动连接客户端的某个临时端口"——主动方是服务器、20 是服务器自己的端口、客户端用的不是 20。
逐项判定:
| 选项 | 命题 | 判定 |
|---|---|---|
| A | 数据连接每次传输后关闭 | ✅ 对 |
| B | 控制连接全会话保持 | ✅ 对 |
| C | 服务器与客户端的 20 端口建立数据连接 | ❌ 错(20 是服务器端口,不是客户端) |
| D | 客户端连服务器 21 端口建立控制连接 | ✅ 对 |
题问"错误的",唯一错误项是 C。
最终答案是 C。
编者注(生僻术语):FTP 主动模式(PORT 命令)和被动模式(PASV 命令)区别——
- 主动模式:服务器从自己 20 端口主动连客户端某临时端口;防火墙友好性差(需要客户端开放入向端口)
- 被动模式:服务器开自己一个临时端口监听,客户端主动连这个临时端口;现代防火墙下更常用
408 题里"FTP 数据连接用服务器 20 端口"特指主动模式。被动模式下服务器 20 端口不参与,但题面默认主动模式。