1

パケットとチェックサム機能があります。パケットを送信する前に、チェックサムフィールドは0です。チェックサムを計算し、チェックサムフィールドに値を追加します。受信側で同じチェックサム関数を使用すると、送信側で計算するときにチェックサムが最初は0であるため、不一致が発生しますが、受信側ではチェックサムが異なるゼロ以外の値になります。

これを回避するには、レシーバー側でチェックサムフィールドを0に設定し、チェックサムを計算しますが、これはあまりエレガントではありません。

私はこれに対する解決策を探していましたが、役に立ちませんでした。チェックサム関数はかなり標準的なものであり、私にとってはブラックボックスです。

これをどのように修正すればよいですか?

4

1 に答える 1

2

チェックサムの計算にチェックサムの数字を含めないでください。チェックサムバイトを除くすべてのバイトのチェックサムを計算します。

チェックサムを保持するために予約されているバイトをチェックサム計算に含めることにより、CPUサイクルを数回余分に消費し、何も得られません。

于 2012-08-23T05:30:13.273 に答える