UDP协议
UDP协议
UDP协议全称 User Datagram Protocol (用户数据报协议),是一种没有复杂控制、无连接的传输层协议,它是一种在收到应用程序发来数据的那一刻,立即将数据按原样发送到网络上的机制。
结构
[16位源端口号][16位目的端口号][16位UDP长度][16位UDP校验和][UDP数据]
前64位即为UDP首部,其中各段意义如下:
- 源端口:源端口号。在需要对方回信时选用。不需要时可用全0。
- 目的端口:目的端口号。这在终点交付报文时必须要使用到。
- 长度:UDP用户数据报的长度,其最小值是8(仅首部)。
- 校验和:检测UDP用户数据报在传输中是否有错。有错就丢弃。
特性
- 无连接,采用UDP协议不需要提前通知对方建立连接,可以直接发送数据
- 不保证可靠的交付数据,由于UDP协议发送的数据在网络中的丢失是无法感知的,因此也不能保证数据能可靠的到达对方。
- 面向报文传输,它不会对用户发送的数据做任何处理,而是直接作为UDP数据报传输。
- 没有拥塞控制,可能会造成网络拥塞。
- 首部开销很小,只有8个字节。
因此对于流量拥塞控制,丢包重传等传输通信的控制都是没有的,UDP协议的适用场景在以下几个方面:
- 包总量较少的通信(TFTP、SNMP、NFS、DNS、BOOTP)
- 即时通信
- 限定于LAN等特定网络中的通信
- 广播通信(广播,多播)