:: Redes :: Encaminamiento

Versión 8/04/05 :: Redes :: aplicación transporte Redes : : Encaminamiento red enlace Encaminamiento física David Villa :: http://www.esi.uclm...
135 downloads 1 Views 2MB Size
Versión 8/04/05

:: Redes :: aplicación

transporte

Redes : : Encaminamiento

red enlace

Encaminamiento

física

David Villa :: http://www.esi.uclm.es/www/dvilla/

1

Contenidos Introducción La capa de red Algoritmos de encaminamiento ●

Vector distancia

Estado de enlace Interconectividad Redes : : Encaminamiento



David Villa :: http://www.esi.uclm.es/www/dvilla/

2

:: Introducción ::

Introducción El objetivo principal de la capa de red es el encaminamiento, es decir, llevar paquetes desde el origen al destino a través de la subred. La capa de red debe tener información de la topología de la subred para poder elegir la ruta más adecuada.

Redes : : Encaminamiento

La capa de red también se encarga de la interconexión de redes heterogéneas formando inter-redes.

David Villa :: http://www.esi.uclm.es/www/dvilla/

3

:: Introducción ::

La capa de red En TCP/IP la capa de red ofrece únicamente un servicio de conmutación de paquetes, de almacenamiento y reenvío y no orientado a conexión.

Redes : : Encaminamiento

La interfaz de la capa de red TCP/IP se limita básicamente a las primitivas send_packet() y receive_packet().

David Villa :: http://www.esi.uclm.es/www/dvilla/

4

:: Introducción ::

Servicio NO orientado a conexión 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.

Redes : : Encaminamiento

4

1

GW 3

David Villa :: http://www.esi.uclm.es/www/dvilla/

2

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

Tabla de encaminamiento de A C

Redes : : Encaminamiento

A D

E

destino

iface

A B C D E

i1 i2 i3 i4

El algoritmo que gestiona estas tablas y toma decisiones sobre las rutas se llama algoritmo de encaminamiento. David Villa :: http://www.esi.uclm.es/www/dvilla/

6

Algoritmos de encaminamiento Cada vez que llega un paquete, el encaminador: almacena el paquete. comprueba la suma de verificación. elige una interfaz de salida en base a la tabla de encaminamiento y la dirección destino del paquete.

Redes : : Encaminamiento

reenvía el paquete por la interfaz elegida.

David Villa :: http://www.esi.uclm.es/www/dvilla/

7

Algoritmos de encaminamiento Un algoritmo de encaminamiento debería ser: exacto sencillo robusto (tolerante a fallos) estable equitativo Redes : : Encaminamiento

óptimo

David Villa :: http://www.esi.uclm.es/www/dvilla/

8

Algoritmos de encaminamiento

Redes : : Encaminamiento

No adaptativos. Se basan en información obtenida y cargada de antemano en los encaminadores. Se conoce como encaminamiento estático. ●

Ruta más corta



Inundación

Adaptativos. Se basan en mediciones y estimaciones del tráfico. Pueden percibir cambios en la topología. Esta información puede ser local, de los encaminadores vecinos o de todos los encaminadores de la subred. Son algoritmos de encaminamiento dinámico.

David Villa :: http://www.esi.uclm.es/www/dvilla/

9

Algoritmos de encaminamiento Estático por Ruta más corta Inundación Dinámico por Vector Distancia

Redes : : Encaminamiento

por Estado del Enlace Jerárquico por Difusión Multicast

David Villa :: http://www.esi.uclm.es/www/dvilla/

10

Principio de Optimización «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 también está en la misma ruta, independientemente de la topología y el tráfico de la red.» El grupo de rutas óptimas desde todos los encaminadores a un destino dado forman un árbol, con raíz en el destino, llamado árbol sumidero.

Redes : : Encaminamiento

En el siguiente ejemplo, la métrica utilizada es el número de saltos:

subred

árbol sumidero

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

