|
Cele mai utilizate coduri detectoare de erori sunt cele polinomiale, dintre care cel mai cunoscut este CRC(Cycle Redundanced Check). Codurile polinomiale se bazeaza pe tratarea sirurilor de biti ca reprezentari de polinoame avand coeficienti 0 sau 1. Un cadru avand k biti va fi vazut ca o lista de coeficienti pentru un polinom ce are k termeni respectiv de la pana la . Spunem ca un astfel de polinom are gradul k-1. Ca exemplu sirul de biti 110001va fi reprezentat prin polinomul. Acest polinom este polinomul asociat cadrului. Aritmetica polinomiala pe care o vom utiliza este aritmetica modulo 2. Adunarile se vor face fara transport iar scaderile fara imprumut. Atat adunarile cat si scaderile vor fi echivalente cu operatio SAU Exclusiv. Atunci cand e utilizata metoda polinomiala atat emitatorul cat si receptorul se vor pune de acord in avans asupra folosirii aceluiasi polinom generator G(x). Atat bitul cel mai semnificativ cat si cel mai putin semnificativ trebuie sa fie 1. Pentru a calcula suma de control a unui cadru ce are m biti corespunzator unui polinom M(x), trebuie ca polinomul M(x) sa aiba gradul mai mare decat polinomul generator G(x).
Ideea detectarii erorilor este urmatoarea:
1. Se adauga cadrului de transmis o suma de control astfel incat polinomul asociat cadrului cu suma de control sa fie divizibil cu G(x). Cand receptorul primeste cadrul cu suma de control incearca sa le imparta la polinomul generator G(x). Daca restul impartirii este 0 receptorul decide ca transmisia s-a facut fara eroare, in rest inseamna ca transmisia s-a facut cu eroare si se va cere retransmiterea cadrului.
Algoritmul de calcul al sumei de control
Fie r gradul polinomului generator G(x). Se adauga r biti de 0 la capatul cel mai putin semnificativ al cadrului de transmis obtinandu-se m r biti ce corespund polinomului .
2. Se imparte sirul de biti corespunzator lui la polinomul generator G(x) folosind impartirea modulo 2.
2. Se scade din restul impartirii obtinut la pasul 2. Cadrul astfel obtinut va fi cadrul cu suma de control ce va fi transmis pe linie.
Sa presupunem ca avem cadrul 1101011011 , m=10.
Alegem ca polinom generator G(x)=10011 , r=5.
= 110101101100000
11 00 0 0 101 0 1
10011
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
Toate protocoalele legaturi de date (DLC) se bazeaza pe un protocol numit SDLC care a fost conceput de firma IBM. Initialele SDLC vin de la Synchronous Data Link Control.
Din dorinta standardizarii protocoalelor impusa de organizatia ISO. Acset protocol, cu mici modificari s-a transformat in protocolul ADCCP (Advanced Data Comunication Control Procedure ). Cu alte mici modificari si acest protocol s-a transformat in HDLC (High level Data Link Control ) care este cel mai folosit astazi. Din el au mai derivat inca doua protocoale: LAP (Link Access Procedure) si LAPB. Toate aceste protocoale sunt orientate pe biti si folosesc inserarea de biti pentru incadrare.
Formatul standard al unui cadru este urmatorul:
8
biti 8
biti 8
biti >0 16
biti 8 biti
01111110
Adresa
Control
Date
Suma de control (CRC)
01111110
Octetii indicatori sunt folositi pentru a delimita fara ambiguitate inceputul si sfarsitul unui cadru si pentru si pentru a sincroniza emitatorul cu receptorul sau sursa cu destinatia.
Campul de control este folosit pentru numere de secventa, pentru confirmari pozitive sau negative sau pentru testarea liniilor de comunicatie.
Campul de date are o lungime variabila, el fiind insa limitat ca dimensiune maxima din considerente de eficienta in detectarea erorilor de transmisie.
Campul suma de control va contine chiar suma de tip CRC.
In functie de continutul campului de control exista 3 tipuri de cadre si anume:
cadre de informatie
cadre de supervizor
cadre nenumerotate
Cadrele de informatie: contin in campul de control urmatoarele: primul bit din cei 8 este 0, pe urmatorii 3 biti este numarul de secventa al cadrului, pe urmatorul bit este setat P - Pdl (testare ) sau F - Final (final) iar pe urmatorii 3 biti numarul urmatorului cadru care este asteptat.
1 bit 3 biti 1 bit 3 biti
0
Nr. secventa
P/F
Urmator
Cadrele supervizor: incep cu primii 2 biti 10, urmeaza Tip pe urmatorii 2 biti si se continua ca la cadrele de informatie cu campul P/F si campul Urmator.
2 biti 2 biti 1 bit 3 biti
10
Tip
P/F
Urmator
Cadrele nenumerotate: incep cu primii 2 biti 11 si se continua ca la cadrele supervizor
2 biti 2 biti 1 bit 3 biti
11
Tip
P/F
Urmator
Bitul P/F este folosit atunci cand un calculator interogheaza un grup de terminale. Prin setarea acestui bit la valoarea P calculatorul invita terminalul sa transmita date. Ultimul cadru transmis va avea acest bit setet la valoarea F.
Cadrele supervizor sunt folosite in general de catre administratorii de retea. Aceste cadre de control ajuta la testarea liniilor, la refacerea tabelelor din rutere dupa caderea accidentala si dupa reconectarea oricarei masini din retea.
Diferentiarea acestor cadre este realizata prin campul de Tip de 2 biti.
Vom avea astfel Tipul 0 care este un cadru de confirmare numit recive ready si este folosit pentru a se indica transmitatorului ca un nou cadru este asteptat.
Tipul 1 poarta denumirea de reject - este un cadru de confirmare negativa si indica detectia unei erori de transmisie. In acest caz campul Urmator al cadrului indica primul cadru din secventa care nu a fost receptionat corect.
Tipul 2 poarta denumirea de recive not ready, el confirma toate cadrele receptionate cu exceptia cadrului specificat in campul Urmator. Acest cadru foloseste pentru a specifica emitatorului lipsa temporara a unor zone de memorie libere la receptie.
Tipul 3 se numeste selective reject, acest cadru poate sa ceara retransmiterea numai a cadrului specificat in campul Urmator.
Cadrele nenumerotate sunt folosite atat pentru a transmite informatii de control cat si pentru a transmite date.
Toate protocoalele nivelului legaturii de date folosesc o seri de comenzi de baza cum ar fi :
DISC (Disconnect) - prin care o masina poate sa anunte ca doreste sa se deconecteze din retea
SNRM (Set Normal Response Mode). Aceasta este folosita pentru a anunta ca o masina care a fost deconectata de la retea tocmai s-a reconectat.
FRMR (Frame Reject) - ea specifica faptul ca un cadru desi a fost correct receptionat din punct de vedere al sumei de control CRC are erori de semantica si trebuie retransmis.
Cadrele de control, la fel ca si cele de date pot fi pierdute sau deteriorate si de aceea trebuiesc confirmate (pozitiv sau negativ). Acest lucru se face cu comanda UA (Unnumbered Acknowledgement).
Protocolul SLIP (Serial Line Internet Protocol) a fost primul protocol de nivel DLC folosit in Internet. A fost conceput de Rick Adams in anul 1984 si conecta statiile Sun in Internet prin intermediul unui modem. In prezent s-a renuntat la el din cauza urmatoarelor dezavantaje :
1. Protocolul nu ofera nici o modalitate de detectie sau de corectie a erorilor la lasand aceste sarcini in seama nivelurilor superioare.
2. Suporta doar protocolul IP neputand fi astfel utilizat in anumite retele cum ar fi retelele NOVEL.
3. Inainte de a se incepe comunicarea sau de a se stabili o conexiune intre sursa si destinatie fiecare din cele doua capete ale legaturii trebuie sa cunoasca dinainte adresa celeilalte, adica adresele IP nu pot fi alocate dinamicceea ce ar insemna ca orice masina noua conectata la retea va trebui sa primeasca o noua adresa IP.
4. Acest protocol nu ofera nici o posibilitate de autentificare (corelarea intre numarul server-ului si adresa IP) a sursei si a destinatiei
Din cauza acestor dezavantaje s-a renuntat la acest protocol si se foloseste PPP (Point to Point Protocol). Acest protocol furnizeaza 3 lucruri importante :
1. O modalitate de delimitate a inceputului si sfarsitului fiecarui cadru ceea ce faciliteaza si detectia erorilor de transmisii.
2. Furnizeaza un protocol pentru obtinerea liniilor de comunicatie, pentru testarea acestora, pentru negocierea obtiunilor de comunicare si pentru eliberarea liniilor dupa terminarea comunicarii. Acest protocol se cheama LCP (Link Control Protocol)
3. Un protocol NCP (Network Control Protocol) folosit pentru a negocia optiunile nivelului retea.
Pentru a vedea cum lucreaza impreuna aceste parti sa consideram un scenariu tipic in care un utilizator acceseaza de acasa un provider de servicii Internet. Initial PC-ul apeleaza ruter-ul provider-ului de servicii prin intermediul unui modem. Dupa ce modemul ruterului a raspuns la telefon si s-a stabilit o conexiune fizica, ruterul provider-ului de servicii Internet trimite o serie de pachete folosind LCP in campul de informatie utila al mai multor cadre PPP. Ca urmare a transmiterii acestor cadre se vor selecta parametrii de comunicatie. Dupa ce negocierile s-au incheiat sunt trimise mai multe pachete NCP pentru a configura nivelul retea. In mod normal PC-ul va rula o suita de protocoale TCP/IP si pentru aceasta va avea nevoie de o adresa IP catre sursa si destinatie. Dupa ce au fost transmise toate pachetel de date adresele dinamice IP sunt dezalocate si protocolul NCP elibereaza linia de comunicatie si inchide legatura ce exista intre ele.
Formatul cadrului PPP este foarte asemanator cu cel NDLC avand in plus un camp numit protocol care poate sa aiba 1-2 octeti. Ca si cadrul NDLC si cadrul PPP incepe cu secventa 01111110
8 biti 8 biti 8 biti 8-16 biti >0 8-16 biti 8 biti
01111110
11111111
00000011
Protocol
Info
CRC
01111110
Campul de adresa (11111111) este intotdeauna setat la valoarea binara 1 pentru toti bitii din octet. Aceasta adresa specifica faptul ca toate statiile conevtate in retea trebuie sa accepte cadrul transmis. Protocolul PPP se foloseste in retele cu difuzare unde cadrele se duc la toate calculatoarele conectate in retea.
Campul de control (00000011) care are o valoare predefinita ceea ce specifica un cadru nenumerotat. Cu alte cuvinte protocolul PPP nu furnizeaza o transmisie sigura cu cadre numerotate nefiind folosite numere de secventa. Deoarece campurile adresa si control sunt predefinite, protocolul LCP poate negocia optional omiterea acestor doua campuri din formatulcadrului PPP salvandu-se astfel 2 octeti pe cadru.
Campul protocol: specifica ce tip de pachet de date vom avea in campul de informatie utila. Astfel sunt definite coduri pentru protocoalele LCP, NCP, IP, IPX si altele.
Campul de informatie utila: are o lungime variabila, lungimea sa fiind negociata folosindu-se pachete LCP. Daca optiunile de negociere nu sunt folosite, lungimea acestui camp va fi cea predefinita si anume de 1500 octeti. Deci protocolul PPP ofera un mecanism de icadrare multiprotocol folosit in general pentru liniile cu modem.
Initial starea masinii sursa, starea de repaus o vom numi starea DEAD. Daca vrea sa initieze, sa deschida o conexiune urmeaza urmatorii pasi:
sa gaseasca o purtatoare pe linie
daca este detectata masina trece in starea Estabilished
daca modemul destinatie este ocupat starea Estabilished esueaza si se revine in starea DEAD
daca modemul test a raspuns (nu a fost ocupat) se trece la negocierea optiunilor folosind LCP ajungandu-se la starea de autentificare
daca autenticarea nu reuseste se ajunge intr-o noua stare Terminate, se elibereaza purtatarea si se revine in starea DEAD
daca autentificarea reuseste se ajunge in starea de configurare a nivelului retea Network. In aceasta atare se ruleaza NCP si se ajunge in atarea Open cand poate sa inceapa transferul. Cand transferul de date s-a terminat se trece in starea Terminate dupa care se elibereaza purtatoarea si se ajunge din nou in starea DEAD.
Autentificare reusita LCP Negociere Purtatoare detectata
Esuare Esuare
Purtatoare eliberata Gata NCP
Nivelul MAC (Medium Access Control
Primul protocol folosit la nivelul MAC poarta denumirea de ALOHA - pur. Fiecare abonat poate sa emita fara restrictii oricand doreste Daca detecteaza o coleziune va incerca sa transmita dupa o perioada aleatoare de timp.
Toate sistemele in care pot aparea coliziuni poarta denumirea de sisteme cu conflicte (contension systems). Acest protocol a aparut in 1970. In 1972 a fost discretizat (s-au introdus cuante de timp si nici un utilizator nu putea sa se conecteze la orice moment de timp ci trebuia sa astepte inceputul unei cuante). Statistic s-a demonstrat ca e mai efficient ca ALOHA - pur
Un alt protocol folosit la subnivelul MAC este protocolul CSMA (Carrier Sense Multiple Access) care este persistent si nepersistent. Acest protocol intra in clasa protocoalelor cu detectii de purtatoare. Astfel cand o statie are ceva de transmis asculta intai canalul. Daca detecteaza o purtatoare asteapta in continuare iar in momentul cand detecteaza liber inceaca sa transmita
Intarzierea de propagare are o foarte mare importanta in acest protocol. Astfel tinand cont de timpul de propagare al semnalului intre 2 statii conectate in retea este posibil ca sa nu poata fi evitate coliziunile.
CSMA nepersistent presupune ca statiile sa nu emita imediat ce linia este libera ci ea va asteptao perioada de timp aleatoare dupa care va incerca sa emita din nou.