ArcLibrary

TCP vs UDP(对照)

什么时候用 TCP、什么时候用 UDP —— 一张表 + 几条经验决定。

TCPUDP对照
核心 · Key Idea

一句话:TCP 提供可靠,UDP 提供简单 + 实时。场景需要"绝对送到、按顺序"选 TCP;需要"低延迟、丢一点没关系"选 UDP。HTTP/3 选 UDP 是因为它把可靠性自己实现在了 QUIC 里。

一表对比#

维度TCPUDP
连接三次握手建立无连接
可靠性序号 + ACK + 重传,保证不丢不保证
顺序保证有序不保证
流控滑动窗口
拥塞控制Reno / CUBIC / BBR无(应用层自理)
数据形式字节流(无边界)数据报(有边界)
头部大小20+ 字节8 字节
广播 / 组播不支持原生支持
典型协议HTTP/1/2、SSH、SMTP、数据库、TLSDNS、DHCP、NTP、VoIP、QUIC
NAT 穿透容易(路由器看 SYN/FIN)较难(依赖超时)

怎么选#

实操经验#

  • HTTP/1/2、SSH、SMTP、IMAP、数据库连接:TCP。
  • DNS、DHCP、NTP:UDP(轻量、单次问答)。
  • VoIP / 视频会议 / 直播 / 游戏:UDP,丢一两个帧无关大局。
  • HTTP/3:UDP 上跑 QUIC —— 既要可靠又要避免 TCP 队头阻塞。
  • 追求极致吞吐(数据中心内部 / 高频交易):UDP + 自实现可靠(如 KCP / DPDK)。

易混点#

TCP
可靠 + 有序 + 拥塞控制。
握手开销,**正确性优先**。
UDP
无连接 + 不保证。
无握手零开销,**实时性优先**。

延伸阅读#