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查询 | 适用于要求可靠传输的应用,例如文件传输等 |