REDESII

bullet1 ALGORITMOS DE ENCAMINAMIENTO

Los algoritmos de encaminamiento se pueden agrupar no adaptativos y adaptativos. Los algoritmos no adaptativos no basan sus decisiones de encaminamiento en medicioness o estimaciones del tráfico actuales; más bien, la elección de la ruta utilizable para ir de i 1a la j (para toda i y j), se determina anticipadamente, fuera de línea y se carga en los IMP cuando la red se arranca. A este procedimiento se le denomina a veces encaminamiento estático.

Los algoritmos adaptativos, por otra parte, intentan cambiar sus decisiones de encaminamiento para reflejar los cambios de topología y de tráfico actual. Existen tres familias distintas de algoritmos adaptativos, que se diferencian de acuerdo con la información que utilizan. Los algoritmos globales utilizan información recogida que toda la subred, para intentar tomar decisiones óptimas. A este planteamiento se le conoce como encaminamiento centralizado. Los algoritmos locales operan en forma separada sobre cada IMP, y sólo utilizan la información que se encuentra disponible allí, como la longitud de las colas de espera. A éstos se les conoce como algoritmos aislados. Por último, la tercera dase de algoritmos utiliza una combinación de información del tipo global y local; y se les conoce como algoritmos distribuidos. A continuación se estudiarán con mayor detalle estas tres clases de algoritmos. Para tener una mayor información acerca del encaminamiento, consulte Bell y Jabbour (1986).


Encaminamiento por el camino más corto

Comencemos nuestro estudio de los algoritmos de encaminamiento por medio de una técnica que se utiliza ampliamente de maneras diferentes, gracias a su simplicidad y facilidad de comprensión. La idea consiste en construir un gráfo de la subred, con cada nodo representando una IMP y cada arco, una línea de comunicación. Para escoger una ruta entre un par de IMP dadas, el algoritmo sólo determina el camino más corto que existe entre ellos.

El concepto de camino más corto merece una explicación. Una forma de medir la longitud del camino es a través del número de saltos. Empleando esta métrica, los caminos ABC y ABE, en la figura 5-10, tienen la misma longitud. Otra métrica es el camino geográfico expresado en kilómetros, en cuyo caso la trayectoria ABC es claramente mucho más larga que ABE (suponiendo que la figura se ha dibujado a escala).


_


Sin embargo, existe la posibilidad de utilizar muchos otros tipos de métrica. Por ejemplo, cada arco podría etiquetarse con el retardo promedio de la espera en cola y de la transmisión, para un paquete patrón de prueba, determinado en base a pruebas de varias horas o días. Con este etiquetado del grafo el camino más corto resulta ser el más rápido en lugar del que presenta el menor número de arcos o kilómetros el caso más general, las etiquetas de los arcos se podrían calcular como una función de la distancia, ancho de banda, promedio de tráfico, costo de comunicación, longitud promedio de la cola de espera, retardo medido, y algunos otros factores. Al cambiar la función de peso, el algoritmo calcularía el camino "más corto" de acuerdo con cualquiera de los criterios involucrados.

Se conocen varios algoritmos que calculan el camino más corto entre dos nodos de un gráfo. El que aquí se muestra lo desarrolló Dijkstra (1959). Cada uno de los nodos se etiqueta (entre paréntesis) con la distancia que tiene desde el nodo origen la lo largo de un camino conocido como d mejor. Inicialmente, ningún camino es conocido, así que todos los nodos se etiquetan con infinito. A medida que el algoritmo avanza y los caminos se comienzan a conocer, las etiquetas pueden cambiar reflejando mejores trayectorias. Una etiqueta puede ser tentativa o permanente. Al inicio todas son tentativas. Cuando se descubre que una etiqueta representa el camino más corto posible, desde el origen hasta el nodo respectivo, la etiqueta se hace permanente y desde ese momento jamás se modifica.

Para ilustrar la manera como trabaja el algoritmo de etiquetado, véase en la figura 5-10a el grafo ponderado y no dirigido, en donde los pesos representan, por ejemplo, la distancia. Se desea determinar el camino más corto desde A hasta D. El procedimiento se inicia al hacer el nodo A permanente, indicando esto mediante un circulo relleno. Después, se examina de uno en uno, cada nodo adyacente al A (que es el nodo de trabajo), reetiquetando cada uno de ellos con la distancia a A. Cada vez que se reetiqueta un nodo, también se le etiqueta con el nodo desde el cual se hizo la prueba, de tal forma que se puede reconstruir después el camino final. Una vez que se examinó cada uno de los nodos adyacentes a A, se continúan examinando todos los nodos con etiqueta temporal en el grafo completo, y se hace permanente el nodo con la etiqueta más pequeña, como se muestra en la figura 5-10b. Este nodo se convierte en el nuevo nodo de trabajo.

