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