Anda di halaman 1dari 29

Universidade de Braslia

Redes de Computadores Algoritmos de Roteamento


Prof. Marcelo M. de Carvalho
mmcarvalho@unb.br

Interao entre Roteamento e Repasse

Roteamento
Roteador default:
Roteador ligado diretamente a um hospedeiro

Roteador da fonte:
Roteador default do hospedeiro de origem

Roteador de destino:
Roteador default do hospedeiro de destino

Objetivo do Roteamento:
eterminar um !bom" caminho entre o roteador da fonte e o roteador de destino para um dado conjunto de roteadores conectados por enlaces.

Bom caminho # caminho com menor !custo"


$%emplos de !custo": comprimento do enlace& largura de banda dispon'vel& custo monet(rio associado& n'vel de congestionamento& etc.

Abstrao da Rede

Grafo: G = (N,E) N = conjunto de roteadores = { u, v, w, x, y, z } E = conjunto de enlaces ={(u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z)}

Abstrao da Rede: Custo


c(x, x) = custo do enlace (x, x) ex: c(w, z) = 5 Custo pode ser se pre !, ou "nversa ente relac"onado # lar$ura de %anda ou ao con$est"ona ento, por exe plo& ' (e (x, y) E, c(x, y) =

Custo do ca "n)o (x!, x*, x+,,, xp) = c(x!,x*) - c(x*,x+) - , - c(xp.!,xp)

Questo: Qual o caminho de menor custo entre u e z ?


Algoritmo de roteamento o algoritmo que encontra o caminho de menor custo

Classi icao dos Algoritmos de Roteamento


Crit)rio: informa*+o global ou descentrali,ada .lgoritmo de Roteamento /lobal:
Roteadores possuem informa*+o completa sobre conectividade e custo dos enlaces Conhecidos como Algoritmos de Estado de Enlace

.lgoritmo de Roteamento

escentrali,ado:

Roteadores s0 conhecem informa*1es sobre seus vi,inhos e os enlaces para eles Computa*+o iterativa e distribu'da 2roca de informa*1es com os vi,inhos Conhecidos como Algoritmos de Vetores de Distncia

Algoritmo de !stado de !nlace


2opologia da rede e custos dos enlaces conhecidos por todos os ns da rede Como saber informa*+o completa da rede Cada n0 transmite pacotes especiais 3ue cont4m as identidades e os custos dos enlaces ligados a ele 2ransmiss+o broadcast 5para todos os n0s6 de estado de enlace 2odos os n0s t4m uma vis+o id4ntica e completa da rede

.lgoritmo de

ij7stra:

Calcula caminho de menor custo entre um n0 5fonte6 e todos os outros n0s da rede 8ornece tabela de roteamento para a3uele n0 .lgoritmo iterativo Converg4ncia: .p0s k itera*1es& conhece o caminho de menor custo para k destinos

Algoritmo de "i#$stra
9ota*+o: "%v&:
Custo do caminho de menor custo entre o n0 da fonte e o destino v at) essa itera*+o do algoritmo:

'%v&:
90 antecessor 5predecessor6 a v ao longo do caminho de menor custo atual desde a fonte at) v:

():
;ubconjunto de n0s: v 9< se o caminho de menor custo entre a fonte e v for inequivocamente conhecido;

Algoritmo de "i#$stra
= Incio: > 9< # ?u@ A para todos os n0s v: B se v ) adjacente a u C ent+o 5v6 # c5u&v6 D sen+o 5v6 # E F *oop G $ncontre + () tal 3ue 5H6 ) um m'nimo =I .dicione H a 9< == .tuali,e 5v6 para todo v ad#acente a + e n+o em 9<: => 5v6 # min5 5v6& 5H6 J c5H&v6 6 =A KL novo custo para v ) o custo anterior para v ou o menor =B custo de caminho conhecido para H mais o custo de H a v LK =C at, -ue todos os n.s este#am em ()

!/emplo: Algoritmo de "i#$stra


