VECTOR DISTANCIA ESTADO DE ENLACE

VECTOR DISTANCIA


El enrutamiento de un protocolo basado en vector de distancias requiere que un router informe a sus vecinos de los cambios en la topología periódicamente y en algunos casos cuando se detecta un cambio en la topología de la red. Comparado a los protocolos de estado de enlace, que necesitan que un router informe a todos los nodos de una red acerca de los cambios en su topología, los algoritmos de vector de distancias tienen mucha menos complejidad computacional. Además, las principales características de los diferentes algoritmos VD (vector de distancias) son siempre las mismas.

El algoritmo VD se basa en calcular la dirección y la distancia hasta cualquier enlace en la red. El costo de alcanzar un destino se lleva a cabo usando cálculos matemáticos como la métrica del camino. RIP cuenta los saltos efectuados hasta llegar al destino mientras que IGRP utiliza otra información como el retardo y el ancho de banda.

Los cambios son detectados periódicamente ya que la tabla de enrutamiento de cada router se envía a todos los vecinos que usan el mismo protocolo. Una vez que el router tiene toda la información, actualiza su propia tabla reflejando los cambios y luego informa a sus vecinos de los mismos. Este proceso se conoce también como “enrutamiento por rumor” ya que los nodos utilizan la información de sus vecinos y no pueden comprobar a ciencia cierta si ésta es verdadera o no.

El algoritmo de Bellman-Ford se adapta perfectamente al modo de aprendizaje de los nodos que “nacen”, es decir, cuando se conectan a la red. A medida que el algoritmo progresa, el nuevo nodo va adquiriendo más información sobre el resto de nodos de la red. Este algoritmo converge rápidamente cuando se conectan nuevos nodos. Por ello se suele decir que las buenas noticias viajan rápido por la red.


Limitaciones
Un problema es el de la transmisión de malas noticias por la red tales como la ruptura de un enlace o la desaparición de un nodo. Este algoritmo converge lentamente en estos casos. Aunque el principal inconveniente de este algoritmo es el de la cuenta a infinito.

El algoritmo Bellman-Ford utilizado en VD no previene de la aparición de bucles. Aunque protocolos como IGRP están modificados para detectar bucles en la red. El problema de la cuenta a infinito es que hace que los costes o distancias se incrementen indefinidamente sin que el algoritmo llegue a converger nunca.


Para ilustrarlo, tomemos como ejemplo el de la figura.


Inicialmente A está desactivado. Cuando A se activa, B se entera de que A existe al recibir su vector distancia y actualizar su tabla indicando que A dista 1.

El nodo C se entera de que A existe porque B le indica que tiene un enlace hacia A de coste 1. Entonces C actualiza su tabla registrando una trayectoria hacia A de coste 2. 

Si el nodo A se desconecta entonces B no recibe el VD de A. Sin embargo el nodo C le dice que tiene una trayectoria hasta A de distancia 2. B no sabe que la trayectoria de C a A pasa por el mismo y por tanto cree que puede llegar a A, a través de C por lo que actualiza su tabla registrando la distancia 2 + 1 = 3 hasta A.

En el siguiente intercambio, el nodo C comprueba que sus vecinos B y D tienen una trayectoria hasta A de distancia 3. C calcula su propia distancia hasta A en 3 + 1 = 4. En los siguientes intercambios, los nodos elevan ilimitadamente su distancia a A (cuenta a infinito). 
Mientras no se interrumpa la cuenta a infinito, el algoritmo no converge. Aunque se han propuesto diversas soluciones a este problema. 
RECORTE POR HORIZONTE DIVIDIDO
Se trata de una de las soluciones utilizadas para solventar el conteo a infinito. Es una modificación del algoritmo VD para evitar que un nodo informe a su vecino sobre la distancia que conoce hasta el nodo X cuando la trayectoria hacia X pasa a través de ese nodo vecino. Lo que realmente hace es informar que dicha distancia es infinita.
El algoritmo por horizonte dividido consigue que las “malas noticias” se propaguen con la misma rapidez que las “buenas noticias”. Sin embargo este algoritmo no funciona para todas las combinaciones de topologías posibles por lo que sólo mitiga el problema sin solucionarlo. Esto ha llevado al desarrollo de más complejos algoritmos de encaminamiento tales como los de estado de enlace.
 
ESTADO DE ENLACE
Estado de enlace Se basa en que un router o encaminador comunica a los restantes nodos de la red, identifica cuáles son sus vecinos y a qué distancia está de ellos. Con la información que un nodo de la red recibe de todos los demás, puede construir un "mapa" de la red y sobre él calcular los caminos óptimos. El encaminamiento por estado de enlace nace en 1979 cuando en ARPANET sustituyó al método de vector de distancias.
 
