Versión 8/04/05 :: Redes :: aplicación transporte Redes : : Encaminamiento red enlace Encaminamiento física David Villa <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: http://www.esi.uclm.es/www/dvilla/ 41 :: Interconectividad :: Redes : : Encaminamiento Interconectividad [de: A.S. Tanenbaum, Redes de Computadoras] David Villa <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: http://www.esi.uclm.es/www/dvilla/ 46 :: Interconectividad :: Redes : : Encaminamiento Interconectividad [de: A.S. Tanenbaum, Redes de Computadoras] David Villa <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: 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 <[email protected]> :: http://www.esi.uclm.es/www/dvilla/ 53