Documente Academic
Documente Profesional
Documente Cultură
Cuprins
1
Corina-Ştefania Nănău
Cursul 8
2
Corina-Ştefania Nănău
statice sunt utilizate in general in retelele in care nu se asteapta modificari. Daca reteaua presupune
modificari frecvente, acest tip de routare devine anevoios si ineficient.
Routarea dinamica sau adaptiva este mai complexa decat cea statica, deoarece ofera po-
sibilitatea existentei mai multor rute posibile pentru a trimite pachete de date intr-o retea. Rutele
dinamice sunt utilizate de obicei in retele cu dimensiuni mai mari, unde rutele statice ar fi greoaie
de intretinut si de reconfigurat frecvent. Deoarece routarea dinamica este un proces mai complex,
aceasta consuma mai multa latime de banda decat routarea statica.
Routarea dinamica foloseste algoritmi specializati pentru a calcula acele rute multiple si pentru
a determina cea mai buna cale conform traficului de la acel moment din retea.
3
Corina-Ştefania Nănău
Indiferent de tehnica de routare utilizata, majoritatea retelelor se conecteaza si la Internet prin
conectarea unuia sau mai multor routere la un furnizor local de servicii de Internet. Furnizorii de
servicii folosesc un protocol de gateway exterior, cum ar fi BGP (Border Gateway Protocol), pentru
a se conecta intre ei, precum si la retele principale de tip backbone (de tip coloana vertebrala).
Reteaua de tip backbone este partea principala a retelei, la care se conecteaza diverse
retele sau subretele si care asigura posibilitatea schimbului de informatii intre aceste structuri inter-
conectate.
BGP ia in considerare numarul de hopuri pana la destinatie, ratele de transfer a datelor, con-
gestia, precum si preturile negociate intre furnizorii de servicii, pentru a trimite pachete prin retelele
lor. Retelele backbone se interconecteaza la punctele de schimbare a retelei (furnizorului) Internet,
acestea fiind facilitati in care se utilizeaza routere cu capacitate de tranzitie extrem de ridicata, pentru
a putea conecta acele retele backbone.
Deoarece retelele difera destul de mult, si modalitatile de routare implementate sunt foarte
diferite de la o retea la alta. Proiectantii de retele trebuie sa inteleaga mai intai caracteristicile
acestora si sa selecteze setul optim de tehnici pentru fiecare retea in parte.
Cand vorbim de protocoale dinamice de routare, in general, ne referim la doua clase prin-
cipale si o a treia, hibrida. Acestea sunt:
Distance Vector: RIP - Routing Information Protocol, IGRP - Interior Gateway Routing
Protocol, BGP - Border Gateway Protocol
Link State: OSPF - Open Shortest Path First, IS-IS - Intermediate System to Intermediate
System
Advanced Distance Vector: EIGRP - Enhanced Interior Gateway Routing Protocol
Atat protocoalele pe baza vectorilor de distanta (Distance Vector sau Advanced Distance Vector)
cat si cele bazate pe starea legaturii (Link State) creeaza un tabel de routare in cadrul routerului care
include o intrare pentru fiecare destinatie posibila a unei retele, grup de retele sau subretele. Fiecare
intrare va specifica ce conexiune de retea sa fie folosita pentru a trimite un pachet.
Distance Vector este o categorie ce contine acele protocoale de routare care se bazeaza pe
principiul ”Routing by rumour” (adica fiecare router se bazeaza pe informatia primita de la vecini,
fara a avea o vedere de ansamblu asupra intregii retele).
Link State este categoria ce cuprinde protocoalele de routare care au o vedere de ansamblu (o
harta activa) a intregii retele. In acest caz routerele stiu ”tot ce misca”. Au informatii despre fiecare
legatura in parte dintre oricare doua routere din retea (starea curenta a legaturii: up/down; viteza de
transfer pe acea legatura: 100Mbps, 1Gbps, etc.).
Advanced Distance Vector este o clasa de protocoale de routare hibride, care utilizeaza atat
conceptul de vector de distanta, cat si cel de stare a legaturii. Enhanced Interior Gateway Routing
Protocol (EIGRP) este un exemplu de protocol de routatre ce apartine acestei clase. In acest caz se
utilizeaza conceptul de ”protocol Helo” pentru descoperirea vecinilor si pentru crearea unei liste de
adiacenta.
In imaginea prezentata in Fig. 1.1 este ilustrat un exemplu concret de calcul a tabelei de routare
pentru un nod al unei retele, bazandu-ne pe vectorul de distanta.
Descriere: Se pot observa tabelele de routare pe care le primeste nodul J de la nodurile vecine,
si anume: A, I, H si K. Routerul J cunoaste durata de deplasare de la el catre acesti vecini: A - 8, I -
10, H - 12 si K - 6, distanta exprimata in milisecunde.
Vom face calculul pentru noul tabel de routare al lui J, aferent doar nodului G.
J stie ca poate ajunge la A in 8 ms si A pretinde, conform tabelului de routare primit, ca poate
sa ajunga la G in 18 ms, astfel incat J poate conta pe o intarziere de transmisie de 26 ms (8 + 18)
spre nodul G daca dirijeaza pachetul spre A.
Similar, el calculeaza intarzierile de transmisie spre G prin nodurile I, H si K, acestea fiind 41
(31 + 10), 18 (6 + 12) si 37 (31 + 6). respectiv.
Cea mai buna valoare este 18, asa ca va crea o intrare in tabela de routare cu intarzierea catre
G de 18 ms si ruta de urmat trecand prin H (H va fi selectat ca fiind ”next hop”).
Aceleasi calcule se fac pentru toate destinatiile din retea, rezultand tabela de routare ce se
regaseste in Fig. 1.1.
4
Corina-Ştefania Nănău
5
Corina-Ştefania Nănău
In al doilea rand, fiind un protocol de routare bazat pe vectori de distanta, isi schimba tabelele
de routare prin pachete de actualizare trimise catre vecinii lor directi, la intervale de 30 de secunde.
Aceste actualizari sunt trimise chiar si atunci cand nu exista nicio modificare, neexistand informatii in
timp real despre starea retelei. Dar si atunci cand se produce o modificare sunt declansate actualizari
trimise catre routerele vecine, astfel incat sa isi poata actualiza tabelele. Ca rezultat, protocoalele
de routare cu vectori de distanta au o convergenta lenta datorita prezentei unor temporizatoare.
Temporizatoarele sunt: Update, Invalid si Flush.
Update defineste perioada dintre informatiile de routare trimise intre vecini. Acesta este tem-
porizatorul principal utilizat de RIP. De asemenea, fiecare pachet de actualizare RIP poate contine
maximum 25 de intrari de retea. Un router care ruleaza RIP cu 100 de rute ar trimite 4 pachete de
actualizare la fiecare interval de timp. In mod implicit, intervalul de timp este setat la 30 de secunde.
Invalid reprezinta intervalul de timp dupa care o ruta este declarata a fi invalida. Acest interval
este masurat de la ultima actualizare primita pentru acea ruta. Aceasta devine invalida atunci cand
exista o absenta a actualizarilor in timpul setat pentru asa ceva. Temporizatorul ”Invalid” are o
valoare implicita de 180 de secunde.
Flush reprezinta perioada de timp care trebuie sa treaca inainte ca routerul sa stearga o ruta
inaccesibila din tabelul sau de routare. Valoarea implicita pentru acest temporizator este de 240 de
secunde.
Exista si versiunea de protocol RIPng (new generation) similara cu precedenta, dar care
este adaptata pentru a lucra cu adresele IPv6.
6
Corina-Ştefania Nănău
schimbata.
Unul dintre principalele avantaje ale acestui protocol este acela ca nu are o logica foarte com-
plicata, iar procesul de configurare al routerelor este destul de simplu atunci cand se foloseste acest
protocol.
Ca si dezavantaje, am putea enumera:
Nu accepta o masca de subretea cu lungime variabila (ca in cazul protocolului CIDR), ceea ce
inseamna ca trimite actualizari de routare bazate doar pe o masca de subretea cu lungime fixa
(asa cum se procedeaza atunci cand avem adrese IP bazate pe clasa).
Actualizarea informatiilor de routare, bazate pe metricile retelei se realizeaza destul de lent, mai
ales atunci cand vorbim despre retele de dimensiuni mari.
Actualizarea informatiilor de routare poate incarca substantial reteaua prin utilizarea unei can-
titati mari din latimea de banda, deoarece se transmite intregul tabel de routare la fiecare astfel
de actualizare.
Cel mai recent IGRP este EIGRP (Enhanced Interior Gateway Routing Protocol), o
versiune imbunatatita a acestuia, care foloseste atat vectorii de distanta, cat si starea legaturilor, fiind
incadrat in clasa algoritmilor hibrizi de routare si intrand in competitie cu algoritmi din ambele clase.
Acesta a facut ca IGRP sa fie scos din uz incepand cu anii 1990. EIGRP suporta subretele IP fara
clasa si imbunatateste eficienta algoritmilor de routare in comparatie cu IGRP-ul vechi. Primul a
fost creat ca un protocol privat care putea fi rulat numai pe dispozitivele Cisco, insa EIGRP a fost
conceput cu scopul de a putea fi configurat mai usor si pentru a oferi o performanta mai buna decat
OSPF, competitorul sau direct.
Insa, EIGRP a fost construit pe baza lui IGRP. Principalele diferente dintre cele 2 protocoale:
IGRP se bazeaza pe clase de adrese IP, iar EIGRP se bazeaza pe retele cu adrese IP fara clasa.
EIGRP foloseste mai putina latime de banda decat IGRP.
Calculul functiei pentru actualizarea rutelor se face mai rapid in cazul protocolului EIGRP.
Protocolul IGRP foloseste Bellman-Ford pentru a calcula drumul minim intre doua noduri de
retea, pe cand EIGRP foloseste algoritmul DUAL (Diffusing Update Algorithm), care se bazeaza
pe: tabelele de vecini, tabelele de topologie (care contin metricile sistemului asociate rutelor) si
tabelele de routare (care contin drumurile optime catre oricare destinatie din retea).
Protocolul EIGRP suporta si masti de dimensiune variabila.
7
Corina-Ştefania Nănău
corespondenta din acele cutii va ajunge mai intai la oficiul postal al orasului sursa, ca mai apoi de acolo
sa fie trimisa mai departe, spre destinatie. Routerele interne dintr-un sistem autonom sunt asemenea
acelor cutii postale, care transmit corespondenta catre sistemul autonom, care utilizeaza protocolul
BGP pentru a determina cea mai buna cale de transmitere a acestei corespondente la destinatia ei.
In Fig. 1.2 putem observa o reprezentare grafica ce simbolizeaza interconectarea mai multor
sisteme autonome pentru a putea comunica in reteaua Internet.
Revenind la Internet, stim ca structura acestuia se schimba constant, deoarece apar noi sisteme
si unele dintre sistemele existente devin indisponibile. Din acest motiv, fiecare sistem autonom trebuie
tinut la curent cu informatii privind rutele noi, precum si care sunt rutele care nu mai pot fi folo-
site. Acest lucru se realizeaza prin ”sesiuni de peering”, in care fiecare sistem autonom se conecteaza
la sistemele autonome vecine printr-o conexiune TCP/IP, cu scopul partajarii informatiilor de rou-
tare. Folosind aceste informatii, fiecare sistem autonom poate sa directioneze in mod corespunzator
pachetele de date care vin din interiorul sistemului si au o destinatie din afara acestuia.
Sistemele autonome nu fac toate parte din aceeasi organizatie. De fapt, ele apartin de cele mai
multe ori unor companii concurente. Din acest motiv, rutele calculate de BGP iau in calcul si aceste
considerente de afaceri.
Sistemele autonome apartin de obicei furnizorilor de servicii de Internet sau altor organizatii
mari, cum ar fi: companii ce furnizeaza tehnologie, universitati, agentii guvernamentale, institutii sti-
intifice, etc. Fiecare sistem autonom care doreste sa faca schimb de informatii de routare
trebuie sa fie inregistrat cu un numar de sistem autonom, notat ASN (Autonomous Sys-
tem Number). Internet Assigned Numbers Authority (IANA) atribuie ASN-uri registrelor regionale
de Internet (RIR), care apoi le atribuie furnizorilor de servicii de Internet si apoi retelelor. Numerele
sistemelor autonome sunt numere ce se reprezinta pe 16 biti, cu valori cuprinse intre 1 si 65534 (216 )
dar si numere reprezentate pe 32 de biti, cu valori cuprinse intre 217 si 232 .
Pe scurt, principalele functionalitati ale protocolului BGP, sunt:
asigura comunicarea intre doua sisteme autonome
accepta paradigma bazata pe ”next hop”
informatiile furnizate in retea, utilizand acest protocol, includ si informatii cu privire la drumurile
dintre noduri
poate implementa diverse politici configurate de administratorul de retea, cum ar fi spre exemplu
distingerea rutelor din interiorul sistemului autonom de cele dintre sisteme autonome
ruleaza peste protocolul TCP
conserva latimea de banda a retelei
suporta protocolul CIDR
suporta protocoale de securitate
8
Corina-Ştefania Nănău
1.1.4 Protocoale bazate pe starea legaturilor
Protocoale bazate pe starea legaturilor, cum ar fi OSPF sau IS-IS, determina caile de routare
prin schimbul unui pachet cu informatii despre starea legaturii, numit LSA (Link State
Advertisments), cu fiecare router vecin. Astfel, fiecare router construieste un Link State Pachet care
contine identificatorul sau predefinit, dar si informatii despre retelele si subretelele conectate. Routerul
trimite apoi pachetul catre routerele vecine. Pachetele primite contin informatii suplimentare despre
caile catre alte retele si rata de transfer a datelor in acele retele. Routerele reunesc aceste informatii
cu cele cunoscute anterior si le stocheaza in tabelele lor de routare.
Conceptul de baza al routarii bazate pe starea legaturilor (Link-State Routing) este acela ca
fiecare nod construieste o harta a conectivitatii la retea (o harta a drumurilor din retea), sub forma
unui grafic, care arata ce nod este conectat la ce nod.
Aceasta abordare contrasteaza cu protocoalele de routare bazate pe vectori de distanta, care
functioneaza prin faptul ca fiecare nod isi partajeaza tabelul de routare cu vecinii sai. Intr-un protocol
bazat pe starea legaturilor, singura informatie transmisa intre nodurile de retea (routere) este legata
de construirea hartilor de conexiuni.
Astfel, in cazul protocoalelor de routare bazate pe starea legaturilor, fiecare router detine infor-
matii despre topologia completa a retelei. Fiecare router calculeaza apoi in mod independent cel mai
bun hop urmator de la el pana la fiecare destinatie posibila din retea, folosind informatiile locale ale
topologiei. Colectia de ”best next hops” formeaza tabelul de routare.
Desi protocoalele bazate pe starea legaturilor sunt considerate, pe buna dreptate, mai complexe
decat protocoalele bazate pe vectori de distanta, functionalitatea de baza a acestora nu este deloc
complexa. Ea este asa cum urmeaza:
Fiecare router stabileste o legatura (conexiune) cu fiecare dintre vecinii sai.
Fiecare router trimite mesaje de difuzare privind starea legaturii (LSA).
Fiecare router stocheaza o copie a tuturor LSA-urilor pe care le-a vazut intr-o baza de date
proprie. Daca totul functioneaza corect, bazele de date din toate routerele ar trebui sa fie
identice.
Baza de date topologica completa, numita si baza de date cu starea legaturilor, descrie un
graf al interconectarii routerelor din retea. Folosind algoritmul Dijkstra, fiecare router poate
calcula drumul cel mai scurt catre fiecare nod din retea si va introduce aceste informatii in
tabelul de routare.
Principalul avantaj al unui protocol de routare de tip Link-State este cunoasterea completa a
topologiei, care permite routerelor sa calculeze drumuri care indeplinesc orice criterii specifice. Un alt
beneficiu este acela ca trimit actualizari numai atunci cand exista o schimbare in retea, spre deosebire
de protocoalele bazate pe vector de distanta care incarca constant traficul din retea. De asemenea,
protocoalele bazate pe starea legaturilor se pot actualiza mai rapid si pot recalcula o ruta atunci
cand o legatura sau un router au probleme de functionare. Principalul dezavantaj insa al unui astfel
de protocol de routare este faptul ca nu este usor scalabil, deoarece se adauga mai multe routere la
domeniul de routare. Cresterea numarului de routere creste dimensiunea si frecventa actualizarilor
topologiei, precum si timpul necesar pentru a calcula rutele de la un nod sursa la oricare nod destinatie.
Aceasta lipsa de scalabilitate inseamna ca un protocol de routare de tip Link-State este nepotrivit
pentru routarea in reteaua Internet, motiv pentru care directioneaza doar traficul din interiorul unui
sistem autonom.
9
Corina-Ştefania Nănău
foloseste mesajele primite pentru a construi o baza de date, care descrie topologia sistemului autonom,
avand in vedere ca toate routerele vor ajunge la aceeasi baza de date in urma calculelor.
Din aceasta baza de date, fiecare router isi calculeaza propriul tabel de routare folosind un
algoritm de tip SPF (Shortest Path First), cum este algoritmul Dijkstra. Acest tabel de routare
contine toate destinatiile despre care protocolul de routare contine informatii, aceste destinatii fiind
asociate cu adresa IP a urmatoarei opriri din drumul catre destinatie si interfata de iesire catre acea
oprire.
Functia cost asociata legaturilor din retea este o functie utilitate compusa din mai multe metrici:
distanta de routare sau RTT (round-trip time), capacitatea de transfer de date printr-o lagatura,
disponibilitatea si fiabilitatea legaturilor. Acest calcul al costului unei legaturi se face printr-un proces
dinamic, echilibrand traficul pe rutele cu costuri egale.
Protocolul OSPF recalculeaza rutele ori de cate ori topologia retelei se modifica, folosind algo-
ritmul Dijkstra si minimizand traficul de pe care il genereaza acesta. Se ofera deasemenea suport si
pentru mai multe drumuri cu costuri egale.
Protocolul OSPF ofera suport pentru impartirea sistemului autonom pe zone, astfel incat infor-
matiile despre topologia dintr-o zona sa fie ascunse de routerele din afara acestei zone. Acest lucru
permite un nivel suplimentar de protectie la routare si o reducere a traficului creat de protocolul de
routare. Zonele sunt identificate prin numere binare, de 32 de biti, exprimate fie pur si simplu in
zecimal sau sub forma de adrese IPv4. Prin conventie, zona zero sau 0.0.0.0 reprezinta zona
centrala a unei retele OSPF. Administratorii selecteaza adesea adresa IP a unui router principal
dintr-o anumita zona ca identificator pentru zona respectiva. Fiecare zona suplimentara trebuie sa
aiba o conexiune la zona OSPF centrala (backbone). Astfel de conexiuni sunt pastrate de un router
de interconectare, cunoscut sub numele de router de frontiera de zona sau ABR (Area Bor-
der Router). Un ABR stocheaza baze de date separate pentru fiecare zona pe care o deserveste si
pastreaza rezumatul rutelor pentru toate zonele din retea. In Fig. 1.3 se poate observa schema unei
retele impartite in mai multe zone / arii.
OSPF ruleaza peste IPv4 si IPv6, dar nu utilizeaza si protocoale de la nivelul transport, cum
ar fi UDP sau TCP. Acesta isi incapsuleaza datele direct in pachete IP cu numarul de protocol 89.
Neutilizand TCP sau UDP, OSPF implementeaza propriile functii de detectare si corectare a erorilor
de transport. OSPF foloseste adresarea multicast pentru a distribui informatii de difuzare despre
ruta. Acesta rezerva adresele de multicast 224.0.0.5 (IPv4) si FF02::5 (IPv6) pentru toate routerele
SPF/Link-State, iar 224.0.0.6 (IPv4) si FF02::6 (IPv6) pentru toate routerele desemnate. Pachetele
IP multicast OSPF nu traverseaza niciodata routerele IP si nu parcurg niciodata mai mult de un hop.
10
Corina-Ştefania Nănău
Prin urmare, OSPF poate fi considerat un protocol la nivelul unei legaturi, dar este adesea atribuit si
Nivelului Aplicatie din modelul TCP/IP. OSPF peste IPv4 poate functiona in siguranta intre routere,
optional folosind mai multe metode de autentificare pentru a permite doar routerelor de incredere sa
participe la procesul de routare din interiorul sistemului autonom.
Protocolul OSPFv3 este cel folosit peste IPv6 si se bazeaza pe protocolul standard de securitate
IPv6 (IPsec), neavand metode interne de autentificare. Cu exceptia legaturilor virtuale, toate schim-
burile de pachete dintre noduri vecine utilizeaza exclusiv adresarea locala a legaturii IPv6. Protocolul
IPv6 ruleaza pe fiecare legatura din retea in defavoarea prezentei subretelelor din IPv4.
11
Corina-Ştefania Nănău
abordeaza congestionarea includ scheme de prioritate care transmit unele pachete cu o prioritate mai
mare fata de alte pachete, dar si alocarea explicita a resurselor de retea anumitor fluxuri de date.
Alocarea resurselor retelei (latimea de banda, spatiul de stocare din routere sau switch-uri) este
o problema competitionala. La un moment dat pot exista mai multe cereri de resurse din partea
aplicatiilor decat poate oferi reteaua. Astfel, anumiti utilizatori ai retelei vor primi la un moment dat
mai putine resurse decat au cerut. Daca s-ar acorda resursele cerute tuturor solicitantilor, ar aparea
fenomenul de supraincarcare a retelei.
La nivelul routerelor sau switch-urilor exista spatii de stocare numite buffere, or-
ganizate sub forma de cozi, in care sunt pastrate pachete / cadre de date care urmeaza
sa fie transmise mai departe. Daca la un moment dat nu mai exista spatiu de stocare in aceste
buffere si sosesc pachete / cadre de date, o parte dintre acestea trebuiesc abandonate. Care pachete
vor fi abandonate si care nu depinde de modalitatea de implementare a cozii. Cand un astfel de
fenomen de suprasolicitare a cozii apare frecvent, spunem ca reteaua este congestionata.
Problema congestiei poate fi cel mai bine evidentiata intr-o retea cu comutare de pachete, cum
este cazul Internetului. Spre deosebire de retelele locale (LAN-uri), in care o gazda poate observa
traficul de pe mediul de comunicatie si poate decide daca poate transmite sau nu mesaje, aici situatia
este mai complicata. Intr-un astfel de mediu, o anumita sursa poate avea o capacitate suficienta pe
un mediu de comunicatie la care ea este conectata local, dar undeva pe inter-retea pachetele transmise
de ea pot intalni o legatura care ofere o latime de banda cu o dimensiune insuficienta. La nivelul unei
retele, controlul congestiei si alocarea resurselor reprezinta componente ale aceleiasi probleme. Daca
la nivelul comunicatiei in retea ar exista o planificare a utilizarii circuitelor fizice de catre cele virtuale,
atunci controlul congestiei nu ar mai fi necesar.
Trebuie facuta o distinctie clara intre controlul fluxului de date si controlul congestiei.
Daca controlul fluxului se refera la a regla comunicatia dintre un transmitator mai rapid si un
primitor mai lent, controlul congestiei se refera la a pastra activi numai anumiti transmitatori
din retea sau a abandona o parte dintre pachetele care sunt transmise prin mediul de comunicatie al
retelei.
Pe de alta parte, controlul congestiei nu este nici acelasi lucru cu routarea, ci este o operatiune
care ar trebui inclusa in procesul de routare. Legaturilor congestionate li se asociaza astfel o anumita
valoare (o pondere) si, tinand cont de aceasta valoare, routerele vor cauta sa transmita pachetele
evitand conexiunile congestionate.
Exista insa si situatii in care legatura congestionata nu poate fi evitata. Intr-o astfel de situatie
spunem ca are loc o ”gatuire” in retea.
Problema evitarii congestiei trebuie rezolvata atat la nivel de routere cat si la nivel
de gazde. Fiecare router ia decizii in ceea ce priveste care dintre pachete sunt transmise mai departe
si care sunt abandonate. De asemenea, acestea informeaza gazdele cu privire la numarul maxim de
pachete care este permis sa fie transmis in retea. La nivel de gazda, se observa conditiile de trafic din
retea, adica ponderea pachetelor care au ajuns la destinatie din numarul total al pachetelor transmise.
Vom utiliza notiunea de flux (de date) pentru a defini o secventa de pachete transmise
de la o gazda sursa la o gazda destinatie, care urmeaza un acelasi drum pe mediul de
comunicatie al retelei. O modalitate prin care este realizata alocarea resurselor, este cea bazata pe
rezervare. In astfel de sisteme, gazdele cer retelei alocarea de resurse pentru intervalul de timp cat este
stabilit un anumit flux. Astfel, fiecare router ar trebui sa aloce resurse suficiente fluxului respectiv.
Daca la un anumit router nu se poate face alocarea de resurse, deoarece s-ar realiza supraincarcarea
routerului respectiv, atunci acesta va abandona pachetele primite de la acel flux.
O metoda mai performanta de control al congestiei este cea bazata pe conceptul de ”feedback”.
Gazdele incep transmiterea de date fara a cere alocarea de resurse si isi ajusteaza transmiterea de date
pe baza ”feedbackului” pe care il primesc. Acest feedback poate fi unul explicit (un router congestionat
transmite un mesaj de tipul ”incetineste transmiterea” gazdei cu care comunica) sau poate fi unul
implicit (atunci cand gazda ajusteaza propria transmitere de date prin observarea comportamentului
retelei, reflectat prin numarul de pachete pierdute). In cadrul acestor metode observam rolul major
al routerelor in alocarea resurselor.
Controlul congestiei sub TCP se bazeaza pe urmatoarea idee: gazda sursa trebuie sa fie capabila
12
Corina-Ştefania Nănău
sa determine capacitatea retelei de a primi pachete de la aceasta, pachete pe care sa le poata trans-
porta in siguranta catre destinatie. Acest lucru se poate realiza pe baza ACK-urilor primite. Astfel,
atunci cand o gazda sursa primeste confirmarea primirii unui pachet transmis anterior de catre gazda
destinatie, ea poate sa transmita un nou pachet.
Protocolul TCP foloseste un algoritm de evitare a congestiei retelei care include diverse aspecte
ale unei scheme de crestere aditiva / scadere multiplicativa a cantitatii de date transmise (AIMD -
Additive Increase / Multiplicative Decrease). Aceasta schema de lucru este utilizata in conjunctie si
cu alte abordari, care includ metoda pornirii lente (Slow Start), cea a ferestrei de congestie (CWND -
Congestion Window) sau cea a retransmiterii rapide (Fast Retransmit), pentru a evita congestionarea
retelei. Algoritmul de evitare a congestiei utilizat de protocolul TCP constituie baza pentru controlul
congestiei in Internet. Conform principiului end-to-end, controlul congestiei este in cea mai
mare parte o functionalitate a gazdelor din Internet, nu a retelei in sine. Exista mai multe
variante si versiuni ale algoritmului de control al congestiei, implementate in stivele de protocoale ale
sistemelor de operare ce ruleaza pe dispozitivele care se conecteaza la Internet.
Pentru a evita colapsul provocat de o posibila congestie, TCP utilizeaza o strategie de control
al congestiei cu mai multe fatete. Protocolul TCP mentine astfel un CWND pentru fiecare conexiune,
limitand numarul total de pachete nerecunoscute (pentru care nu s-a primit un ACK) care ar putea
fi in tranzit de la un nod sursa la un nod destinatie. Aceasta abordare este similara cu algoritmul
ferestrei glisante a protocolului TCP, utilizat pentru controlul fluxului. Atunci cand o sursa are mai
multe pachete in tranzit foloseste sosirea unui ACK drept semnal ca un pachet al sau a parasit reteaua,
ajungand la destinatie, putand astfel transmite un nou pachet fara a creste gradul de congestionare al
retelei. Determinarea capacitatii disponibile a retelei nu este o sarcina usoara, deoarece transmisiile
de date in retea variaza. Astfel si latimea de banda disponibila variaza in timp, iar gazdele din retea
trebuie sa isi ajusteze numarul de pachete pe care le transmit.
In continuare vor fi descrise pe rand mecanismele utilizate de protocolul TCP pentru controlul
congestiei. Chiar daca acestea sunt descrise pe rand si creaza impresia ca sunt algoritmi independenti,
acestia lucreaza in ansamblu pentru a realiza controlul congestiei in TCP. Exista o varianta standard
de control al congestiei, insa exista in uz mai multe variante ale acesteia, iar cercetatorii continua sa
studieze si mai multe abordari ale acesteia.
13
Corina-Ştefania Nănău
setata in prezent la 16 pachete. Daca este detectata o pierdere, CWND este setat la 8. In mod normal,
o pierdere este detectata atunci cand are loc un timeout, dar TCP mai are si alte mecanisme pentru
a detecta pachetele abandonate. Pierderile suplimentare fac ca valoarea lui CWND sa fie redusa la 4,
apoi 2, si in final la 1 pachet. Valoarea lui CWND nu are voie sa scada sub dimensiunea unui singur
pachet sau, in terminologia TCP, nu poate scadea sub dimensiunea maxima a segmentului (MSS
- Maximum Segment Size), care este minim 1.
De asemenea, fereastra de congestie creste atunci cand apare o noua capacitate disponibila in
retea. Aceasta este partea de ”crestere aditiva” a metodei AIMD. De fiecare data cand sursa trimite
cu succes un numar de CWND pachete, adica au fost confirmate in timp util printr-un mesaj de tip
ACK acel grup de CWND pachete, se adauga o unitate la valoarea lui CWND. Aceasta crestere liniara
este ilustrata in Fig. 1.4.
In practica insa, protocolul de control al congestiei sub TCP nu asteapta ACK-uri pentru tot
grupul de pachete, ci incrementeaza CWND pentru fiecare ACK care soseste. Mai exact, fereastra de
congestie este incrementata dupa cum urmeaza, de fiecare data cand soseste un ACK:
1 Increment = MSS * ( MSS / CWND ) ;
2 CWND += Increment ;
Adica, in loc sa creasca CWND cu un numar de ferestre egal cu MSS pentru fiecare RTT
(Round Time Trip), este incrementat cu o fractie din MSS de fiecare data cand este primit un ACK.
Presupunand ca fiecare ACK confirma primirea unui volum de date indicat de MSS, atunci acea fractie
este M SS/CW N D.
Acest model de crestere si scadere continua a ferestrei de congestie se regaseste pe toata durata
de viata a conexiunii. Conceptul important de inteles despre AIMD este ca sursa este dispusa sa-si
reduca fereastra de congestie intr-un ritm mult mai rapid decat este dispusa sa-si mareasca aceasta
fereastra. S-a demonstrat in practica faptul ca AIMD este o conditie necesara pentru ca un mecanism
de control al congestiei sa fie stabil.
O explicatie intuitiva a motivului pentru care TCP scade fereastra in mod agresiv si o creste intr-
un mod conservator este ca exista consecinte prea mari in cazul unei ferestre cu valoare mare. Acest
lucru se datoreaza faptului ca atunci cand fereastra este prea mare, pachetele care sunt abandonate
vor fi retransmise, ceea ce face congestia sa se agraveze. Este important astfel sa se iasa rapid din
aceasta stare.
14
Corina-Ştefania Nănău
Avand in vedere ca timeout-ul este un indiciu important al starii de congestie, care de-
clanseaza scaderea multiplicativa, TCP are nevoie de cel mai precis mecanism de timeout. Principalul
lucru de retinut despre acest mecanism este ca timeout-urile sunt setate in functie de valoarea medie
a valorii RTT, cat si de deviatia standard a acelei medii.
Mecanismul de crestere aditiva este util atunci cand nodurile sursa opereaza aproape de capa-
citatea maxima de transfer a retelei. Insa, daca s-ar folosi acel mecanism de crestere aditiva atunci
cand conexiunea este abia deschisa, ar dura prea mult sa se ajunga la capacitatea maxima. Astfel,
TCP mai ofera un mecanism, numit in mod ironic ”Slow Start”.
15
Corina-Ştefania Nănău
obisnuit de expirare. Mecanismul de retransmitere rapida nu inlocuieste timeout-urile obisnuite, ci
imbunatateste acea facilitate.
Ideea de retransmitere rapida este destul de simpla. De fiecare data cand un pachet de date
ajunge la receptor, acesta raspunde cu o confirmare (un mesaj de tip ACK), iar in situatii de pierdere a
pachetelor se pot trimite si ACK-uri duplicat. Astfel, atunci cand un pachet soseste intr-o alta ordine
decat in cea consecutiva si TCP nu poate confirma inca datele pe care le contine, deoarece datele
anterioare nu au sosit inca, TCP retrimite aceeasi confirmare pe care a trimis-o ultima data. Aceasta
a doua transmisie a aceleiasi confirmari se numeste ACK duplicat. Atunci cand expeditorul vede
un ACK duplicat, va sti ca destinatarul cel mai probabil a pierdut un pachet. Exista si posibilitatea
ca pachetul anterior sa fi fost doar intarziat, nu pierdut, expeditorul asteptand in acest caz pana cand
primeste 3 ACK-uri duplicate si apoi retransmite pachetul lipsa.
Spre exemplu, daca se trimit 6 pachete. Dupa primirea primului pachet de catre receptor,
acesta va trimite un mesaj de confirmare aferent acestui pachet. Dupa primirea celui de-al doilea se
trimite o confirmare de primire a pachetului 2. Daca pachetul 4 ajunge urmatorul (inaintea pachetului
3), receptorul trimite confirmare tot pentru primirea pachetului 2, deoarece confirma doar secventele
sosite consecutiv. Sursa va constata ca a venit un ACK duplicat pentru pachetul 2 si isi da seama
ca s-a intamplat ceva cu pachetul 3: ori este intarziat, ori s-a pierdut. Dupa ce primeste 3 ACK-uri
duplicate pentru pachetul 3, il retransmite, deoarece concluzioneaza ca pachetul a fost distrus. Atunci
cand se utilizeaza retransmiterea rapida, expeditorul nu asteapta expirarea timeout-ului, ci dupa cele
3 ACK-uri duplicat va retransmite pachetul. In Fig. 1.5 se poate observa situatia descrisa anterior.
In cazul in care pachetul 3 ajunge cu succes in urma retransmiterii, receptorul va trimite un ACK
corespunzator ultimului pachet consecutiv pe care il are (pachetul 6 in cazul de fata).
16
Corina-Ştefania Nănău
Bibliografie
[4] https://en.wikipedia.org/wiki/Routing_protocol
[5] https://www.techtarget.com/searchnetworking/answer/Static-and-dynamic-routing#:
~:text=Static\%20routing\%20has\%20a\%20smaller,tables\%20to\%20identify\%20rout
e\%20availability.
[6] https://en.wikipedia.org/wiki/Interior_Gateway_Routing_Protocol
[7] https://www.cloudflare.com/learning/security/glossary/what-is-bgp/
[8] https://www.ciscopress.com/articles/article.asp?p=24090&seqNum=4
[9] https://en.wikipedia.org/wiki/Open_Shortest_Path_First
[10] https://en.wikipedia.org/wiki/IS-IS
[11] https://book.systemsapproach.org/congestion/tcpcc.html
17