Parita: chytí jednu chybu a o dvou mlčí
Jeden bit navíc, nastavený tak, aby byl celkový počet jedniček sudý (nebo lichý — na tom se obě strany musí dohodnout). Je to nejlevnější kontrola, jaká existuje: hardware to umí jedním hradlem XOR.
Co to umí a co ne
Když se převrátí jeden bit, počet jedniček změní paritu a příjemce to pozná. Když se převrátí dva, parita se změní dvakrát, tedy vůbec — a chyba projde beze stopy. Obecně: parita chytí každý lichý počet chyb a nechytí žádný sudý.
To by ještě šlo, kdyby chyby přicházely po jedné. Jenže nepřicházejí. Skutečné rušení na lince — spínací hrana měniče, výboj, přeslech ze sousedního vodiče — trvá nějakou dobu, a za tu dobu poškodí několik bitů za sebou. Takovému shluku je jedno, jestli poškodí sudý nebo lichý počet, takže parita ho v polovině případů nechá projít. A poloviční šance není kontrola.
Sčítání bajtů a XOR nejsou o moc lepší
Prostý součet bajtů (checksum) chytí jednu změněnou hodnotu, ale nechytí prohození dvou bajtů — součet je stejný. XOR všech bajtů je na tom stejně, a navíc nechytí ani dvě stejné chyby ve dvou bajtech na téže pozici.
| kontrola | 1 bit | 2 bity | shluk | prohození |
|---|---|---|---|---|
| parita | ano | ne | 50 % | ne |
| součet | ano | často | často | ne |
| CRC-16 | ano | ano | do 16 bitů vždy | ano |
Ta pravá část tabulky je důvod, proč existuje další kapitola.