Un protocolo de enrutamiento por vector de distancia en redes de datos determina la mejor ruta para los paquetes de datos en función de la distancia. Los protocolos de enrutamiento por vector de distancia miden la distancia según la cantidad de enrutadores que debe atravesar un paquete; un enrutador cuenta como un salto. Algunos protocolos de vector de distancia también tienen en cuenta la latencia de la red y otros factores que influyen en el tráfico en una ruta determinada. Para determinar la mejor ruta a través de una red, los enrutadores que utilizan un protocolo de vector de distancia intercambian información entre sí, generalmente tablas de enrutamiento más conteos de saltos para las redes de destino y posiblemente otra información de tráfico. Los protocolos de enrutamiento por vector de distancia también requieren que un enrutador informe a sus vecinos de los cambios de topología de red periódicamente.
Los protocolos de enrutamiento por vector de distancia utilizan el algoritmo Bellman-Ford para calcular la mejor ruta. Otra forma de calcular la mejor ruta a través de una red se basa en el costo del enlace y se implementa a través de protocolos de enrutamiento de estado de enlace .
El término vector de distancia se refiere al hecho de que el protocolo manipula vectores ( matrices ) de distancias a otros nodos de la red. El algoritmo de vector de distancia fue el algoritmo de enrutamiento original de ARPANET y se implementó de manera más amplia en redes de área local con el Protocolo de información de enrutamiento (RIP).
Los protocolos de enrutamiento por vector de distancia utilizan el algoritmo Bellman-Ford . En estos protocolos, cada enrutador no posee información sobre la topología completa de la red . Anuncia su valor de distancia (DV) calculado a otros enrutadores y recibe anuncios similares de otros enrutadores a menos que se realicen cambios en la red local o por parte de vecinos (enrutadores). Mediante estos anuncios de enrutamiento, cada enrutador llena su tabla de enrutamiento. En el siguiente ciclo de anuncios, un enrutador anuncia información actualizada de su tabla de enrutamiento. Este proceso continúa hasta que las tablas de enrutamiento de cada enrutador convergen a valores estables.
Algunos de estos protocolos tienen la desventaja de una convergencia lenta.
Ejemplos de protocolos de enrutamiento por vector de distancia:
Los enrutadores que utilizan el protocolo de vector de distancia determinan la distancia entre ellos y un destino. La mejor ruta para los datos a través de una red de datos se mide en términos de la cantidad de enrutadores (saltos) que un paquete debe atravesar para llegar a su red de destino. Además, algunos protocolos de vector de distancia tienen en cuenta otra información de tráfico, como la latencia de la red . Para establecer la mejor ruta, los enrutadores intercambian información regularmente con los enrutadores vecinos, generalmente su tabla de enrutamiento , el conteo de saltos para una red de destino y posiblemente otra información relacionada con el tráfico. Los enrutadores que implementan el protocolo de vector de distancia se basan exclusivamente en la información que les proporcionan otros enrutadores y no evalúan la topología de la red . [1]
Los protocolos de vector de distancia actualizan las tablas de enrutamiento de los enrutadores y determinan la ruta por la que se enviará un paquete en el siguiente salto , que es la interfaz de salida del enrutador y la dirección IP de la interfaz del enrutador receptor. La distancia es una medida del costo para llegar a un nodo determinado. La ruta de menor costo entre dos nodos es la ruta con la distancia mínima.
Las actualizaciones se realizan periódicamente en un protocolo de vector de distancia donde la totalidad o parte de la tabla de enrutamiento de un enrutador se envía a todos sus vecinos que están configurados para usar el mismo protocolo de enrutamiento de vector de distancia. Una vez que un enrutador tiene esta información, puede modificar su propia tabla de enrutamiento para reflejar los cambios y luego informar a sus vecinos sobre los cambios. Este proceso se ha descrito como "enrutamiento por rumores" porque los enrutadores dependen de la información que reciben de otros enrutadores y no pueden determinar si la información es realmente válida y verdadera. Hay una serie de características que se pueden utilizar para ayudar con la inestabilidad y la información de enrutamiento inexacta.
El protocolo de enrutamiento más antiguo , y el protocolo de vector de distancia más antiguo, es la versión 1 del Protocolo de información de enrutamiento (RIPv1). RIPv1 se estandarizó formalmente en 1988. [2] Establece la ruta más corta a través de una red basándose únicamente en los saltos, es decir, la cantidad de enrutadores que se deben pasar para llegar a la red de destino. RIP es un protocolo de puerta de enlace interior , por lo que se puede utilizar en redes de área local (LAN) en enrutadores interiores o de borde. Los enrutadores con implementación RIPv1 intercambian sus tablas de enrutamiento con enrutadores vecinos mediante la difusión de un paquete RIPv1 cada 30 segundos en todas las redes conectadas. RIPv1 no es adecuado para redes grandes, ya que limita la cantidad de saltos a 15. Este límite de saltos se introdujo para evitar bucles de enrutamiento, pero también significa que las redes que están conectadas a través de más de 15 enrutadores son inalcanzables. [3]
El protocolo de vector de distancia diseñado para su uso en redes de área amplia (WAN) es el Protocolo de puerta de enlace de borde (BGP). BGP es un protocolo de puerta de enlace exterior y, por lo tanto, se implementa en enrutadores de borde y exteriores en Internet . Intercambia información entre enrutadores a través de una sesión de Protocolo de control de transmisión (TCP). Los enrutadores con implementación de BGP determinan la ruta más corta a través de una red en función de una variedad de factores distintos de los saltos. BGP también puede ser configurado por los administradores para que se prefieran o eviten ciertas rutas. BGP es utilizado por proveedores de servicios de Internet (ISP) y empresas de telecomunicaciones. [4]
Entre los protocolos de vector de distancia que se han descrito como híbridos, debido a que utilizan métodos de enrutamiento asociados con los protocolos de enrutamiento de estado de enlace , se encuentra el protocolo propietario Enhanced Interior Gateway Routing Protocol (EIGRP). Fue desarrollado por Cisco en la década de 1980 y fue diseñado para ofrecer una mejor convergencia y causar menos tráfico de red entre enrutadores que el protocolo de enrutamiento de estado de enlace Open Shortest Path First (OSPF). [5]
Otro ejemplo de un protocolo de enrutamiento por vector de distancia es Babel .
El algoritmo Bellman-Ford no evita que se produzcan bucles de enrutamiento y sufre del problema de contar hasta el infinito . El núcleo del problema de contar hasta el infinito es que si A le dice a B que tiene una ruta en alguna parte, no hay forma de que B sepa si la ruta tiene a B como parte de ella. Para ver el problema, imagine una subred conectada como A–B–C–D–E–F, y deje que la métrica entre los enrutadores sea "número de saltos". Ahora suponga que A se desconecta. En el proceso de actualización de vectores, B nota que la ruta a A, que era la distancia 1, está inactiva; B no recibe la actualización de vectores de A. El problema es que B también recibe una actualización de C, y C todavía no es consciente del hecho de que A está inactivo, por lo que le dice a B que A está a solo dos saltos de C (C a B a A). Como B no sabe que la ruta de C a A pasa por sí mismo (B), actualiza su tabla con el nuevo valor "B a A = 2 + 1". Posteriormente, B reenvía la actualización a C y, debido a que A es alcanzable a través de B (desde el punto de vista de C), C decide actualizar su tabla a "C a A = 3 + 1". Esto se propaga lentamente a través de la red hasta que se vuelve infinito (en cuyo caso el algoritmo se corrige a sí mismo, debido a la propiedad de relajación de Bellman-Ford).
RIP utiliza la técnica de horizonte dividido con reversión de envenenamiento para reducir la posibilidad de formación de bucles y utiliza un número máximo de saltos para contrarrestar el problema de "contar hasta el infinito". Estas medidas evitan la formación de bucles de enrutamiento en algunos casos, pero no en todos. [6] La adición de un tiempo de espera (rechazando las actualizaciones de ruta durante unos minutos después de una retracción de ruta) evita la formación de bucles en prácticamente todos los casos, pero provoca un aumento significativo en los tiempos de convergencia.
Más recientemente, se han desarrollado varios protocolos de vector de distancia sin bucles; algunos ejemplos notables son EIGRP , DSDV y Babel . Estos evitan la formación de bucles en todos los casos, pero sufren una mayor complejidad y su implementación se ha visto ralentizada por el éxito de los protocolos de enrutamiento de estado de enlace como OSPF .
En esta red tenemos 4 routers A, B, C y D:
Marcamos el tiempo actual (o iteración) en el algoritmo con T y comenzamos (en el tiempo 0, o T=0) creando matrices de distancia para cada enrutador a sus vecinos inmediatos. A medida que construimos las tablas de enrutamiento a continuación, la ruta más corta se resalta en verde y una nueva ruta más corta se resalta en amarillo. Las columnas grises indican nodos que no son vecinos del nodo actual y, por lo tanto, no se consideran una dirección válida en su tabla. El rojo indica entradas no válidas en la tabla, ya que se refieren a distancias desde un nodo a sí mismo o a través de sí mismo.