Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » referate » informatica » retele calculatoare
Protocoale suport pentru aplicatii

Protocoale suport pentru aplicatii


Protocoale suport pentru aplicatii

Spre deosebire de grupul de protocoale TCP/IP, unde protocoale de aplicatii (sau procesele de aplicatie) interactioneaza direct cu protocoalele nivelului transport (UDP si TCP), in modelul OSI ele interactioneza prin entitatile de protocol asociate nivelurilor intermediare sesiune si prezentare. Aceste niveluri intermediare coopereaza cu protocoalele nivelului aplicatie pentru a asigura functia suport pentru o aplicatie particulara. Multe dintre primitivele de serviciu asociate nivelului aplicatie fac translatia direct la primitivele prezentare/sesiune echivalente.

Nivelul sesiune

Nivelul sesiune asigura unei entitati de protocol aplicatie, prin intermediul serviciilor oferite de nivelul prezentare, mijloace pentru:

stabilirea unei cai de comunicatie logice (conexiune sesiune) cu o alta entitate aplicatie in vederea schimbului de date (unitati de dialog) si eliberarea normala a conexiunii;



stabilirea unor puncte de sincronizare in interiorul dialogului si, in cazul erorilor (intreruperi), revenirea la starea anterioara unui punct de sincronizare, pentru a evita repetarea integrala a unitatii de dialog;

intreruperea unui dialog si reluarea ulterioara a sa dintr-un punct prestabilit

negocierea utilizarii de jetoane care permit emiterea datelor si eliberarea.

Jetoanele permit schimbarea sensului de transfer al datelor si crearea dialogurilor. Jetonul este un obiect logic purtator de drepturi si atributii. Utilizatorul (unic) care poseda jetonul este singurul autorizat sa foloseasca serviciile asociate jetonului. Sunt definite patru tipuri de jetoane: de date, de eliberare, pentru sincronizare minora si pentru sincronizare majora si gestionarea activitatii.

In conceperea serviciilor nivelului sesiune s-a avut in vedere ca acest nivel va folosi cu conexiune punct-la-punct oferit de nivelul transport. Ca urmare nivelul sesiune presupune ca transmisiunea datelor se face fara erori si fara duplicari pe o conexiune intre un cuplu de utilizatori .

Un jeton poate fi disponibil sau indisponibil. Daca este disponibil el este alocat unuia sau altuia dintre cei doi utilizatori si poate fi trecut de la unul la altul. Daca jetonul este indisponibil, cei doi utilizatori pot accede liber la serviciile asociate jetonului. Spre exemplu, daca jetonul de date este disponibil, conexiunea sesiune este exploatata, pentru transferul datelor, in mod alternant (semiduplex), iar daca este indisponibil conexiunea va fi exploatata in modul bidirectional simultan.

Jetoanele de sincronizare sunt asociate procesului de sincronizare utilizat in cursul unei sesiuni. Daca doi utilizatori ai serviciului sesiune au de schimbat un mare volum de date este recomandabil ca datele sa fie structurate in unitati identificabile pentru ca , in cazul in care in retea survine o defectiune, sa fie afectata numai unitatea de date care este in curs de transferare. Aceasta functiune se obtine cu ajutorul punctelor de sincronizare inserate in fluxul de date, care permit identificarea unor momente precise, semnificative pentru aplicatie. Punctele de sincronizare majore permit structurarea fluxului datelor ce trebuie transferate in cursul unei sesiuni in unitati de date numite dialoguri. In interiorul unui dialog pot fi inserate puncte de sincronizare minore (fig. 10 .15).

Figura 10.15.

Un element de structurare care tine seama de natura logica a informatiei transmise este activitatea. O sesiune poate include una sau mai multe activitati distincte, dar in orice moment este autorizata numai o activitate. Este posibil de asemenea ca o activitate sa se desfasoare pe parcursul mai multor sesiuni. Fiecare activitate este constituita din mai multe dialoguri succesive. Spre exemplu, o activitate privind transferul unui numar de fisiere poate fi structurata in dialoguri, cate unul pentru fiecare fisier.

O conexiune sesiune are, ca si conexiunile de la nivelurile inferioare, trei faze: stabilire, transfer date, eliberare. In cadrul fiecarei faze sunt disponibile mai multe servicii. Deoarece pentru o anumita aplicatie nu sunt necesare toate serviciile si pentru a permite utilizatorilor sa negocieze serviciile necesare, acestea sunt grupate in unitati functionale care, la randul lor, in diferite combinatii, formeaza subseturi (profiluri) de servicii oferite utilizatorilor. Fiecare aplicatie poate alege (negocia) profilul de care are nevoie.

Unitatile functionale sunt:

Nucleu (kernel) - asigura functiunile minimale pentru gestionarea conexiunii sesiune (stabilire, transfer date, eliberare);

Semiduplex - permite schimbul datelor in modul alternant, controland sensul transferului de date;

