Routing-algoritmer

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 september 2018; kontroller kräver 5 redigeringar .

Routningsalgoritmer används för att bestämma den bästa vägen för paket från källa till destination och är grunden för alla routingprotokoll . För att formulera routingalgoritmer betraktas nätverket som en graf. I det här fallet är routrarna noder och de fysiska linjerna mellan routrarna är kanterna på motsvarande graf. Varje kant av grafen tilldelas ett visst nummer - en kostnad som beror på linjens fysiska längd, dataöverföringshastigheten längs linjen eller kostnaden för linjen.

Klassificering

Routingalgoritmer kan delas in i:

Krav

Typer av algoritmer

Adaptiva algoritmer

Beskrivning

ta hänsyn till linjens tillstånd

För- och nackdelar

+ minskning av den genomsnittliga tiden som ett paket spenderar i nätverket

+ förmågan att dynamiskt anpassa sig till nätverkets tillstånd - det
är nödvändigt att ständigt räkna om routingtabellerna

Centraliserad

Beskrivning

adaptiv centraliserad algoritm

För- och nackdelar

+RCC(Routing Control Center) har all information om nätverkets tillstånd, vilket gör att du kan fatta optimala beslut
+noder är undantagna från att räkna routingtabeller
-låg tillförlitlighet
-noder tar emot routingtabeller vid olika tidpunkter -trafikkoncentration
nära RCC

Isolerad

Beskrivning

Noden extraherar information från mottagna paket.

För- och nackdelar

+ ingen trafikstockning
- långsam anpassning till nätverksförhållanden (konvergenstid)

Distribuerad

Beskrivning

avståndsvektoralgoritm , länktillståndsdirigering

För- och nackdelar

+ bättre anpassning
- överbelastningar

Icke-adaptiva algoritmer

Beskrivning

ta inte hänsyn till nätverkets nuvarande tillstånd, alla rutter beräknas innan nätverket används. De är i sin tur uppdelade i algoritmer som tar hänsyn till nätverkstopologin (spaning tree, flödesbaserad routing) och inte tar hänsyn till (flooding).

För- och nackdelar

+enkelhet
+bra resultat med oförändrad topologi och belastning
-oförmåga att svara på förändringar
-låg hastighet i heterogena nätverk

Exempel
  • Kortaste vägen
  • flödesbaserad
  • Översvämning

Adaptiva algoritmer

Centraliserad

Adaptiv centraliserad algoritm

( eng.  adaptiv centraliserad routing )

Beskrivning

Det finns ett så kallat Routing Control Center (RCC) i nätverket, som tar emot information från alla noder om deras närliggande noder, kölängd och linjebelastning. RCC:s funktioner inkluderar att samla in information, beräkna de bästa rutterna för varje nod, sammanställa routingtabeller och skicka dem till noder.

För- och nackdelar

+RCC har all information och kan skapa "ideala" rutter
+noder är undantagna från behovet av att beräkna routingtabeller
-låg tillförlitlighet -omräkning av routingtabeller krävs
då och då
-felaktigt arbete med separerade nätverk
-IS tar emot information vid olika gånger -trafikkoncentration
nära RCC

Isolerad

Bakåtlärning Beskrivning

Varje nod tar endast den nödvändiga informationen från de mottagna paketen. Således känner varje nod till avsändaren av paketen och antalet hopp som detta paket har passerat. Sedan görs en jämförelse med data i routingtabellen, och om det mottagna paketet har färre hopp, uppdateras tabellen.

För- och nackdelar

+ enkel implementering
- problem vid ändring av topologi och belastning -
det finns inget utbyte av routingdata mellan noder

Distribuerad

Avståndsvektoralgoritm

( Engelsk  distansvektordirigering )

Beskrivning

Även känd som Distributed Bellman-Ford Routing eller Ford Fulkerson Algorithm. Denna algoritm är distribuerad, iterativ och asynkron. Det kan tänkas som: "Berätta för dina grannar hur världen ser ut." Varje värd upprätthåller en routingtabell med en post för varje router på subnätet. Tabellen är en vektor som innehåller 2 komponenter: den valda linjen och avståndet. Noden uppskattar avståndet (antal hopp, fördröjning eller kölängd) till varje granne och skickar det till sina grannar, som i sin tur gör detsamma. Som ett resultat av den mottagna informationen beräknar varje nod om routingtabellen. Används i RIP- routingprotokollet . Det användes först i ARPANET .

Algoritm

Anta att tabellen precis har mottagits från grannen X, där Xi är X:s gissning om hur lång tid det tar att komma till router i. Om en router vet att dataöverföringen till X tar m, så vet den också att den kan nå vilken router i som helst via X i X i +m.

För- och nackdelar

+ självorganisering
+ relativt enkel implementering
- dålig konvergens ("konvergens")
- svårigheter vid utbyggnad av nätverket

Exempel

När man använder algoritmen uppstår problem när en av noderna kopplas bort från nätverket - "Räkna till oändlighet"-problemet (räkna till oändlighet).

Förebyggande: Split Horizont Algorithm - "säg inte vad jag sa till dig"