Ahora se comienza con el nodo B, y se examinan todos los nodos adyacentes a éste. Si la suma de la etiqueta en B y la distancia desde B al nodo que se está considerando, es menor que el valor de la etiqueta en ese nodo, tenemos entonces una trayectoria más corta, por lo tanto el nodo se reetiqueta.

Después de que se hayan revisado todos los nodos adyacentes al nodo de trabajo, y que las etiquetas temporales se hayan modificado, si fue posible, el grafo entero se investiga para encontrar el nodo etiquetado temporalmente con el valor más pequeño. Este nodo se hace permanente y se convierte en el nuevo nodo de trabajo para la siguiente ronda. En la figura 5-10 se muestran los primeros cinco pasos del algoritmo.

Para ver por qué funciona el algoritmo, rnirese en la figura 5-I0c. En este momento, E acaba de hacerse permanente. Supóngase que había un camino más corto que el correspondiente a ABE, sea éste AXYZE. Existen dos posibilidades: o que el nodo Z ya se haya convertido en permanente, o bien, que todavía no lo sea. Si se convirtió, entonces E ya se había probado (en la ronda siguiente a aquélla en la que Z se hizo permanente), por lo tanto la trayectoria AXYZE no habría escapado a nuestra atención.

Ahora, considérese el caso en donde Z todavía tiene una etiqueta temporal o bien la etiqueta en Z es mayor que o igual que el valor de E, en cuyo caso el camino AXYZE no puede ser más corto que el ABE, o bien tiene un valor menor que el de E, en cuyo caso Z y no E se hará permanente primero, permitiendo que E se pueda probar desde Z.

En la figura 5-11 se muestra este algoritmo en lenguaje Pascal. La única diferencia que existe entre el programa y el algoritmo que se describió anteriormente, es que, en la figura 5-11 se calcula el camino más corto comenzando en el nodo terminal, t, más que en el nodo de origen, s. Puesto que el camino más corto, desde i hasta v en un grafo no dirigido, es el mismo que la trayectoria más corta que existe desde s a t, no importa en qué extremo se comience (a menos que existan varios caminos igual de cortos, en cuyo caso al invertir la búsqueda se podría descubrir uno diferente). La razón por la cual se va hacia atrás es que cada nodo es etiquetado con su predecesor, más que con su sucesor. Cuando se copia el camino final en la variable de salida, path, se lleva a cabo la inversión del camino. Al invertir la búsqueda, los dos efectos se cancelan y la respuesta se produce en el orden correcto.


Encaminamiento de camino múltiple

Hasta ahora se ha supuesto tácitamente que existe un solo "mejor" camino entre cualquier par de nodos y que todo el tráfico entre ellos deberá utilizarlo. En muchas redes hay varios caminos entre pares de nodos, que son casi igualmente buenos. Con frecuencia, se puede obtener un mejor rendimiento al dividir el tráfico entre varios caminos, para reducir la carga en cada una de las líneas de comunicación. La técnica de utilizar encaminamiento múltiple entre un sólo par de nodos se conoce como encaminamiento de camino múltiple, o algunas veces encaminamiento bifurcado.

El encaminamiento de camino múltiple se aplica tanto en subredes con datagramas, como en subredes con circuitos virtuales. Para el caso de subredes con datagramas, cuando un paquete llega a un IMP para su reexpedición, se hace una selección entre varias alternativas, para ese paquete en particular, en forma independiente de las selecciones que se hicieron para otros paquetes que se dirigieron al mismo destino, en el pasado. Para subredes con circuitos virtuales, cada vez que se establece un circuito virtual, se selecciona una ruta, pero el encaminamiento para los diferentes circuitos virtuales (en beneficio de los diferentes usuarios) se lleva a cabo en forma independiente.