Sincronizare - asigura (re) sincronizarea in cursul unei sesiuni;

Gestionarea activitatii - asigura identificarea, inceputul, sfarsitul, intreruperea si reluarea activitatilor;

Eliberarea negociata;


Raportarea exceptiei - asigura raportarea unei exceptii in cursul unei sesiuni.

Subseturile alcatuite prin combinarea acestor unitati functionale sunt:

subsetul de baza (BCS-Basic combined subset), incluzand nucleul si unitatea semiduplex;

subsetul de sincronizare de baza (BSS - Basic synchronized subset), incluzand unitatile de sincronizare;

subsetul activitatilor de baza (BAS - Basic activity subset), incluzand unitatile pentru gestionarea activitatii si raportarea exceptiei.

Ca si in cazul serviciilor oferite de celelalte niveluri si serviciul sesiune este solicitat si folosit prin intermediul unor primitive de serviciu, cu parametrii asociati, ca de exemplu: S.CONNECT, S.DATA, S:RELEASE, S.TOKEN-PLEASE etc. celor mai multe dintre primitivele de serviciu le corespund tipuri diferite de unitati de date de protocol sesiune (SPDU).

Structura unei unitati SPDU este reprezentata in figura 10.16.

Figura 10.16.

Fiecare tip de SPDU este identificat printr-un octet care ocupa campul SI. Campul LI, format dintr-un octet sau din trei octeti, indica numarul de octeti care mai urmeaza pana la sfarsitul SPDU. Daca acest numar este cel mult 254, campul LI are un singur octet, iar daca este mai mare de 254 are trei octeti, primul octet fiind totdeauna 255. Diferitele tipuri de SPDU au un numar diferit de campuri, reprezentand fiecare un parametru. Fiecarui parametru ii corespunde un identificator de parametru (PI), un identificator al lungimii parametrului (LI) si o valoare a parametrului (PV). In anumite situatii parametrii sunt grupati, sirul lor fiind precedat de un identificator al grupului de parametrii (PGI) si un identificator al lungimii grupului de parametrii (LI).

Datele de utilizator asociate unei primitive de serviciu pot fi segmentate de entitatea de protocol sesiune intr-un numar de SPDU pentru a fi transferate folosind o conexiune transport. Mai multe SPDU pot fi grupate intr-o aceeasi unitate TPDU. Deoarece serviciul transport garanteaza succesiunea unitatilor TPDU, unitatile SPDU vor fi furnizate destinatarului in ordinea in care ele au fost trecute, la emisie, catre nivelul transport.

Nivelul prezentare

Nivelul prezentare, definit de standardele ISO 8822 si ISO 8823 se ocupa de reprezentarea (sintaxa) datelor in mesajele asociate unei aplicatii, pe durata transferului acestora intre doua procese de aplicatie. Prin intermediul nivelului prezentare mesajele au acelasi inteles pentru procesele de aplicatie intre care ele se transfera. Fara acest nivel programele de aplicatie ar trebui rescrise de fiecare data cand in retea se introduce un nou sistem de operare.

Datele asociate unui limbaj de programare de nivel inalt nu au aceeasi reprezentare in toate calculatoarele. Pentru ca ele sa fie interpretate la fel, inaintea de transferarea lor intre doua procese, trebuie convertite din sintaxa locala (abstracta) intr-o sintaxa de transfer (concreta), larg utilizata. In mod similar, la receptie, inainte de a fi prelucrate, datele vor fi convertite din sintaxa de transfer in sintaxa locala.

Pentru a nu se pune utilizarea unui anumit (mereu acelasi) limbaj de programare pentru orice aplicatie, deci pentru a lasa la latitudine utilizatorilor alegerea limbajului de programare intr-o anumita aplicatie, ISO si CCITT au definit o sintaxa abstracta generala, adecvata pentru definirea tipurilor de date asociate celor mai multe aplicatii distribuite, numita ASN.1 (Abstract Syntax Notation 1). Datele asociate unei aplicatii sunt definite mai intai folosind ASN.1, dupa care aceste definitii sunt prelucrate de un compilator, adecvat limbajului de programare utilizat. Compilatorul va da definitiile tipurilor de date echivalente impreuna cu un set de proceduri/functiuni de codare si de decodare pentru fiecare tip de date. Definitiile tipurilor de date sunt combinate (linked) si utilizate cu programul de aplicatie corespunzator iar procedurile/functiunile de codare si de decodare sunt utilizate de entitatea prezentare pentru a realiza operatiile de codare (la emisie) si de decodare (la receptie) asociate cu fiecare tip de date.

In timp ce o sintaxa abstracta este definita prin reguli de specificare asociate datelor, independente de codul (masina) utilizat pentru reprezentarea lor, o sintaxa de transfer defineste concret modul de codare a datelor (campuri de biti sau octeti) pentru transferul lor. Operatia care permite trecerea de la o sintaxa abstracta la o sintaxa de transfer este similara operatiei de compilare a unui program.