Cada linha fornece valores das vari(veis ao final da itera*+o:
Passo I = > A B C Mn'cio 9 u u% u%N u%Nv u%NvH u%NvH, 5v6&p5v6 >&u >&u >&u 5H6&p5H6 C&u B&% A&N A&N 5%6&p5%6 =&u 5N6&p5N6 >&% 5,6&p5,6 B&N B&N B&N

o!!! t s u c r Meno

!/emplo: Algoritmo de "i#$stra


Passo I = > A B C Mn'cio 9 u u% u%N u%Nv u%NvH u%NvH, 5v6&p5v6 >&u >&u >&u 5H6&p5H6 C&u B&% A&N A&N 5%6&p5%6 =&u 5N6&p5N6 >&% 5,6&p5,6 B&N B&N B&N

Adicionado a N, o n com menor D

Continuo no conectado a z

!/emplo: Algoritmo de "i#$stra


Passo I = > A B C Mn'cio 9 u u% u%N u%Nv u%NvH u%NvH, 5v6&p5v6 >&u >&u >&u 5H6&p5H6 C&u B&% A&N A&N 5%6&p5%6 =&u 5N6&p5N6 >&% 5,6&p5,6 B&N B&N B&N

!/emplo: Algoritmo de "i#$stra


Passo I = > A B C Mn'cio 9 u u% u%N u%Nv u%NvH u%NvH, 5v6&p5v6 >&u >&u >&u 5H6&p5H6 C&u B&% A&N A&N 5%6&p5%6 =&u 5N6&p5N6 >&% 5,6&p5,6 B&N B&N B&N

!/emplo: Algoritmo de "i#$stra


Passo I = > A B C Mn'cio 9 u u% u%N u%Nv u%NvH u%NvH, 5v6&p5v6 >&u >&u >&u 5H6&p5H6 C&u B&% A&N A&N 5%6&p5%6 =&u 5N6&p5N6 >&% 5,6&p5,6 B&N B&N B&N

"iscusso do Algoritmo de "i#$stra


Comple%idade do algoritmo:
n n0s 5sem contar a fonte6 Cada itera*+o: precisa verificar todos os n0s w 3ue n+o est+o em 9< n5nJ=6K> compara*1es: O5n>6 Mmplementa*1es mais eficientes: O5nlog5n66

"iscusso do Algoritmo de "i#$stra

Oscila*1es poss'veis:
$%: custo do enlace # 3uantidade de tr(fego transportado

Algoritmo de 0etor de "ist1ncias

.lgoritmo iterativo& ass'ncrono e distribu'do: Por 3ue distribu'do

Cada n0 recebe alguma informa*+o de um ou mais vi,inhos ligados a ele& reali,a c(lculos e& em seguida& distribui os resultados para seus vi,inhos. Processo continua at) 3ue mais nenhuma informa*+o seja trocada entre vi,inhos: 9+o re3uer 3ue todos os n0s e%ecutem o algoritmo simultaneamente.

Por 3ue iterativo

Por 3ue ass'ncrono

Algoritmo de 0etor de "ist1ncias


Roteamento escentrali,ado
!-uao de Bellman23ord %programao din1mica& ;eja: d%5N6 # custo do caminho de menor custo de % a N $nt+o d/%4& 5 minv 6c%/7v& 8 dv%4& 9 $m 3ue min ) calculado sobre todos os vi,inhos v de %

!/emplo: Bellman23ord
/o $ra0o, o%te os dv(z) = 5, dx(z) = +, dw(z) = + 1 e2& de 3ell an.4ord d"z 2ue: du(z) = "n {c(u,v) - dv(z), c(u,x) - dx(z), c(u,w) - dw(z)} = "n {* - 5, ! - +, 5 - +} = 5

6 n7 2ue at"n$e o 8n" o ser9 o pr7x" o salto no ca "n)o ta%ela de rotea ento

a"s curto na

Algoritmo de 0etor de "ist1ncia


/x(y) = estimativa do custo do ca "n)o de entre x e y

enor custo

:etor de d"st;nc"a: 6 n7 x ant?

= </x(y): y = N >

6 n7 x con)ece o custo para cada v"z"n)o v: c(x,v)


x

= </x(y): y = N > os vetores de d"st;nc"a (/:) de ant? = </v(y): y = N >

6 n7 x ta %? seus v"z"n)os

ant?

@ara cada v"z"n)o v, x

Algoritmo de 0etor de "ist1ncia


Ad?"a %9s"ca: Cada n7 env"a per"od"ca ente sua pr7pr"a est" at"va de vetor de d"st;nc"a aos v"z"n)os Buando o n7 x rece%e nova est" at"va de /: do v"z"n)o, ele atual"za seu pr7pr"o /: usando a e2uaCDo 3.4: Dx(y) 5 minv{c(x,v) + Dv(y)} para cada n y N E cond"CEes nor a"s, a est" at"va Dx(y) converge para o menor custo real dx(y)

Algoritmo de 0etor de "ist1ncia


Aterat"vo, ass8ncrono: cada "teraCDo local ? causada por: FudanCa no custo do enlace local Fensa$e de atual"zaCDo /: do v"z"n)o /"str"%u8do: Cada n7 not"0"ca os v"z"n)os a!enas 2uando seu /: udar 6s v"z"n)os entDo not"0"ca seus v"z"n)os, se necess9r"o
Cada n7:
espera por 5mudan*a no custo do enlace local ou mensagem O do vi,inho6 recalcula estimativas se o O para 3ual3uer destino mudou& noti ica os vi,inhos

Algoritmo 0etor de "ist1ncias