El encaminamiento de camino múltiple se puede realizar de la siguiente manera. Cada IMP mantiene una tabla con una ristra reservada para cada uno de los posibles IMP destinatarios; cada ristra ofrece la mejor, la segunda mejor, la tercera mejor, etc. línea de salida para ese destino en particular, junto con un paso o ponderación relativa. Antes de que se reexpida un paquete, un IMP genera un número aleatorio y después selecciona entre las diferentes alternativas que se presentan, haciendo uso de los pesos como probabilidades. Los operadores calculan las tablas manualmente, cargándolas en los IMP antes de que arranque la red y que no se modifique después.

Como un ejemplo, considérese la subred de la figura 5-12a. En la figura 5-12b se muestra la tabla de encaminamiento del IMP J. Si J recibe un paquete cuyo destino es A, éste utiliza la ristra etiquetada con-A. En este caso se presentan tres opciones.


_


La línea hacia A es la primera elección, y después le siguen las líneas hacia I y H, respectivamente. Para tomar una decisión, J genera un número aleatorio entre 0.00 y 0.99. Si el número es inferior a 0.63, se utilizará la línea A. Si el número se encuentra entre 0.63 y 0.83, se utilizará I; y si no, se utilizará H. Los tres pesos representan, por consiguiente, las respectivas probabilidades para que se utilice A, I o H.

Una de las ventajas del encaminamiento de camino múltiple sobre el encaminamiento por camino más corto, es la posibilidad de poder transmitir diferentes clases de tráfico sobre diferentes caminos. Por ejemplo, una conexión entre un terminal y un ordenador remoto, que consta de paquetes cortos que deben de entregarse rápidamente, podría tomar una ruta a través de líneas terrestres, en tanto que la transferencia de un archivo grande, que necesita un gran ancho de banda, podría transmitirse a través de un enlace vía satélite. No sólo ofrece este método el gran ancho de banda que necesita la transferencia de archivo, sino que también evita que los paquetes cortos de terminal se retarden por estar detrás de una cola larga de paquetes de transferencia de archivos.

Aunque el encaminamiento de trayectoria múltiple se utiliza extensamente con objeto de mejorar el rendimiento, también se puede utilizar para mejorarla fiabilidad de la subred. En particular, si las tablas de encaminamiento contienen n rutas separadas entre cada par de IMP, la subred, entonces, podrá soportar la pérdida de (n - 1) líneas, sin que se rompa en dos partes.

Una manera simple de asegurar que todas las rutas alternativas se separen, consiste en calcular primero el camino más corto entre la fuente y el destino. Después, eliminar del grafo todos los nodos y arcos utilizados en la trayectoria más corta, para finalmente calcular la trayectoria más corta a través del nuevo grato. Con este algoritmo se asegura que los fallos originados en la línea o en el IMP del primer camino, no vayan a hacer que el segundo también falle. Además, al eliminar el segundo camino del gráfo, se puede calcular un tercer camino que viene a ser completamente independiente de los dos primeros. Even (1975) diseñó un algoritmo más sofisticado para localizar caminos separados en un grato.


Encaminamiento centralizado

Todos los algoritmos de encaminamiento que se estudiaron anteriormente necesitan tener información acerca de la topología y el tráfico de la red, para poder ' tomar las mejores decisiones. Si la topología es de característica estática y el tráfico, cambia muy rara vez, la construcción de las tablas de encaminamiento es muy sencilla, y se realiza una sola vez, fuera de línea, cargándolas en los IMP. Sin embargo, si los IMP y las líneas se desactivan y después se reestablecen, o bien, si el tráfico varia violentamente durante todo el día, se necesitará algún mecanismo para adaptar las tablas a las circunstancias que imperan en ese momento. En esta sección se estudiarán las técnicas para la construcción de las tablas de encaminamiento en un lugar central. En las secciones posteriores se verá la manera cómo este trabajo puede realizarse en una forma total o parcialmente descentralizada.

Cuando se utiliza un encaminamiento centralizado, en alguna parte de la red hay un RCC (Centro de control del enrutamiento). Periódicamente, cada IMP transmítela información de su estado al RCC (por ejemplo, una lista de sus vecinos activos, las longitudes actuales de las colas de espera, la cantidad de tráfico procesado por línea desde el último informe, etc.) El RCC recoge toda esta información, y después, con base en el conocimiento total de la red completa, calcula las rutas óptimas de todos los IMP a cada uno de los IMP restantes, utilizando por ejemplo el algoritmo del camino más corto, que se estudió anteriormente. A partir de esta información puede construir nuevas tablas de encaminamiento y distribuirlas a todos los IMP.

