TOPOLOGIA RETELELOR DE CALCULATOARE Topologia De Magistrala (Bus) Intretinerea inelului logic 36779iev88kqe1y Din cand in cand, unele statii sunt pornite si vor sa se ataseze la inel. Altele sunt oprite si vor sa-l paraseasca. Protocolul subnivelului MAC furnizeaza o specificare detaliata a modului in care este realizat exact acest lucru, mentinand in acelasi timp limita cunoscuta a rotatiei jetonului in cazul cel mai favorabil. O data ce inelul a fost stabilit, interfata fiecarei statii pastreaza intern adresele statiilor predecesoare si succesoare. Periodic, detinatorul jetonului trimite unul din cadrele SOLICIT_SUCCESSOR pentru a solicita cereri de la statiile care doresc sa se alature inelului. Cadrul ofera adresa expeditorului si adresa succesorului. Doar statiile cuprinse intre aceste limite pot cere intrarea (pentru a mentine inelul sortat descrescator dupa adresele statiilor). Daca nici o statie nu cere sa intre in timpul unei cuante , fereastra de raspuns (response window) este inchisa, iar detinatorul jetonului isi continua activitatea normala. Daca o statie se ofera sa intre, ea este inserata in inel si devine succesorul detinatorului jetonului. Daca doua sau mai multe statii cer sa intre, cadrele lor se vor ciocni si vor fi distruse. Apoi detinatorul jetonului va rula un algoritm de arbitrare, incepand cu difuzarea unui cadru RESOLVE_CONTENTION (rezolvare conflict). algoritmul este o varianta a numaratorii inverse binare, folosind doi biti deodata. eq779i6388kqqe Mai mult, toate interfetele statiilor mentin intern doi biti aleatori. Acesti biti sunt utilizati pentru a intarzia toate cererile cu 0, 1, 2 sau 3 cuante, pentru a reduce conflictele. Cu alte cuvinte, doua statii intra in coliziune atunci cand fac o cerere numai daca cei doi biti de adresa curenti sunt identici si se intampla sa aiba aceiasi doi biti aleatori. Pentru a preintampina ca statiile care trebuie sa astepte 3 cuante sa fie permanent dezavantajate, biti aleatori sunt regenerati de fiecare data cand sunt folositi sau periodic la fiecare 50 msec. Solicitarea de noi statii nu poate interfera cu cazul cel mai defavorabil garantat pentru rotatia jetonului. Fiecare statie are un ceas care este resetat ori de cate ori primeste jetonul. Cand soseste jetonul, vechea valoare a acestui ceas (adica timpul de rotatie anterior al jetonului) este inspectata chiar inainte ca ceasul sa fie resetat. Daca el depaseste o anumita valoare de prag, inseamna ca in ultima vreme traficul a fost prea aglomerat, asa ca acum nu mai poate fi solicitata nici o cerere de alaturare. Oricum, numai o singura statie poate intra la fiecare solicitare, pentru a limita timpul consumat cu intretinerea inelului. Nu exista nici o garantie in privinta timpului de asteptare necesar pentru ca o statie sa se alature inelului atunci cand traficul este aglomerat, dar in practica el nu ar trebui sa fie mai mare de cateva secunde. Aceasta incertitudine este nefericita, facand 802.4 mai putin potrivit pentru sistemele de timp real. Parasirea inelului este usoara. O statie X, cu succesorul S si predecesorul P, paraseste inelul prin trimiterea catre P a unui cadru SET_SUCCESOR (stabilire succesor) care ii spune ca de acum incolo succesorul lui va fi S in loc de X. Apoi X inceteaza transmisia. Initializarea inelului este un caz special de adaugare de noi statii. Sa consideram un sistem inactiv cu toate statiile oprite. Atunci cand prima statie porneste, ea observa ca ne este trafic o anumita perioada de timp. Apoi emite un cadru CLAIM_TOKEN (cere jeton). Neauzind pe nimeni concurand pentru jeton, creeaza un jeton si initializeaza un inel care o contine numai pe ea. Periodic solicita cereri pentru ca noi statii sa se alature. Pe masura ce sunt pornite noi statii, ele vor raspunde acestor solicitari si se vor alatura inelului conform algoritmului de tratare a conflictelor descris anterior. In cele din urma, fiecare statie care vrea sa intre in inel va putea sa o faca. Daca primele doua statii sunt pornite simultan, protocolul rezolva acest lucru lasandu-le sa ceara jetonul folosind algoritmul numaratorii inverse binare standard modificat si cei doi biti aleatori. Datorita erorilor de transmisie sau a problemelor hardware, se pot ivi probleme in legatura cu inelul logic sau cu jetonul. De exemplu, ce se intampla daca o statie incearca sa transmita jetonul unei statii care a cazut ? Solutia e simpla. Dupa ce a transferat jetonul, o statie asculta sa vada daca succesorul ei transmite un cadru sau transfera jetonul. Daca nu face nici una, nici alta, jetonul este transferat a doua oara. Daca nici de data asta nu se intampla nimic, statia transmite un cadru WHO_FOLLOWS (cine urmeaza), specificand adresa succesorului ei. Cand succesorul statiei cazute vede un cadru WHO_FOLLOWS indicand predecesorul ei, ea raspunde trimitand un cadru SET_SUCCESOR catre statia al carei succesor a cazut, numindu-se pe sine ca nou succesor. In acest fel statia cazuta este eliminata din inel. Sa presupunem ca o statie nu reuseste sa transfere jetonul succesorului ei si nici sa localizeze succesorul succesorului ei, care poate fi de asemenea cazut. Atunci adopta o noua strategie, trimitand un cadru SOLICIT_SUCCESOR_2 pentru a vedea daca mai este “cineva viu”. Protocolul standard de tratare a conflictelor este rulat inca o data, cu toate statiile care vor sa intre in inel concurand pentru un loc. In cele din urma, inelul este refacut. Un alt tip de problema apare daca detinatorul jetonului cade si, odata cu el, dispare si jetonul. Aceasta problema este rezolvata folosind algoritmul de initializare a inelului. Fiecare statie are un ceas care de fiecare data este initializat ori de cate ori in retea pare un cadru. Cand acest ceas atinge o valoare de prag, statia emite un cadru CLAIM_TOKEN si algoritmul numaratorii inverse binare modificat, cu biti aleatorii, determina cine primeste jetonul. O alta problema o reprezinta jetoanele multiple. Daca o statie detinatoare de jeton sesizeaza o transmisie de la o alta statie, ea renunta la propriul jeton. Daca au fost doua, acum va fi unul. Daca au fost mai mult de doua acest proces se va repeta mai devreme sau mai tarziu, pana cand va ramane unul singur. Daca, accidental, sunt eliminate toate jetoanele, atunci lipsa activitatii va determina una sau mai multe statii sa incerce obtinerea unui jeton. Topologia de magistrala este una dintre cele mai des folosite topologii de retea. Avantajele sunt : nu necesita atat de mult cablu ca topologia de stea si fiecare calculator necesita doar conexiune la un cablu; o defectiune a cablului ( o rupere a cablului sau defectarea unui calculator) nu duce la oprirea intregii retele. Dezavanajul este ca toate calculatoarele folosesc acelasi cablu (trebuie sa lupte pentru a castiga accesul). Topologia De Inel (Ring) Intretinerea inelului Protocolul token ring realizeaza intretinerea destul de diferit. Fiecare statie token ring are o statie monitor (monitor station) care supravegheaza inelul. Daca monitorul cade, un protocol de tratare a conflictelor asigura ca o alta statie este aleasa rapid ca monitor (fiecare statie are capacitatea de a deveni monitor). Cat timp monitorul functioneaza corect, numai el este responsabil de functionarea corecta a inelului. La crearea inelului sau atunci cand o statie observa ca nu mai exista monitor, ea poate transmite un cadru de control CLAIM_TOKEN (cere jeton). Daca acest cadru inconjoara inelul inainte ca sa fie transmis un alt cadru CLAIM_TOKEN, emitatorul devine noul monitor. Cadrele de control al token ring-ului sunt prezentate in figura de mai sus. Printre responsabilitatile monitorului se afla aceea de a observa daca jetonul nu s-a pierdut, dar si preluarea initiativei atunci cand inelul se intrerupe, curatarea inelului atunci cand apar cadre deteriorate si supravegherea cadrelor orfane. un cadru orfan apare atunci cand o statie transmite in intregime un cadru scurt intr-un inel mare si apoi cade sau este oprita inainte de absorbtia cadrului. Daca nu se face nimic, cadrul va circula la infinit. Pentru a detecta jetoanele pierdute, monitorul are un ceas care este setat la cel mai lung interval de timp, posibil fara jeton: cel in care fiecare statie transmite pe intregul interval de detinere al jetonului. La expirarea intervalului de timp, monitorul goleste inelul si emite un nou jeton. La aparitia unui cadru deteriorat, monitorul il detecteaza datorita formatului sau incorect sau a sumei de control, deschide inelul pentru a-l goli si emite un nou jeton atunci cand inelul a fost curatat. In final, monitorul detecteaza cadrele orfane setand bitul monitor din octetul de Control al accesului ori de cate ori trece pe la el. Daca un cadru sosit are acest bit setat, inseamna ca ceva este in neregula, intrucat acelasi cadru a trecut pe la monitor de doua ori fara sa fie absorbit, asa ca monitorul il va absorbi. O ultima functie a monitorului vizeaza lungimea inelului. Jetonul are o lungime de 24 de biti, ceea ce inseamna ca inelul trebuie sa fie destul de mare pentru a cuprinde 24 de biti. Daca intarzierile de 1 bit din statii plus lungimea cablului adunate dau mai putin de 24 de biti, monitorul insereaza biti suplimentari de intarziere pentru ca jetonul sa poata circula. O functie de intretinere care nu poate fi realizata de monitor este localizarea intreruperilor in inel. Daca o statie observa ca unul din vecinii sai este mort, trimite un cadru BEACON (baliza), dand adresa presupusei statii moarte. Cand acest cadru s-a propagat cat de departe a putut, se poate vedea cate statii sunt oprite si acestea sunt eliminate din inel, utilizand releele de ocolire din centrul de cablaj, totul realizandu-se fara interventia operatorului. Comitetul 802.4 a fost speriat de moarte de ideea de a avea vreo componenta centralizata care ar pute cadea pe neasteptate si prabusi si sistemul o data cu ea. De aceea ei au proiectat un sistem in care detinatorul curent al jetonului are puteri speciale (de exemplu, solicitarea cererilor de alaturare la inel), dar in care nici o statie nu e diferita in vreun fel de celelalte ( de exemplu, responsabilitatea administrativa atribuita curent pentru intretinere). Pe de alta parte, comitetul 802.5 a simtit ca avand un monitor central se pot trata mult mai usor jetoanele pierdute, cadrele orfane si asa mai departe. In plus, intr-un sistem normal, statiile cedeaza foarte rar, asa ca suportarea ocazionala a concurentei pentru un nou monitor nu este o mare dificultate. Pretul platit este ca daca vreodata monitorul chiar a luat-o razna, dar continua sa emita periodic cadre de control ACTIVE MONITOR PRESENT (exista monitor activ), nici o statie nu-l va inlocui. Monitoarele nu pot fi puse la indoiala. Aceasta diferenta in abordari vine de la domeniile diferite de aplicatii avute in vedere de cele doua comitete. Comitetul 802.4 se gandea la fabrici mari de metal miscandu-se sub controlul calculatorului. Caderile retelei puteau provoca pagube serioase si trebuiau prevenite cu orice pret. Comitetul 802.5 era interesat in automatizarea birourilor, unde caderi rare puteau fi tolerate ca pret pentru un sistem mai simplu.
RESURSELE HARDWARE INTR-O RETEA DE CALCULATOARE
Componente De Legatura Intre Retele De Calculatore Pe parcursul timpului s-a facut resimtita o nevoie tot mai mare de interconectare a LAN-urilor, atat local cat si la distanta. Aceasta conectivitate poate fi extinsa cu ajutorul repertoarelor, bridge-urilor, router-elor si a gateway-urilor. Repertoare. Acestea sunt instrumente ce amplifica semnalele pentru a mari distanta fizica pe care poate actiona un LAN. Un repertor extinde un singur segment din LAN pentru a acomoda utilizatorii aditionali, desi anumite reperoare sunt capabile sa extinda doua LAN-uri simultan. Cele doua segmente pot utiliza uneori doua tipuri diferite de mediu fizic sau topologii diferite, desi acest lucru este mai rar intalnit. Repertoarele au trei limitari: (1) datorita amplificarii zgomotului, impreuna cu semnalul, (2) natura limitata a extensiei, (3) faptul ca reteaua ramane o singura retea la nivel logic, prin aceasta limitandu-se numarul de utilizatori ce pot fi suportati de catre mediul fizic. Bridge-uri. Bridge-urile (punti) conecteaza doua sau mai multe LAN-uri la nivel MAC (subnivel din nivelul 2 al stivei de protocoale OSI) al LAN-ului. Cele mai mari dureri de cap legate de standarde apar atunci cand trebuie conectate doua sau mai multe retele. O solutie pentru aceste situatii este utilizarea unui bridge. Acest termen descrie orice dispozitiv care conecteaza doua sisteme de comunicatie si care prelucreaza pachetele de date in functie de adresa expeditorului si a destinatarului. Un bridge ce primeste pachete de date (cadre) va “pasa” pachetele de date LAN-urilor interconectate, bazandu-se pe un algoritm de expediere (forwarding) selectat de producator (de exemplu dirijare explicita, filtrare de adrese dinamica, filtrare de adrese statica, etc). LAN-ul ce receptioneaza trebuie sa utilizeze la nivel MAC acelasi protocol ca si LAN-ul transmitator pentru a citi pachetul de date (desi exista si bridge-uri de translatare pentru cazul unor MAC-uri diferite, unii administratori utilizeaza routere pentru a indeplini aceasta functie). Retele de vin din ce in ce mai complexe iar bridge-urile ofera administratorului de retea posibilitatea de a diviza reteaua in segmente logice mai mici pentru a o face mai usor de administrat. Spre deosebire de repertoare, bridge-urile refac electric semnalele astfel incat zgomotul nu se propaga mai departe in retea. Un bridge uneste cele doua retele legate la el astfel incat ele par a fi o singura retea. Deci, daca numerele 3 si 8 sunt servere, atunci cand calculatorul numarul 1 (un client) face acces la unul din ele, nu conteaza ca ele se afla pe retele diferite. Sistemul bridge copiaza toate mesajele de pe interfata de retea numarul 1 pe interfata numarul 2, chiar daca sursa si destinatarul se afla pe aceeasi parte a lui. De asemenea, el nu da atentie continutului mesajelor. Bridge-urile ce fac legatura segment-la-segment sunt relativ des intalnite. Segmentele legate in cascade multiple sunt de asemenea posibile. Totusi, traficul destinat pentru un nod aflat la distanta trebuie sa treaca prin mai multe bridge-uri, cauzand o posibila degradare a calitatii serviciului (intarzieri si pierderi de cadre). Bridge-urile multiport permit mai multor LAN-uri sa partajeze unul si acelasi bridge. Echipamentele comunica unul cu altul prin bus-ul intern al bridge-ului. Resursele partajate si administrarea mai buna a retelei pot reduce costul per port al bridge-ului. O alta problema este conectarea a doua retele ce folosesc diferite tipuri de cabluri. Aceasta problema este usor de rezolvat. Ethernet, de exemplu, poate folosi diverse tipuri de cabluri si poate fi conectata la diverse alte tipuri de retele. Avem totusi o problema daca vrem sa interconectam retele care folosesc diverse tipuri de cablu. Un calculator cu interfete pentru fiecare retea si cu un program care realizeaza functia de bridge, poate realiza aceasta problema. Bridge este format din intregul sistem : calculator, soft si interfete de retea. Softul de bridge preia mesajele de la o conexiune si le transfera la cealalta. ( figura 3-4) Sistemele bridge mai fac de asemenea o filtrare. Daca un bridge ar transfera toate pachetele pe care le primeste, atunci fiecare retea ar avea pe langa traficul ei si intregul trafic de pe cealalta parte a bridge-ului. Dar nu exista nici un motiv ca un pachet care are ca destinatar un calculator de pe aceeasi retea sa traverseze sistemul bridge in cealalta retea. Aceasta ar adauga doar un trafic suplimentar celeilalte retele. Pentru a evita aceasta, sistemele bridge realizeaza filtrarea. Ele pot fi configurate pentru a sti ce adrese se afla de o parte a lui si ce adrese se afla de cealalta parte sau ele pot invata singure, prin simpla urmarire a traficului pachetelor. Bridge-ul poate fi foarte rapid, deoarece face foarte putine prelucrari asupra pachetelor. Principala calitate a software-ului de bridge este ca el nu schimba continutul mesajului, pentru ca ele nu intelege nimic din “limba” in care este scris mesajul. Pe parcursul timpului s-au adaugat tot mai multe facilitati bridge-urilor. Aceste imbunatatiri include o tabela de adresare mai mare, o filtrare de cadru complexa, un debit de informatie marit, echilibrarea incarcarii, o diversitate mai mare de inferente, redundanta si suport pentru capabilitati de administrare retea (incluzand protocoale standard). Mai multi producatori adauga de asemenea diferite nivele de dirijare (aceste echipamente sunt cunoscute sub numele de brouter-e), ce permit utilizatorilor sa dispuna bridge-uri pentru a interconecta 2 sau mai multe LAN-uri si mai tarziu sa invoce facilitati de router odata ce sunt adaugate noi protocoale retelei. Suportul de dirijare este utilizat pentru protocoale de inter-retea corespunzatoare nivelelor de sus (mai sus de cel de date), ca si pentru alte standarde internationale. Bridge-urile “transparente” ( ce nu cer utilizatorului sa specifice calea catre destinatie) utilizate in Ethernet, trebuie sa mentina o tabela de adresare. Pana in 1990, aceste tabele erau capabile sa memoreze intre 2000 si 5000 de intrari. Bridge-urile mai noi pot stoca pana la 60.000 de intrari. Prin contrast, bridge-urile “sursa” utilizate in LAN-uri de tip token-ring, cer ca statiile ce transmit sa asigure informatii asupra modului de a ajunge la destinatie a datelor transmise. Tabela de adresare a unui bridge transparent este actualizata printr-o metoda statica sau dinamica. In varianta statica, administratorul LAN specifica daca un cadru de date pentru o anumita destinatie necesita a fi dirijat la un alt LAN. In varianta dinamica, bridge-ul construieste propria tabela de adrese prin “observarea” traficului. Fiecare bridge din retea trebuie sa mentina o tabela de intrari pentru toti utilizatorii activi. Datorita limitarilor inerente ale dimensiunii tabelei, bridge-ul utilizeaza tehnici de “invechire” (aging techniques) pentru a elimina intrarile din tabela ce nu au avut trafic de o anumita perioada de timp. Daca un cadru soseste la un bridge avand o destinatie ce nu se afla in tabela, este utilizata o tehnica de “inundare” (flooding technique). Acest lucru are insa un impact negativ asupra performantelor generale ale bridge-ului. Prin urmare este in general recomandabila o tabela de adresare mai mare. Filtrarea cadrelor si rata (debitul) de retransmisie (forwarding) a cadrelor, poate varia intre cateva mii de cadre pe secunda, la cateva zeci de mii pentru gama medie de bridge-uri si pana la cateva sute de mii pentru bridge-urile din gama de mare performanta. Bridge-urile ce suporta FDDI au patruns deja pe piata, ca si bridge-urile ce utilizeaza canale necablate (wireless) pentru interconectari bridge la bridge. Diferentele intre bridge-uri , routere si hub-uri incep sa se piarda in ultimele implementari ale acestor echipamente de interconectare. Integrarea de functii de bridge, router si hub este realizata prin incarcarea software-ului specific platformelor hardware disponibile sau prin adaugarea unui modul de bridge sau router unui hub pentru cablaje (wirinig hub). Router-e. Router-ele, care sunt echipamente de dirijare (routing) a traficului de date, realizeaza conexiuni la un nivel arhitectural superior fata de bridge-uri. Routerele asigura controlul fluxului pentru pachetele de date receptionate din LAN, prin aceasta crescand siguranta conexiunii, permitand si utilizarea unei varietati de subretele de interconectare. Diferite pachete pot, in principiu, sa fie dirijate prin retele diferite, de exemplu, pentru securitate sau din motive de cost. Un router nu numai ca poate filtra mesaje care nu necesita transferul, dar unele pot fi programate sa blocheze sau sa permita trecerea doar a mesajelor de la anumite adrese. Daca cele doua retele utilizeaza tehnologii de transport diferite (de exemplu, una utilizeaza Ethernet iar cealalta Token Ring) atunci sistemul router este brouter (este in acelasi timp si bridge si router). Un router este “destept” in sensul ca stie ce adrese apartin fiecarei retele. Aceasta inseamna ca poate filtra mesajele care nu necesita transferul pe cealalta retea. De exemplu, mesajele de la calculatorul 1 la calculatorul 7 vor fi transferate de pe reteaua A pe reteaua B, dar mesajele de la nr.1 la nr.3 nu. Routerele opereaza cu un protocol WAN specific sau cu un numar de protocoale. Daca sunt utilizate protocoale multiple pentru interconectarea LAN-urilor, un manager poate fie selecta un router separat pentru fiecare protocol, sau sa aiba un router capabil de a recunoaste mai multe protocoale. Dezavantajele router-elor , relativ la bridge-uri, includ reducerea ratei de filtrare a pachetelor. Gateway-uri (porti). Viata ar fi usoara daca toate calculatoarele ar “vorbi” aceeasi limba. Conectarea main-frame-urilor, a minicalculatoarelor, a calculatoarelor personale si a retelelor locale s-ar face instantaneu. Sistemele gateway preiau rolul de traducator. Ele se afla intre doua sisteme si convertesc cererile expeditorului in formatul care poate fi inteles de destinatar. Sistemele gateway pot conecta calculatoare personale la main-frame-uri , minicalculatoare si alte calculatoare care folosesc si alte sisteme de operare . Novell, de exemplu, ofera o gateway care traduce “limba” (sau protocolul). Aceasta permite calculatoarelor Macintosh sa poata folosi fisiere si imprimante de pe sisteme NetWare ca si cand ar fi servicii originale Macintosh. Gateway-urile sunt utilizate pentru interconectarea LAN-urilor ce utilizeaza protocoale complet diferite la toate nivelele de comunicatie. Translatia completa a unitatilor de date receptionate, dintr-un protocol in altul complet diferit, afecteaza viteza de transmisie. Un exemplu tipic de utilizare a unui gateway este la interconectarea unei retele IBM SNA cu o retea DEC net. Problemele de interconectare a doua retele care “vorbesc” limbi diferite sunt formidabile. Discutia cu un main-frame este usoara daca doriti sa “fiti” doar terminal. Daca doriti sa “fiti” ceva mai sofisticat (un alt calculator de ex.) aveti nevoie de o “bariera” complicata si puternica. Un sistem gateway nu numai ca trebuie sa “inteleaga” limba sistemului “strain” dar trebuie sa se poata conecta fizic la acel sistem.
Sistemul De Comunicatie Intr-O Retea De Calculatoare Conceptul de procesare distribuita si de retele de calculatoare implica faptul ca entitatile din diferite sisteme de calcul trebuie sa comunice. Exemple de entitati sunt programele de aplicatii, facilitati pentru transferul de fisiere, sistemele de administrare a bazelor de date, posta electronica etc. In general, o entitate este capabila de transmisie / receptie, iar un sistem este un obiect fizic distinct ce contine una sau mai multe entitati. Pentru ca doua entitati sa fie capabile de comunicatie, ele trebuie sa “vorbeasca” un acelasi limbaj. Ce se comunica, cum se comunica si cand se comunica, trebuie sa se conformeze unui set mutual acceptat de conventii intre entitatile implicate Acest set de conventii este denumit protocol , ce contine un set de reguli ce guverneaza schimbul de date intre doua entitati. Elementele cheie ale unui protocol sunt : Sintaxa: include lucruri asa cum sunt formatul datelor, codarea si nivelele de semnal; Semantica: include informatia de control pentru coordonare si pentru tratarea erorilor; Sincronizarea (timing): include punerea de acord a vitezelor de transmisie si secventierea datelor. Pentru a ilustra comunicarea consideram un exemplu tehnic: cum se realizeaza comunicarea la ultimul nivel din reteaua cu cinci niveluri din figura de mai jos. O aplicatie care se executa in nivelul 5 produce un mesaj M si il furnizeaza nivelului 4 pentru a-l transmite. Nivelul 4 insereaza un antet in fata mesajului, pentru a identifica respectivul mesaj si paseaza rezultatul nivelului 3. Antetul include informatii de control, de exemplu numere de ordine care ajuta nivelului 4 de pe masina destinatie sa livreze mesajele in ordinea corecta in cazul in care nivelurile inferioare nu pastreaza aceasta ordine. Pe unele niveluri, antetele contin de asemenea campuri de control pentru marime, timp si alte informatii. In numeroase retele nu exista nici o limita cu privire la marimea mesajelor transmise in protocolul nivelului 4, dar exista aproape intotdeauna o limita impusa de protocolul nivelului 3. In consecinta, nivelul 3 trebuie sa sparga mesajele primite in unitati mai mici, pachete, atasand fiecarui pachet un antet specific nivelului 3. In acest exemplu, M este descompus in doua parti, M1 si M2. Nivelul 3 decide ce linie de transmisie sa utilizeze si trimite pachetele nivelului 2. Nivelul 2 adauga nu numai cate un antet pentru fiecare bucata, ci si o incheiere, dupa care furnizeaza unitatea rezultata nivelului 1 pentru a o transmite fizic. In masina receptoare mesajul este trimis in sus, din nivel in nivel, pe parcurs fiind eliminate succesiv toate antetele. Nici un antet corespunzator nivelurilor sub n nu este transmis in sus nivelului n. Ceea ce este important de inteles in figura de mai sus este relatia dintre comunicatia virtuala si cea efectiva si diferenta intre protocoale si interfete. De exemplu, procesele egale de la nivelul 4 isi imagineaza conceptul comunicarea ca realizandu-se pe”orizontala”, utilizand protocolul nivelului 4. Desi fiecare din ele are, probabil, o procedura de genul TrimiteInCealaltaParte si o alta PrimesteDinCealaltaParte, aceste proceduri nu comunica de fapt cu cealalta parte, ci cu nivelurile inferioare prin interfata 3 / 4. Abstractizarea proceselor pereche este cruciala pentru proiectarea intregii retele. Cu ajutorul ei, aceasta sarcina practic imposibila poate fi descompusa in probleme de proiectare mai mici, rezolvabile, si anume proiectarea nivelurilor individuale. O parte din problemele cheie care apar la proiectarea retelelor de calculatoare sunt prezente in mai multe niveluri. Fiecare nivel are nevoie de un mecanism pentru a identifica emitatorii si receptorii. Dat fiind ca o retea cuprinde in mod normal numeroase calculatoare, iar o parte dintre acestea detin mai multe procese, este necesara o modalitate prin care un proces de pe o anumita masina sa specifice cu cine doreste sa comunice. Ca o consecinta a destinatiilor multiple, pentru a specifica una dintre ele, este necesara o forma de adresare. Nu toate canalele de comunicatie pastreaza ordinea mesajelor trimise. Pentru a putea trata o eventuala pierdere a secventierii, protocolul trebuie sa furnizeze explicit receptorului informatia necesara pentru a putea reconstitui ordinea corecta a fragmentelor. O solutie evidenta este sa se numeroteze fragmentele, dar aceasta solutie inca nu rezolva problema fragmentelor care sosesc in ordine incorecta. O problema care intervine la fiecare nivel se refera la evitarea situatiei in care un emitator rapid trimite unui receptor lent date la viteza prea mare. O rezolvare presupune o anumita reactie, directa sau indirecta, prin care receptorul il informeaza pe emitator despre starea sa curenta. Altele limiteaza viteza de transmisie a emitatorului la o valoare stabilita de comun acord cu receptorul. O alta problema care apare la cateva niveluri priveste incapacitatea tuturor proceselor de a accepta mesaje de lungime arbitrara. Acest fapt conduce la mecanisme pentru a dezasambla, a transmite si apoi a reasambla mesajele. O problema asemanatoare apare atunci cand procesele insista sa transmita datele in unitati atat de mici, incat transmiterea lor separata este ineficienta. In aceasta situatie, solutia este sa se asambleze impreuna mai multe mesaje mici destinate aceluiasi receptor si sa se dezasambleze la destinatie mesajul mare obtinut astfel. Atunci cand este neconvenabil sau prea costisitor sa se aloce conexiuni separate pentru fiecare pereche de procese comunicante, nivelul implicat in comunicare poate hotari sa utilizeze aceeasi conexiune pentru mai multe conversatii independente. Atat timp cat aceasta multiplexare si demultiplexare se realizeaza transparent, ea poate fi utilizata de catre orice nivel. Multiplexarea este necesara, de exemplu, in nivelul fizic, unde traficul pentru toate conexiunile trebuie sa fie transmis prin cel mult cateva circuite fizice. Atunci cand exista mai multe cai intre sursa si destinatie, trebuie ales un anumit drum. Uneori aceasta decizie trebuie impartita pe doua sau mai multe niveluri. De exemplu, este posibil ca trimiterea unor date sa necesite atat o decizie la nivel inalt pentru alegerea tarii de tranzit in functie de legile lor de protejare a secretului datelor, cat si o decizie de nivel scazut pentru alegerea unuia din multele trasee posibile, pe baza traficului curent.