Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2,x
D(z),p(z)
4,y
4,y
4,y
u
y x
w v
z
2
2
1
3
1
1
2
5
3
5
Int. Redes de Computadores-Capa de Red 4-78
Algoritmo de Dijkstra: ejemplo (cont)
u
y x
w v
z
Shortest-path tree resultante desde u:
v
x
y
w
z
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
destino enlace
Tabla de forwarding resultante en u:
Int. Redes de Computadores-Capa de Red 4-79
Algoritmo de Dijkstra: discusin
Complejidad del algoritmo: n nodos
cada iteracin: necesita chequear todos los nodos, w, que no
estn en N
n(n+1)/2 comparaciones: O(n
2
)
implementacin ms eficiente posible: O(nlogn)
Posibles oscilaciones:
por ej., costo del enlace = cantidad de trfico transportado
A
D
C
B
1
1+e
e
0
e
1
1
0
0
A
D
C
B
2+e
0
0
0
1+e 1
A
D
C
B
0
2+e
1+e
1
0 0
A
D
C
B
2+e
0
e
0
1+e 1
initially
recompute
routing
recompute
recompute
Int. Redes de Computadores-Capa de Red 4-81
Algoritmo Distance Vector
Ecuacin de Bellman-Ford (programacin dinmica)
Se define
d
x
(y) := costo del camino de menor costo de x a y
Luego
d
x
(y) = min {c(x,v) + d
v
(y) }
donde min se calcula entre todos los vecinos v de x
v
Int. Redes de Computadores-Capa de Red 4-85
Algoritmo Distance Vector
D
x
(y) = estimacin del menor costo de x a y
Nodo x conoce el costo a cada vecino v:
c(x,v)
Nodo x mantiene el distance vector D
x
=
[D
x
(y): y N ]
Nodo x tambin mantiene el vector de
distancia hacia sus vecinos
Para cada vecino v, x mantiene
D
v
= [D
v
(y): y N ]
Int. Redes de Computadores-Capa de Red 4-86
Algoritmo Distance Vector
Idea bsica:
Cada cierto tiempo, cada nodo enva su estimacin
de distance vector a sus vecinos
Asincrnico
Cuando un nodo x recibe una nueva estimacin del
DV de su vecino, actualiza su propio DV usando la
ecuacin de B-F:
D
x
(y) min
v
{c(x,v) + D
v
(y)} para cada nodo y N
Bajo condiciones naturales, la estimaacin D
x
(y)
converge al menor costo d
x
(y)
Int. Redes de Computadores-Capa de Red 4-87
Algoritmo Distance Vector
Iterativo, asincrnico:
cada iteracin local
causada por:
cambio en el costo de
enlaces local
mensaje de actualizacin
del DV de un vecino
Distribuido:
cada nodo notifica a sus
vecinos solo cuando cambia
su DV
vecinos notifican luego a
sus vecinos si es necesario
espera por (cambio en costo
local o actualizacin de los
vecinos)
recalcula estimacin
si cambi el DV para cualquier
destino, notifica a sus vecinos
Cada nodo:
Int. Redes de Computadores-Capa de Red 4-88
Algoritmo Distance Vector
1 Initialization:
2 for all destinations y in N:
3 D (y) = c(X,y) /* if y is not a neighbor c(X,y) = */
4 for each neighbor w
5 D (y) = for all destinations y in N
5 for each neighbor w
6 send distance vector D = [D (y): y in N] to w
7
9 loop
10 wait (until I see a link cost change to some neighbor w
11 or until I receive DV update from neighbor w)
12
13 for each y in N:
14 D (y) = min {c(X,v) + D (y)}
15
16 if D (y) changed for any destination y
17 send distance vector D = [D (y): y in N] to w
18
19 forever
X
X
X
en todos los nodos, X:
X
X
X
X
X X
Int. Redes de Computadores-Capa de Red 4-91
Distance Vector: cambios en los costos
Cambia el costo de un enlace:
nodo detecta el cambio
actualiza informacin de routing,
recalcula distance vector
si cambia DV, notifica a vecinos
las buenas
noticias
viajan
rpido
x
z
1 4
50
y
1
En tiempo t
0
, y detecta el cambio de costo, actualiza su DV,
e informa a sus vecinos.
En tiempo t
1
, z recibe la actualizacin desde y, actualiza su tabla.
Calcula el nuevo cost mnimo a x, enva su DV a los vecinos.
En tiempo t
2
, y recibe la actualizacin desde z, actualiza su tabla
de distancias.
El costo mnimo de y no cambia, entonces no enva ninguna
actualizacin
Int. Redes de Computadores-Capa de Red 4-92
Distance Vector: cambios en los costos
Cambia el costo de un enlace:
buenas noticias viajan rpido
malas noticias viajan lento -
problema count to infinity!
44 iteraciones para que se
estabilice el algoritmo
x
z
1 4
50
y
60
Int. Redes de Computadores-Capa de Red 4-96
Enrutamiento Jerrquico
escala: 100+ millones de
destinos:
no es posible almacenar
todos los destinos en las
tablas de routing!
Los intercambios de
informacin inundaran los
enlaces!
autonoma
administrativa
internet = red de redes
cada administrador
quiere tener control de
su propia red
Hasta ahora hemos visto una idealizacin
routers idnticos
red plana
no sucede en la prctica
Int. Redes de Computadores-Capa de Red 4-97
Enrutamiento Jerrquico
agrupamiento de routers en
regiones, autonomous
systems (AS)
routers dentro de un AS
corren el mismo protocolo
de routing
intra-AS routing
protocol
routers en ASs diferentes
pueden usar protocolos de
routing diferentes
gateway router
Enlace(s) directo(s) a
router(s) en otro(s)
AS(s)
Int. Redes de Computadores-Capa de Red 4-98
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
Intra-AS
Routing
algorithm
Inter-AS
Routing
algorithm
Forwarding
table
3c
Interconexin de ASs
la tabla de forwarding
se configura usando los
protocolos de routing
intra- e inter-AS
intra-AS configuran
entradas para destinos
internos
inter-AS & intra-As
configuran entradas
para destinos externos
Int. Redes de Computadores-Capa de Red 4-99
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
Tareas inter-AS
supongamos que un router
en AS1 recibe un
datagrama destinado fuera
de AS1:
el router debe
encaminar el paquete a
un gateway, pero cual?
AS1 debe:
1. aprender que destinos
son alcanzables por
AS2, y cuales por
AS3
2. Propagar esta
informacin en AS1
Trabajo del routing
inter-AS!
Int. Redes de Computadores-Capa de Red 4-100
Ejemplo:
configuracin de la tabla de forwarding en router 1d
supongamos que AS1 sabe (via protocolo inter-AS) que la subred x
es alcanzable via AS3 (gateway 1c) pero no via AS2.
el protocolo inter-AS protocol propaga informacin de
alcanzabilidad a los routers internos.
Usando esta informacin, el router 1d determina que su interfaz I
est en el camino de menor costo a 1c.
instala la entrada (x,I) en su tabla de forwarding
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
x
Int. Redes de Computadores-Capa de Red 4-104
Routing intra-AS
a.k.a. Interior Gateway Protocols (IGP)
los ms comunes:
RIP: Routing Information Protocol
OSPF: Open Shortest Path First
IGRP: Interior Gateway Routing Protocol
(propietario de Cisco)
Int. Redes de Computadores-Capa de Red 4-106
RIP ( Routing Information Protocol)
algoritmo distance vector
incluido en la distribucin de BSD-UNIX en 1982
mtrica de distance: # of hops (mx = 15 hops)
D C
B A
u v
w
x
y
z
destino hops
u 1
v 2
w 2
x 3
y 3
z 2
del router A a subredes:
Int. Redes de Computadores-Capa de Red 4-107
RIP advertisements
distance vectors: intercambiados entre
vecinos cada 30 segs. via Response
Message (tambin llamado advertisement)
cada advertisement: lista de hasta 25
subredes destino dentro del AS
Int. Redes de Computadores-Capa de Red 4-108
RIP: Ejemplo
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B 7
x -- 1
. . ....
w
x y
z
A
C
D
B
Routing/Forwarding table in D
Int. Redes de Computadores-Capa de Red 4-110
RIP: Link Failure & Recovery
Si no se recibe un advertisement pasados 180 segs. -->
vecino/enlace es declarado muerto
se invalidan las rutas via este vecino
se envan nuevos advertisements a vecinos
que a su vez envan nuevos advertisements (si hay
cambios en las tablas)
Fallo en enlace se propaga a toda la red,
rpidamente (?)
poison reverse usado para prevenir loops (ping-
pong); distamcia infinita = 16 hops)
Int. Redes de Computadores-Capa de Red 4-111
RIP: procesamiento de la tabla
La tabla de enrutamiento de RIP es gestionada por
un proceso de capa de aplicacin, llamado route-d
(daemon)
los advertisements se envan en paquetes UDP
physical
link
network forwarding
(IP) table
Transprt
(UDP)
routed
physical
link
network
(IP)
Transprt
(UDP)
routed
forwarding
table
Int. Redes de Computadores-Capa de Red 4-113
OSPF (Open Shortest Path First)
open: disponible pblicamente
usa algoritmo Link State
diseminacin de paquetes LS
mapa de la topologa en cada nodo
Cmputo de rutas usando el algoritmo de Dijkstra
advertisement de OSPF transporta una entrada para
cada router vecino
los advertisements son diseminados a todo el AS (via
flooding)
los mensajes OSPF son transportados directamente sobre IP
(en lugar de TCP or UDP)
Int. Redes de Computadores-Capa de Red 4-114
Carctersticas avanzadas de OSPF
(no en RIP)
seguridad: todos los mensajes OSPF son autenticados
(para prevenir intrusiones maliciosas)
se admiten mltiples caminos de igual costo (solo uno
en RIP)
para cada enlace, mtricas de costo diferentes segn
TOS (ej., el costo de un enlace satelital se configura
bjo para best effort; alto para tiempo real)
Soporte integrado uni y multicast:
Multicast OSPF (MOSPF) usa la misma base de
datos de topologa que OSPF
OSPF jerrquico en dominios grandes.
Int. Redes de Computadores-Capa de Red 4-115
OSPF Jerrquico
Int. Redes de Computadores-Capa de Red 4-116
OSPF Jerrquico
jerarqua de dos niveles: rea local, backbone.
Link-state advertisements solo en el rea
cada nodo conoce la topologa detallada del rea,
pero solo resmenes de las subredes en otras
reas.
area border routers: sumarizan distancias a redes
en el rea propia, y lo publican hacia los otros Area
Border routers.
backbone routers: OSPF limitado al backbone.
boundary routers: conectan con otros ASs (gateways
o routers de borde).
Int. Redes de Computadores-Capa de Red 4-118
Inter-AS routing en Internet: BGP
BGP (Border Gateway Protocol): estndar de facto
BGP provee mecanismos para:
1. Obtener informacin de alcanzabilidad de subredes de
los ASs vecinos.
2. Propaga informacin de alcanzabilidad a los routers
internos del AS.
3. Determina que rutas son buenas basadas en la
informacin de alcanzabilidad y las polticas de
enrutamiento.
permite informar la alcanzabilidad de subredes al
resto de Internet: aqu estoy
Int. Redes de Computadores-Capa de Red 4-119
BGP: conceptos bsicos
pares de routers (BGP peers) intercambian informacin de
routing sobre conexiones TCP semi-permanentes: sesiones
BGP
Las sesiones BGP no se corresponden necesariamente con
enlaces fsicos.
cuando AS2 publica un prefijo a AS1:
AS2 promete encaminar datagramas para ese prefijo.
AS2 puede agregar prefijos es sus publicaciones
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
eBGP session
iBGP session
Int. Redes de Computadores-Capa de Red 4-120
Distribucin de la informacin
de alcanzabilidad
AS3 enva la informacin de alcanzabilidad a AS1
usando una sesin eBGP entre 3a y 1c.
1c puede usar iBGP para distribuir la
informacin de prefijos a los routers en AS1
1b puede re-publicar la informacin hacia AS2
usando la sesin eBGP 1b-2a
Cuando un router aprende un prefijo nuevo, crea
una entrada para este prefijo en la tabla de
forwarding.
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
eBGP session
iBGP session
Int. Redes de Computadores-Capa de Red 4-121
Path attributes & rutas BGP
Las publicaciones de prefijos incluyen atributos BGP.
prefjo + atributos = rutas
dos atributos importantes:
AS-PATH: contiene la lista de ASs que ha atravesado la
publicacin de un prefijo: ej., AS 67, AS 17
NEXT-HOP: indica el router especfico en el prximo AS
(pues puede haber mltiples enlaces entre ASs).
Cuando un router de borde recibe una publicacin, usa
su import policy para aceptar/rechazar.
Int. Redes de Computadores-Capa de Red 4-122
BGP route selection
un router puede aprender ms de una ruta
para un prefijo dado: se necesita un
proceso de seleccin.
reglas de eliminacin:
1. atributo local preference: poltica de
decisin
2. shortest AS-PATH
3. closest NEXT-HOP router: hot potato routing
4. criterios adicionales
Int. Redes de Computadores-Capa de Red 4-123
Mensajes BGP
los mensajes BGP se intercambian usando TCP.
mensajes BGP:
OPEN: abre conexin TCP con peer y autentica al
que enva
UPDATE: publica nuevos caminos (o da de baja
otros)
KEEPALIVE: mantiene la conexin viva en ausencia
de UPDATES; se usa tambin como ACK del OPEN
NOTIFICATION: reporta errores en mensaje
previo; tambin se usa para cerrar conexin
Int. Redes de Computadores-Capa de Red 4-124
BGP routing policy
A,B,C son redes de proveedores
X,W,Y son clientes
X es dual-homed: conectado a dos proveedores
X no permite enrutar desde B via X hacia C
luego X no va a publicar a B un ruta hacia C
A
B
C
W
X
Y
referencia:
cliente
proveedor
red del
red del
Int. Redes de Computadores-Capa de Red 4-125
BGP routing policy
A publica camino AW a B
B publica camino BAW a X
debera B publicar camino BAW a C?
No! B no tiene retorno por enrutar CBAW dado
que ni W ni C son sus clientes
B quiere forzar que C enrute hacia w via A
B quiere enrutar solo desde/hacia sus clientes!
A
B
C
W
X
Y
referencia:
cliente
proveedor
red del
Int. Redes de Computadores-Capa de Red 4-126
Por qu Intra- e Inter-AS routing ?
Policy:
Inter-AS: los administradores quieren controlar como
se enruta su trfico, y quien usa el AS como trnsito.
Intra-AS: administracin nica, no se necesitan
polticas
Escala:
enrutamiento jerrquico reduce el tamao de las
tablas y de la informacin de actualizacin de
enrutamiento
Performance:
Intra-AS: enfocado en performance
Inter-AS: polticas son ms importantes que
performance
Int. Redes de Computadores-Capa de Red 4-128
R1
R2
R3 R4
Duplicacin en
la fuente
R1
R2
R3 R4
Duplicacin
en la red
duplicate
creation/transmission
duplicate
duplicate
Broadcast Routing
entrega de paquetes desde la fuente a todos los nodos
duplicacin en la fuente es ineficiente:
duplicacin en la fuente: como determinar la
direccin de los receptores?
registro?
Int. Redes de Computadores-Capa de Red 4-129
Duplicacin en la red
flooding: cuando un nodo recibe un paquete, enva
copias a todos sus vecinos
Problemas: ciclos & tormenta de broadcasts
flooding controlado: el nodo solo hace broadcast
de un paquete si no lo ha enviado antes
el nodo debe llevar la cuenta de los paquetes enviados
recientemente
o reverse path forwarding (RPF): solo enva un paquete
si lleg por el camino ms corto entre el nodo y la fuente
spanning tree
ningn nodo recibe paquetes redundantes
Int. Redes de Computadores-Capa de Red 4-130
A
B
G
D
E
c
F
A
B
G
D
E
c
F
(a) Broadcast iniciado en A
(b) Broadcast initiado en D
Spanning Tree
primero hay que contruir el spanning tree
los nodos envan copias solamente sobre el
spanning tree
Int. Redes de Computadores-Capa de Red 4-131
A
B
G
D
E
c
F
1
2
3
4
5
(a) Construction paso a
paso del spanning tree
A
B
G
D
E
c
F
(b) Spanning tree construido
Spanning Tree: creacin
nodo central o raz
cada nodo enva un mensaje unicast al nodo central
para unirse al rbol
el mensaje es reenviado hasta que llega a un nodo que
pertenece al spanning tree
Int. Redes de Computadores-Capa de Red 4-132
Multicast
UNICAST: UN EMISOR, UN
RECEPTOR.
BROADCAST: UN EMISOR,
TODOS LOS RECEPTORES.
ANYCAST: VARIOS
EMISORES, UN RECEPTOR (*).
MULTICAST: VARIOS
EMISORES, VARIOS
RECEPTORES VOLUNTARIOS.
Int. Redes de Computadores-Capa de Red 4-133
Grupos de
multicast
Int. Redes de Computadores-Capa de Red 4-134
Multicast Routing: el problema
Objetivo: encontrar un rbol (o rboles) que
conecta routers que tienen miembros de grupos
de mcast
rbol: no se usan todos los caminos
source-based: rboles diferentes desde cada fuente a
receptores
shared-tree: todos los miembros del grupo usan el mismo rbol
Shared tree Source-based trees
Int. Redes de Computadores-Capa de Red 4-135
Como se construyen los rboles de
multicast?
Posibilidades:
source-based tree: un rbol por fuente
shortest path trees
reverse path forwarding
group-shared tree: el grupo usa un nico rbol
minimal spanning (Steiner)
center-based trees
primero vamos a ver los enfoques bsicos, y algunos
protocolos que los implementan
Int. Redes de Computadores-Capa de Red 4-136
Shortest Path Tree
mcast forwarding tree: rbol de caminos ms
cortos desde la fuente a todos los receptores
Algoritmo de Dijkstra
R1
R2
R3
R4
R5
R6
R7
2
1
6
3
4
5
i
router con miembros del
grupo conectados
router sin miembros del
grupo conectados
Enlace usado para forwarding,
i indica el orden en que fue
agregado por el algoritmo
REFERENCIA
S: source
Int. Redes de Computadores-Capa de Red 4-137
Reverse Path Forwarding
if (datagrama mcast recibido en enlace entrante
en el shortest path hacia el centro)
then flooding del datagram en los enlaces de
salida
else ignorar datagrama
Se basa en el conocimiento que tiene el
router del unicast shortest path desde si
mismo a la fuente
cada router se comporta de forma simple:
Int. Redes de Computadores-Capa de Red 4-138
Reverse Path Forwarding: ejemplo
el resultado es un reverse SPT especfico para la
fuente
puede ser una mala opcin con enlaces
asimtricos
R1
R2
R3
R4
R5
R6
R7
router con miembros del
grupo conectados
router sin miembros del
grupo conectados
forwarding del datagrama
REFERENCIA
S: source
NO forwarding del
datagrama
Int. Redes de Computadores-Capa de Red 4-139
Reverse Path Forwarding: pruning
el rbol de forwarding contiene sub-rboles sin
miembros del grupo de mcast conectados
no es necesario reenviar datagramas en estos sub-
rboles
Los routers que no tienen miembros conectados
envan mensaje prune (poda) hacia atrs
R1
R2
R3
R4
R5
R6
R7
router con miembros del
grupo conectados
router sin miembros del
grupo conectados
mensaje prune
REFERENCIA
S: source
enlaces con forwarding multicast
P
P
P
Int. Redes de Computadores-Capa de Red 4-140
Shared-Tree: Steiner Tree
Steiner Tree: rbol de costo mnimo que
conecta todos los routers con miembros del
grupo conectados
problema NP-completo
existen buenas heursticas para atacarlo
no se usa en la prctica:
complejidad computational
se necesita informacin de toda la red
monoltico: debe recalcularse cada vez que un
router hace un join/leave
Int. Redes de Computadores-Capa de Red 4-141
Center-based trees
rbol de entrega nico compartido
un router identificado como centro del rbol
proceso de unin (join):
Los routers de borde envan mensajes unicast join
destinados al router central
el mensaje join es procesado por los routers intermedios
y reenviados hacia el centro
el mensaje join se une a una rama existente, o llega al
centro
el camino recorrido por el mensaje join se convierte en
una nueva rama
Int. Redes de Computadores-Capa de Red 4-142
Center-based trees: un ejemplo
Supongamos que R6 se elige como centro:
R1
R2
R3
R4
R5
R6
R7
router con miembros del
grupo conectados
router sin miembros del
grupo conectados
recorrido de los mensajes
join
REFERENCIA
2
1
3
1
Int. Redes de Computadores-Capa de Red 4-143
Internet Group Management Protocol: IGMP
hemos visto como se arman los rboles de distribucin
pero todava no sabemos como hace un host para unirse a un
grupo de multicast
IGMP: protocolo usado por los routers locales (los default
gateways) y los hosts
Int. Redes de Computadores-Capa de Red 4-144
IGMP
mensajes:
query: desde el router a los hosts
membership report: desde los hosts a los routers
leave: desde los hosts a los routers
el router puede hacer queries genricos (todos los
grupos) o especficos
los hosts pueden enviar mensajes de asociacin sin
esperar ser interrogados (no solicitados)
soft state: el router mantiene una tabla de los
hosts que pertenecen a cada grupo enviando
queries peridicos y recibiendo las respuestas
IGMP: protocolo de control anlogo a ICMP para
unicast
Int. Redes de Computadores-Capa de Red 4-145
Internet Multicasting Routing: DVMRP
DVMRP: distance vector multicast routing
protocol, RFC1075
flood & prune: reverse path forwarding,
source-based tree
rbol RPF basado en las tablas de routing de
DVMRP, construida por intercambio de
mensajes nativos (no se basa en unicast)
el datagrama inicial se enva por flooding al
grupo de mcast usando RPF
los routers que no participan del grupo envan
mensajes prune hacia arriba
Int. Redes de Computadores-Capa de Red 4-146
DVMRP
soft state: los routers DVMRP se olvidan
periodicamente (1 min.) que las ramas que estn
pruned:
se vuelven a enviar flujos mcast por esas ramas
los routers downstream (hacia abajo) tienen que volver a
mandar prune o seguirn recibiendo el flujo
los routers pueden reconectarse
siguiendo los join de IGMP en las hojas (redes locales)
de la vida real
usualmente implementado en routers comerciales
usado en Mbone (tambin MOSPF)