11

:: Encaminamiento Estático ::

Encaminamiento por la ruta más corta 1. Se toma un grafo ponderado y normalmente no dirigido, en el que los nodos son encaminadores y los arcos son líneas de comunicaciones (enlaces) 2. Para determinar la línea de salida, el algoritmo busca la ruta más corta al destino.

Redes : : Encaminamiento

3. Cada nodo se etiqueta con la distancia al nodo origen a través de la mejor ruta. En principio las etiquetas son tentativas, cuando se comprueba que son la mejor ruta posible se convierten en etiquetas permanentes.

David Villa :: http://www.esi.uclm.es/www/dvilla/

12

:: Encaminamiento Estático ::

Redes : : Encaminamiento

Encaminamiento por la ruta más corta

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

13

:: Encaminamiento Estático ::

Encaminamiento por la ruta más corta Algoritmo de Dijkstra para calcular la ruta más corta en un grafo:

#define MAX_NODES 1024 #define INFINITY 1000000000

/* maximum number of nodes */ /* a number larger than every maximum path */

Redes : : Encaminamiento

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;

David Villa :: http://www.esi.uclm.es/www/dvilla/

14

:: Encaminamiento Estático ::

Encaminamiento por la ruta más corta

Redes : : Encaminamiento

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); }

David Villa :: http://www.esi.uclm.es/www/dvilla/

15

:: Encaminamiento Estático ::

Encaminamiento por la ruta más corta

Ejercicio

Redes : : Encaminamiento

Tomando como base el código anterior, escribe una función shortest_path()que calcule la ruta más corta entre dos nodos de un grafo, y utilízala en un programa.

David Villa :: http://www.esi.uclm.es/www/dvilla/

16

:: Encaminamiento Estático ::

Inundación Cada paquete que llega se reenvía por todas las líneas de salida excepto por la que llegó. Muy eficaz pero muy ineficiente. Genera una gran cantidad de paquetes duplicados.

Redes : : Encaminamiento

Los paquetes seguirían reenviándose 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 inundación selectiva es una variante que tiene en cuenta rasgos de la topología a nivel global. A pesar de su ineficiencia se utiliza en algunas aplicaciones muy concretas

David Villa :: http://www.esi.uclm.es/www/dvilla/

17

:: Encaminamiento Dinámico ::

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.

Redes : : Encaminamiento

Pueden utilizar distintas métricas para calcular la «ruta más corta» hacia el destino. A veces, utilizan una combinación de varias. ●

número de saltos



distancia geográfica



retardo medio



tamaño de las colas de salida



ancho de banda de la línea



coste del uso de la línea



...

David Villa :: http://www.esi.uclm.es/www/dvilla/

18

:: Encaminamiento Dinámico ::

Encaminamiento por vector distancia Cada encaminador mantiene un tabla que indica la mejor distancia conocida a cada nodo de la subred y la línea de salida. Las tablas se actualizan intercambiando información entre encaminadores. El encaminador conoce o puede calcular la distancia a sus vecinos. Problemas:

Redes : : Encaminamiento





Convergencia lenta: Las «buenas noticias» se propagan rápido pero las malas «tardan» muchísimo. Esto se conoce como «el problema de la cuenta hasta infinito». No toma en cuenta el ancho de banda al elegir la ruta.

David Villa :: http://www.esi.uclm.es/www/dvilla/

19

:: Encaminamiento Dinámico ::

Redes : : Encaminamiento

Encaminamiento por vector distancia

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

20

:: Encaminamiento Dinámico ::

Redes : : Encaminamiento

Encaminamiento por vector distancia

[de: B.A. Forouzan, Transmisión de datos y Redes de Comunicaciones] David Villa :: http://www.esi.uclm.es/www/dvilla/

21

:: Encaminamiento Dinámico ::

Redes : : Encaminamiento

Encaminamiento por vector distancia (inicialización)

