Informatica Industriala HDLC

6
Tipuri de protocoale pentru nivelul legăturii de date Ţinând cont de faptul că nivelul legăturii de date trebuie să realizeze o legătură fără erori între sursă şi destinaţie în cazul conexiunilor punct-la-punct, standardele implementate de acesta vor depinde de tipul conexiunii fizice între calculatoare. Modul de transmisie al informaţiei poate fi asincron sau sincron, iar protocoalele pot fi orientate pe caracter (se transmit multiplii de octeţi) sau orientate pe bit. Aşa cum se arăta anterior, în funcţie de aplicaţie, nivelul legăturii de date poate oferi servicii neorientate pe conexiune (de tip best try), sau servicii orientate pe conexiune, 1 a. b. Figura 1

description

Curs informatica industriala.

Transcript of Informatica Industriala HDLC

Page 1: Informatica Industriala HDLC

Tipuri de protocoale pentru nivelul legăturii de date

Ţinând cont de faptul că nivelul legăturii de date trebuie să realizeze o legătură fără erori între sursă şi destinaţie în cazul conexiunilor punct-la-punct, standardele implementate de acesta vor depinde de tipul conexiunii fizice între calculatoare. Modul de transmisie al informaţiei poate fi asincron sau sincron, iar protocoalele pot fi orientate pe caracter (se transmit multiplii de octeţi) sau orientate pe bit. Aşa cum se arăta anterior, în funcţie de aplicaţie, nivelul legăturii de date poate oferi servicii neorientate pe conexiune (de tip best try), sau servicii orientate pe conexiune, asigurând o fiabilitate sporită. Cele două tipuri de servicii sunt prezentate în fig. 1 a şi b.

În serviciile orientate pe conexiune, biţii de control a erorii sunt utilizaţi doar pentru a detecta cadrele eronate. Apoi, acestea sunt pur şi simplu rejectate. Cadrele sunt neconfirmate, iar rolul retransmisiei cadrului este preluat de nivelele superioare.

Serviciile orientate pe conexiune, realizează atât confirmarea cadrelor, eliminarea duplicatelor, cât şi recepţia cadrelor în ordinea în care au fost transmise, oferind în acest sens un set de servicii mult mai robuste. Pentru aceasta, înainte de

1

a.

b.Figura 1

Page 2: Informatica Industriala HDLC

transmiterea datelor, este stabilită o conexiune logică prin intermediului serviciului L_CONNECT. Toate datele sunt apoi transmise utilizând un protocol cu control al fluxului (de obicei protocoale cu fereastră glisantă). După transmiterea întregii cantităţi de informaţie, conexiunea logică este desfiinţată, utilizând serviciul L_DISCONNECT.

Protocoale de comunicaţie în legături punct la punct

În funcţie de mediul fizic de comunicaţie între cele 2 entităţi, se pot implementa mai multe tipuri de protocoale. Pentru rate de transfer mici, de obicei se utilizează protocoale de tip stop-and-wait. Exemple de astfel de protocoale sunt Kermit sau X-modem. Ambele protocoale sunt foarte simple, utilizate la transmisia de fişiere între două calculatoare de tip PC.

Pentru rate mari de transfer, implicând comunicaţia prin satelit, sau prin intermediul liniilor telefonice închiriate, se utilizează la sacră largă protocolul HDLC (High-Level Data Link Control).

a. Protocoale orientate pe caractere

Protocoalele orientate pe caracter transmit cadre având toate câmpurile de control şi date multiplii întregi de octeţi. În funcţie de fluxul de date transmis în timpul comunicaţiei, aceste protocoale pot fi simplex, half-duplex şi duplex.

Aceste protocoale pot implica atât legături punct la punct, cât şi legături multipunct (mai multe entităţi conectate la acelaşi mediu de comunicaţie, una fiind master iar celelalte slave).

a1. Protocoale simplex

Această clasă de protocoale este cea mai primitivă, implicând un singur sens al fluxului de date. Conexiunea între cele două entităţi aflate în comunicaţie poate fi doar punct la punct. Unul din cele mai des utilizate astfel de protocoale este Kermit. Acest protocol permite transferul unui fişier, sau al unui grup de fişiere, prin intermediul unei conexiuni punct la punct (de exemplu pe interfaţa paralelă, sau pe o linie telefonică, prin intermediul modemurilor) între două entităţi (2 PC). Kermit este un protocol start-and-stop tipic, utilizând un mod de transmisie sincron pe mediul de comunicaţie.

Pentru ca transferul de fişiere să poată avea loc, Kermit trebuie să fie lansat în execuţie pe ambele entităţi. După lansarea în execuţie, acesta oferă un se minimal de comenzi, pentru controlul comunicaţiei. Secvenţa temporală de activităţi asociate protocolului este prezentată în fig. 2.

