打印
[开发资料]

TCP 和 UDP 的区别?

[复制链接]
907|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

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

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适合大包快速通信。

使用特权

评论回复
5
OKAKAKO| | 2024-6-21 21:06 | 只看该作者
UDP 就是无状态, 不可控的

使用特权

评论回复
6
中国龙芯CDX| | 2024-6-26 16:43 | 只看该作者
TCP是一个面向连接的、可靠的、基于字节流的传输层协议。

使用特权

评论回复
7
jf101| | 2024-6-27 16:47 | 只看该作者
UDP 就是无状态, 不可控的,但容错率低

使用特权

评论回复
8
gongqijuns| | 2024-7-11 11:34 | 只看该作者
TCP(传输控制协议)和 UDP(用户数据报协议)是互联网协议族(TCP/IP)中的两种重要的传输层协议,它们在数据传输方面有着不同的特点和适用场景

使用特权

评论回复
9
eleg34ance| | 2024-7-11 12:40 | 只看该作者
TCP 是一种面向连接的协议,它在数据传输之前需要通过三次握手建立连接。UDP 是一种无连接的协议,它不需要预先建立连接,可以直接发送数据包

使用特权

评论回复
10
清芯芯清| | 2024-7-11 13:45 | 只看该作者
一般来说,TCP 提供可靠的数据传输,它确保数据包按顺序到达,并且没有错误或丢失。如果数据包丢失,TCP 会重传。UDP 不保证数据包的可靠传输,它不进行错误检查或重传,因此可能会丢失数据包或数据包到达顺序不一致

使用特权

评论回复
11
tiakon| | 2024-7-11 15:06 | 只看该作者
其实TCP 由于需要进行连接管理、错误检查和重传,因此通常比 UDP 慢。UDP 由于没有连接建立和维护的开销,以及较少的错误检查,因此通常比 TCP 快

使用特权

评论回复
12
miltk| | 2024-7-11 16:30 | 只看该作者
TCP 具有流量控制和拥塞控制机制,可以调整数据传输速率以避免网络拥塞。UDP 没有内置的流量控制和拥塞控制,发送方可以以任意速率发送数据

使用特权

评论回复
13
wamed| | 2024-7-11 19:00 | 只看该作者
TCP 不保留数据边界,它将数据视为一个连续的字节流,不保证消息的边界。UDP 保留数据边界,每个 UDP 数据包(数据报)都是一个独立的消息,有明确的边界

使用特权

评论回复
14
hight1light| | 2024-7-11 20:13 | 只看该作者
我知道的是TCP 头部较大,通常至少有 20 字节,包含序列号、确认号、窗口大小等信息。UDP 头部较小,固定为 8 字节,只包含源端口、目的端口、长度和校验和等基本信息

使用特权

评论回复
15
weifeng90| | 2024-7-12 07:38 | 只看该作者
简单讲,TCP是带数据校验的,而TCP是直接透传。

使用特权

评论回复
16
ewyu| | 2024-7-12 09:12 | 只看该作者
应用场景不一样的,TCP 适用于需要高可靠性和顺序数据传输的应用,如文件传输(FTP)、电子邮件(SMTP)、网页浏览(HTTP)等。UDP 适用于实时性要求高、可以容忍少量数据丢失的应用,如实时语音/视频通信(VoIP、视频会议)、在线游戏、实时流媒体等

使用特权

评论回复
17
canfeil| | 2024-7-12 10:25 | 只看该作者
总结来说,TCP 提供了可靠的、面向连接的服务,适合对数据传输质量要求高的应用;而 UDP 提供了简单的、无连接的服务,适合对速度和实时性要求高的应用。选择 TCP 还是 UDP 取决于应用的具体需求

使用特权

评论回复
18
nqty| | 2024-7-12 12:14 | 只看该作者
UDP算是无连接通信,需要监听才行,TCP并不是

使用特权

评论回复
19
小小蚂蚁举千斤|  楼主 | 2024-7-17 23:15 | 只看该作者
ewyu 发表于 2024-7-12 09:12
应用场景不一样的,TCP 适用于需要高可靠性和顺序数据传输的应用,如文件传输(FTP)、电子邮件(SMTP)、 ...

确实是主要还是看细节应用

使用特权

评论回复
20
szt1993| | 2024-7-22 13:01 | 只看该作者
其实TCP 由于需要进行连接管理、错误检查和重传,因此通常比 UDP 慢

使用特权

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

本版积分规则

196

主题

2037

帖子

1

粉丝