5.2.3 TCP与UDP
本课核心知识点整理
不是谁替代谁,而是取舍不同
TCP 和 UDP 都工作在传输层,都基于 IP 协议向上提供进程到进程的传输能力。它们的差异不是“先进”和“落后”,而是可靠性、开销、实时性之间的取舍。
TCP 为了可靠,会建立连接、确认应答、超时重传、顺序控制、流量控制;UDP 为了轻量,不建立连接,也不保证可靠到达。于是 TCP 更稳,UDP 更快、更简单。
| 对比项 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接 | 无连接 |
| 可靠性 | 可靠传输 | 不保证可靠 |
| 顺序 | 保证按序交付 | 不保证顺序 |
| 控制机制 | 确认、重传、流量控制、拥塞控制 | 控制机制少 |
| 首部开销 | 较大 | 较小 |
| 典型优势 | 完整性、准确性 | 实时性、低延迟、广播/简单查询 |
| 典型场景 | Web、文件、邮件、远程登录 | DNS、DHCP、SNMP、TFTP、音视频 |
TCP:用控制换可靠
TCP 的关键是“连接”和“可靠”。所谓面向连接,不是说中间真的有一条专用线,而是在通信双方维护连接状态,并通过确认、序号、重传等机制让数据尽可能完整、有序地交付。
适合 TCP 的场景通常有这些特征:
| 场景特征 | 为什么适合 TCP |
|---|---|
| 文件必须完整 | 少一部分文件就损坏 |
| 邮件不能丢内容 | 丢失或乱序会影响语义 |
| 网页资源要正确 | HTML、CSS、脚本需要完整加载 |
| 远程登录要按序 | 命令和回显顺序不能乱 |
基于 TCP 的常见应用层协议包括 HTTP/HTTPS、FTP、SMTP、POP3、Telnet 等。
UDP:用简化换速度
UDP 不建立连接,也不对可靠性做复杂保证。它把数据报尽快发出去,是否丢失、是否乱序,通常交给应用层自己决定要不要处理。
适合 UDP 的场景通常有这些特征:
| 场景特征 | 为什么适合 UDP |
|---|---|
| 查询报文很小 | DNS 查询通常短小,快速返回更重要 |
| 自动配置靠广播 | DHCP 初始阶段客户端可能还没有 IP,常使用广播 |
| 网络管理轮询 | SNMP 信息轻量,周期性采集可容忍偶发丢包 |
| 实时音视频 | 迟到的数据价值很低,重传反而增加延迟 |
基于 UDP 的常见协议包括 DNS、DHCP、SNMP、TFTP 等。DNS 常见考试按 UDP 记,但在区域传送或响应过大时也可能使用 TCP。
协议分类别背错
课堂里特别强调:TCP 和 UDP 都是基于 IP 协议的传输层协议,不是“TCP/UDP 基于 ARP”。ARP 是地址解析,服务于 IP 到 MAC 的衔接,不能把 ARP 当成 TCP/UDP 的承载基础。
| 分类 | 协议 |
|---|---|
| 基于 TCP 的应用层协议 | HTTP、HTTPS、FTP、SMTP、POP3、Telnet |
| 基于 UDP 的应用层协议 | DNS、DHCP、SNMP、TFTP |
| 网际层相关协议 | IP、ICMP、ARP |
易错说法:
| 错误说法 | 为什么错 |
|---|---|
| SMTP 基于 UDP | SMTP 是邮件传输,基于 TCP |
| SNMP 是邮件协议 | SNMP 是简单网络管理协议 |
| ping 基于 TCP | ping 主要使用 ICMP |
| TCP/UDP 基于 ARP | TCP/UDP 基于 IP,ARP 是地址解析 |
用场景判断
| 题干关键词 | 优先想到 |
|---|---|
| 面向连接、可靠、有序、确认、重传 | TCP |
| 无连接、开销小、实时、广播、简单查询 | UDP |
| ping、回显请求、差错报告 | ICMP |
| 域名解析 | DNS,常基于 UDP |
| 动态分配 IP | DHCP,基于 UDP |
| 邮件传输 | SMTP,基于 TCP |
技术演进里的“为什么没有互相淘汰”
网络协议不是简单地用新技术替代旧技术,而是在约束中长期共存。TCP 和 UDP 的关系就是典型例子:
| 需求变化 | TCP 的优势/不足 | UDP 的优势/不足 |
|---|---|---|
| 早期文件、邮件、网页传输 | 可靠性强,适合完整数据 | 可靠性不足,不适合关键文件 |
| 实时音视频兴起 | 重传会增加延迟,体验可能更差 | 延迟低,丢少量包可接受 |
| 大规模短查询 | 建连开销相对明显 | 查询响应轻量,效率高 |
| 应用自定义可靠机制 | TCP 内置机制稳定但不够灵活 | 应用可在 UDP 上自定义控制策略 |
所以做题不要写“UDP 比 TCP 好”或“TCP 比 UDP 高级”。准确说法是:TCP 偏可靠,UDP 偏轻量;根据业务约束选择。
例题
需要可靠、有序传输时,通常选择:
UDP 的典型特点是:
下列关于协议依赖关系的说法,正确的是:
自查要点
- TCP 的可靠性主要靠哪些机制换来?
- UDP 为什么适合 DNS、DHCP、音视频这类场景?
- SMTP 和 SNMP 的区别是什么?
- 为什么不能说 TCP/UDP 基于 ARP?
- 技术选型时,可靠性和实时性通常如何取舍?