El encaminamiento centralizado parece atractivo a primera vista: dado que el RCC tiene la información completa, y puede tomar decisiones perfectas. Otra ventaja es que alivia a los IMP de la carga de calcular el encaminamiento.

Desafortunadamente, el encaminamiento centralizado también tiene algunos serios, si no es que fatales, inconvenientes. Por una razón, si la subred se tiene que adaptar a un tráfico variable, el cálculo del encaminamiento tendrá que efectuarse con bastante frecuencia. Para una red grande, este cálculo tomará muchos segundos, incluso cuando se tenga un CPU razonablemente rápido. Si el propósito de correr el algoritmo consiste en adaptarlo a cambios en la topología de la red; y no tanto a cambios en el tráfico, podría ser adecuado si se llegara a ejecutar cada minuto aproximadamente, dependiendo de cuán estable sea dicha topología.

La vulnerabilidad del RCC resulta ser un problema más serio; si éste se desactiva o llega a aislarse, debido a fallos en las líneas, la subred estará súbitamente en una situación problemática. Una solución consiste en tener una segunda máquina disponible como respaldo, pero esto conlleva a desperdiciar un ordenador de gran tamaño. También, se necesitará establecer un método de arbitraje para tener la seguridad de que el RCC primario y el de respaldo no lleguen a entrar en conflicto para saber quién es el jefe.

Otro problema adicional con el encaminamiento centralizado es el relacionado con la distribución de las tablas de encaminamiento a los IMP. Los IMP que se encuentran próximos al RRC obtendrán primero sus tablas nuevas y conmutarán a las nuevas rutas antes que, los IMP localizados a más distancia, hayan recibido sus correspondientes tablas. En esta circunstancia pueden surgir algunas inconsistencias, de tal forma que los paquetes pueden sufrir retardos. Entre los paquetes retardados habrá algunas nuevas tablas de encaminamiento para IMP distantes, por lo que el problema se realmente a si mismo.

Si el RCC calcula la ruta óptima para cada par de IMP, sin rutas alternas, la pérdida de tan sólo una línea o IMP, llegará a desconectar algunos IMP del RCC, creando así terribles consecuencias para el sistema. Si el RCC utiliza rutas alternas, se debilitará el argumento en favor de tener un RCC, esto es el que pueda encontrar rutas óptimas.

Un último problema relacionado con el encaminamiento centralizado es la fuerte concentración de tráfico encaminado sobre las líneas que conducen al RCC. En la figura 5-13 se ilustra este problema. La figura se dibujó trazando el camino más corto desde cada máquina hasta el RCC, y colocando una flecha en cada línea. Una línea con n flechas significa que hay n IMP que se están notificando al RCC a través de ella. El efecto de una carga fuerte y la vulnerabilidad resultante de las líneas próximas al RCC es evidente.


_

Considérese la red comercial de conmutación de paquetes TYMNET, con más de 1000 nodos que ha estado trabajando desde 1971, como un ejemplo ilustrativo de la forma cómo el encaminamiento centralizado trabaja en la práctica. TYMNET se utiliza principalmente con objeto de permitir que los terminales se conecten a los ordenadores remotos, la subred ofrece un servicio orientado a conexión y utiliza circuitos virtuales para realizar este tipo de servicio. Los IMP de la red TYMNET envían periódicamente información al RCC sobre su estado: por ejemplo indicando las líneas que están activas o inactivas, las longitudes de las colas de espera, así como otros datos estadísticos. El RCC mantiene tablas en las que se lleva d seguimiento de toda esta información que llega.

Cuando un nuevo usuario se conecta y especifica el hostal al cual desea conectarse, se envía un paquete al RCC informándole acerca del registro. El RCC entonces calcula la mejor ruta, utilizando toda la información que tiene a su disposición. Luego, envía un paquete de itinerario de regreso al IMP, al cual está conectado el usuario. El paquete de itinerario contiene la ruta seleccionada por el RCC. Este paquete traza su camino a través de la subred, efectuando anotaciones de entrada en las tablas de los IMP que se encuentran a su paso, estableciendo de esta forma de circuito virtual. Cuando el usuario se retira, se sigue un proceso similar para liberar el circuito virtual.


Encaminamiento aislado