Routing efter länkstatus

engelsk  Länkstatus routing

Beskrivning

Algoritm relaterad till adaptiva algoritmer och baserad på analys av länkarnas tillstånd. Det kan ses som: "Berätta för världen vilka dina grannar är." Till en början känner en nod bara till sina grannar och metriken för länkar som kopplar den till dem. I processen att utbyta information med angränsande noder, får noden information om nätverkstopologin, medan den endast utbyter information om de förändringar som har inträffat. Som ett resultat känner varje nod till hela nätverkstopologin. Den applicerades först på ARPANET 1979 och ersatte avståndsvektoralgoritmen. Skälen till övergången var:

  • tillväxten av kanalkapacitet och avsaknaden av dess redovisning i distans-vektoralgoritmen
  • långsamhet av avståndsvektoralgoritmen orsakad av "räkna till oändlighet"
Algoritm
  1. bestämma adresserna till angränsande noder: nya noder skickar ut en hälsning (HEJ-meddelande), närliggande noder rapporterar sina adresser sker genom att skicka HELLO-förfrågningar
  2. mätning av linjemått eller dataöverföringstid till angränsande noder uppstår som ett resultat av att ekomeddelanden skickas
  3. organisering av de insamlade uppgifterna i ett paket som innehåller en personlig adress, serienummer (för att undvika upprepning), ålder (för att kassera föråldrad information), avstånd
  4. distribution av paket till alla nätverksnoder (flooding)
  5. ruttberäkning baserad på information mottagen från andra noder

Broadcast routing

( Engelsk  sändningsdirigering )


Terminologi

unicast  - 1:1
multicast  - 1:n
broadcast  - 1:* (1:alla)

Enkla metoder
  • skicka paket till varje mottagare individuellt, vilket ställer vissa krav på nätverket, slösar bandbredd, avsändaren måste känna alla mottagare
  • flooding: för många dubbletter av paket
Multidestination Routing

Varje paket innehåller en lista över alla mål. Varje nod skapar för varje utgående anslutning en kopia av paketet, som endast innehåller adresserna till de noder som är nåbara via denna anslutning.

Multicasting

engelsk  multicast routing

Spanning Tree Algorithm

engelsk  Spanning Tree

Beskrivning

Spännande träd: En graf som inte innehåller loopar. Spännträdet är känt för alla noder. I enlighet med detta skickar varje nod ut kopior av paketen

Vidarebefordran av väg bakåt (Flödande bakåtväg)

Algoritmen är det enklaste och icke-adaptiva alternativet. Varje mottaget paket vidarebefordras på alla rader, förutom den genom vilken det togs emot. I det här fallet behöver bara avsändaren känna till hela spännträdet. Algoritm: Varje router känner till sökvägen den ska använda för unicast-paket. När ett paket tas emot kontrollerar det om paketet togs emot på den linje som normalt används för unicast-paket. Om ja, så vidarebefordras paketet på alla rader, förutom den genom vilken det togs emot. Annars tappas paketet.

Omvänd sökväg sändning

Till skillnad från omvänd vägvidarebefordran, skickas paket endast över linjer som andra noder tar emot data på.

Kortaste vägen routing

Beskrivning

Denna algoritm beräknar den kortaste vägen från trädets rot till noderna. Poängen är att skapa ett gäng noder Q, för vilka den optimala rutten redan har bestämts. Operatören genererar routingtabeller som laddas när den initieras och som inte längre ändras. Baserat på Dijkstras algoritm .

Algoritm

Kortaste avståndet från A till D

  1. nod A är markerad som under behandling
  2. tilldela alla närliggande noder ett värde med ett avstånd till den övervägda noden B(2,A), G(6,A) och lägg till dem i listan över kandidater
  3. välj från listan över kandidater den nod med det minsta avståndet B(2,A)
  4. markera denna nod som under övervägande och lägg till den i trädet
  5. gå till punkt 2
För- och nackdelar

+ enkelhet
+ bra resultat med konstant nätverkstopologi och belastning

Icke-adaptiv

Flödesbaserad routing

Beskrivning

Denna algoritm är en av de icke-adaptiva algoritmerna. Det tar inte bara hänsyn till avståndet mellan routrar, utan även nätverksbelastningen. Användbar för att hitta en rutt för långa sträckor med stora förseningar i paketleverans

Exempel

Givet diagram för kapacitet och trafikmatris

  • Räknar belastningen på varje linje
  1. ta en av kanterna på grafen
  2. hitta var det förekommer i tabellen
  3. lägg till alla hastigheter från tabellen för denna kant
linje λi ( paket /sek)
AB 3(AB) + 7(ABC) + 7(BAD) + 4(BAF) + 3(BADG) =24
AD 4(AD) + 2(ADE) + 2(ADG) + 5(ADEH) + 7(BAD) + 3(BADG) = 23
AF 5(AF) + 4(BAF) = 9
före Kristus 7(ABC) + 3(BC) + 4(BCH) = 14
VARA 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
VA 5(ADEH)+ 9(DEH)+ 1(EHG)+ 2(EH) + 9(FDEH) = 26
FG 1(FG) = 1
GH 1(GH) + 1(EHG) + 5(CHG) = 7
GD 2(ADG) + 3(BADG) + 2(DG) = 7
  • fördröjningsberäkning för varje graf enligt formeln T i = 1/(μC i -λ i ) .
