Algoritmi de rutare

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 29 septembrie 2018; verificările necesită 5 modificări .

Algoritmii de rutare sunt utilizați pentru a determina cea mai bună cale pentru pachete de la sursă la destinație și sunt baza oricărui protocol de rutare . Pentru a formula algoritmi de rutare, rețeaua este considerată ca un grafic. În acest caz, routerele sunt noduri, iar liniile fizice dintre routere sunt marginile graficului corespunzător. Fiecărei margini a graficului i se atribuie un anumit număr - un cost care depinde de lungimea fizică a liniei, viteza de transfer de date de-a lungul liniei sau costul liniei.

Clasificare

Algoritmii de rutare pot fi împărțiți în:

Cerințe

Tipuri de algoritmi

Algoritmi adaptivi

Descriere

luați în considerare starea liniei

Avantaje și dezavantaje

+ scăderea timpului mediu petrecut de un pachet în rețea

+ capacitatea de a se adapta dinamic la starea rețelei -
este necesar să se recalculeze constant tabelele de rutare

Centralizat

Descriere

algoritm centralizat adaptiv

Avantaje și dezavantaje

+RCC(Routing Control Center) are toate informațiile despre starea rețelei, ceea ce vă permite să luați decizii optime
+nodurile sunt scutite de la numărarea tabelelor de rutare
-fiabilitate
scăzută -nodurile primesc tabele de rutare la momente diferite -concentrarea traficului
lângă RCC

Izolat

Descriere

Nodul extrage informații din pachetele primite.

Avantaje și dezavantaje

+ fără aglomerație
- adaptare lentă la condițiile rețelei (timp de convergență)

Distribuit

Descriere

algoritm de vector de distanță , rutare a stării legăturii

Avantaje și dezavantaje

+ adaptare mai bună
- supraîncărcări

Algoritmi neadaptativi

Descriere

nu țineți cont de starea actuală a rețelei, toate rutele sunt calculate înainte de a utiliza rețeaua. Aceștia, la rândul lor, sunt împărțiți în algoritmi care iau în considerare topologia rețelei (spanning tree, flow based routing) și nu iau în considerare (flooding).

Avantaje și dezavantaje

+simplitate
+rezultate bune cu topologie și încărcare neschimbate
-incapacitate de a răspunde la schimbări -viteză scăzută
în rețele eterogene

Exemple
  • Cea mai scurtă cale
  • bazat pe flux
  • Inundare

Algoritmi adaptivi

Centralizat

Algoritm centralizat adaptiv

( ing.  rutare centralizată adaptivă )

Descriere

În rețea există un așa-numit Centru de control de rutare (RCC), care primește informații de la toate nodurile despre nodurile învecinate, lungimea cozii și încărcarea liniei. Funcțiile RCC includ colectarea de informații, calcularea celor mai bune rute pentru fiecare nod, compilarea tabelelor de rutare și trimiterea lor către noduri.

Avantaje și dezavantaje

+RCC are toate informațiile și poate crea rute „ideale”
+nodurile sunt scutite de necesitatea calculării tabelelor de rutare
-fiabilitate scăzută -recalcularea tabelelor de rutare este necesară
din când în când
-lucrare incorectă cu rețele separate
-IS primește informații la diferite ori -concentrarea traficului
lângă RCC

Izolat

Învățare înapoi Descriere

Fiecare nod preia doar informațiile necesare din pachetele primite. Astfel, fiecare nod cunoaște expeditorul pachetelor și numărul de hopuri pe care le-a trecut acest pachet. Apoi există o comparație cu datele din tabelul de rutare, iar dacă pachetul primit are mai puține hopuri, atunci tabelul este actualizat.

Avantaje și dezavantaje

+ ușurință în implementare
- probleme la schimbarea topologiei și încărcării -
nu există schimb de date de rutare între noduri

Distribuit

Algoritmul vectorului de distanță

( rutare vectorială la distanță în engleză  )

Descriere

