Controlul erorilor este un set de metode pentru detectarea și corectarea erorilor de date în timpul înregistrării și redării sau transmisiei acestora prin linii de comunicație.
Controlul integrității datelor și corectarea erorilor sunt sarcini importante la multe niveluri de lucru cu informații (în special, straturile fizice , de canal , de transport ale modelului de rețea OSI ) datorită faptului că erorile apar inevitabil în procesul de stocare a datelor și transmitere a informațiilor. prin rețele de comunicații. Diferite domenii de aplicare a controlului erorilor impun cerințe diferite pentru strategiile și codurile utilizate.
În sistemele de comunicație, sunt posibile mai multe strategii de tratare a erorilor:
În controlul erorilor, de regulă, se utilizează codificarea de corectare a erorilor - codificarea datelor la scriere sau transmitere și decodare la citire sau recepție folosind coduri corective , care vă permit să detectați și, eventual, să corectați erorile din date. Algoritmii de codare de corectare a erorilor în diverse aplicații pot fi implementați atât în software, cât și în hardware.
Dezvoltarea modernă a codurilor de corecție a fost creditată lui Richard Hamming din 1947 [1] . O descriere a codului Hamming a apărut în lucrarea lui Claude Shannon „ Teoria matematică a comunicării ” [2] și a fost rezumată de Marcel Golay [3] .
Corectarea erorilor înainte (de asemenea , corectarea erorilor înainte , ing. Corectarea erorilor înainte, FEC ) este o tehnică de codare și decodare care corectează zgomotul care vă permite să corectați erorile folosind metoda preventivă. Este utilizat pentru a corecta defecțiunile și erorile în timpul transmiterii datelor prin transmiterea de informații de serviciu redundante, pe baza cărora conținutul original poate fi restaurat. În practică, este utilizat pe scară largă în rețelele de transmisie a datelor , tehnologiile de telecomunicații. Codurile de corectare a erorilor înainte necesită mai multă redundanță pentru a fi introduse în datele transmise decât codurile care detectează doar erori.
De exemplu, în televiziunea prin satelit , la transmiterea unui semnal digital de la FEC 7/8, se transmit opt biți de informații: 7 biți de informații utile și 1 bit de control [4] ; în DVB-S sunt folosite doar 5 tipuri: 1/2, 2/3, 3/4 (cel mai popular), 5/6 și 7/8. Cu alte lucruri egale, se poate argumenta că cu cât valoarea FEC este mai mică, cu atât se permite pierderea mai puține pachete și, prin urmare, cu atât calitatea semnalului necesară este mai mare.
Tehnica de corectare a erorilor înainte este utilizată pe scară largă în diferite dispozitive de stocare - hard disk-uri, memorie flash, RAM. În special, aplicațiile server utilizează memoria ECC - RAM care poate recunoaște și corecta erorile care apar spontan.
Sistemele de solicitare automată de repetare ( ARQ ) se bazează pe tehnologia de detectare a erorilor . Următoarele metode de interogare automată sunt comune:
Ideea unui ARQ stop -and-wait este că emițătorul așteaptă ca receptorul să confirme recepția cu succes a blocului de date anterior înainte de a începe să transmită următorul. Dacă blocul de date a fost primit din greșeală, receptorul transmite o confirmare negativă (NAK) și emițătorul repetă transmisia blocului. Această metodă este potrivită pentru un canal de comunicație semi-duplex . Dezavantajul său este viteza scăzută din cauza supraîncărcării mari de așteptare.
Metoda ARQ continuă cu pullback necesită o legătură full duplex . Transmiterea datelor de la emițător la receptor se realizează simultan. În cazul unei erori, transmisia se reia începând cu blocul de eroare (adică blocul de eroare și toate cele ulterioare sunt transmise).
Când se utilizează ARQ continuu cu metoda de repetare selectivă , sunt transmise numai blocurile de date primite eronat.
Secțiunea de teorie a informațiilor care studiază problema optimizării transmisiei de date într-o rețea folosind tehnici de schimbare a pachetelor de date la nodurile intermediare se numește codare de rețea . Pentru a explica principiile codării rețelei, folosiți exemplul unei rețele fluture, propus în prima lucrare despre codificarea rețelei „Fluxul de informații în rețea” [5] . Spre deosebire de codarea statică a rețelei, atunci când destinatarul cunoaște toate manipulările efectuate cu pachetul, problema codificării aleatorii a rețelei este de asemenea luată în considerare atunci când această informație este necunoscută. Paternitatea primelor lucrări pe această temă aparține lui Kötter, Krzyszang și Silva [6] . Această abordare se mai numește și codificare de rețea cu coeficienți aleatori - când coeficienții sub care pachetele inițiale transmise de sursă vor fi incluși în pachetele rezultate primite de destinatar, cu coeficienți necunoscuți care pot depinde de structura actuală a rețelei și chiar de aleatoriu. deciziile luate la nodurile intermediare . Pentru codificarea rețelei non-aleatorie, pot fi utilizate tehnici standard de anti-jamming și anti-aliasing utilizate pentru transmiterea simplă a informațiilor într-o rețea.
La transmiterea informațiilor pe un canal de comunicație, probabilitatea de eroare depinde de raportul semnal-zgomot la intrarea demodulatorului, astfel, la un nivel de zgomot constant, puterea transmițătorului este de o importanță decisivă. În sistemele prin satelit și mobile, precum și în alte tipuri de comunicații, problema economisirii energiei este acută. În plus, în anumite sisteme de comunicații (de exemplu, telefon), restricțiile tehnice nu permit o creștere nelimitată a puterii semnalului.
Deoarece codarea de corectare a erorilor permite corectarea erorilor, aplicarea acesteia poate reduce puterea transmițătorului, lăsând rata de informare neschimbată. Câștigul de energie este definit ca diferența dintre rapoartele s/n în prezența și absența codificării.