694 字
3 分钟
TCP 和 UDP 有什么区别?如何选择
  1. 1计算机网络学习路线与文章导读
  2. 2网络分层模型与数据封装是怎么回事
  3. 3TCP/IP 四层模型与 OSI 七层模型
  4. 4IP 地址与 CIDR 子网怎么理解
  5. 5ARP 是什么?主机如何找到目标 MAC 地址
  6. 6IP 路由与默认网关是如何工作的
  7. 7TCP 和 UDP 有什么区别?如何选择本文
  8. 8TCP 握手、挥手和丢包重传分别解决什么问题
  9. 9TCP 三次握手与四次挥手
  10. 10TCP 流量控制和拥塞控制有什么区别
  11. 11TCP 为什么可靠:流量控制、拥塞控制与局限性
  12. 12TCP 丢包、粘包和拆包是什么
  13. 13HTTP/1.0、HTTP/1.1、HTTP/2 与 HTTP/3 有什么区别
  14. 14HTTP 请求包含哪些内容
  15. 15HTTP 中 GET 和 POST 有什么区别
  16. 16HTTP 方法的安全性与幂等性怎么区分
  17. 17HTTP 状态码与网络故障如何区分排查
  18. 18常见 HTTP 状态码与网站故障排查
  19. 19HTTP 和 HTTPS 有什么区别
  20. 20谈谈对 DNS 和 CDN 的理解
  21. 21从输入网址到网页显示发生了什么
  22. 22TCP 的 TIME_WAIT 状态有什么作用
  23. 23TCP 的 CLOSE_WAIT 状态是什么,过多如何排查
  24. 24TLS 1.3 握手过程是什么
  25. 25HTTPS 如何校验证书
  26. 26HTTP 强缓存和协商缓存怎么工作
  27. 27HTTP Keep-Alive 是什么,连接如何复用
  28. 28WebSocket 和 HTTP 有什么区别
  29. 29服务端如何解析 HTTP 请求的数据
  30. 30NAT 是什么?端口映射如何实现
  31. 31ICMP、ping 和 traceroute 分别做什么
  32. 32网络故障如何分层排查
  33. 33Cookie、Session、Token 与 JWT 有什么区别
  34. 34常见的登录鉴权方式有哪些
  35. 35什么是 SYN Flood 攻击

TCP 和 UDP 都是传输层协议,负责在主机间传递应用数据,但提供的服务不同。TCP 面向连接,提供有序字节流,并通过确认、重传、流量控制和拥塞控制实现可靠传输;UDP 面向数据报,每个报文保留边界,不保证到达、顺序或去重,协议头和状态管理更简单。

对比项TCPUDP
数据模型字节流,没有应用消息边界数据报,保留报文边界
可靠性确认、重传、有序交付不保证交付与顺序
连接建立连接并维护状态无连接,不等于完全无状态的应用
控制机制流量控制、拥塞控制UDP 本身不提供这些机制
常见用途HTTP/1.1、HTTP/2、数据库连接DNS 常规查询、实时媒体、QUIC 底层

选择应从应用需求出发。文件传输、数据库协议通常需要完整有序的数据;实时语音视频更在意时效,过晚的数据可能没有价值。应用选择 UDP 后若需要可靠传输,必须自行实现或使用 QUIC 等协议,不能把“UDP 快”当成无条件结论。实际性能还受网络、实现和消息大小影响。

还要区分“传输层不保证可靠”和“应用容忍丢失”。实时音频可能通过编码冗余、抖动缓冲和有限重传提升体验;游戏状态更新可丢弃过期状态并发送最新状态。TCP 提供的是可靠字节流,不了解消息优先级或过期时间,应用需自行定义消息边界与业务语义。若把 UDP 上的可靠性实现不完整,可能出现重传风暴、拥塞不公平或消息重复处理等问题。

常见追问#

UDP 真的比 TCP 快吗?#

UDP 协议机制简单、没有握手和确认重传的固有成本,但应用可能要自行补齐这些机制。最终延迟和吞吐要看协议设计与网络条件,不能仅凭 UDP 名称判断。

DNS 为什么常用 UDP?#

常规 DNS 查询小而短,使用 UDP 可减少交互开销;遇到截断响应、特定操作或策略要求时也会使用 TCP。现代 DNS 还有其他传输方式。

QUIC 为什么使用 UDP?#

QUIC 在 UDP 数据报上实现可靠传输、拥塞控制和多路复用等能力,便于在用户空间演进。它不是把可靠性寄托给 UDP。

TCP 能否传输实时数据?#

可以,但丢包重传可能让后续数据等待,应用要评估时效要求。实时性并不自动意味着必须选 UDP。

TCP 和 UDP 有什么区别?如何选择
https://blog.xqcherry.top/posts/interview/network/tcp-vs-udp/
作者
xqcherry
发布于
2026-10-12
许可协议
CC BY-NC-SA 4.0