Avances tecnológicos del siglo XXI y ejemplos de estos
Capa Red
1. 1
Network Layer 4-1
Capítulo 4
Capa de red
Network Layer 4-2
Capitulo 4: Capa de red
Objetivos del capítulo:
Entender los principios detrás de los
servicios de la capa de red:
Modelos de servicios de la capa de red
Forwarding vs routing
Como funciona un router
Enrutamiento (Selección de caminos)
Escalamiento
Tópicos avanzados: IPv6
Aplicación e implementación en la Internet
Network Layer 4-3
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
2. 2
Network Layer 4-4
Capa de red
Transporta segmentos de
origen a destino
En origen encapsula
segmentos en datagramas
En destino entrega
segmentos a capa
transporte
Hay protocolos capa red
(network) en cada terminal
y router
Router examina campos de
cabecera en todos los
datagramas IP que pasan
por él
application
transport
network
data link
physical
application
transport
network
data link
physical
network
data link
physical network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physicalnetwork
data link
physical
Network Layer
Funciones claves de la capa de red
Ruteo: determinar
ruta para los
paquetes desde un
origen a destino.
Algoritmos de Ruteo
Re-envío
(forwarding): mover
paquetes desde la
entrada del router a
la salida apropiada.
Analogía:
Ruteo: proceso de
planear viaje de
origen a destino
Re-envío
(forwarding): proceso
de transitar a través
de una intersección
Network Layer 4-6
1
23
0111
Valor en la
cabecera del paquete
que arriba
routing algorithm
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
Interacción entre enrutamiento y forwarding
3. 3
Network Layer 4-7
Armando la conexión
Fuera de ruteo y re-envío, el establecimiento de la
conexión es la 3ra función de importancia en algunas
arquitecturas de redes:
ATM, frame relay, X.25
En algunas redes, antes que los datagramas fluyan, los
dos hosts y los routers que intervienen establecen una
conexión virtual
Routers se involucran en las conexiones
Diferencia entre los servicio de conexión de las capas
de red y transporte:
Red: conexión entre dos terminales (hosts)
Transporte: conexión entre dos procesos
Network Layer 4-8
Modelo de servicio de red
Q: ¿Cuál es el modelo de servicio para el “canal” que transporta los
datagramas desde Tx a Rx?
Sería bueno contar con:
Ejemplo de servicios para
datagramas individuales:
Entrega garantizada
Entrega garantizada con
retardo inferior a X [ms]
(e.g. 40 ms)
Ejemplo de servicios para un
flujo de datagramas:
Entrega de datagramas en
orden
Ancho de banda mínimo
garantizado para el flujo
Restricciones sobre
cambios en el intervalo
(tiempo) entre paquetes
Network Layer 4-9
Modelos de servicios de capa de
red:
Arquitectura
De red
Internet
ATM
ATM
ATM
ATM
Modelo de
Servicio
best effort
CBR
VBR
ABR
UBR
Bandwidth
none
constant
rate
guaranteed
rate
guaranteed
minimum
none
no Loss
no
yes
yes
no
no
Orden
no
yes
yes
yes
yes
Timing
no
yes
yes
no
no
Congestion
feedback
no (inferred
via loss)
no
congestion
no
congestion
yes
no
Guarantees ?
4. 4
Network Layer 4-10
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-11
Servicios de la capa de red
orientado y no orientado a la
conexión
Las redes de datagramas proveen servicio sin
conexión en su capa de red (caso Internet)
Redes de VC (Virtual Circuit) proveen servicio de
conexión en su capa de red (e.g. ATM)
Análogo a los servicios de capa transporte, pero:
Servicio es: terminal-a-terminal (host-to-host)
No hay opción: la capa de red provee sólo uno u otro
Implementación: en la red interna (core)
Network Layer 4-12
Circuitos virtuales VC
Hay tres fases identificables:
Establecimiento de la llamada,
Transferencia de datos, y
Término de la llamada
Cada paquete lleva un identificador del VC (no dirección de
máquina destino)
Cada router en el camino de origen a destino mantiene el
“estado” por cada conexión que pasa por él
Enlace y recursos del router (ancho de banda, buffers)
pueden ser asignados al VC (recursos dedicados=servicios
predecibles)
“camino de origen a destino se comporta más como un circuito
de teléfono”
performance-prudente
Acciones de red a lo largo del camino origen - destino
5. 5
Network Layer 4-13
Implementación VC
Un VC consiste de:
1. Camino desde origen a destino
2. Número de VC, un número por cada enlace a lo largo del
camino
3. Entradas en tablas de re-envío en los routers a lo largo
del camino
Los paquetes que pertenecen a un VC llevan el
número de VC correspondiente.
El número de VC debe ser cambiado en cada
enlace.
El nuevo número de VC es tomado de la tabla de re-envío
Network Layer 4-14
Tabla de reenvío
12 22 32
1
2
3
VC number
interface
number
Incoming interface Incoming VC # Outgoing interface Outgoing VC #
1 12 3 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …
Forwarding table in
northwest router:
Routers mantienen la información del estado de la conexion!
Network Layer 4-15
Circuitos virtuales: protocolos de
señalización
Usado para establecer, mantener y terminar VC
Usado en ATM, frame-relay, X.25
No usado en el Internet de hoy
application
transport
network
data link
physical
application
transport
network
data link
physical
1. Initiate call 2. incoming call
3. Accept call4. Call connected
5. Data flow begins 6. Receive data
6. 6
Network Layer 4-16
Redes de Datagrama
No establecimiento de la llamada en la capa de red
routers: no estado acerca de las conexiones end-
to-end
no concepto de “conexión” a nivel de red
Los paquetes son reenviados utilizando direcciones
de host destino
paquetes entre el mismo par origen-destino pueden
tomar diferentes caminos
application
transport
network
data link
physical
application
transport
network
data link
physical
1. Send data 2. Receive data
Network Layer 4-17
Tabla de Forwarding
Destination Address Range Link Interface
11001000 00010111 00010000 00000000
through 0
11001000 00010111 00010111 11111111
11001000 00010111 00011000 00000000
through 1
11001000 00010111 00011000 11111111
11001000 00010111 00011001 00000000
through 2
11001000 00010111 00011111 11111111
otherwise 3
4 billones de
Posibles entradas
Network Layer 4-18
Concidencia del prefijo mas largo
Prefix Match Link Interface
11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
otherwise 3
DA: 11001000 00010111 00011000 10101010
Examples
DA: 11001000 00010111 00010110 10100001 Cual interfase?
Cual interfase?
7. 7
Network Layer 4-19
Red de datagrama o VC : por que?
Internet (datagrama)
Datos intercambiados entre
computadores
Servicio “elástico”, sin
requerimientos de tiempo
estricto.
Sistemas terminales “inteligentes”
(computadores)
Se pueden adaptar, hacer
control, recuperación de errores
Red interna simple, la
complejidad en “periferia”
Muchos tipos de enlaces
Características diferentes:
satélite, radio, fibra, cable
Es difícil uniformar servicios:
tasas, pérdidas, BW
ATM (VC)
Evoluciona desde la
telefonía
Conversación humana:
Tiempos estrictos,
requerimientos de
confiabilidad
Necesidad de servicios
garantizados
Sistemas terminales
“tontos”
Teléfonos
Complejidad dentro de
la red
Network Layer 4-20
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-21
Arquitectura de routers
Generalidades
Dos funciones claves de los routers:
Correr algoritmos/protocolos de ruteo (RIP, OSPF, BGP)
Re-envío de datagramas desde enlaces de entrada a salida
8. 8
Network Layer 4-22
Funciones del puerto de entrada
Conmutación Descentralizada:
Dada la dirección destino de datagrama, se
obtiene puerto de salida usando la tabla de
re-envío en la memoria del puerto de entrada
Objetivo: procesamiento completo en puerto
de entrada a “velocidad de la línea”
Hacer cola si datagramas llegan más rápido
que velocidad de re-envío en el switch fabric
Capa física:
Recepción
nivel de bits
Capa enlace datos:
e.g., Ethernet
(más adelante)
Network Layer 4-23
Tres tipos de switching fabrics
Network Layer 4-24
Switching via memoria
Routers de primera generación:
Computador tradicional con conmutación bajo control
directo de la CPU (routing processor)
Paquetes son copiados a la memoria del sistema
Rapidez limitada por ancho de banda de la memoria (2
buses son cruzados por cada datagrama)
Input
Port
Output
Port
Memory
System Bus
9. 9
Network Layer 4-25
Switching Via un Bus
Datagrama desde el puerto de
entrada de memoria al puerto de
salida de memoria via un bus
compartido no esta involucrado el
routing processor
Contención de bus: velocidad de
switching limitado por el ancho de
banda del bus ( solo un paquete a la
vez puede ser transferido por el
bus)
Bus de 32 Gbps bus, Cisco 6500:
velocidad suficiente para acceso y
enterprise routers
Network Layer 4-26
Switching via una red de interconexión
Supera limitaciones de ancho de banda del bus
Redes de interconexión originalmente
desarrolladas para conectar procesadores en una
arquitectura multi-procesador
Diseño avanzado: fragmentación de datagramas en
celdas de tamaño fijo, las cuales pueden ser
conmutadas en la estructura más rápidamente.
Cisco 12000: conmuta a través de la red de
interconexión 60 [Gbps]
Network Layer 4-27
Puertos de salida
Almacenamiento (Buffering) requerido cuando los
datagramas llegan de fabric más rápido que la
velocidad de transmisión
Disciplina de itinerario (Scheduling) selecciona
entre los datagramas en cola para transmisión
10. 10
Network Layer 4-28
Encolamiento de puerto de salida
buffering cuando la velocidad de arribo via switch
excede la velocidad de la linea de salida
queueing (retardo) y pérdida debido a overflow del
buffer del puerto de salida!
Network Layer 4-29
Cuanto buffering?
RFC 3439 regla del pulgar: buffering
promedio igual al “tipico” RTT (digamos 250
msec) veces la capacidad del enlace C
ejemplo, C = 10 Gps link: 2.5 Gbit buffer
Recomendaciones recientes: con N flujos,
buffering igual a RTT C.
N
Network Layer 4-30
Encolamiento puerto de entrada
Fabric más lento que los puertos de entrada combinados->
encolamiento puede ocurrir en las colas de entrada
Head-of-the-Line (HOL) blocking: datagramas encolados
en el frente de la cola previene a otros en la cola de
moverse hacia adelante
Retardo de encolamiento y perdida debido a overflow en
el buffer de entrada!
11. 11
Network Layer 4-31
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-32
Capa de red de Internet
forwarding
table
Host, funciones de la capa de red del router :
Routing protocols
•path selection
•RIP, OSPF, BGP
IP protocol
•addressing conventions
•datagram format
•packet handling conventions
ICMP protocol
•error reporting
•router “signaling”
Transport layer: TCP, UDP
Link layer
physical layer
Network
layer
Network Layer 4-33
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
12. 12
Network Layer 4-34
Formato del datagrama IP
ver length
32 bits
data
(variable length,
typically a TCP
or UDP segment)
16-bit identifier
header
checksum
time to
live
32 bit source IP address
IP protocol version
number
header length
(bytes)
max number
remaining hops
(decremented at
each router)
for
fragmentation/
reassembly
total datagram
length (bytes)
upper layer protocol
to deliver payload to
head.
len
type of
service
“type” of data
flgs
fragment
offset
upper
layer
32 bit destination IP address
Options (if any) E.g. timestamp,
record route
taken, specify
list of routers
to visit.
Cuanto overhead
con TCP?
20 bytes de TCP
20 bytes de IP
= 40 bytes +
overhead de la
capa de apli.
Network Layer 4-35
Fragmentación de IP
Fragmentation & reensamblaje
Los enlaces de red tienen
MTU (max.transfer size) –
frame de nivel de enlace lo
más largo posible.
Diferentes tipos de enlace
Diferentes MTUs
Datagrama largo IP dividido
(“fragmentado”) dentro de la
red
Un datagrama se convierte
en algunos datagramas
“reensamblaje” unicamente
en el destino final
Bits del encabezado IP son
usados para identificar,
ordenar los fragmentos
relacionados
fragmentacion:
in: un datagrama largo
out: 3 datagramas pequeño
reassembly
Network Layer 4-36
Fragmentación IP y reensamblaje
ID
=x
offset
=0
fragflag
=0
length
=4000
ID
=x
offset
=0
fragflag
=1
length
=1500
ID
=x
offset
=185
fragflag
=1
length
=1500
ID
=x
offset
=370
fragflag
=0
length
=1040
Un datagrama largo se convierte en algunos
pequeños datagramas
Ejemplo
Datagrama 4000
byte
MTU = 1500 bytes
1480 bytes en
el campo de datos
offset =
1480/8
13. 13
Network Layer 4-37
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-38
Direccionamiento IP: introducción
Dirección IP address:
identificador 32-bit
para host, interfaces
de router
interface: conexión
entre el host/router y
el enlace físico
Los routers
tipicamente tienen
múltiples interfaces
Host tipicamente
tienen una interface
Direcciones IP
asociados con cada
interface
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 11
Network Layer 4-39
Subnets
Direcciones IP :
Parte de subnet (bits
de alto orden)
host part (bits de bajo
orden)
Que es una subnet ?
Dispositivos cuyas
interfaces tienen la
misma parte de subnet
en la dirección IP
Pueden fisicamente
llegar a otros sin la
intervención de un
router
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
network consisting of 3 subnets
subnet
14. 14
Network Layer 4-40
Subnets 223.1.1.0/24
223.1.2.0/24
223.1.3.0/24
Receta
Para determinar las
subnet, quite la
interface de su host o
router, creando islas
de redes aisladas.
Cada red aislada es
llamada subnet.
Subnet mask: /24
Network Layer 4-41
Subnets
Cuantas? 223.1.1.1
223.1.1.3
223.1.1.4
223.1.2.2223.1.2.1
223.1.2.6
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1
223.1.8.0223.1.8.1
223.1.9.1
223.1.9.2
Network Layer 4-42
Clasificación y definición de
direcciones IPv4
15. 15
Network Layer 4-43
Direcciones IP : Como obtener una?
Q: Como un host obtiene una dirección IP?
hard-coded en un archivo por el system admin
Windows: control-panel->network->configuration-
>tcp/ip->properties
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol:
dinámicamente obtiene una dirección desde un
servidor
“plug-and-play”
Network Layer 4-44
DHCP: Dynamic Host Configuration Protocol
Objetivo: permitir a un host obtener dinamicamente una dirección
IP de un servidor de red cuando el host se une a la red
Puede renovar su arrendamiento de la dirección en uso
Permite la reutilización de las direcciones (solo las direcciones
agarradas mientras se conectan “on” )
Soporte para usuarios mobiles que quieren unirse a la red
DHCP generalidades:
host transmite a todos “DHCP Discover ” mensaje
DHCP server responde con “DHCP offer” mensaje
host solicita una dirección IP: “DHCP request” mensaje
DHCP server envía dirección: “DHCP ack” mensaje
Network Layer 4-45
Escenario DHCP cliente-servidor
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
B
E
DHCP
servidor
Cliente DHCP que llega
necesita una dirección
para la red
16. 16
Network Layer 4-46
Escenario DHCP cliente-servidor
DHCP server: 223.1.2.5 arriving
client
time
DHCP discover
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
Lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
Network Layer 4-47
Direccionamiento IP : CIDR
CIDR: Classless InterDomain Routing
Porción de subnet de direccion de longitud
arbitraria
Formato de dirección: a.b.c.d/x, donde x es el #
bits en la porción de subnet de la dirección
(prefijo)
11001000 00010111 00010000 00000000
subnet
part
host
part
200.23.16.0/23
Network Layer 4-48
Direcciones IP: como obtener una?
P: Como la red obtiene la parte de subnet de
una dirección IP?
R: Obtiene la porción asignada de el espacio de
direccionamiento de su proveedor ISP’s
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23
17. 17
Network Layer 4-49
Direccionamiento Jerárquico: route
aggregation
“Send me anything
with addresses
beginning
200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP
Organization 0
Organization 7
Internet
Organization 1
ISPs-R-Us
“Send me anything
with addresses
beginning
199.31.0.0/16”
200.23.20.0/23
Organization 2
.
.
.
.
.
.
Direccionamiento Jerarquico permite un eficiente anuncio de la información
de enrutamiento:
Network Layer 4-50
Direccionamiento Jerárquico: rutas más
específicas
ISPs-R-Us tienen una ruta más espercífica a la Organización 1
“Send me anything
with addresses
beginning
200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP
Organization 0
Organization 7
Internet
Organization 1
ISPs-R-Us
“Send me anything
with addresses
beginning 199.31.0.0/16
or 200.23.18.0/23”
200.23.20.0/23
Organization 2
.
.
.
.
.
.
Network Layer 4-51
Direccionamiento IP: las últimas
palabras..
P: Como un ISP obtiene un bloque de
direcciones?
R: ICANN: Internet Corporation for Assigned
Names and Numbers
Asignan direcciones
Administra DNS
Asigna los dominios de nombres, resuelve
disputas
18. 18
Network Layer 4-52
NAT: Network Address Translation
Traducción de direcciones de red
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
local network
(e.g., home network)
10.0.0/24
rest of
Internet
Datagramas con origen o destino
en la red tienen la dirección
10.0.0/24 para origen, destino
(como usual)
Todos los datagramas que dejan la
red local tienen un mismo y unico
origen NAT IP address:
138.76.29.7,
Diferentes números de puertos
origen
Network Layer 4-53
NAT: Network Address Translation
Traducción de direcciones de red
Motivación: la red local usa solo una dirección IP en lo
que respecta al mundo exterior:
Rango de direcciones no son necesarias del ISP:
solamente una dirección para todos los dispositivos
Puede cambiar direcciones de los dispositivos en la
red local sin modificar el mundo exterior
Puede cambiar de ISP sin cambiar las direcciones de
los dispositivos en la red local
Los dispositivos de la red local interna no son
explicitamente direccionables ni visibles para el
mundo exterior ( seguridad).
Network Layer 4-54
NAT: Network Address Translation
Traducción de direcciones de red
Implementacion: El router NAT debe:
outgoing datagrams: reemplazar (dirección IP origen,
, # puerto) de cada uno de los datagramas de salida
hacia (dirección IP NAT, nuevo # puerto)
. . . Clientes remotos/servidores responderán usando
(dirección IP NAT, nuevo # puerto) como dirección
destino.
recordar (en la tabla de traducción NAT) cada
(dirección IP origen, # puerto) para (dirección IP
NAT, nuevo # puerto) par traducido
incoming datagrams: reemplazar (dirección IP NAT,
nuevo # puerto) en el campo destino de cada
datagrama de entrada con el correspondiente
(dirección IP origen, # puerto) guardado en la tabla
NAT
19. 19
Network Layer 4-55
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
1
10.0.0.4
138.76.29.7
1: host 10.0.0.1
sends datagram to
128.119.40.186, 80
NAT translation table
WAN side addr LAN side addr
138.76.29.7, 5001 10.0.0.1, 3345
…… ……
S: 128.119.40.186, 80
D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001
D: 128.119.40.186, 802
2: NAT router
changes datagram
source addr from
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3
3: Reply arrives
dest. address:
138.76.29.7, 5001
4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
Network Layer 4-56
NAT: Network Address Translation
Traducción de direcciones de red
Campo del número de puerto 16-bit:
60,000 conexiones simultáneas con una única
dirección del lado LAN!
NAT es polémico:
Los routers unicamente deberan procesar hasta
capa 3
Viola el argumento end-to-end
• La posibibilidad de NAT deberá ser tomada en
consideración por los diseñadores de aplicaciones,
ejemplo aplicaciones P2P
La falta de direcciones deberá ser resuelto por
IPv6
Network Layer 4-57
NAT problema traversal
El cliente quiere conectarse al
servidor con la dirección 10.0.0.1
La dirección de servidor 10.0.0.1
es local para LAN (el cliente no
puede usar esta como dirección
destino)
Solo es visible una dirección
NATeada externamente:
138.76.29.7
solución 1: NAT configurado
estáticamente para reenviar los
requerimientos de conexiones de
entrada a un puerto dado del
servidor
e.g., (123.76.29.7, port 2500)
siempre reenviando a 10.0.0.1
puerto 25000
10.0.0.1
10.0.0.4
NAT
router
138.76.29.7
Client
?
20. 20
Network Layer 4-58
NAT traversal problem
solución 2: Universal Plug and
Play (UPnP) Internet Gateway
Device (IGD) Protocol. Permite
al host Nateado:
Aprender direcciones
públicas (138.76.29.7)
añadir/remover los mapeos
de puertos (con tiempos de
arrendamiento)
Ejemplo, automatizar
configuración de mapas de
puertos NAT estáticos
10.0.0.1
10.0.0.4
NAT
router
138.76.29.7
IGD
Network Layer 4-59
NAT traversal problem
solución 3: relevos (usado en Skype)
Cliente NATeado establece conexión con el relevo
Cliente externo se conecta con el relevo
El relevo hace puente para los paquetes entre las
conexiones
138.76.29.7
Client
10.0.0.1
NAT
router
1. connection to
relay initiated
by NATted host
2. connection to
relay initiated
by client
3. relaying
established
Network Layer 4-60
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
21. 21
Network Layer 4-61
ICMP: Internet Control Message Protocol
Usado por los hosts & routers
para comunicarse información
de nivel de red
Reporte de errores:
unreachable host, network,
port, protocol
echo request/reply (usado
por ping)
Capa de red “encima” IP:
Mensajes ICMP son
llevados en datagramas IP
Mensaje ICMP : tipo, codigo
más los primeros 8 bytes del
datagrama IP causante del
mensaje ICMP.
Type Code description
0 0 echo reply (ping)
3 0 dest. network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header
Network Layer 4-62
Traceroute e ICMP
Origen envía una serie de
segmentos UDP al destino
Primero tiene TTL =1
Segundo tiene TTL=2, etc.
Se utiliza un número de
puerto improbable (raro)
Cuando nth datagrama llega
al nth router:
Router descarta el
datagram
Y envía al origen un
mensaje ICMP (tipo 11,
codigo 0) TTL expired
Mensaje incluye nombre
del router & dirección IP
Cuando el mensaje ICMP
llega, el origen calcula RTT
Traceroute envía set de 3
paquetes con el mismo TTL
Criterio para detenerse
Segmento UDP
eventualmente llega al host
destino
Destino retorna un paquete
ICMP “destination port
unreachable” (tipo 3,
codigo 3)
Cuando el origen obtiene
este ICMP, para.
Network Layer 4-63
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
22. 22
Network Layer 4-64
IPv6
Motivación inicial: el espacio de direcciones de
32-bit pronto va ser completamente
asignado.
Motivación adicional:
Formato de cabecera ayuda a la velocidad de
procesamiento/forwarding
Cabecera cambia para facilitar el QoS
Formato del datagrama IPv6 :
Cabecera de longitud fija 40 byte
no se permite fragmentación
Network Layer 4-65
Cabecera IPv6 (Cont)
Priority: identifica la prioridad entre los datagramas en el flujo
Flow Label: identifica datagramas en el mismo “flujo.”
(concepto de “flujo” no esta bien definido aún).
Next header: identifica protocolo de capa superior para datos
Network Layer 4-66
Otros cambios en relación IPv4
Checksum: removido enteramente para
reducir el tiempo de procesamineto en
cada hop
Options: permitido, pero fuera del header,
indicado por el campo “Next Header”
ICMPv6: nueva version de ICMP
Tipos de mensaje adicional, ejemplo: “Paquete
muy grande”
Funciones de manejo de grupos multicast
23. 23
Network Layer 4-67
Transición de IPv4 a IPv6
No todos los routers pueden ser actualizados
simultáneamente
no “ventana de mantenimiento”
Como la red operará con una mezcla de routers
IPv4 e IPv6 ?
Tunneling: IPv6 llevará un payload en los
datagramas IPv4 entre los routers IPv4
Network Layer 4-68
Tunneling
A B E F
IPv6 IPv6 IPv6 IPv6
tunnelVista Lógica:
Vista Física:
A B E F
IPv6 IPv6 IPv6 IPv6IPv4 IPv4
Network Layer 4-69
Tunneling
A B E F
IPv6 IPv6 IPv6 IPv6
tunnelVista Lógica:
Vista Física:
A B E F
IPv6 IPv6 IPv6 IPv6
C D
IPv4 IPv4
Flow: X
Src: A
Dest: F
data
Flow: X
Src: A
Dest: F
data
Flow: X
Src: A
Dest: F
data
Src:B
Dest: E
Flow: X
Src: A
Dest: F
data
Src:B
Dest: E
A-to-B:
IPv6
E-to-F:
IPv6
B-to-C:
IPv6 inside
IPv4
B-to-C:
IPv6 inside
IPv4
24. 24
Network Layer 4-70
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-71
1
23
0111
Valor en la cabecera
del paquete que llega
routing algorithm
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
Interacción entre enrutamiento y
forwarding
Network Layer 4-72
u
yx
wv
z
2
2
1
3
1
1
2
5
3
5
Graph: G = (N,E)
N = set of routers = { u, v, w, x, y, z }
E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Abstracción Gráfica
Comentario: Abstracción gráfica es util en otros contextos de red
Ejemplo: P2P, donde N es un conjungo de peers y E es un conjunto
conexiones TCP
25. 25
Network Layer 4-73
Abstracción gráfica: costos
u
yx
wv
z
2
2
1
3
1
1
2
5
3
5
• c(x,x’) = costo del enlace (x,x’)
- e.g., c(w,z) = 5
• costo podría ser siempre 1, o
inversamente relacionado al ancho
de banda, o inversamente relacionad
a la congestión
Costo del camino (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Pregunta: Cual es el camino de menor costo entre u y z ?
Algoritmo de enrutamiento: algoritmo que encuentra el camino
de menor costo
Network Layer
Clasificación de los algoritmos de ruteo
Según información global o
descentralizada?
Global:
Todos los routers conocen la
topología completa y costos de
enlaces
Algoritmos de “estado de enlace”
(link state)
Descentralizada:
El router conoce vecinos
conectados físicamente y el costo
del enlace a ellos.
Proceso iterativo de cómputo e
intercambio de información con
sus vecinos
Algoritmos de “vector de
distancia”
Según si es estático o
dinámico?
Estático:
Rutas cambian lentamente
en el tiempo
Dinámico:
Rutas cambian más
rápidamente
Actualizaciones
periódicas
En respuesta a cambios
de costos de enlaces
Network Layer 4-75
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
26. 26
Network Layer
Un Algoritmo de ruteo de estado
de enlace
Algoritmo de Dijkstra
Supone topología de red y
costos de enlaces conocidos a
todos los nodos
Se logra vía “difusión de
estado de enlace”
Todos los nodos tienen la
misma información
Se calcula el camino de costo
menor desde un nodo (fuente) a
todos los otros
Determina tabla de re-envío
(forwarding) para ese nodo
Iterativo: después de k
iteraciones, se conoce el camino
de menor costo a k destinos
Notación:
c(x,y): costo del enlace
desde nodo x a y; = ∞ si no
es vecino directo
D(v): valor actual del costo
del camino de menor costo
desde fuente a destino v.
p(v): nodo previo a v en el
camino actual de menor
costo desde el origen a v.
N': conjunto de nodos, v
esta en el conjunto si el
camino cuyo camino de
menor costo desde el
origen a v es conocido
Network Layer 4-77
Algoritmo de Dijsktra
1 Initialization:
2 N' = {u}
3 for all nodes v
4 if v adjacent to u
5 then D(v) = c(u,v)
6 else D(v) = ∞
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes in N'
Network Layer 4-78
Ejemplo de algoritmo Dijkstra
Step
0
1
2
3
4
5
N'
u
ux
uxy
uxyv
uxyvw
uxyvwz
D(v),p(v)
2,u
2,u
2,u
D(w),p(w)
5,u
4,x
3,y
3,y
D(x),p(x)
1,u
D(y),p(y)
∞
2,x
D(z),p(z)
∞
∞
4,y
4,y
4,y
u
yx
wv
z
2
2
1
3
1
1
2
5
3
5
27. 27
Network Layer 4-79
Algorimo de Dijkstra: ejemplo (2)
u
yx
wv
z
Arbol resultante de los caminos más cortos desde u:
v
x
y
w
z
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
destination link
Tabla de forwarding resultante de u:
Network Layer 4-80
Algoritmo de Dijkstra, discusión
Complejidad del algoritmo: n nodos
Cada iteracción: se necesita revisar en todos los nodos, w que
no está en N
El numero total de nodos que se necesitan buscar a traves de
todas las iteraciones es n(n+1)/2: O(n2)
Implementaciones lo más eficientemente posibles: O(n log n)
Posible oscilaciones:
ejemplo, costo del enlace = cantidad del tráfico llevado
A
D
C
B
1 1+e
e0
e
1 1
0 0
A
D
C
B
2+e 0
00
1+e 1
A
D
C
B
0 2+e
1+e1
0 0
A
D
C
B
2+e 0
e0
1+e 1
Inicialmente
… recomputando
enrutamiento
… recomputo … recomputo
Network Layer 4-81
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
28. 28
Network Layer 4-82
Algoritmo de distancia Vectorial
Ecuación de Bellman-Ford (programación dinámica)
Definir
dx(y) := menor costo del camino x a y
Luego
dx(y) = min {c(x,v) + dv(y) }
donde min es tomado de todos los vecinos v de x
v
Network Layer 4-83
Ejemplo Bellman-Ford
u
yx
wv
z
2
2
1
3
1
1
2
5
3
5
Claramente, dv(z) = 5, dx(z) = 3, dw(z) = 3
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
Nodo que logra el mínimo es el siguiente
hop en el camino más corto ➜ Tabla de forwarding
Ecuación B-F dice:
Network Layer 4-84
Algoritmo de distancia vectorial
Dx(y) = estimado del menor costo desde x
hasta y
Node x conoce el costo a cada vecino
diretamente conectado v: c(x,v)
Node x mantiene el vector distancia Dx =
[Dx(y): y є N ], estimado de x de todos sus
costos a todos los destinos y en N
Node x también mantiene los vectores
distancia a cada uno de sus vecinos
Para cada vecino v, x mantiene
Dv = [Dv(y): y є N ]
29. 29
Network Layer 4-85
Algoritmo vector distancia(4)
Idea básica:
De tiempo en tiempo, cada nodo envía su propio
vector distancia estimado a los vecinos
Asincronico
Cuando un nodo x recibe un nuevo estimado DV de
su vecino, este actualiza su propio DV usando la
ecuación B-F:
Dx(y) ← minv{c(x,v) + Dv(y)} para cada nodo y ∊ N
Mientras todos los nodos continuen
intercambiando sus vectores distancia y bajo
condiciones normales cada costo estimado Dx(y)
converge al menor costo actual dx(y)
Network Layer 4-86
Algoritmo de distancia vectorial (5)
Iterativo, asincronico:
cada iteracción local
causada por:
Cambio en el costo del
enlace local
Mensaje de actualización
del DV enviado por el
vecino
Distribuido:
Cada nodo notifica a los
vecinos solamente cuando
su DV cambia
Vecinos luego notifican a
sus vecinos si es necesario
wait for (change in local link
cost or msg from neighbor)
recompute estimates
if DV to any dest has
changed, notify neighbors
Cada nodo:
Network Layer 4-87
x y z
x
y
z
0 2 7
∞ ∞ ∞
∞ ∞ ∞
from
cost to
fromfrom
x y z
x
y
z
0
from
cost to
x y z
x
y
z
∞ ∞
∞ ∞ ∞
cost to
x y z
x
y
z
∞ ∞ ∞
7 1 0
cost to
∞
2 0 1
∞ ∞ ∞
2 0 1
7 1 0
time
x z
12
7
y
node x table
node y table
node z table
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
32
30. 30
Network Layer 4-88
x y z
x
y
z
0 2 7
∞ ∞ ∞
∞ ∞ ∞
from
cost to
fromfrom
x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
∞ ∞
∞ ∞ ∞
cost to
x y z
x
y
z
0 2 7
from
cost to
x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 7
from
cost to
x y z
x
y
z
∞ ∞ ∞
7 1 0
cost to
∞
2 0 1
∞ ∞ ∞
2 0 1
7 1 0
2 0 1
7 1 0
2 0 1
3 1 0
2 0 1
3 1 0
2 0 1
3 1 0
2 0 1
3 1 0
time
x z
12
7
y
node x table
node y table
node z table
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
Network Layer
Vector de distancia: cambios en costos
de enlaces
Cambios en costos de enlaces:
nodo detecta un cambio de costo en
uno de sus enlaces
actualiza información de ruteo,
recalcula vector distancia
si hay cambio en DV notifica a sus
vecinos
“buenas
noticias
viajan
rápido”
x z
14
50
y
1
En el tiempo t0, y detecta un cambio en costo de enlace, actualiza su
DV e informa a sus vecinos.
En el tiempo t1, z recibe la información de y, también actualiza su tabla.
Calcula un nuevo costo para x y le envía su DV a sus vecinos.
En el tiempo t2, y recibe la actualización de z y actualiza su tabla de
distancia. Los costos mínimos de y no cambian, y no envía ningún
nuevo mensaje a z.
Network Layer 4-90
Vector distancia: cambios en los costos
de los enlaces
Cambios en los costos de enlaces:
Buenas noticias viajan rápido
Malas noticias viajan lento -
problema del “count to
infinity” !
x z
14
50
y
60
31. 31
Network Layer
Vector de distancia: cambio en costo de enlaces (e.g.
incremento de costo)
Inicialmente: Dy(x) = 4, Dy(z) = 1, Dz(x) = 5, Dz(y) = 1
En el tiempo t0 y detecta el cambio de costo y calcula:
Dy(x) = min {c(y,x) + Dx(x), c(y,z) + Dz(x)} =
= min {60 + 0, 1 + 5} = 6
Con nuestra visión global de la red sabemos que este valor de Dy(x)
está equivocado. Esto pasa porque la última información que el
nodo y tiene es que para llegar de z a x uno puede rutear a través
de z con un costo de 5. Ahora (en t1) tenemos un routing loop.
Para llegar a x ruteamos a través de z y z rutea a través de y...
un paquete que cae en un routing loop va a rebotar entre los dos
routers para siempre (en IP muere por TTL).
y tiene un nuevo mínimo costo de 6 para Dy(x), y informa de su
nuevo vector de distancia DY a sus vecinos.
z recibe este vector de distancia DY y recalcula Dz
DZ(x) = min {50 + 0, 1 + 6} = 7
En t2 al cambiar el mínimo costo para llegar a x, z informa a y de
su nuevo vector de distancia DZ
y recibe DZ , recalcula un nuevo Dy(x) e informa a sus vecinos...
etc...el proceso se repite por 44 iteraciones!
x z
14
50
y
60
x y z
x
y
z
0 4 5
from
5 1 0
4 0 1
node y table
x y z
x
y
z
0 4 5
from
5 1 0
6 0 1
node y table
Network Layer
Comparación de algoritmos de estado (LS) de
enlace y vector de distancia (DV)
Complejidad de mensajes
LS: con n nodos, E enlaces,
O(nE) mensajes son enviados
DV: sólo intercambios entre
vecinos
Tiempo de convergencia
varía
Rapidez de convergencia
LS: O(n2), algoritmo requiere
O(nE) mensajes
Puede tener oscilaciones
DV: tiempo de convergencia
varía
Podría estar en loops
Problema de cuenta infinita
Robustez: ¿qué pasa si un
router funciona mal?
LS:
Nodos pueden comunicar
incorrecto costo del link
Cada nodo computa sólo su
propia tabla
DV:
DV nodo puede comunicar
costo de camino incorrecto
La tabla de cada nodo es
usada por otros
• error se propaga a través
de la red
Network Layer 4-93
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
32. 32
Network Layer 4-94
Enrutamiento Jerárquico
escalamiento: con 200 millones
de destinos:
No puede guardar todos los
destinos en tablas de
enrutamientos!
Los intercambios de las tablas
de enrutamiento pueden
inundar el enlace!
Autonomía administrativa
internet = red de redes
Cada administrador de red
querrán controlar el
enrutamiento en su propia red
Ideal
Todos los routers son idénticos
red “plana”
… no es verdad en la práctica
Network Layer 4-95
Enrutamiento Jeráquico
Agregar los routers dentro
de regiones, “sistema
autonomo” (AS)
Los routers en el mismo AS
corren el mismo protocolo
de enrutamiento
Protocolo de enrutamiento
“intra-AS”
routers en diferentes AS
pueden correr diferentes
protocolos de
enrutamiento intra-AS
Gateway router
Enlace directo a router en
otro AS
Network Layer 4-96
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
Intra-AS
Routing
algorithm
Inter-AS
Routing
algorithm
Forwarding
table
3c
Interconectando ASes
forwarding table
configurado por los dos
algoritmos de enrutamiento
intra- and inter-AS
intra-AS pone entradas
para los destinos internos
inter-AS & intra-As pone
entradas para los destinos
externos
33. 33
Network Layer 4-97
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
Tareas Inter-AS
Suponga que el router en
AS1 recibe un datagrama
destinado para la parte
outside de AS1:
Router debera entregar
el paquete al gateway
router, pero a cual?
AS1 deberá:
1. Aprender cuales
destinos son
alcanzables a través
de AS2, y cuales a
través AS3
2. Progagar la
información de
alcanze a todos los
routers en AS1
Trabajo de enrutamiento
inter-AS !
Network Layer 4-98
Ejemplo: Estableciendo la forwarding table en
el router 1d
Suponga que AS1 aprende (via inter-AS protocol) que la
subnet x es alcanzable via AS3 (gateway 1c) pero no via
AS2.
Protocolo inter-AS propaga la información de alcance a
todos los routers internos.
router 1d determina de la información de enrutamiento
intra-AS que su interface I esta en el caminos de
menor costo a 1c.
instala la entrada (x,I) en el forwarding table
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
x…
Network Layer 4-99
Ejemplo: Seleccionando entre múltiples ASes
Ahora suponga que AS1 aprende del protocolo inter-
AS que la subnet x es alcanzable desde AS3 y desde
AS2.
Para configurar la forwarding table, router 1d
deberá determinar hacia cual gateway deberá
entregar los paquetes para el destino x.
Esto es tambien trabajo del protocolo de
enrutamiento inter-AS l!
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
x… …
34. 34
Network Layer 4-100
Learn from inter-AS
protocol that subnet
x is reachable via
multiple gateways
Use routing info
from intra-AS
protocol to determine
costs of least-cost
paths to each
of the gateways
Hot potato routing:
Choose the gateway
that has the
smallest least cost
Determine from
forwarding table the
interface I that leads
to least-cost gateway.
Enter (x,I) in
forwarding table
Ejemplo: Escogiendo entre multiples ASes
Ahora suponga que AS1 aprende del protocolo inter-AS que la
subnet x es alcanzable desde AS3 y desde AS2.
Para configurar la forwarding table, router 1d deberá
determinar hacia cual gateway el deberá entregar los paquetes
para el destino x.
Este es tambien trabajo del protocolo de enrutamiento
inter-AS!
hot potato routing: envia el paquete hacia el más cerca de dos
routers.
Network Layer 4-101
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-102
Enrutamiento Intra-AS
También conocido como Interior Gateway
Protocols (IGP)
Más comunmente Intra-AS routing protocols:
RIP: Routing Information Protocol
OSPF: Open Shortest Path First
IGRP: Interior Gateway Routing Protocol (Cisco
proprietary)
35. 35
Network Layer 4-103
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-104
RIP ( Routing Information Protocol)
Algoritmo de distancia vectorial
Incluido en BSD-UNIX distribuido en 1982
Metrica de distancia: # de hops (max = 15 hops)
DC
BA
u v
w
x
y
z
destination hops
u 1
v 2
w 2
x 3
y 3
z 2
From router A to subnets:
Network Layer 4-105
RIP advertisements
Vector distancia: intercambio entre vecinos
cada 30 seg via Response Message
(también llamado advertisement)
cada advertisement: lista hasta 25 subnet
de destino dentro del AS
36. 36
Network Layer 4-106
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
Network Layer 4-107
RIP: Ejemplo
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B A 7 5
x -- 1
…. …. ....
Routing/Forwarding table in D
w x y
z
A
C
D B
Dest Next hops
w - 1
x - 1
z C 4
…. … ...
Advertisement
from A to D
Network Layer 4-108
RIP: Falla de enlace y recuperación
Si no se escucha de advertisement despúes de 180 seg -
-> el enlace/vecino es declarado muerto
Rutas a través de ese vecino son inválidas
Nuevos advertisements son enviados a los vecinos
Los vecinos en turno envían nuevos advertisements
(si las tablas cambian)
Información de la falla de enlace rapidamente se
propaga a toda la red
poison reverse usado para prevenir los lazos ping-
pong loops (distancia infinita = 16 hops)
37. 37
Network Layer 4-109
RIP Procesamiento de Tabla
Tablas de enrutamiento RIP administradas por un
proceso de nivel de aplicación llamado route-d
(daemon)
advertisements enviado en paquetes UDP,
repetidos periódicamente
physical
link
network forwarding
(IP) table
Transprt
(UDP)
routed
physical
link
network
(IP)
Transprt
(UDP)
routed
forwarding
table
Network Layer 4-110
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-111
OSPF (Open Shortest Path First)
“abierto”: disponible publicamente
Usa el algoritmo de estado de enlace
Diseminación de paquete LS
Mapa topológico en cada nodo
Computo de rutas utilizando el algoritmo de Dijkstra’s
OSPF advertisement lleva una entrada por cada
router vecino
Diseminación de advertisements a todo el AS (via
flooding)
Llevado en el mensaje OSPF directamente sobre IP (en vez
de TCP o UDP)
38. 38
Network Layer 4-112
Características avanzadas de OSPF (no
en RIP)
seguridad: todos los mensaje OSPF son autenticados
(para prevenir una intrusión maliciosa)
multiples caminos del mismo costo son permitidos
(solo un camino en RIP)
Por cada enlace, multiples costos de metricas para
diferentes TOS (e.g., costo enlace satelital se
establece “bajo” para un mejor esfuerzo; alto para
real time)
Soport a uni integrado y multicast:
Multicast OSPF (MOSPF) usa la misma base de
datos topológica que OSPF
Jerarquico OSPF en dominios largos.
Network Layer 4-113
OSPF Jerárquico
Network Layer 4-114
OSPF Jerárquico
Dos niveles de jerarquía: area local, backbone.
advertisements de estado de enlace solamente en
el area
Cada nodo tiene una topología de area detallada;
solamente se conoce las indicaciones(camino más
corto) a las redes de otras áreas.
area border routers: “sumariza” las distancias a las
redes dentro de su propia area, anuncia a otros Area
Border routers.
backbone routers: corre enrutamiento OSPF limitado
al backbone.
boundary routers: connecta a otros AS’s.
39. 39
Network Layer 4-115
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-116
Enrutamiento Internet inter-AS :
BGP
BGP (Border Gateway Protocol): estandard
de facto
BGP provee a cada AS un significado para :
1. Obtener información de alcance a subnet desde
los vecindarios ASs.
2. Propaga información de alcance a todos los
routers AS-internal .
3. Determina “ buenas” rutas a las subnets
basadas en la información de alcance y políticas.
Permite a la subnet anunciar su existencia
al resto de Internet: “I am here”
Network Layer 4-117
Aspectos básicos BGP
Parejas de routers (BGP peers) intercambian
información de enrutamiento sobre conexiones TCP
semi-permanentes: BGP sessions
BGP sessions no necesitan correspondencia a los
enlaces físicos.
Cuando AS2 anuncia un prefijo a AS1:
AS2 promete que el entregará datagramas hacia
ese prefijo.
AS2 puede agregar prefijos en sus
advertisement
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
eBGP session
iBGP session
40. 40
Network Layer 4-118
Distribuyendo Información de
alcance
Usando sesiones eBGP entre 3a y 1c, AS3 envía informacion
de alcance de prefijos a AS1.
1c puede luego usar iBGP para distribuir nueva
información de prefijos a todos los routers en AS1
1b puede luego re-anunciar nueva información de alcance
a AS2 sobre la sesión eBGP 1b-to-2a
Cuando el router aprende el nuevo prefijo, el crea una
entrada para el prefijo en su forwarding table.
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
eBGP session
iBGP session
Network Layer 4-119
Atributos de los caminos & rutas
BGP
El prefijo anunciado incluye los atributos BGP
prefijo + atributos = “ruta”
Dos atributos importantes:
AS-PATH: contiene ASs através el prefijo
anunciado ha pasado: ejemplo, AS 67, AS 17
NEXT-HOP: indica un router especifico internal-
AS al siguiente hop AS. (puede ser multiples
enlaces desde el actual AS al next-hop-AS)
Cuando el gateway router recibe una ruta
anunciada, usa politicas de importación para
aceptar/declinar.
Network Layer 4-120
Selección de ruta BGP
El router puede aprender acerca de más
de una ruta a algún prefijo. El router
deberá seleccionar la ruta.
Reglas de eliminación:
1. Valor de atributo de preferencia local:
decisión en base a políticas
2. Más corto AS-PATH
3. Más cerca NEXT-HOP router: hot potato
routing
4. Criterio adicional
41. 41
Network Layer 4-121
Mensajes BGP
Los mensajes BGP son intercambiados usando TCP.
Mensajes BGP :
OPEN: abre la conexión TCP al peer y autentica el
transmisor
UPDATE: anuncia un nuevo camino (o retira los
viejos)
KEEPALIVE mantiene viva una conexión en ausencia
de UPDATES; tambien hace un confirmación ACKs
de un requerimiento OPEN
NOTIFICATION: reporta errores en el mensaje
previo; también usado para cerrar la conexión
Network Layer 4-122
Política de enrutamiento BGP
A,B,C son provider networks
X,W,Y son clientes (del provider networks)
X es dual-homed: conectado a dos redes
X no quiere rutear desde B via X a C
.. entonces X no anunciará a B una ruta hacia C
A
B
C
W
X
Y
legend:
customer
network:
provider
network
Network Layer 4-123
Política de enrutamiento BGP (2)
A anucia un caminio AW a B
B anuncia un camino BAW a X
Deberá B anunciar el camino BAW a C?
De ninguna manera! B no obtiene “ingresos” por
enrutamineto CBAW dado que ni W ni C son clientes de
B
B quiere forzar a C para rutear a W via A
B quiere rutear solamente hacia/desde sus clientes!
A
B
C
W
X
Y
legend:
customer
network:
provider
network
42. 42
Network Layer 4-124
Por que es diferente el enrutamiento Intra- e
Inter-AS ?
Politicas:
Inter-AS: administrador quiere control sobre como su
tráfico es ruteado, quien rutea a través de su red.
Intra-AS: dominio unico, por lo tanto no se necesita
políticas para las decisiones
Escalamiento:
Enrutamiento Jerárquico ahorra en los tamaños de las
tablas, reduce el tráfico de update
Rendimiento:
Intra-AS: puede enfocarse en rendimiento
Inter-AS: las políticas pueden dominar sobre el
rendimiento
Network Layer 4-125
Capítulo 4: Capa de red
4. 1 Introducción
4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama
Direccionamiento IPv4
ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace
Distancia Vectorial
Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP
OSPF
BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-126
R1
R2
R3 R4
Duplicación de origen
R1
R2
R3 R4
Duplicacion in-network
duplicate
creation/transmissionduplicate
duplicate
Enrutamiento Broadcast
Entrega de paquetes desde el origen hacia todos los otros nodos
Duplicación de origen es ineficiente:
Duplicación de origen: como la fuente
determina la dirección del recipiente?
43. 43
Network Layer 4-127
Duplicación In-network
Inundación (flooding): cuando el nodo recibe un paquete
broadcast, envía una copia a todos los vecinos
Problemas: tormenta de ciclos&broadcast
flooding controlado: el nodo solo broadcastea el paquete si el
mismo no lo ha broadcasteado antes
Nodo mantiene un seguimiento de cada paquete que ya ha sido
broadcasteado
O el mecanismo reverse path forwarding (RPF): solamente
broadcatea el paquete si el ha llegado en el camino más corto
entre el nodo y el origen
Con el flooding controlado (número de secuencia) y RPF se evita
las tormentas de broadcast pero no se evita completamente la
transmision de paquetes broadcast redundantes
spanning tree
Paquetes redundantes no son recibidos por cada nodo
Network Layer 4-128
A
B
G
D
E
c
F
A
B
G
D
E
c
F
(a) Broadcast iniciado en A (b) Broadcast iniciado en D
Spanning Tree
Primero construye un spanning tree
Nodos entregan copias solamente en el
spanning tree
Network Layer 4-129
A
B
G
D
E
c
F
1
2
3
4
5
(a) Stepwise construction
of spanning tree
A
B
G
D
E
c
F
(b) Constructed spanning
tree
Creación: Spanning Tree
Nodo central
Cada nodo envía un unicast mensaje tree-join al
nodo central
El mensaje es enviado hasta que llega al nodo que ya
pertenece al spanning tree o al centro.
44. 44
Enrutamiento Multicast: Problema
Statement
Objetivo: encontrar un arbol (o arboles) de enlaces
que conecten todos los ruteadores que tienen host
atachados que pertenecen al grupo multicast
arbol: no todos los caminos entre los routers son usados
source-based: diferentes arboles para cada transmisor a
recepctor
shared-tree: mismo arbol usado para todo el grupo de miembros
Shared tree Source-based trees
Enfoques para construir los arboles
multicast
Enfoques:
source-based tree: un árbol por origen
Arbol de camino más corto
reverse path forwarding
group-shared tree: grupo usa un árbol
spanning mínimo (Steiner)
Arboles basados-centro
…Nosotros primero revisamos los enfoques básicos, luego
los protocolos específicos adoptaron estos enfoques
Arbol del camino más corto
Multicast forwarding tree: Arbol de los caminos
más cortos que rutea desde el origen a todos los
receptores
Dijkstra’s algorithm
R1
R2
R3
R4
R5
R6 R7
2
1
6
3 4
5
i
Ruteador con un grupo de
Miembros atachado
Ruteador sin grupo de miembros
atachado
Enlace usado para forwarding,
i indiqa el orden del enlace
añadido por el algoritmo
S: source
45. 45
Reverse Path Forwarding
si (el datagrama multicast recibido a través de un
enlace de entrada de camino más corto al centro)
luego el datagrama fluye en todos los enlaces de
salida
si no ignore el datagrama
Reside en el conocimiento de los ruteadores
sobre el camino más corto unicast desde él
hasta el transmisor.
Cada ruteador tiene un comportamiento
simple de forwarding:
Ejemplo: Reverse Path Forwarding
• El resultado es un source-specific reverse SPT
– Puede ser una mala decisión con los enlaces
asimétricos
R1
R2
R3
R4
R5
R6 R7
Ruteador con grupo
De miembros atachado
Ruteador sin grupo de
Miembros atachado
Datagrama será entregado
LEGEND
S: source
El datagrama no será
entregado
Reverse Path Forwarding: pruning
El arbol forwarding contiene subtrees sin grupo de miembros multicast
no necesito entregar datagramas abajo del subtree
“prune” mensajes enviados de subida (upstream) por el router que
reciben paquetes multicast y que no tiene host atachados que
esten unidos al grupo multicast
Si un router recibe mensajes prune de cada uno de sus routeres de
bajada (downstream), luego el podrá entregar un mensaje prune de
subida (upstream)
R1
R2
R3
R4
R5
R6 R7
Ruteador con grupo de miembros
atachado
Ruteador sin grupo de miembros
atachado
prune mensaje
S: source
Enlaces con multicast
forwarding
P
P
P
46. 46
Shared-Tree: Steiner Tree
Steiner Tree: costo minimo del arbol
conectando todos los routers con grupo de
miembros atachados
No usado en la práctica:
Complejidad computacional
Necesidad de información acerca de toda la red
monolithic: re corre cada vez que un router
necesita unirse/salirse
Center-based trees
Unico arbol de entrega compartido por
todos
Un router identificado como el “centro” del
árbol
Para unirse:
edge router envía un mensaje unicast de unión
direccionado al router central
Mensaje- union “procesado” por los routers intermedios y
entregado hacia el centro
Mensaje-union va a ser entregado usando enrutamiento
unicast hacia el centro hasta que el llegue al nodo que ya
pertenece al spanning tree o llegue al centro
Camino tomado por el mensaje-unión define el branch del
spanning tree entre el edge nodo que inicio los mensajes y
el centro
Ejemplo: Center-based trees
Suponga R6 ha sido elegido como centro:
R1
R2
R3
R4
R5
R6 R7
Ruteador con grupo de miembros
atachado
Ruteador sin grupo de miembros
atachado
Orden del camino en el
cual lo mensajes de union
se generan
2
1
3
1
47. 47
Internet Multicasting Routing: DVMRP
DVMRP: protocolo de enrutamiento
multicast de distancia vectorial, RFC1075
flood y prune: reverse path forwarding,
source-based tree
RPF tree basdo en DVMRP’s sus propias tablas
son construidas por comunicación DVMRP de los
routers
Datagrama inicial al grupo multicast inunda
todos lados via RPF
Ruteadores que no quieren pertenecer al grupo:
envían mensajes upstream prune
DVMRP: continuación…
soft state: ruteador DVMRP periodicamaente (1 min.)
“olvida” las branches que son pruned:
Dato multicast nuevamente fluye bajo las branch unpruned
downstream router: reprune o si no continua recibiendo datos
routers pueden rapidamente rensertarse en el arbol
Posiblidades y fines
Comunmente implementado en los routers comerciales
Multicastbone routing es hecho usando DVMRP
Tunneling
Q: Como conectar “islas” de routers multicast
en un “mar” de routers unicast?
Los datagramas multicast encapsulados internamente en
datagramas “normales” (non-multicast-addressed)
Datagrama IP normal envía a través “tunnel” via regular IP
unicast al ruteador receptor multicast
El ruteador musticast receptor desencapsula para obtener el
datagrama multicast
physical topology logical topology
48. 48
PIM: Protocol Independent Multicast
No dependiente de algún específico algoritmo de
enrutamiento unicast subyacente (trabaja con todos)
Dos diferentes escenarios de distribución de multicast:
Dense:
Grupo de miembros
densamente
enpaquetados, en una
proximidad “cercana”.
Ancho de banda más
abundante
Sparse:
# de routers con grupos de
miembros atachados es
pequeño comparado con el
numero total de routers
Grupo de miembros
“ampliamente dispersado”
Ancho de banda no
abundante
Comparativo Sparse-Dense:
Dense
Membresía de grupo
asumida por los routers
hasta que el router
explicitamente prune
Construccion data-
driven en el arbol
multicast (ejemplo RPF)
Ancho de banda y
procesamiento
derrochador non-group-
router
Sparse:
No membresía hasta que
los routers
explicitamente se unan
Construccion receiver-
driven del arbol multicast
(ejemplo, center-based)
Ancho de banda y
procesamiento
conservador non-group-
router