De asemenea, cunoscut sub numele de Distributed Bellman-Ford Routing sau Ford Fulkerson Algorithm. Acest algoritm este distribuit, iterativ și asincron. Poate fi gândit ca: „Spune-le vecinilor tăi cum arată lumea”. Fiecare gazdă menține un tabel de rutare cu o intrare pentru fiecare router de pe subrețea. Tabelul este un vector care conține 2 componente: linia selectată și distanța. Nodul estimează distanța (numărul de sărituri, întârziere sau lungimea cozii) până la fiecare vecin și o trimite vecinilor săi, care la rândul lor fac același lucru. Ca urmare a informațiilor primite, fiecare nod recalculează tabelul de rutare. Folosit în protocolul de rutare RIP . A fost folosit pentru prima dată în ARPANET .

Algoritm

Să presupunem că tabelul tocmai a fost primit de la vecinul X, unde Xi este estimarea lui X despre cât timp durează pentru a ajunge la routerul i. Dacă un router știe că transferul de date către X ia m, atunci știe și că poate ajunge la orice router i prin X în X i +m.

Avantaje și dezavantaje

+ auto-organizare
+ implementare relativ simplă
- convergență slabă ("convergență")
- dificultăți la extinderea rețelei

Exemplu

La utilizarea algoritmului, problemele apar atunci când unul dintre noduri este deconectat de la rețea - problema „Numără până la infinit” (numărează până la infinit).

Prevenire: Algoritmul Split Horizont - „nu-mi spune ce ți-am spus”

Rutare în funcție de starea legăturii

Engleză  Rutarea stării legăturii

Descriere

Algoritm legat de algoritmi adaptativi și bazat pe analiza stării legăturilor. Poate fi gândit ca: „Spune lumii cine sunt vecinii tăi”. La început, un nod își cunoaște doar vecinii și metrica legăturilor care îl conectează la aceștia. În procesul de schimb de informații cu nodurile învecinate, nodul primește informații despre topologia rețelei, în timp ce schimbă doar informații despre modificările care au avut loc. Ca rezultat, fiecare nod cunoaște întreaga topologie a rețelei. A fost aplicat pentru prima dată la ARPANET în 1979 și a înlocuit algoritmul vector de distanță. Motivele tranziției au fost:

  • creșterea capacității canalului și lipsa contului acestuia în algoritmul de vector distanță
  • lentoarea algoritmului de vector de distanță cauzată de „numărarea până la infinit”
Algoritm
  1. determinarea adreselor nodurilor vecine: nodurile noi trimit un salut (mesaj HELLO), nodurile vecine își raportează adresele apare prin trimiterea de cereri HELLO
  2. măsurarea metricilor de linie sau a timpului de transmitere a datelor către nodurile învecinate apare ca urmare a trimiterii de mesaje eco
  3. organizarea datelor colectate într-un pachet care conține o adresă personală, un număr de serie (pentru a evita repetarea), vârsta (pentru a elimina informațiile învechite), distanța
  4. distribuirea pachetelor către toate nodurile rețelei (inundare)
  5. calculul rutei pe baza informațiilor primite de la alte noduri

Difuzare de rutare

( difuzare în limba engleză  )


Terminologie

unicast  - 1:1
multicast  - 1:n
difuzare  - 1:* (1:toate)

Metode simple
  • trimiterea de pachete către fiecare destinatar în mod individual, ceea ce impune anumite cerințe în rețea, irosirea lățimii de bandă, expeditorul trebuie să cunoască toți destinatarii
  • inundare: prea multe pachete duplicate
Rutare multidestinație

Fiecare pachet conține o listă a tuturor țintelor. Fiecare nod creează pentru fiecare conexiune de ieșire o copie a pachetului, care conține doar adresele acelor noduri care sunt accesibile prin această conexiune.

Multicasting

Engleză  rutare multicast

Algoritmul Spanning Tree

Engleză  copac spanning

Descriere

Spanning Tree: Un grafic care nu conține bucle. Arborele spanning este cunoscut de toate nodurile. În conformitate cu aceasta, fiecare nod trimite copii ale pachetelor

Redirecționare cale inversă (Inundare cale inversă)

Algoritmul este cea mai simplă și neadaptativă opțiune. Fiecare pachet primit este transmis pe toate liniile, cu excepția celei prin care a fost primit. În acest caz, doar expeditorul trebuie să cunoască întregul arbore de acoperire. Algoritm: Fiecare router știe calea pe care ar trebui să o folosească pentru pachetele unicast. Când un pachet este primit, acesta verifică dacă pachetul a fost primit pe linia utilizată în mod normal pentru pachetele unicast. Dacă da, atunci pachetul este redirecționat pe toate liniile, cu excepția celei prin care a fost primit. În caz contrar, pachetul este abandonat.