[de: B.A. Forouzan, Transmisión de datos y Redes de Comunicaciones] David Villa :: http://www.esi.uclm.es/www/dvilla/

22

:: Encaminamiento Dinámico ::

Redes : : Encaminamiento

Encaminamiento por vector distancia (actualización)

[de: B.A. Forouzan, Transmisión de datos y Redes de Comunicaciones] David Villa :: http://www.esi.uclm.es/www/dvilla/

23

:: Encaminamiento Dinámico ::

Encaminamiento por vector distancia «cuenta a infinito»

Soluciones

Redes : : Encaminamiento

[de: B.A. Forouzan, Transmisión de datos y Redes de Comunicaciones]

Definición de infinito. Horizonte dividido. ●

B no enviar información a A si vino de A.

Horizonte dividido y retorno envenenado. ●

Para que A sepa que B tiene información sobre X, la envía pero con coste ∞.

David Villa :: http://www.esi.uclm.es/www/dvilla/

24

:: Encaminamiento Dinámico ::

RIP (Routing Information Protocol) Es un protocolo de vector distancia. Infinito = 16.

Redes : : Encaminamiento

Métrica es el contador de saltos.

[de: B.A. Forouzan, Transmisión de datos y Redes de Comunicaciones] David Villa :: http://www.esi.uclm.es/www/dvilla/

25

:: Encaminamiento Dinámico ::

Encaminamiento por estado del enlace

Redes : : Encaminamiento

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 más corta a todos los encaminadores

El encaminador averigua la identidad de sus vecinos con un paquete HELLO. Las identificación es globalmente única. El encaminador estima el retardo a sus vecinos enviando un paquete ECHO y midiendo el tiempo de retorno. David Villa :: http://www.esi.uclm.es/www/dvilla/

26

:: Encaminamiento Dinámico ::

Redes : : Encaminamiento

Encaminamiento por estado del enlace

[de: B.A. Forouzan, Transmisión de datos y Redes de Comunicaciones] David Villa :: http://www.esi.uclm.es/www/dvilla/

27

:: Encaminamiento Dinámico ::

Redes : : Encaminamiento

Encaminamiento por estado del enlace

[de: B.A. Forouzan, Transmisión de datos y Redes de Comunicaciones] David Villa :: http://www.esi.uclm.es/www/dvilla/

28

:: Encaminamiento Dinámico ::

Encaminamiento por estado del enlace El paquete de estado del enlace contiene: identidad del emisor número de secuencia edad

Redes : : Encaminamiento

lista de vecinos

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

29

:: Encaminamiento Dinámico ::

Encaminamiento por estado del enlace Medición 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.

Redes : : Encaminamiento

A

B

C

D

Tener en cuenta el retardo puede provocar que las tablas de encaminamiento oscilen entre varias rutas posibles. David Villa :: http://www.esi.uclm.es/www/dvilla/

30

:: Encaminamiento Dinámico ::

Encaminamiento por estado del enlace Distribución de la información de encaminamiento. Los encaminadores se intercambian la información que han aprendido (el estado del enlace) por medio de paquetes especiales. Se utiliza una inundación controlada para distribuir esos paquetes

Redes : : Encaminamiento

El paquete incluye un número de secuencia y una edad, de modo que pueden prevenirse problemas debidos a: ●

caídas de los encaminadores



corrupción de los números de secuencia

Estos envíos son confirmados

David Villa :: http://www.esi.uclm.es/www/dvilla/

31

:: Encaminamiento Dinámico ::

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

Redes : : Encaminamiento

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



El paquete 3 llegó por EAB y también por EFB. Sólo 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.

David Villa :: http://www.esi.uclm.es/www/dvilla/

32

:: Encaminamiento Dinámico ::

Encaminamiento por estado del enlace Una vez distribuida la información de los enlaces. ●

Construye el grafo de la subred.



Se calcula la ruta más corta a cada encaminador.



Se actualizan las tablas de encaminamiento.

