打印
[麦麦茶水间]

【每周分享】浅谈TCP协议和UDP协议的区别

[复制链接]
599|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dffzh|  楼主 | 2025-7-24 13:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dffzh 于 2025-7-24 13:57 编辑

TCP协议,即TransmissionControl Protocol,传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP协议,即UserDatagram Protocol,用户数据报协议,是一种面向无连接的、不可靠的、面向报文的传输层通信协议。
通过Wireshark随意捕捉一些网络报文数据,就有一些基于TCP协议或者UDP协议的报文,如下图所示:
那TCP协议和UDP协议究竟有哪些区别呢?下面逐一说明。
1. 连接方式
TCP:面向连接;
三次握手机制,即通信前需通过三次握手建立连接,传输结束后通过四次挥手释放连接。
示例:打电话前需拨通并确认对方接听。
UDP:无连接;
直接发送数据,无需预先建立连接。
示例:寄信时无需确认收件人是否准备好;通过微信或QQ等聊天工具发送信息时无需对方准备好即可直接发送等。
2. 可靠性
TCP:可靠传输;
通过确认应答(ACK)、超时重传、流量控制和拥塞控制等机制确保数据不丢失、不重复、按序到达。
示例:文件传输、网页浏览(HTTP/HTTPS)。
UDP:不可靠传输;
不保证数据到达或按序到达,无重传机制。
示例:视频流、实时游戏(容忍少量丢包)。
3. 数据顺序
TCP:保证数据按发送顺序到达;
通过序列号和确认号重组乱序数据包。
UDP:不保证顺序;
应用层需自行处理乱序问题。
4. 速度与效率
TCP:速度较慢,开销大;
因连接管理、重传、流量控制等机制,头部较大(20-60字节)。
UDP:速度快,开销小;
无连接管理,头部固定仅8字节,适合实时性要求高的场景。
5. 拥塞控制
TCP:动态调整发送速率以避免网络拥塞,比如慢启动方式和拥塞避免算法等。
UDP:无拥塞控制,可能会加剧网络拥堵。
6. 传输方式
TCP:基于字节流的协议,无明确消息边界;
应用层需自行处理消息分割,比如HTTP的Content-Length。
UDP:基于数据报,每个包是独立的消息,保留发送边界。
7. 应用场景
TCP:
要求可靠性的场景:网页(HTTP/HTTPS)、邮件(SMTP)、文件传输(FTP)、远程登录(SSH)。
UDP:
实时性或速度优先的场景:视频会议(Zoom)、在线游戏(UDP+自定义协议)、DNS查询、直播流(RTP)。
8. 多播/广播支持
TCP:仅支持单播(一对一通信);
UDP:支持单播、多播(一对多)、广播(一对所有);
我们再看看协议的报文格式。

TCP的报文格式如下图所示:
UDP的报文格式如下图所示:
从两者的报文格式也可以看出,TCP协议比UDP协议复杂,功能更多。

使用特权

评论回复
沙发
21mengnan| | 2025-7-25 16:22 | 只看该作者
没分析过,不过UDP好像传输大文件更好一些吧。

使用特权

评论回复
板凳
dffzh|  楼主 | 2025-7-25 17:12 | 只看该作者
21mengnan 发表于 2025-7-25 16:22
没分析过,不过UDP好像传输大文件更好一些吧。

看需求,如果需要保证文件安全可靠的到达目的地,尽量走TCP,如果对传输速度有更高要求,可以走UDP。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

1102

帖子

20

粉丝