Sunteți pe pagina 1din 17

Corina-Ştefania Nănău

Cuprins

1.1 Protocoale de routare in retea - completare . . . . . . . . . . . . . . . . . . . . . . . . 2


1.1.1 Diferente intre routarea statica si routarea dinamica . . . . . . . . . . . . . . . 3
1.1.2 Exemple de utilizare a routarii statice si a celei dinamice; clase de protocoale
dinamice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3 Protocoale bazate pe vectori de distanta . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4 Protocoale bazate pe starea legaturilor . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Problema congestiei intr-o retea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 Metoda cresterii aditive /descresterii multiplicative - AIMD . . . . . . . . . . . 13
1.2.2 Metoda startului lent - Slow Start . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.3 Metoda retransmiterii rapide - Fast Retransmit . . . . . . . . . . . . . . . . . . 15
Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1
Corina-Ştefania Nănău

Cursul 8

1.1 Protocoale de routare in retea - completare


Acest curs aduce cateva notiuni in completarea celor oferite in cursul dedicat nivelului Retea,
cel care se ocupa de routarea in retea.
Un protocol de routare specifica modul in care routerele comunica intre ele pentru
a distribui informatii care le permit sa selecteze rute intre nodurile dintr-o retea de
calculatoare. Routerele indeplinesc astfel functiile de directionare a traficului pe Internet;
pachetele de date fiind transmise prin reteaua Internet de la router la router pana ajung la computerul
de destinatie.
Algoritmii de routare sunt cei care determina alegerea specifica a rutei. Fiecare
router are initial cunostinte doar despre retelele atasate direct la el. Un protocol de routare partajeaza
aceste informatii mai intai intre vecinii imediati si apoi in intreaga retea. In acest fel, routerele obtin
cunostinte despre intreaga topologie a retelei. Capacitatea protocoalelor de routare de a se adapta
dinamic la conditiile in schimbare, cum ar fi conexiunile sau componentele dezactivate, este ceea ce
ofera retelei Internet toleranta la aparitia de erori, dar si o disponibilitate ridicata.
Caracteristicile specifice ale protocoalelor de routare includ:
ˆ modul in care sunt evitate buclele in procesul de routare,
ˆ modul in care sunt selectate rutele optime, folosind informatii despre costurile per hop,
ˆ timpul de care au nevoie pachetele pentru a ajunge la fiecare nod de routare,
ˆ scalabilitatea acestor protocoale,
ˆ accesul la infrastrucutura din cloud (aceasta fiind o caracteristica mai deosebita a unui protocol
de routare).
Pe scurt, un protocol de routare este un algoritm care ii ofera unui router abilitatea de
a invata dinamic informatii despre retelele existente in jurului lui (sau chiar in Internet).
Practic, routerele invata dinamic unul despre celalalt, fara a fi nevoie de interventia unui administrator
care sa configureze fiecare router cu toate drumurile disponibile catre toate celelalte routere din retea.
O principala clasificare a protocoalelor de routare se face in functie de momentul configurarii
routerelor cu informatiile despre retea. Avem astfel protocoale de routare statice si protocoale
de routare dinamice.
Rutele statice sunt configurate inaintea oricarei comunicatii in retea. Routarea dinamica, pe
de alta parte, presupune ca routerele sa faca schimb de informatii cu routerele vecine pentru a afla
despre drumurile prin retea. Se alege pentru utilizare routarea statica sau cea dinamica in functie
de contextul retelei. Exista insa unele retele care folosesc ambele variante. Astfel, pentru retelele de
mici dimensiuni se prefera routarea statica, pe cand pentru cele de dimensiuni mai mari se prefera cea
dinamica, intrucat cea statica devine greoi de implementat si ineficienta.
Routarea statica sau neadaptativa este utilizata pentru a defini o ruta atunci cand exista o
singura ruta in retea sau exista o ruta preferata pentru ca traficul sa ajunga la o destinatie. Aceasta
ruta este configurata manual de catre administratorul retelei. Routarea statica utilizeaza tabele de
routare mici, in general cu o singura intrare pentru fiecare destinatie. De asemenea, aceasta nece-
sita mai putin timp de calcul decat routarea dinamica, deoarece fiecare ruta / drum din retea este
preconfigurat.
Deoarece rutele statice sunt preconfigurate, administratorii trebuie sa reconfigureze
manual rutele pentru a se adapta la schimbarile din retea atunci cand acestea apar. Rutele

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.

