概述
UDP 只在 IP 的数据报服务之上增加了很少一点的功能:1.复用和分用的功能;2.差错检测的功能
复用和分用
- 复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据;
- 分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
UDP主要特点
1.UDP 是无连接的,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
2.UDP 使用尽最大努力交付,不保证可靠交付,因此主机不需要维持复杂的连接状态表。
3.UDP 是面向报文的。UDP 对应用层交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。
4.UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
5.UDP 支持一对一、一对多、多对一和多对多的交互通信。
6.UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。UDP的首部格式
1)源端口。源端口号。在需要对方回信时选用,不需要时可用全0。
2)目的端口。目的端口号。这在终点交付报文时必须使用到。
3)长度。UDP数据报的长度(包括首部和数据),其最小值是8 (仅有首部)。
4)校验和。检测UDP数据报在传输中是否有错。有错就丢弃。该字段是可选的,当源主机不想计算校验和时,则直接令该字段为全0。
如果接收方UDP发现收到的报文中的目的端口号不正确(即不存在对应于端口号的应用进程),那么就丢弃该报文,并由ICMP发送“端口不可达”差错报文给发送方。
UDP校验
注:伪首部和全0字节是不发送的,仅供校验使用