メインコンテンツまでスキップ

17. IPv4 Header Checksum Recalculation (IPv4 ヘッダーチェックサム再計算)

17. IPv4 Header Checksum Recalculation (IPv4 ヘッダーチェックサム再計算)

IPv4 Header Checksum (ヘッダーチェックサム) はデータを含みませんが、IP ヘッダーの ECN フィールドを含みます。ルーターが IP ヘッダーの ECN フィールドを変更する場合 (たとえば、CE コードポイントを設定する場合)、ルーターは RFC 1141 [RFC1141] で示されている手順に従って、IP ヘッダーチェックサムを増分的に更新する必要があります。RFC 1141 は、元のフィールドの値が m で、新しい値が m' である場合、HC (ヘッダーチェックサム) を次のように調整することを示しています。

HC' = ~(~HC + ~m + m')

8 ビットフィールドの場合、元の値と新しい値を使用し、16 ビットにゼロ拡張します。16 ビットフィールドの場合、m および m' は 16 ビット整数として扱われます。加算は 1 の補数演算を使用して実行されます。つまり、キャリーを合計の最下位ビットに追加します。

ECN フィールドは TOS バイトの 2 つの最下位ビットのみを含むため、古い TOS バイト値を m として、新しい TOS バイト値を m' として使用するのが最も簡単です。

IPv6 ヘッダーにはヘッダーチェックサムが含まれていないため、IPv6 ではチェックサム再計算は必要ありません。