Dati in bit di D | Bit di partità |
---|---|
0111000110101011 | 1 |
Nelle tecniche di checksum i bit di D sono trattati come una sequenza di numeri interi da k bit.
Un semplice metodo per eseguire il controllo mediante checksum è quello di sommare questi interi da k bit e usare i bit del risultato come bit per la rilevazione degli errori. Il checksum di Internet si basa su questo approccio: i dati sono trattati come interi di 16 bit e sommati.
Il complemento a 1 di questo somma costituisce il checksum di Internet che viene trasposto nell'intestazione dei segmenti. Il ricevente controlla il checksum calcolando il complemento a 1 della somma dei dati ricevuti (compreso il checksum stesso) e verifica che tutti i bit del risultato siano 1. Questo argomento è stato trattato nel capito terzo, vedi qui.
Se non è così viene segnalato un errore. Questa è una tecnica sfruttata da TCP e UDP. Tuttavia il livello di collegamento utilizza un controllo a ridondanza ciclica che è decisamente più complesso.
Può venire da chiedersi perché a livello di trasporto viene utilizzato un checksum che è limitato e non CRC (controllo a ridondanza ciclica) come nel livello di collegamento? La risposta è che il livello di trasporto è implementato a livello software (nel sistema operativo) per cui è utile effettuare controlli rapidi che non rallentano ulteriormente la comunicazione tra due nodi. A livello di collegamento l'hardware dedicato è più potente, e quindi in grado di eseguire schemi come il CRC con una certa velocità rispetto a quanto tempo invece impiegherebbero se fossero eseguiti a livelli più alti.