Difuzare cale inversă

Spre deosebire de redirecționarea cale inversă, pachetele sunt trimise doar pe liniile pe care alte noduri primesc date.

Ruta pe cea mai scurtă cale

Descriere

Acest algoritm calculează calea cea mai scurtă de la rădăcina arborelui la noduri. Ideea este de a crea o grămadă de noduri Q, pentru care ruta optimă a fost deja determinată. Operatorul generează tabele de rutare care sunt încărcate când este inițializat și nu mai sunt modificate. Bazat pe algoritmul lui Dijkstra .

Algoritm

Cea mai scurtă distanță de la A la D

  1. nodul A este marcat ca fiind luat în considerare
  2. atribuiți tuturor nodurilor învecinate o valoare cu distanța față de nodul considerat B(2,A), G(6,A) și adăugați-le la lista de candidați
  3. alegeți din lista de candidați nodul cu distanța cea mai mică B(2,A)
  4. marcați acest nod ca fiind luat în considerare și adăugați-l în arbore
  5. treceți la pasul 2
Avantaje și dezavantaje

+ simplitate
+ rezultate bune cu topologia și încărcarea rețelei constante

Neadaptativ

Rutare bazată pe flux

Descriere

Acest algoritm este unul dintre algoritmii neadaptativi. Ia în considerare nu numai distanța dintre routere, ci și sarcina rețelei. Util pentru găsirea unei rute pe distanțe lungi cu întârzieri mari în livrarea pachetelor

Exemplu

Graficul dat pentru capacitatea și matricea de trafic

  • Numărarea sarcinii fiecărei linii
  1. luați una dintre marginile graficului
  2. găsiți unde apare în tabel
  3. adăugați toate vitezele din tabel pentru această margine
linia λi ( pachete /sec)
AB 3(AB) + 7(ABC) + 7(BAD) + 4(BAF) + 3(BADG) =24
ANUNȚ 4(AD) + 2(ADE) + 2(ADG) + 5(ADEH) + 7(RAU) + 3(BADG) = 23
AF 5(AF) + 4(BAF) = 9
î.Hr 7(ABC) + 3(BC) + 4(BCH) = 14
FI 3(BE) = 3
CE 7(CED) + 5(CE) + 3(CEDF) = 15
CH 4(BCH) + 5(CHG) + 3(CH) = 12
DE 2(ADE) + 5(ADEH) + 7(CED) + 3(CEDF) + 2(DE)+ 9(DEH) + 3(EDF)+ 9(FDEH) = 40
D.F. 3(CEDF)+ 9(DF) + 3(EDF)+ 9(FDEH) = 24
EH 5(ADEH)+ 9(DEH)+ 1(EHG)+ 2(EH) + 9(FDEH) = 26
FG 1(FG) = 1
GH 1(GH) + 1(EHG) + 5(CHG) = 7
DG 2(ADG) + 3(BADG) + 2(DG) = 7
  • calculul întârzierii pentru fiecare grafic după formula T i = 1/(μC i -λ i ) .
linia λi ( pachete /sec) µCi (pachete / sec) Ti ( msec)
AB 24 cincizeci 38,46
ANUNȚ 23 cincizeci 37.04
AF 9 37,5 35.09
î.Hr paisprezece 25 90,91
FI 3 cincizeci 21.28
CE cincisprezece 75 16.67
CH 12 cincizeci 26.32
DE 40 cincizeci 100
D.F. 24 25 1000
EH 26 cincizeci 41,67
FG unu 100 10.1
GH 7 62,5 18.02
DG 7 62,5 18.02
  • Calculul costului fiecărei muchii după formula: W i = λ i /∑λ i .
linia λi ( pachete /sec) µCi (pachete / sec) Ti ( msec) Wi _
AB 24 cincizeci 38,46 0,117
ANUNȚ 23 cincizeci 37.04 0,112
AF 9 37,5 35.09 0,044
î.Hr paisprezece 25 90,91 0,068
FI 3 cincizeci 21.28 0,015
CE cincisprezece 75 16.67 0,073
CH 12 cincizeci 26.32 0,059
DE 40 cincizeci 100 0,195
D.F. 24 25 1000 0,117
EH 26 cincizeci 41,67 0,127
FG unu 100 10.1 0,005
GH 7 62,5 18.02 0,034
DG 7 62,5 18.02 0,034
  • calculul întârzierii totale T global = ∑T i •W i Se obţine: T global =162.531msec .

