UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点
- UDP是无连接的,减少开销和发送数据之前的时延。
- UDP使用最大努力交付,即不保证可靠交付。
- UDP是面向报文的,适合一次性传输少量数据的网络应用。应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整的报文。
- UDP没有拥塞控制,适合实时的网络应用。
- UDP首部开销小,8B(TCP首部20B)
UDP首部格式
分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。
UDP校验
伪首部只有在计算检验和时才出现,不向下传送也不向上递交。
17:封装UDP报文的IP数据报首部协议字段是17.
UDP长度:UDP首部8B + 数据部分长度(不包括伪首部)。
UDP校验过程
在发送端:
- 填上伪首部
- 全0填充校验和字段
- 全0填充数据部分(UDP数据报要看成许多4B的字串接起来)
- 伪首部 + 首部 + 数据部分采用二进制反码求和
- 把和 求反码 填入检验和字段
- 去掉伪首部,发送
在接收端:
- 填上伪首部
- 伪首部 + 首部 + 数据部分采用二进制反码求和
- 结果全为1则无差错,否则丢弃数据报/交给应用层附上出差错的警告。