Skip to content
难度基础(★)
建议时长45分钟

5.2.3 TCP与UDP

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

不是谁替代谁,而是取舍不同

TCP 和 UDP 都工作在传输层,都基于 IP 协议向上提供进程到进程的传输能力。它们的差异不是“先进”和“落后”,而是可靠性、开销、实时性之间的取舍。

TCP 为了可靠,会建立连接、确认应答、超时重传、顺序控制、流量控制;UDP 为了轻量,不建立连接,也不保证可靠到达。于是 TCP 更稳,UDP 更快、更简单。

对比项TCPUDP
连接方式面向连接无连接
可靠性可靠传输不保证可靠
顺序保证按序交付不保证顺序
控制机制确认、重传、流量控制、拥塞控制控制机制少
首部开销较大较小
典型优势完整性、准确性实时性、低延迟、广播/简单查询
典型场景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 基于 UDPSMTP 是邮件传输,基于 TCP
SNMP 是邮件协议SNMP 是简单网络管理协议
ping 基于 TCPping 主要使用 ICMP
TCP/UDP 基于 ARPTCP/UDP 基于 IP,ARP 是地址解析

用场景判断

题干关键词优先想到
面向连接、可靠、有序、确认、重传TCP
无连接、开销小、实时、广播、简单查询UDP
ping、回显请求、差错报告ICMP
域名解析DNS,常基于 UDP
动态分配 IPDHCP,基于 UDP
邮件传输SMTP,基于 TCP

技术演进里的“为什么没有互相淘汰”

网络协议不是简单地用新技术替代旧技术,而是在约束中长期共存。TCP 和 UDP 的关系就是典型例子:

需求变化TCP 的优势/不足UDP 的优势/不足
早期文件、邮件、网页传输可靠性强,适合完整数据可靠性不足,不适合关键文件
实时音视频兴起重传会增加延迟,体验可能更差延迟低,丢少量包可接受
大规模短查询建连开销相对明显查询响应轻量,效率高
应用自定义可靠机制TCP 内置机制稳定但不够灵活应用可在 UDP 上自定义控制策略

所以做题不要写“UDP 比 TCP 好”或“TCP 比 UDP 高级”。准确说法是:TCP 偏可靠,UDP 偏轻量;根据业务约束选择。

例题

单选
需要可靠、有序传输时,通常选择:
单选
UDP 的典型特点是:
单选
下列关于协议依赖关系的说法,正确的是:

自查要点

  1. TCP 的可靠性主要靠哪些机制换来?
  2. UDP 为什么适合 DNS、DHCP、音视频这类场景?
  3. SMTP 和 SNMP 的区别是什么?
  4. 为什么不能说 TCP/UDP 基于 ARP?
  5. 技术选型时,可靠性和实时性通常如何取舍?