FUNCIONAMIENTO
Lo podemos dividir en cinco pasos fundamentales:
1. Descubrir a sus vecinos y sus direcciones.
2. Medir el costo a cada uno de sus vecinos.
3. Construir el paquete con la información recabada.
4. Enviar este paquete al resto de routers.
5. Calcular la ruta mínima al resto de routers. 
Determinar los vecinos de cada nodo. Lo primero que debe hacer un router al activarse es averiguar quiénes son sus vecinos. Para ello, manda un paquete especial dependiendo que protocolo utilices, si es OSPF utilizara HELLO por cada línea punto a punto. Todo router que reciba este paquete debe responder indicando su identidad.
Cálculo del coste a los vecinos. Para medir el retardo a cada nodo, el router manda un paquete especial ECHO a través de la línea el cual debe volver a su origen. El tiempo de ida y vuelta dividido entre dos nos da una aproximación razonable del costo a cada vecino de la red.
Elaboración de paquete de estado de enlace. El siguiente paso consiste en que cada router construye un paquete con todos los datos que informan del estado de la red. La estructura de este paquete es la siguiente:
Identidad del router
Secuencia
Edad
Lista de nodos vecinos
 
El problema de esta etapa es el momento de la creación de estos paquetes. Hay varias alternativas como hacerlo de manera periódica o bien cuando haya ocurrido un evento en la red como la caída de un nodo.
Distribución del paquete de estado de enlace. Es la parte más complicada del algoritmo. Básicamente lo que hace, es repartir el paquete por toda la red por inundación. Para controlarla, cada paquete incluye un número de secuencia que aumenta con cada paquete nuevo enviado. Cada router contiene una tabla con toda la información de tal manera que:
  • Si recibe un paquete nuevo, este se envía por todas las líneas excepto por la que llega.
  • Si se trata de un duplicado, lo elimina.
  • Si es un paquete con secuencia menor que el mayor visto hasta el momento, lo rechaza.
A pesar de todo, surgen ciertos problemas como el reinicio de la secuencia. Si ocurre esto, se producirá un caos en la red. Este problema se soluciona usando secuencias de 32 bits, lo suficientemente grandes para no tener que poner la secuencia a 0 suponiendo que se envía un paquete por segundo. Otros conflictos surgen en el caso de caída de un router (reinicio del número de secuencia) o si se recibe un número de secuencia equivocado por haberse modificado alguno de sus bits durante la transmisión.
La solución para esto, es introducir la edad de cada paquete e ir disminuyéndola en un intervalo pequeño de tiempo. Cuando la edad llegue a 0, estos paquetes son descartados. Además, este método permite que los paquetes no circulen de manera indefinida por la red.
Cálculo de ruta mínima. Una vez que el router ha completado la recopilación de información, puede construir el grafo de la subred. De esta manera, se puede utilizar el algoritmo de Dijkstra para calcular el camino más corto a todos los nodos.
 
ESTADO DE ENLACE VS VECTOR DISTANCIA
A continuación se realiza una comparativa entre estos dos algoritmos:
Ancho de banda. Puesto que la métrica de retardo es la longitud de la cola, el vector distancia no considera el ancho de banda usado. Antes de 1979 el máximo ancho de banda era de 56Kb posteriormente se modernizaron las líneas a 230Kbps o incluso a 1,5Mbps lo que hizo necesario el uso de mejores técnicas.
 
Convergencia. El algoritmo por vector distancia tarda demasiado en converger aún con la técnica del horizonte dividido.
Información de la red. En encaminamiento por vector distancia, cada router envía información sólo a sus vecinos, pero esta es sobre toda la red. Sin embargo el encaminamiento por EE envía a todos los nodos de la red, pero su información es relativa a sus vecinos. Además el enrutamiento por vector distancia no permite conocer la topología de la red.
Capacidad y uso de memoria. Con algoritmos basados en estado de enlace, el tráfico de la red siempre es el mismo sin depender del tamaño de la red. Con vectores distancia, se transmiten vectores de un tamaño proporcional al número de nodos. El routing por vector distancia sólo guarda las distancias al resto de nodos. Con estado de enlace se ha de almacenar además la topología de la red.
Sucesos en la red. Al no tener información sobre la topología, el routing por vector distancia no se adapta tan bien a los cambios en la red como el basado en estado de enlace. Sin embargo, el encaminamiento basado en vector distancia es mucho más sencillo que el de estado de enlace, lo que en ocasiones puede resultar bastante útil.
 
PROTOCOLOS QUE USAN ESTA TÉCNICA
Los algoritmos basados en el estado de enlace son muy utilizados en las redes actuales. Uno de los protocolos más importantes que lo usan es el OSPF.
Otro a destacar es el IS-IS (Intermediate System-Intermediate System o sistema intermedio-sistema intermedio) diseñado por DECnet y adoptado por la ISO. IS-IS se usa en varios backbone de Internet como el antiguo NSFNET.
El funcionamiento de IS-IS consiste en mandar una imagen de la topología de la red sobre la que se calculan las rutas mínimas. Cada router indica las direcciones de la capa de red que pueden ser alcanzadas directamente. Muchas mejoras de IS-IS fueron adaptadas por OSPF. La diferencia fundamental es que IS-IS puede llevar información sobre varios protocolos de capa de red.