
📥 先领面试资料包
2025年Java面试宝典已更新,包含最新大厂真题和系统化知识梳理:
链接: https://pan.baidu.com/s/1RUVf75gmDVsg8MQp4yRChg?pwd=9b3g
提取码: 9b3g
TCP和UDP的区别有哪些
作为程序员面试中必考的网络八股文,TCP和UDP的区别被问到的概率高达90%。很多人虽然能背出"TCP可靠、UDP不可靠"的结论,但面试官更期待听到具体的技术实现差异。下面从七个实战角度,带你拆解两者的核心区别。
一、打电话 vs 发短信:连接机制不同
TCP就像打电话,拨通前需要三次握手建立连接。客户端发SYN包,服务端回SYN-ACK,客户端再发ACK确认,才能开始正式传输数据。这种机制确保了双方都有"在线状态感知"。
UDP则像发短信,发件人不需要确认对方手机是否开机,直接把数据包扔向目标地址。这种无连接特性让它成为直播、游戏场景的首选。

二、快递保价 vs 普通包裹:可靠性对比
TCP通过三大机制保证传输可靠:
- 超时重传:数据包发出后启动定时器,超时未收到ACK则重发
- 数据校验:通过校验和机制验证数据完整性
- 序列号机制:解决乱序和重复问题
UDP就像普通快递,既不保证数据包必达,也不处理丢包后的重传。直播场景中偶尔卡顿,就是因为UDP丢包后不做补偿。
三、限速车道 vs 高速公路:传输速度差异
由于要维护连接状态、执行流量控制,TCP的传输延迟通常在100ms以上。而UDP的端到端延迟可以做到10ms级别,这对实时音视频传输至关重要。
但要注意:UDP的高速度是以牺牲可靠性为代价的。有些面试者会把这点表述为"UDP比TCP快",这种说法其实不够准确。
四、智能水阀 vs 消防水管:流量控制方式
TCP内置拥塞控制算法(如慢启动、拥塞避免),能根据网络状况动态调整发送速率。就像高速公路的智能限速系统,既充分利用带宽,又避免造成网络拥堵。
UDP没有流量控制机制,像直接打开消防水龙头,无论网络是否拥堵都会全力发送数据包。这在视频会议场景反而成为优势——优先保证实时性,允许适度丢包。

五、顺序清单 vs 随机抽签:数据包排序
TCP通过序列号严格保证数据包的接收顺序,即使网络传输时乱序到达,接收方也会按序号重新组装。这解释了为什么下载文件必须用TCP协议。
UDP数据包则是"各走各路",接收顺序无法保证。比如视频通话中,后发出的嘴唇动作帧可能比先发出的声音帧更早到达,导致音画不同步。
六、西装革履 vs 运动短裤:协议头大小
TCP头部至少20字节,包含序列号、确认号、窗口大小等十余个字段,像穿着正式西装的管理层。UDP头部仅8字节(源端口+目标端口+长度+校验和),就像穿着轻便的运动装。
这种差异在物联网场景尤为明显:一个智能水表每天发送1000次数据,用UDP相比TCP每年可节省约1.5GB流量。
七、应用场景选择指南
根据前面的特性对比,可以得出经典选择原则:
- 选TCP:文件传输、邮件收发、网页浏览
- 选UDP:直播推流、在线游戏、视频会议
但实际开发中常有交叉使用的情况。比如微信视频通话底层用UDP传输音视频流,上层通过私有协议实现部分可靠性控制。
🚀 如何高效准备面试
理解TCP/UDP区别只是网络知识体系的冰山一角。建议结合《2025年Java面试宝典》系统化复习,该资料包包含:
- 300+大厂最新真题解析
- 分布式系统高频考点
- JVM调优实战案例
- 并发编程陷阱大全
需要开通面试鸭会员的同学,通过面试鸭返利网下单可立即返现25元。我们整理了全网最全的面试题库和考点解析,助你精准突破技术盲区。


