Reteaua DQDB si standardul IEEE 802.6
Standardul IEEE 802.6, numit DQDB
(Distributed Queue Dual Bus Subnetwork of
a Metropolitan Area Network), aprobat la inceputul anilor '90, constituie
primul standard referitor la implementarea unei retele metropolitane. El se
bazeaza pe o propunere de retea metropolitana elaborata de Universitatea
Standardul precizeaza elementele subnivelului MAC, necesare functionarii unei retele de intindere medie (retea metropolitana, acoperind un domeniu cu diametrul de pana la cateva sute de kilometri), bazata la nivelul fizic pe retelele de comunicatie publice, aflate uzual in proprietatea PTT. Standardele pentru transmisia pe retelele publice de date prevad viteze de transmisie diverse, functie de mediul folosit, cele mai uzuale astazi fiind transmiterea la 2 si 10Mbps pentru cabluri bazate pe fir de cupru, iar pentru fibra optica se folosesc transmisii la viteze aproximative de 34, 45, 155Mbps, dar se prevad utilizari la rate de sute de Mbps (600Mbps). Acest standard se prezinta nu numai pentru ca este un standard 802, ci si pentru ca are multe similitudini cu cele dedicate retelelor locale prezentate, iar o subretea DQDB poate fi folosita ca trunchi de legatura intre doua sau mai multe retele locale. Obiectul standardului este prezentarea unei subretele DQDB si prezentarea modului de interconectare a mai multor subretele DQDB pentru a forma o retea metropolitana. Interconectarea subretelelor DQDB se poate face utilizand bridge multiport), un bridge cu functii suplimentare fata de bridgeurile 802.1D, prezentate de capitolul ...
Metoda de acces DQDB
Metoda de acces DQDB se bazeaza pe un algoritm de tratare a cererilor de transmisie folosind un fir de asteptare care contine cererile de transmisie ale tuturor statiilor conectate, si care este gestionat in mod distribuit (distributed queue). Algoritmul permite implementarea sistemului de prioritati pentru accesul la mediu.
Subreteaua este construita pe baza a doua magistrale (dual bus), care transporta datele in directii opuse. Statiile sunt conectate la amandoua magistralele folosind unitati de acces AU (Access Unit), unitati care realizeaza protocolul DQDB.
Nodurile de la capetele magistralelor se numesc noduri terminale (head nodes), avand functiile suplimentare de generare a fluxului de sloturi purtatoare de date (start of data flow), respectiv de terminare a fluxului, de scoatere de pe bus a sloturilor (end of data flow). Nodurile terminale sunt stabilite si initializate de catre unitatea soft a protocolului DQDB pentru gestionarea nodurilor, si se realizeaza prin schimb de pachete speciale, numite LME (Layer Management Entities)
Topologiile permise de standard sunt:
n topologie de magistrala deschisa (open bus), formata dintr-o pereche de magistrale separate intre ele; topologia prezinta inconvenientul ca in cazul unui defect, nu il pot izola
n topologie cu magistrale in bucla (looped bus), pentru care nodurile terminale realizeaza conectarea magistralelor intr-o structura de dublu inel; topologia permite izolarea caderilor (defectelor) de legaturi sau statii pe magistrale, prin faptul ca statiile de la extremitatile legaturii cazute, sau vecine ale statiei defecte, se reconfigureaza ca statii terminale si astfel se revine la o structura de magistrala deschisa, segmentul sau nodul defect fiind scos din structura.
Conectarea fiecarei statii la cele doua magistrale de face prin unitatile de acces AU, folosindu-se linii separate pentru citirea datelor si scrierea lor. Conexiunea de citire este situata fizic pe bus inaintea celei de scriere (in sensul fluxului de date), pentru ca o statie sa poata copia fluxul de biti din retea, eventual sa-l modifice si apoi sa-l transmita inapoi pe magistrala.
Reteaua DQDB este proiectata sa ofere diferite tipuri de servicii pentru transferul datelor, precum:
n
servici de transport izocron, pentru transportul
informatiilor in mod sincron si la o viteza
n servici neconex (nebazat pe conexiune) la nivel MAC, in care datele transmise nu sunt achitate si pot avea lungimi diferite
n servici sigur, cu achitarea datelor (bazat pe conexiune)
Unitatea de transport a informatiilor la nivelul MAC al protocolului DQDB este slotul (felia de timp), a carui structura este ilustrata. Sloturile sunt generate de nodurile terminale de inceput de magistrala (start of data flow), fiind utilizate de fiecare unitate de acces AU. Practic, statia de inceput a magistralei genereaza cadre de timp (trames) la fiecare 125ms. Cadrul de timp contine un numar de celule (sloturi), numar ce depinde de viteza de transmisie in mediul fizic folosit (de exemplu un cadru de timp poseda 40 sloturi (celule de timp) pentru viteza de 150Mbps). Sincronizarea statiilor intr-o retea DQDB se face numai pe baza temporizarii asociate sloturilor.
Utilizarea sloturilor de fiecare statie conectata la magistrala este conditionata de algoritmul de gestionare, care poate fi:
n cu pre-arbitrare PA (Pre-Arbitrated), daca se ofera servicii izocrone; in acest caz, sloturile (notate PA_slot) sunt initializate la generarea lor cu adresele acelor AU care trebuie sa transmita
n cu arbitrare in firul de asteptare QA (Queue-Arbitrated), ce permite ca slotul (notat QA_slot) sa fie folosit de oricare AU, dupa algoritmul de gestionare a cozii de asteptare a cererilor de la statii.
Structura slotului este urmatoarea:
Octeti 1 52
ACF |
Segment |
Un slot DQDB are lungimea fixa de 53 de octeti, precum si o structura ce confera implementarea simpla a protocolului in retelele bazate ATM (5 octeti de control si 48 pentru datele propriu-zise).
Un slot poate fi de tip pre-arbitrat, PA_slot, sau de tip QA_slot, cu arbitrare in coada de cereri de acces.
Campul de control al accesului ACF (Accesss Control Field) este de 8 biti, avand urmatoarea structura:
Biti 1 1 1 2 3
Busy |
Slot_type |
PSR |
Reserv. |
Priority_req |
Primii doi biti, numiti 'Busy' si 'Slot_type', codifica modul de acces la slot, fiind posibile urmatoarele situatii:
Busy |
Slot_type |
Semnificatie |
0 |
0 |
Slot QA fara date (empty) |
0 |
1 |
Rezervat |
1 |
0 |
Slot QA ocupat (busy) |
1 |
1 |
Slot PA |
Bitul PSR (Previous Slot Reserved) indica daca segmentul slotului precedent poate sau nu sa fie disponibilizat.
Ultimii trei biti, formeaza campul numit 'Priority_req'; ei corespund fiecare la cate un nivel de prioritate. Bitul corespunzator unei cereri de transmisie de o anumita prioritate ve fi setat la '1', cand se solicita o transmisie cu folosirea unui QA_slot.
Campul 'Segment' este la randul sau format din doua subcampuri:
- subcampul antet, numit 'Segment Header', cu lungime de patru octeti, cu rol de control, avand urmatoarea structura:
VCI |
Tip payload |
Prioritate segment |
HCS |
Biti 20 2 2 8
Subcampul
VCI (Virtual Channel Identifier)
identifica canalul virtual pe care se transmite segmentul de date, pentru un
serviciu bazat pe conexiune. Acest
Subcampul 'Tip payload' si subcampul 'Prioritate segment' sunt actualmente setate la valoarea '0', fiind rezervate pentru aplicatii viitoare cu folosire de bridge multiport (un bridge multiport poate conecta trei sau mai multe retele).
Subcampul HCS (Header Check Sequence) este folosit pentru detectarea erorilor de un bit asupra antetului, folosind polinom CRC de grad 8.
- subcampul de date propriu-zis, numit 'Segment Payload', cu o lungime de 48 de octeti. Daca segmentul este a unui slot de tip PA, octetii sai nu trebuie sa fie folositi neaparat de o singura statie, ci pot fi folositi in comun de mai multe statii ce ofera servicii izocrone; in acest caz fiecare statie va procesa, prin scriere sau citire, unul sau mai multi octeti alocati.
Algoritmul de acces la mediu cu arbitrarea cozii de asteptare
Metoda de acces la mediu cu arbitrarea cozii de asteptare QA (Queue Arbitration) ofera un algoritm de acces determinist, eficient si echitabil. El se bazeaza pe utilizarea a doi biti, 'Busy' si 'Slot_type', cu ajutorul carora verifica disponibilitatea slotului si deasemenea foloseste subcampul de trei biti 'Priority_req' pentru a solicita un acces la magistrala, la un anumit nivel de prioritate.
Se prezinta o parte a a unei retele DQDB, avand doua magistrale, notate 'Bus A' si 'Bus B', la care se conecteaza, prin intermediul unitatilor de acces AU, nodurile (statiile) X, Y si Z.
Fiecare nod contine lista statiilor care pot fi accesate folosind o magistrala si lista celor la care poate transmite folosind cealalta magistrala. Aceste liste se elaboreaza si actualizeaza in faza de initializare, folosindu-se o tehnica de gestionare a lor asemanatoare cu cea prezentata in capitolul, referitor la interconectarea prin bridges.
In momentul cand o statie doreste sa transmita, pe baza adresei statiei destinatie, statia emitatoare stabileste pentru acea transmisie ca una dintre magistrale devine magistrala cea care inainteaza pachetul, magistrala 'inainte' (forward bus), iar cealalta devine magistrala de sens invers, magistrala 'inapoi' (reverse bus).
Pentru exemplul considerat, fie situatia in care statia X doreste sa transmita catre statia Z. Pentru aceasta transmisie, magistrala 'Bus A' va fi magistrala 'inainte' a statiei X, iar magistrala sa 'inapoi' va fi 'Bus B'.
Nodul X, folosind linia de citire, analizeaza sloturile care circula pe magistrala 'Bus A' pentru a detecta care slot este disponibil. Nodul nu utilizeaza primul slot liber detectat, pentru a nu dezavantaja statiile care sunt mai departate pe magistrala fata de nodul de start. Nodul va prenota insa intentia sa de transmisie, prin setarea intr-un slot care circula pe magistrala 'inapoi', a unui bit din campul 'Priority_req', conform prioritatii pachetului de transmis. Acest pachet circula pe magistrala B spre nodul de capat al magistralei B, dar care constituie nodul de start pentru sloturile magistralei A. In acest fel se creaza o coada de asteptare cuprinzand cererile de transmisie ale nodurilor. Aceasta coada se gestioneaza in mod distribuit, in sensul ca la nivelul fiecarei statii (mai precis la nivelul unitatii de atasare, unde se implementeaza algoritmul), vor exista doua contoare, pe baza carora statia va determina cand va avea dreptul sa transmita, adica cand sa insereze informatia in primul slot liber de pe magistrala sa 'inainte'.
Algoritmul este complicat daca se utilizeaza mecanismul de prioritati, cu trei nivele de prioritate, cand trebuie gestionate mai multe cozi de asteptare, aferente fiecarui nivel, dar daca se considera o singura coada, el consta din urmatoarele elemente:
n aferent fiecarei magistrale, fiecare statie detine doua contoare, unul pentru gestionarea numarului de cereri de transmisie, numit RQ (Request Count), incrementat de statie cand depisteaza pe magistrala 'inapoi' un slot ce contine cerere de transmisie, si un contor cu decrementare CD (CountDown counter), decrementat la detectarea fiecarei treceri a unui slot liber pe magistrala 'inainte'. In acest fel fiecare statie cunoaste pozitia cererii sale in coada, atat cate cereri sunt de servit in fata cererii curente, cat si dupa ea
n cand statia are de transmis un pachet, dupa ce identifica care este magistrala 'inainte' si care cea 'inapoi', copiaza in contorul cu decrementare CD valoarea curenta aflata in contorul de cereri RQ
n reseteaza contorul RQ si incepe un nou proces de numarare a cererilor de transmisie pe magistrala 'inainte', concomitent decrementand contorul CD la fiecare trecere a unui slot liber (empty)
n cand contorul CD ajunge la valoarea zero, poate transmite. La aparitia primului slot liber pe magistrala 'inainte', il 'captureaza' prin setarea bitului 'ocupat' (busy) si transfera datele de transmis in campul 'Segment' al slotului.
Metoda de acces cu prearbitrare
Metoda de acces la mediu cu prearbitrare PA (Pre-Arbitrated) utilizeaza sloturi de tip PA_slot si este folosita in transmisiile izocrone. Fiecare slot de acest tip este generat de nodul de start si poate fi folosit de mai multe statii cu transmisii izocrone. Slotul este asignat unui canal virtual, prin completarea campului VCI (Virtual Channel Identifier) al slotului. Fiecare statie ce prevede transmisii izocrone va identifica un PA_slot si pe baza campului VCI, va citi sau va scrie informatia din octetii care ii sunt asociati.
Serviciul MAC fara conexiune
Pentru substratul MAC, desi se prevad mai multe tipuri de servicii catre substratul superior din ierarhie LLC, cel mai folosit este serviciul neorientat pe conexiune. Pentru acest serviciu, o unitate de date a serviciului MAC, notata MAC-SDU este fragmentata (segmentata) si transmisa pe reteaua DQDB, prin intermediul sloturilor.
Functia de adaptare a formatului sloturilor DQDB la formatul pachetelor altor retele 802.x este indeplinita la nivelul MAC al statiilor si ea se numeste MCF (MAC Convergence Function).
Figura ... ilustreaza procesul de segmentare a unitatii de date.
EOM_DMPDU
Initial se formeaza IMPDU (Initial MAC PDU), care cuprinde in partea de informatie pachetul MSDU.
Incepe apoi fragmentarea pachetului IMPDU in celule de cate 44 de octeti. Acestor celule li se adauga un antet DH (DMPDU Header). in lungime de 2 octeti si un camp de sfarsit DT - coada mesajului - (DMPDU Trailer), tot de doi octeti, formandu-se unitatile MAC derivate DMPDU (Derived MAC PDU), cu lungimea de 48 octeti. Aceste unitati de date MAC derivate, numite DMPDU, pot fi de trei feluri, dupa cat de lunga este informatia de transportat: BOM_DMPDU (Begin of Message DMPDU), unitate pentru inceputul mesajului de transportat, COM_DMPDU (Continuation of Message DMPDU) si EOM_DMPDU (End of Message DMPDU).
Antetul DMPDU,
n tipul segmentului, in subcampul ST (Segment Type), care codifica segment 'inceput de mesaj' - BOM, 'sfarsit de mesaj' - EOM, 'continuare a mesajului' - COM, mesaj de un singur segment - SSM
n numarul de secventa al segmentului, in subcampul SN (Segment Number)
n identificatorul de mesaj MID (Message Identifier).
Trailerul DMPDU, notat DT, codifica in cei doi octeti ai sai lungimea incarcaturii, prin campul PL (Payload Length) si suma de control CRC asociata (subcampul CRC).
Exista urmatoarele situatii, functie de lungimea mesajului:
n daca IMPDU are o lungime inferioara de 44 octeti, este necesar un singur DMPDU, care se identifica prin faptul ca in campul tipului de segment ST se seteaza valoarea corespunzatoare SSM
n daca IMPDU are o lungime mai mare decat 44 octeti dar mai mica de 88 octeti, vor exista doua DMPDU, unul de inceput BOM_DMPDU si unul de sfarsit EOM_ DMPDU
n pentru o lungime superioara de 88 octeti, pe langa cele doua tipri enumerate mai sus, vor exista un numar necesar de segmente intermediare COM_DMPDU.
Daca la transmiterea unitatii de date are loc o segmentare dupa regulile descrise, la receptie are loc reasamblarea, care se desfasoara dupa urmatoarele reguli:
n unitatea de control a accesului din statie, prin verificarea antetului IMPDU, observa pe baza adresei, daca are dreptul de a procesa acel slot, care este un BOM_DMPDU
n reasamblarea se efectueaza controland campurile 'numar de secventa' SN si 'identificator mesaj' MID, din antetul fiecarui DMPDU. Se controleaza astfel lungimea mesajului, pentru a nu exista inserari eronate, corespondenta intre antetul (header) si coada (trailer) fiecarui DMPDU pentru a nu asambla segmente din mesaje diferite, si se fac deasemenea si verificari temporale, pentru depistarea intarzierilor nepermise.
Implementarea retelelor DQDB este datorata mai mult sistemelor comerciale QPSX, folosite pentru interconectarea retelelor locale, existand realizari in legarea de LAN de tip StarLAN, 10BaseT, Token Ring sau Token Bus, precum si FDDI.
|