Вы находитесь на странице: 1из 53

Version 26/04/15

Computer Networks II

application

Dynamic routing
transport

network

link and multicast


physical
Contenidos
Introduccin
La capa de red
Algoritmos de encaminamiento
Vector distancia
Estado de enlace
Interconectividad

Computer Networks II 2
Introduccin
El objetivo principal de la capa de red es el
encaminamiento, es decir, llevar paquetes desde
el origen al destino a travs de la subred.
La capa de red debe tener informacin de la
topologa de la subred para poder elegir la ruta
ms adecuada.
La capa de red tambin se encarga de la
interconexin de redes heterogneas formando
inter-redes.

Computer Networks II 3
La capa de red
En TCP/IP la capa de red ofrece nicamente un servicio de
conmutacin de paquetes, de almacenamiento y reenvo y
no orientado a conexin.
La interfaz de la capa de red TCP/IP se limita bsicamente a las
primitivas send_packet() y receive_packet().

Computer Networks II 4
Servicio NO orientado a conexin
Los paquetes se colocan en la subred y se encaminan y transportan hasta
el destino de forma individual. Es perfectamente posible que paquetes
consecutivos utilicen rutas distintas.
Una subred de este tipo se conoce como subred de datagramas.

1
4

GW

3
2

Computer Networks II 5
Tabla de encaminamiento
Cada encaminador posee una tabla de encaminamiento.
La tabla indica qu interfaz de salida elegir para llegar a cada uno
de los encaminadores de la subred.

B
C

E
D

El algoritmo que gestiona estas tablas y toma decisiones sobre las rutas
se llama algoritmo de encaminamiento.

Computer Networks II 6
Algoritmos de encaminamiento

Cada vez que llega un paquete, el encaminador:


almacena el paquete.
comprueba la suma de verificacin.
elige una interfaz de salida en base a la tabla de
encaminamiento y la direccin destino del
paquete.
reenva el paquete por la interfaz elegida.

Computer Networks II 7
Algoritmos de encaminamiento

Un algoritmo de encaminamiento debera ser:


exacto
sencillo
robusto (tolerante a fallos)
estable
equitativo
ptimo

Computer Networks II 8
Algoritmos de encaminamiento

No adaptativos. Se basan en informacin obtenida y cargada de


antemano en los encaminadores. Se conoce como encaminamiento
esttico.
Ruta ms corta

Inundacin

Adaptativos. Se basan en mediciones y estimaciones del trfico.


Pueden percibir cambios en la topologa. Esta informacin puede ser
local, de los encaminadores vecinos o de todos los encaminadores
de la subred. Son algoritmos de encaminamiento dinmico.

Computer Networks II 9
Algoritmos de encaminamiento

Esttico
por Ruta ms corta
Inundacin
Dinmico
por Vector Distancia
por Estado del Enlace
Jerrquico
por Difusin
Multicast

Computer Networks II 10
Principio de Optimizacin
Si el encaminador J est en la ruta ptima desde el encaminador I hasta el
encaminador K, entonces la ruta ptima desde J a K tambin est en la
misma ruta, independientemente de la topologa y el trfico de la red.
El grupo de rutas ptimas desde todos los encaminadores a un destino
dado forman un rbol, con raz en el destino, llamado rbol sumidero.
En el siguiente ejemplo, la mtrica utilizada es el nmero de saltos:

subred rbol sumidero


