RETELE DE TELECOMUNICATII
Lucrare de laborator
Legatura de date. Protocolul HDLC
1. Nivelul legatura de date
Nivelul legatura de date asigura o comunicatie sigura si eficienta intre doua noduri adiacente ale retelei, conectate printr-o con 444j99e exiune fizica afectata de perturbatii.
Serviciul principal este transferul datelor de la nivelul retea al nodului sursa la nivelul retea al nodului destinatie.
1.1. Functiile nivelului legatura de date
A. Pentru fiecare unitate de date
1. Controlul erorilor presupune detectarea si corectarea erorilor:
- detectarea: se adauga o informatie de control a corectitudinii, uzual cod ciclic detector de erori
- corectarea: - prin cod ciclic corector - solutie neeficienta;
- prin retransmisie - solutie uzuala;
Cadrele valid receptionate se confirma.
Cadrele eronat receptionate se ignora si vor fi retransmise dupa expirarea timpului de asteptare a confirmarii.
Observatie: procedura cu expirarea timpului trebuie sa fie prezenta in orice protocol, ea fiind unica solutie in cazurile:
- pierderea cadrului (de exemplu prin eronarea delimitatorului sau a adresei)
- eronarea confirmarii
2. Divizarea fluxului de date: se delimiteaza inceputul si sfarsitul unitatilor de date prin:
- caractere de control ASCII (protocolul Bynary Synchronous Communication, IBM)
- combinatia la inceputul cadrului de caractere de control cu un contor de caractere (protocolul Digital Data Communications Message Protocol)
-
delimitatori (Protocolul High-level Data Link Control)
Observatie: Caracterele de control ale codului ASCII sunt:
Synchronous idle = sincronizarea receptorului;
Start of heading = inceputul antetului;
Start of text = inceputul textului (informatiei);
End of text = sfarsitul textului;
Data Link Escape = prefix pentru caracterele de control
bcc = bloc de control ciclic;
Un cadru = informatie + control + cod ciclic detector de erori + adresa + delimitatori
B. Pentru o secventa de cadre
3. Identificarea univoca a cadrelor in secventa pentru:
- confirmare
- respectarea ordinii
- detectarea duplicatelor sau a cadrelor pierdute
Aceasta functie se realizeaza prin numerotarea cadrelor.
4. Controlul fluxului de date consta in adaptarea vitezei intre cele doua noduri; receptorul trebuie sa dea sursei permisiunea de a transmite pentru evitarea transmiterii cadrelor cu o viteza mai mare decat el le poate accepta.
5. Transmisia transparenta asigura transferul datelor binare sau codificate nestandard care contin codurile unor caractere de control sau ale delimitatorilor:
- pentru protocoalele BSC si DDCMP:
- pentru protocolul HDLC:
delimitator = 01111110.
Pentru ca aceasta secventa de biti sa nu se regaseasca in interiorul cadrului, transmitatorul insereaza automat un 0 dupa cinci de 1 consecutivi, iar receptorul elimina bitul 0 precedat de cinci de 1.
1.2. Servicii oferite de nivelul legatura de date
Functiile nivelului pot fi grupate astfel:
- functiile de confirmare = functia de control al erorilor (1);
- functiile de conexiune = functia de identificare univoca a cadrelor (3) + functia de control al fluxului (4);
- functia de divizare a fluxului (2). Aceasta functie este realizata intotdeauna;
- functia de transmisie transparenta (5) este realizata in situatii speciale;
Serviciile posibile de oferit sunt:
1. Cu confirmare si cu conexiune: garanteaza receptia corecta a tuturor cadrelor, in succesiunea transmisa; transferul datelor este caracterizat de fazele distincte:
- stabilirea conexiunii
- transmisia propriu-zisa
- desfiintarea conexiunii
Acesta este serviciul de calitate folosit uzual.
2. Cu confirmare, fara conexiune: fiecare cadru este receptionat individual si confirmat; daca nu se primeste confirmarea intr-un interval de timp, cadrul este retransmis. Acest serviciu este folosit de protocolul cu oprire si asteptare.
3. Fara confirmare, fara conexiune: se foloseste pentru sistemele in timp real unde conteaza viteza si presupune mediu de transmisie cu rata mica de erori; recuperarea informatiei eronate se realizeaza pe nivelele superioare.
2. Protocolul HDLC (High-level Data Link Control)
Formatul general al cadrului pentru multimea de protocoale HDLC este:
- adresa - identifica pe liniile multipunct una din statiile secundare; pentru uniformitate se foloseste si pe liniile punct-la-punct
- control - contine numere de secventa, confirmari, tipul cadrului; are configuratii diferite dupa tipul cadrului
- bcc - bloc de control al cadrului; este o varianta a codului ciclic detector de erori CRC CCITT.
In functie de structura campului control exista 3 tipuri de cadre:
1. Cadre de informatie (I)
ns = numarul cadrului (de) transmis
nr = numarul cadrului asteptat la receptie
P/F: in cadrele de comanda P/F = P (Poll); P=1 are semnificatia de invitatie la emisie
in cadrele de raspuns P/F = F (Final); F=1 are semnificatia de sfarsit de transmisie. Intotdeauna raspunsul la un cadru cu P=1 trebuie sa aiba setat F=1.
Cadrele de informatie sunt singurele cadre numerotate; ele pot fi confirmate de cadrele S si I care contin informatie de confirmare (nr).
2. Cadre de supervizare (S)
- RR = Receiver Ready; acest cadru confirma receptia tuturor cadrelor anterioare lui nr si anunta ca este gata sa receptioneze cadrul nu numarul nr
- RNR = Receiver Not Ready; acest cadru confirma receptia tuturor cadrelor anterioare lui nr si cere oprirea transmisiei, urmand sa anunte transmitatorul cand va fi gata de receptie cu un cadru RR, REJ sau SREJ.
- REJ = Reject; acest cadru confirma receptia tuturor cadrelor anterioare lui nr si cere retransmisia cadrelor incepand cu nr. Toate cadrele ce sosesc inaintea cadrului nr vor fi ignorate
- SREJ = Selective Reject; acest cadru confirma receptia tuturor cadrelor anterioare lui nr si cere retransmisia cadrului nr. Toate cadrele diferite de nr primite vor fi memorate in limta ferestrei de receptie.
3. Cadre nenumerotate (de gestiune a legaturii- Unnumbered, U)
- SABM = Set Asynchronous Balanced Mode = comanda de initializare a unei legaturi echilibrate de date in modul asincron
- DISC = Disconnect = comanda de desfiintare a legaturii de date;
- UA = Unnumbered Acknowledge = raspuns de confirmare a cadrului de gestiune a legaturii de date receptionat
- DM = Disconnected Mode = raspuns de respingere a unei comenzi de initializare a unei legaturi (SABM) sau de acceptare a unei comenzi de desfiintare a unei legaturi (DISC)
- UI = Unnumbered Information comanda si raspuns de acceptare a comenzii de trecere a legaturii de date respective la serviciul fara confirmare, fara conexiune
2.1. Initializarea si desfiintarea unei legaturi
a. Stabilirea cu erori a legaturii
b. Respingerea cererii de stabilire a unei legaturi
c. Desfiintarea unei legaturi
2.2. Protocolul cu oprire si asteptare (stop & wait)
Acest protocol are eficienta redusa pentru tp/tcadru mare, unde tp = tpropagare + tprelucrare
a. A transmite 3 cadre
b. A transmite 3 cadre, al doilea fiind eronat
2.3. Protocolul cu transmisie continua, cu REJ (uzual)
a. A transmite 3 cadre, B transmite 2 cadre, nu exista erori
wt = 7, wr = 1
Fereastra la transmisie = domeniul numerelor de secventa care pot fi folosite la un momentdat pentru cadre transmise (wt)
Fereastra la receptie = domeniul numerelor de secventa ale cadrelor ce pot fi acceptate la receptie (wr).
Fiecare statie are 3 variabile de control:
na = numarul primului cadru transmis si neconfirmat
ns = numarul urmatorului cadru de transmis
va = numarul cadrului asteptat la primire
b. A transmite 3 cadre, primul eronat
c. A transmite 2 cadre, ultimul eronat (expirare de timp)
d. A transmite 2 cadre, confirmarea ultimului cadru este eronata (expirare de timp)
e. A transmite 3 cadre, confirmarea celui de-al doilea se pierde
2.4. Protocolul cu retransmisie selectiva SREJ
A transmite 4 cadre, primul eronat; wt = 4, wr = 4
3. Aplicatii
Se va exersa cu ajutorul programului de simulare HDLC.EXE o procedura HDLC pentru o legatura echilibrata (modul ABM) care foloseste un protocol cu transmisie continua. Procedura utilizeaza urmatoarele tipuri de cadre:
- cadre I;
- cadre S: RR, RNR, REJ;
- cadre U: SABM, UA, DISC;
In procedura utilizata, la detectarea unei expirari de timp de catre o statie, aceasta initiaza un dialog care consta dintr-o interogare cu cadrul RR cu bitul P/F=1 la care asteapta raspuns RR cu P/F=1 pentru a afla numarul cadrului I cu care sa inceapa retransmisia.
Programul realizeaza functiile nivelului 2 si simuleaza nivelele 1 si 3 prin comenzi de la tastatura si afisare pe ecran. Pot fi vizualizate permanent cadrele transferate intre cele doua statii A si B si diagramele circulare ale secventelor de numerotare si pot fi simulate erori. Pentru comenzile P/F=1 se adauga P (ex. RR6P), iar pentru raspunsurile cu P/F=1 se adauga F (ex: RR4F).
Comunicatia poate fi controlata cu urmatoarele comenzi:
Shift-a/shift-b = stabilirea legaturii initiata de statia A/B.
a /b = cadru I transmis de la statia A/B;
Ctrl-a/ctrl-b = deconectare a legaturii initiata de statia A/B;
q = parasirea programului (nu este posibila in timpul transmiterii unui cadru)
Programul se intrerupe inainte de fiecare transmisie pentru a permite utilizatorului sa observe cadrul transmis si starea comunicatiei si sa specifice daca transferul se va face corect sau eronat. ATENTIE : programul comuta automat transmisia intre A si B, chiar daca utilizatorul nu trimite cadre utile (I) decit dinspre A. Aceasta pentru a intreba utilizatorul daca cadrele de raspuns (RR, RNR sau REJ) sint corecte sau eronate ! In cazul in care utilizatorul trimite cadre I date din ambele directii, ele vor include raspunsurile, nefiind necesare cadre de tip S (piggybacking).
Exemplu de folosire pentru transmiterea continua A->B:
se stabileste conexiunea : shift-a, apoi SPATIU pentru corect ;
se transmite dinspre A (se apasa tasta a, apoi SPATIU pentru corect).
dupa un timp programul transmite automat pachetul de raspuns. Se apasa tasta a pentru ca si acest pachet sa fie corect (practic, in acest timp lasat de catre program, utilizatorul s-ar ptea decide sa transmita cadre B->A de tip I)
Se transmit in continuare pachete : a, SPATIU, SPATIU, a, SPATIU, SPATIU, etc.
Programul afiseaza diagramele circulare pentru A si B, la emisie si la receptie. Cind se transmit de exemplu cadre I in sensul A->B se va urmari diagrama de emisie pt A (stinga) si de receptie pentru B (dreapta).
Se vor simula urmatoarele situatii analizand la fiecare pas parametrii comunicatiei (diagramele circulare, numerele ns, nr, bitul p/f) :
A transmite o secventa de 4 cadre I, apoi B transmite 2 cadre I, fara erori.
A transmite cadru I receptionat eronat de B, apoi doua cadre I receptionate corect.
Repetati 3.1. alterand confirmarea primului cadru I transmis de B. Repetati alterand confirmarea ultimului cadru I transmis de B.
Repetati 3.2. alterand cadrul REJ.
B transmite rapid o secventa de 8-9 cadre I, fara erori.
Repetati 3.5. alterand cadrul RNR
Comandati deconectarea.
Imaginati alte situatii de perturbare a comunicatiei si analizati modul de restabilire.
|