TCP 和 UDP的区别

2022-04-22
2694

TCP

UDP

一、用户数据报协议 UDP(User Datagram Protocol):
1、UDP 在传送数据之前不需要先建立连接,远程主机在收到 UDP 报文后,不需要给出任何确认。
2、虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如:QQ 语音、 QQ 视频 、直播等等

二、传输控制协议 TCP(Transmission Control Protocol):
1、TCP 提供 面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。
2、TCP 不提供广播或多播服务。由于 TCP 要提供
可靠的,面向连接的传输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、流量控制、拥塞控制机制,在数据传完后,还会四次挥手断开连接用来节约系统资源),这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。
3、TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。

三、TCP 三次握手建立连接

四、区别
1、TCP是面向连接的,UDP是无连接的
2、TCP是可靠的,UDP是不可靠的
3、TCP是面向字节流的,UDP是面向数据报文的
4、TCP只支持点对点通信,UDP支持一对一,一对多,多对多
5、TCP报文首部20个字节,UDP首部8个字节
6、TCP有拥塞控制机制,UDP没有
7、TCP协议下双方发送接受缓冲区都有,UDP并无实际意义上的发送缓冲区,但是存在接受缓冲区


五、什么时候选TCP or UDP
对某些实时性要求比较高的情况,选择UDP,比如游戏,媒体通信,实时视频流(直播),即使出现传输错误也可以容忍;其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失


六、其他

推荐:TCP和UDP的最完整的区别 
推荐:tcp和udp有什么区别 
推荐:TCP与UDP的区别(超详细)