TCP与UDP的区别

2019-06-11  本文已影响0人  caojiying
https://img-my.csdn.net/uploads/201303/15/1363304832_2419.jpg

TCP 与 UDP 的区别

1. TCP是面向连接的协议,UDP是无连接协议

TCP发送数据前使用三次握手建立连接,UDP发送数据前不需要建立连接。

2. TCP可靠,UDP不可靠

TCP丢包可以自动重传,UDP不会(任何必需的可靠性必须由应用层来提供)。TCP可靠性由三个机制保证:

  1. 序号(TCP报文的序号)
  2. 确认(ACK机制)
  3. 重传(超时或者冗余的ACK)

3. TCP面向字节流,UDP面向报文(保留报文的边界)

UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。
应用程序和TCP的交互是一次一个大小不等的数据块。TCP可以把应用程序的数据块划分成小块发送,也可以积累足够多的小数据块合并成一个报文单次发送。

4. TCP效率较低,UDP效率高

5. TCP全双工,UDP支持单播,多播,广播

TCP连接的两端都设有缓存,用来临时存放双向通信的数据(实现全双工)。
TCP只能一对一通信,UDP支持一对一、一对多、多对一、多对多的方式。

6. TCP支持流量控制(滑动窗口)和拥塞控制,UDP不支持

流量控制(滑动窗口)是点对点的通信量抑制,抑制发送端发送速率,使得接收端来得及接收。

应用场景

参考

TCP 与 UDP 的区别
面向报文(UDP)和面向字节流(TCP)的区别
一文搞懂TCP与UDP的区别
TCP和UDP的最完整的区别

上一篇 下一篇

猜你喜欢

热点阅读