Arhitectura retelelor de calculatoare
O retea de calculatoare este formata dintr-o multime de calculatoare (host- uri sau statii le lucru) interconectate prin intermediul unei subretele de comunicatie. Rolul subretelei de comunicatie este de a transporta mesajele (pachetele de date) de la un calculator la altul asa cum sistemul telefonic transporta cuvintele de la vorbitor la ascultator. In majoritatea retelelor, subreteaua de comunicatie este alcatuita din doua componente distincte: liniile de transmisie si elementele de comutare. Liniile de transmisie (adesea denumite si circuite sau canale) reprezinta calea pe care circula datele (bitii). Elementele de comutare sunt calculatoare specializate folosite pentru a conecta doua sau mai multe linii de transmisie. Cand datele sosesc pe o linie de intrare, elementul de comutare alege linia de iesire pe care aceste vor fi rutate. In literatura de specialitate, elementele de comutare sunt cunoscute sub denumirea de IMP- uri (Interface Message Processors), noduri pentru comutarea pachetelor sau sisteme intermediare. In continuare, vom folosi pentru elementele de comutare denumirea de IMP. Calculatoarele retelei sunt conectate la un IMP sau ocazional, la mai multe. Tot traficul de date dintre calculatoare se desfasoara prin intermediul IMP-urilor. In figura 1.1 este prezentat acest model in care se folosesc denumirile de host si IMP ( conform terminologiei ARPANET).
Fig. 1.1. Relatia dintre calculatoare si subreteaua de comunicatie. |
Subreteaua de comunicatie poate fi de doua tipuri:
cu canale punct la punct;
cu canale de difuzare (broadcast);
In primul caz, subreteaua de comunicatie este alcatuita dintr-o multime de cabluri sau linii telefonice inchiriate, fiecare conectand o pereche de IMP-uri. Daca doua IMP-uri, care nu sunt legate direct, doresc sa comunice, ele vor trebui sa o faca indirect, prin intermediul altui IMP. Cand un mesaj (pachet de date in contextul subretelei de comunicatie) este transmis de la un IMP la altul prin intermediul unuia sau mai multe IMP-uri intermediare, pachetul este receptionat in intregime de catre fiecare IMP intermediar, memorat pana cand linia de iesire corespunzatoare devine libera si apoi retransmis mai departe. O subretea de comunicatie ce foloseste acest principiu este de tipul punct la punct sau cu comutare de pachete. In general, retelele de arie larga (WAN- Wide Area Networks) sunt cu comutare de pachete.
Cand se folosesc subretele de comunicatie de tipul punct la punct, o problema importanta o constitue alegerea topologiei de interconectare a IMP-urilor. Dintre topologiile uzuale, amintim: topologia stea, topologia inel, topologia arborescenta, topologia cu interconectare completa sau topologia neregulata. Retelele locale de calculatoare (LAN- Local Area Networks) cu legaturi punct la punct, realizate pana in prezent, au o topologie simetrica (stea, inel, arborescenta) pe cand retelele de arie larga au topologie neregulata.
A doua arhitectura de subretea de comunicatie foloseste broadcasting-ul. Majoritatea retelelor locale de calculatoare si un numar restrans de retele de arie larga sunt de acest tip. Intr-o retea locala de calculatoare, IMP-ul se reduce la un singur cip (coprocesorul de retea) incorporat in fiecare calculator.
Sistemele cu broadcasting au un singur canal de comunicatie folosit in comun de toate calculatoarele. Pachetele de date transmise de un calculator sunt deci receptionate de toate celelalte calculatoare. Pentru a se putea selecta destinatarul transmisiei, fiecare pachet de date are asociat un camp de adresa destinatie. Dupa ce a receptionat un pachet de date, calculatorul verifica acest camp. Daca adresa destinatie a pachetului de date coincide cu adresa proprie atunci calculatorul retine pachetul pentru procesare, altfel il ignora pur si simplu. Sistemele cu broadcasting permit in general transmisia unui pachet de date catre toate statiile din retea prin folosirea unuei adrese destinatie speciala denumita adresa de broadcast. Cand se transmite un pachet avand ca adresa destinatie, adresa de broadcast, el este receptionat si prelucrat de catre toate statiile din retea. Acest procedeu se numeste broadcast. Mai mult decat atat, anumite retele permit transmisia unui pachet de date catre un subset de statii din retea, procedeu cunoscut sub denumirea de multicast.
Subretelele de comunicatie cu broadcasting intilnite in practica sunt de tip magistrala, inel sau prin satelit / radio. Deoarece in aceste retele, statiile pot transmite date in orice moment de timp, este necesar un mecanism de arbitrare care sa rezolve conflictele cand doua sau mai multe statii doresc sa transmita date simultan. Mecanismul de arbitrare poate fi centralizat sau distribuit.
Functie de modul in care se face alocarea canalului de comunicatie, subretelele de comunicatie cu broadcasting sunt de doua tipuri: cu alocare statica si cu alocare dinamica a canalului. O alocare statica a canalului se poate face de obicei prin divizarea timpului in intervale discrete, fiecare statie putand transmite la inceputul unui interval de timp dupa un mecanism de arbitrare round robin. Alocarea statica poate duce la scaderea eficientei utilizarii canalului de comunicatie in cazul in care o statie nu are date de transmis cand i-a sosit momentul sa transmita . Alocarea dinamica a canalului de comunicatie se poate face centralizat sau descentralizat. In cazul metodei centralizata de alocare a canalului de comunicatie exista o entitate unica, de exemplu o unitate de arbitrare a magistralei, care stabileste ce statie din retea urmeaza sa transmita. Aceasta entitate trebuie sa inregistreze cererile de transmisie din paretea statiilor si pe baza unui algoritm intern sa stabileasca care dintre statii are dreptul sa transmita. Spre deosebire de metoda centralizata, in cazul metodei descentralizate de alocare a canalului de comunicatie, fiecare statie din retea trebuie sa decida singura daca sa transmita sau nu.
1.1.Modelul de referinta ISO OSI
Retelele de calculatoare moderne sunt proiectate intr-un mod foarte structurat. Pentru a reduce din complexitate, mejoritatea retelelor sunt organizate pe mai multe nivele, fiecare nivel bazandu-si functionarea pe nivelul predecesor. Numarul de nivele, denumirea, structura si functiile acestora difera de la retea la retea. Totusi, in toate retelele, rolul fiecarui nivel este de a oferi servicii nivelelor superioare, intr-un mod care sa ascunda detaliile de implementare ale acestor servicii.
Nivelul n de pe un calculator comunica cu nivelul n de pe alt calculator din retea. Regulile si conventiile folosite in aceasta comunicatie alcatuiesc protocolul de nivel n, dupa cum se poate vedea in figura 1.2, pentru o retea cu sapte nivele arhitecturale.
Fig.1.2. Nivele, protocoale si interfete. |
In realitate, atele nu sunt transferate direct intre cele doua nivele. Fiecare nivel transfera datele si informatiile de control nivelului inferior lui pana cand acestea ajung la nivelul cel mai de jos. Sub nivelul 1 este mediul fizic de comunicatie si prin intermediul acestuia se realizeaza practic comunicatia intre calculatoarele din retea. In figura 1.2 comunicatiile virtuale sunt marcate cu linie intrerupta iar cele reale cu linie continua.
Intre doua nivele adiacente exista o interfata. Interfata defineste serviciile pe care nivelul inferior le poate furniza nivelului superior lui. In proiectarea unei arhitecturi de retea, pe langa stabilirea numarului de nivele si a functiilor acestora, este foarta importanta definirea clara a interfetelor dintre aceste nivele. Aceasta presupune ca fiecare nivel sa realizeze o serie de functii specifice, bine stabilite. In plus, pentru a minimiza cantitatea de informatie ce trebuie transferata intre nivele, interfetele trebuie sa fie clare si simple. Aceasta permite foarte simplu inlocuirea implementarii unui nivel cu o implementare complet diferita dar care furnizeaza acelasi set de servicii ca si vechea implementare.
Multimea de nivele si protocoale alcatuieste arhitectura retelei. O specificatie completa de arhitectura de retea trebuie sa contina suficiente informatii care sa permita scrierea programelor sau realizarea de hardware pentru fiecare nivel. Detaliile de implementare si specificatiile interfetelor nu fac parte din arhitectura retelei deoarece acestea sunt ascunse undeva inauntrul retelei si nu sunt vizibile din afara. Nu este absolut necesar ca interfetele dintre nivele sa fie aceleasi pentru toate calculatoarele retelei, dar fiecare calculator trebuie sa respecte toate protocoalele.
In scopul standardizarii retelelor de calculatoare, ISO (International Standards Organization) a elaborat modelul arhitectural denumit modelul de referinta ISO OSI (Open System Interconection). Acest model a fost gandit pentru interconectarea sistemelor deschise, adica a sistemelor capabile sa comunice cu alte sisteme.
Modelul de referinta ISO OSI are sapte nivele functionale, asa cum este ilustrat in figura 1.3. Principiile care au stat la baza elaborarii acestui model sunt urmatoarele:
1. Fiecare nivel corespunde unui nivel de abstractizare distinct;
2. Fiecare nivel trebuie sa realizeze un set de functii bine definit;
3. Functiile fiecarui nivel trebuie alese astfel incat sa fie in concordanta cu protocoalele deja existente;
4. Limitele unui nivel trebuie stabilite astfel incat sa minimizeze traficul de informatii intre nivele;
5. Numarul de nivele trebuie sa fie suficient de mare astfel incat sa permita o stratificare clara a functiilor de acelasi tip dar in acelasi timp trebuie sa fie si suficient de mic astfel incat modelul arhitectural sa nu devina greoi de inteles si aplicat;
Fig. 1.3. Modelul arhitectural ISO OSI. |
Trebuie remarcat faptul ca modelul de referinta ISO OSI in sine nu este un model arhitectural complet deoarece nu specifica exact ce servicii si protocoale se folosesc in cadrul fiecarui nivel. El doar precizeaza ce ar trebui sa faca fiecare nivel. Specificatia serviciilor si protocoalelor nivelelor constituie subiectul altor standarde eleborate de ISO.
1.1.1.Nivelul Fizic
Nivelul fizic furnizeaza servicii pentru transmisia fara erori a sirurilor de biti de la un capat la celalalt capat al canalului de comunicatie. El trebuie sa rezolve probleme legate de tipul canalului de comunicatie (fir, cablu coaxial, fibra optica, radio, laser, microunde, etc.), modul de stabilire si desfacere a legaturilor pentru transferul datelor, modul de transfer al datelor (simplex, duplex, full duplex). De asemenea, functie de implementare, nivelul fizic defineste tipul de mufe utilizate, configuratia si semnificatia pinilor acestora, nivelele semnalelor electrice, rata de transfer, schema de modulare utilizata, toate acestea fiind strans legate de mediul de transmisie ales.
1.1.2.Nivelul Legaturii de Date
Functia principala a nivelului legaturii de date este de a transforma sirul de biti cu care opereaza nivelul fizic, in cadre a caror lungime este functie de protocol. Aceasta se realizeaza prin impartirea datelor la emisie in cadre (blocuri de date), transmiterea secventiala a acestor cadre si asteptarea confirmarii receptiei. Deoarece nivelul fizic transfera datele fara sa inperpreteze structura acestora, este de datoria nivelului legaturii de date sa insereze si sa recunoasca delimitatorii de cadre. Acestia reprezinta siruri speciale de biti care se insereaza la inceputul si sfarsitul cadrelor. Totodata, nivelul legaturii de date trebuie sa asigure detectarea si corectarea erorilor ce pot aparea la nivelul fizic.
In cazul folosirii canalelor de comunicatie cu difuzare (broadcasting) unde mai multe statii pot avea acces simultan la mediul de transmisie, nivelul legaturii de date trebuie sa rezolve eventualele probleme (ex. coliziuni) legate de acest mod de lucru.
Mai mult decat atat, datorita zgomotelor si altor factori care influenteaza comunicatiile in retea, nivelul legaturii de date trebuie sa rezolve probleme cum ar fi pierderea, distrugerea sau duplicarea cadrelor transmise.
O problema care apare la acest nivel (ca de altfel la toate celelalte nivele superioare) o constitue corelatia dintre emitator si receptor in cazul in care acesta din urma prelucreaza datele cu o viteza mai mica decat primul. Pentru aceasta trebuie implementate, inca de la acest nivel, mecanisme de control al traficului.
In final, nivelul legaturii de date trebuie sa furnizeze nivelului retea o serie de servicii distincte, fiecare avand calitati si performante proprii.
1.1.3.Nivelul Retea
Rolul nivelului retea este de a controla activitatea din subreteaua de comunicatie. In acest scop, el asigura rutarea pachetelor intre sursa si destinatie. Rutarea se face prin intermediul tabelelor de rutare care pot fi statice- stabilite in momentul adoptarii configuratiei retelei, sau dinamice- stabilite in functie de incarcarea retelei la un moment dat. Nivelul retea trebuie sa asigure controlul fluxului in subreteaua de comunicatie si evitarea congestiei (blocarii) acesteia. Daca comunicatia intre sursa si destinatie se face pe mai multe cai, nivelul retea trebuie sa tina evidenta conexiunilor stabilite.
Nivelul retea implementeaza pe langa functiile amintite si functii pentru managementul retelei in scopul monitorizarii traficului si localizarii defectelor.
In cazul in care pachetul de date trebuie sa treaca dintr-o retea de un tip intr-o retea de alt tip, pot apare probleme legate de protocolul folosit, formatul si dimensiunea pachetului, etc. Aceste probleme trebuie rezolvate tot de nivelul retea prin implementarea de functii care sa permita interconectarea de retele eterogene.
1.1.4.Nivelul Transport
Nivelul transport preia datele de la nivelul sesiune, le sparge in blocuri de dimensiuni mai mici daca este cazul si le transfera nivelului retea, asigurandu-se de ajungerea lor corecta la destinatie. Mai mult decat atat, aceste functii trebuie implementate intr-o maniera care sa permita izolarea nivelelor superioare de subreteaua de comunicatie, asigurand prin aceasta independenta nivelelor superioare de modificarile inerente ale tehnologiilor hardware / software din subreteaua de comunicatie.
Nivelul transport stabileste de asemenea, ce tip de serviciu sa furnizeze nivelului sesiune (orientat conexiune sau neorientat conexiune). Acest lucru se face in momentul stabilirii conexiunii logice intre sursa si destinatie functie de calitatea legaturii.
In cazul nivelelor anterioare, protocoalele de comunicatie nu se desfasoara direct intre sursa si destinatie ci indirect prin intermediul IMP-urilor din cadrul subretelei de comunicatie. Incepand cu acest nivel putem vorbi de protocoale de comunicatie cap la cap, dupa cum se poate vedea si in figura 1.3
Pe langa aceste functii, nivelul transport trebuie sa mai asigure stabilirea si desfacerea de conexiuni logice de-a lungul retelei, controlul fluxului intre punctele finale, multiplexarea datelor pe unul sau mai multe canale etc., totul intr-un mod transparent nivelului sesiune.
1.1.5.Nivelul Sesiune
Nivelul sesiune permite utilizatorilor de pe calculatoare diferite sa deschida sesiuni de lucru intre ei. Serviciile furnizate pot fi folosite pentru conectarea la destanta la un sistem time-sharing sau pentru transferul de fisiere intre calculatoare.
Unul din servicii se refera la gestiunea dialogului dintre partile participante la comunicatie. Acest dialog se poate purta in ambele directii in acelasi timp sau numai intr-o directie. In cazul in care dialogul se desfasoara numai intr-o directie, nivelul sesiune tine evidenta stabilind cine urmeaza sa ia cuvantul.
Un alt tip de serviciu este gestiunea jetonului. Pentru anumite protocoale este esential ca ambele parti sa nu incerce sa faca aceleasi operatii in acelasi timp. Pentru rezolvarea unor probleme de acest gen, nivelul sesiune pune la dispozitie un jeton care poate fi schimbat intre parti. Numai partea care are jetonul poate realiza aceste operatii.
O functie importanta a nivelului sesiune este sincronizarea care permite inserarea de puncte de control in sirul de date transferate si reluarea transmisiei din aceste puncte in caz de defectiuni. Aceasta facilitate poate fi folositoare in cazul in care sunt transferate fisiere de dimensiuni mari facand posibila reluarea transmisiei dintr-un punct anterior celui in care a aparut defectiunea in loc sa se retransmita intregul fisier. Trebuie specificat faptul ca nivelul sesiune furnizeaza doar mijloacele de reluare a transmisiei, operatia in sine ramanand in seama aplicatiilor de pe nivelele superioare.
1.1.6.Nivelul Prezentare
Acest nivel realizeaza functii care sunt suficient de des cerute pentru a impune gasirea unor solutii generale pentru ele in loc sa fie lasate in grija aplicatiilor utilizator. In particular, spre deosebire de nivelele anterioare care sunt preocupate numai de transferul datelor intre calculatoare, nivelul prezentare se ocupa cu sintaxa si semantica informatiilor transferate.
Serviciile tipice acestui nivel sunt legate de codificarea datelor intr-un standard acceptat de partenerul de comunicatie si reteaua prin intermediul careia se face comunicatia, comprimarea datelor in scopul micsorarii numarului de biti transferati si deci a costului transmisiei, criptografierea computationala a informatiilor pentru protectie si autentificare, etc.
1.1.7.Nivelul Aplicatie
Nivelul aplicatie furnizeaza servicii specifice aplicatiilor in retea. Acestea nu sunt aplicatii in sine dar pot fi folosite direct de programele utilizator. De exemplu, un program de posta electronica (e-mail) poate folosi serviciile X.400 din cadrul nivelului aplicatie pentru a realiza transmisia scrisorilor de pe un calculator pe altul. Alte servicii puse la dispozitie de nivelul aplicatie sunt: terminal virtual, e-mail, transferul de fisiere, rulare de programe la distanta (RJE- Remote Job Entry), etc.
1.1.8.Transferul datelor in modelul ISO OSI
Figura 1.4 prezinta un exemplu de cum se transmit datele in cadrul modelului arhitectural ISO OSI. Dupa cum se poate observa in figura, procesul emitator transfera datele de transmis, nivelului aplicatie. Aceasta adauga la inceputul datelor de transmis un header specific (AH) care in unele cazuri poate fi si nul si apoi le trece mai departe nivelului prezentare. Nivelul prezentare efectueaza diverse prelucrari asupra datelor, adauga propriul header (PH) si apoi le transfera nivelului sesiune. Trebuie remarcat faptul ca nivelul prezentare nu-si face probleme asupra structurii datelor primite de la nivelul aplicatie. Pe el nu-l intereseaza care portiune din date reprezinta headerul nivelului aplicatie si care datele procesului emitator. El trateaza intregul sir de date in acelasi fel.
Acest proces continua pana se ajunge la nivelul fizic unde se face transmisia fizica a datelor catre receptor. La receptie, pe masura ce datele sunt transferate de la nivelele inferioare catre cele superioare, se elimina headerele introduse de fiecare nivel. In momentul in care datele ajung la procesul receptor, acestea au aceiasi structura ca la emisie.
Fig. 1.4.Transferul datelor in cadrul modelului de referinta ISO OSI. O parte din headere pot fi nule. |
Ideea principala care se desprinde din aceasta prezentare consta in faptul ca fiecare nivel poate fi privit ca dialogand direct cu nivelul similar, fara sa-l intereseze detaliile (nivelele inferioare) care fac posibil acest lucru. Putem spune deci ca transmisia datelor se face orizontal, intre nivele similare, cu toate ca in realitate aceasta este verticala.
1.2.Servicii si protocoale
Scopul fiecarui nivel al modelului arhitectural ISO OSI este de a furniza servicii nivelului de deasupra sa.
Conform terminologiei OSI, elementele active din cadrul unui nivel se numesc entitati. O entitate poate fi un proces software sau o componenta hardware. Entitatile nivelului 7 se numesc entitati aplicatie, cele ale nivelului 6, entitati prezentare si asa mai departe. Entitatile din cadrul aceluiasi nivel dar de pe calculatoare diferite, se numesc entitati pereche.
Entitatile nivelului N implementeaza un serviciu folosit de nivelul N+1. In acest caz, nivelul N este denumit furnizor de servicii iar nivelul N+1, utilizator de servicii. In scopul realizarii propriilor servicii, nivelul N poate folosi serviciile oferite de nivelul N-1 si asa mai departe.
Serviciile nivelului N sunt oferite entitatilor nivelului N+1 prin intermediul punctelor de acces la servicii, SAP (Service Access Point). Fiecare SAP are propria-i adresa pentru identificare. Pentru a intelege mecanismul acestor puncte de acces la servicii, se poate face o analogie cu sistemul telefonic in care SAP-urile sunt soclurile in care se conecteaza telefoanele iar adresele SAP sunt numerele de telefon asociate acestor socluri. In Berkeley UNIX, SAP-urile se numesc socketuri iar adresele SAP sunt numere de socket. Aceiasi terminologie se intalneste si la IPX / SPX.
Pentru ca doua nivele sa schimbe intre ele informatii, trebuie sa se puna de acord asupra setului de reguli referitoare la interfata. In cazul unei interfete clasice, entitatea nivelului N+1 transfera o structura de date, IDU (Interface Data Unit), catre entitatea nivelului N prin intermediul unui SAP, dupa cum se poate observa in figura 1.5. Structura de date IDU este alcatuita din datele de transferat, SDU (Service Data Unit) si informatiile de control, ICI (Interface Control Information), necesare realizarii serviciului.
Fig. 1.5. Relatia dintre nivele si interfete. |
Pentru a putea realiza transferul blocului de date SDU, entitatea de pe nivelul N fragmenteaza acest bloc in mai multe unitati, ataseaza un header specific fiecarei unitati si o transmite entitatii pereche ca un bloc de date separat, denumit PDU (Protocol Data Unit).
Headerul PDU este folosit de entitatea pereche pentru realizarea protocolului de comunicatie de nivel N. El identifica tipul PDU (date sau informatii de control), furnizeaza mecanisme de secventiere si reluare a comunicarii, etc. Functie de nivelul arhitectural, unitatile de date de protocol, PDU, poarta diverse denumiri: TPDU la nivel transport, SPDU la nivel sesiune, PPDU la nivel prezentare si APDU la nivel aplicatie.
1.2.1.Servicii orientate conexiune si servicii neorientate conexiune
Un nivel arhitectural poate oferi nivelului de deasupra sa, doua tipuri de servicii pentru transferul datelor: servicii orientate conexiune si servicii neorientate conexiune.
Serviciile orientate conexiune pot fi modelate dupa serviciul telefonic. Pentru a discuta cu cineva, trebuie ridicat receptorul, format numarul, purtat dialogul si apoi pus receptorul inapoi in furca. Similar, pentru a folosi un serviciu in retea orientat conexiune, o aplicatie utilizator trebuie mai intai sa stabileasca o conexiune cu statia destinatie, apoi sa transfere datele prin intermediul acestei conexiuni si in final sa desfaca conexiunea. Caracteristica principala a unei conexiuni consta in faptul ca functioneaza exact ca o conducta: emitatorul pune datele printr-un capat iar receptorul le extrage prin calalat capat, exact in aceiasi ordine ca la emisie.
Prin contrast, serviciile neorientate conexiune sunt modelate de sistemul postal. Fiecare mesaj (scrisoare) transmis in retea, contine adresa destinatie completa si este rutat prin sistem independent de celelalte. In mod normal, cand se trimit doua masaje catre aceiasi destinatie, primul transmis va fi primul receptionat. Totusi, uneori este posibil ca primul mesaj transmis sa fie intarziat si al doilea sa ajunga primul. Aceasta creaza probleme la receptie necesitand mecanisme de secventiere pentru refacerea ordinii mesajelor. In cazul serviciului orientat conexiune, acest lucru este imposibil.
Fiecare serviciu este caracterizat de o calitate a serviciului. Una din calitatile principale ale unui serviciu este fiabilitatea. Spunem despre un serviciu ca este fiabil daca nu pierde niciodata date. Uzual, un serviciu fiabil se realizeaza prin confirmarea receptiei fiecarui mesaj primit. Procesul de confirmare a receptiei introduce incarcari si intarzieri suplimentare ceea ce in unele cazuri constituie un lucru nedorit dar in altele este absolut necesar. Pentru unele aplicatii, intarzierea introdusa de confirmarea receptiei este de neacceptat. O astfel de aplicatie este transmisia vocala digitizata, unde este preferabil ca la receptie sa se auda din cand in cand un zgomot datorat liniei de comunicatie decat sa se introduca o intarziere pentru confirmarea receptiei. In alte aplicatii cum ar fi de exemplu transferul fisierelor, este absolut necesar ca operatia sa se faca fara erori si pentru aceasta este necesara confirmarea receptiei.
Serviciile neorientate conexiune fara confirmarea receptiei sunt deseori denumite servicii datagram prin analogie cu serviciul postal de telegrame. Pentru realizarea de servicii fiabile fara sa fie necesara realizarea unei conexiuni intre emitator si receptor, se pot folosi servicii datagram cu confirmarea receptiei asemanatoare serviciului postal de scrisori recomandate.
1.2.2.Primitive de acces la servicii
Un serviciu este descris formal printr-un set de primitive (operatii) prin intermediul carora un utilizator sau o alta entitate are acces la respectivul serviciu. Aceste primitive comunica serviciului sa realizeze anumite actiuni sau sa raporteze modul in care entitatea pereche a realizat aceste actiuni. Conform modelului OSI, primitivele de acces la servicii se pot imparti in patru clase, dupa cum urmeaza:
(1) - primitive cerere (request);
(2) - primitive de semnalizare (indication);
(3) - primitive raspuns (response);
(4) - primitive de confirmare (confirm);
Prima clasa de primitive sunt primitivele de tip cerere (request). Prin intermediul acestor primitive, entitatea apelanta specifica tipul operatiei ce se executa, de exemplu stabilire conexiune, transfer date sau desfacere conexiune. Dupa ce s-a executat operatia ceruta, entitatea pereche este anuntata prin intermediul unei primitive de semnalizare (indication). De exemplu, dupa o cerere de stabilire conexiune, CONNECT.request in notatie OSI, entitatea adresata primeste un CONNECT.indication prin care este anuntata ca cineva doreste sa stabileasca o conexiune cu ea. Entitatea care a primit o semnalizare, poate folosi o primitiva de raspuns (response) pentru a comunica daca accepta sau nu cererea primita. In cazul exemplului anterior, entitatea adresata poate raspunde printr-un CONNECT.response stabilind prin aceasta daca accepta sau nu cererea de conectare. In final, entitatea sursa este informata in legatura cu cererea pe care a facut-o, prin intermediul unei primitive de confirmare (confirm). Pentru exemplul anterior, primitiva corespunzatoare este CONNECT.confirm.
Fig. 1.6. Primitivele de acces la servicii. |
Primitivele de acces la servicii pot avea parametrii. Parametrii unei cereri de conectare, CONNECT.request, specifica de exemplu, calculatorul la care se doreste conectarea, tipul serviciului dorit, dimensiunea maxima a mesajelor folosite in comunicatie, etc. In cazul primitivei de semnalizare, CONNECT.indication, parametrii pot specifica identitatea apelantului, tipul serviciului cerut, dimensiunea propusa a mesajelor care se vor transfera, etc. Daca entitatea adresata nu este de acord cu dimensiunea maxima a mesajelor, propusa de entitatea apelanta, poate face o contrapropunere prin intermediul primitivei de raspuns, CONNECT.response care va ajunge la cunostinta entitatii initiale prin intermediul primitivei de confirmare, CONNECT.confirm. Detaliile de desfasurare a acestei negocieri fac parte din protocol.
Operatiile unui serviciu pot fi cu confirmare sau fara confirmare. Operatiile cu confirmare contin toate cele patru primitive, request, indication, response si confirm. Cele fara confirmare contin doar primitivele request si indication. De exemplu, o cerere de stabilire conexiune este intotdeauna cu confirmare deoarece entitatea adresata trebuie sa fie de acord sa stabileasca conexiunea. Transferul datelor in schimb, se poate face cu confirmare sau fara confirmare functie de calitatea dorita a serviciului.
Pentru a clarifica lucrurile, prezentam in continuare serviciul orientat conexiune cu cele opt primitive ale sale:
1. CONNECT. request - Cerere stabilire conexiune;
2. CONNECT.indication - Semnalizare destinatie despre existenta unei cereri de stabilire conexiune;
3. CONNECT.response - Raspunsul destinatiei (acceptare / rejectare) la cererea de stabilire conexiune;
4. CONNECT.confirm - Informarea apelantului despre acceptarea / rejectarea cererii de stabilire conexiune;
5. DATA.request - Cerere transmisie date;
6. DATA.indication - Semnalizare destinatie despre receptionarea datelor;
7. DISCONNECT.request - Cerere anulare conexiune;
8. DISCONNECT.indication - Semnalizare destinatie despre anularea conexiunii;
In cazul unui servici de tip datagram, numarul primitivelor se reduce la doua:
1. DATA.request - Cerere transmisie date;
2. DATA.indication - Semnalizare destinatie despre receptionarea datelor;
1.2.3.Relatia dintre servicii si protocoale
Serviciile si protocoalele sunt concepte distincte in terminologia retelelor de calculatoare. Un serviciu reprezinta un set de primitive (operatii) pe care un nivel le ofera nivelului de deasupra sa pentru ca acesta sa-si poata indeplini functiile. Serviciul defineste operatiile pe care un nivel este pregatit sa le ofere nivelului superior dar nu spune nimic despre modul in care acestea sunt realizate. Serviciul se refera la interfata dintre doua nivele adiacente in care nivelul inferior este furnizorul serviciului iar cel superior, utilizatorul.
Prin contrast, un protocol reprezinta un set de reguli ce guverneaza formatul si semnificatia cadrelor, pachetelor sau mesajelor ce sunt transferate intre entitati pereche de pe un acelasi nivel. Entitatile folosesc protocoalele pentru a implementa serviciile nivelului din care fac parte. Ele pot schimba protocolul ori de cate ori doresc dar nu pot schimba serviciile puse la dispozitie nivelelor superioare. In acest mod, serviciile si protocoalele sunt complet decuplate.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |