• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

TCP和UDP的区别

互联网 diligentman 2小时前 2次浏览

简介

TCP和UDP是传输层提供的两个协议,提供了不同的运输功能!

头部信息

TCP和UDP的区别

TCP和UDP的区别

TCP是一个面向连接、可靠的协议。
UDP是一个无连接、不可靠的协议。

从头部就可以看出,TCP的头部比UDP多出不少内容。

区别

面向连接

TCP是面向连接的,在传输数据之前必须建立连接

UDP不需要连接,直接发送数据包就可以了。

发送方式

TCP面向字节流,将数据以字节流的方式传输。

UDP面向报文,应用程序交付多大的数据包,UDP都直接一次性传输一个报文。

可靠

TCP根据序列号和自动重传提供了可靠传输

UDP没有提供可靠传输。

流量控制和拥塞控制

TCP提供了拥塞控制和流量控制

UDP没有提供流量控制和拥塞控制,即使网络拥堵,也会发送全部数据

对应关系

TCP中客户端和服务器 1:1 对应。

UDP中没有客户端和服务器的概念,1个UDP 可以同时向 多个UDP发送数据包,1个UDP也可以同时接收多个UDP发送的数据包。

分片
当数据超过MTU的时候,会对数据包分片

TCP会在运输层中就开始分片,TCP自己会进行分片,每个分片中都有一个TCP头部。

UDP会将所有数据都放到UDP数据里面,然后在IP层分片,只有一个分片中存在UDP头部。IP层会对UDP分片和重组,如果有分片丢失,就重传所有的分片。具体的原理我们单独开一篇文章讲。

应用场景

TCP适用于HTTP、FTP、SMTP等需要可靠传输的场景。
TCP因为要确保可靠传输,需要建立连接(三次握手等)、维护滑动窗口等操作,延迟比较高。

UDP适用于以下场景:
1、 数据量小并且对可靠性要求不高
2、 多对多传输
3、 实时性要求高

UDP不需要建立连接,并且数据量小的时候不需要IP分片,传输效率高,延迟低。

比如:DNS、实时性要求高的游戏、视频语音聊天等


程序员灯塔
转载请注明原文链接:TCP和UDP的区别
喜欢 (0)