[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 11
Encaminamiento por la ruta ms corta

1. Se toma un grafo ponderado y normalmente no dirigido, en el que los nodos


son encaminadores y los arcos son lneas de comunicaciones (enlaces)
2. Para determinar la lnea de salida, el algoritmo busca la ruta ms corta al
destino.
3. Cada nodo se etiqueta con la distancia al nodo origen a travs de la mejor
ruta. En principio las etiquetas son tentativas, cuando se comprueba que
son la mejor ruta posible se convierten en etiquetas permanentes.

Computer Networks II 12
Encaminamiento por la ruta ms corta

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 13
Encaminamiento por la ruta ms corta

Algoritmo de Dijkstra para calcular la ruta ms corta en un grafo:

#define MAX_NODES 1024 /* maximum number of nodes */


#define INFINITY 1000000000 /* a number larger than every maximum path */
int n, dist[MAX_NODES][MAX_NODES]; /* dist[i][j] is the distance from i to j */
void shortest_path(int s, int t, int path[])
{
struct state { /* the path being worked on */
int predecessor; /* previous node */
int length; /* length from source to this node */
enum {permanent, tentative} label; /* label state */
} state[MAX_NODES];
int i, k, min;
struct state *p;
for (p = &state[0]; p < &state[n]; p++) { /* initialize state */
p->predecessor = -1;
p->length = INFINITY;
p->label = tentative;
}
state[t].length = 0; state[t].label = permanent;

Computer Networks II 14
Encaminamiento por la ruta ms corta

k = t; /* k is the initial working node */


do { /* Is there a better path from k? */
for (i = 0; i < n; i++) /* this graph has n nodes */
if (dist[k][i] != 0 && state[i].label == tentative) {
if (state[k].length + dist[k][i] < state[i].length) {
state[i].predecessor = k;
state[i].length = state[k].length + dist[k][i];
}
}
/* Find the tentatively labeled node with the smallest label. */
k = 0; min = INFINITY;
for (i = 0; i < n; i++)
if (state[i].label == tentative && state[i].length < min) {
min = state[i].length;
k = i;
}
state[k].label = permanent;
} while (k != s);

/* Copy the path into the output array. */


i = 0; k = s;
do {path[i++] = k; k = state[k].predecessor; } while (k >= 0);
}

Computer Networks II 15
Encaminamiento por la ruta ms corta

Ejercicio

Tomando como base el cdigo anterior, escribe una funcin


shortest_path()que calcule la ruta ms corta entre dos nodos de
un grafo, y utilzala en un programa.

Computer Networks II 16
Inundacin
Cada paquete que llega se reenva por todas las lneas de salida
excepto por la que lleg.
Muy eficaz pero muy ineficiente. Genera una gran cantidad de
paquetes duplicados.
Los paquetes seguiran reenvindose indefinidamente de un
encaminador a otro. Soluciones:
Los paquetes deben incorporar un contador. Se descartan al llegar a 0.
Cada encaminador lleva un registro de los paquetes que ha procesado.
La inundacin selectiva es una variante que tiene en cuenta rasgos de la
topologa a nivel global.
A pesar de su ineficiencia se utiliza en algunas aplicaciones muy concretas

Computer Networks II 17
Protocolos de encaminamiento
Los protocolos de encaminamiento permiten a los encaminadores informar
a sus vecinos sobre el estado de la red y de sus cambios.
Pueden utilizar distintas mtricas para calcular la ruta ms corta hacia
el destino. A veces, utilizan una combinacin de varias.
nmero de saltos
distancia geogrfica
retardo medio
tamao de las colas de salida
ancho de banda de la lnea
coste del uso de la lnea
...

Computer Networks II 18
Encaminamiento por vector distancia

Cada encaminador mantiene un tabla que indica la mejor distancia


conocida a cada nodo de la subred y la lnea de salida.
Las tablas se actualizan intercambiando informacin entre
encaminadores.
El encaminador conoce o puede calcular la distancia a sus vecinos.
Problemas:
Convergencia lenta: Las buenas noticias se propagan rpido pero las
malas tardan muchsimo. Esto se conoce como el problema de la
cuenta hasta infinito.
No toma en cuenta el ancho de banda al elegir la ruta.

Computer Networks II 19
Encaminamiento por vector distancia

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 20
Encaminamiento por vector distancia

[de: B.A. Forouzan, Transmisin de datos y Redes de Comunicaciones]

Computer Networks II 21
Encaminamiento por vector distancia
inicializacin

[de: B.A. Forouzan, Transmisin de datos y Redes de Comunicaciones]

Computer Networks II 22
Encaminamiento por vector distancia
actualizacin

[de: B.A. Forouzan, Transmisin de datos y Redes de Comunicaciones]

Computer Networks II 23
Encaminamiento por vector distancia
cuenta a infinito

[de: B.A. Forouzan, Transmisin de datos y Redes de Comunicaciones]


Definicin de infinito.
Soluciones

Horizonte dividido.
B no enva informacin a A si vino de A.
Horizonte dividido y retorno envenenado.
Para que A sepa que B tiene informacin sobre X, la enva pero con
coste .

Computer Networks II 24
RIP (Routing Information Protocol)

Es un protocolo de vector distancia.


Infinito = 16.
Mtrica es el contador de saltos.

[de: B.A. Forouzan, Transmisin de datos y Redes de Comunicaciones]

Computer Networks II 25
Encaminamiento por estado del enlace

Cada encaminador debe:


Descubrir a sus vecinos y conocer sus direcciones de red
Medir el coste para cada vecino
Construir un paquete especial con todo lo aprendido
Enviar ese paquete a todos los encaminadores
Calcular la ruta ms corta a todos los encaminadores
El encaminador averigua la identidad de sus vecinos con un
paquete HELLO. La identificacin es globalmente nica.
El encaminador estima el retardo a sus vecinos enviando un
paquete ECHO y midiendo el tiempo de retorno.

Computer Networks II 26
Encaminamiento por estado del enlace

[de: B.A. Forouzan, Transmisin de datos y Redes de Comunicaciones]

Computer Networks II 27
Encaminamiento por estado del enlace

[de: B.A. Forouzan, Transmisin de datos y Redes de Comunicaciones]

Computer Networks II 28
Encaminamiento por estado del enlace

El paquete de estado del enlace contiene:


identidad del emisor
nmero de secuencia
edad
lista de vecinos

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 29
Encaminamiento por estado del enlace

Medicin del coste, mediante el paquete HELLO:


Tener en cuenta la carga: el temporizador se inicia al poner el paquete en la
cola.
No tenerla en cuenta: el temporizador se inicia cuando el paquete llega al
frente de la cola.

A
C

B
D

Tener en cuenta el retardo puede provocar que las tablas de


encaminamiento oscilen entre varias rutas posibles.

Computer Networks II 30
Encaminamiento por estado del enlace

Distribucin de la informacin de encaminamiento.


Los encaminadores se intercambian la informacin que han
aprendido (el estado del enlace) por medio de paquetes especiales.
Se utiliza una inundacin controlada para distribuir esos paquetes
El paquete incluye un nmero de secuencia y una edad, de modo que
pueden prevenirse problemas debidos a:
cadas de los encaminadores
corrupcin de los nmeros de secuencia
Estos envos son confirmados

Computer Networks II 31
Encaminamiento por estado del enlace

Conjunto de paquetes de estado de enlace para B (un paquete por fila):

[de: A.S. Tanenbaum, Redes de Computadoras]

El paquete 3 lleg por EAB y tambin por EFB. Slo se debe


reenviar a C, pero se debe confirmar a A y F.
Los paquetes no se retransmiten inmediatamente, se espera un
momento por si llega otro paquete del mismo origen.

Computer Networks II 32
Encaminamiento por estado del enlace

Una vez distribuida la informacin de los enlaces.


Construye el grafo de la subred.
Se calcula la ruta ms corta a cada encaminador.
Se actualizan las tablas de encaminamiento.
El protocolo OSPF (Open Shortest Path First), que se usa
actualmente, usa un algoritmo de estado de enlace.

Computer Networks II 33
Encaminamiento Jerrquico
Problema: El tamao de las tablas de encaminamiento
crece de forma lineal con la subred y eso puede plantear
problemas serios.
El encaminamiento jerrquico intenta solventar este
problema.
La subred se divide en regiones, y dentro de cada regin
se utiliza un encaminamiento habitual.
Los encaminadores de una regin saben como llegar a
otras regiones pero no conocen nada de sus topologas.

Computer Networks II 34
Encaminamiento Jerrquico

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 35
Encaminamiento por difusin
Objetivo: Enviar un paquete a un conjunto arbitrario de destinos.
Posibilidades:
El origen enva una copia a cada destino.
Inundacin
Encaminamiento multidestino. El paquete contiene una lista de destinos y
los encaminadores hacen copias del paquete en las lneas apropiadas.
Encaminar a travs del rbol sumidero del encaminador origen. Puede
llegar a todos los encaminadores sin desperdiciar ancho de banda, pero
todos los encaminadores deben conocer todos los rboles sumidero.
Reenvo por ruta invertida. El paquete se reenva slo si lleg por la mejor
ruta de salida.

Computer Networks II 36
Encaminamiento por difusin
Reenvo por ruta invertida

rbol sumidero reenvo por ruta


subred para 'I' invertida

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 37
Encaminamiento multicast
Objetivo: Enviar un paquete a un conjunto de destinos,
comparativamente pequeo, y slo a ellos.
El encaminamiento multicast requiere administracin de grupos:
crear, destruir grupos, aadir y eliminar hosts a los grupos, etc.
Los encaminadores deben saber a qu grupos pertenecen sus hosts.
Los encaminadores propagan esa informacin a sus vecinos
recursivamente.
Cuando un encaminador recibe un paquete multicast de uno de sus
hosts examina su rbol de expansin y lo recorta.

Computer Networks II 38
Encaminamiento multicast
Recorte del rbol de expansin conforme a los grupos
A A

subred rbol de expansin para A

A A

rbol recortado para el grupo 1 rbol recortado para el grupo 2

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 39
Encaminamiento multicast
Problemas en el clculo de rboles recortados.
Se deben calcular tantos rboles como miembros haya en el grupo
Esto debe hacerse para cada grupo
Si se tienen g grupos y m miembros por grupo se deben calcular un total
de g x m rboles recortados, lo que puede suponer mucha sobrecarga
en trminos de memoria y cmputo.
Como alternativa se pueden utilizar rboles de ncleo (core-based trees).
Se trata de calcular un slo rbol por grupo, que tiene la raz en el ncleo
(un nodo aproximadamente en el centro del grupo).
Para enviar un paquete multicast, el host lo enva al ncleo, que es quin
hace la multidifusin a travs del rbol de ncleo.

Computer Networks II 40
Interconectividad
Otro de los cometidos importantes de la capa de red es la
interconexin de redes heterogneas para formar
interredes
Existen muchas redes diferentes con protocolos diferentes
y todo apunta a que seguir as en el futuro.
Objetivo: Permitir que los usuarios de redes diferentes
puedan comunicarse y acceder a los datos de los dems.
Enviar paquetes de una red a otro diferente puede llegar a
ser muy complicado.

Computer Networks II 41
Interconectividad

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 42
Interconectividad

Problemas de interconectividad
Protocolo: IP, IPX, SNA, ATM, AppleTalk
Direccionamiento: plano / jerrquico
Tamao de paquete
Control de flujo
Control de congestin
Seguridad: mecanismos de cifrado
Servicio: Orientado a conexin / No orientado a conexin
Multidifusin

Computer Networks II 43
Interconectividad

La interconexin de redes puede hacerse a varios niveles:


fsico: repetidores, concentradores
enlace: puentes, conmutadores
red: encaminadores multiprotocolo. ej: IP ATM
transporte: pasarelas de transporte. ej: TCP SNA
aplicacin: pasarelas de aplicacin.

paquete
encabezado
terminador
[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 44
Interconectividad

Interconexin orientada a la conexin


(concatenacin de circuitos virtuales)
Se construyen circuitos virtuales a lo largo de cada subred, de puerta de
enlace a puerta de enlace

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 45
Interconectividad

Interconexin no orientada a la conexin


Los paquetes de una conexin no tienen porqu pasar a travs de
las mismas puertas de enlace.
Las conversiones entre protocolos slo son factibles cuando se
son variaciones sencillas.
La traduccin de direcciones entre redes diferentes tampoco es
sencilla porque pueden tener nociones distintas de lo qu es
direccionable

Computer Networks II 46
Interconectividad

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 47
Interconectividad
Tneles
Cuando origen y destino utilizan el mismo tipo de red se
puede fabricar un tnel virtual a travs de las redes
intermedias.

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 48
Interconectividad
Encaminamiento inter-red
Cada subred independiente se llama Sistema Autnomo (AS)
Cuando hay varios AS interconectados se distingue entre dos niveles de
encaminamiento:

Protocolos de Pasarela Interior: IGP (Interior Gateway Protocol)


Es el que se utiliza dentro de la subred (AS)

Protocolos de Pasarela Exterior:


EGP (External Gateway Protocol)
Es el que se utiliza para enrutar
paquetes entre subredes diferentes

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 49
Interconectividad
Fragmentacin
Lmites en el tamao de los paquetes: hardware, SO, protocolo,
estndar, sobrecarga por errores, ocupacin del canal.
Hay gran variedad de tamaos: desde 48B (ATM) hasta 64KB (IP).
Problema: Qu ocurre cuando un paquete de la red A es demasiado
grande para la red B?
Se enruta por otro sitio. Y si el destino est en esa red?
Se negocia el tamao mximo. Por qu ruta?
Se fragmenta el paquete original. Y cuando se re-ensambla?

Computer Networks II 50
Interconectividad
Fragmentacin
Problemas:
Cada fragmento debe ir numerado y debe haber un marca que indique cul
es el ltimo.
Qu pasa si se pierde un fragmento?
Fragmentacin transparente. Al salir de la subred, se monta el paquete.
Esto obliga a que todos los fragmentos sigan la misma ruta.
El gateway debe almacenar los fragmentos hasta que lleguen todos.
Re-ensamblado en destino.
Los fragmentos pueden seguir rutas diferentes y fragmentarse a su vez.
Las retransmisiones se pueden fragmentar de modo diferente.

Computer Networks II 51
Interconectividad
Fragmentacin

paquete original

fragmentos para
MTU=8 bytes

fragmentos para
MTU=5 bytes

[de: A.S. Tanenbaum, Redes de Computadoras]

Computer Networks II 52
Referencias
Se recomienda repasar y profundizar el contenido de este tema utilizando (al
menos) la siguiente bibliografa bsica:
B.F. Transmisin de datos y redes de comunicaciones, cuarta edicin 2007.
Seccin 22.3

Computer Networks II 53

Вам также может понравиться