Sunteți pe pagina 1din 26

RETELE DE CALCULATOARE

NIVELUL DE RETEA

1. Nivelul de retea
2. Dirijare
3. Exemple
NIVELUL REŢEA

 3. Nivelul reţea imparte datele in pachete,


asigură dirijarea unităţilor de date între
nodurile sursă şi destinaţie, trecând eventual
prin noduri intermediare (routing ). Este
foarte important ca ruta de date să fie astfel
aleasă încât să se evite aglomerarea
anumitor zone ale reţelei (congestionare).
Interoperabilitatea reţelelor cu arhitecturi
diferite este o funcţie a nivelului reţea.
NIVELUL REŢEA
 Funcţia principală a nivelului reţea este dirijarea (dirijarea)
pachetelor de la maşina sursă către maşina destinaţie. în
majoritatea subreţelelor pachetele vor face salturi multiple
pentru a-şi face călătoria. Singura excepţie remarcabilă o
reprezintă reţelele cu difuzare, dar chiar şi aici dirijarea este
importantă, atunci când sursa şi destinaţia nu sunt în aceeaşi
reţea.

 Algoritmii care aleg calea şi structurile de date folosite de aceştia


reprezintă un domeniu important al proiectării nivelului reţea.

 Algoritmul de dirijare (routing algorithm) este acea parte a


software-ului nivelului reţea care răspunde de alegerea liniei de
ieşire pe care un pachet recepţionat trebuie trimis mai departe.
NIVELUL REŢEA
 Dacă subreţeaua foloseşte intern datagrame, această decizie
trebuie luată din nou pentru fiecare pachet recepţionat, deoarece e
posibil ca cea mai bună rută să se fi modificat între timp.

 Dacă subreţeaua foloseşte circuite virtuale, decizia de dirijare se ia


doar la stabilirea unui nou circuit virtual. După aceea pachetele de
date vor urma doar calea stabilită anterior. Acest ultim caz este
numit uneori sesiune de dirijare, deoarece calea rămâne în
funcţiune pentru o întreagă sesiune utilizator .

 Indiferent dacă ruta se alege independent pentru fiecare pachet sau


doar la stabilirea unei noi conexiuni, există anumite proprietăţi pe
care un algoritm de dirijare trebuie să le aibă: corectitudine,
simplitate, robusteţe, stabilitate, prevenirea defavorizării nodurilor,
optimalitate.
NIVELUL REŢEA
 Algoritmii de dirijare pot fi grupaţi în două mari clase: neadaptivi şi
adaptivi.

 Algoritmii neadaptivi nu îşi bazează deciziile de dirijare pe


măsurători sau estimări ale traficului şi topologiei curente. Astfel,
alegerea căii folosite pentru a ajunge de la nodul A la nodul B se
calculează în avans, off-line şi parvine ruterului la iniţializarea
reţelei. Această procedură se mai numeşte şi dirijare statică.

 Algoritmii adaptivi îşi modifică deciziile de dirijare pentru a


reflecta modificările de topologie şi de multe ori şi pe cele de trafic.
Algoritmii adaptivi diferă prin locul de unde îşi iau informaţia (de
exemplu local, de la un ruter vecin sau de la toate ruterele), prin
momentul la care schimbă rutele (de exemplu la fiecare T secunde,
când se schimbă încărcarea sau când se schimbă topologia) şi prin
metrica folosită pentru optimizare (de exemplu distanţa, numărul
de salturi sau timpul estimat pentru tranzit).
NIVELUL DE RETEA
1. Dirijare pe calea cea mai scurta
Metrica: calea ce mai scurta
-in numar de noduri
- distanta geografica
- intarzierea totala
- costul transmisiei
- banda totala
- trafic
Se foloseste algoritmul lui Dijkstra
NIVELUL DE RETEA
2. Dirijare prin inundare
Pachetul este trimis pe toate caile in afara de calea pe
care a venit. Se genereaza un numar mare de pachete
duplicat si acest numar poate creste la infinit daca nu se
iau unele masuri.

O masura este inserarea unui contor de salturi care scade


la fiecare pas, pachetul va fi distrus cand contorul ajunge
la zero.

O alta masura este identificarea pachetelor, pentru a


preveni retransmiterea acestora, prin inserarea unui
numar de secventa, ruterul mentine o lista de numere.
NIVELUL DE RETEA
2. Dirijare prin inundare
O variantă a algoritmului de inundare, care este şi ceva mai
practică, este inundarea selectivă. în acest algoritm ruterele
nu trimit fiecare pachet recepţionat pe fiecare legătură de
ieşire, ci doar pe acele linii care duc aproximativ în direcţia
potrivită.

De obicei sunt puţine motive pentru a trimite un pachet spre