1.1.1 Diferente intre routarea statica si routarea dinamica


In cele ce urmeaza vom aminti cateva dintre diferentele principale dintre routarea statica si cea
dinamica.
1. Selectarea rutei. Routarea statica foloseste o singura ruta preconfigurata pentru a trimite
datele catre destinatie, pe cand routarea dinamica ofera mai multe rute disponibile catre desti-
natie.
2. Abilitatea de a actualiza rutele. Administratorii de retea trebuie sa reconfigureze manual
rutele statice, pe cand routarea dinamica utilizeaza algoritmi pentru a se actualiza automat,
odata cu schimbarea conditiilor de trafic din retea sau a starii legaturilor dintre nodurile retelei.
3. Tabelele de routare. Routarea statica are o tabela de routare de mici dimensiuni, cu o singura
intrare pentru fiecare destinatie, in timp ce routarea dinamica necesita ca routerele sa-si trimita
intregul tabel de routare pentru a identifica disponibilitatea unei rute sau gradul de eficienta in
alegerea unei rute.
4. Utilizarea protocoalelor si a algoritmilor. Routarea statica nu utilizeaza algoritmi de
routare complecsi. Routarea dinamica, in scopul ajustarii rutelor, utilizeaza protocoale pe baza
vectorilor de distanta, cum ar fi RIP sau IGRP si protocoale bazate pe starea legaturilor, cum
ar fi OSPF sau IS-IS.
5. Cerinte de calcul si latime de banda. Routarea statica necesita mai putina putere de calcul
si latime de banda, deoarece utilizeaza tot timpul o singura ruta, preconfigurata. Routarea
dinamica necesita mai multe calcule si mai multa latime de banda pentru a genera mai multe
posibilitati de routare a pachetelor de date.
6. Securitatea. Routarea statica este mai sigura deoarece nu partajeaza rute in intreaga retea.
Routarea dinamica creeaza mai multe riscuri de securitate deoarece partajeaza tabelele de rou-
tare in intreaga retea.
7. Cazurile de utilizare. Routarea statica este utilizata cel mai bine in retelele mai mici, cu mai
putine routere, si este ideala pentru retelele cu arhitectura de retea neschimbatoare. Routarea
dinamica este potrivita pentru retelele mai mari, mai complexe, care au mai multe routere, iar
flexibilitatea sa o face ideala pentru arhitecturile de retea care se schimba frecvent.

1.1.2 Exemple de utilizare a routarii statice si a celei dinamice; clase de protocoale


dinamice
Cele doua tipuri de routare pot fi utilizate intr-o singura retea. Spre exemplu, unele companii
inchiriaza legaturi de retea dedicate pentru a conecta diversele sedii la sediul central. Tot traficul
ar trebui directionat printr-o legatura dedicata, astfel incat sa poata fi preconfigurat ca ruta statica,
care ar deveni apoi prima optiune in alegerea caii de transfer. Daca legatura este intrerupta, o ruta
dinamica ar putea fi otiunea a doua.
Distanta administrativa este un parametru preconfigurat, utilizat in retelele care ruleaza
ambele metode de routare. Este folosit pentru a defini ordinea de selectare a metodelor de routare.
Tehnicile de routare ce reprezinta prima optiune sunt configurate cu numere mici, in timp ce tehnicile
de routare care sunt mai putin preferate, primesc numere mai mari. In exemplul de mai sus, conexiunii
statice (inchiriate) i se va atribui un numar mai mic, iar routarii dinamice ii va fi atribuit un numar
mai mare.

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

Figura 1.1: Calcularea tabelei de routare pentru routerul J

1.1.3 Protocoale bazate pe vectori de distanta


