Algoritmo de Bellman Ford

Este tipo de algoritmo eran originales de ruteo de la ARPANET. Su modo de funcionamiento es el siguiente:

  • Cada ruteador mantiene una tabla (un vector) que almacena las mejores distancias conocidas a cada destino y las líneas a usar para cada destino. Se actualizan las tablas intercambiando información con los vecinos.
  • La tabla de un ruteador almacena una entrada para cada uno de los ruteadores en la subred (los ruteadores son los índices). Las entradas almacenan la línea preferida de salida y una estimación del tiempo o la distancia al destino. Se pueden usar métricas distintas (saltos, retrasos, etc.).
  • Cada ruteador tiene que medir las distancias a sus vecinos. Por ejemplo, si la métrica es el retraso, el ruteador la puede medir usando paquetes de eco.
  • Cada T msegs los ruteadores intercambian sus tablas con sus vecinos. Un ruteador usa las tablas de sus vecinos y sus mediciones de las distancias a sus vecinos para calcular una nueva tabla.

 

 

Pros y contras del algoritmo:

Este algoritmo funciona en teoría, pero tiene un gran problema en la práctica: aunque converge en la respuesta correcta, puede hacerlo de forma lentamente. En particular, reacciona con rapidez a las buenas noticias, pero con lentitud ante las malas.

Simulación del algoritmo: Bellman Ford

 

Ejemplo:

Aquí tenemos un ejemplo de como se actualiza la tabla de encaminamiento del nodo J, supóngase que se reciben 4 vectores de retardos de los nodos vecinos al enrutador J. El retardo desde J a sus vecinos A,I,H,K, es de 8,10,12,6 mseg, respectivamente.

Por ejemplo, para estimar el valor a C, se procedería de la siguiente forma, se sabe que los tiempos son 25,18,19 y 36 mseg, el menor de estos es 18, que es ofrecido por el enrutador I, luego J actualizará la distancia a C, con 18 + lo que tarda en llegar a I, que es 10, luego sería 18+10 =28 y la línea de salida sería I.

 

../Algoritmos encaminamiento/Algoritmo Bellman Ford