ATM-ul "luat la bani marunti"Ideea de baza a protocolului ATM este ca informatia sa se transmita in pachete mici, de lungime fixa, numite celule. O celula ATM are 53 octeti din care 5 octeti sunt rezervati pentru header iar 48 reprezinta datele efective. Nu intamplator, in proiectarea ATM-ului, s-a ales o lungime fixa pentru celule: aceasta permite o procesare rapida a celulelor, operatie realizata hardware. Headerul celulei ATM este impartit in mai multe campuri, avind functia principala de a identifica conexiunea si a dirija celula de la emitator catre destinatie. Sunt 2 tipuri de headere:
Comutatoare ATM Asa cum am vazut si mai sus, legaturile ATM pot fi de 2 feluri: intre un calculator si un comutator sau intre 2 comutatoare ATM. Din acest punct de vedere, legaturile ATM pot fi considerate de tip punct-la-punct (spre deosebire de LAN-uri, care au pachete provenite de la mai multi receptori si emitatori pe un singur cablu). Fiecare legatura punct-la-punct este unidirectionala. Pentru a obtine o transmisie full duplex sunt necesare 2 legaturi paralele (cite una pentru fiecare sens). Modelul generic al unui comutator ATM poate fi asimilat cu o cutie neagra, cu un numar de linii de intrare si un numar de linii de iesire. In marea majoritate a cazurilor numarul de linii de iesire este egal cu cel al liniilor de intrare, legaturile stabilite fiind bidirectionale. Comutatoarele ATM trebuie sa indeplineasca, in principal, urmatoarele 2 functii:
O alta solutie pentru rezolvarea problemei este utilizarea unor cozi de asteptare pentru fiecare linie de intrare. Atunci cind doua sau mai multe celule sunt in conflict cu privire la linia de iesire, doar una din ele va fi transmisa, restul fiind pastrate pentru urmatorul ciclu. Alegerea celulei care va fi transmisa prima, poate fi facuta aleator sau dupa un anumit criteriu avindu-se in vedere ca nu trebuie sa se favorizeze in mod sistematic o anumita linie, in detrimentul celorlalte. Practic, exista 2 modalitati de implementare a cozilor de asteptare. In figurile de mai jos am schitat un posibil scenariu de rezolvare a unui conflict. In interiorul celulelor este trecut un numar care arata linia de destinatie a celulei. Numerotarea liniilor (atit de intrare cit si de iesire) incepe cu 0, de sus in jos. Observam ca pe liniile de intrare 0 si 2 sosesc celule destinate liniei de iesire 2. Sa alegem ca celula de transmis in primul ciclu, celula de pe linia 0.
Nivelul legatura de date la ATM Pentru protocolul ATM, functionalitatea nivelului legatura de date (asa cum este definit el in cadrul modelului ISO-OSI - vezi articolul "Retele" din ER - nr. 19 din decembrie 2000) este indeplinita de subnivelul TC al nivelului fizic (vezi articolul precedent din ER). Ca si in cazul altor protocoale, cind un program de aplicatie trebuie sa trimita un mesaj in retea, mesajul va parcurge, mai intai, stiva de protocoale ATM (de sus in jos), primind antete si terminatori, fiind, tot odata, segmentat in celule. In cele din urma celulele ajung pe subnivelul TC unde li se adauga un HEC la ficare in parte. Urmeaza convertirea celulelor, astfel rezultate, intr-un sir de biti si potrivirea, acestui sir, la viteza sistemului fizic de transmisie de la baza, prin inserarea de celule OAM ca umplutura. La receptie, subnivelul TC, procedeaza invers. Ia sirul de biti, localizeaza limitele celulelor, verifica antetele (eliminind celulele cu antet necorespunzator), proceseaza celulele OAM si trimite celulele de date, in sus, spre nivelul ATM. Vom vedea mai tirziu ce sunt celulele OAM. Sa vedem, mai amanuntit, ce face subnivelul TC in cazul celor 2 subetape distincte ale unui transfer de date: transmisia si receptia. 1. Transmisia celulelor. Fiecare celula contine un antet de 5 octeti. Ultimul octet reprezinta o suma de control pentru primii 4 si se obtine din restul impartirii antetului de 32 de biti la polinomul x8 + x2 + x + 1, la care se adauga constanta 01010101. Daca s-ar fi facut o verificare a datelor continute in intreaga celula, s-ar fi "obtinut" o intirziere a transmisiei si implicit o viteza de transfer mai mica. Pe de alta parte, daca nu se facea nici o verificare, aparea riscul unei transmisii cu o rata mare a erorilor. Din aceste motive s-a facut un compromis si s-a adoptat o verificare a antetului celulelor. Un alt argument in favoarea acestei alegeri il constituie faptul ca ATM a fost proiectat pentru transmisii prin fibra optica, deci un mediu foarte sigur. Mediile de transmisie se impart in 2 categorii: sincrone si asincrone. Intr-un mediu asincron celula poate fi transmisa chiar in momentul in care a fost generata. In mediul sincron celulele trebuie transmise dupa un sablon de timp predefinit. Daca, in momentul transmisiei, nu exista suficiente celule, subnivelul TC trebuie sa le "produca" singur. Aceste celule se numesc "celule libere". Un alt tip de celule, ce nu contin date utile, sunt celulele OAM (Operation And Maintenance - operare si intretinere). Acestea contin informatii de control si alte date necesare pentru a mentine sistemul in functiune. 2. Receptia celulelor. Celulele libere sunt prelucrate de subnivelul TC iar celulele OAM sunt trimise nivelului ATM. Celulele OAM se deosebesc de cele de date prin faptul ca au primii trei octeti din antet egali cu zero, ceea ce este absolut interzis pentru celulele de date. Subnivelul TC preia sirul de biti de la intrare si il descompune in celule. Aceasta operatie, de localizare a limitelor celulelor, este foarte dificila, dificultate data de faptul ca nu sunt prezenti octeti indicatori pentru a marca inceputul si sfirsitul unei celule (metoda folosita de alte protocoale). Dar sa vedem, totusi, cum se poate rezolva aceasta problema. Cea mai buna solutie este prin utilizarea HEC-ului. Subnivelul TC mentine un registru de deplasare de 40 biti (5 octeti), facand verificarea daca acestia, pot reprezenta un antet corect de celula (adica octetul 5 sa fie HEC-ul valid pentru ceilalti 4 octeti). Daca cei 40 de biti nu satisfac conditiile impuse de un antet valid, se va face "o deplasare" a tuturor bitilor, cu un bit. Astfel, printr-un capat al memoriei tampon, un bit va fi eliminat, iar prin celalalt capat, va intra altul nou, iar subnivelul TC va verifica, din nou, daca acestia pot alcatui un antet valid. Problema separarii celulelor este mult mai complexa, dar ne vom opri aici, amintind doar un caz particular care ar putea "da peste cap" algoritmii de detectare a celulelor. In cadrul informatiei utile (48 octeti) ar putea exista, la un moment dat, o grupare de 5 octeti care ar putea reprezenta un antet valid. | ||