|
ARHITECTURA MODELULUI OSI/ISO
Modelul ISO/OSI (International Standards Organization / Open Systems Interconnection) este o arhitectura de retea pe 7 nivele care a permis standardizarea comunicatiei in retele si explozia retelelor locale, datorita faptului ca permite producatorilor sa produca produse compatibile cu ale concurentei ascunzind in acelasi timp inovatiile proprii. Modelul are la baza 5 principii:
-un nivel trebuie introdus acolo unde este necesar un grad de abstractizare superior.
-fiecare nivel de abstractizare trebuie sa indeplineasca un set bine definit de functii.
-functiile fiecarui nivel trebuie sa respecte indicatiile de standardizare internationale.
-un nivel trebuie ales astfel incit sa minimizeze fluxul de date intre nivele.
-nivele trebuie sa fie suficient de mari pentru a cuprinde functiile ce fac prelucrari similare si suficient de mici astfel incit sa nu devina o arhitectura greoaie.
Acest model nu este o arhitectura de retea pentru ca nu descrie toate serviciile si protocoalele folosite de catre fiecare nivel, doar spune cam cum ar trebui sa fie. Cele 7 nivele sint in ordine de sus in jos :
-nivelul APLICATIE.
-nivelul PREZENTARE.
-nivelul SESIUNE.
-nivelul TRANSPORT.
-nivelul RETEA.
-nivelul PRELUCRARE DATE.
-nivelul FIZIC.
Nivelul FIZIC se ocupa cu transmiterea fizica a bitilor in retea. Standardul se ocupa cu nivelul electric al semnalului in cablul de legatura cu caracteristicile electrice si magnetice ale cablului de legatura si ale elementelor de conectare si instalare a retelei. Nivelul PRELUCRARII de DATE are rolul de a imparti fluxul de date in blocuri si verifica daca blocurile au ajuns corect la destinatar, iar destinatarul verifica tot la acest nivel daca datele au ajuns corect astfel incit nivele superioare sa nu se ocupe de integritatea datelor, doar de interpretarea lor indiferent de problemele de transmisie care apar datorita mediului de transmisie. Nivelul fizic nu se ocupa de date ci de biti. Din aceasta cauza acest nivel trebuie sa sesizeze ca un pachet a ajuns cu erori si sa ceara retransmiterea sa nivelului de prelucrare de date partener. Aceasta va duce si la o disparitie a sesizarii diferentelor de viteza intre calculatoare partenere la nivele suoerioare.
Nivelul de RETEA se ocupa cu acelasi lucru ca si nivelul anterior doar ca pentru comunicarea intre retele. Adica se ocupa de transmisia pachetelor intre diferite retele punind la inceputul fiecarui pachet informatii de control si bineinteles de adresare. Tot acest nivel se ocupa si cu routarea pachetelor intre retele diferite si de viteze oarecare.
Nivelul de TRANSPORT primeste datele de la nivelul de SESIUNE le imparte in pachete de dimensiuni acceptate de nivele inferioare si gestioneaza transmiterea si refacerea lor la destinatar. Diferenta intre nivele urmatoare si cele anterioare(inferioare) este ca cele inferioare asigurau un dialog doar intre nivele echivalente de pe calculatoare vecine, nivelele superioare vor realiza legaturi directe intre nivele echivalente chiar daca legatura se realizeaza intre calculatoare de pe retele diferite. Acest nivel va fi cel care va determina tipurile de servicii oferite nivelului de sesiune si implicit utilizatorului. Exista doua tipuri de servicii oferite unul punct-la-punct(orienttat conexiune), in care mesajele ajung la utilizator in ordinea transmiterii lor si un serviciu orientat pachet) in care nu se garanteaza ordinea sosirii mesajelor. Totodata acest nivel va realiza si gestiona, pentru o legatura cu trafic mare de date, o multiplexare a mai multor legaturi fizice pentru a mari viteza de transfer.
Nivelul de SESIUNE va gestiona legaturile in timp real ale utilizatorilor in care se pot realiza conferinte, transferuri de fisiere etc.
Nivelul de PREZENTARE se va ocupa cu acceptarea corectitudinii mesajelor din punct de vedere semantic si sintactic. Este util acest serviciu atunci cind se face legatura intre calculatoare ce folosesc diferite coduri de reprezentare a datelor(de ex. ASCII si EBCDIC).
Nivelul de APLICATIE ofera servicii de nivel inalt, de exemplu gestionarea afisarii intr-o retea cu terminale de diferite tipuri realizind o retea de terminale virtuale. Un alt serviciu este conversia datelor la transferul de fisiere intre calculatoare cu o reprezentare diferita a datelor si caracterelor de control, sau e-mail etc.
Standardul prevede ca la transmisia datelor toate nivele, in afara de cel fizic, isi vor pune un header cu octeti de control si nivelul de prelucrare va pune si la sfirsit octeti de control pentru verificarea integritatii pachettelor etc.
Serviciile oferite de orice nivel nivelului imediat superior se pot imparti in doua tipuri cu comutare de pachete si cu comutare de circuite. Comutarea de circuite are ca model serviciul telefonic in care odata stabilita o conexiune aceasta va lua sfirsit in momentul in care legatura va lua sfirsit. Acest serviciu va garanta intotdeauna ordinea pachetelor de date. Comutarea de pachete are ca model serviciul postal in care fiecare bloc de date are un header cu adresa completa a destinatarului si o traiectorie independenta de a celorlalte pachete cu aceeasi destinatie, astfel pachetele vor ajunge intr-o ordine data de traiectorie si nu de emisie. Alegerea intre aceste doua tipuri de servicii se face in functie de cerintele sistemului care le foloseste. Serviciul orientat conexiune va avea o intirziere fata de celalalt in care va deschide canalul de comunicatie, dar garanteaza ordinea de sosire a datelor.
2. Nivelul fizic
Standardul IEEE 802. 3 prevede pentru acest nivel 2 tipuri de cablu cu care poate fi realizata reteaua cablu 'gros', este un cablu dublu ecranat cu 10cm diametru si cablul 'subtire' care este un cablu coaxial de 50ohm. Reteaua de cablu gros foloseste conectori vampiri, conectori care nu necesita taierea cablului doar se infig in cablu iar pentru cablul subtire se folosesc conectori BNC. Standardul prevede ca lungimea maxima a unui segment este de 500m pentru reteaua de ca-blu gros si de 185 m pentru cablu subtire pentru extindere se pot pune repetoare dar doua tranceivere nu pot fi despartite de mai mult de 4 repetoare. Un repetor este un dispozitiv al nivelului fizic care amplifica semnalele transmise intr-un segment in celalat segment fara a testa daca este nevoie de aceasta(pachetele pot fi adresate unui calculator din acelasi segment )astfel ca reteaua functioneaza ca si cind repetoarele nu ar exista.
Pentru transmisie se foloseste codarea Manchester diferential ceea ce face posibila sincronizarea recetorului la inceputul primirii unui pachet, nivelul semnalului in cablu este +/-0, 85V neexistind tensiune continua in cablu.
O configuratie tipica este urmatoarea:cablu gros, tranceiver legat la placa de retea cu cablu de tranceiver, placa de retea care este in bus-ul calculatorului.
Cablul de tranceiver este un cablu torsadat care are 5 perechi de fire torsadate ecranate independent si sint folosite astfel:2 perechi pentru receptia/transmisia datelor de si dinspre tranceiver, 2 perechi pentru semnale de control in ambele directii iar a cincea pereche este optionala pentru alimentare din calculator. Tranceiverul se ocupa de semnalul din cablul retelei iar interfata in care ajunge cablul de tranceiver, placa de retea, se ocupa cu prelucrarea pachetelor de date si comunicatia cu unitatea centrala deci cu aplicatia de pe nivelul urmator.
Nivelul fizic intr-o retea ETHERNET
Principala componenta a acestui nivel este constituita din placa de retea care se ocupa cu transferul datelor din memorie pe cablul de retea si invers facind in acelasi timp un control pe cablu pentru a detecta eventualele coliziuni care pot apare si testarea sumei de control a pachetului receptionat.
Putem imparti o placa de retea in doua mari componente o parte care se ocupa de traficul pe cablul de retea si pe care o vom numi tranceiver si o parte care asigura interfata cu bus-ul calculatorului si care este interfata cu calculatorul.
Tranceiverul primeste de la interfata, pe cablu torsadat in cazul retelei pe cablu gros si direct prin trasee aflindu-se pe aceeasi placa in cazul retelei pe cablu subtire, pachetele de date codate pe care le amplifica si verifica daca apar sau nu coliziuni pe cablu in timpul transmisiei conform CSMA/CD. CSMA/CD este un protocol de transmisie al nivelului legaturii de date implementat aici pentru a asigura o viteza mai mare de rejectare a pachetelor incomlete. Amplificarea semnalului trebuie sa fie suficient de puternica astfel incit chiar si in cel mai defavorabil caz cind avem un segment intreg (500m) ocupat (100 de statii) toate statiile sa primeasca un semnal suficient de puternic si in acelasi timp sa nu fie atit de puternic incit statiile apropiate sa sesizeze ca a aparut o coliziune, se considera coliziune cind nivelul semnalului in cablu depaseste o referinta care este reglabila cu componente externe. O alta problema a tranceiverelor este impedanta pe care o prezinta conectorului si care daca depaseste limitele standardului va afecta forma semnalului si deci vor apare receptie eronate putindu-se ajunge la deteriorarea intregului trafic pe retea.
Interfata este realizata si ea ca si tranceiverul pe un singur chip care are nevoie de un nr. foarte mic de componente suplimentare pentru a completa interfata. De ex. interfata firmei AMD 7990 are integrat comtroller-ul de bus pentru calculatoare IBM PC, codorul-decodorul Manchester, logica si memoria necesara controlului CRC necesitind suplimentar un PAL de adaptare in cazul unei alte CPU
decit compatibil 8086 si un amplificator de interfata seriala in cazul in care se foloseste cablu de tranceiver. Acest chip va realiza deci codarea si adaugarea preambulului de sincronizare si a codului de verificare a CRC la pachetul de date MAC care il primeste din memorie. La receptie va transfera in memorie pachetul pe care il primeste fara preambul dar cu cei 4 octeti de verificare a CRC. AMD 7990 realizeaza o testare a CRC pe masura ce pachetul soseste astfel ca la sfirsit va semnala daca este nevoie faptul ca pachetul are CRC eronat, aceasta functie a nivelului de date este implementata aici pentru a micsora timpul de lucru asupra unui pachet care oricum este eronat. Totusi renuntarea la pachete nu se face la acest nivel decit in cazul in care pachetul este mai mic de 64 de octeti(acesta apare doar in cazul unei coliziuni). Restul erorilor sint raportate astfel incit sa se poata renunta la pachetele incomplete sau sa se retransmita cele afectate de coliziune. Aceasta se face si datorita faptului ca memoria interna a chip-ului este destul de mica el lucrind prin DMA cu memoria RAM prin care si dialogheaza cu CPU, rezultatul este ca mare parte a pachetelor este deja in memorie cind se constata o eroare a CRC sau o coliziune. O facilitate a lui AMD 7990 este un reflectometru care poate detecta locul unde este defect cablul de legatura.
Comunicarea intre interfata si tranceiver este interactiva astfel tranceiver-ul asculta permanent cablul de legatura si semnaleaza receptia si incepe sa transmita datele catre interfata aceasta calculeaza CRC daca in acest timp tra-nceiver-ul raporteaza o coliziune interfata va ignora restul pachetului si va transmite mai departe eroare de coliziune altfel in momentul cind s-a umplut buffer-ul cere accesul la bus si depune acest bloc in memorie incepind cu locatia care i-a fost comunicata anterior. Daca la sfirsit va constata eroare de CRC va raporta aceasta eroare. La transmisie primeste pachetul MAC si incepe transmisia, in cazul in care tranceive-rul nu raporteaza receptie, cu semnalul de sincronizare continuind cu restul mesajului. Daca apare o coliziune inainte de a termina transmisia primilor 64 de octeti atunci chip-ul va repeta trnsmisia conform algoritmului nivelului MAC dupa un timp aleator calculat conform algoritmului cu sloturi binare exponentiale trunchiate. Va incerca retransmisia de 15 ori a 16 oara va semnaliza eroare de transmisie si va trece la trimiterea urmatorului mesaj. Daca eroarea apare dupa transmisia primilor 64 de octeti va semnaliza eroarea fara a incerca retransmisia.
3. Subnivelul MAC al nivelului legaturii de date
Acest subnivel are urmatoarea forma a o pachetului:
Dupa cum se observa frame-ul contine adresa destinatarului a expeditorului lungimea cimpului de date si cimpul de date care este de fapt pachetul sosit de la nivelul anterior. Restul cimpurilor am vazut ca desi fac parte din acest nivel in sensul ca aici ar trebui adaugate pachetului de fapt sint adaugate mai jos de placa de retea. Standardul prevede doua mecanisme de adresare cu 2 octeti sau cu 6 octeti. Cel mai semnificativ bit al adresei da felul adresei de grup daca este 1 si individuala daca e 0. La transmisia unui mesaj catre un grup toti membrii grupului vor primi acel mesaj o astfel de transmisie se numeste multicast. O adresa formata doar din 1 este destinata tuturor statiilor din retea chiar si celor despartite de bridgere si se numeste broadcast.
O alta caracteristica interesanta a adresarii este aceea ca bitul 46 al doilea cel mai semnificativ bit da adrsesa locala sau globala. Ideea este ca doua retele sa nu aiba aceeasi adresa de retea pentru a permite o adresare unica ceea ce este posibil cu 46 de biti de adresa.
Cimpul de lungime a cimpului de date arata lungimea care poate fi intre 0 si 1500 de octeti. Avem totusi o lungime minima ca in momentul cind un tranceiver detecteaza o coliziune daca ar opri transmisia ar exista trnaceivere care nu ar sesiza coliziunea, astfel ca e necesara aceasta lungime minima de 64 de octeti. Daca cimpul de date este totusi mai mic de 64 de octeti cimpul PAD este folosit pentru a completa pina la lungimea minima. Un alt motiv este acela ca se evita astfel ca primul bit sa nu ajunga la destinatie cind expeditorul a terminat transmisia.
Arbitrarea accesului la cablu se face distribuit conform protocolului CSMA/CD. CSMA/CD (Carrier Sense Multiple Access/Collision Detection) este un protocol de acces la cablu astfel :daca doua statii observa ca nu transmite nimeni pe cablu vor incepe imediat sa transmita si vor sesiza in acelasi timp coliziunea moment in care isi vor incheia transmisia pachetelor. Aceasta terminare a transmisiei inainte de a termina de transmis pachetul este o imbunatatire fata de algoritmii anteriori istoric CSMA persistent si nepersistent. Modul de lucru al protocolului:
FRAME [T0 ARBITRARE INTERVAL T1] FRAME IDLE ETC
In momentul t[0] o statie a terminat de transmis si orice statie care are un pachet de transmis o va face. Daca va detecta o coliziune va astepta un timp aleator de lung dupa care va reincerca transmisia.
Algoritmul de arbitrare a accesului la cablu va tine cont in primul rind de timpul in care dupa o coliziune toate statiile o vor sesiza si vor renunta la inceputul de pachet corupt. Timpul minim este acela in care se propaga semnalul de la un capat la celalalt al retelei. Totusi acesta nu este timpul in care toate statiile vor sesiza coliziunea :sa presupunem ca distanta intre statii este de s microsecunde timpul in care statia care incepe sa transmita prima va sesiza coliziunea este de 2s secunde. Algoritmul dupa care o statie va reincerca emisia este calculat dupa un algoritm care divide timpul de asteptare in sloturi de lungime egala cu timpul cel mai lung in care toate statiile detecteza coliziunea adica 2s pentru o retea de cablu gros s este 512 bits sau 51, 2 microsecunde(cei 64 de octeti). Algoritmul este urmatorul dupa n coliziuni statia va astepta un numar aleator de sloturi de timp intre 0 si 2 la puterea n minus 1. daca n este mai mic de 10. Peste 10 coliziuni nr. de sloturi ramine constant 1023 pina la a 16-a coliziune cind se abandoneaza cu raportarea erorii.