UDP 只在 IP 的数据报服务之上增加了很少一点的功能:
- 复用和分用的功能
- 差错检测的功能
应用场景
1)客户端程序和服务端程序通信,应用程序发送的数据包不需要分段。
例如:域名解析DNS
cmd窗口中输入命令ping www.baidu.com,wireshake抓包查看
2)实时通信,发送端和接收端需要实时交互,不允许较长延迟。
例如:QQ或微信语言聊天、视频聊天
3)多播或广播通信。
例如:学校多媒体机房,老师的电脑屏幕需要教室的学生电脑接收屏幕,在老师的电脑安装多媒体教室服务端软件,学生电脑安装多媒体教室客户端软件,老师电脑使用多播地址或广播地址发送报文,学生电脑都能收到。
协议特点
- UDP 是无连接的,发送数据之前不需要建立连接,,因此减少了开销和发送数据之前的时延。
- UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
- UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。
- UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
- UDP 支持一对一、一对多、多对一和多对多的交互通信。
- UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。
UDP首部格式
首部只有8个字节,字段说明:
(1)源端口。源端口号。在需要对方回信时选用。不需要时可用全0。
(2)目的端口。目的端口号。在终点交付报文时必须要使用到。
(3)长度。UDP用户数据报的长度,其最小值是8(仅有首部)。
(4)检验和。检测UDP用户数据报在传输中是否有错。有错就丢弃。
伪首部用于校验和的计算。
说明:上图校验和计算种,报文数据如果小于8字节数据,剩余的用0填充。