Atunci cand se utilizeaza un protocol bazat pe vector de distanta, cum ar fi RIP, BGP sau
IGRP, fiecare intrare in tabelul de routare specifica numarul de hopuri catre fiecare destinatie (prin
cate noduri de retea se ajunge la fiecare potentiala destinatie).
Initial, dupa ce a terminat procesul de pornire (de boot) fiecare router cunoaste doar retelele
direct conectate. Odata ce incepe protocolul de routare, fiecare router in parte ii va spune vecinului
despre rutele sale direct conectate. Astfel fiecare router va invata rutele pe care vecinul le cunoaste si
el nu. In acest punct, echipamentele stocheaza toata aceasta informatie in tabela de routare.
Fiecare router va trimite toate informatiile pe care le cunoaste despre retea (adica tabela de
routare) catre toti vecinii sai direct conectati. Procesul se repeta pana cand fiecare echipament care
”ruleaza” protocolul de routare stie cum sa ajunga in fiecare punct al retelei. Acesta proces de trimitere
a tabelei de routare este unul repetitiv si are loc la fiecare 30 de secunde.
Protocoalele din aceasta categorie au avantajele s, i dezavantajele lor. Routerele care folosesc
protocoale bazate pe vectori de distanta isi trimit periodic tabele de routare integral, ceea ce produce
o incarcare semnificativa a legaturilor dintre ele, atunci cand acest tip de protocol este utilizat intr-o
retea de mari dimensiuni. Astfel s-ar putea crea si un risc de securitate, care ar putea compromite
reteaua. Deoarece protocoalele bazate pe vectori de distanta determina rutele pe baza numarului de
hopuri, ele pot alege o legatura lenta in defavoarea unei legaturi cu viteza mai mare de transfer de
date atunci cand numarul de hopuri este mai mic prin acea legatura.

Protocolul RIP - Routing Information Protocol


Acesta este unul dintre primele protocoale bazate pe vector de distanta, cu o modaliatate de
functionare mai putin complexa decat alte protocoale aparute ulterior. Acesta este insa un punct de
pornire destul de bun in intelegerea modului general de actionare al protocoalelor bazate pe vectori
de distanta.
In primul rand, metrica pentru RIP este numarul de hopuri, unde un hop este reprezentat de
un router sau de un gateway. Atunci cand un router sau un gateway primeste un pachet, procesarea
necesara pentru livrarea pachetului genereaza un atribut, numit latenta / intarziere de procesare
(Processing Delay). Intarzierea este un factor cumulativ, de care nu se va tine cont in alegerea
drumului. Drumul optim va fi intotdeauna ales pe baza celui mai mic numar de hopuri. Cu toate
acestea, din cauza acestei intarzieri, pentru ca pachetul sa ajunga intr-un timp rezonabil la destinatie,
RIP are un numar maxim de 15 hopuri pe care le accepta, astfel incat, un nod de retea la care se
ajunge in 16 hopuri, va fi considerat inaccesibil.

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.

Protocolul IGRP - Interior Gateway Routing Protocol


Cisco a dezvoltat Protocolul de routare Internet Gateway ca o alternativă la RIP, fiind creat
pentru a depasi limitele acestuia, si anume faptul ca accepta un numar de maxim 15 hopuri si o
singura metrica de routare. IGRP utilizeaza mai multe valori pentru calculul rutelor, si anume:
latimea de banda, intarzierea de transfer, incarcarea si fiabilitatea. Pentru a compara
doua rute, aceste metrici sunt combinate intr-o singura metrica, folosind o formula care poate fi
ajustata prin utilizarea unor constante prestabilite. In mod implicit, metrica IGRP realizata
prin compunerea valorilor amintite va reprezenta o suma intre intarzierile de transfer
pe segmentele de retea tranzitate si cea mai mica latime de banda a segmentelor. Toate
aceste calcule sunt efectuate in vederea obtinerii drumului cel mai scurt spre destinatia pacherelor ce
tranziteaza routerele.
Numarul maxim de hopuri in cazul protocolului IGRP este de 255, dar este o valoare configura-
bila (implicit este 100). Actualizarile de informatii utile in procesul de routare sunt difuzate in mod
implicit la fiecare 90 de secunde. Astfel, la fiecare 90 de secunde routerele transmit tuturor vecinilor
notificari cu privire la modificarile nou aparute.
IGRP este considerat un protocol de routare ”classful” (tine cont de clasele adreselor IP). De-
oarece protocolul nu are un camp pentru masca de subretea, routerul presupune ca toate adresele de
subretea din aceeasi retea utilizeaza masca configurata initial. Acest lucru nu este potrivit pentru
utilizarea adrselor IP fara clasa (cum e cazul protocolului CIDR). Acesta este motivul pentru care
protocoalele ”classful” au devenit mai putin populare, deoarece irosesc spatiul de adrese IP.
Pe scurt, principalele caracteristici ale protocolului IGRP, sunt:

