前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UDP协议:校验和的计算

UDP协议:校验和的计算

作者头像
灯珑LoGin
发布2022-10-31 15:31:12
2.9K0
发布2022-10-31 15:31:12
举报
文章被收录于专栏:龙进的专栏

在讲UDP的校验和计算之前,先需要明确一件事情:在计算UDP报文的Checksum之前,我们需要在UDP报文段的头部之前,加入一个“伪头部”。

伪头部

UDP报文段伪头部+头部+数据段

如上图所示,对于运行在IPV4协议之上的UDP协议,其伪头部为红色部分所示。

为何称之为“伪头部”?原因是,UDP协议只使用它来辅助计算校验和,它并不是发送IP数据包时使用的IP数据包的头部。

校验和的计算

在《计算机网络:自顶向下方法》这本书的中译版本中,对于UDP校验和的计算讲解不算很清楚。其实,计算方法很简单:

  1. 从“伪头部”开始,按每16位当作一个数,逐次求和,最终得出一个32位的数;
  2. 如果这个32位的数的高16位不为0,则进行“回卷”操作。也就是,将其高16位与低16位相加,又得到一个32位的数;
  3. 重复第2步直到高16位为0。
  4. 最终,将低16位取反,得到校验和,填入checksum字段中

差错检验

当接收到UDP报文时,需要如何检验其正确性?方法就是将UDP报文中包括校验和在内的,所有的16位的数相加,如果低16位全为1,则没有出错。否则表明该分组中出现了错误。

需要注意,UDP对差错具有一定的校验能力,但缺少差错恢复的能力。

转载请注明来源:https://www.longjin666.cn/?p=1458

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月15日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 伪头部
  • 校验和的计算
  • 差错检验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档