tcp和udp区别总结

xiaoxiao2025-08-30  8

1、 TCP是面向有连接的,UDP是面向无连接的

有连接和无连接是什么意思?

有连接: 通信之前,必须与对端建立一个连接通道,发送数据之前必须得到接收端的确认才能发送。 连接断开后就无法发送数据

无连接:不要求建立连接,发送端可以在任何时间自由发送数据,接收端也不知道自己何时从哪里接收数据,即使接收端不存在或者无法接受数据,发送方也可以将数据发送出去。

2、TCP连接只能是一对一,UDP可以是一对一、一对多、多对一和多对多

3、TCP 是可靠连接。UDP不能保证可靠连接。

TCP通过校验和、重传控制、序号标识、滑动窗口、确认应答等特性来实现可靠传输

UDP 继承了 IP 包的特性,不保证不丢失,不保证按顺序到达。

4、TCP 是面向字节流,UDP面向报文

TCP 是面向字节流的。发送的时候发的是一个流,没头没尾。

IP 包可不是一个流,而是一个个的 IP 包。之所以变成了流,这也是 TCP 自己的状态维护做的事情。

UDP 继承了 IP 的特性,基于数据报的,一个一个地发,一个一个地收。

5、TCP 可以拥塞控制,UDP无拥塞控制

TCP 是可以有拥塞控制的。它意识到包丢弃了或者网络的环境不好了,就会根据情况调整自己的行为,看看是不是发快了,要不要发慢点。

UDP 无法进行拥塞控制,应用让我发,我就发,管它洪水滔天。

6、TCP 有状态,UDP无状态

TCP 其实是一个有状态服务,通俗地讲就是有脑子的,里面精确地记着发送了没有,接收到没有,发送到哪个了,应该接收哪个了,错一点儿都不行。

而UDP 则是无状态服务。通俗地说是没脑子的,天真无邪的,发出去就发出去了。

7、TCP提供全双工通信。

8、开销

UDP首部开销小(只有四个字段:源端口、目的端口、长度、检验和)。

9、采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大。

10、应用场景

UDP比较适合实时性要求较为严格的应用场景,比如游戏、聊天、直播等,可结合其他可靠机制降低丢包率,谷歌的QUIC可以提供几乎等同于TCP连接的可靠性,但延迟大大减少

转载请注明原文地址: https://www.6miu.com/read-5035487.html

最新回复(0)