ˆ Tehnologia de routare este una bazata pe vectori de distanta.


ˆ Metricile utilizate sunt: latimea de banda, intarzierea de transmitere, fiabilitatea, gradul de
incarcare al retelei si MTU (More Transmit Unit).
ˆ Transmite actualizari la fiecare 90 de secunde, cu un timp de asteptare de 280 de secunde intre
fiecare sesiune de difuzare.
ˆ Actualizarile declansate atunci cand apar modificari in retea sunt utilizate pentru a eficientiza
procesul de convergenta cu reteaua.
ˆ Pentru ca routerele sa poata comunica informatii de routare, acestea trebuie sa faca parte din
acelasi Associated System Number (AS).
ˆ Numarul maxim de hopuri permise este de 255. Are o valoare implicita de 100, care este adesea

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.

Protocolul BGP - Border Gateway Protocol


Border Gateway Protocol este protocolul standard de gateway extern. Acesta detecteaza mo-
dificarile din tabelele de routare si comunica selectiv acele modificari altor routere prin TCP / IP.
Este printre cele mai utilizate protocoale de routare din categoria celor bazate pe vectori de distanta.
Functionalitatea de baza a acestui protocol vizeaza schimbul de informatii in reteaua Internet, intre
sistemele autonome AS (Autonomous System). Deciziile de routare ale protocolului BGP sunt
luate pe baza politicilor de retea sau pe baza setului de configuratii realizate de catre administratorul
retelei.
Exista si o versiune a acestui protocol, numita iBGP (Interior Border Gateway Protocol),
care se foloseste pentru routarea pachetelor cu informatii in interiorul unui sistem autonom. In contrast
cu acesta, protocolul BGP se mai numeste si eBGP (Exterior Border Gateway Protocol).
Furnizorii de Internet folosesc in mod obisnuit protocolul BGP pentru a-si reuni retelele proprii.
In plus, companiile de mari dimensiuni utilizeaza uneori si BGP pentru a interconecta mai multe retele
interne. Profesionistii in domeniul administrarii retelelor de calculatoare considera BGP drept cel mai
dificil dintre protocoalele de routare, datorita complexitatii procesului de configurare a acestuia.
Dupa cum am mai mentionat si intr-un curs anterior, Internetul este impartit in sute de mii de
retele mai mici, cunoscute sub numele de sisteme autonome. Fiecare dintre aceste retele este in
esenta un grup de routere conduse de o singura organizatie.
Daca ar fi sa facem o comparatie intre transmiterea de pachete de date in Internet si trimiterea
de scrisori intre doua persoane, atunci putem sa ne gandim ca un oras are sute de cutii postale, insa

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.

Figura 1.2: Interconectarea sistemelor autonome

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.

Protocolul OSPF - Open Shortest Path First


Unul dintre cele mai populare protocoale de routare este OSPF (Open Shortest Path First).
Acesta apare in marea majoritate a retelelor medii spre mari, motivul principal fiind faptul ca este
vendor-independent, adica poate fi folosit de oricine (routere produse de Huawei, Cisco, Juniper etc.)
Acesta este un protocol bazat pe IP, fiind de asemenea si el un protocol de gateway interior,
utilizat pentru distributia de informatii in interiorul unui sistem autonom.
Fiecare router OSPF distribuie informatii despre starea sa locala (interfete utilizabile, vecini
accesibili, costul utilizarii fiecarei interfete) catre alte routere folosind un mesaje LSA. Fiecare router

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.