Todos los problemas que se suscitan con los algoritmos de encaminamiento centralizado sugieren que los algoritmos descentralizados podrían tener algo que ofrecer. En los algoritmos de encaminamiento descentralizado más sencillos, los IMP llevan a cabo decisiones de encaminamiento, únicamente basados en la información que ellos mismos hayan reunido. No intercambian información de rutas con otros IMP. Sin embargo, tratan de adaptarse a los cambios de topología y tráfico que se llegan a presentar. A éstos se les conoce comúnmente como algoritmos de encaminamiento adaptables aislados.

Un algoritmo adaptable aislado sencillo es el desarrollado por Baran (1964), conocido como el algoritmo de la pata caliente. En el momento en que le llega un paquete, el IMP trata de deshacerse de él tan rápido como le sea posible, al ponerlo en la cola de espera de salida más corta. En otras palabras, cuando llega un paquete, el IMP cuenta el número de paquetes que se encuentran en la cola de espera de cada una de las líneas de salida. Entonces instala el nuevo paquete al final de la cola de salida más corta, sin tomar en cuenta el lugar al que se dirije esta línea. El interior del IMP J de la f1gtlra 5-12, tomado en un instante de tiempo cualquiera, se muestra en la figura 5-14. Hay cuatro colas de salida correspondientes a las cuatro líneas de salida. Los paquetes se acomodan en cola en cada una de las líneas, aguardando hasta que llegue el momento de su transmisión. En este ejemplo, la cola de espera I es la más corta, con un solo paquete esperando en la cola. El algoritmo de la patata caliente, por consiguiente, colocaría el paquete recién llegado en esta cola de espera.

_


Una variante de esta idea consiste en combinar el encaminamiento estático con el algoritmo de la patata caliente. Cuando llega un paquete, el algoritmo de encaminamiento toma en consideración tanto el peso estático de las líneas como las longitudes de las colas de espera. Una posibilidad consiste en utilizar la mejor opción estática, a menos que la cola excediera un cierto valor de umbral. Otra posibilidad consiste en utilizar la cola de espera más corta, a menos que, su peso estático sea demasiado pequeño. Una alternativa adicional consistiría en ordenar las líneas en términos de sus pesos estáticos, y nuevamente, en términos de las longitudes de las colas de espera, tomando en consideración la línea para la cual resulte menor la suma de los dos ordenamientos. Cualquiera que sea el algoritmo que se elija, éste deberá tener la propiedad que, bajo una condición de baja carga, la línea con un peso estático más alto será la que normalmente se elija pero, a medida que empiece a crecer la cola de espera para esta línea, alguna parte del tráfico se derivará hacia líneas menos ocupadas.

Otro algoritmo de encaminamiento aislado, también desarrollado por Baran, es el conocido como de aprendizaje hacia atrás. En los años de 1950 y 1960, cuando a los reporteros de países Occidentales difícilmente se les permitía visitar China, era común ver noticias que se iniciaban con "De acuerdo con los viajeros que acababan de llegar de Hong Kong procedentes de China...". La idea era que, en lugar de que el reportero fuera al lugar X, él pudiera hablar con la gente que acababa de llegar de X, preguntándoles qué era lo que estaba sucediendo ahí? El algoritmo de aprendizaje hacia atrás se comporta de la misma manera.

Una manera de realizar el aprendizaje hacia atrás consiste en incluir la identidad del IMP origen en cada paquete, junto con un contador que se incrementa después de cada salto. Si un IMP ve llegar un paquete en la línea k, procedente del IMP H, con la cuenta de 4 saltos, sabe que H no puede estar más lejos de cuatro saltos sobre la línea k. Si su mejor ruta actual hacia H se estima en más de cuatro saltos, marca la línea k como la elegida para el tráfico hacia H y registra la distancia estimada con un valor de cuatro saltos. Después de un rato, cada IMP descubrirá el camino más corto hacia cualquier otro IMP.

Desgraciadamente, hay una mosca en la sopa. Dado que los IMP sólo registran cambios hacia lo que sea mejor, si una línea se desactiva o llega a sobrecargarse, no hay mecanismo alguno que permita registrar este hecho. En consecuencia, los IMP deberán olvidar en forma periódica cualquier cosa que hayan aprendido y comenzar todo de nuevo. Durante el nuevo periodo de aprendizaje, el encaminamiento estará muy lejos de ser el óptimo. Si las tablas se depuran con frecuencia, los IMP encaminarán un número substancial de paquetes, utilizando rutas de calidad desconocida; en tanto que si las tablas se depuran rara vez, el proceso de adaptación resultará muy lento.