Fiecare utilizator care va comunica prin Kermit va iniţia transferul prin comanda CONNECT. Utilizatorul destinaţie va executa comanda RECEIVE, iar utilizatorul sursă comanda SEND, având ca parametru numele fişierului de transmis. Fişierul este apoi transmis de Kermit bloc cu bloc între cele 2 entităţi. După ce toate segmentele fişierului au fost transmise, ambii utilizatori renunţă la Kermit prin intermediul comenzii EXIT şi se reântorc sub controlul sistemului de operare propriu. Pentru a realiza o transmisie în sens invers, tot protocolul este reluat inversat.

Protocolul Kermit este ceva mai complex decât un protocol simplu start-stop al legăturii de date. El realizează un set de funcţii suplimentare, necaracteristice

2

Page 3: Informatica Industriala HDLC

nivelului legăturii de date, cum ar fi fragmentarea fişierelor la citire şi respectiv reasamblarea lor la scriere.

Pentru transferul datelor, Kermit foloseşte un cadru cu formatul prezentat în fig. 3.

Semnificaţiile câmpurilor sunt următoarele:- SOH – marchează startul unui cadru;- LEN – lungimea în caractere a cadrului, începând cu acest câmp şi incluzând

câmpul BCC. Câmpul este codificat în exces faţă de 32, pe un singur caracter, începând cu ASCII # (35 zecimal) şi termninând cu ASCII ~ (126 zecimal). # indică o lungime de 3 (nu există date), iar ~ o lungime de 91;

- SEQ – numărul de secvenţă a cadrului transmis. Este incrementat modulo 64, codificat pe un singur caracter, ASCII SP (32 zecimal) pentru 0 şi respectiv ASCII _ (95 zecimal) pentru 63;

- TYPE – tipul cadrului codificat pe un singur caracter :- S - Iniţilaizare transmisie;- F - Nume fişier;- D - Date fişier;- Z - End of File;- B - End of Transaction;- Y - ACK;- N – NAK;- E – Eroare fatală;

- DATA – conţinutul cadrului;- BCC – Blocul de control al caracterelor;- CR – marker de sfârşit cadru (ASCII CR).

3

Program utilizator Kermit

KERMIT

CONNECT

SEND [filename]

DATA BLOCK [1] SENT

DATA BLOCK [N] SENT

END OF FILE

EXIT

Program utilizatorKermit

KERMIT

CONNECT

RECEIVE

DATA BLOCK [1] RCVD

DATA BLOCK [2] RCVD

END OF FILE

END OF TRANSMISSION

EXIT

Figura 2

SOH LEN SEQ TYPE DATA BCC CR

Header

Figura 3

Page 4: Informatica Industriala HDLC

Conţinutul fişierului sursă este transmis ca o secvenţă blocuri de 80 de blocuri caractere, fiecare terminat cu CR-LF. Dacă fişierul este binar, el este transmis similar, codificat în octeţi. Caracterele de control al formatului, care put apare în interiorul fişierului, sunt codificate mai întâi, astfel încât să nu afecteze echipamentul de comunicaţie (probleme ce pot apare în special când se utilizează modemuri, care pot interpreta de manieră proprie secvenţele de control). Astfel, fiecare cod de control este transformat într-o secvenţă de două caractere imprimabile, primul fiind #, iar al doilea un caracter imprimabil aflat în aceeaşi linie a tabelei ASCII, dar în coloana 4 pentru codurile din coloana 1, respectiv în coloana 5 pentru codurile din coloana 2 (cod+64 zecimal). Astfel, CTRL-A (SOH) devine #A, CR devine #M, etc. Orice caracter # transmis, este precedat de încă un #.

În fig. 4 este prezentată secvenţa de cadre schimbate de protocolul Kermit la transferul unui fişier. Primul cadru transmis este un cadru S, de iniţializare a tranmisiei. El conţine o serie de parametri ai comunicaţiei, cum ar fi lungimea maximă a cadrului, sau durata perioadei de timeout, după care cadrul ar trebui retransmis. Receptorul va transmite un cadru Y, de acceptare, cu parametrii acceptaţi pentru transmisie.

În continuare, emiţătorul trece la transmiterea fişierului. Întâi este transmis un cadru F conţinând numele fişierului, apoi o secvenţă de cadre D, conţinând datele din fişier. După transmiterea ultimului bloc de date, receptorul este informat de sfârşitul fişierului prin transmiterea unui cadru Z. În cadrul aceleiaşi sesiuni, pot fi transmise şi alte fişiere pe aceeaşi cale. După transmiterea ultimului fişier, sursa încheie sesiunea prin transmiterea unui cadru B.

Kermit este un protocol start-stop. După transmiterea fiecărui cadru de informaţie (I) sursa aşteaptă un cadru de confirmare ACK (BCC corect) sau NACK (BCC incorect). În plus, protocolul presupune că şi cadrele de confirmare pot fi corupte, deci, după transmiterea fiecărui cadru se startează un timer. Fiecare cadru transmis are ataşat un număr de secvenţă modulo 64, iar cadrele de confirmare pozitivă sau negativă vor avea asociat acelaşi număr de secvenţă.

4

Page 5: Informatica Industriala HDLC

5