+ All Categories
Home > Documents > Teorieretele

Teorieretele

Date post: 17-Dec-2015
Category:
Upload: ioanaalexandra
View: 217 times
Download: 2 times
Share this document with a friend
Description:
b
27
Subiecte Retele 1. Arhitectura retelelor: a. Tipuri de retele (cu difuzare, punct la punct) b. Retele locale, retele metropolitane, retele larg raspandite geografic (topologie, caracteristici) c. Niveluri, protocoale, modelul de referinta OSI (7 niveluri); descriere, caracteristici 2. Nivelul legatura de date a. Aspecte (caracteristici) ale proiectarii nivelului legaturii de date b. Detectarea si corectarea eroirlor (Hamming+CRC) c. Protocoale elementare pentru legatura de date (simplex fara restrictii, stop and wait, protocol cu confirmare si retransmitere) d. Protocoale cu fereastra glisanta si protocoale cu revenire cu n pasi (Go back n) 3. Nivelul retea a. Aspecte (caracteristici, cerinte) ale proiectarii nivelului retea b. Algoritmi de dirijare (calea cea mai scurta, inundarea, dirijarea centralizata, dirijarea izolata, dirijarea distribuita, dirijarea ierarhica) c. Controlul si evitarea congestionarii si a blocarii d. Protocolul IP (descriere) 4. Nivelul Transport a. Caracteristici ale nivelului Transport (notiuni de baza: adresarea, stabilirea si eliberarea conexiunii, controlul fluxului, multiplexarea) b. Protocolul TCP c. Elemente de performanta 5. Nivelul Aplicatie a. DNS, mail, www, ftp (o aplicatie la alegere). 1. Arhitectura retelelor a. Tipuri de retele i. cu difuzare: au un canal de comunicatii partajat de toate masinile din retea. O masina poate trimite mesaje scurte (pachete) care sunt primite de toate celelalte masini. Un camp de adresa din pachet specifica masina careia ii este adresat pachetul. La primirea unui pachet, masina verifica adresa; daca pachetul ii este adresat, il prelucreaza, altfel il ignora. Un pachet se poate adresa tuturor destinatiilor (mod de operare numit difuzare), prin specificarea unui cod special in campul de adresa; un astfel de pachet este prelucrat de toate masinile din retea. Unele sisteme cu difuzare suporta transmisia catre un subset de masini (mod de operare numit trimitere multipla). Schema posibila: un bit pt a indica trimiterea multipla, restul de n-1 biti de adresa pot forma un nr de grup. O masina se poate abona la un grup sau la toate. Un pachet trimis unui grup ajunge la toate masinile din grupul respectiv. ii. punct la punct: numeroase conexiuni intre perechi de masini individuale. Pt a ajunge la destinatie, un pachet poate fi nevoit sa treaca prin una sau mai multe masini intermediare. Sunt posibile trasee multiple, de diferite lungimi, de aceea sunt importante metodele de determinare a drumurilor optime. b. LAN, MAN, WAN i. LAN (Local Area Networks) - Retelele locale: retele private localizate intr-o cladire/ campus de maxim cativa km. Folosite de companii, fabrici. Dimensiuni restranse (administrarea retelei se simplifica). Tehnologie de transmisie: un cablu la care sunt atasate toate masinile. Viteza pana la 10 Gbps, intarzieri mici (micro/nano secunde), putine erori. Topologii posibile pt LAN-uri cu difuzare: retea cu magistrala (cu cablu liniar; in fiecare moment cel mult o masina poate transmite; daca doua sau mai multe
Transcript
  • Subiecte Retele1. Arhitectura retelelor:a. Tipuri de retele (cu difuzare, punct la punct)b. Retele locale, retele metropolitane, retele larg raspandite geografic (topologie, caracteristici)c. Niveluri, protocoale, modelul de referinta OSI (7 niveluri); descriere, caracteristici2. Nivelul legatura de datea. Aspecte (caracteristici) ale proiectarii nivelului legaturii de dateb. Detectarea si corectarea eroirlor (Hamming+CRC)c. Protocoale elementare pentru legatura de date (simplex fara restrictii, stop and wait, protocol cu confirmare si retransmitere)d. Protocoale cu fereastra glisanta si protocoale cu revenire cu n pasi (Go back n)3. Nivelul reteaa. Aspecte (caracteristici, cerinte) ale proiectarii nivelului reteab. Algoritmi de dirijare (calea cea mai scurta, inundarea, dirijarea centralizata, dirijarea izolata, dirijarea distribuita, dirijarea ierarhica)c. Controlul si evitarea congestionarii si a blocariid. Protocolul IP (descriere)4. Nivelul Transporta. Caracteristici ale nivelului Transport (notiuni de baza: adresarea, stabilirea si eliberarea conexiunii, controlul fluxului, multiplexarea)b. Protocolul TCPc. Elemente de performanta5. Nivelul Aplicatiea. DNS, mail, www, ftp (o aplicatie la alegere).

    1. Arhitectura retelelora. Tipuri de retele

    i. cu difuzare: au un canal de comunicatii partajat de toate masinile din retea. O masina poate trimite mesaje scurte (pachete) care sunt primite de toate celelalte masini. Un camp de adresa din pachet specifica masina careia ii este adresat pachetul. La primirea unui pachet, masina verifica adresa; daca pachetul ii este adresat, il prelucreaza, altfel il ignora. Un pachet se poate adresa tuturor destinatiilor (mod de operare numit difuzare), prin specificarea unui cod special in campul de adresa; un astfel de pachet este prelucrat de toate masinile din retea. Unele sisteme cu difuzare suporta transmisia catre un subset de masini (mod de operare numit trimitere multipla). Schema posibila: un bit pt a indica trimiterea multipla, restul de n-1 biti de adresa pot forma un nr de grup. O masina se poate abona la un grup sau la toate. Un pachet trimis unui grup ajunge la toate masinile din grupul respectiv.

    ii. punct la punct: numeroase conexiuni intre perechi de masini individuale. Pt a ajunge la destinatie, un pachet poate fi nevoit sa treaca prin una sau mai multe masini intermediare. Sunt posibile trasee multiple, de diferite lungimi, de aceea sunt importante metodele de determinare a drumurilor optime.

    b. LAN, MAN, WANi. LAN (Local Area Networks) - Retelele locale: retele private localizate intr-o cladire/

    campus de maxim cativa km. Folosite de companii, fabrici. Dimensiuni restranse (administrarea retelei se simplifica). Tehnologie de transmisie: un cablu la care sunt atasate toate masinile. Viteza pana la 10 Gbps, intarzieri mici (micro/nano secunde), putine erori. Topologii posibile pt LAN-uri cu difuzare: retea cu magistrala (cu cablu liniar; in fiecare moment cel mult o masina poate transmite; daca doua sau mai multe

  • masini vor sa transmita simultan, se foloseste un mecanism de arbitrare; exemplu: Ethernet), retea in inel (fiecare bit se propaga independent de ceilalti, fara sa astepte restul pachetului; exemplu: FDDI - Fiber Distributed Data Interface). LAN-urile cu difuzare pot fi statice ( algoritm round-robin: fiecare masina emite cand ii vine randul; ineficient, se iroseste capacitatea canalului daca o masina nu are nimic de transmis cand ii vine randul) sau dinamice (la cerere - metoda preferata).

    ii. MAN (Metropolitan Area Network) - Retelele metropolitane: acopera un oras. Exemplu: TV prin cablu (o antena foarte mare redistribuia semnalul catre casele abonatilor). In ultima perioada a anilor 90, operatorii de retele de cablu TV au facut schimbari in sistem pt a oferi servicii de internet in partile nefolosite ale spectrului. Atat semnalul de TV, cat si Internetul sunt transmise catre un centralizator, care le distribuie abonatilor.

    iii. WAN (Wide Area Network) - Retelele larg raspandite geografic: acopera o arie intinsa (o tara, un continent). Contin o colectie de masini (gazde) care apartin clientilor si care sunt conectate printr-o subretea, care, de obicei, apartine unei companii de telefonie sau unui furnizor de servicii Internet. Subreteaua transmite mesajele de la gazda la gazda. In majoritatea WAN-urilor, este formata din linii de transmisie (fire de cupru, fibra optica, legaturi radio) si elemente de comutare (routere). O linie de transmisie leaga doua routere. Daca doua routere care nu sunt legate direct doresc sa comunice, vor face asta indirect, prin routere intermediare. Acestea primesc pachetul in intregime, il retin pana cand linia de iesire ceruta devine libera si apoi il retransmit. Subretelele care funcitoneaza astfel se numesc subretele memoreaza-si-transmite sau cu comutare de pachete. Cand o gazda are un mesaj de transmis, il sparge in pachete, fiecare retinandu-si numarul de ordine din secventa. Pachetele sunt trimise individual si depozitate la gazda receptoare, unde sunt reasamblate in mesajul initial. Deciziile de dirijare se iau la nivelul local al routerului, prin algoritmi de rutare. Un WAN poate folosi si un sistem de sateliti (in loc de comutare de pachete). Fiecare router are o antena care poate trimite si poate primi.

    c. Niveluri, protocoale, modelul de referinta OSIi. Niveluri: Retelele sunt organizate sub forma de straturi sau niveluri, fiecare construit

    peste cel de dedesubt. Scopul fiecarui nivel este sa ofere anumite servicii nivelurilor superioare, protejandu-le totodata de detaliile privitoare la implementarea acelor servicii. Nivelul n de pe o masina converseaza cu nivelul n de pe alta masina.

    ii. Protocoalele sunt seturi de reguli si conventii utilizate in comunicarea intre masini. O lista de protocoale utilizate de un sistem, cate un protocol/nivel, se numeste stiva de protocoale. O multime de niveluri si protocoale se numeste arhitectura de retea.

    iii. Modelul de referinta OSI (Open Systems Interconnection): cuprinde 7 niveluri, la care se ajunge aplicand urmatoarele principii:

    1. un nivel trebuie creat cand este nevoie de un nivel de abstractizare diferit2. fiecare nivel trebuie sa indeplineasca un rol bine definit3. functia fiecarui nivel trebuie aleasa acordandu-se atentie definirii de protocoale

    standardizate pe plan international4. delimitarea nivelurilor trebuie facuta astfel incat sa se minimizeze fluxul de

    informatii prin interfete5. numarul de niveluri trebuie sa fie suficient de mare pt a nu fi nevoie sa se

    introduca in acelasi nivel functii diferite si suficient de mic pt ca arhitectura sa ramana functionala.

    Modelul OSI nu reprezint n sine o arhitectur de reea, pentru c nu specific serviciile i protocoalele utilizate la fiecare nivel. Modelul spune numai ceea ce ar trebui s fac fiecare nivel. ISO a produs de asemenea standarde pentru fiecare nivel, ns aceste standarde nu fac parte din modelul de referin propriu-zis.

    1. Nivelul fizic: transmite biti printr-un canal de comunicatie. Proiectarea trebuie sa garanteze ca atunci cand se transmite un bit 1, se receptioneaza un bit 1, nu un bit 0. Probleme: cati volti trebuie utilizati pt a reprezenta un 1 si cati pt a reprezenta un 0, daca transmisia se poate face simultan in ambele sensuri, cum

  • se stabileste conexiunea si cum se intrerupe cand au terminat de comunicat ambele parti, cati pini are conectorul de retea si rolul fiecaruia.

    2. Nivelul legatura de date: transforma un mijloc oarecare de transmisie intr-o linie care sa fie disponibila nivelului retea fara erori de transmisie nedetectate. Obliga emitatorul sa descompuna datele de intrare in cadre de date (frame-uri de cateva sute sau cateva mii de octeti) si sa transmita cadrele secvential. Daca serviciul este sigur, receptorul confirma fiecare cadru trimitand inapoi un cadru de confirmare pozitiva. Probleme: evitarea inundarii unui receptor lent de catre un transmitator rapid, tratarea erorilor, (la retele cu difuzare) accesul la canalul partajat.

    3. Nivelul retea: se ocupa de controlul subretelei. Determina modul in care pachetele sunt dirijate de la sursa la destinatie (alege trasee static sau dinamic), controleaza congestiile, se ocupa de calitatea serviciilor (intarziere, timp de tranzitare, fluctuatii etc.). Probleme: diferente intre modurile de adresare ale retelelor, neacceptarea unui pachet din cauza dimensiunilor mari, protocoale diferite. In retelele cu difuzare, problema dirijarii este simpla, deci nivalul retea este subtire sau nu exista,

    4. Nivelul transport: accepta date de la nivelul sesiune, le descompune (daca este cazul) in unitati mai mici, pe care le transfera nivelului retea, se asigura ca aceste fragmente ajung corect la celalalt capat, toate acestea facute eficient si izoland nivelurile superioare de eventuale modificari in tehnologia echipamentelor. De asemenea, determina ce tip de serviciu sa furnizeze nivelului sesiune. Cel mai obisnuit tip de conexiune transport este un canal punct-la-punct fara erori (de fapt, un canal fara erori este utopic; de fapt se refera la un canal in care rata erorilor este suficient de mica pt a fi neglijata) care furnizeaza mesajele sau octetii in ordinea in care au fost trimisi. Alte tipuri posibile de servicii de transport: transportul mesajelor individuale, fara garantia ordinii de livrare, si difuzarea mesajelor catre destinatii multiple. Tipul serviciului este determinat cand se stabileste conexiunea. Nivelul transport este un nivel capat-la-capat, de la sursa la destinatie, deci un program de pe masina sursa comunica direct cu un program similar de pe masina destinatie, folosind antetele mesajelor si mesaje de control. Nivelurile inferioare (1-3) sunt inlantuite, comunicand cu vecinii directi, iar nivelurile 4-7 sunt capat-la-capat.

    5. NIvelul sesiune: permite utilizatorilor de pe masini diferite sa stabileasca intre ei sesiuni. Acestea ofera diferite servicii, incluzand controlul dialogului (respectarea ordinii in raport cu dreptul de a transmite), gestionarea jetonului (prevenirea situatie in care doua entitati incearca aceeasi operatie critica simultan) si sincronizarea (introducerea de puncte de control pe parcursul transmisiilor lungi, astfel incat, in caz de esec, acestea sa poate fi reluate de unde ramasesera).

    6. Nivelul prezentare: se ocupa de sintaxa si semantica informatiilor transmise. Pentru a face posibila comunicarea intre calculatoare cu reprezentari diferite ale datelor, structurile de date care se trimit pot fi reprezentate in mod abstract, alaturi de o codificare standardizata ce va fi utilizata pe cablu. Acest nivel gestioneaza aceste structuri de date abstracte si permite definirea si comunicarea unor structuri de date de nivel mai inalt.

    7. Nivelul aplicatie: contine o varietate de protocoale utilizate frecvent (HTTP - HyperText Transfer Protocol, care sta la baza WWW). Alte protocoale de aplicatie se folosesc pentru transferul fisierelor, posta electronica, stiri in retea.

    2. Nivelul legatura de datea. Aspecte (caracteristici) ale proiectarii nivelului legaturii de date: Acest nivel furnizeaza o

    interfata bine definita catre nivelul retea, trateaza erorile de transmisie si regleaza cadrele in asa fel incat receptorii lenti sa nu fie inundati de catre emitatori rapizi. In aceste scopuri, nivelul legatura

  • de date primeste pachete de la nivelul retea, pe care le incapsuleaza in cadre care contin un antet, informatia utila si o incheiere.

    i. Servicii oferite nivelului retea: Principalul serviciu: transferul datelor de la nivelul retea al masinii sursa la nivelul retea al masinii destinatie. Posibilitatile de baza, oferite in mod curent, sunt: serviciu neconfirmat fara conexiune (masina sursa trimite cadre independente catre masina destinatie, fara ca masina destinatie sa confirme primirea lor; nu e necesara stabilirea/desfiintarea unei conexiuni logice; daca un cadru se pierde, nivelul legatura de date nu face nimic pentru recuperarea lui; adecvat cat rata de erori este foarte scazuta si pentru traficul in timp real, unde a primi date cu intarziere este mai rau decat a primi date eronate), serviciu confirmat fara conexiune (fiecare cadru este confirmat individual; daca nu a ajuns intr-un interval de timp specificat, poate fi trimis din nou; adecvat pentru canale nesigure, precum cele wireless), serviciu confirmat orientat-conexiune (se stabileste o conexiune intre masinile sursa si masinile destinatie inainte de a transfera date; fiecare cadru e numerotat si nivelul legatura de date garanteaza ca toate cadrele sunt receptionate exact o data, in ordinea corecta; transferurile au trei faze: stabilirea conexiunii, in care ambele masini initializeaza variabile si contoare, transmiterea cadrelor si desfiintarea conexiunii, adica eliberarea variabilelor, tampoanelor si a altor resurse).

    ii. Incadrarea: nivelul legatura de date sparge sirul de biti in cadre si calculeaza suma de control pentru fiecare cadru. Cand un cadru ajunge la destinatie, suma de control este recalculata. Daca noua suma de control e diferita de cea din cadru, se iau masuri pentru rezolvarea erorii. Pentru a marca inceputul si sfarsitul fiecarui cadru se folosesc diferite metode, printre care: numararea caracterelor, indicatori cu inserare de octeti, indicatori de inceput si de sfarsit cu inserare de biti, violarea codificarilor la nivel fizic. Prima metoda, numararea caracterelor, foloseste un camp din antet pentru a specifica numarul de caractere din cadru. Problema: valoarea contorului poate fi alterata pe drum, caz in care destinatia pierde sincronizarea si nu poate localiza inceputul cadrului urmator. Metoda rar utilizata. Metoda cu indicatori cu inserare de octeti: fiecare cadru incepe si se termina cu un octet indicator. Doi octeti indicatori consecutivi indica sfarsitul unui cadru si inceputul celui care urmeaza. Daca receptorul pierde sincronizarea, acesta poate cauta otetul indicator pt a gasi sfarsitul cadrului. Probema: la transmiterea de date binare (ex: un obiect, numere in virgula mobila) se poate intampla ca in date sa apara octetul indicator. O posibila rezolvare: inserarea unui octet special (ESC) inaintea fiecarei aparitii accidentale a indicatorului in date. (schema: Tanenbaum ed. a 4a, pag 170). Dezavantaj: se limiteaza la utilizarea caracterelor de 8 biti, ceea ce nu este mereu suficient (UNICODE foloseste 16 biti). Metoda cu indicatori cu inserare de biti foloseste un octet indicator (flag): 01111110. De fiecare data canf nivelul legatura de date gaseste cinci biti 1 consecutivi in date, insereaza un bit 0. Cand receptorul primeste o succesiune de cinci biti 1, urmati de un bit 0, sterge bitul 0. astfel, granitele dintre 2 cadre sunt recunoscute usor si se elimina problema limitarii la caractere de 8 biti. Ultima metoda, violarea codificailor la nivel fizic, este aplicabila retelelor in care codificarea pe mediul fizic contine o anumita redundanta. De exemplu, unele LAN-uri codific un bit de date utiliznd doi bii fizici. De obicei, un bit 1 este reprezentat de o tranziie sus-jos i un bit 0 de o tranziie jos-sus. Aceasta nseamn c fiecare bit de date are o tranziie n mijloc, receptorului fiindu-i uor s localizeze frontierele biilor. Combinaiile sus-sus i jos-jos nu sunt utilizate pentru date, dar sunt utilizate pentru delimitarea cadrelor in unele protocoale. Observatie: multe protocoale de legatura de date utilizeaza o combinatie de contor de caractere cu una din celelalte metode.

  • iii. Controlul erorilor: masina destinatie trimite un feedback emitatorului pentru a-l asigura de sosirea corecta a cadrelor. Pentru situatiile cand se pierde complet un cadru iar destinatarul nu reactioneaza in niciun fel s-au introdus contoare de timp. Fiecare cadru are un interval de timp in care ar trebui sa ajunga la destinatie, sa fie prelucrat, iar la emitator sa ajunga un feedback. Daca acest timp se scurge fara primirea unui feedback, cadrul este retransmis. Pentru a evita ca receptorul sa accepte acelasi cadru de mai multe ori, se atribuie numere de secventa cadrelor de iesire.

    iv. Controlul fluxului: Pentru a evita inundarea unui receptor lent de catre un emitator rapid exista diferte abordari, dintre care mai des utilizate sunt controlul fluxului bazat pe reactie, caz in care receptorul acorda emitatorului permisiunea de a mai transmite date, sau cel puti comunica starea sa, si controlul fluxului bazat pe rata, caz in care protocolul dispune de un mecanism care limiteaza rata de transmitere a emitatorului fara a folosi informatii de la receptor. aceasta metoda nu se utilizeaza la niv. legatura de date.

    b. Detectarea si corectarea erorilor (Hamming+CRC)i. Coduri corectoare de erori (Hamming): Una din strategiile folosite pentru tratarea

    erorilor este ca pe langa fiecare bloc de date trimis sa se includa suficienta informatie redundanta pentru ca receptorul sa poata deduce care a fost caracterul transmis. aceasta metoda se foloseste in cazul canalelor de comunicatie fara fir (sau, in general, mai nesigure). Un cadru de lungime n biti, numit frecvent cuvant de cod de n biti, contine m biti de date (mesaj) si r biti redundanti (m + r = n). Date fiind doua cuvinte de cod, putem determina cati biti corespunzatori difera aplicand SAU EXCLUSIV. Rezultatul se numeste distanta Hamming. Daca doua cuvinte de cod sunt despartite de o distanta Hamming d, atunci sunt necesare d erori de un singur bit pentru a-l converti pe unul in celalalt. In multe aplicatii de transmisie de date, toate cele 2m mesaje de date posibile sunt corecte, dar nu sunt utilizate toate cele 2n cuvinte de cod posibile. Dat fiind algoritmul pt calculul bitilor de control, putem construi o lista completa de cuvinte de cod permise si din aceasta lista putem gasi cele doua cuvinte a caror distanta Hamming este minima. Aceasta este distanta Hamming a codului complet. Pentru a detecta d erori, este nevoie de cod cu distanta d+1. Pentru a corecta d erori este nevoie de cod cu distanta 2d+1. Daca dorim sa proiectam un cod cu m biti de mesaj si r biti redundanti care sa ne permita sa corectam toate erorile singulare. Pentru fiecare din cele 2m mesaje corecte exista n cuvinte de cod eronate, aflate la distanta 1 => fiecare din cele 2m mesaje corecte necesita n+1 sabloane asociate. Cum numarul total de sabloane este 2n, trebuie sa avem (n+1)2m

  • vom transmite pe coloana, incepand din stanga. Astfel, daca apare o eroare in rafala de lungime k va fi afectat cel mult un bit din fiecare cuvant de cod, deci codul Hamming poate corecta erorile.

    ii. Coduri detectoare de erori (CRC - Cyclic Redundancy Code): folosite pe canale cu o rata a erorilor mai mica (fire de cupru, fibra optica), erorile sunt detectate iar cadrele in cauza sunt retransmise. Sirurile de biti sunt tratate ca reprezentari de polinoame cu coeficienti 0 si 1. Un cadru de k biti este vazut ca o lista de coeficienti pt un polinom cu k termeni (de gradul k-1). Aritmetica polinomiala este de tip modulo 2; adunarea si scaderea sunt identice cu SAU EXCLUSIV. In cadrul acestei metode, transmitatorul si receptorul se pun de acord in avans asupra unui polinom generator G(x). Atat bitul cel mai semnificativ cat si cel mai putin semnificativ trebuie sa fie 1. Pentru a calcula suma de control a unui cadru cu m biti, corespunzator polinomului M(x), cadrul trebuie sa fie mai lung decat polinomul generator. Se adauga o suma de control la sfarsitul cadrului, a.i. polinomul reprezentat de cadrul cu suma de control sa fie divizibil prin G(x). Cand receptorul preia cadrul, incearca sa-l imparta la G(x). Daca se obtine un rest a avut loc o eroare de transmisie. Algoritmul pentru calculul sumei de control: fie r gradul lui G(x); se adauga r biti 0 la capatul mai putin semnificativ al cadrului, a.i. acesta va contine n + r biti si va corespunde polinomului xrM(x). Se imparte sirul de biti ce corespund lui G(x) intr-un sir de biti corespunzand lui xrM(x), utilizand impartirea modulo 2. Se scade restul, utilizand scaderea modulo 2. Rezultatul este cadrul cu suma de control care va fi trimis.

    c. Protocoale elementare pentru legatura de date (simplex fara restrictii, stop and wait, protocol cu confirmare si retransmitere): Definitii:

  • i. Protocol simplex fara restrictii: pentru cazul utopic: date trimise intr-o singura directie, ambele niveluri retea (de transmisie si de receptie) sunt mereu pregatite, timp de prelugrare neglijabil, memorie de stocare infinita, canal fara erori. Fara numere de secventa sau confirmari.

  • ii. Protocol simplu Stop and Wait (pas cu pas): se renunta la presupunerea ca nivelul de retea receptor prelucreaza datele cu viteza infinita.

    iii. Protocol simplu pentru canal cu zgomote: se deosebeste de predecesorii sai prin faptul ca si emitatorul si receptorul au o variabila a carei valoare este pastrata cat timp nivelul legatura de date este in starea de asteptare. Emitatorul pastreaza numarul de secventa al urmatorului cadru de transmis in next_frame_to_send; receptorul pastreaza nr. de secventa al urmatorului cadru asteptat in frame_expected. Astfel de protocoale se numesc PAR (Positive Acknowledgement with Retransmission) sau ARQ (Automatic Repeat reQuest)

  • d. Protocoale cu fereastra glisanta si protocoale cu revenire cu n pasi (Go back n): datele se transmit in ambele directii, folosindu-se acelasi circuit. Cadrele cu date de la A la B sunt amestecate cu cadrele de confirmare de la A la B. Receptorul le diferentiaza uitandu-se la campul kind din antetul cadrului. In plus, cand soseste un cadru de date, in locul transmiterii imediate a unui cadru de control separat, receptorul poate astepta pana cand nivelul retea ii da un pachet de trimis. Astfel, confirmarea este transportata cu urmatorul cadru cu date de iesire (atasare -

  • piggybacking). Daca nivelul retea nu trimite un pachet in cateva milisecunde, se trimite cadru de confirmare separat. In cadrul protocoalelor cu fereastra glisanta, fiecare cadru are un numar de secventa. Emitatorul mentine, la orice moment de timp, o multime de numere de secventa pe care are voie sa le trimita (terminologie: aceste cadre apartin ferestrei de transmisie - sending window). Similar, receptorul mentine o fereastra de receptie (receiving window) ce corespunde multimii de cadre care pot fi acceptate. Aceste doua ferestre nu trebuie sa aiba aceleasi limite minime si maxime si nici aceeasi dimensiune. Numerele de secventa din cadrul ferestrei emitatorului reprezinta cadre transmise sau cadre ce pot fi transmise, dar inca neconfirmate. Cand de la nivelul retea soseste un nou pachet, acestuia ii este atribuit urmatorul nr de secventa, iar marginea superioara a ferestrei creste cu 1. Cand soseste o confirmare, creste cu 1 limita inferioara a ferestrei. Daca fereastra creste la dimensiunea maxima, nivelul legatura de date al emitatorului trebuie sa forteze inchiderea nivelului retea pana la eliberarea unui buffer. Fereastra de receptie corespunde cadrelor pe care receptorul le poate accepta. Orice cadru din afara ferestrei este eliminat. Cand este receptionat un cadru al carui nr de secventa este egal cu limita inferioara a ferestrei, acesta este trimis spre nivelul retea, se genereaza o confirmare iar fereastra se deplaseaza cu o unitate. Spre deosebire de fereastra emitatorului, fereastra receptorului ramane de dimensiune constanta. O fereastra de dimensiune 1 accepta numai cadre ordonate. Nivelul retea este alimentat mereu cu date in ordine corecta, indiferent de dimensiunea ferestrei. In exemplul urmator, un protocol cu fereastra glisanta de 1 bit, next_frame_to_send arata ce cadru incearca sa transmita emitatorul, iar frame_expected arata ce cadru este asteptat de receptor.

  • Timpul mare de transfer poate duce la irosirea largimii de banda. Combinatia dintre un timp de tranzitie lung, largime de banda mare si un cadru scurt este foarte ineficienta, in special din cauza regulii care cere ca un emitator sa astepte o confirmare inaintre trimiterii unui alt cadru. Solutie: putem permite emitatorului sa transmita mai multe cadre in loc de unul singur, astfel incat sa transmita continuu cadre pentru un timp egal cu timpul de tranzit, fara a umple fereastra. Aceasta tehnica este numita banda de asamblare (pipelining). Problema: ce se intampla cand un cadru din mijlocul sirului este modificat sau pierdut? Una dintre solutii este data de algoritmii cu revenire cu n pasi (go back n), in cadrul carora receptorul elimina cadrele care urmeaza cadrului modificat/pierdut, netrimitand confirmari pentru cadrele eliminate. Asadar receptorul refuza orice cadru in afara urmatorului care trebuie livrat catre nivelul retea. Daca fereastra emitatorului se umple inaintea expirarii contorului de timp, banda de asamblare va incepe sa se goleasca. Intr-un final se vor retransmite toate cadrele neconfirmate. In exemplul de mai jos este un protocol go back n in care fereastra receptorului are dimensiune 1.

  • 3. Nivelul reteaa. Aspecte (caracteristici, cerinte) ale proiectarii nivelului retea: acest nivel are ca sarcina

    preluarea pachetelor de la sursa si transferul lor catre destinatie. Ajungerea la destinatie poate necesita mai multe salturi prin routere intermediare. Nivelul retea este cel mai scazut nivel care se ocupa de transmisii capat la capat. Sistemul este format din echipamentul companiei de telecomunicatii si echipamentul clientului. Acest echipament este folosit astfel: o gazda care are de transmis un pachet il transmite celui mai apropiat router; pachetul este memorat acolo pana ajunge integral, a.i. sa poata fi verificata suma de control, apoi este trimis mai departe catre urmatorul router de pe traseu, pana ajunge la destinatie. Acest mecanism reprezinta comutarea de pachete de tip memoreaza-si-transmite. Serviciile furnizate nivelului transport au fost proiectate tinand cont de urmatoarele scopuri: serviciile sa fie independente de tehnologia routerului, nivelul transport sa fie independent de numarul, tipul si tipologia routerelor existente, adresele de retea disponibile la nivelul transport sa foloseasca o schema de numerotare uniforma. Serviciile pot fi orientate pe conexiune sau neorientate pe conexiune. Serviciile neorientate pe conexiune: pachetele sunt trimise in subretea individual si dirijate independent de celelalte. Nu este necesara o initializare prealabila. Pachetele sunt numite frecvent datagrame, iar subreteaua este numita subretea datagrama. Functionare: presupunem ca o masina vrea sa transmita un mesaj de 4 ori mai lung decat dimensiunea maxima a unui pachet, asa ca nivelul retea trebuie sa il sparga in 4 pachete si sa le trimita pe fiecare in parte primului router. Fiecare router are o tabela interna care ii spune unde sa trimita pachete pentru fiecare destinatie posibila. Este posibil ca primele 3 pachete sa fie trimise pe un traseu iar ultimul, din diverse motive (ex: congestionarea unei rute), sa fie trimis

  • pe alt traseu (pentru detalii: Tanenbaum, pag 311-313). Algoritmii care administreaza tabelele si iau deciziile de rutare se numesc algoritmi de rutare. In cadrul unui serviciu orientat pe conexiune se stabileste o cale de la routerul sursa la routerul destinatie, numita VC (Virtual Circuit), iar subreteaua este numita subretea cu circuite virtuale. Ideea care sta la baza circuitelor virtuale este evitarea alegerii unei noi rute pentru fiecare pachet transmis. Cand se stabileste o conexiune, se alege o cale intre masina sursa si destinatie, care este memorata in tabelele routerelor. Acea cale este folosita pentru tot traficul de pe conexiune. Cand conexiunea este eliberata, circuitul virtual virtual este inchis (detalii: Tanenbaum, pag 313-314).

    b. Algoritmi de dirijare (calea cea mai scurta, inundarea, dirijarea centralizata, dirijarea izolata, dirijarea distribuita, dirijarea ierarhica): principala functie a nivelului retea este dirijarea pachetelor de la masina sursa catre masina destinatie. Algoritmul de dirijare raspunde de alegerea liniei de iesire pe care trebuie trimis un pachet receptionat. Un router ruleaza intern doua procese: unul care preia fiecare pachet care soseste, cautand in tabela de dirijare linia de iesire folosita pentru el (retransmitere - forwarding) si altul care se ocupa de completarea si actualizarea tabelei de rutare prin algoritmul de dirijare. Acest algoritm trebuie sa aiba anumite proprietati: corectitudine, simplitate, robustete, stabilitate, echitate, optimalitate. Algoritmii pot fi neadaptivi (dirijare statica - static routing), in cadrul carora alegerea caii folosite pentru a ajunge de la nodul A la nodul B (oricare A, B) se calculeaza in avans, off-line si parvine routerului la initializarea retelei, sau adaptivi, care isi modifica deciziile de dirijare pentru a reflecta modificarile de topologie si pe cele de trafic. Algoritmii adaptivi difera prin locul de unde isi iau informatia (local, de la un router vecin sau de la toate routerele), prin momentul la care schimba rutele (la fiecare t secunde, cand se schimba incarcarea sau cand se schimba topologia) si prin metrica folosita pentru optimizare (distanta, numarul de salturi, timpul estimat pentru tranzit).

    i. Calea cea mai scurta: construim un graf al subretelei, fiecare nod al grafului fiind un router, iar fiecare arc o linie de comunicatie (legatura). Pentru a alege o cale intre o pereche data de routere, algoritmul trebuie sa gaseasca in graf calea cea mai scurta intre ele. Modalitati de a masura lungimea caii: numarul de salturi, distanta geografica in km, valori medii ale asteptarii in coada si intarzierii de transmisie. Etichetele de pe arce ar putea fi calculate ca functii care depind de distanta, largime de banda, trafic mediu, cos al comunicatiei, lungime medie a cozilor de asteptare, intarziere masurate si alti factori. Cel mai cunoscut algoritm pentru calcului celei mai scurte cai intre doua noduri intr-un graf este cel al lui Dijkstra (explicat aici: https://www.youtube.com/watch?v=8Ls1RqHCOPw ). Implementare:

  • ii. Inundarea: fiecare pachet receptionat este transmis mai departe pe fiecare linie de iesire, mai putin cea pe care a venit. Pentru a limita numarul de pachete duplicate se foloseste un contor (initializat cu lungimea caii de la sursa la destinatie sau, daca aceasta nu este cunoscuta, cu valoarea cea mai defavorabila - diametrul subretelei) care este decrementat la fiecare salt. Cand contorul ajunge la 0, pachetul este distrus. Alta metoda pentru controlul inundarii este identificarea pachetelor care au fost deja inundate, pentru a preintampina trimiterea lor a doua oara. Routerul sursa plaseaza in fiecare pachet un numar de secventa pe care il primeste de la masina gazda asociata. Fiecare router mentine o lista pentru fiecare router sursa cu numerele de secventa provenite de la acel router sursa si care au fost deja trimise mai departe. Daca soseste un pachte care se afla in lista, nu este trimis mai departe. Fiecare lista este insotita de un contor k, care semnifica faptul ca toate numerele de secventa pana la k au fost deja tratate. La receptia unui pachet este usor sa se verifice daca este un duplicat, caz in care este distrus. O varianta a algoritmului de inundare este inundarea selectiva (selective flooding), in

  • care pachetele nu sunt trimise pe fiecare legatura de iesire, ci doar pe cele care duc aproximativ in directia potrivita.

    iii. Dirijarea centralizata: o masina creeaza tabela de rutare, iar celelalte masini doar o folosesc. Se poate utiliza algoritmul lui Floyd. Acesta foloseste tabloul distantelor minime.

    iv. Dirijarea distribuita (bazata pe starea legaturilor): Fiecare router trebuie sa descopere care sunt vecinii sau si sa afle adresele de retea ale acestora, sa masoare intarzierea sau costul pana la fiecare dintre vecinii sai, sa pregateasca un pachet prin care anunta pe toata lumea ca a terminat de cules datele despre vecini, sa trimita acest pachet catre toate celelalte routere si sa calculeze cea mai scurta cale spre fiecare router. Determinarea vecinilor se face trimitand un pachet HELLO pe fiecare linie prin care este legat la alt router. Routerul de la celalalt capat raspunde trimitand un pachet cu identitatea sa (un identificator unic). Masurand timpul pana la primirea raspunsului si impartindu-l la 2, routerul initiator poate estima intarzierea. Apoi fiecare router construieste un pachet cu propria identitate, un numar de secventa, varsta si o lista a vecinilor, pachet pe care-l trimite mai departe prin inundare. Dupa ce un router a acumulat un set complet cu starea legaturilor, el poate construi graful intregii subretele.

    v. Dirijarea ierarhica: routerele sunt impartite in regiuni, fiecare router stiind toate detaliile necesare pentru dirijarea pachetelor in cadrul regiunii sale, dar nestiind nimic despre organizarea interna a celorlalte regiuni. Pentru retele foarte mari, ierarhia se face pe mai multe niveluri. Numarul optim de niveluri pentru o retea cu N routere este lnN.

    vi. Dirijarea izolata: se foloseste algoritmul cartofului fierbinte: pachetul receptionat este plasat in coada cea mai scurta. Se poate lua in consideratie doar lungimea cozilor anumitor linii, selectate conform cailor celor mai scurte.

    c. Controlul si evitarea congestionarii si a blocarii: controlul congestiei se poate face prin solutii in bucla deschisa (incearca sa se asigure ca nu apar probleme; dupa ce sistemul este pornit si functioneaza, nu se mai fac niciun fel de corectii; se decide cand sa se accepte trafic nou, cand sa se distruga pachete si care sa fie acestea, toate acestea fara a tine cont de starea curenta a retelei) sau in bucla inchisa (bazate pe conceptul de reactie inversa - feedback). Aceasta abordare are trei parti: monitorizarea sistemului pentru a detecta cand si unde se produce congestia, trimiterea acestor informatii catre locurile unde se pot executa actiuni, ajustarea sistemului pentru a corecta problema. In vederea monitorizarii subretelei se pot folosi diverse metrici, din care cele mai utilizate sunt: procentul din totalul pachetelor care au fost distruse din cauza lipsei de spatiu temporar de memorare, lungime medie a cozilor de asteptare, numarul de pachete retransmise pe motiv de timeout, intarzierea medie a unui pachet, deviatia standard a intarzierii unui pachet.

  • Transferul informatiei legate de congestie la punctul in care se poate face ceva se poate realiza prin trimiterea unor pachete de la routerul care a detectat congestia catre sursa sau sursele de trafic, dar aceasta metoda ar congestiona si mai tare reteaua. Alta metoda (mai eficienta) ar fi rezervarea unui bit sau a unui camp in fiecare pachet pentru a fi completat de routere daca congestia depaseste o anumita valoare. Cand un router detecteaza congestie, el completeaza campurile tuturor pachetelor expediate, prevenindu-si vecinii. O alta abordare este trimiterea periodica a unor pachete de proba care sa intrebe explicit despre congestie.

    i. Modalitati de prevenire a congestiei:

    detalii: Tanenbaum, 348 - 349 ii. Controlul congestiei:

    1. In subretele bazate pe VC: controlul admisiei - dupa aparitia congestiei fie nu se mai stabilesc conexiuni virtuale pana nu se rezolva problema, fie se stabilesc ocolind zonele cu probleme. Alternativ se poate negocia o intelegere intre gazda si subretea la stabilirea unui VC, intelegere care specifica volumul si forma traficului, calitatea serviciului cerut, etc. Astfel, subreteaua isi rezerva resurse (tabele, zone tampon in routere, latime de banda) de-a lungul caii.

    2. In subretele datagrama: fiecare router poate asocia fiecarei linii de iesire o variabila care sa reflecte utilizarea recenta a acelei linii. Daca acea constanta depaseste un anumit prag, linia de iesire intra intr-o stare de avertisment. Cand soseste un pachet se verifica daca linia pe care trebuie sa plece este in stare de avertisment, caz in care se iau masuri. Printre masuri se numara: un bit de avertizare in antetul pachetului (care, odata cu confirmarea primirii, anunta sursa ca trebuie sa-si reduca traficul), pachete de soc trimise catre sursa cu destinatia pachetului trimis (astfel, sursa nu mai trimite pachete pe acea cale pana la revenirea la normal; pachetele de soc pot contine avertismente pe niveluri - bland, sever, ultimatum - in functie de severitatea congestiei), pachete de soc cu salt (au efect la fiecare salt pe care-l fac, nu doar cand ajung la sursa), imprastierea incarcarii (routerele inundate arunca o parte din pachete, RED (Random Early Detection - detectia aleatoare timpurie) - aruncarea pachetelor inainte de blocarea completa a retelei (routerele mentin tot timpul o medie a lungimii cozilor; cand lunginea medie a cozii unei linii este depasita, linia este congestionata; routerul nu poate spune care sursa este problema, asa ca arunca la intamplare pachete din coada liniei in cauza).

  • d. Protocolul IP (descriere): la nivelul retea Internetul poate fi vazut ca o colectie de subretele sau sisteme autonome (Autonomous Systems - AS) care sunt interconectate. Liantul care tine Internetul la un loc este protocolul de nivel retea, numit IP (Internet Protocol). Sarcina lui este de a oferi cel mai bun mod posibil de a transporta datagrame de la sursa la destinatie. O datagrama IP e formata dintr-un antet si un text. Antetul are o parte fixa de 20 de octeti si o parte optionala de lungime variabila.

    Campul Versiune memoreaza carei versiuni de protocol ii apartine datagrama (IPv4 / IPv6). Campul IHL (Internet Header Length) da lungimea antetului in cuvinte de 32 de octeti (minim 5, maxim 15 => antetul are maxim 60 de octeti). Campul Tip serviciu arata carei clasa de servicii apartine pachetul. Campul lungimea totala include antet + date, iar campul identificare permite receptorului sa determine carei datagrame apartine un pachet primit. DF (Dont Fragment) - un bit care forteaza trimiterea datagramei intr-o singura bucata (chiar daca pe alta ruta). MF (More Fragments) - un bit care anunta ca mai urmeaza fragmente dintr-o datagrama. Toate pachetele au acest bit 1, mai putin ultimul. Deplasamentul fragmentului spune locul curent al fragmentului in datagrama. Campul timp de viata este un contor initializat cu 255 secunde care este decrementat la fiecare salt. Cand ajunge la 0, pachetul este eliminat si se transmite la sursa un avertisment. Campul Protocol spune carui proces de transport trebuie predata datagrama (TCP, UDP, etc.). Campul Optiuni este de lungime variabila, proiectat astfel pentru a oferi un subterfugiu care sa permita introducerea de noi elemente. Initial erau definite 5 optiuni:

    Fiecare gazda si router din Internet are o adresa IP care codifica adresa sa de retea si de gazda. Combinatia este unica: nu exista doua masini cu aceeasi adresa IP. Toate adresele IP au 32 de biti si sunt scrise in notatia zecimala cu punct, fiecare din cei 4 octeti fiind scris in zecimal, de la 0 la 255. Adresa 0.0.0.0 este folosita de gazde cand sunt pornite. Adresele de forma 127.xx.yy.zz sunt rezervate pentru testari in bucla locala (pachetele trimise catre aceasta adresa sunt prelucrate local si tratate ca pachete sosite).

  • Adresele IP sunt insuficiente. Solutia pe termen lung este tranzitia catre IPv6 (adrese de 128 biti), dar aceasta se intampla foarte lent. O solutie rapida, pe termen scurt, este folosirea NAT (Network Adress Translation). Ideea de baza este alocarea fiecarei companii a unei singure adrese IP (sau a unui numar mic de adrese) pentru traficul Internet. In interiorul companiei, fiecare calculator primeste o adresa IP unica, folosita pentru traficul intern. Cand un pachet paraseste compania si se duce la ISP (Internet Service Provider) are loc o translatare de adresa, care are loc intr-o unitate NAT (NAT box) carre converteste adresa interna la adresa IP reala a companiei. Unitatea NAT este deseori insotita de un firewall care se ocupa de securitate, verificand ce intra si ce iese din companie.

    Datorita epuizatii adreselor IP se doreste trecerea la IPv6. La crearea acestui protocol s-a tinut cont de urmatoarele obiective majore:

    1. Sa suporte miliarde de gazde2. Sa reduca dimensiunea tabelelor de dirijare3. Sa simplifice protocolul, pentru a permite routerelor sa proceseze pachetele mai

    rapid4. Securitate mai buna5. Atentie mai mare acordata tipului de serviciu6. Sa ajute trimiterea multipla, permitand specificarea de domenii 7. Sa creeze conditiile pentru ca o gazda sa poata migra fara schimbarea adresei

    sale8. Sa permita evolutia protocolului in viitor9. Sa permita coexistenta vechiului si noului protocol pentru cativa ani

  • IPv6 are adrese mai lungi (16 octeti), un antet mai simplu (doar 7 campuri), suport mai bun pentru optiuni, securitate imbunatatita si atentie mai mare acordata calitatii serviciilor.

    Campul Tip de trafic este folosit pentru a distinge intre pachetele care au diverse cerinte de livrare in timp real. Eticheta fluxului are rolul de a permite unei surse si unei destinatii sa stabileasca o pseudo-conexiune cu proprietati si cerinte particulare. Campul Lungimea informatiei utile spune cati octeti urmeaza dupa antetul de 40 de octeti. Campul Antetul urmator spune care din antetele de extensie, daca exista vreunul, urmeaza dupa cel curent. Daca acest antet este ultimul, acest camp mentioneaza carui tip de protocol (TCP, UDP) i se va transmite pachetul.

    4. Nivelul Transporta. Caracteristici ale nivelului Transport (notiuni de baza: adresarea, stabilirea si eliberarea

    conexiunii, controlul fluxului, multiplexarea)i. Adresarea: Atunci cand un proces aplicatie doreste sa stabileasca o conexiune cu un

    proces aflat la distanta, el trebuie sa specifice cu care proces doreste sa se conecteze. Metoda folosita in mod normal este de a defini adrese de transport (porturi) la care procesele pot sa astepte cereri de conexiune. Le vom numi TSAP (Transport Service Access Point). Punctele similare la nivelul retea sunt numite NSAP (Network Service Access Point). Exemplu de NSAP: adresele IP. Adresele TSAP pot sa fie fixe, dar acest model functioneaza doar pentru un numar mic de servicii cheie, ale caror adrese nu se schimba niciodata. O solutie mai buna este protocolul de conectare initiala. In loc ca orice server sa asculte la un TSAP fixat, fiecare masina are un server de procese care asculta in acelasi timp la un numar de porturi, asteptand o cerere de conexiune. Potentialii utilizatori ai serviciului pot face o cerere de conexiune, specificand adresa TSAP a serviciului dorit. Daca nu exista server care sa astepte conexiuni la acel port, se stabileste o conexiune la serverul de procese. Acesta da nastere serverului cerut, ii permite sa mosteneasca conexiunea cu utilizatorul, apoi continua sa accepte noi cereri. pentru situatiile in care serviciile exista independent de serverul de procese exista un proces special numit server de nume. Pentru a gasi adresa TSAP corespunzatoare unui

  • serviciu dat prin nume, utilizatorul se conecteaza la serverul de nume si il intreaba care este adresa serviciului dorit. Dupa aceea elibereaza conexiunea cu serverul de nume si stabileste o noua conexiune cu serviciul de care are nevoie.

    ii. Stabilirea conexiunii: principala problema ar fi existenta duplicatelor intarziate (in cazul unei subretele congestionate, in care confirmarile ajung greu inapoi, se poate ca un pachet sa fie retransmis de cateva ori). O solutie este eliminarea pachetelor imbatranite. Durata de viata a unui pachet poate fi limitata la un maxim cunoscut prin mai multe tehnici: restrictii in proiectarea subretelei, adaugarea unui contor al nodurilor parcurse in fiecare pachet, adaugarea unei amprente de timp la fiecare pachet. Este necesara si eliminarea confirmarilor unui pachet, nu doar a pachetului, ca sa nu incurce nimic. Pentru a ocoli problemele generate de pierderea datelor din memoria unei masini dupa o cadere se poate echipa fiecare masina cu un ceas (un contor binar care se autoincrementeaza la intervale regulate). Cand conexiunea este initiata, k biti mai nesemnificativi ai ceasului sunt folositi ca numar initial de secventa. Astfel, fiecare conexiune isi numeroteaza TPDU-urile diferit. Daca una dintre masini cade, entitatea de transport nu mai stie unde a ramas in spatiul numerelor de secventa. Astfel se poate ajunge la confuzii. Pentru a evita asta se iau masuri ca numerele de secventa sa nu fie utilizate (adica atribuite altor TPDU-uri) un timp T. Conexiunea se face cu intelegere in trei pasi (three-way handshake). Gazda 1 alege un numar de secventa x si trimite un TDPU CONNECTION REQUEST care contine x gazdei 2. Gazda 2 raspunde cu CONNECTION ACK, confirmand x si anuntand numarul sau initial de secventa, y. In cele din urma gazda 1 confirma alegerea lui y gazdei 2 in primul mesaj de date pe care il trimite.

    iii. Eliberarea conexiunii: poate fi simetrica (conexiunea este privita ca doua conexiuni separate unidirectionale care trebuie eliberate separat) sau asimetrica (cand unul din interlocutori inchide, conexiunea este intrerupta; brusca, duce la pierderi de date). Se foloseste foarte des eliberarea simetrica in trei pasi: unul dintre utilizatori trimite un TPDU de tip DR (DISCONNECT REQUEST). Cand acesta soseste, receptorul trimite si el un TPDU de tip DR si porneste un ceas pentru a trata cazul in care mesajul sau e pierdut. Cand primeste mesajul inapoi, initiatorul trimite o confirmare si elibereaza conexiunea.

    iv. Controlul fluxului - principale probleme: alocarea bufferelor si capacitatea de transport a subretelei. Daca serviciul nu este sigur, emitatorul va trebui sa memoreze toate TPDU-urile trimise. Totusi, daca emitatorul stie ca receptorul are intotdeauna buffere disponibile, nu mai are nevoie de copii ale TPDU-urilor. Ramane astfel in discutie dimensiunea bufferelor. Daca cele mai multe TPDU-uri au aceeasi dimensiune, bufferele pot fi organizate intr-o resursa comuna care contine buffere de aceeasi dimensiune, cu un TPDU per buffer. Daca dimensiunea TPDU-urilor variaza foarte mult, o solutie buna este utilizarea unor buffere de dimensiune variabila, dar se complica gestiunea lor. O alta posibilitate este folosirea unui buffer circular, acesta utilizand eficient memoria. A doua limitare majora este capacitatea de transport a retelei. Daca doua routere adiacente pot schimba x pachete/secunda si exista y cai distincte intre doua gazde, atunci rata maxima de TPDU-uri/secunda este x*y. Pentru ca emitatorul sa functioneze la capacitate maxima, se poate folosi o schema cu fereastra glisanta in care emitatorul modifica dinamic dimensiunea ferestrei. Daca reteaua poate transporta x TPDU-uri pe secunda si durata unui ciclu (de la transmisie la revenirea confirmarii) este c, dimensiunea ferestrei la emitator trebuie sa fie c*x.

    v. Multiplexarea: 1. in sus: daca doar o singura adresa de retea este disponibila pe o gazda, este

    necesar un mod de a spune carui proces trebuie dat.

  • 2. in jos: daca un utilizator are nevoie de mai multa latime de banda decat poate oferi un circuit virtual, nivelul transport poate deschide mai multe conexiuni retea si poate distribui traficul prin acestea.

  • b.

  • Protocolul TCP (Transmission Communication Protocol) a fost proiectat pentru a asigura un flux sigur de octeti intr-o inter-retea (retea in care diferite parti ale ei difera prin topologie, latime de banda, intarzieri, dimensiunea pachetelor etc.) nesigura. Fiecare masina care suporta TCP dispune de o entitate de transport TCP care accepta fluxuri de date de la procesele locale, le imparte in fragmente care nu depasesc 64K octeti si expediaza fiecare fragment intr-o datagrama IP separata. Serviciul TCP este obtinut prin crearea atat de catre emitator, cat si de catre receptor, a unor puncte finale, numite socluri (sockets). Fiecare socket are o adresa formata din adresa IP a masinii gazda si un numar de 16 biti, local gazdei respective, numit port. Pentru a obtine o conexiune TCP, trebuie stabilita expliciti o conexiune intre un socket de pe masina emitatoare si un socket de pe masina receptoare. Un socket poate fi folosit la un moment dat pentru mai multe conexiuni. Se foloseste un demon (buhuhu - program care ruleaza continuu si se ocupa de cererile de servicii), numit inetd (Internet daemon) care se autoataseaza la mai multe porturi si asteapta prima conexiune care vine. Cand acest lucru se intampla, inetd creeaza un nou proces si executa in el demonul adecvat, lasand acel demon sa se ocupe de cerere. Toate conexiunile TCP sunt duplex integral si punct-la-punct. TCP nu suporta difuzarea (partiala sau totala). Fiecare octet al unei conexiuni TCP are propriul numar de secventa, reprezentat pe 32 de biti. Entitatile TCP interschimba informatie sub forma de segmente. Acestea sunt formate dintr-un antet de 20 de octeti (plus o parte optionala) urmat de 0 sau de mai multi octeti de date.

  • URG - urgent, ACK - acknowledgement, PSH - informatie fortata, SYN - utilizat pentru stabilirea unei conexiuni. SYN = 1 si ACK = 0 indica faptul ca acel camp suplimentar de confirmare nu e utilizat. Raspunsul la o astfel de cerere contine o confirmare, deci SYN = 1 si ACK = 1. FIN - pentru incheierea unei conexiuni. Conexiunile se stabilesc utilizand intelegerea in trei pasi. Pentru a evita congestia, fiecare emitator mentine doua ferestre: cea acceptata de catre receptor si fereastra de congestie. Numarul de octeti care pot fi trimisi e dat de minimul dintre cele doua. Fereastra de congestie primeste la stabilirea conexiunii dimensiunea celui mai mare segment utilizat de acea conexiune, apoi se treimite un segment de dimensiune maxima. Daca acesta e confirmat inaintea expirarii timpului, fereastra de congestie se dubleaza si te trimit 2 segmente. Daca si acestea sunt confirmate la timp, fereastra se dubleaza iar; procedeul se repeta pana cand confirmarea nu mai ajunge in timp util. Acest algoritm se numeste algoritmul startului lent. In practica, startul lent se foloseste pentru a determina cat poate reteaua sa duca, acea crestere exponentiala oprindu-se la atingerea unui prag. Mai departe fereastra creste liniar odata cu transmisiile reusite.

    c. Elemente de performantai. Probleme de performanta: Congestiile pot fi cauzate de o supraincarcare temporara

    a resurselor sau de o dezehilibrare a balantei acestora. Supraincarcarile pot fi initiate si in mod sincron (exemplu: furtuna de difuzare - daca un TPDU contine un parametru eronat, iar receptorii sunt setati sa trimita un mesaj de eroare, acel TPDU trimis la 10000 de masini poate scoate din functiune reteaua). Sistemul trebuie sa fie bine reglat pentru a functiona la capacitate maxima.

    ii. Masurarea performantelor retelei: se va tine cont de urmatoarele:1. dimensiunea testului sa fie suficient de mare2. testele sa fie reprezentative3. utilizarea atenta a ceasurilor4. nu trebuie sa se petreaca ceva neasteptat in timpul masuratorilor5. lucrul cu memoria ascunsa poate distruge masuratorile

    iii. Proiectarea de sistem pentru performante superioare se va face dupa urmatoarele reguli:

    1. Viteza procesorului este mai importanta decat viteza retelei2. Reducerea numarului de pachete pentru a reduce supraincarcarea datorata

    programelor3. Minimizarea numarului de comutari de context (de exemplu, din mod nucleu in

    mod utilizator)4. MInimizarea numarului de copieri5. Oricand se poate cumpara largime de banda, dar niciodata o intarziere mai mica6. Evitarea congestiei este preferabila eliminarii congestiei7. Evitarea intarzierilor

    5. Nivelul AplicatieDNS (Domain Name System): consta intr-o schema ierarhica cde nume de domenii si a unui

    sistem de baze de date distribuite pentru implementarea acestei scheme. DNS-ul este folosit in principal pentru a pune in corespondenta numele sistemelor gazda si adresele destinatiilor de e-mail cu adresele IP. Programul aplicatie apeleaza o procedura de biblioteca numita resolver, transferandu-i numele ca parametru. Resolverul trimite un pachet UDP la serverul DNS local, care cauta numele si returneaza adresa IP catre resolver, care o trimite apelantului. Programul poate stabili acum o conexiune TCP cu destinatia sau ii poate trimite pachete UDP.

    Internetul este divizat in peste 200 de domenii de nivel superior, fiecare domeniu cuprinzand mai multe sisteme gazda. Fiecare domeniu este partitionat in subdomenii, acestea sunt partitionate la randul lor, etc. Se creeaza o ierarhie reprezentabila intr-un arbore.

  • Domeniile de pe primul nivel se impart in generice (com, edu, gov, int, mil, net, org, biz, info, name, pro, aero, coop ) si de tari.