Kotisivu | Edellinen sivu | Ylös | Seuraava sivu


20.1 Virheiden tunnistus


Tietoon tulleiden virheiden tunnistaminen tapahtuu lisäämällä tietoon tarkistustietoa, jonka avulla virheet voidaan havaita.

  • Tarkistustieto on tietoa, joka lasketaan alkuperäisen tiedon pohjalta. Tietoa vastaanotettaessa tarkistustieto lasketaan uudelleen.
  • Jos juuri laskettu ja vastaanotettu tarkistustieto täsmäävät, on tieto todennäköisesti virheetöntä. Jos taas tarkistustiedot eivät täsmää, on tiedon siirrossa tai talletuksessa varmasti tapahtunut virhe.
  • Vaikka tarkistustieto täsmäisi, voi siirrossa olla tapahtunut niin "ovela" virhe, että virheellisen tiedon tarkistustieto on sama kuin alkuperäisen. Tämän todennäköisyys pyritään saamaan pieneksi tarkistustietoa laskettaessa.

Yksinkertainen (mutta käytetty) tapa on tarkistussumma:

  • Lasketaan yhteen kaikki siirrettävän tiedon tavut. Jos yhteenlaskussa tule ylivuoto (ts. summa menee yli 255:n eikä enää mahdu tavuun), unohdetaan ylivuoto (ts. käytännössä vähennetään summasta 256). Lopputulokseksi saadaan tarkistussumma, joka on välillä 0 - 255.
  • Tietoa lähetettäessä lähetetään ensin itse tieto ja viimeiseksi ko. tarkistussumma.
  • Vastaanotossa lasketaan tarkistussumma tiedosta uudelleen (vastaanotettua tarkistussumma ei oteta mukaan). Jos laskettu summa ei täsmää vastaanotetun tarkistussumman kanssa, on siirrossa varmasti tapahtunut virhe.
  • Tarkistussumman ongelmana on, että jos esim. kahden tavun järjestys vaihtuu siirron aikana, tulee summaksi silti sama luku. Näin tavujen järjestyksen muuttumista ei voi tarkistussummalla havaita.
  • Myös yhden tavun arvon suureneminen yhdellä ja toisen pieneneminen yhdellä ei muuta tarkistussumman arvoa.
  • Yleisesti tarkistussumma ei ole kovin luetettava virheenpaljastusmenetelmä. Yksinkertaisuutensa vuoksi se on kuitenkin varsin käytetty.

Tehokkaammat virheenpaljastusmenetelmät kuten CRC (Cyclic Redundancy Check) huomaavat myös tavujen järjestyksen muuttumisen ja ovat muutenkin tehokkaampia. CRC-rutiinit ovat yhtä nopeita kuin tarkistussummakin, mutta ne ovat vaikeammin tajuttavia (perustuvat korkeampaan matematiikkaan).



Kotisivu | Edellinen sivu | Ylös | Seuraava sivu
Sanahaku | Hakemisto