计算机网络-传输层(UDP协议报文格式,伪首部,UDP校验过程)

本文详细介绍了UDP协议的特点,包括其无连接特性、最大努力交付机制、面向报文的工作方式及UDP报文格式等内容。同时深入探讨了UDP校验过程,解释了如何通过伪首部进行错误检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. UDP协议

UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。

UDP的主要特点:

  1. UDP是无连接的,减少开销和发送数据之前的时延。

  2. UDP使用最大努力交付,即不保证可靠交付。

  3. UDP是面向报文的,适合一次性传输少量数据的网终应用。

    应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。

    UDP报文太长,会导致数据报在网络层分片,导致效率低,
    UDP报文太低,导致网络层的IP报头比有效载荷长很多,导致效率下降。

    所以应用层传输的数据报长度需要适中。

  4. UDP没有拥塞控制,适合很多实时应用。(视频会议)

  5. UDP首部开销比较小8B,TCP首部固定字段20B(不包括选项字段和填充字段)

UDP报文格式

在这里插入图片描述
16位UDP长度:代表的是UDP报文的整个长度
16位UDP检验和:检验整个UDP数据报是否出错。出错就丢弃报文。

UDP报文分用时,找不到对应的目的端口号,就丢弃报文。
并给发送方发送ICMP端口不可达差错报告报文.

UDP校验过程

在这里插入图片描述

伪首部:

  1. 在计算校验和的时候才出现,不向上传递或向下传递
  2. 伪首部的第三个字段为全0
  3. 第四个字段17代表,封装UDP报文的IP数据报首部协议字段是17。
  4. UDP长度:UDP首部8B+数据部分长度(不包括伪首部)。

伪首部校验过程:
在这里插入图片描述
上图中每一行都是4字节。有时UDP报文数据部分不一定是4字节的整数倍,需要在后面填充0到4字节整数倍。

UDP校验在发送方:

  1. 填充伪首部
  2. 校验和字段全部填写为0(初始化校验和)
  3. 数据部分填充到4字节的倍数。
  4. 伪首部+首部+数据部分采用二进制反码求和。
  5. 将求和结果求反码填充到校验和字段
  6. 去掉伪首部,发送数据

UDP校验在接收方:

  1. 填上伪首部
  2. 伪首部+首部+数据部分采用二进制反码求和。(此时校验和字段不是0)
  3. 结果二进制序列全为1则无差错,否则丢弃数据报或交给应用层附上出差错的警告。差错控制由应用层负责。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NUC_Dodamce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值