TCP与UDP区别
TCP提供的是面向连接的、可靠的数据流传输;
UDP提供的是非面向连接的、不可靠的数据流传输。
TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失,不重复,按序到达;UDP尽最大努力交付,即不保证可靠交付。
TCP面向字节流;
UDP面向报文。
TCP连接只能是点到点的;
UDP支持一对一、一对多、多对一和多对多的交互通信。
TCP首部开销20字节;
UDP的首部开销小,只有8个字节。
TCP的逻辑通信信道是全双工的可靠信道;
UDP的逻辑通信信道是不可靠信道。
TCP定义
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
UDP定义
UDP (User Datagram Protocol 用户数据报协议)是OSI(Open System Interconnection开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
两者区别在于以下几点:
1、连接性
TCP面向连接,也就是在发送和接收数据之前,必须和对方建立连接,也就是我们常说的用来建立连接的3次握手和负责断开连接的4次挥手;而UDP面向无连接,也就是不需要建立连接即可发送和接收数据。
2、可靠性
TCP提供可靠的服务,传输过程中可以确保连接可靠稳定,如编号确认、流量控制、计时器等,确保数据不丢失不出错。
3、报文首部
TCP报文首部有20个字节,额外开销大;UDP报文首部有8个字节,标题短开销小。
4、报文结构
TCP面向字节流,将应用层报文分解成多个TCP报文段进行传输,到底目的站后重新分配;UDP面向报文,不拆分报文,1次发送1个报文。
5、吞吐量控制
TCP拥塞控制、流量控制、重传机制、滑动窗口等机制保证传输质量,而UDP却没有。
6、双工性
TCP只能点对点全双工通信,UDP支持一对一、一对多、多对一、多对多的交互通信。