Deoarece valoarea rezultată este prea mare, aceasta poate fi redusă prin înlocuirea căii cu cea mai mare întârziere DF( Ti , max = 1000 msec ) cu calea D->G->F

Flooding (algoritm de inundare)

Este cel mai simplu algoritm de rutare pentru distribuirea informațiilor într-o rețea. Când un pachet este primit, fiecare nod îl transmite către nodurile învecinate, cu excepția celui de la care provine pachetul.

Acest algoritm are o eficiență scăzută datorită încărcării crescute a rețelei.

Pentru a îmbunătăți eficiența algoritmului, sunt utilizate următoarele metode:

  • Contor de hamei . În acest caz, la fiecare pachet este adăugat un numărător de hop . Expeditorul setează acest contor și fiecare gazdă care îl redirecționează decrește acest contor cu 1.
  • Flooding with Acknowledge ("inundare cu confirmări"). Una dintre problemele cu algoritmul simplu de inundare este că expeditorul nu știe dacă pachetul a ajuns la toate nodurile din rețea. Fiecare dintre nodurile rețelei trimite o confirmare de primire dacă a primit o confirmare de la toate nodurile către care a trimis pachete.
  • Retrimitere unică. Fiecare stație își amintește pachetele redirecționate și nu le trimite din nou. Această metodă de optimizare este foarte productivă în rețelele cu altă topologie decât un arbore.

Alți algoritmi

Rutare cu mai multe căi

Descriere

Scopul principal al algoritmului este de a calcula rute alternative și costurile rutei. Costul este probabilitatea de a utiliza o rută alternativă. În funcție de aceasta, se va folosi de fiecare dată o rută diferită, ceea ce va duce la scăderea numărului de pachete nelivrate. Utilizarea acestei metode face ca o rețea de computere să fie foarte fiabilă. Metoda este folosită cel mai adesea pentru rețelele mobile, unde starea rețelei se poate schimba frecvent și unele routere pot eșua.

Dirijare ierarhică

Engleză  Rutare ierarhică Algoritmi de un singur nivel sau ierarhici. Unii algoritmi de rutare operează într-un spațiu de un singur nivel, în timp ce alții folosesc o ierarhie de rutare. Într-un sistem de rutare cu un singur strat, toate routerele sunt egale între ele. Într-un sistem de rutare ierarhic, unele routere formează ceea ce constituie baza (baza) de rutare. De exemplu, cele care se află pe autostrăzile de mare viteză. Pachetele de la routerele non-core călătoresc către și prin routerele de bază până când ajung în zona de destinație comună. Din acel moment, ei călătoresc de la ultimul router principal prin unul sau mai multe routere non-core până la destinația lor finală. Sistemele de rutare stabilesc adesea grupuri logice de noduri numite domenii sau zone. În sistemele ierarhice, unele routere dintr-un domeniu pot comunica cu routere din alte domenii, în timp ce alte routere din acel domeniu pot comunica doar cu routere din propriul domeniu. În rețelele foarte mari, pot exista niveluri ierarhice suplimentare. Routerele de la cel mai înalt nivel ierarhic formează baza de rutare. Principalul avantaj al rutare ierarhică este că imită organizarea majorității companiilor și, prin urmare, le susține foarte bine tiparele de trafic. Majoritatea traficului de rețea al unei companii este concentrat în domeniul său, astfel încât routerele intra-domeniu trebuie să știe doar despre alte routere din domeniul lor, astfel încât algoritmii lor de rutare pot fi simplificați. În consecință, traficul de actualizare de rutare poate fi, de asemenea, redus, în funcție de algoritmul de rutare utilizat.

Literatură

  • Cisco Systems. Cisco Interdomain Multicast Solutions Guide = Ghid de soluții interdomaine Multicast. - M . : „Williams” , 2004. - S. 320. - ISBN 5-8459-0605-9 .
  • Andrew S. Tanenbaum. RETELE DE CALCULATOARE. — Educație personală, 2002.