Sunteți pe pagina 1din 5

NIVELUL LEGTURII DE DATE: Detectarea de erori

Obiectiv: Experimentai cu Detectarea i Corecia de Erori

O descriere pe scurt: Explorai diferite tehnici de detecie a erorilor


1. Control de Paritate Simpl
2. Schem de Paritate Bidimensional cu Sum Aritmetic de Control
3. Controlul Redundanei Ciclice (CRC): a corectitudinii datelor recepionate
ntr-un cod ciclic

Procedura de urmat:
1. Vezi cursul de mai jos: 7.1 Control de paritate; 7.2 Metode cu sum de
control; 7.3 Controlul Redundanei Ciclice (CRC).

2. Care sunt limitrile controlului cu paritate simpl? (Vezi Figura 7.4 de mai
jos)

3. Este posibil s obii o eroare de 100% folosind tehnica bazat pe suma


aritmetic de control? De ce nu? (Vezi Figura 7.5 de mai jos)

4. Parcurgei urmtoarea procedur CRC pentru a calcula T (biii transmii).


Folosind acelai procedur a aritmeticii modulo2, artai c restul este zero
pentru T(101000110101110) i pentru modelul de bii dat, P(110101). n alte
cuvinte, receptorul primete mesajul T intact i fr erori.
7.1 Control de paritate

Poate cea mai simpl metod de detectare a erorilor este utilizarea unui singur bit de paritate. S
presupunem c informaiile care trebuie trimise, D n Figura 7.4, au d bii. ntr-o schem de paritate,
expeditorul include pur i simplu un bit suplimentar i alege valoarea sa, astfel nct numrul total de
valori de 1 n cei d + 1 bii (informaiile originale, plus un bit de paritate) s fie un numr par. Pentru o
schem de imparitate, valoarea bitului de paritate este aleas astfel nct s exist un numr impar de
valori de 1. Figura 7.4 ilustreaz o schem de paritate, avnd bitul de paritate stocat ntr-un domeniu
separat.

Operaia receptorului este, de asemenea, simpl cu un singur bit de paritate. Receptorul numr cte
valori de 1 sunt n cei d + 1 bii recepionai. Dac se constat un numr impar de valori de 1 pentru o
schem de paritate, receptorul tie c a avut loc cel puin o eroare de bit. Mai precis, se tie c avem
un numr impar de erori de bit.

Dar ce se ntmpl dac un numr par de erori de bit apare? Ar trebui s te convingi c acest lucru ar
duce la o eroare nedetectat. Dac probabilitatea de erori de bit este mic iar erorile se vor presupune
c se produc n mod independent de la un un bit la altul, atunci probabilitatea de erori de bit multiple
ntr-un pachet va fi extrem de mic. n acest caz, un singur bit de paritate ar putea fi suficient. Cu toate
acestea, diferite msurtori au artat c, acestea nu apar n mod independent, erorile sunt apar
adesea grupate n "burst-uri". n aceste condiii, probabilitatea de erori nedetectate ntr-un cadru de
date cu un singur bit de paritate se poate apropia de 50 %. n mod evident, este nevoie de un sistem
mai robust de detectare a eroarii (i care s fie utilizat n practic!). Dar, nainte de a examina
sistemele de detectare a erorii utilizate n practic, s va lua n considerare o simpl generalizare a
paritii cu un bit care ne va oferi o perspectiva asupra tehnicilor de corecie a erorii.

Figura 7.4 Paritate pe un singur bit (Par=0, Impar=1)

7.2 Schem de paritate bidimensional

Figura 7.5 prezint o generalizare bidimensional a schemei de paritate cu un singur bit. Aici, biii d
din D sunt mprii n i rnduri i j coloane . Valoarea de paritate este calculat pentru fiecare rnd i
pentru fiecare coloan.

Figura 7.5 Paritate bidimensional

Biii de paritate rezultai i + j + 1 includ biii de detectare a erorii din cadru (la nivelul de legtur de
date).

S presupunem acum c apare o singur eroare de bit n biii de informaii d originali. n aceast
schem de paritate bidimensional, paritatea att coloanei i a rndului care conine bitul inversat
va fi eronat. Receptorul poate astfel detecta nu numai faptul c a avut loc o singur eroare, dar poate
folosi indicele de coloan i de rnd ale coloanei i rndului cu erori de paritate pentru a identifica
efectiv biii care a fost corupi i poate corecta aceast eroare! Figura 7.5 prezint un exemplu n care
bitul cu valoarea 1 la poziia (2,2) este corupt i a devenit 0-o eroare care este att detectabil ct i
corectabil la receptor. Dei discuia noastr s-a axat pe biii d originali, o singur eroare n biii de
paritate este de asemenea detectabil i corectabil. Paritatea bidimensional poate, de asemenea,
detecta (dar nu corecta!) orice combinaie de dou erori dintr-un pachet.

Capacitatea receptorului de detectare i corectare a erorilor este denumit corectarea n avans a erorii
(eng. FEC). Aceste tehnici sunt utilizate n mod obinuit n dispozitivele de stocare i redare audio,
cum ar fi CD-urile audio. Tehnicile FEC sunt valoroase deoarece acestea pot reduce numrul de
retransmisii de la expeditor. Poate mai important, ele permit corectarea imediat a erorilor la receptor.

7.3 Controlul Redundanei Ciclice (CRC)

O tehnic de detectare a erorii utilizat pe scar larg n reelele de calculatoare actuale se bazeaz
pe coduri de control al redundanei ciclice (CRC). Codurile CRC sunt denumite coduri
polinomiale, deoarece este posibil vizualizarea succesiunii de bii de trimis ca un polinom ai crui
coeficieni sunt valori de 0 i 1 n irul de bii, permind operaii asupra irului de bii din moment ce
acesta este interpretat ca un polinom aritmetic.