= Iniciali:ao: > Para todos os destinos N em 9: A %5N6 # c5%& N6 KK se N n+o ) vi,inho& c5%& N6 # B Para cada vi,inho H C H5N6 # para todos os destinos y em N 6 Para cada vizinho E $nvia um vetor de distPncias % # Q %5N6: N em 9R F *oop = $spere 5at) 3ue haja mudan*a no custo do enlace a um vi,inho H ou at) a recep*+o de um vetor de distPncias de um vi,inho6 =I Para cada N em 9: == %5N6 # minvQc5%& v6 J v5N6R => Mf %5N6 mudou para algum destino N =A $nvia vetor % # Q %5N6: N em 9R para todos os vi,inhos =B para sempre

Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 node x table Dx(z) = min{c(x,y) + cost to cost to Dy(z), c(x,z) + Dz(z)} x y z x y z = min{2+1 , 7+0} = 3 x 0 2 7 y z node y table cost to x y z x 0 2 3 y 2 0 1 z 7 1 0

x y 2 0 1 z node z table cost to x y z

from

from

y
7

from from

x y z 7 1 0

time

24

node x table cost to x y z

Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 cost to x y z x 0 2 3 y 2 0 1 z 7 1 0 cost to x y z x 0 2 7 y 2 0 1 z 7 1 0 cost to x y z x 0 2 7 y 2 0 1 z 3 1 0 cost to x y z x 0 2 3 y 2 0 1 z 3 1 0 cost to x y z x 0 2 3 y 2 0 1 z 3 1 0 cost to x y z

Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3

x 0 2 7 y z node y table cost to x y z x y 2 0 1 z node z table cost to x y z

from

from from

from

y
7

from from

from

x y z 7 1 0

x 0 2 3 y 2 0 1 z 3 1 0 time 2

from

from

;udanas no Custo do !nlace


FudanCas no custo do enlace: N7 detecta udanCa no custo do enlace local 1tual"za "n0or aCEes de rotea ento, recalcula o vetor de d"st;nc"a (e o /: uda, not"0"ca v"z"n)os

No te po t0, y detecta a udanCa no custo do enlace, atual"za seu /: e "n0or a seus v"z"n)os& No te po t1, z rece%e a atual"zaCDo de y e atual"za sua ta%ela& Ele calcula o enor custo novo para x e env"a seu /: para os v"z"n)os& No te po t2, y rece%e a atual"zaCDo de z a atual"za sua ta%ela de d"st;nc"a& 6s enores custos de y nDo udara , e entDo y no env"a nen)u a ensa$e para z&

;udanas no Custo do !nlace


.ntes da mudan*a do custo do enlace&
N5%6 # B& N5,6 # =& ,5N6 # =& ,5%6 # C

9o tempo tI& N detecta mudan*a no custo do enlace para % 5B para DI6 S calcula novo custo do caminho para %:
N5%6 # min?c5N&%6 J %5%6& c5N&,6 J ,5%6@ # # min?DI J I& = J C@ # D S assume 3ue , proporciona caminho com menor custo& o 3ue n+o ) verdadeT Para chegar a %& N fa, a rota atrav)s de ,& 3ue por sua ve, fa, a rota atrav)s de NTTT

. partir de t=& temos um loop de roteamento:

$m t=& , recebe vetor de N& 3ue indica 3ue custo m'nimo para % ) D U calcula novo custo:
,5%6 # min?CI J I& = J D@ # E U informa a S novo vetor de distPncia para N

Processo continua por BB itera*1es at) estabili,arT

;udanas no Custo do !nlace


FudanCas no custo do enlace: 3oas not8c"as v"aGa r9p"do F9s not8c"as v"aGa deva$ar H pro%le a da Iconta$e ao "n0"n"toJK 55 "teraCEes antes de o al$or"t o esta%"l"zar: veGa o texto LeversDo envenenada: (e M rote"a por N para alcanCar O : M d"z a N 2ue sua d"st;nc"a (de M) para O ? "n0"n"ta (entDo N nDo rotear9 at? O v"a M) Asso resolver9 co pleta ente o pro%le a da conta$e ao "n0"n"toP

Comparao dos Algoritmos


"om!lexidade Q(: co n n7s, E l"nRs, 6(NE) ensa$ens env"adas /:: trocas so ente entre v"z"n)os Se po de conver$Tnc"a var"a #em!o de converg$ncia Q(: al$or"t o 6(N*) ex"$e ensa$ens 6(NE) @ode ter osc"laCEes /:: te po de conver$Tnc"a var"a @ode )aver loops de rotea ento @ro%le a da conta$e ao "n0"n"to %o&uste': o 2ue acontece se u roteador 0unc"ona alP Q(: 6s n7s pode "n0or ar custos de enlace "ncorretos Cada n7 calcula sua pr7pr"a ta%ela de rotea ento /:: N7 /: pode "n0or ar custo de caminho "ncorreto Sa%ela de cada n7 ? usada por outros @ropa$aCDo de erros pela rede

Anda mungkin juga menyukai