Documente Academic
Documente Profesional
Documente Cultură
Cuprins
1
Corina-Ştefania Nănău
Cursul 5
Atunci cand o gazda sursa doreste sa transmita un pachet unei gazde destinatie, mai intai
compara valoarea campului retea din propria adresa IP cu cel din adresa de destinatie. Daca cele
2
Corina-Ştefania Nănău
doua valori sunt egale, atunci pachetul de date se transmite in reteaua locala din care fac parte cele
doua gazde, deci el este incapsulat intr-un cadru de date si transmis pe mediul de comunicatie. In caz
contrar, pachetul este transmis routerului prin interfata corespunzatoare retelei locale, router-ul fiind
responsabil cu transmiterea mai departe a pachetului.
Internetul este construit dintr-un numar mare de sisteme autonome (AS - Autonomous
Systems). Un AS este divizat in arii (grupuri consecutive de retele si gazde). Fiecare arie poate
contine routere care mentin informatii topologice ale acestor arii, numite area border routers.
Domeniul sistemului autonom este o portiune de retea pentru care router-ele au aceeasi
informatie privitoare la topologia ariei.
Coloana vertebrala (backbone) a sistemului autonom este responsabila cu distributia
informatiilor de routare intre arii. Toate ariile sunt conectate la coloana vertebrala, astfel incat se
poate ajunge dintr-o zona in alta ale sistemului autonom.
Fiecare astfel de sistem este administrat de o organizatie diferita si poate folosi propriul algoritm
de routare a pachetelor in interior. Un algoritm de routare in interiorul unui sistem autonom este numit
protocol de gateway interior. Algoritmul de routare utilizat intre sistemele autonome este numit
protocol de gateway exterior.
3
Corina-Ştefania Nănău
Construim tabela initiala pentru nodul A (conform imaginii din Fig. 1.1), rezultand cea din
Tab. 1.1.
Tabela 1.1: Tabela de routare initiala pentru nodul A din reteaua data
Urmand pasii protocolului RIP, in urma actualizarilor, tabela finala ajunge cea din Tab. 1.2.
Tabela 1.2: Tabela de routare finala pentru nodul A din reteaua data
OSPF functioneaza prin abstractizarea colectiei de retele, routere si linii reale dintr-un graf
orientat, in care fiecarui arc ii este atribuit un cost (care poate fi distanta, intarzierea, etc.). Apoi
calculeaza drumul cel mai scurt, bazandu-se pe costurile arcelor. O conexiune seriala intre doua
routere este reprezentata de o pereche de arce, cate unul in fiecare directie, cu costuri ce pot fi diferite
pe fiecare directie. O retea multi-acces este reprezentata de un nod pentru reteaua insasi, plus cate
un nod pentru fiecare router. Arcele de la nodul retea la routere au pondere 0 si sunt omise din graf.
Figura 1.2
4
Corina-Ştefania Nănău
Un alt succesor eficient al lui RIP este IGRP (Interior Gateway Routing Protocol).
Acesta, randul sau, a suferit o imbunatatire ulterioara, aparand astfel protocolul EIGRP (Enhanced
Interior Gateway Routing Protocol). EIGRP este un protocol ce foloseste vectorul de distanta,
similar protocolului RIP, bazat insa pe o metrica mai complexa, ce ia in calcul latimea de banda
(kbps), timpul de intarziere (secunde) si gradul de siguranta a liniei de transfer.
Protocol EIGRP foloseste o varianta actualizata a algoritmului Belman-Ford, care utilizeaza un
vector de metrici in locul unei metrici simple pentru caracterizarea drumului de cost minim. Algoritmul
nu calculeaza doar drumul de cost minim (cu metrica cea mai mica), ci calculeaza mai multe drumuri,
a caror metrica sa fie incadrata intr-un interval predefinit. Calea aleasa de router pentru dirijarea
pachetelor va fi una dintre cele calculate de algoritm.
Retele ciot (stub networks), care au doar o conexiune la graful BGP. Acestea nu pot fi folosite
pentru traficul in tranzit pentru ca nu este nimeni la capatul celalalt.
Retele multi-conectate, care pot fi folosite pentru traficul in tranzit, cu exceptia celor care refuza
explicit tranzitul.
Retele de tranzit, cum ar fi coloanele vertebrale, care sunt doritoare sa manevreze pachetele
altora, cu unele eventuale restrictii, si de obicei contra unui cost.
BGP este la baza un protocol bazat pe vectori distanta, dar destul de diferit de celelalte proto-
coale prezentate anterior. In loc sa mentina doar costul pana la fiecare destinatie, fiecare router BGP
memoreaza calea exacta folosita. Similar, in loc sa trimita periodic fiecarui vecin costul sau estimat
catre fiecare destinatie posibila, routerele BGP comunica vecinilor calea exacta pe care o folosesc.
Definirea BGP-ului se gaseste in RFC 1771 si 1774.
5
Corina-Ştefania Nănău
protocoale. Nivelul Transport este continut atat in modelul TCP/IP, care este fundamentul retelei
Internet, cat si in modelul OSI, asa cum se poate observa in Fig. 1.3.
Nivelul Transport separa nivelurile orientate pe aplicatii, si anume nivelurile 5, 6 si 7 ale mo-
delului OSI, menite sa asigure livrarea corecta a datelor intre calculatoarele interlocutoare, de cele
destinate operarii subretelei, si anume nivelurile 1, 2 si 3 ale modelului OSI, responsabile de deplasa-
rea mesajelor prin retea. Nivelurile inferioare pot suferi modificari de implementare, fara a influenta
nivelurile superioare.
Nivelul Transport administreaza transmisia de date de la un computer la altul, putand asigura si
unele servicii, ca de exemplu: calitatea in comunicare, siguranta liniei de transport, controlul fluxului
sau detectia si corectia erorilor.
Una dintre functiile acestui nivel este de a imparti datele in segmente mai mici, pentru a fi
transportate mai usor prin retea. El este proiectat astfel incat sa permita conversatii intre entitatile
pereche, formate din gazdele sursa, respectiv, destinatie.
In cadrul acetui nivel sunt implementate diferite protocoale, doua din cele mai cunoscute si
utilizate fiind:
TCP (Trasmission Control Protocol) este un protocol sigur, orientat pe conexiune, care
permite ca un flux de octeti trimisi de pe un calculator, sa ajunga fara erori pe orice alt dispozitiv
din retea. Orientarea pe conexiune nu semnifica faptul ca exista un circuit intre computerele
care comunica, ci faptul ca segmentele de date ale nivelului Aplicatie calatoresc bidirectional
intre doua gazde care sunt conectate logic pentru o anumita perioada de timp. Acest proces este
cunoscut sub denumirea de packet switching.
TCP fragmenteaza fluxul de octeti in mesaje discrete si transmite aceste segmente nivelului Re-
tea. TCP trateaza totodata controlul fluxului pentru a se asigura ca un emitator nu aglomereaza
(congestioneaza) un receptor mai lent cu mai multe mesaje decat poate acesta sa prelucreze.
UDP (User Datagram Protocol), este un protocol nesigur, fara conexiune, destinat aplicati-
ilor care doresc sa utilizeze propria lor secventiere si propriul control al fluxului. Protocolul UDP
este deasemenea mult folosit pentru interogari rapide de tipul intrebare-raspuns (client-server)
si pentru aplicatii in care comunicarea prompta este mai importatnta decat acuratetea acesteia,
asa cum sunt aplicatiile de transmisie de voce sau a imaginilor video.
Principalele diferente intre cele doua protocoale ale nivelului Transport (TCP si UDP) constau
in fiabilitate si rapiditatea comunicarii.
6
Corina-Ştefania Nănău
identificarea diferitelor aplicatii
multiplexarea si demultiplexarea datelor
trasarea comunicatiei individuale intre aplicatiile dispozitivului sursa si cele ale dispozitivului
destinatie
impartirea datelor in segmente si administrarea fiecarui segment in parte
reasamablarea segmentelor in fluxuri de date recunoscute de aplicatii
7
Corina-Ştefania Nănău
De la nivelele superioare, nivelul Transport primeste cantitati mari de date asupra carora nu
poate sa execute operatia de multiplexare. Pentru a rezolva aceasta problema, se sparge fluxul de date
in segmente de dimensiuni mici, care sunt mai usor de manevrat la transmisia in retea.
Pentru a exemplifica segmentarea, vom presupune ca un computer incearca sa trimita prin retea
un fisier de dimensiuni foarte mari. Transferul acestui fisier ar dura foarte mult timp. Daca acest fisier
(transformat in flux de date) nu ar fi segmentat, nu ar exista nicio posibilitate ca alte terminale sa
foloseasca reteaua pe durata de transfer a acestor date. Alte terminale ar trebui sa astepte ca fisierul
sa fie transmis complet inainte ca ele sa inceapa sa transmita date.
Deoarece reteaua trebuie sa poata fi folosita de mai multe terminale in acelasi timp, trebuie
facuta aceasta segmentare (si apoi binenteles reasamblarea segmentelor).
Datele de la fiecare proces (terminal) se impart in bucati mici care ocupa putin din spatiul
aferent legaturii si astfel si celelalte terminale pot trimite simultan date pe retea. Acest procedeu
poarta deumirea de multiplexare in timp.
Prin urmare, UDP reasambleaza pur si simplu datele, in ordinea in care acestea au fost primite, si
le transmite mai departe aplicatiei. In cazul in care secventa de date este importanta pentru aplicatie,
aplicatia va trebui sa identifice secventa corecta a datelor si sa stabileasca modul in care datele trebuie
8
Corina-Ştefania Nănău
sa fie prelucrate.
In cazul utilizarii protocolului UDP, dupa procesul de segmentare are loc procesul de impachetare
a datelor. Aceasta impachetare consta in lipirea unui antet. PDU-ul (Protocol Data Unit) pentru
protocolul UDP este numit datagrama, desi uneori termenii segment de date si datagrama sunt
folositi alternativ pentru a descrie un PDU pentru nivelul Transport. O datagrama UDP consta dintr-
un antet de 8 de octeti urmata de zero sau mai multi octeti de date, asa cum se poate observa in Fig.
1.6.
9
Corina-Ştefania Nănău
primeste o confirmare in cadrul unui interval prestabilite de timp, se retransmit datele catre destinatie.
Cateva dintre cele mai cunoscute aplicatii care transmit date cu ajutorul protocolului TCP sunt
prezentate (prin intermediul numerelor de port) in Tab. 1.3.
Stabilirea conexiunii
Atunci cand doua gazde comunica folosind protocolul TCP, se stabileste o conexiune
inainte ca datele sa poata fi transmise. Dupa ce comunicarea este completa, sesiunile
sunt inchise, iar conexiunea se incheie. Mecanismele de conectare si de sesiune activeaza functia
de fiabilitate a protocolului TCP.
Gazda urmareste fiecare segment de date in cadrul unei sesiuni si face schimb de informatii cu
privire la ce date sunt primite de fiecare gazda, utilizand informatiile din antetul TCP.
Pentru a stabili o conexiune, gazdele efectueaza o metoda numita three-way handshake. Bitii
de control din antetul TCP indica evolutia si starea conexiunii. Acest algoritm contine urmatorii pasi,
asa cum este prezentat in Fig. 1.7:
Clientul initiator trimite un segment care contine o valoare de secventa initiala (SEQclient =
100), ce serveste ca o cerere catre server pentru a incepe o sesiune de comunicatii;
Serverul raspunde cu un segment care contine:
– o valoare de confirmare (ACKserver = SEQclient + 1 = 101), egala cu valoarea secventei
primite plus 1. Valoarea de confirmare este una mai mare decat valoarea secventei, deoarece
10
Corina-Ştefania Nănău
ACK este intotdeauna urmatorul octet asteptat. Aceasta valoare de confirmare
permite clientului sa fie sigur ca la cererea lui de realizare a conexiunii i se raspunde;
– valoarea proprie de secventa de sincronizare (SEQserver = 300).
Clientul initiator raspunde cu un segment care contine:
– o valoare de confirmare (ACKclient = SEQserver + 1 = 301), egala cu valoarea secventei
primite plus 1;
– valoarea proprie de secventa de sincronizare plus 1 (SEQclient + 1 = 101).
In Fig. 1.7 se poate observa succesiunea de secvente necesara crearii unei conexiuni intr-o
comunicare de tip TCP, unde:
SYN - Sincronizeaza valorile de secventa;
SEQ - Valoarea efectiva a secventei;
ACK - Valoarea de confirmare a primirii secventei;
CTL - Specifica bitii de control din antetul segmentului TCP, care sunt setati pe 1.
Protocolul TCP este cel care decide cat de mari trebuie sa fie aceste segmente. Dimensiunea
segmentului este limitata de unitatea maxima de transfer sau MTU (Maximum Transfer Unit). Deo-
arece MTU este in general de 1500 octeti (dimensiunea informatiei utile din Ethernet) se defineste o
limita superioara a dimensiunii unui segment.
Semnificatia informatiilor introduse in antet este urmatoarea:
11
Corina-Ştefania Nănău
Numar port sursa - 16 biti (2 octeti) - numarul de port al celui ce face apelul;
Numar port destinatie - 16 biti (2 octeti) - numarul de port al celui ce este apelat; campu-
rile ”Numar port sursa” si ”Numar port destinatie” identifica punctele finale ale conexiunii si
constituie totodata un identificator pentru conexiune.
Numarul de secventa - 32 biti (4 octeti) - numarul primului octet de date din cadrul segmen-
tului curent de date;
Numarul de confirmare - 32 biti (4 octeti) - valoarea urmatorului octet pe care destinatia se
asteapta sa il primeasca (nu a ultimului octet receptionat in mod corect);
Lungimea antetului - 4 biti - indica numarul de cuvinte de 32 de biti care sunt continute in
antetul TCP. Aceasta informatie este utila, deoarece campul ”Optiuni” este de lungime variabila,
variabilitate pe care o transmite astfel si antetului;
Rezervat – 6 biti - camp neutilizat, rezervat pentru viitor;
Steaguri /indicatori (Flags) - 6 biti - cu urmatoarea semnificatie:
– Bitul URG pozitionat pe 1 arata ca Indicatorul urgent este valid;
– Bitul ACK pe 1 indica faptul ca Numarul de confirmare este valid. Daca este pozitionat
pe 0, segmentul in discutie nu contine o confirmare, si atunci campul Numar de confirmare
este ignorat;
– Bitul PSH indica faptul ca informatia trebuie livrata aplicatiei de indata ce a fost recep-
tionata, fara a mai fi memorata in buffere, din ratiuni de eficienta;
– Bitul RST este folosit pentru a desfiinta o conexiune care a devenit inutilizabila din cauza
unur defectiuni ale calculatoarelor gazda sau din alte varii motive;
– Bitul SYN este folosit pentru stabilirea unei conexiuni. Cererea de conexiune contine
SYN = 1 si ACK = 0 , iar raspunsul la o astfel de cerere este confirmata prin combinatia
SYN = 1 si ACK = 1;
– Bitul FIN este folosit pentru a incheia o conexiune.
Lungime fereastra - 16 biti (2 octeti) - indica numarul de octeti, incepand cu cel indicat prin
numarul de confirmare, pe care ii poate receptiona cel ce primeste mesajul;
In cazul protocolului TCP, fluxul de control este tratat prin ferestre glisante, de dimensiune
variabila.
Suma de control - 16 biti (2 octeti) - indica suma campurilor de antet si de date, calculata
pentru verificare;
Indicator de urgenta - 16 biti (2 octeti) - permite identificarea pozitiei unor date de urgenta,
in cadrul protocolului TCP;
Optiuni - 32 biti (4 octeti) - a fost proiectat pentru a permite adaugarea unor facilitati supli-
mentare neacoperite de antetul obisnuit. Cea mai importanta optiune este aceea care permite
fiecarui calculator sa specifice incarcarea maxima de informatie utila TCP pe care este dispus
sa o accepte;
Date - datele furnizate protocolului de la nivelul superior;
12
Corina-Ştefania Nănău
Functionarea corecta a unui algoritm de retransmitere este prezentata in Fig. 1.10. Se poate
observa in aceasta imagine, ca emitatorul nu trece la urmatorul segment de date pana cand nu primeste
confirmarea primirii corecte a segmentului anterior.
Desi este corect, algorimul ferestrei glisante cu transmitere pas cu pas din paragraful
precedent este ineficient in situatia in care timpul dus-intors intre emitator si receptor este mult mai
mare decat timpul necesar emiterii unui segment. Acest lucru se intampla in cazul transmiterii unor
segmente de dimensiuni mici prin legaturi cu debit mare, si la distanta mare. In aceasta situatie,
emitatorul emite repede un segment, dupa care asteapta (cea mai mare parte a timpului) propagarea
acestuia spre destinatar si intoarcerea confirmarii de primire.
Pentru cresterea eficientei, a fost introdusa posibilitatea ca emitatorul sa poata trimite unul dupa
altul mai multe segmente, fara a astepta confirmarea precedentului, pentru a-l trimite pe urmatorul.
13
Corina-Ştefania Nănău
Acest fapt nu elimina asteptarea confirmarii de primire, doar ca se permite trimiterea unui segment
nou inaintea sosirii confirmarii de primire pentru segmentul precedent. Timpul maxim de asteaptare
pentru confirmarea unui segment ramane totusi neschimbat, insa se permite trimiterea mai multor
segmente in acest timp. Aceasta noua abordare a fost adoptata ca o imbunatatire a algoritmului
Ferestrei Glisante.
Trimiterea mai multor segmente in avans schimba cateva lucruri fata de cazul trimiterii unui
singur segment.
Deoarece la un anumit moment pot exista mai multe segmente trimise de emitator si neconfir-
mate, pentru a putea corela confirmarile cu segmentele de date, este necesar ca si confirmarile sa fie
numerotate.
In urma pierderii unui segment, receptorul poate ajunge in situatia de a primi un segment fara
sa fi primit mai intai segmentul anterior. In aceasta situatie, receptorul:
Alegerea uneia sau a celeilate variante priveste doar receptorul, nu este parte a protocolului de comu-
nicatie. Mai mult, decizia de a memora sau de a ignora segmentul de date poate fi luata independent
pentru fiecare segment primit de receptor, in functie de memoria disponibila in acel moment.
In imaginile Fig. 1.11 si Fig. 1.12 putem observa doua modalitati de functionare ale algoritmului
Ferestrei Glisante. In primul caz, daca nu a fost primit segmentul numarul 2, segmentele 3 si 4
nu sunt acceptate si trebuiesc retransmise. In cel de-al doilea caz, daca segmentul 2 nu este primit,
receptorul primeste segmentele 3 si 4, dar trimite confirmarea primirii lor abia dupa ce a fost retransmis
segmentul 2 de catre gazda sursa si a fost confirmata primirea lui.
14
Corina-Ştefania Nănău
15
Corina-Ştefania Nănău
Numarul de ordine este numarul de octeti care au fost transmisi in sesiunea curenta, plus
1 (acesta fiind numarul primului octet de date din segmentul curent). Protocolul TCP foloseste
numarul de confirmare in segmentele trimise inapoi la sursa, pentru a indica octetul urmator al
sesiunii curente, pe care receptorul se asteapta sa il primeasca.
Sursa este astfel informata ca destinatia a primit toti octetii din secventa curenta de date pana
la, dar nu inclusiv, octetul indicat de numarul de confirmare. Este de asteptat ca dispozitivul ce
trimite date, sa trimita un segment care utilizeaza un numar de ordine egal cu numarul de confirmare
primit. Pe scurt, fiecare conexiune este de fapt un ansamblu de doua sesiuni, fiecare pe
o singura directie. Numerele de secventa si numerele de confirmare sunt transmise in
ambele directii.
Cantitatea de date pe care o sursa o poate transmite inainte de a trebui sa primeasca o confir-
mare, se numeste dimensiunea (lungimea) ferestrei. Lungimea ferestrei este un camp din antetul
TCP care permite gestionarea de date pierdute si controlul fluxului.
Protocolul TCP ofera, de asemenea, mecanismele de control al fluxului de date. Controlul
fluxului asista fiabilitatea transmisiei prin protocolul TCP ajustand rata efectiva a fluxului de date
intre cele doua servicii din sesiune. Atunci cand sursa este informata ca valoarea de date specificata
in segmente este primita, se poate continua transmisia mai multor date pentru aceasta sesiune.
Lungimea ferestrei in antetul TCP precizeaza cantitatea de date care poate fi transmisa inainte
ca o confirmare sa fie primita. Dimensiunea ferestrei initiale se determina in cursul pornirii sesiunii.
Mecanismul de feedback TCP ajusteaza rata efectiva de transmitere a datelor la
debitul maxim pe care reteaua si dispozitivul destinatie il pot suporta fara pierderi.
Protocolul TCP incearca sa administreze rata de transmitere astfel incat toate datele sa fie primite si
retransmisiile sa fie minimizate.
In Fig. 1.13 apare o reprezentare simplificata a dimensiunii ferestrei si a confirmarii corespun-
zatoare.
Figura 1.13: Functionarea ferestrei glisante - confirmarea primirii ferestrelor si evidentierea dimensiunii
ferestrei
In acest exemplu, dimensiunea ferestrei initiale pentru o sesiune TCP este setata la 3000 bytes
(octeti), fara a-si ajusta valoarea pe parcursul transmisiei de date.
In cazul in care expeditorul a transmis 3000 de octeti (doua segmente de cate 1500 de octeti in
cazul de fata), se asteapta o confirmare a acestor octeti inainte de a transmite mai multe segmente
in aceasta sesiune. Odata ce expeditorul a primit aceasta confirmare de la receptor, poate transmite
din nou o cantitate de date de 3000 de octeti. In exemplul prezentat se trimit din nou doua segmente
a cate 1500 de octeti. Amintim ca dimensiunea segmentelor nu este obligatoriu fixa, dar in
general, valoarea MTU pentru Ethernet este de 1500 octeti.
In timpul intarzierii, pana se primeste confirmarea, expeditorul nu va mai trimite segmente su-
plimentare pentru aceasta sesiune. In perioadele cand reteaua este saturata sau resursele receptorului
sunt limitate, intarzierea poate creste. Cu cat aceasta intarziere creste mai mult, rata de transmitere
eficienta a datelor pentru sesiunea curenta scade.
16
Corina-Ştefania Nănău
1.2.5 Comparatie intre protocoalele TCP si UDP
O comparatie intre caracteristicile celor doua protocoale este oferita pe scurt in Fig. 1.14
17
Corina-Ştefania Nănău
Bibliografie
18