partea de vest a reţelei folosind o legătură spre est, excepţie
făcând reţelele cu topologii deosebite.
Inundarea nu este practică pentru majoritatea aplicaţiilor,
Iasă are destule utilizări.
NIVELUL DE RETEA
2. Dirijare prin inundare
De exemplu, în aplicaţiile militare, unde un mare număr de
rutere pot fi scoase din funcţionare la orice moment,
robusteţea extraordinară a inundării este necesară. în
aplicaţiile de baze de date distribuite, este uneori necesar să
fie actualizate toate bazele de date concurent, caz în care
inundarea poate fi folositoare.
O a treia utilizare posibilă a inundării este ca metrică la care
să se raporteze toţi ceilalţi algoritmi de dirijare. Inundarea
alege întotdeauna cea mai scurtă cale, deoarece alege în
paralel toate căile posibile. în consecinţă, nici un alt algoritm
nu poate produce o întârziere mai redusă (dacă ignorăm
supraîncărcarea generată de procesul de inundare).
NIVELUL DE RETEA
3. Dirijare bazata pe flux
Tine cont atat de topologie cat si de flux.
Trebuie sa fie cunoscute in avans topologia, fluxul si
capacitatile liniilor.

Se calculeaza intarzierea medie a unui pachet pe fiecare linie


folosind elemente de teoria cozilor.

Pe baza întârzierilor medii ale tuturor liniilor se poate calcula


imediat, ca medie ponderată după flux, întârzierea medie a
unui pachet pentru întreaga subreţea. Problema dirijării se
reduce apoi la găsirea algoritmului de dirijare care produce
întârzierea medie minimă pentru subreţea.
NIVELUL DE RETEA
4. Dirijare cu vectori distanta - dinamic

Algoritmul de dirijare cu vectori distanţă (distance vector


routing) presupune că fiecare ruter menţine o tabelă (de
exemplu un vector) care păstrează cea mai bună distanţă
cunoscută spre fiecare destinaţie şi linia care trebuie
urmată pentru a ajunge acolo. Aceste tabele sunt
actualizate prin schimbul de informaţii între nodurile
vecine.

Algoritmul de dirijare cu vectori distanţă este cunoscut şi


sub alte nume, cum ar fi algoritmul distribuit de dirijare
Bellman-Ford sau algoritmul Ford-Fulkerson.
NIVELUL DE RETEA
4. Dirijare cu vectori distanta - dinamic

În dirijarea pe baza vectorilor distanţă, fiecare ruter


păstrează o tabelă de dirijare conţinând o intrare pentru
fiecare ruter din subreţca. Această intrare are două părţi:
linia de ieşire preferată care se foloseşte pentru destinaţia
respectivă şi o estimare a timpului sau distanţei până la acea
destinaţie.

Metrica folosită poate fi numărul de salturi, întârzierea în


milisecunde, numărul total de pachete care aşteaptă în cozi
de-a lungul căii.
NIVELUL DE RETEA
4. Dirijare cu vectori distanta - dinamic
Se presupune că ruterul cunoaşte „distanţa" spre fiecare din
vecinii săi. Dacă se foloseşte metrica salturilor, distanţa este de
doar un salt.

Dacă metrica folosită este cea a lungimilor cozilor de aşteptare,


ruterul examinează pur şi simplu lungimile acestor cozi.

Dacă metrica este cea a întârzierilor, ruterul o poate măsura


direct prin pachete speciale ECHO, în care receptorul va marca
doar timpul curent (ştampila de timp) şi le va trimite înapoi cât
mai repede posibil.
NIVELUL DE RETEA
4. Dirijare cu vectori distanta - dinamic
Fiecare ruter comunica doar cu vecinii, converge greu.
Apare problema numararii la infinit.
Solutie : despicarea orizontului. Distantele nu sut raportate pe directia rutei.
Ex. Dii spune lui C: ruta catre B este infinit.
In cazul urmator apare problema numararii la infinit.
NIVELUL DE RETEA
5. Dirijare folosind starea legaturilor
Foloseste informatie legata de starea legaturilor, converge
repede, comunica cu toate ruterele.

1. Să descopere care sunt vecinii săi şi afle adresele de reţea


ale acestora.
2. Să măsoare întârzierea sau costul până Ia fiecare din vecinii
săi.
3. Să pregătească un pachet prin care anunţă pe toată lumea
că tocmai a terminat de cules datele despre vecini.
4. Să trimită acest pachet către toate celelalte rutere.
5. Să calculeze cea mai scurtă cale spre fiecare ruter – Dijkstra.
6. Exemple: IS-IS, OSPF
NIVELUL DE RETEA
6. Dirijare ierarhica
Reteaua se imparte in regiuni, fiecare ruter
cunoaste numai propria regiune si poate dirija
pachetele in interiorul regiunii sale.

Se reduce astfel numarul de


intrari in tabelele de rutare
ale ruterelor.
Nr opim de niveluri in retea cu
N rutere este Ln(N).
Dim tabelei: e*LN(N)
NIVELUL DE RETEA
7. Dirijare pt calculatoare mobile
Fiecare celula are un agent local, si un agent pentru
straini. Agentul pt straini emite un pachet prin care isi
semnaleaza prezenta. Cand un sistem mobil intra in
aria unei celule se inregistreaza la un agent pentru
straini, cu adresa fizica si de retea.

