ARHITECTURA RE ELELOR DE CALCULATOARE
În retelele moderne de calculatoare, comunicatia între utilizatori se realizeaza printr-o succesiune de activitati organizate de o maniera ierarhizata. Conceptul care sta la baza susmentionatei organizari ierarhice consta în delimitarea, în cadrul fiecarui dispozitiv ce face parte din sistemul retelei de calculatoare, a unui numar n de diviziuni ierarhice - numite straturi [layer] / niveluri [level] - , fiecare realizat pe baza celui inferior si interactionând doar cu straturile adiacente (cel superior si cel inferior). Rolul oricarui nivel este de a oferi nivelurilor superioare anumite functii - numite servicii [service] - ce concura la buna functionare a întregii retele si pe care se bazeaza urmatorul nivel pentru a realiza seviciile pe care le ofera la rândul lui. Aceasta ierarhizare de servicii imbricate ofera avantajele modularizarii: reducerea complexitatii problemei de proiectare a unor astfel de retele prin partitionarea ei în subprobleme de proiectare a fiecarui nivel ierarhic si degrevarea oricarui nivel ierarhic de detaliile de implementare a serviciilor pe care le primeste de la nivelul inferior, fapt ce permite, în limitele unor standarde, o mare varietate de solutii constructive si o modernizare a fiecarui nivel în mod independent de celelalte.
Elementul activ ce genereaza o functie în cadrul unui nivel se numeste entitate [entity] / modul [module]. O entitate poate fi de tip software (un anumit program) sau de tip hardware (ca, de pilda, un chip inteligent de intrare-iesire [intelligent input-output (I/O) chip]). Entitatile (modulele) de pe diverse dispozitive din retea dar aflate la acelasi nivel ierarhic se numesc entitati pereche / omoloage / similare [peer entities] sau module pereche / corespondente / omoloage [peer modules / peer processes].
Conform organizarii pe niveluri ierarhice a comunicatiei din retea, nivelul (de rang) n al unui dispozitiv comunica doar cu nivelul de acelasi rang n al oricarui alt dispozitiv.
Algoritmul distribuit (la mai multe sau la toate dispozitivele între care se face comunicatia în retea) si care traduce regulile si conventiile stabilite (cunoscute si utilizate de toate dispozitivele participante) pentru realizarea unei comunicatii (sesiuni) între entitatile pereche de la nivelul n formeaza un protocol [protocol] de nivel n.
Conventiile dintr-un protocol sunt:
semantice (de semnificatie), care privesc semnificatia semnalelor vehiculate: semnale informationale (= date), semnale de stare (de supraveghere) si semnale de control;
de sintaxa (de asamblare a semnalelor), ce specifica dimensiunile, amplasamentul si rolul elementelor constitutive ale semnalelor.
Regulile unui protocol - formând succesiunea de desfasurare [behavioural sequence] a protocolului - rezulta din combinarea conventiilor susmentionate si reprezinta secventa de semnale elementare - numite unitati de date de protocol [Protocol Data Unit (PDU)] - schimbate între ele de entitatile pereche pentru realizarea unei comunicatii.
Multimea nivelurilor ierarhice si a protocoalelor aferente formeaza arhitectura retelei [network architecture].
Cu exceptia primului nivel (cel inferior), la care se realizeaza efectiv o conexiune fizica [physical connection] între entitatile pereche, la toate celelalte niveluri comunicatia între entitatile pereche este virtuala, caci infor-matiile nu sunt transferate direct între nivelurile de rang n ale dispozitivelor comunicante ci, în cadrul fiecarui dispozitiv emitator, mesajele informationale (împreuna cu niste informatii de control) sunt trecute succesiv nivelurilor imediat inferioare, pâna la nivelul 1 (unde se face transmisia efectiva a semnalelor între dispozitivele comunicante) si apoi, la dispozitivul receptor, trecute de la fiecare nivel la succesorul lui, pâna ajung la nivelul n. Prin procedurile oferite (de tipurile "Trimite_interlocutorului" ["Send_To_Other_Side"] si "Primeste_de_la_ interlocutor" ["Get_From_Other_Side"]), protocolul de la nivelul n creeaza aparenta unei conexiuni "orizontale" directe la nivelul n, cu toate ca avem de-a face doar cu o conexiune virtuala [virtual connection conexiune logica [logical connection].
Prin interfata [interface] se întelege un set de conventii si reguli utilizate între entitati nesimilare dintr-un acelasi dispozitiv, unitati ce interactioneaza printr-o conexiune fizica.
Între oricare doua niveluri adiacente dintr-un dispozitiv comunicant al retelei exista o interfata care defineste ce servicii ofera nivelul inferior celui superior.
În cadrul proiectarii retelelor de calculatoare, la stabilirea numarului de niveluri ierarhice si a sarcinilor fiecarui nivel, o problema de o deosebita importanta o constituie definirea clara a interfetelor dintre niveluri, asfel încât sa raspunda la doua cerinte:
minimizarea cantitatii de informatie care se vehiculeaza între niveluri, prin alocarea unor functii bine definite, specifice fiecarui nivel;
insensibilizarea serviciilor pe care le ofera un nivel fata de modul de implementare al acestuia.
Prin serviciu de nivel n [layer n service] se întelege multimea de operatii elementare [facility] necesare transmiterii informatiilor într-o retea si pe care le poate efectua nivelul n (cu concursul straturilor inferioare lui), oferindu-le nivelului ierarhic superior n + 1; se zice ca nivelul n este furnizorul serviciilor / prestatorul de servicii [services provider] iar nivelul n + 1 este beneficiarul serviciilor / utilizatorul serviciilor [services user].
Punctul unde serviciul de nivel n este furnizat de catre o entitate de rang n unei entitati de rang n + 1 se numeste punct de acces la serviciu [Service Access Point (SAP)] de nivel n. Fiecare SAP are o adres[ care ]l identifica în mod unic.
Unitatile de informatie care strabat interfata dintre doua niveluri, n cadrul unui serviciu, se numesc unitati de informatii de interfata [Interface Data Unit (IDU)]; ele se compun din informatia ce trebuie trecuta prin retea la entitatea pereche din alt dispozitiv - informatie numita unitate de informatie de serviciu [Service Data Unit (SDU)] - precum si dintr-o informatie de control (care nu face parte din mesajul informational propriu-zis), menita sa ajute nivelul inferior sa-si îndeplineasca sarcinile - purtând numele de informatie de control al interfetei [Interface Control Information (ICI)].
Pentru a transfera o SDU catre entitatea pereche din dispozitivul interlocutor, nivelul inferior interfetei considerate poate fi nevoit sa o fragmenteze în unitati mai mici si, atasându-le, de regula, la început dar câteodata si la final câte o informatie de control - numita antet [header] respectiv control final [trailer] / secventa de verificare a (corectitudinii) cadrului [frame check sequence (FCS)]) -, sa le expedieze ca PDU.
Observatie: O PDU de nivel n + 1 devine, la nivelul inferior n, o SDU.
În fig. 3 - 4 sunt ilustrate trecerile mesajelor prin interfete catre nivelurile inferioare (cazul emisiei) si respectiv catre nivelurile superioare (cazul receptiei), indicându-se atasarile si înlaturarile informatiilor de control pentru interfete si pentru protocoale.
I Din cele expuse a rezultat ca pentru a asigura schimbul de informatii (SDU) între doua (sau mai multe) entitati pereche de rang n + 1, trebuie stabilita între acestea o conexiune de nivel n - de fapt între doua SAP (de nivel) n. Continuând rationamentul pentru nivelurile din ce în ce mai joase, conchidem ca o comunicatie se efectueaza prin intermediul mai multor conexiuni (una fizica - prin canalul de comunicatie - si celelalte virtuale - printr-un set de protocoale [protocol suite] / stiva de protocoale [protocol stack]).
Precizam ca specificatiile privind arhitectura unei retele de calculatoare trebuie sa contina suficiente informatii pentru a permite, la fiecare nivel, elaborarea unui program sau realizarea hard-ului care sa realizeze protocolul respectiv.
Observatie: Nici detaliile de implementare, nici specificatiile privind interfetele nu fac parte din arhitectura retelei.
Problematica proiectarii (protocoalelor) nivelurilor ierarhice ale unei retele de calculatoare trebuie sa aiba în vedere urmatoarele:
1) prevederea unei modalitati de stabilire a conexiunilor la fiecare nivel, în particular a unui mod de specificare a adreselor interlocutorilor;
2) prevederea unei modalitati de întrerupere a conexiunilor la terminarea comunicatiei;
3) stabilirea regulilor privind transferul informatiilor si anume:
a) sensul de circulatie a informatiilor pe o conexiune data, alegând între urmatoarele variante de transmisie:
comunicatie simplex [simplex] - în care informatiile circula într-un sens unic,
comunicatie semi-duplex [half-duplex] - în care mesajele pot circula în abele sensuri, dar nu simultan,
comunicatie duplex [full-duplex] - în cadrul careia informatiile pot circula simultan în ambele sensuri;
b) numarul de canale logice care corespund unei conexiuni si prioritatile lor (multe retele prevad cel putin doua canale logice pe fiecare conexiune: un canal pentru informatiile curente si unul pentru cele urgente);
4) asigurarea protectiei la erori [error control] - adica prevenirea, depistarea si, eventual, corectarea erorilor introduse de perturbatiile care afecteaza canalul fizic - prin:
utilizarea unor coduri detectoare si chiar corectoare de erori,
prevederea unor posibilitati ca receptorul de mesaje sa poata confirma dispozitivului emitator daca mesajele ce i-au fost adresate au fost corect receptionate sau nu;
5) posibilitatea refacerii ordinii fragmentelor de mesaj (SDU) la receptie, atunci când modul de transmisie nu pastreaza succesiunea de la emisia lor;
6) evitarea - la fiecare nivel ierarhic - a "înecarii" cu mesaje a unui receptor lent de catre un emitator rapid, utilizând o reactie care sa informeze dispozitivul emitptor despre starea curenta a receptorului, stopându-i, la nevoie, temporar emisia;
7) tratarea lungimilor inacceptabile de mesaje în cazurile:
unor mesaje prea lungi în raport cu durata proceselor ce comunica între ele - prin dezasamblarea mesajelor în fragmente, transmiterea lor (succesiva sau simultana, pe o aceeasi cale sau pe trasee diferite - dupa cum permit canalele si metoda de comutatie folosita) si reasamblarea lor la receptie,
unor mesaje neeconomic de scurte si având acelasi destinatar - prin concatenarea lor la emisie si descompunerea la receptie a mesajului rezultat în componentele sale;
8) posibilitatea utilizarii unei aceleiasi conexiuni de la un anumit nivel pentru transmisia mai multor mesaje necorelate de la nivelurile superioare - prin operatii de multiplexare - demultiplexare (care trebuie sa fie transparente pentru utilizator );
9) alegerea traseului dintre sursa si destinatie, atunci când exista - la oricare nivel - mai multe posibilitati.
Nivelurile ierarhice ale unei retele de calculatoare pot oferi doua categorii de servicii:
< Servicii bazate pe conexiuni [connection-oriented service] - numite si servicii de tip 2 - , ai caror utilizatori trebuie sa stabileasca mai întâi conexiunea, de abia dupa aceea putând utiliza serviciul dorit, în cadrul respectivei conexiuni, iar la final trebuie sa întrerupa conexiunea; mesajele trimise cu ajutorul unui astfel de serviciu ajung la destinatar în aceeasi ordine în care au fost emise de sursa. Printre serviciile din acesta categorie distingem:
Servicii fiabile [reliable service] (în sensul ca ele nu pot provoca pierderi de mesaje), a caror implementare se face cu mesaje de confirmare [acknowledgement] a receptiei corecte - fapt care provoaca întârzieri în transmisie. Astfel de servicii apar în doua variante:
servicii cu secvente de mesaje fiabile [reliable message sequence] , în care limitele mesajelor se pastreaza (de exemplu, cazul transferului de fisiere în "format document");
servicii cu siruri de octeti fiabile [reliable byte stream] , în care nu se folosesc delimitatori de mesaje (ca în cazul unui terminal atasat de la distanta [remote log(ging) in(to)] unui calculator lucrând multi-programat [multitasking] / în timp divizat [time-sharing] sau ca n cazul Internet-ului).
" Servicii nefiabile [unreliable service] , pentru acele aplicatii în care întârzierile provocate de confirmarea receptiei corecte sunt inacceptabile.
Servicii fara conexiune [connectionless service] - numite si servicii de tip 2 - în cadrul carora fiece mesaj poarta o adresa completa a destinatarului si este transportat pe un traseu independent fata de traseele mesajelor anterioare emise de aceeasi sursa (catre acelasi destinatar) - corespun-zând tehnicii de transmisie cu stocare si avans; din cauza întârzierilor diferite suferite de mesajele ce urmeaza diverse trasee în retea, ordinea sosirii lor la destinatar poate fi diferita fata de cea de la emisie. În cadrul acestei categorii de servicii distingem:
Servicii de tip datagrama (nefiabila) [(unreliable) datagram], pentru trimiterea unui singur mesaj, cu o mare probabilitate de a ajunge la destinatie, dar fara garantarea acestui fapt cu ajutorul mesajelor de confirmare (cazul postei electronice [electronic mail (E-mail / email)]).
" Servicii fiabile, în doua variante:
datagrama cu confirmare [acknowledged datagram] (ca în cazul postei electronice recomandate [registered E-mail]);
cerere-raspuns [request-reply] , în cadrul caruia expeditorul transmite o singura datagrama continând o solicitare sau o interogatie si asteapta un raspuns - care constituie si o confirmare a bunei receptii (cazul apelarii unei baze de date).
Serviciile pe care un nivel le poate oferi celui superior sunt invocate prin (operatii) primitive [primitive] - ce reprezinta instructiuni elementare (comenzi) de interactiune între doua niveluri adiacente, prin care i se solicita serviciului sa execute o actiune sau sa raporteze despre o actiune a entitatii pereche. Dupa natura actiunii cerute serviciului, primitivele se împart în patru clase:
d cerere [request] - facuta de nivelul n + 1 (utilizatorul serviciului) catre nivelul n (furnizorul serviciului) ca acesta din urma sa execute o actiune (de exemplu, sa stabileasca o conexiune sau sa transmita informatii);
e indicatie [indication] - trimisa de nivelul n al entitatii adresate catre nivelul n + 1 al ei, prin care se semnaleaza efectuarea unei actiuni de catre entitatea pereche, initiatoare a serviciului (de exemplu, entitatea cu care dorim stabilirea conexiunii este informata despre cererea noastra de conexiune);
f raspuns [response] - venit de la entitatea (omoloaga) adresata, aflata la nivelul n + 1, în urma unei actiuni adresate ei si care (pentru protocoalele care prevad acest lucru) trebuie sa fie comunicat - prin intermediul protocolului de la nivelul n - nivelului n + 1 initiator al actiunii serviciului (de exemplu, entitatea care a fost informata despre cererea de a stabili cu ea o conexiune, ne comunica daca accepta sau refuza propunerea);
g confirmare [confirmation] - facuta de furnizorul serviciului catre utilizator, asupra situatiei serviciului cerut.
I În concluzie, un serviciu reprezinta un set de operatii primitive - vizibile - pe care un nivel ierarhic al retelei de calculatoare le poate oferi nivelului superior (beneficiarul serviciului) prin intermediul interfetei dintre aceste niveluri, fara a-l informa pe beneficiarul serviciului asupra modului de implementare a acestor operatii. Pentru realizarea serviciilor lor, entitatile omologe de la un nivel utilizeaza protocoale - care nu sunt vizibile pentru nivelul utilizator al serviciului (ba chiar pot fi schimbate, cu conditia ca sa nu se modifice serviciile oferite prin intermediul lor). Astfel, serviciile si protocoalele sunt complet decuplate în cadrul retelelor de calculatoare.
|