我有一个数据包和校验和功能。在发送数据包之前,校验和字段为0.我计算校验和并将值添加到校验和字段。在接收端,当我使用相同的校验和功能时,我得到不匹配,因为在发送端计算时,校验和最初为0,但在接收端,校验和是不同的非零值。
解决此问题的方法是在接收端,使校验和字段等于0并计算校验和,但这不是很优雅。
我一直在寻找解决方案,但无济于事。校验和功能非常标准,对我来说也是一个黑盒子。
我该如何解决这个问题?
答案 0 :(得分:2)
您不应在校验和计算中包含校验和数字。计算所有字节的校验和,不包括校验和字节。
通过在校验和计算中包含保留校验和的保留字节,您将燃烧一些额外的CPU周期并且什么都不做。