Agentul strain anunta agentul local din celula de care


apartine sistemul mobil, cu informatii de securitate.
Dupa de primeste confirmarea adauga sistemul mobil
in lista sa de clienti.
NIVELUL DE RETEA
8. Dirijare prin difuzare
O metoda ar consta in trimiterea unui pachet catre
fiecare gazda. Necesita lista tuturor destinatarilor.
NIVELUL DE RETEA
9. Dirijare prin trimitere multipla (multicast)
Pentru unele aplicaţii avem nevoie de o modalitate de a trimite
mesaje spre grupuri bine definite, care conţin un număr mare
de noduri, dar totuşi redus faţă de dimensiunea reţelei ca un
întreg.

Trimiterea unui mesaj către un astfel de grup se numeşte


multicasting, iar algoritmul de dirijare asociat se numeşte
dirijare multicast.
NIVELUL DE RETEA
9. Dirijare prin trimitere multipla (multicast)

Pentru a realiza dirijarea multicast, este necesară gestiunea


grupului. Trebuie să existe modalităţi de a crea şi distruge
grupuri şi ca procesele să intre în grupuri sau să le părăsească.
Cum se realizează aceste funcţii nu e treaba algoritmului de
dirijare.

Important pentru algoritmul de dirijare este că atunci când un


proces se ataşează unui grup, el trebuie să informeze gazda sa
despre aceasta. Este foarte important ca un ruter să ştie căror
grupuri aparţin calculatoarele gazdă asociate.
NIVELUL DE RETEA
9. Dirijare prin trimitere multipla (multicast)
Fie calculatoarele gazdă trebuie să anunţe ruterul asociat la
producerea unei modificări în alcătuirea grupurilor, sau ruterul
trebuie să interogheze periodic aceste calculatoare gazdă.

în ambele cazuri, ruterul determină care este apartenenţa la


grupuri a calculatoarelor gazdă. Ruterele îşi informează vecinii,
astfel că informaţia se propagă prin subretea.

Pentru a realiza dirijarea multicast, fiecare ruter calculează


arborele de acoperire care acoperă toate celelalte rutere din
subreţea.
NIVELUL DE RETEA
Controlul congestiei
Congestia apare atunci când foarte multe pachete sunt prezente în reţea.
Dacă prin controlul fluxului se urmăreşte traficul capăt la capăt între un
expeditor şi un destinatar, prin controlul congestiei se urmăreşte să se
asigure că subreţeaua este capabilă să transporte întreg traficul implicat.
Congestia este o problemă globală implicând toate calculatoarele, toate
ruterele din reţea.
Abordarea tratării congestiei se poate face prin:
metode în buclă deschisă - care rezolvă problema la proiectare, planificând
când să distrugă pachete, unde se iau deciziile în reţea, când se acceptă
trafic nou, etc.
metode în buclă închisă - abordare care curpinde trei părţi
1. monitorizarea sistemului, pentru a detecta când şi unde se produce congestia;
2. trimiterea acestor informaţii către locurile unde se pot executa acţiuni.
3. ajustează funcţionarea sistemului pentru a corecta problema.
NIVELUL DE RETEA
Controlul congestiei
Metricile folosite pentru monitorizare sunt: lungimea medie a cozilor de
aşteptare, numărul de pachete care sunt retransmise pe motiv de time out,
procentul din totalul pachetelor care au fost distruse (din cauza lipsei
spaţiului temporar de memorare), întârzierea medie a unui pachet.
Algoritmii în buclă deschisă pot acţiona:
asupra sursei (fereastra glisantă, găleata găurită, găleata cu jeton)
asupra destinaţiei (formarea traficului - negocierea parametrilor de transfer)
Algoritmii în buclă închisă sunt:
cu reacţie inversă implicită
cu reacţie inversă explicită
La cei cu reacţie inversă implicită sursa deduce existenţa congestiei
din observaţii locale, cum ar fi timpul necesar pentru întoarcerea pachetelor
de confirmare, iar la cei cu reacţie inversă explicită, pachetele sunt trimise
înapoi de la locul congestiei către sursă pentru a o avertiza.
NIVELUL DE RETEA
Controlul congestiei
În literatură (vezi A. Tanenbaum „Reţele de calculatoare”)cei mai cunoscuţi algoritmi
pentru controlul congestiei sunt:
• găleata găurită;
• găleata găurită cu jeton;
• controlul în subreţele bazate pe circuite virtuale:
- controlul admisiei
- stabilirea de noi circuite virtuale
- negocierea traficului - volumul de date
- calitatea serviciului
• pachete de şoc
• pachete şoc cu salt
• cozi echitabile ponderate
• împrăştierea încărcării
• protocolul de rezervare a resurselor
BIBLIOGRAFIE

Tanenbaum A. S., Reţele de calculatoare,


Editura Agora, Târgu Mureş, 1997

Tanenbaum A.S. (1992). Modern Operating


Systems. Englewood Cliffs NJ: Prentice-Hall.
DACA EXISTA INTREBARI?

Multumim

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