|
Interfete si servicii
Fiecare nivel are rolul de a furniza serviciile necesare pentru nivelul aflat deasupra sa. Elementele active ale fiecarui nivel poarta poarta denumirea de entitati. O entitate poate fi software cum este un proces sau hardware cum este un cip de intrare/iesire. Entitatile corespunzatoare aceluiasi nivel dar aflate pe masini diferite poarta denumirea de entitati egale. Astfel entitatile nivelului n implementeaza un serviciu utilizat nivelul n 1. In acest caz nivelul n se va numi furnizor de servicii iar nivelul n 1 utilizator de servicii. Serviciile sunt disponibile in SAP uri(Service Acces Points) puncte de acces la servicii. SAP-urile nivelului n sunt locurile unde nivelul n 1 poate accesa serviciile de care are nevoie. Fiecare SAP are o adresa care l identifica in mod unic. Astfel in sistemul telefonic SAP-urile reprezinta soclurile la care se conecteaza telefoanele iar adresele SAP-urilor sunt chiar numerele de telefon. In sistemul postal SAP-urile ar fi adresele strazilor iar adresa cutiei postale sau numele destinatarului identifica in mod unic destinatia scrisorii.
Pentru ca doua niveluri sa schimbe informatie trebuie sa fie convenit un set de reguli referitoare la interfata.
Sa presupunem ca avem nivelul n si nivelul n+1. La interfata dintre cele doua niveluri avem SAP-urile. Nivelul n+1 transmite catre nivelul n prin intermediul unui SAP o unitate de date numita IDU(Interface Data Unit).
Servicii orientate pe conexiune si servicii fara conexiune
Orice nivel poate oferi nivelului de deasupra sa o serie de servicii care se impart in doua grupe mari si anume orientate pe conexiune si fara conexiuni. Serviciul orientat pe conexiune este modelat pe baza sistemului telefonic. Serviciile orientate pe conexiune presupun
1. Stabilirea conexiunii
2. Folosirea conexiunii
3. Eliberarea conexiunii
Serviciul fara conexiune sunt modelate pe baza sistemului postal, adica nu este necesar ca intre sursa si destinatie sa fie stabilita in prealabil o conexiune ca in cazul sistemului telefonic. Scrisorile vor ajunge la destinatie fie in ordine fie in alta ordine. In retelele de calculatoare un serviciu similar sistemului postal este serviciul e-mail
Fiecare seviciu fie ca este orientat pe conexiune sau nu este caracterizat printr-o calitate a serviciului. Astfel unele servicii sunt sigure in sensul ca nu pierd niciodata date, implementarea acestora facandu-se prin solicitarea unor confirmari de primire din partea receptorului. O analogie se poate face cu serviciul postal in cazul scrisorilor recomandate. Procesul de confirmare introduce insa un timp suplimentar fapt ce nu este acceptat in unele transmisii de date. In general serviciile confirmate(sigure) sunt folosite in cazul transferului de date respectiv al unor fisiere. Servicul sigur orientat pe conexiuni admite doua variante de transmisie respectiv secventa de mesaje si flux de octeti. Prima varianta mentine delimitarea intre mesaje, astfel daca se vor transmite 2 kb de date ca doua mesaje de cate 1 kb asa vor fi interpretate la receptie.In cazul unui flux de octeti transmisia a 2 kb de date poate fi interpretata ca un singur pachet de 2kb sau doua pachete de 1kb sau 2048 de mesaje de 1 octet. Transmisia de tipul secventei de mesaje este foarte importanta atunci cand de exemplu se trimit in retea spre o imprimanta pentru tiparire paginile unei carti. In acest caz delimitarea mesajelor conform paginatiei este obligatorie.
In cazul conectarii unui terminal la un sistem cu divizare a timpului, delimitarea pachetelor nu mai este importanta iar mesajele se transmit in fluxuri continue de octeti. In unele aplicatii intarzierile introduse de confirmari nu sunt acceptate.
Un exemplu de aplicatie se refera se transferul de voce digitizata. Pentru abonatii sistemului telefonic este preferabil sa existe putin zgomot pe linie sau sa auda ocazional distorsiuni decat sa accepte o confirmare care produce intarzieri.
Primitive de serviciu
Orice serviciu este specificat formal printr-un set de primitive(operatii) puse la dispozitia utilizatorului sau a unei alte entitati care foloseste serviciul. Aceste primitive comanda serviciului sa execute anumite operatii executate de o entitate pereche. Cele mai folosite primitive sunt urmatoarele
1. Primitiva Request
2. Primitiva Indication
3. Primitiva Response
4. Primitiva Confirm
Primitiva Request arata ca o entitate cere serviciului sa realizeze ceva.
Primitiva Indication arata ca o entitate trebuie informata despre producerea unui anumit eveniment.
Primitiva Response arata ca o entitate vrea sa raspunda la un eveniment.
Primitiva Confirm arata ca o entitate trimite raspunsul la o cerere anterioara.
Pentru a ilustra modul de folosire al primitivelor sa consideram modul de stabilire si respectiv de eliberare a unei conexiuni. Entitatea care initiaza actiunea lanseaza o cerere Connect Request(cerere de conectare). Rezultatul cererii este materializat prin transmiterea unui pachet de date spre destinatie. Tot destinatia primeste apoi un pachet de date care contine primitiva Connect Indication. Aceasta primitiva anunta receptorul ca o entitate aflata undeva in retea doreste sa stabileasca o conexiune cu el Entitatea receptoare utilizeaza primitiva Connect Response pentru a comunica transmitatorului daca accepta sau daca refuza conectarea. Indiferent de varianta acceptarii sau neacceptarii conexiunii entitatea afla ce s-a intamplat prin primitiva Connect Confirm .
Majoritatea primitivelor au si parametrii. Astfel primitiva Connect Request are parametrii care specifica adresa destinatiei la care se doreste conectarea, tipul de serviciu dorit si respectiv lungimea pachetelor de date care vor circula pe aceasta conexiune. Parametrii unei primitive Conect Indication pot specifica identitatea apelantului, tipul de serviciu dorit si lungimea pachetelor de date. Daca entitatea receptoare nu este de acord cu lungimea pachetelor propusa de apelant poate face o contra propunere folosind primitiva Connect Response. Aceasta propunere este pusa la dispozitia apelantului prin primitiva Connect Confirm. Detaliile acestei negocieri sunt cuprinse in protocolul nivelului respectiv. De obicei ca rezultat al negocierii se alege dimensiunea minima din cele doua propuneri.
Serviciile oferite de primitive pot fi atat confirmate cat si neconfirmate. In orice serviciu confirmat vor exista obligatoriu toate cele 4 primitive respectiv 1., 2., 3., 4.. Primitiva Connect reprezinta intotdeauna un serviciu confirmat. Intr un serviciu neconfirmat vor exista numai doua primitive respectiv 1. si 2..
Modele de referinta
1. Modelul OSI-ISO(7 niveluri)(Open System Interconection International Standard Organization). Acest model a fost propus de organizatia internationala de standarde ISO ca model de interconectare a sistemelor deschise.
Datorita dezvoltarii retelelor de calculatoare au aparut implementari foarte diferite. Pe masura ce dezvoltarea retelelor a luat amploare pentru a nu se diversifica in continuare modalitatile de implementare a fost impus un standard care trebuie respectat in orice retea nou creata, standardizarea fiind impusa pe criterii de compatibilitate ale retelelor.
Criteriile de proiectare ala standardului OSI-ISO sunt:
1. Un nivel trebuie creat atunci cand este nevoie de un nivel de abstractizare diferit.
2. Un nivel poate fi creat numai atunci cand rolul sau poate fi foarte precis definit.
3. Functia fiecarui nivel trebuie astfel aleasa incat sa respecte folosirea unui protocol deja standardizat
4. Delimitarea intre niveluri se va face astfel incat sa se minimizeze fluxul de informatii care se va transmite prin interfete.
5. Numarul de niveluri trebuie sa fie suficient de mare pentru a nu fi nevoie sa se introduca in acelasi nivel functii diferite si suficient de mic pentru ca arhitectura sa ramana functionala.
Protocol Aplicatie
Niv. Aplicatie
|
APDU |
Protocol Proiectare
|
|||||||||||
|
|||||||||||
|
|
|
|||||||
|
|||||||
|
|
|
|
Niv.
Legatura de date Niv.
Legatura de date Niv.
Legatura de date
Cadre
de date
APDU
Niv.
Fizic
Bit
Niv.
Fizic Niv.
Fizic
Ruter Ruter
Protocol Gazda Ruter de Nivel
Legatura de Date(DLC) Protocol Gazda Ruter de Nivel Retea Protocol Gazda Ruter de Nivel Fizic
DLC Data LinK Control
La nivel fizic unitatea de date care circula prin mediul fizic este bitul.
Nivelul fizic
Sarcina nivelului fizic se refera la transmiterea bitilor printr-un canal de comunicatie. Proiectarea acestui nivel trebuie sa garanteze ca atunci cand se trimite un bit cu valoarea 1 logic prin canalul de comunicatie la receptie va ajenge tot ca 1 logic si nu ca 0 logic. Problemele tipice se refera la cati volti trebuie folositi pentru a reprezenta un 1 logic si cati volti pentru a reprezenta un 0 logic acest lucru se cheama signaling, daca transmisia poate avea loc simultan in ambele sensuri, cum este stabilita conexiunea initiala si cum anume este eleberata cand partile nu mai nimic de transmis, cati pini trebuie sa aiba conectorul de retea si ce functie are fiecare pin.
Nivelul DLC(legatura de date)
Sarcina principala a nivelului legatura de date(DLC) este de a transforma un mijloc oarecare de transmisie intr-o linie de comunicatie care sa fie disponibila nivelului retea fara erori de transmisie nedetectate. Nivelul DLC realizeaza aceasta functie obligand emitatorul sa descompuna sau sa formateze datele de intrare in cadre de date, sa transmita cadrele secvential si sa prelucreze cadrele de confirmare transmise inapoi de catre receptor.
Deoarece nivelul fizic nu face decat sa accepte un flux de octeti pe care sa-l transmita destinatiei fara a se preocupa de structura sau functia lor. Responsabilitatea delimitarii cadrelor ii revine nivelului DLC. Acesta indeplineste aceasta sarcina prin adaugarea unor sabloane de biti atat la inceputul cat si la sfarsitul fiecarui caracter.
Un zgomot ce apare pe linie duce la transmiterea eronata a cadrelor, moment in care receptorul va cere retransmiterea lor. Transmiterile multiple ale aceluiasi cadru duc la aparitia unor cadre duplicate. Sarcina eliminarii duplicatelor revine tot nivelului DLC. Tot acest nivel trebuie sa rezolve problema inundarii unui receptor lent de catre un emitator rapid. Daca modalitatea de transmisie este fullduplex tot acest nivel trebuie sa rezolve problema concurentei intre cadrele de date transmise de la A la B si cadrele de confirmare transmise simultan de la B la A.
Nivelul retea
Acest nivel se ocupa de controlul functionarii subretelei de comunicatie.
Problema cheie pe care trebuie sa o rezolve nivelul retea este alegerea rutei pe care vor fi transmise pachetele de la sursa la destinatie. Dirijarea pachetelor se poate face in mod static folosind tabela de dirijare care exista in ruta. Aceste tabele sunt cablate si sunt schimbate foarte rar. Din aceasta cauza metoda folosita in practica este dirijarea dinamica pe baza unor algoritmi de rutare care pot lua decizii in functie de lungimea traseului, de durata stabilirii conexiunii sau de costuri. Daca mai multi abonati vor sa transmita simultan pachete inseamna ca pe anumite tronsoane ale caii de comunicatie pachetele vor trebui sa circule simultan producandu-se astfel gatuiri sau congestii Controlul acestei congestii ii revine tot nivelului retea. Deoarece operatorii subretelei de comunicatie in general solicita o plata pentru serviciile oferite, tot la nivelul retea este inglobata si o functie de taxare a traficului. Pentru aceasta nivelul retea trebuie sa poata numara cati biti, cate caractere sau cate pachete de date a transmis un anumit abonat. Problema taxarii se complica atunci cand pachetele de date traverseaza retele intermediare intre sursa si destinatie.
O alta problema pe care trebuie sa o rezolve nivelul retea se refera la modalitatile de adresare diferite din diferite retele. De aceea nu toate retelele suporta transmisia pachetelor de date de dimensiune standard. Este tot sarcina nivelului retea sa sparga pachetele de dimensiuni mari in pachete de dimensiuni mai mici acceptate de reteaua intermediara dupa care sa le reasambleze la destinatie.
Nivelul Transport
Sarcina principala a acestui nivel este de a accepta mesaje de la nivelul Sesiune, de a le descompune daca este cazul in unitati mai mici, de a transfera aceste unitati mai mici nivelului retea si de a se asigura ca ajung corect la destinatie.