Desi sarcina principala a nivelului prezentare este conversia sintaxei datelor, deoarece la acest nivel se fac prelucrari ale datelor inainte si dupa transferul lor, tot aici este recomandabil sa se realizeze, daca sunt necesare, functiunile de criptare si/sau de compresie a datelor. Astfel, entitatea prezentare din sistemul sursa, dupa codarea datelor fiecarui mesaj din sintaxa abstracta locala in sintaxa de transfer corespunzatoare, cripteaza datele conform unui algoritm negociat cu sistemul receptor si apoi le comprima folosind de asemenea un algoritm acceptat de receptor. La receptie, inainte de a decoda datele in sintaxa abstracta locala pentru a fi furnizate entitatii aplicatie, vor fi efectuate operatiile inverse.

Asocierea unei sintaxe abstracte cu o sintaxa de transfer compatibila constituie un context de prezentare. Una din functiunile asociate nivelului prezentare este de a negocia un context de prezentare adecvat utilizarii pe o conexiune sesiune/prezentare. In plus, nivelul prezentare trebuie sa faciliteze nivelului aplicatie folosire multiplelor servicii oferite de nivelul sesiune. Rezumand, functiunile nivelului prezentare sunt:

negocierea unei sintaxe de transfer;

transformarea datelor utilizatorului sursa in sintaxa de transfer si, reciproc, transformarea datelor receptionate din sintaxa de transfer in sintaxa abstracta locala;

adaptarea cererilor de serviciu ale nivelului aplicatie, pentru functiuni de control al dialogului si al sincronizarii, in primitivele corespunzatoare ale serviciului sesiune.

Nivelul aplicatie

Retelele de comunicatii permit realizarea unor aplicatii care fac apel la date si resurse de calcul (software si hardware) situate in diferite locuri. Sistemul de comunicatie stabileste legaturi intre un ansamblu de sarcini care concura la executarea aplicatiei.

In modelul de referinta OSI nivelul aplicatie reprezinta interfata cu sistemul de comunicatii, oferita utilizatorilor (procesele de aplicatie), si specifica facilitatilor oferite acestora, interactiunile lor cu serviciul de comunicatii.

Nivelul aplicatie consta din mai multe entitati de protocol (fig. 10.17), fiecare numita element al serviciului aplicatie (ASE - Application Service Element). Deoarece anumite functiuni sunt comune multor aplicatii, acestea sunt realizate prin protocoale separate care vor fi conectate cu protocoale specifice de aplicatie, adecvate pentru a satisface un anumit serviciu suport. Combinatia de protocoale rezultata, numita entitate de aplicatie, este oferita utilizatorului (procesul de aplicatie).

Protocoalele comune mai multor aplicatii sunt numite CASE (Common Application Service Element) iar celelalte, specifice cate unei aplicatii, sunt numite SASE (Specific Application Service Element).

Comunicatia intre doua procese de aplicatie utilizatoare se realizeaza fie utilizand un canal de comunicatie (logic) stabilit intre cele doua entitati de aplicatie inainte de a se transfera datele, fie utilizand un schimb simplu de mesaje cerere/raspuns. O conexiune logica intre doua entitati de aplicatie este numita asociere . Elementul ASE care initiaza stabilirea si eliberarea unei asocieri intre doua elemente ASE specifice (SASE) este numit element de serviciu pentru controlul asocierii (ACSE - Association Control Service Element).

Un numar redus de elemente ASE specifice functioneaza utilizand mesaje scurte cerere/raspuns care nu implica un volum mare de informatie aditionala (de protocol). Elementul ASE definit pentru a permite acest tip de aplicatie este numit ROSE (Remote Operations Service Element).

Multe aplicatii distribuite implica situatii in care mai multe procese de aplicatie solicita accesul lor la o singura resursa partajata. Spre exemplu, un sistem de fisiere intr-o aplicatie bancara care contine conturile clientilor este accesat concurential de sistemele clientilor pentru a realiza operatii de creditare si debitare pe diferite conturi. Pentru buna functionare a unui astfel de sistem este necesar un mecanism de control (concurential). O problema apare in cazul in care copii ale aceluiasi fisier sunt pastrate in locatii diferite. In acest caz este necesar ca la fiecare modificare a fisierului sa se faca actualizarea in toate copiile sale.

Ambele probleme mentionate mai sus sunt comune multor aplicatii distribuite. Pentru controlul acestor operatii a fost definit un element ASE numit CCR (Commitment Concurrency and Recovery).

Unele aplicatii folosesc adesea doua sau trei elemente de serviciu de tipul celor prezentate (ACSE , ROSE si CCR) intr-o singura entitate de aplicatie.

Un alt element ASE, definit inainte de a fi complet specificat setul serviciilor prezentare, care utilizeaza o combinatie de servicii ACSE si un mic subset al serviciilor nivelului sesiune, este numit RTSE (Reliable Transfer Service Element ).





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.