概念:
TCP是传输控制协议,是面向连接、可靠的、基于字节流的传输层通信协议。
UDP是用户数据报协议,是无连接、不可靠的,基于数据包的传输层通信协议。
特点:
TCP:面向连接的、可靠的、传输形式为字节流的、传输效率慢、所需资源多。
UDP:无连接、不可靠的、传输形式为数据报文段,传输效率高、所需资源少。
区别:
是否面向连接:TCP面向连接的传输、UDP是无连接的传输。
是否是可靠传输:TCP是可靠传输,在传输数据之前要进行三次握手,在传递数据时,有确认、窗口、重传、拥塞控制机制。UDP是不可靠传输、数据传递的时候,不需要给出任何确认,不保证数据不丢失以及到达顺序。
是否有状态:TCP是有状态,他回去记录自己发送消息的状态,比如消息是否发送、是否被接收等等。UDP是无状态的
传输形式:TCP是面向字节流的、UDP是面向报文的
传输效率:TCP传输时,由于多了连接和确认重传机制,所以TCP传输效率比UDP传输效率要低
首部开销:TCP的首部开销要比UDP的大
是否提供广播或多播的服务:TCP是点对点的通信。UDP支持一对一、一对多、多对一、多对多。
流量控制:TCP使用滑动窗口进行流量控制、UDP没有
拥塞控制:慢开始、拥塞控制、快重传、快恢复
使用场景:
TCP常用在对数据可靠性要求高的场景,比如:邮件传输、文件传输、网页浏览、远程登录、数据库操作等
UDP常用在对实时性要求高的场景下,比如:域名转换、视频直播、实时游戏等