Redes : : Encaminamiento

El protocolo OSPF (Open Shortest Path First), que se usa actualmente, usa un algoritmo de estado de enlace.

David Villa :: http://www.esi.uclm.es/www/dvilla/

33

:: Encaminamiento Dinámico ::

Encaminamiento Jerárquico Problema: El tamaño de las tablas de encaminamiento crece de forma lineal con la subred y eso puede plantear problemas serios. El encaminamiento jerárquico intenta solventar este problema.

Redes : : Encaminamiento

La subred se divide en regiones, y dentro de cada región se utiliza un encaminamiento habitual. Los encaminadores de una región saben como llegar a otras regiones pero no conocen nada de sus topologías.

David Villa :: http://www.esi.uclm.es/www/dvilla/

34

:: Encaminamiento Dinámico ::

Redes : : Encaminamiento

Encaminamiento Jerárquico

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

35

:: Encaminamiento Dinámico ::

Encaminamiento por difusión Objetivo: Enviar un paquete a un conjunto arbitrario de destinos. Posibilidades: El origen envía una copia a cada destino. Inundación

Redes : : Encaminamiento

Encaminamiento multidestino. El paquete contiene una lista de destinos y los encaminadores hacen copias del paquete en las líneas apropiadas. Encaminar a través 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. Reenvío por ruta invertida. El paquete se reenvía sólo si llegó por la mejor ruta de salida.

David Villa :: http://www.esi.uclm.es/www/dvilla/

36

:: Encaminamiento Dinámico ::

Encaminamiento por difusión

Redes : : Encaminamiento

Reenvío por ruta invertida

subred

árbol sumidero para 'I'

reenvío por ruta invertida

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

37

:: Encaminamiento Dinámico ::

Encaminamiento multicast Objetivo: Enviar un paquete a un conjunto de destinos, comparativamente pequeño, y sólo a ellos. El encaminamiento multicast requiere administración de grupos: crear, destruir grupos, añadir y eliminar hosts a los grupos, etc. Los encaminadores deben saber a qué grupos pertenecen sus hosts.

Redes : : Encaminamiento

Los encaminadores propagan esa información a sus vecinos recursivamente. Cuando un encaminador recibe un paquete multicast de uno de sus hosts examina su árbol de expansión y lo recorta.

David Villa :: http://www.esi.uclm.es/www/dvilla/

38

:: Encaminamiento Dinámico ::

Encaminamiento multicast Recorte del árbol de expansión conforme a los grupos A

A

subred

Redes : : Encaminamiento

A

árbol recortado para el grupo 1

árbol de expansión para A A

árbol recortado para el grupo 2

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

39

:: Encaminamiento Dinámico ::

Encaminamiento multicast Problemas en el cálculo de árboles recortados. ●

Se deben calcular tantos árboles como miembros haya en el grupo



Esto debe hacerse para cada grupo

Redes : : Encaminamiento



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 términos de memoria y cómputo.

Como alternativa se pueden utilizar árboles de núcleo (core-based trees). Se trata de calcular un sólo árbol por grupo, que tiene la raíz en el núcleo (un nodo aproximadamente en el centro del grupo). ●

Para enviar un paquete multicast, el host lo envía al núcleo, que es quién hace la multidifusión a través del árbol de núcleo.

David Villa :: http://www.esi.uclm.es/www/dvilla/

40

:: Interconectividad ::

Interconectividad Otro de los cometidos importantes de la capa de red es la interconexión de redes heterogéneas para formar interredes Existen muchas redes diferentes con protocolos diferentes y todo apunta a que seguirá así en el futuro.

Redes : : Encaminamiento

Objetivo: Permitir que los usuarios de redes diferentes puedan comunicarse y acceder a los datos de los demás. Enviar paquetes de una red a otro diferente puede llegar a ser muy complicado.

David Villa :: http://www.esi.uclm.es/www/dvilla/

