TKK | Tietoverkkolaboratorio | Opetus
Virheenkorjaus


Johdanto

Virheiden Havaitseminen

Virheiden Korjaus











Lähtetiedot ja linkit

Tekijät ja työnjako
JOHDANTO
   Lähetettäessä dataa kahden päätelaitteen välillä ei ole harvinaista, että lähetetty data vääristyy jollain tavalla. Vääristymistodennäköisyys lisääntyy kun etäisyydet päätelaitteiden välillä kasvavat tai jos käytetään kohinaisia yhteysmedioita, kuten lankapuhelinverkkoa. Datan vääristyminen tarkoittaa siis, että signaali jonka merkitys on 0 vääristyy siten, että se vastaanottopäässä tulkitaan 1:ksi ja päinvastoin. Tämän vuoksi dataa siirrettäessä onkin tavanomaista yrittää tunnistaa virheitä ja jos niitä ilmenee pyrkiä myös korjaamaan ne.

   Jotta virheiden tunnistamiseen ja korjaamiseen ei kuluisi kaikkia resursseja onkin syytä miettiä miten virheiden syntyä voitaisiin mahdollisesti estää tai edes vähentää. Luonnollisesti pitää tilanteen mukaan (eli sen mukaan, kuinka kallisarvoista tietoa lähetetään) käyttää mahdollisimman hyviä yhteyksiä koneiden välillä. Suuri merkitys virheiden esiintymiseen on myös käytettävällä protokollalla. Tästä syystä onkin valittava mahdollisimman luotettava protokolla. Tiedonsiirrossa on myös hyvä olla ahnehtimatta liikaa eli asettaa pakettien koko sopivaksi (isojen pakettien lähettäminen lisää virheiden riskiä).

   Virheiden havaitsemiseen on tietenkin lukuisia eri menetelmiä, mutta yleensä ne määräytyvät tiedonsiirtotavan perusteella. Esimerkiksi asynkroonisessa tiedonsiirrossa jokaista merkkiä käsitellään erikseen ja tällöin yleensä jokaisen merkin perään lisätään yksi bitti. Tämä bitti kertoo merkin parillisuuden ja sitä kutsutaankin pariteettibitiksi. Jos taas käytämme synkronista tiedonsiirtoa, etsimme siirtovirheitä kokonaisesta kehyksestä. Koska tiedonsiirtokehysten koko on yleensä aika suuri, myös virheiden syntymisen mahdollisuus suurenee. Jälleen on useita tapoja virheiden havaitsemiseen, mutta yleisesti kehykseen liitetään virhetarkistusbittejä pohjautuen kehyksen dataan. Kun kehys saapuu vastaanottajalle tämä taas laskee tarkistusbitit kehyksen datasta ja mikäli nämä vastaavat lähettäjän ilmoittamia tarkistusbittejä voidaan olettaa, että virheitä ei tapahtunut. Syntyneitä virheitä voidaan korjata myöskin monella tavalla. Mainittakoon tässä alustavasti datan koodaus ja uudelleen lähetys.

   Onko virheitä sitten aina pakko tunnistaa ja korjata? Ei välttämättä. Esimerkiksi jos kaksi konetta on yhteydessä vain kahden ihmisen välistä rupattelua varten, niin vaikka virheellisiä merkkejä olisi jopa 10% toinen pystyisi ymmärtämään toisen sanoman. Toisaalta jos kyseessä olisi sähköposti ja sen osoitekenttään tulisi virheellisiä merkkejä viesti ei saapuisikaan perille. Virheettömyyttä yleensä tarvitaan dataliikenteessä kun siirretään suuria tiedostoja ja/tai tiedostojen sisältämä data on arvokasta. Näitä palveluja ovat esimerkiksi internetissä olevat pankkipalvelut ja kaupankäynti. Tavallista internetin käyttöä pienet virhemäärät eivät vielä haittaa, koska tieto lähetetään pienissä paketeissa ja niiden uudelleenlähetys on nopeaa. Jos halutaan kuunnella reaaliaikaisesti musiikkia tietoverkon kautta syntyvät virheet aiheuttavat musiikkivirran katkeilua ja napsahtelua. Riippuen siis minkälaista tietovirtaa kahden päätelaitteen välillä lähetetään voidaan määritellä kuinka kalliiksi virheet linjalla tulevat.

Lähtetiedot ja linkit
[1] HTML Primer - Tips for making a web-page
[2] Fred Halsall, Data communications, computer networks and open systems, 4th ed.
[3] William Stallings, Data and computer communications (international edition), 5th ed., Prentice-Hall, 1997
[4] Overview of Forward Error Correction
[5] Methods of Error Detection and Error Correction
[6] Cyclic Redundancy Check
Tekijät ja työnjako
Marko Altonen - HTML, Johdanto
Paavo Markkola - Virheiden Korjaus
Ukri Niemimuukko - Virheiden Havaitseminen

Tämä sivu on tehty Teletekniikan perusteet -kurssin harjoitustyönä.
Sivua on viimeksi päivitetty 28.11.2000 13:35
URL: http://www.netlab.tkk.fi/opetus/s38118/s00/tyot/32/index.shtml