TCP 和 UDP 有什么区别?

面试核心回答

TCP 是面向连接、可靠的传输层协议;UDP 是无连接、不可靠的传输层协议。核心差异体现在连接、可靠性、拥塞控制、报文开销、适用场景。

核心区别

  1. 连接特性
  • TCP:面向连接,通信前需要三次握手建立连接,通信结束四次挥手断开连接。
  • UDP:无连接,不需要建立连接,直接发包。
  1. 可靠性
  • TCP:可靠传输。通过序号、确认应答ACK、超时重传,保证数据不丢失、不乱序、不重复。
  • UDP:不可靠。没有确认机制,报文可能丢包、乱序,不做重传。
  1. 流量/拥塞控制
  • TCP:具备流量控制(滑动窗口)、拥塞控制(慢启动、拥塞避免等),防止网络过载、接收方溢出。
  • UDP:无流量、拥塞控制,发送速率由应用层决定。
  1. 头部开销
  • TCP:头部至少20字节,选项最多40字节,开销大。
  • UDP:固定头部仅8字节,开销很小。
  1. 交付形式
  • TCP:字节流,没有报文边界,是连续数据流。
  • UDP:数据报,保留报文边界,一次收发一个完整报文。

适用场景

  • TCP:文件传输、HTTP/HTTPS、数据库访问,要求数据准确完整。
  • UDP:直播、视频通话、DNS查询、游戏实时通信,允许少量丢包,优先低延迟。

一句话总结(面试收尾加分)

TCP 牺牲延迟换取可靠;UDP 牺牲可靠性换取更低延迟和更小开销。

相关推荐
erzong2312 小时前
Linux网络:UDP编程踩坑日记
linux·网络·udp
跨境数据猎手2 小时前
机房、住宅、原生IP区别在哪,三类代理的说明
网络·网络协议·tcp/ip
尘一不染4 小时前
多模型 API 接入实战(一):从一次 HTTP 请求到可维护的适配层
网络·人工智能·网络协议·http
笑虾5 小时前
RustDesk 支持局域网 IP + 自定义端口直接连接
网络·网络协议·tcp/ip
桑榆4166 小时前
板端修改静态IP
网络·网络协议·tcp/ip
程序员夏洛6 小时前
TCP 是用来解决什么问题?
java·网络协议·http·https
艾莉丝努力练剑8 小时前
【AI大模型接入SDK】ChatServer HTTP接口模块实现总览
网络·c++·人工智能·网络协议·学习·http·架构
YumiProxy1 天前
流媒体区域内容访问:代理IP的技术原理、检测机制与稳定性优化
服务器·网络·网络协议·tcp/ip·ip
yeflx1 天前
Ubuntu22.04下通过Wireshark抓取相机IP
tcp/ip·测试工具·wireshark