UDP和TCP

244 阅读2分钟

UDP

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议

UDP 特点

  • 1、 UDP是无连接: 不需要 和TCP一样在发送数据前进行三次握手建立连接,想发数据随时可发。
  • 2、UDP支持一对多,多对多,多对一的方式。而每一条TCP连接只能是点到点的。
  • 3、UDP面向报文:应用层将报文发送给传输层的UDP,UDP在添加首部后,就向下交付给IP层。只是数据的搬运工,不会对数据报文进行任何拆分和拼接操作。因此,应用层必须选择合适大小的报文。
  • 4、UDP具有不可靠性,收到什么数据就传什么数据,不进行备份,不关心是否已经被接收。
  • 5、UDP无拥塞控制,无论网络好坏,都会以恒定速度发送数据。在这样的机制下,遇到网速不好很可能会丢包。

  • 5、UDP的头部开销少,只有8字节,而TCP头部20字节。

TCP

TCP全称是传输控制协议,面向连接、可靠的流协议。

TCP特点

  • 1、面向连接:TCP发送数据之前要三次握手,断开时候需要四次挥手。
  • 2、仅支持一对一的传播。
  • 3、TCP面向字节流, TCP拿到了应用层给的数据后,会将其看成是无结构的字节流:如果数据过长,会对数据进行拆分和拼接等工作;如果数据过短,TCP会等待积累有足够多的字节后再发出。
  • 4、提供可靠传输,TCP通过给每一个包一个序号,并且被成功接收后,会返回一个ACK number等进行确认,如果丢失会进行重传,等措施来保证数据不丢失,且是按顺序的。
  • 5、提供拥塞控制,当网络出现拥塞时候,TCP能够减少向网络注入数据的速率和数量来缓解拥塞。
  • 6、提供双工通信,TCP允许双方都可以发送数据。

对比表

UDP TCP
是否连接 无连接 面向连接
是否可靠 不可靠 可靠,保证数据完整,保证数据顺序
拥塞控制 提供
连接对象数 一对一,一对多,多对多,多对一 一对一
传输方式 面向报文,整个报文发送 面向字节流,会进行拆分和拼接
首部开销 8字节 最小20字节,最大80字节
使用场景 实施应用(IP电话、视频、直播等)和DNS查询 适用于要求可靠传输的应用,例如文件传输等