Figura 1.3: Arii in definirea retelelor OSPF

Dirijarea interzonala a pachetelor se face in trei pasi:

1. Calcularea drumului de la sursa la coloana vertebrala;


2. Calcularea drumului de-a lungul coloanei vertebrale pana la zona de destinatie;
3. Calcularea drumului de la coloana vertebrala pana la destinatie.

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.

Protocolul IS-IS - Intermediate System to Intermediate System


Acest protocol functioneaza similar cu varianta OSPF, mult mai raspandita. Protocolul IS-IS
nu ruleaza pe Internet Protocol (IP), ci utilizeaza propria sa schema de adresare.
Atat protocolul IS-IS, cat si protocolul OSPF se bazeaza pe starea legaturilor si ambele folosesc
acelasi algoritm Dijkstra pentru a calcula drumul de cost minim din retea. Ca urmare, ele sunt
similare din punct de vedere conceptual. Ambele accepta routarea de tip CIDR, pot folosi multicast
pentru a descoperi routerele invecinate folosind pachete ”hello” si pot suporta autentificarea pentru
actualizarea informatiilor de routare.
OSPF a fost construit nativ ca un protocol care ruleaza peste IP, iar OSPFv2 este capabil sa
construiasca numai tabele de routare IPv4. IS-IS este un protocol definit pentru modelul OSI. Cu
toate acestea, IS-IS este neutru in ceea ce priveste tipul de adrese de retea pe care le poate routa si a
fost extins pentru a suporta si routarea IPv4, iar ulterior si IPv6.
Atat OSPF cat si IS-IS construiesc o reprezentare topologica a retelei. Aceasta harta indica
subretelele la care poate ajunge fiecare router, utilizand drumul cel mai scurt.
Protocolul IS-IS difera de OSPF prin modul in care sunt definite zonele. Routerele
IS-IS sunt desemnate ca fiind: Nivelul 1 (intra-zona); Nivelul 2 (interzona); sau Nivelul 1–2 (ambele).
Informatiile de routare sunt schimbate intre routere de Nivel 1 din aceeasi zona, iar routerele de Nivel
2 pot forma relatii si pot face schimb de informatii doar cu alte routere de Nivel 2. Routerele de Nivel
1–2 fac schimb de informatii cu ambele niveluri si sunt utilizate pentru a conecta routerele inter-zona
cu routerele din interiorul zonei.
In OSPF, zonele sunt delimitate pe interfata astfel incat un router de frontiera de zona (ABR)
se afla de fapt in doua sau mai multe zone simultan, creand efectiv granitele dintre zonele respective,
in timp ce in IS-IS granitele zonei sunt intre routere (de Nivel 2 sau Nivel 1–2). Un router IS-IS va
face parte intotdeauna dintr-o singura zona.
IS-IS, de asemenea, nu necesita o Zona 0, care sa fie zona de baza prin care trebuie sa treaca tot
traficul dintre zone. Viziunea OSPF insa este aceea de a crea o topologie de tip plasa sau stea intre
mai multe zone, toate atasate direct la Zona Zero. Protocolul IS-IS, prin contrast, creeaza o topologie
logica a unei coloane vertebrale a routerelor de Nivel 2 cu ramuri formate din routere de Nivel 1–2 si
de Nivel 1, care formeaza zonele individuale.
In plus, IS-IS un protocol care se poate scala pentru a putea fi implementat pe retele de dimen-
siuni mai mari, deoarece transmisia de informatii de routare este mai redusa in acest caz. Protocolul
IS-IS poate suporta mai multe routere intr-o zona decat protocolul OSPF.

1.2 Problema congestiei intr-o retea


