Appearance
题目
下列 TCP/IP 应用层协议中,可以使用传输层无连接服务的是( )。
错因
A
FTP 用 TCP 的两条独立连接:控制连接(端口 21)+ 数据连接(端口 20,主动模式)。FTP 涉及目录列表、文件传输等需保证顺序与可靠性的操作,必须用 TCP,不能用 UDP。错的根源:把 FTP 当成普通"轻量传输协议",忽略了它对可靠性的硬要求。
C
SMTP(端口 25)在邮件投递、邮件服务器中继之间,所有命令-响应都是按序、不丢失要求很高(一封信丢一行就乱了),必须用 TCP。错的根源:对 SMTP 不熟,凭直觉感觉它"是简单文本协议、可能用 UDP"。
D
HTTP(80 / 443)需要可靠传输 HTML、图像等内容(丢字节就成乱码),必须用 TCP。HTTP/3 引入了 QUIC(基于 UDP 的)但属于例外——题面问的是经典 TCP/IP 应用层,HTTP 默认对应 TCP。错的根源:把"HTTP 短请求短响应"等同于"无连接 UDP 也行",但 TCP 的握手和可靠性是 HTTP 必需的。
总解析
TCP/IP 应用层协议传输层选择对照:
| 协议 | 端口 | 传输层 | 原因 |
|---|---|---|---|
| FTP | 20/21 | TCP | 文件传输 + 控制信令必须有序可靠 |
| DNS | 53 | UDP(主用)/ TCP(备用) | 小查询 + 多次试错可接受 |
| SMTP | 25 | TCP | 邮件中继需要保证不丢字节 |
| HTTP | 80/443 | TCP | Web 页内容需要可靠传输 |
| Telnet / SSH | 23 / 22 | TCP | 终端会话要求顺序保证 |
| TFTP | 69 | UDP | 极简文件传输(嵌入式 / 启动) |
| SNMP | 161 | UDP | 网管小消息、丢包重发即可 |
DNS 为什么主用 UDP:
- 查询通常小:典型 DNS 查询包 < 512 字节,一个 UDP 包就能装下
- 不可靠没关系:客户端有超时重发机制(很短),UDP 丢包重发的开销小于 TCP 三次握手
- 延迟敏感:浏览器解析域名时希望尽快拿到 IP,TCP 三次握手会多 1 RTT
- TCP 备用:当响应大于 512 字节(DNSSEC 签名、IPv6 AAAA 大量记录)或区域传输(zone transfer)时切到 TCP
题面"可以使用无连接服务"——意味着该协议支持 UDP(不一定唯一用 UDP)。DNS 默认用 UDP,是唯一符合的。
最终答案是 B(DNS)。
编者注(生僻术语):"分用"指传输层把上行的数据按端口号交给正确进程;"无连接"指不建立握手、不保证顺序、不可靠——UDP 的核心特性。题面说"可以使用"是关键限定,注意 DNS 在大响应时也会切到 TCP,并不是只用 UDP;但本题问的是"可以"用 UDP 的协议,DNS 是符合的唯一选项。