![]() |
|
|
Home
> Inginerie > Calculatoare
> Ghid retele > Nivelul Retea6. Nivelul reţea
Introducere IntroducereNivel reţea: aspecte generale:
Serviciu nivel reţea: circuit virtualVirtual, pare un circuit, dar nu este. Īn general asociat cu serviciu orientat pe conexiune.e Toate pachetele din conexiune urmăresc aceeaşi rută.
La timpul de stabilire a conexiunii:
Analogie: reţeaua telefonică. Serviciu nivel reţea: datagrameNu există o noţiune privind conexiunea īn nivelul reţea. Nu există nicio setare a ruterelor la timpul de stabilire a conexiunii - fiecare pachet "īn conexiune" poate urma căi diferite. Nu exista o garanţie de siguranţă, sau avantajele livrării īn ordine. Avantaje:
Diferite modele de serviciu:
Funcţia de rutareUn pachet pentru nivelul reţea conţine:
Ruterul/comutarea acţionează simplu la recepţia pachetului:
Tabela de rutare: problemeProbleme de rutareScalabilitatea: trebuie să poată suporta numere mari de gazde, rutere, reţele Se adaptează rapid şi eficient la schimbări īn topologie sau modificări semnificative īn trafic. Selecţia rutei poate depinde de diferite criterii. Clasificarea algoritmilor de rutareCentralizare sau descentralizare
Static sau adaptiv
Două abordări de bază adoptate īn practică:
Rutarea stării de legăturăFiecare nod cunoaşte topologia reţelei şi costul fiecărei legături.
Costul poate reflecta
Folosite īn Internet OSPF, ISO IS-IS, DECnet, "noi" (1980) algoritmul de rutare ARPAnet. Scop: determinarea căii cu costul cel mai mic de la un nod (sursă) la toate celelalte noduri: algoritmul pentru calea cea mai scurtă al lui Dijkstra. Algoritmul pentru calea cea mai scurtă al lui Dijkstra: definiţiiDefinim:
Presupunem:
Algoritmul lui Dijkstra: expunereIniţializare: N = {A} pentru toate nodurile v dacă v adiacent lui A atunci D(v) = c(A,v) altfel D(v) = infinit Bucla Găseşte w care nu este īn N astfel īncāt D(w) să fie minim. adaugă w la N actualizează D(v) pentru toţi v care nu sunt īn N: D(v) min( D(v), D(w) + c(w,v) ) /* noul cost la v este sau costul vechi la v sau costul cunoscut al celei mai scurte căi la w plus de la w la v */ Pānă cānd toate nodurile ajung īn N. Algoritmul lui Dijkstra: exemplu
1+3
Rutarea vectorului distanţăProcesare asincronă, iterativă, distribuită:
Procesarea/comunicarea dintre entităşile nivelului reţea!
Tabela de distanţă:
Algoritmul vectorului distanţă
Algoritm (īn nodul X): Initializare: pentru toate nodurile adiacente v: D(*,v) = infinit D(v,v) = c(X,v) transmite costul căii cea mai scurtă către fiecare destinaţie din vecinătate. Bucla Execută algoritmul de actualizare a topologiei distribuite. Continuu Algoritmul de utilizare a topologieiĪn nodul X: 1. wait (until I see a link cost change to neighbor Y or until I receive update from neighbor W) 2. if (c(X,Y) changes by delta) { /* change my cost to my neighbor Y */ change all column-Y entries in distance table by delta if this changes my least cost path to Z send update wrt Z, DX(Z,*) , to all neighbors }
/* shortest path from W to some Z has changed */ DX(Z,W) = c(X,W) + DW(Z,*) if this changes my least cost path to Z send update wrt Z, DX(Z,*) , to all neighbors Rutarea vectorului distanţă: exemplu
Rutarea vectorului distanţă: recuperarea din legăturile defecteDacă legătura XY pică, setează c(X,Y) la infinit şi rulează algoritmul de actualizare a topologiei. Bucla:
Rutarea vectorului distanţă: exemplu de recuperare
Rutarea vectorului distanţă: rezolvarea problemei buclelorBuclele vor exista īn tabele pānă cānd valorile din tabel "calculează" costul rutei alternante. Algoritm de splitare orizontală
OscilaţiiUn scenariu rezonabil
Īntreaga reţea poate oscila. Soluţii posibile:
Oscilaţiile vectorului distanţă
Comparare īntre algoritmii LS şi DVComplexitatea mesajului:
Robusteţea: ce se īntāmplă daca ruterul pică, nu se comportă cum trebuie sau este sabotat? LS poate:
DV poate:
Viteza de convergenţă DV:
LS:
Amāndouă au avantaje şi dezavantaje
Rutarea difuzăriiDifuzarea: trimiterea unui pachet la toţi cei N destinatari
Algoritmul de difuzare 1: N transmiteri punct-la-punct
Algoritmul de difuyare 2: flooding
Rutarea difuzării: direcţionarea căii inverseScop: eliminarea duplicatelor de flooding Presupuneri:
Direcţionarea căii inverse: dacă nodul primeşte un pachet de difuzat
Informaţii despre rutarea distribuităVa fi bun un algoritm de difuzare precum direcţionarea căii inverse pentru actualizări distribuite ale Stării de Legătură (īn rutarea LS)? Prima īncercare (la distribuţia de difuzare a LS):Fiecare ruter păstrează o copie a celui mai recent pachet LS (LSP) primit din fiecare celălalt nod După primirea LSP(R) de la ruterul R:
atunci stochează LSP(R), actualizează informaţiile LS pentru R, şi floodează LSP(R) altfel ignoră duplicatul A 2-a īncercare (la distribuţie de difuzare LS):Fiecare ruter pune un număr de secvenţă pe LSP proprii. După primirea LSP(R) de la R
atunci stochează LSP(R), actualizează informatille LS pentru R, şi floodează LSP(R) altfel ignoră duplicatul. A 3-a īncercare (la distribuţia de difuzare LS)Foloseşte secvenţe de numere "mari". Adaugă cāmp pentru "vārstă" pe bază de timp
Īnlătură LSP(R) īn aşteptare (pentru transmisie) dar netransmise īnainte de a flooda LSP(R) mai noi. |
|
|
|