41

:: Interconectividad ::

Redes : : Encaminamiento

Interconectividad

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

42

:: Interconectividad ::

Interconectividad Problemas de interconectividad Protocolo: IP, IPX, SNA, ATM, AppleTalk Direccionamiento: plano / jerárquico Tamaño de paquete Control de flujo Control de congestión Redes : : Encaminamiento

Seguridad: mecanismos de cifrado Servicio: Orientado a conexión / No orientado a conexión Multidifusión

David Villa :: http://www.esi.uclm.es/www/dvilla/

43

:: Interconectividad ::

Interconectividad

Redes : : Encaminamiento

La interconexión de redes puede hacerse a varios niveles: físico: repetidores, concentradores enlace: puentes, conmutadores red: encaminadores multiprotocolo. ej: IP ATM transporte: pasarelas de transporte. ej: TCP SNA aplicación: pasarelas de aplicación.

paquete encabezado terminador [de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

44

:: Interconectividad ::

Interconectividad Interconexión orientada a la conexión (concatenación de circuitos virtuales)

Redes : : Encaminamiento



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] David Villa :: http://www.esi.uclm.es/www/dvilla/

45

:: Interconectividad ::

Interconectividad Interconexión no orientada a la conexión ●



Redes : : Encaminamiento



Los paquetes de una conexión no tienen porqué pasar a través de las mismas puertas de enlace. Las conversiones entre protocolos sólo son factibles cuando se son variaciones sencillas. La traducción de direcciones entre redes diferentes tampoco es sencilla porque pueden tener nociones distintas de lo qué es direccionable

David Villa :: http://www.esi.uclm.es/www/dvilla/

46

:: Interconectividad ::

Redes : : Encaminamiento

Interconectividad

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

47

:: Interconectividad ::

Interconectividad :: túneles

Redes : : Encaminamiento

Cuando origen y destino utilizan el mismo tipo de red se puede fabricar un túnel virtual a través de las redes intermedias.

[de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

48

:: Interconectividad ::

Interconectividad :: encaminamiento interred Cada subred independiente se llama Sistema Autónomo (AS) Cuando hay varios AS interconectados se distingue entre dos niveles de encaminamiento:

Protocolos de Pasarela Interior: IGP (Interior Gateway Protocol)

Redes : : Encaminamiento



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] David Villa :: http://www.esi.uclm.es/www/dvilla/

49

:: Interconectividad ::

Interconectividad :: fragmentación Límites en el tamaño de los paquetes: hardware, SO, protocolo, estándar, sobrecarga por errores, ocupación del canal. Hay gran variedad de tamaños: desde 48B (ATM) hasta 64KB (IP).

Redes : : Encaminamiento

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 tamaño máximo. ¿Por qué ruta?



Se fragmenta el paquete original. ¿Y cuando se re-ensambla?

David Villa :: http://www.esi.uclm.es/www/dvilla/

50

:: Interconectividad ::

Interconectividad :: fragmentación Problemas: ●



Cada fragmento debe ir numerado y debe haber un marca que indique cuál es el último. ¿Qué pasa si se pierde un fragmento?

Redes : : Encaminamiento

Fragmentación 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.

David Villa :: http://www.esi.uclm.es/www/dvilla/

51

:: Interconectividad ::

Interconectividad :: fragmentación

paquete original

Redes : : Encaminamiento

fragmentos para MTU=8 bytes

fragmentos para MTU=5 bytes [de: A.S. Tanenbaum, Redes de Computadoras] David Villa :: http://www.esi.uclm.es/www/dvilla/

52

Referencias Se recomienda repasar y profundizar el contenido de este tema utilizando (al menos) la siguiente bibliografía básica: B.F. Transmisión de datos y redes de comunicaciones, cuarta edición 2007.

Redes : : Direccionamiento IP



Sección 22.3

David Villa :: http://www.esi.uclm.es/www/dvilla/

53