Skip to content

2009年 408 计算机网络 第 40 题

计算机网络2009年选择题2分

题目

FTP 客户和服务器间传递 FTP 命令时,使用的连接是( )。

错因

B

数据连接是用来传输文件内容(数据)——不是命令。FTP 命令(USER、PASS、CWD、LIST、RETR 等)走控制连接。错的根源:把"控制"和"数据"两条连接搞反。

C

FTP 不用 UDP——所有连接(控制 + 数据)都基于 TCP。命令传输需要可靠交付(命令丢一字就崩溃),UDP 不可靠不行。错的根源:以为命令是"小数据"就能走 UDP。

D

UDP 数据连接——双错(既不是 UDP 也不是数据连接)。错的根源:完全不熟悉 FTP 双连接架构。

总解析

FTP 双连接架构

连接类型协议端口传输内容维持时间
控制连接TCP21FTP 命令(USER / PASS / LIST / RETR / STOR ...)+ 响应(200 / 220 / 226 ...)整个会话期间
数据连接TCP20(主动)或临时文件 / 目录列表内容每次传输任务,传完即关

控制连接的作用

  • 客户端登录(USER + PASS)
  • 切目录(CWD)
  • 列目录(LIST)
  • 准备数据传输(PORT / PASV)
  • 收到服务器响应(200 OK、421 错误等)

数据连接的作用

  • 实际传输文件内容(RETR 下载、STOR 上传)
  • 传输目录列表(LIST 命令的响应正文)

题面"传递 FTP 命令"明确指控制连接部分,对应 TCP 21 端口。

为什么 FTP 必须用 TCP

  • 命令必须可靠到达(USER 丢字就登不上、RETR 丢字会请求错文件)
  • 文件传输必须保证完整性(一字节都不能错)
  • TCP 的可靠传输 + 顺序保证刚好满足

核对

选项协议连接类型是否
ATCP控制连接✅ 命令走这里
BTCP数据连接❌(数据连接传文件内容)
CUDP控制❌(FTP 不用 UDP)
DUDP数据❌(双错)

最终答案是 A(建立在 TCP 之上的控制连接)

编者注(知识延伸):FTP 是少数显式分离控制流和数据流的协议——大多数协议(HTTP、SSH 等)只用一条连接传所有内容。FTP 双连接的设计源自 1971 年原始 FTP 标准,后续的 SSH 用单一加密通道实现了类似功能(SCP / SFTP)。现代云存储几乎不再用 FTP,主要因为 FTP 的双连接在 NAT / 防火墙环境下很难穿透;SCP / SFTP / WebDAV / S3 API 都用单连接。但 408 教材仍把 FTP 作为应用层协议的标准考点。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题