TCP和UDP的区别
TCP 是一种 面向连接、可靠的字节流协议,设计目标是确保数据「不丢失、不重复、按顺序」从发送方传到接收方,哪怕网络不稳定(比如丢包、延迟),也能通过自身机制弥补。
UDP 是一种 无连接、不可靠的数据报协议,设计目标是「尽可能快地传递数据」,不保证数据是否送达、是否按顺序到达,也不处理网络异常,代价是极致的低延迟和低开销。
TCP和UDP是TCP/IP协议栈中传输层的核心协议,核心差异在于:TCP 是面向连接的可靠传输协议,UDP 是无连接的不可靠传输协议—— 前者追求“稳”,后者追求“快”。
核心区别
| 对比维度 | TCP(传输控制协议) | UDP(用户数据报协议) |
|---|---|---|
| 连接性 | 面向连接(需 “三次握手” 建立连接,“四次挥手” 关闭连接) | 无连接(直接发送数据,无需建立 / 断开连接) |
| 可靠性 | 可靠传输(保证数据不丢失、不重复、按序到达)1.有重传机制(丢包会重发)2.有排序机制(按发送顺序重组数据) 3.有流量控制(避免接收方处理不过来)4.有拥塞控制(避免网络拥堵) | 不可靠传输(不保证送达、不保证顺序)1.无重传、无排序、无流量/拥塞控制 2.数据可能丢失、重复、乱序到达 |
| 传输速度 | 较慢(连接建立、确认、重传等机制增加开销) | 极快(无额外机制,数据直接传输,开销极小) |
| 数据形式 | 面向字节流(无数据边界,需应用层自行分割) | 面向数据报(数据以“包”为单位,每个包独立,有明确边界) |
| 适用场景 | 需保证数据完整的场景:1.网页浏览(HTTP/HTTPS)2.文件传输(FTP)3.邮件发送(SMTP)4.转账支付、聊天消息 | 需高速传输、可容忍少量丢包的场景:1.视频 / 音频直播(直播卡顿可容忍)2.网络游戏(低延迟比少量丢包更重要)3.广播 / 多播(如视频会议) |
| 开销 | 高(头部信息约 20-60 字节,含序号、确认号等控制字段) | 低(头部仅 8 字节,仅包含源端口、目的端口、长度、校验和) |
总结
- 用 TCP:需要 “数据绝对不能错” 的场景(网页浏览、文件下载、转账支付、聊天消息);
- 用 UDP:需要 “速度优先,能容忍少量丢包” 的场景(视频直播、网络游戏、物联网数据上报、视频会议)。

浙公网安备 33010602011771号