150 likes | 288 Views
Kontrolna vsota. Vsebina okvirja. Začetek. Konec. Odkrivanje napak. Oddajnik vsebini okvirja po določenem pravilu doda “kontrolno vsoto” Okvir pošlje v komunikacijski kanal Med prenosom lahko pride do napake na okvirju Sprejemnik preveri, če kontrolna vsota ustreza danemu pravilu
E N D
Kontrolna vsota Vsebina okvirja Začetek Konec Odkrivanje napak • Oddajnik vsebini okvirja po določenem pravilu doda “kontrolno vsoto” • Okvir pošlje v komunikacijski kanal • Med prenosom lahko pride do napake na okvirju • Sprejemnik preveri, če kontrolna vsota ustreza danemu pravilu • V primeru, da kontrolna vsota ne ustreza pravilu, • javi napako, zahteva ponovitev istega okvirja, zavrže okvir • Kontrolna vsota: • Največkrat t.i. vzdolžno preverjanje parnosti • (LRC – Longitudinal Redundancy ckeck) • Ciklično preverjanje • (CRC – Cyclic Redundancy Check)
LRC Vsebina okvirja Začetek Konec Vzdolžno preverjanje parnosti • Imamo vsebino okvirja – niz bajtov: B0, B1, B2, .... , Bk, .... BK • Oddajnik izračuna kontrolno vsoto • B0 + B1 + B2 + .... + Bk + .... + BK + LRC = 0 (seštevanje po modulu 2) • LRC je potemtakem dodatni bajt (tipično eden ali dva bajta) • Sprejemnik preveri pogoj “parnosti” • 0: ni napake (ali ni odkrita) • B0 + B1 + B2 + .... + Bk + .... BK + LRC = • ≠0 : odkrita napaka
CRC Vsebina okvirja Začetek Konec Ciklično preverjanje • Imamo vsebino okvirja – niz podatkov: B0, B1, B2, .... , Bk, .... BK • Oddajnik deli niz podatkov z delilnim zaporedjem – “generatorjem” G • (B0 B1 B2 .... Bk .... BK ) : G = Rezultat deljenja Q + Ostanek R • Ostanek “pripnemo” deljencu: • B0 B1 B2 .... Bk .... BKR • Sprejemnik preveri pogoj “deljivosti” • B0 B1 B2 .... Bk .... BKR) : G = Rezultat deljenja Q’+ Ostanek R’ • 0: ni napake (ali ni odkrita) • R’ = • ≠0: odkrita napaka
Ciklično kodiranje 00........0 101110010101010101010101011111001010 Začetek Konec
Zagotavljanje deljivosti Deljivo brez ostanka
Začetek Konec 1 1 0 1 0 1 1 0 1 1 1 1 1 0 CRC, primer
Preverjanje deljivosti 101.....01 101110010101010101010101011111001010 Začetek Konec
CRC s tabelo ostankov 1/5 B0 B1 B2 .... .... .... .... B Z K Del vsebine okvirja: P(x) B(x) P’(x) = P(x) . x8 + B(x) Zamisel: Dodajamo bajt za bajtom in delimo, vsakič dobimo rezultat deljenja in ostanek Vprašanje: Ko dodamo naslednji bajt, ali se da zgolj iz dodanega bajta in tekočega ostanka izračunati nov ostanek?
R CRC s tabelo 3/5