linje λi ( paket /sek) µCi (paket / sek) T i (ms)
AB 24 femtio 38,46
AD 23 femtio 37.04
AF 9 37,5 35.09
före Kristus fjorton 25 90,91
VARA 3 femtio 21.28
CE femton 75 16,67
CH 12 femtio 26.32
DE 40 femtio 100
D.F. 24 25 1000
VA 26 femtio 41,67
FG ett 100 10.1
GH 7 62,5 18.02
GD 7 62,5 18.02
  • Beräkning av kostnaden för varje kant enligt formeln: W i = λ i /∑λ i .
linje λi ( paket /sek) µCi (paket / sek) T i (ms) Wi _
AB 24 femtio 38,46 0,117
AD 23 femtio 37.04 0,112
AF 9 37,5 35.09 0,044
före Kristus fjorton 25 90,91 0,068
VARA 3 femtio 21.28 0,015
CE femton 75 16,67 0,073
CH 12 femtio 26.32 0,059
DE 40 femtio 100 0,195
D.F. 24 25 1000 0,117
VA 26 femtio 41,67 0,127
FG ett 100 10.1 0,005
GH 7 62,5 18.02 0,034
GD 7 62,5 18.02 0,034
  • beräkning av den totala fördröjningen T totalt = ∑T i •W i Vi får: T totalt =162,531msec .

Eftersom det resulterande värdet är för stort kan det reduceras genom att ersätta vägen med den största fördröjningen DF( Ti , max = 1000msec ) med sökvägen D->G->F

Flooding (översvämningsalgoritm)

Det är den enklaste routingalgoritmen för att distribuera information över ett nätverk. När ett paket tas emot vidarebefordrar varje nod det till sina närliggande noder, förutom den som paketet kom ifrån.

Denna algoritm har låg effektivitet på grund av ökad nätverksbelastning.

För att förbättra effektiviteten av algoritmen används följande metoder:

  • Översvämmas med erkänna ("översvämmas av bekräftelser"). Ett av problemen med den enkla flooding-algoritmen är att avsändaren inte vet om paketet har nått alla noder i nätverket. Var och en av nätverksnoderna skickar en bekräftelse på mottagning om den har mottagit en bekräftelse från alla noder till vilka den skickat paket.
  • Unik återsändning. Varje station kommer ihåg de vidarebefordrade paketen och skickar dem inte igen. Denna optimeringsmetod är mycket produktiv i nätverk med en annan topologi än ett träd.

Andra algoritmer

Multipath Routing

Beskrivning

Algoritmens huvudmål är att beräkna alternativa rutter och ruttkostnader. Kostnad är sannolikheten att använda en alternativ väg. Beroende på detta kommer en annan väg att användas varje gång, vilket kommer att leda till en minskning av antalet ej levererade paket. Att använda denna metod gör ett datornätverk mycket tillförlitligt. Metoden används oftast för mobila nätverk, där nätverkets status kan ändras ofta och vissa routrar kan misslyckas.

Hierarkisk routing

engelsk  Hierarkisk routing Ennivå- eller hierarkiska algoritmer. Vissa routingalgoritmer fungerar i ett utrymme på en nivå, medan andra använder en routinghierarki. I ett enda lager routingsystem är alla routrar lika med varandra. I ett hierarkiskt routingsystem utgör vissa routrar det som utgör basen (basen) för routing. Till exempel de som är på höghastighetsmotorvägar. Paket från icke-kärnroutrar färdas till och genom kärnroutrar tills de når det gemensamma destinationsområdet. Från den tidpunkten reser de från den sista kärnroutern genom en eller flera icke-kärnroutrar till sin slutdestination. Routingsystem upprättar ofta logiska grupper av noder som kallas domäner eller områden. I hierarkiska system kan vissa routrar i en domän kommunicera med routrar i andra domäner, medan andra routrar i den domänen bara kan kommunicera med routrar inom sin egen domän. I mycket stora nätverk kan ytterligare hierarkiska nivåer finnas. Routrarna på den högsta hierarkiska nivån utgör routingbasen. Den största fördelen med hierarkisk routing är att den efterliknar de flesta företags organisation och därför stödjer deras trafikmönster mycket väl. Det mesta av ett företags nätverkstrafik är koncentrerad till dess domän, så routrar inom domänen behöver bara känna till andra routrar inom deras domän, så deras routningsalgoritmer kan förenklas. Följaktligen kan routinguppdateringstrafiken också reduceras, beroende på vilken routingalgoritm som används.

Litteratur

  • Cisco Systems. Cisco Interdomain Multicast Solutions Guide = Interdomain Multicast Solutions Guide. - M . : "Williams" , 2004. - S. 320. - ISBN 5-8459-0605-9 .
  • Andrew S. Tanenbaum. DATOR NÄTVERK. — Personlig utbildning, 2002.