Problema congestiei intr-o retea de calculatoare dar si in teoria si managementul cozilor in
general consta in reducerea calitatii serviciilor care apare atunci cand un nod sau o legatura
din retea transporta mai multe date decat poate gestiona. Efectele clasice ale acestei situatii
includ: intarzierea stationarii mesajelor in coada, pierderea pachetelor sau blocarea unor noi posibile
conexiuni.
Retelele folosesc insa tehnici de control al congestiei si de evitare a congestionarii retelei in
incercarea evitarii colapsului. Aceste tehnici includ: diminuarea exponentiala a transmiterii de date
in protocoale precum CSMA/CA si CSMA/CD, reducerea dimensiunii ferestrelor in TCP sau utilizarea
unor metode de asteptare in dispozitive precum routerele si switch-urile de retea. Alte tehnici care

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.

1.2.1 Metoda cresterii aditive /descresterii multiplicative - AIMD


Algoritmul de crestere aditiva / descrestere multiplicativa este un algoritm de control cu
bucla inchisa. Acesta combina cresterea liniara a ferestrei de congestie cu descresterea ei exponentiala
atunci cand are loc o congestie. Fluxurile multiple care utilizeaza metoda AIMD de control a congestiei
vor converge in cele din urma pentru a utiliza cantitati egale din resursele unei legaturi congestionate.
TCP mentine o variabila de stare pentru fiecare conexiune, numita Congestion Window
(CWND), care ii permite sa cunoasca numarul de pachete pe care le poate avea in tranzit la un
moment dat. Aceasta variabila este omologa ferestrei de control a fluxului de pe o legatura (numita
Advertised Window), folosita in cazul algoritmului ferestrei glisante. Astfel, numarul maxim de octeti
de date neconfirmate permis este valoarea minima dintre CWND si Advertised Window.
Un nod sursa va seta valoarea lui CWND pe baza nivelului de congestie pe care il percepe ca
fiind prezent in retea. Aceasta implica scaderea lui CWND atunci cand nivelul de congestie creste si
cresterea acestuia atunci cand nivelul de congestie scade.
Intrebarea cheie va fi atunci cum determina sursa ca reteaua este aglomerata si ca ar
trebui sa scada valoarea variabilei CWND? Raspunsul se bazeaza pe faptul ca principalul motiv pentru
care pachetele nu sunt livrate si apare un timeout, este acela ca pachetele au fost abandonate din
cauza congestiei. Sunt rare cazurile in care un pachet sa fie abandonat din cauza unei erori in timpul
transmisiei. Prin urmare, TCP interpreteaza timeout-urile ca un semn de congestie si reduce rata la
care transmite. Mai exact, de fiecare data cand are loc un timeout, sursa seteaza CWND la jumatate
din valoarea sa anterioara. Aceasta injumatatire a lui CWND pentru fiecare timeout corespunde partii
de ”scadere multiplicativa” a metodei AIMD.
Desi CWND este definit in termeni de octeti, este mai usor de inteles scaderea multiplicativa
daca gandim in termeni de pachete intregi. De exemplu, sa presupunem ca valoarea lui CWND este

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.

Figura 1.4: Pachete in tranzit in timpul cresterii aditive

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”.

1.2.2 Metoda startului lent - Slow Start


