Escolar Documentos
Profissional Documentos
Cultura Documentos
Principio de optimizacin
Si modelamos la red como un grafo etiquetado, esto es, como una coleccin de nodos y enlaces punto a punto y a cada enlace le asignamos un valor que representa el coste de enviar un paquete por dicho enlace, que ser funcin de uno o ms parmetros segn lo que interese optimizar, el coste de una ruta se obtiene a partir de la suma del coste de cada uno de sus enlaces. Principio de optimizacin: Cualquier subcamino dentro de un camino ptimo es, a su vez, ptimo. Como consecuencia del principio de optimizacin: El conjunto de rutas ptimas a un destino dado desde cualquier nodo forma un rbol, que puede no ser nico, cuya raz es el nodo destino, y que se conoce como rbol sumidero (sink tree). Las decisiones de encaminamiento se pueden tomar localmente. El clculo de los caminos ptimos puede llevarse a cabo de manera distribuida. Los algoritmos de encaminamiento intentarn obtener rutas lo ms aproximadas a las del rbol sumidero. A continuacin se muestra una red de ejemplo y el rbol sumidero para el nodo B, tomando como mtrica el nmero de saltos.
B C E F G D J
I H N L K
B C E F G D J
I H N L K
Aleatorio En este algoritmo cada nodo elige de forma aleatoria una lnea de salida de entre las posibles. Si la red es rica en conexiones, el algoritmo aleatorio hace un excelente uso de las rutas alternativas, conviertindolo en un algoritmo muy robusto, aunque en general muy poco eciente y de bajas prestaciones. Flooding Es un sencillo algoritmo de encaminamiento esttico, donde cada paquete recibido en un nodo es reenviado por todas las lneas, excepto por la que lleg. Obviamente, si no se toman medidas para parar la explosin de paquetes, el nmero de duplicados crece indenidamente. Una forma de hacerlo consiste en incluir un contador que se decrementa en cada salto, y cuando llega a cero, el paquete se descarta. Este contador debe inicializarse al nmero de saltos entre fuente y destino. Si ste no fuese conocido, debe ser inicializado a la distancia mayor (en saltos) entre cualesquiera dos nodos de la red. Aplicaciones del Flooding: Aplicaciones sensibles a prdidas, dada su enorme robustez, ya que es prcticamnete imposible que un paquete no llegue a su destino. Aplicaciones de difusin (broadcast). Evaluacin de otros otros algoritmos, ya que al elegir todos los caminos, tambin elige el ms corto.
Hot Potato Un sencillo algoritmo dinmico aislado es el Hot Potato, que consiste en reenviar cada paquete hacia la lnea que posee menos paquetes en cola, independientemente de cul sea su destino. Una posible variacin consiste en asignar costes a las lneas de salida, y basar la decisin en los tamaos de las colas y en los costes. Aprendizaje hacia atrs Es tambin un algoritmo dinmico aislado, que consiste en que cada nodo atravesado por un paquete aprenda de ste donde est su nodo fuente, para cuando tenga que encaminar un paquete hacia l. Para ello, debe incluirse en los paquetes la direccin del nodo fuente y un contador que se incrementa en cada salto. Los nodos irn registrando en una tabla la informacin obtenida de los paquetes vistos, descubriendo tras cierto tiempo la ruta de menor nmero de saltos a cada nodo.
Algoritmos centralizados Cada cierto tiempo cada nodo enva a un nodo central, RCC (Routing Control Center), la informacin de estado que ha podido recoger localmente, como una lista de nodos adyacentes, longitudes actuales de sus colas, trco procesado por lnea, etc. Basado en toda la informacin, el RCC calcula la mejor ruta para cada par de nodos, por ejemplo con un algoritmo Shortest Path, construye las tablas de encaminamiento y las enva a los nodos. Ventajas: El RCC posee una informacin muy completa, por lo que sus decisiones son casi perfectas. Se libera a los nodos de tener que ejecutar algoritmos de encaminamiento. Inconvenientes: Si el trco y la topologa son muy cambiantes son necesarios clculos muy frecuentes con el consiguiente exceso de carga en la red. Vulnerabilidad del RCC: Problemas si se cae el RCC o si algn nodo no puede comunicarse con el RCC, por cadas en la ruta usada para tal efecto. Los nodos prximos al RCC pueden sufrir un peor servicio al estar las lneas ms cargadas con trco de control. Los nodos prximos al RCC conocen las nuevas tablas antes que los ms alejados, lo que puede dar lugar a inconsistencias en el encaminamiento.
Vector de Distancias Es un algoritmo de encaminamiento iterativo, asncrono y distribuido. Es distribuido porque cada nodo recibe cierta informacin de sus vecinos, recalcula las tablas de encaminamiento y distribuye los resultados de vuelta a sus vecinos. Es iterativo porque este proceso contina hasta que no se intercambia ms informacin entre los vecinos (se detiene a s mismo). Y es asncrono porque no precisa que todos los nodos operen al unsono. Estas tres caractersticas lo convierten en un algoritmo muy interesante. La estructura de datos principal del algoritmo es la tabla de distancias que se mantiene en cada nodo, que contiene una la para cada destino de la red y una columna para cada vecino directo del nodo. La entrada (i, j) de la tabla para un nodo X da la distancia estimada de X a i a travs del vecino j, y se calcula como: DX (i, j) = c(X, j) + mnw Dj(i, w) siendo w cualquier vecino de j. Cada cierto tiempo, cada nodo recibe de (y enva a) sus vecinos una lista de la distancia estimada a cada nodo de la red (distancia = si sta es desconocida). Esta lista recibe el nombre de vector de distancias. Suponiendo que cada nodo conoce la distancia a sus vecinos, el clculo de las tablas de encaminamiento con las lneas de salida de la mejor ruta a cada nodo destino es inmediato. Cabe resaltar que en el clculo de las nuevas tablas no intervienen las tablas antiguas.
A continuacin se muestran los vectores de distancias y la nueva tabla de encaminamiento para A resultado de la ejecucin del algoritmo.
A B
D C E
Vectores recibidos por A de sus vecinos: Destino B A 5 B 0 C 12 D 6 E 2 Distancia a A de cada vecino: AB AC AD 4 6 2 Nueva tabla de encaminamiento para A, que distribuir a sus vecinos: Destino Distancia Lnea de salida A 0 B 4 B C 5 D D 2 D E 6 B C D 4 6 9 3 0 3 6 0 7 5
Este algoritmo tiene un serio inconveniente: aunque las buenas noticias (como que un nodo que haba cado se recupera) se extienden rpidamente, las malas noticias (como la cada de un nodo) se propagan ms lentamente. Este hecho se conoce como el problema de cuenta hasta innito, ya que innito (nodo inalcanzable) es el valor que debera hallarse en las tablas para dicho nodo cado. Obviamente, depender del valor numrico elegido para representar innito, el nmero de intercambios necesarios para alcanzar dicho valor. En el caso del nmero de saltos, debe elegirse la longitud del camino ms largo ms uno. Ms problemtico es, por ejemplo, el caso del retardo, pues un retardo grande hacia un nodo podra inducir a error al considerar al nodo en cuestin cado.
A B C D E A B C D E
Inf. 1 1 1 1
Inf. Inf. 2 2 2
1 3 3 5 5 7 ... Inf.
2 2 4 4 6 6 ... Inf.
3 3 3 5 5 7 ... Inf.
4 Inicialmente 4 Tras 1 intercambio 4 Tras 2 intercambios 4 Tras 3 intercambios 6 Tras 4 intercambios 6 Tras 5 intercambios ... Inf.
Se han propuesto muchas soluciones para el problema de contar hasta innito, como el algoritmo Split Horizon. Este algoritmo funciona exactamente igual que el algoritmo de Vector de Distancias, salvo que la distancia a un nodo i es enviada como innita sobre la lnea usada para enviar paquetes hacia i, haciendo as que la cuenta hacia innito sea mucho ms rpida que sin usar este algoritmo. An siendo ampliamente usado, sin embargo el algoritmo falla en algunos casos.
A B C D E
3 3 3 Inf. Inf.
4 4 4 4 Inf.
Por ltimo sealar que el encaminamiento Vector de Distancias, ideado por Bellman y mejorado por Ford y Flukerson, tambin recibe el nombre de Bellman-Ford distribuido en honor a sus inventores. Fue el algoritmo inicial de ARPANET y desde entonces se ha utilizado en muchos protocolos, entre ellos el RIP (Routing Information Protocol) de Internet y el BGP (Border Gateway Protocol).
Estado de Enlace Es tambin un algoritmo de encaminamiento distribuido e iterativo, cuyo funcionamiento puede resumirse en cinco partes. Cada nodo debe: 1. Descubrir a sus vecinos y aprender sus direcciones de red. 2. Medir el coste a cada vecino. 3. Construir un paquete con esa informacin. 4. Enviar ese paquete a todos los nodos de la red. 5. Calcular el camino ms corto a cada nodo. Construccin de los paquetes de estado del enlace Los paquetes de estado del enlace deben llevar la direccin del emisor, un nmero de secuencia y una lista de vecinos con los retardos estimados hasta ellos. La construccin y distribucin de estos paquetes puede hacerse peridicamente, o cuando ocurre algn hecho signicativo, como la cada o recuperacin de una lnea o de un nodo. Distribucin de los paquetes de estado del enlace Es una parte complicada del algoritmo, ya que el hecho de que algunos nodos reciban los paquetes primero, y por tanto tambin cambien su forma de encaminar, puede llevar a inconsistencias. Para distribuir los paquetes de estado se puede usar el algoritmo Flooding, usando un nmero de secuencia en cada paquete para controlar la explosin de paquetes.
Clculo de las nuevas rutas Una vez recibidos todos los paquetes de estado de todos los nodos, puede usarse un algoritmo Shortest Path, como el de Dijkstra, para hallar el camino ms corto a cada destino. El algoritmo de Dijkstra calcula el camino de coste mnimo desde un nodo fuente al resto de nodos de la red. Es un algoritmo iterativo que necesita k iteraciones para obtener los caminos ptimos a k nodos destino. Ejemplo Como ejemplo, vamos a considerar la red de la gura, y vamos a calcular los caminos de coste mnimo de A a cada destino posible, utilizando el algoritmo de Dijkstra.
5 B 2 A 1 D 1 E 2 3 1 2 3 C 5 F
El algoritmo consta de un paso de inicializacin, seguido de un bucle, que se ejecuta tantas veces como nodos haya en la red. Al terminar, se habrn calculado los caminos ms cortos desde el nodo fuente a cualquier otro nodo de la red.
Consideramos la notacin: c(i, j): coste del enlace del nodo i al nodo j. Si los nodos i y j no estn conectados directamente, entonces c(i, j) = . Suponemos que c(i, j) = c(j, i), aunque el algoritmo funciona igual aunque no sean iguales. D(v): coste del camino menos costoso desde el nodo fuente al destino v, en esta iteracin del algoritmo. p(v): nodo previo (vecino a v) a lo largo del camino de coste mnimo desde la fuente a v. N: conjunto de nodos para los que se conoce denitivamente el camino de coste mnimo desde la fuente. El pseudocdigo sera de la forma: Inicializacin: N={A} para cada nodo v, si v es adyacente a A, entonces D(v) = c(A,v) si no, D(v) = inf Bucle (hasta que todos los nodos estn en N): buscar w no en N tal que D(w) sea mnimo aadir w a N actualizar D(v) para cada v adyacente a w que todava no est en N: D(v) = mn(D(v),D(w)+c(w,v))
En este caso el resultado de la ejecucin del algoritmo es: it N D(B), p(B) D(C), p(C) D(D), p(D) D(E), p(E) D(F), p(F) 0 A 2, A 5, A 1, A 1 AD 2, A 4, D 2, D 2 ADE 2, A 3, E 4, E 3 ADEB 3, E 4, E 4 ADEBC 4, E 5 ADEBCF Por ltimo decir que este algoritmo fue y es ampliamente usado en las redes actuales. Por ejemplo, el protocolo OSPF (Open Shortest Path First), usado en Internet, utiliza un algoritmo de este tipo.
Encaminamiento jerrquico
Hasta ahora hemos considerado una red como un conjunto de routers interconectados que ejecutan el mismo algoritmo para calcular las rutas. En la prctica no es as, por dos motivos fundamentalmente: Escala: Segn crece la red lo hace el nmero de routers y la sobrecarga debida al clculo, almacenamiento y distribucin de la informacin de encaminamiento se hace prohibitiva. Autonoma administrativa: Deseo de cada compaa de administrar su red de forma autnoma, aunque pueda seguir accediendo a y ser accesible por el exterior. Estos problemas pueden solventarse organizando los routers en regiones o sistemas autnomos (SA).Todos los routers dentro de un SA ejecutan el mismo algoritmo de encaminamiento intradominio y tienen informacin unos de otros. Para conectar los SA entre s, uno o ms routers de cada SA, conocidos como routers frontera, tendrn que responsabilizarse del encaminamiento de paquetes hacia fuera, utilizando un algoritmo de encaminamiento interdominio. El problema de escala est resuelto, ya que cada router intra SA slo necesita conocer los routers de su SA. El de autoridad administrativa tambin, porque dentro de cada SA se puede usar cualquier algoritmo intradominio, siempre que los routers frontera sean capaces de ejecutar algoritmos interdominio que conecten ese SA con los dems.
La gura muestra una red formada por tres SA. Se destaca la ruta utilizada para encaminar los datos de H1 a H2 , resultado de la combinacin de las rutas obtenidas por los algoritmos de encaminamiento inter e intradominio.
B.a C.b SA B A.a c A.c a SA C b a c H1 d b SA A a b H2
Tabla de encaminamiento
Encaminamiento inter SA en Internet: BGP BGP (Border Gateway Protocol) es el protocolo de encaminamiento entre sistemas autnomos actualmente en uso en Internet. Es un protocolo de vector de rutas, donde routers BGP vecinos intercambian informacin sobre rutas (lista de SA en el camino hacia cierto destino e identidad del router BGP de prximo salto). Cada SA se identica por un nmero (NSA), que es globalmente nico y es asignado, como las direcciones IP, por el ICANN. A diferencia de los altoritmos de encaminamiento intradominio, en los que se trata de buscar rutas ptimas en base a algn criterio, aqu se priman priman factores polticos que pueden invalidar ciertas rutas por restricciones administrativas (se controla el trco que dejan pasar a su travs los SA).
Spanning Tree
A
4 3
B
2
C
2 2
D F
1 3
B C
2 2 2 1
D F
1 3
E
1
Encaminamiento multicast
Ciertas aplicaciones precisan la entrega de paquetes provenientes de uno o ms emisores a un grupo de receptores. En lugar de un paquete para cada destino, la fuente enva un nico paquete a una direccin multicast, que es conocida por todos los nodos que intervienen en la comunicacin (grupo multicast) y el algoritmo de encaminamiento debe encargarse de que dicho paquete llegue a todos los miembros del grupo.
G1 G1 7 2
G1
8 1
G1
FUENTE
El objetivo del encaminamiento multicast es encontrar un rbol de enlaces entre todos los routers que disponen de hosts directamente conectados que pertenezcan al grupo multicast. Se han adoptado dos aproximaciones para determinar los rboles de encaminamiento multicast, que dieren en virtud de si se utiliza un nico rbol compartido para distribuir el trco de todos los emisores del grupo, o si se construye un rbol especco para cada emisor en particular.
4 6 G2 3 G2
G3
rbol de grupo compartido En este caso, todos los paquetes enviados al grupo de multidifusin son encaminados a travs del mismo rbol, independientemente del emisor. Una aproximacin al clculo de un rbol multicast compartido es la basada en un nodo central o punto de encuentro. En este caso, se elige en primer lugar el nodo central, al que deben unirse todos los nodos pertenecientes al grupo, enviando mensajes unicast. A medida que se envan los mensajes de unin, los caminos que siguen denen las ramas del rbol entre los routers que se unen y el centro. Un router que recibe un datagrama para enviar desde uno de sus hosts directamente enlazados unifunde el datagrama al punto de encuentro, y ste lo multidifunde a travs del rbol de grupo compartido. rbol basado en fuente Se construye un rbol multicast para cada fuente. Cada rbol puede calcularse como la unin de los caminos unicast de menor coste de cada fuente a cada uno de los dems routers con hosts pertenecientes al grupo. Con este mtodo se necesita que cada router conozca los rboles para cada fuente, por lo que suele utilizarse el algoritmo de camino inverso en el que cada router si recibe un paquete por el enlace ptimo hacia la fuente lo transmite por todos sus enlaces de salida y en otro caso lo descarta. Para evitar la transmisin hacia routers que no forman parte del grupo, un router que no tenga hosts adheridos a ese grupo, cuando recibe un paquete para ese grupo enva un mensaje de poda al router que se lo mand. Si un router recibe mensajes de poda desde cada uno de sus routers hacia abajo, enva un mensaje de poda hacia arriba.
A
4 3
B
2
C
2 2
D F
centro 1 3
C
2 2
E
1
A
3
fuente
B
2 1
D F
1 3