17. IPv4 Header Checksum Recalculation (Ricalcolo del checksum dell'intestazione IPv4)
17. IPv4 Header Checksum Recalculation (Ricalcolo del checksum dell'intestazione IPv4)
Il checksum dell'intestazione IPv4 (Header Checksum) non include i dati, ma include il campo ECN nell'intestazione IP. Quando un router modifica il campo ECN nell'intestazione IP (ad esempio, impostando il codepoint CE), il router DEVE aggiornare incrementalmente il checksum dell'intestazione IP, secondo la procedura fornita in RFC 1141 [RFC1141]. RFC 1141 indica che, nel caso in cui il valore originale del campo sia m e il nuovo valore sia m', HC (checksum dell'intestazione) viene modificato come segue:
HC' = ~(~HC + ~m + m')
Per un campo a 8 bit, utilizzare i valori originali e nuovi, con estensione zero a 16 bit. Per un campo a 16 bit, m e m' sono trattati come interi a 16 bit. L'addizione viene eseguita utilizzando l'aritmetica del complemento a uno, ovvero il riporto viene aggiunto al bit meno significativo della somma.
Poiché il campo ECN contiene solo i due bit meno significativi del byte TOS, è più semplice utilizzare il vecchio valore del byte TOS come m e il nuovo valore del byte TOS come m'.
Il ricalcolo del checksum non è necessario per IPv6, poiché l'intestazione IPv6 non include un checksum dell'intestazione.