UDP 协议
UDP 协议
UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。
即使是出现网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,传输途中如果出现了丢包,UDO也不负责重发。甚至当出现包的到达顺序乱掉时也没有纠正的功能
IPV4 头部 | UDP 头部 | UDP 数据 20字节 | 8字节
UDP 头部:
- 源端口号 2字节
- 目的端口 2字节
- 长度 2字节
- 校验和 2字节
TCP与UDP区别总结:
TCP面向连接(如打电话要先拨号建立连接),UDP是无连接的,即发送数据之前不需要建立连接
TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
- 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
- TCP首部开销20字节;UDP的首部开销小,只有8个字节
- TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
UDP是有边界的,应用层要整包地收,一次只能收一包,每次接收的要么是一个独立的完整的数据包,要么什么也接收不到
UDP 可靠传输
需要在应用层保障可靠
- 添加序号
- 超时重传
- 应答确认
- 滑动窗口流量控制
应用
DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议
绑定端口
TCP 和 UDP 可以绑定同一个端口,因为在内核协议栈中 TCP 和 UDP 是独立的两个模块,因此它们的端口号也是独立的