[开发资料] TCP 和 UDP 的区别?

[复制链接]
1669|19
 楼主| 小小蚂蚁举千斤 发表于 2024-6-11 15:00 | 显示全部楼层 |阅读模式

首先概括一下基本的区别:

TCP是一个面向连接的、可靠的、基于字节流的传输层协议。

而UDP是一个面向无连接的传输层协议。(就这么简单,其它TCP的特性也就没有了)。

具体来分析,和 UDP 相比,TCP 有三大核心特性:

1、面向连接。所谓的连接,指的是客户端和服务器的连接,在双方互相通信之前,TCP 需要三次握手建立连接,而 UDP 没有相应建立连接的过程。

2、可靠性。TCP 花了非常多的功夫保证连接的可靠,这个可靠性体现在哪些方面呢?一个是有状态,另一个是可控制。

TCP 会精准记录哪些数据发送了,哪些数据被对方接收了,哪些没有被接收到,而且保证数据包按序到达,不允许半点差错。这是有状态。

当意识到丢包了或者网络环境不佳,TCP 会根据具体情况调整自己的行为,控制自己的发送速度或者重发。这是可控制。

相应的,UDP 就是无状态, 不可控的。

3、面向字节流。UDP 的数据传输是基于数据报的,这是因为仅仅只是继承了 IP 层的特性,而 TCP 为了维护状态,将一个个 IP 包变成了字节流。
AdaMaYun 发表于 2024-6-14 08:39 | 显示全部楼层
UDP是一个面向无连接的传输层协议,理论上比TCP简单
小夏天的大西瓜 发表于 2024-6-17 22:56 | 显示全部楼层
TCP是一个面向连接的、可靠的、基于字节流的传输层协议。
yangxiaor520 发表于 2024-6-18 19:33 来自手机 | 显示全部楼层
TCP协议传输更可靠,UDP适合大包快速通信。
OKAKAKO 发表于 2024-6-21 21:06 | 显示全部楼层
UDP 就是无状态, 不可控的
中国龙芯CDX 发表于 2024-6-26 16:43 | 显示全部楼层
TCP是一个面向连接的、可靠的、基于字节流的传输层协议。
jf101 发表于 2024-6-27 16:47 | 显示全部楼层
UDP 就是无状态, 不可控的,但容错率低
gongqijuns 发表于 2024-7-11 11:34 | 显示全部楼层
TCP(传输控制协议)和 UDP(用户数据报协议)是互联网协议族(TCP/IP)中的两种重要的传输层协议,它们在数据传输方面有着不同的特点和适用场景
eleg34ance 发表于 2024-7-11 12:40 | 显示全部楼层
TCP 是一种面向连接的协议,它在数据传输之前需要通过三次握手建立连接。UDP 是一种无连接的协议,它不需要预先建立连接,可以直接发送数据包
清芯芯清 发表于 2024-7-11 13:45 | 显示全部楼层
一般来说,TCP 提供可靠的数据传输,它确保数据包按顺序到达,并且没有错误或丢失。如果数据包丢失,TCP 会重传。UDP 不保证数据包的可靠传输,它不进行错误检查或重传,因此可能会丢失数据包或数据包到达顺序不一致
tiakon 发表于 2024-7-11 15:06 | 显示全部楼层
其实TCP 由于需要进行连接管理、错误检查和重传,因此通常比 UDP 慢。UDP 由于没有连接建立和维护的开销,以及较少的错误检查,因此通常比 TCP 快
miltk 发表于 2024-7-11 16:30 | 显示全部楼层
TCP 具有流量控制和拥塞控制机制,可以调整数据传输速率以避免网络拥塞。UDP 没有内置的流量控制和拥塞控制,发送方可以以任意速率发送数据
wamed 发表于 2024-7-11 19:00 | 显示全部楼层
TCP 不保留数据边界,它将数据视为一个连续的字节流,不保证消息的边界。UDP 保留数据边界,每个 UDP 数据包(数据报)都是一个独立的消息,有明确的边界
hight1light 发表于 2024-7-11 20:13 | 显示全部楼层
我知道的是TCP 头部较大,通常至少有 20 字节,包含序列号、确认号、窗口大小等信息。UDP 头部较小,固定为 8 字节,只包含源端口、目的端口、长度和校验和等基本信息
weifeng90 发表于 2024-7-12 07:38 来自手机 | 显示全部楼层
简单讲,TCP是带数据校验的,而TCP是直接透传。
ewyu 发表于 2024-7-12 09:12 | 显示全部楼层
应用场景不一样的,TCP 适用于需要高可靠性和顺序数据传输的应用,如文件传输(FTP)、电子邮件(SMTP)、网页浏览(HTTP)等。UDP 适用于实时性要求高、可以容忍少量数据丢失的应用,如实时语音/视频通信(VoIP、视频会议)、在线游戏、实时流媒体等
canfeil 发表于 2024-7-12 10:25 | 显示全部楼层
总结来说,TCP 提供了可靠的、面向连接的服务,适合对数据传输质量要求高的应用;而 UDP 提供了简单的、无连接的服务,适合对速度和实时性要求高的应用。选择 TCP 还是 UDP 取决于应用的具体需求
nqty 发表于 2024-7-12 12:14 | 显示全部楼层
UDP算是无连接通信,需要监听才行,TCP并不是
 楼主| 小小蚂蚁举千斤 发表于 2024-7-17 23:15 | 显示全部楼层
ewyu 发表于 2024-7-12 09:12
应用场景不一样的,TCP 适用于需要高可靠性和顺序数据传输的应用,如文件传输(FTP)、电子邮件(SMTP)、 ...

确实是主要还是看细节应用
szt1993 发表于 2024-7-22 13:01 | 显示全部楼层
其实TCP 由于需要进行连接管理、错误检查和重传,因此通常比 UDP 慢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

228

主题

2630

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部