Rudin (1976) ha descrito un encaminamiento híbrido interesante, el cual se encuentra entre un encaminamiento centralizado y uno aislado, el cual denominó encaminamiento delta. En este algoritmo, cada una de los IMP mide el "costo" de cada línea (es decir, alguna función del retardo, de la longitud de la cola de espera, de su utilización, de su ancho de banda, etc.) y periódicamente transmite un paquete al RCC entregándole estos valores.

Utilizando la información enviada por los IMP, el RCC calcula las k mejores trayectorias que van desde el IMP i hasta el IMP j, para todo i y todo j, en donde sólo sé consideran los caminos que difieren en su línea inicial. Sea C1ij el costo total del mejor camino 1-j, y C2ij el costo total del siguiente mejor camino, etc. Si Cnij –C1ij < ÷ la trayectoria n se declara equivalente a la trayectoria 1, dado que sus costos difieren por una cantidad rnínima, para cada uno de sus posibles destinos. (En realidad, sólo se necesitarán las líneas iniciales, y no todas las trayectorias).

Para realizar encaminamiento real, a los IMP se les permite seleccionar cualquiera de las trayectorias equivalentes. Puede decidir entre todas ellas en forma aleatoria, o bien, utilizar el valor actualmente medido del costo de la línea, es decir, escoger el camino de aquéllos que se encuentran en el conjunto permitido, cuya línea inicial actual sea la más económica. Al ajustar los valores de k y d , los operadores de la red pueden realizar transferencias de autoridad entre el RCC y los IMP.

A medida que d ® 0, todas las trayectorias restantes se considerarán inferiores a 14 mejor trayectoria, y el RCC tomará todas las decisiones. Sin embargo, cuando d ® ¥ , todas las demás trayectorias se considerarán equivalentes, y las decisiones sobre el encaminamiento se tomarán en los IMP, basándose solamente en la información local. Las simulaciones que realizó Rudin, han demostrado que el valor de ó puede escogerse para dar un mejor rendimiento que cl obtenido con un encaminamiento puramente centralizado o aislado.


Inundación

La inundación es un caso extremo del encaminamiento aislado, en el cual cada paquete que llega se transmite en todas las líneas de salida, exceptuando aquélla por el que llega. Obviamente, con la inundación se genera un número considerable de paquetes duplicados; de hecho, un número infinito, a menos que se tomen algunas medidas para amortiguar el proceso. Una de tales medidas consiste en tener un contador de saltos contenido en la cabecera de cada uno de los paquetes, el cual se decrementa con cada salto que se lleve a cabo, y el paquete se desecha en el momento en que el contador alcance el valor de cero. Idealmente, cl contador de saltos deberá iniciarse con un valor correspondiente a la longitud del camino que existe entre el origen y el destino. Si el emisor no conoce la longitud del camino, puede iniciar el contador con el valor del peor caso, es decir, el valor del diámetro completo de la subred.

Una técnica alternativa para retener la inundación consiste en hacer que el IMP de origen ponga un número de secuencia en cada paquete que recibe de su hostal. De esta forma, cada IMP necesitará una lista por IMP origen, indicando qué números de secuencia originados en la fuente ya fueron vistos. Para evitar que la lista crezca sin limite, cada lista deberá aumentarse por medio de un contador, k, indicando que todos los números de secuencia hasta k ya fueron vistos. En el momento en que un paquete llega, resulta muy fácil verificar si éste es un duplicado; si es el caso, se desechará.

En varias aplicaciones, la inundación no resulta ser muy práctica, pero sí tiene algunos usos importantes. Por ejemplo, en aplicaciones militares, en donde un gran número de IMP pueden desintegrarse en pedazos en cualquier instante, la robustez de la inundación es una característica altamente deseable. En aplicaciones de bases de datos distribuidas, algunas veces se necesita actualizar todas las bases de datos en forma concurrente, en cuyo caso la inundación puede ser de gran utilidad. Una tercera forma posible de utilización de la inundación es como un sistema de medición contra cl cual otros algoritmos de encaminamiento se pueden comparar. La inundación siempre escoje el camino más corto, porque selecciona todos los posibles caminos en paralelo, por consiguiente, ningún otro algoritmo puede producir un retardo más corto (si se llegara a ignorar la sobrecarga generada por el proceso mismo de inundación).

