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 ではチェックサム再計算は必要ありません。