面试核心回答
TCP 是面向连接、可靠的传输层协议;UDP 是无连接、不可靠的传输层协议。核心差异体现在连接、可靠性、拥塞控制、报文开销、适用场景。
核心区别
- 连接特性
- TCP:面向连接,通信前需要三次握手建立连接,通信结束四次挥手断开连接。
- UDP:无连接,不需要建立连接,直接发包。
- 可靠性
- TCP:可靠传输。通过序号、确认应答ACK、超时重传,保证数据不丢失、不乱序、不重复。
- UDP:不可靠。没有确认机制,报文可能丢包、乱序,不做重传。
- 流量/拥塞控制
- TCP:具备流量控制(滑动窗口)、拥塞控制(慢启动、拥塞避免等),防止网络过载、接收方溢出。
- UDP:无流量、拥塞控制,发送速率由应用层决定。
- 头部开销
- TCP:头部至少20字节,选项最多40字节,开销大。
- UDP:固定头部仅8字节,开销很小。
- 交付形式
- TCP:字节流,没有报文边界,是连续数据流。
- UDP:数据报,保留报文边界,一次收发一个完整报文。
适用场景
- TCP:文件传输、HTTP/HTTPS、数据库访问,要求数据准确完整。
- UDP:直播、视频通话、DNS查询、游戏实时通信,允许少量丢包,优先低延迟。
一句话总结(面试收尾加分)
TCP 牺牲延迟换取可靠;UDP 牺牲可靠性换取更低延迟和更小开销。