Codurile CRC funcioneaz astfel: Luai n considerare setul de bii d de date D, pe care nodul
transmitor vrea s l trimit la nodul receptor. Expeditorul i destinatarul trebuie mai nti s cad de
acord asupra unui model de bii r + 1, cunoscut ca un generator, pe care l vom nota cu G. Cel mai
important bit (din stnga) al lui G este mereu 1. Ideea pe care se bazeaz codurile CRC este
prezentat n Figura 7.6. Pentru un anumit set de date, D, expeditorul va selecta r bii suplimentari, R,
ce vor fi adugai la D, astfel nct rezult un model de d + r bii (interpretat ca un numr binar) care
este exact divizibil cu G (adic, nu exist rest) folosind aritmetica modulo-2. Procesul de verificare a
erorii cu CRC este att de simplu: Receptorul mparte biii d + r primii de bii la G. Dac restul nu este
zero, receptorul tie c a avut loc o eroare; n caz contrar, datele sunt acceptate ca fiind corecte.

Toate calculele CRC sunt efectuate n aritmetica modulo-2: fr s se mprumute dup o scdere sau
s se adauge mai departe dup o adunare!!!

Figura 7.6 CRC

Asta nseamn c adunarea sau scderea sunt identice, i amndou sunt echivalente cu operaia
SAU-exclusiv (XOR) la nivel de bit. Astfel ca exemplu avem

1011 XOR 0101 = 1110


1001 XOR 1101 = 0100

n mod similar se poate arta uor c


1011 0101 = 1110
1001 1101 = 0100

nmulirea i mprirea sunt la fel n aritmetica n baza 2, cu excepia faptului c orice este n plus sau
n minus nu se adaug mai departe sau se mprumut. La fel ca i n aritmetica binar, multiplicarea la
k . r
stnga cu 2 deplaseaz modelul de bii cu k poziii. Astfel, pentru D i R dai, mrimea D 2 XOR R
produce modelul de bii d + r din Figura 7.6. Vom folosi aceast caracterizare algebric a modelului de
bii d + r din Figura 7.6 n discuia noastr de mai jos.

S ne ntoarcem acum la ntrebarea crucial legat de modul n care expeditorul n calculeaz pe R.


Reamintim c vrem s gsim acel R pentru care exist un n astfel nct
. r
D 2 XOR R = nG
. r
Aadar, vrem s l alegem pe R astfel nct G este divizibil cu D 2 XOR R fr rest. Dac facem o
operaie de XOR (adic, adunm n modulo-2, fr aa aduga mai departe) cu R pentru ambele pri
ale aecuaiei de mai sus, obinem
. r
D 2 = nG XOR R
. r
Aceast ecuaie ne spune c dac mprim D 2 la G, valoarea restului este exact R. n alte cuvinte,
putem calcula restul R astfel
. r
R = restul (D 2 / G)

Figura 7.7 ilustreaz acest calcul pentru D = 101110, d = 6, G = 1001, i r = 3. Cei 9 bii transmii n
acest caz sunt 101110 011. Ar fi bine ca aceste calcule s fie verificate i de asemenea se poate
. r .
verifica folosind formula D 2 = 101011 G XOR R.

Standardele internaionale au fost definite pentru generatori pe 8-, 12-, 16-, i 32-bii, G. Standardul pe
32-bii CRC-32, care a fost adoptat pentru mai multe protocoale IEEE la nivelul legturii de date,
utilizeaz generatorul de
GCRC-32 = 100000100110000010001110110110111

Fiecare din standardele CRC pot detecta erori n burst-uri pentru mai puin de r + 1 bii. (Asta
nseamn c toate erorile de bit consecutive pe r bii sau mai puin vor fi detectate.) n plus, prin
r
aproximri, un burst cu lungimea mai amre de r + 1 bii este detectat cu probabilitatea de 1 0.5 . De
asemenea, fiecare standard CRC poate detecta orice numr impar de erori de bit.

Figura 7.7 Un calcul bazat pe CRC

Exerciii:

P1. S presupunem c pentru coninutul informaional al unui pachet avem


modelul de bii 1110 0110 1001 1101 i folosim o schem de paritate. Care este
valoarea cmpului care conine biii de paritate pentru cazul unui scheme de
paritate bidimensional? Raspunsul tau ar trebui sa fie dat astfel nct un cmp
de control lungime minim s fie folosit.

P2. Artai (dai un alt exemplu dect cel din Figura 7.5) c un control de
paritate bidimensional poate corecta i detecta o eroare pe un singur bit.
Artai (dai un exemplu) de eroare pe doi bii care poate fi detectat dar
nupoate fi corectat. Exist cazuri n care eroarea nu poate fi detectat?

P3. Considerai generatorul, G=1001, i alegei pentru D valoarea


11000110010. Care este valoarea lui R? Ce valoare va fi recepionat?
P4. Considerai problema precedent, dar alegei pentru D o alt valoare:
a. 1001010101.
b. 0101101010.
c. 1010100000.
Ce valoare ar trebui recepionat pentru ca cazurile a., b. i c.?

P5. n aceast problem, explorm cteva din proprietile CRC-ului. Pentru


generatorul G (=1001) dat n seciunea 7.3, rspundei la urmtoarele ntrebri.
a. De ce poate detecta orice eroare pe un singur bit din setul de date D?
b. Poate G detecta orice numr impar de erori de bii? De ce? Indiciu: ncercai
cteva exemple.

S-ar putea să vă placă și