Una variante de la inundación que es un poco más práctica, es la conocida como inundación selectiva. En este algoritmo los IMP no transmiten cada paquete que llega por todas las líneas de salida, sino por aquellas líneas que van aproximadamente en la dirección correcta. En general, es ilógico enviar un paquete hacia el oeste, a través de líneas que van al este, a menos que la topología sea muy extraña.

Otros algoritmos no adaptable es el de camino aleatorio; aquí el IMP se encarga simplemente de seleccionar una línea aleatoriamente y reexpedir el paquete a través de ella. Aquí, también, el IMP puede hacer algún intento de enfilar el paquete hacia la dirección correcta. Si la subred tiene una cantidad considerable de interconexiones, este algoritmo tiene la propiedad de hacer un uso excelente de los encaminamientos alternativos. También es muy robusto.


Encaminamiento distribuido

En esta clase de algoritmos de encaminamiento, que en sus inicios se utilizaron en ARPANET, cada IMP intercambia periódicamente información de encaminamiento explícito con cada uno de sus vecinos. Por lo general, cada IMP mantiene una tabla de encaminamiento con una entrada por cada uno de los demás IMP de la subred. Esta entrada consta de dos partes: la línea preferida de salida que se utilice para dicho destino, y alguna estimación del tiempo o distancia hacia él. La métrica utilizada podría ser el número de saltos, el tiempo estimado de retardo en milisegundos, la estimación del número total de paquetes encolados a lo largo de la ruta, el exceso de ancho de banda, o bien, algo similar.

Se supone que el IMP conoce la "distancia" a cada uno de sus vecinos. Si la métrica es la de saltos, la distancia es sólo un salto. Si la métrica es la longitud de la cola de espera, el IMP simplemente investiga cada una de las colas. Si la métrica es el retardo, el IMP puede medirlo en forma directa con paquetes especiales de "eco", que el receptor sólo marca con un sello de tiempo, y lo envía de vuelta tan rápido como puede.

Como un ejemplo, supóngase que se utiliza el retardo como una métrica y que el IMP conoce el retardo para llegar a cada uno de sus vecinos. Cada IMP le envía a cada uno de sus vecinos una lista de sus retardos estimados para cada destino, una vez cada T mseg. También recibe una lista parecida de cada uno de sus vecinos. Imagínese ahora que una de estas tablas acaba de llegar, procedente de su vecino X, con Xi siendo la estimación hecha por X del tiempo que le lleva llegar al IMP i. Si el IMP sabe que el retardo para X es de m mseg, también sabe que puede alcanzar al IMP la través de X, en un tiempo de (Xi + m) mseg a través de X. Al efectuar este cálculo para cada vecino, un IMP podría determinar qué estimación parece serla mejor, y utilizarla junto con su correspondiente línea en su nueva tabla de encaminamiento. Nótese que la antigua tabla de encaminamiento no se utiliza en el proceso de cálculo.

Este proceso de actualización se ilustra en la figura 5-15. En la parte a) se muestra una subred. En las primeras cuatro columnas de la parte b) se muestran los vectores de retardo que se recibieron, procedentes de los vecinos del IMP J. A dice tener 12 mseg de retardo para llegar a B, 25 mseg de retardo para C, 40 mseg de re- tardo para D, etc. Supóngase que J ha medido o estimado su retardo para llegar hasta sus vecinos A, I, H y K en 8, lo, 12 y 6 mseg, respectivamente.


_

Considérese ahora la forma como J calcula su nueva ruta para llegar al IMP G. Sabe que puede llegar a A en 8 mseg, y A afirma que es capaz de llegar a G en 18 mseg, así que J sabe que puede contar con un retardo de 26 mseg hacia G, si reexpide los paquetes de G a A. De una manera similar, calcula el retardo para llegar a G a través de I, H y K como 41(31 + lo), 18(6 + 12) y 37(31 + 6) mseg, respectivamente. El mejor de estos valores es 18, así que hace una anotación en su tabla de encaminamiento indicando que el retardo a G es de 18 mseg, y que la ruta a usar es a través de H. Este mismo cálculo se lleva a cabo para todos los demás destinos, obteniendo la nueva tabla de encaminamiento mostrada en la última columna de la figura.

 

  Encaminamiento óptimo

