1

我有一个数据包和一个校验和功能。在发送数据包之前,校验和字段为 0。我计算校验和并将值添加到校验和字段。在接收端,当我使用相同的校验和函数时,我得到一个不匹配的结果,因为在发送端计算时,校验和最初为 0,但在接收端校验和是一个不同的非零值。

解决方法是在接收端,使校验和字段等于 0 并计算校验和,但这不是很优雅。

我一直在为此寻找解决方案,但无济于事。校验和功能是非常标准的功能,对我来说是一个黑匣子。

我应该如何解决这个问题?

4

1 回答 1

2

您不应在校验和计算中包含校验和数字。计算校验和字节之外的所有字节的校验和。

通过在校验和计算中包含为保存校验和而保留的字节,您将消耗一些额外的 CPU 周期而一无所获。

于 2012-08-23T05:30:13.273 回答