Aceasta este metoda folosita de TCP la inceputul unei conexiuni, pentru a creste rapid valoarea
lui CWND pana aproape de capacitatea maxima de transfer in retea. Astfel, prima data se trimite un
pachet, iar pentru fiecare mesaj de tip ACK primit se dubleaza numarul de pachete trimise. Denumirea
de ”Slow” este data deoarece gazda creste treptat pana ajunge la capacitatea maxima, nu trimite din
prima un numar de pachete egal cu valoarea ferestrei primita de la destinatie (valoare ce reprezinta
cantitatea de date pe care o poate primi destinatia).
Exista doua situatii diferite in care ruleaza startul lent. Prima este chiar la inceputul unei
conexiuni, moment in care sursa nu are idee cate pachete va putea avea in tranzit la acel moment.
Avand in vedere ca TCP poate rula de la legaturi de 1 Mbps la legaturi de ordinul Gbps, nu exista
nicio modalitate ca nodul sursa sa cunoasca capacitatea retelei. In aceasta situatie, startul lent va
dubla valoarea lui CWND dupa fiecare RTT, pana cand apare o pierdere de pachet, moment in care
se trece la metoda AIMD, aplicandu-se o scadere multiplicativa, impartind CWND la 2.
A doua situatie in care se foloseste pornirea lenta este ceva mai subtila. Aceasta apare atunci
cand conexiunea se intrerupe in timp ce se asteapta un timeout. Conform algoritmului
ferestrei glisante, atunci cand un pachet este pierdut, sursa se blocheaza in asteptarea unui ACK care
nu soseste. In cele din urma, are loc un timeout - expira timpul de asteptare, dar la acest moment
nu mai exista pachete in tranzit, ceea ce inseamna ca sursa nu va primi ACK-uri pentru a debloca
transmisia de noi pachete, crescand valoarea lui CWND. Sursa va primi in schimb un singur ACK
cumulativ care reinitializeaza intreaga fereastra, folosind startul lent pentru a reporni fluxul de date.
Desi sursa foloseste din nou pornirea lenta, de aceasta data cunoaste mai multe informatii
decat stia la inceputul conexiunii. Mai exact, sursa are o valoare curenta pentru CWND. Aceasta
este valoarea care a existat inainte de pierderea ultimului pachet, impartita la 2 ca urmare a acelei
pierderi. Ne putem gandi la aceasta ca fiind valoarea ferestrei de congestie tinta. Este utilizat startul
lent pentru a creste rapid rata de trimitere pana la aceasta valoare, iar dincolo de acest punct este
utilizata cresterea aditiva.
Au fost analizate si alternative pentru startul lent, prin care sursa incearca sa estimeze latimea
de banda disponibila prin mijloace mai sofisticate. Un exemplu se numeste Quick Start. Ideea de
baza este aceea ca un expeditor TCP poate cere o rata initiala de trimitere mai mare decat ar permite
startul lent, inscriptionand valoarea solicitata in pachetul SYN pe care il lanseaza pentru cererea de
conexiune. Routerele de-a lungul drumului spre destinatie pot examina aceasta optiune, pot evalua
nivelul actual de congestie pe legatura de iesire catre urmatorul hop din drum si pot decide daca acea
valoare este acceptabila, daca trebuie utilizata o valoare mai mica sau daca trebuie utilizat startul
lent standard. In momentul in care pachetul SYN ajunge la receptor, acesta va contine fie o valoare
potrivita pentru toate routerele aflate pe drumul spre destinatie, fie o indicatie ca unul sau mai multe
routere din drum nu au putut accepta cererea de pornire rapida. In primul caz, expeditorul utilizeaza
acea valoare pentru a incepe transmisia, iar in ultimul caz se revine la startul lent standard.

1.2.3 Metoda retransmiterii rapide - Fast Retransmit


S-a descoperit ca implementarea grosiera a timeout-urilor TCP a dus la perioade lungi de timp
in care conexiunea se oprea asteptand expirarea acelui timeout. Din aceasta cauza, a fost adaugat
la mecanismul de control al congestiei in TCP un nou mecanism numit retransmitere rapida. Re-
transmiterea rapida declanseaza retransmiterea unui pachet abandonat mai devreme decat mecanismul

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).

Figura 1.5: Metoda retransmiterii rapide bazata pe ACK-uri duplicate

Bibliografia folosita ca sursa de documentare pentru majoritatea informatiilor pre-


zentate in acest curs este urmatoarea:

16
Corina-Ştefania Nănău

Bibliografie

[1] Reţele de calculatoare, Curs, UNIVERSITATEA ”POLITEHNICĂ” DIN BUCUREŞTI, FACUL-


TATEA TRANSPORTURI, Departamentul Telecomenzi şi Electronică ı̂n Transporturi

[2] Florea Ion, Reţele de calculatoare, Curs

[3] Silviu Vasile, Fundamentele retelelor de calculatoare (Introduction to Networks)

[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

S-ar putea să vă placă și