Aun sin conocer los detalles de la topología y tráfico de la subred, es posible hacer algunas declaraciones generales acerca de las rutas óptimas; una de estas declaraciones se conoce con el nombre de principio de optimización. Este declara que si el IMP J está en la trayectoria óptima que va desde el IMP I hasta el IMP K, entonces la trayectoria óptima de J a K también se encuentra a lo largo de la misma ruta. Para ver esto, llámese r1 a la porción de la ruta que va desde I hasta J, y al resto de la ruta r2. Si existiera una ruta mejor que r2, desde J hasta K, podría concatenarse con r1 para mejorar la ruta de la K, contradiciendo, por consiguiente, la afirmación de que la ruta r1 r2 es la óptima.

Como una consecuencia directa del principio de optimización, se puede observar que, d conjunto de rutas óptimas, procedentes de todos los orígenes a un destino dado, forman un árbol cuya raíz sale del destino. A este árbol se le llama árbol sumidero y se ilustra en la figura 5-16. Dado que el árbol sumidero es efectivamente un árbol, no contiene ningún lazo, de tal forma que, cada paquete será entregado a través de un número limitado y finito de saltos.


_


En general, si el tráfico de la IMP X pasa por la IMP Y, a medida que fluye a través del árbol sumidero, para llegar a su destino, se dice que X se encuentra corriente arriba de Y y Y no abajo de X. Con objeto de ilustrar estos conceptos, considérese la subred de la figura 5-17a, con el árbol sumidero para el destino H, como se muestra en la figura 5-17b. IA lo largo de este ejemplo, se utilizará el encaminamiento de camino más corto, según un orden alfabético; por ejemplo, B encaminado hacia H, a través de BCEH, en lugar de BDGH, porque BCEH < BDGH).

Con la imagen del árbol sumidero en mente, considérese lo que sucedería si una línea llegara a desactivarse, bloqueando así la trayectoria hacia un destino determinado. Un IMP sencillamente no puede enviar su tráfico a otra IMP, que se encuentra corriente arriba de la ruta con respecto a dicho destino.. Este deberá buscar un vecino que esté unido a otra rama (independiente) del árbol sumidero. En cl algoritmo de Chu (1978), cada IMP mantiene una tabla de encaminamiento con una ristra por destino, como se puede apreciar en la figura 5-17c. Cada columna da el número de saltos necesarios para llegar al destino, a través de una línea de salida especifica.

Para la IMP G, las líneas de salida son D, F y H. La mejor ruta está indicada por medio de un circulo. Las entradas que se refieren a los IMP que se encuentran corriente arriba se dejan en blanco. Nótese que el árbol sumidero utilizado para determinar quién está corriente arriba y quién está río abajo, es diferente para cada ristra de la tabla.

Ahora, veamos qué sucede cuando falla la línea GH. El IMP G comienza marcando todas las anotaciones de la columna H como inutilizables. Después, comprueba cada una de las ristras en las cuales se ha borrado la mejor ruta, para ver si se encuentra disponible una ruta alternativa. Para el destino E, por ejemplo, se puede seguir una ruta alternativa a través de D. (Recuérdese que en este ejemplo D encamina a E, a través de B, porque DBCE < DGHE).


_


Para cl destino H, la situación es peor, porque los dos vecinos se encuentran corriente arriba de G. Por consiguiente, G envía a cada vecino un paquete de control indicando "No podré jamás llegar hasta H, por favor ayúdenme". Después de recibir el paquete con esta información, cada vecino comprueba si tiene una ruta alterna (previamente suboptimizada). D tiene una ruta alternativa y, por lo tanto, devuelve una respuesta anunciándola. Sin embargo, F no tiene ninguna alternativa, porque A, que es su único vecino, se encuentra corriente arriba de su posición, por lo que actúa de la misma manera que lo haría si la línea FG se hubiera desactivado, es decir, solicitando ayuda de A. Los paquetes de control continúan propagándose corriente arriba hasta que alguien encuentra una ruta alternativa. Cuando G finalmente recibe las respuestas de todos sus vecinos localizados corriente arriba puede hacer nuevas anotaciones en su tabla de encaminamiento y seleccionar la mejor. La única condición bajo la cual el algoritmo falla es cuando ninguno de los IMP, corriente arriba del enlace que fracasó, puede hacer contacto con cualquier otro IMP en otra rama del árbol sumidero. Esta condición ocurre sólo cuando la subred se llega a romper en dos componentes independientes.

    Hosted by www.Geocities.ws

    1