7.1 UDP的特点
UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况下,UDP也无法进行流量控制的等避免网络拥塞的行为。此外,传输途中即使出现丢包,UDP也不负责重发,甚至出现包的到达顺序乱掉时也没有纠正的功能。
由于UDP面向无连接,可以随时发送数据。再加上UDP本身的处理既简单有高效,因此经常用于以下几方面:
- 包总量较少的通信(DNS、SNMP等)
- 视频、音频等多媒体通信(即时通信)
- 限定于LAN等特定网络中的应用通信
- 广播通信
7.2 UDP首部格式
UDP首部字段有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。
源端口号:表示发送端端口号,字段长16位。该字段是可选项,有时可能不会设置源端口号。没有源端口号时该字段的值为0.可用于不需要返回的通信中。
目的端口号:表示接收端端口,字段长度16位。
包长度:该字段保存了UDP首部的长度跟数据的长度之和。
校验和:校验和是为了提供可靠的UDP首部和数据而设计。