¿Cómo encajan estos términos: protocolos de enrutamiento, algoritmos de enrutamiento, Dijkstra y Bellman Ford, vector de distancia y estado de enlace, RIB y FIB?

Un enrutador utilizará un algoritmo de enrutamiento para determinar el próximo punto de entrega inmediato (“próximo salto”) para un paquete dado. ¿Cómo eliges el mejor camino? Esa será una combinación de decisiones administrativas (costos, prioridades) e información aprendida sobre las rutas de red. En el caso más básico, la decisión depende solo de la dirección de destino IP.

Entonces, ¿cómo aprende información sobre las rutas de red? Utiliza un protocolo de enrutamiento entre los enrutadores para compartir información. De hecho, puede usar múltiples protocolos de enrutamiento al mismo tiempo. Recuerda eso para más tarde. Pero por ahora, escojamos uno.

Hay dos escuelas principales de pensamiento en los protocolos de enrutamiento:

  • Distancia-Vector . En esta escuela de pensamiento, solo aprende lo que sus vecinos saben sobre la red. Los vecinos proporcionan periódicamente una lista de redes que conocen y un “vector” (distancia, saltos, otros datos) relacionados con cada red. Sobre la base de estos vectores aprendidos, se utiliza una forma distribuida del algoritmo Bellman-Ford para elegir la mejor ruta.
  • Estado de enlace. En esta escuela de pensamiento, cada enrutador en un área mantiene una topología de red completa de enlaces y costos en memoria para un área determinada, y aplica el algoritmo de Dijkstra a ese gráfico para trazar las rutas más cortas para cada ruta. Cada nodo observa agresivamente los cambios en el estado del enlace (ya sea que un enlace esté activo o inactivo), lo que podría implicar un cambio de topología y la necesidad de volver a calcular el gráfico de topología.

Una vez que obtenga información sobre las “mejores” rutas de destino, esos datos llenan una tabla de enrutamiento para cada destino. Si ejecuta un protocolo, la tabla de enrutamiento es efectivamente la misma que la Base de información de enrutamiento (RIB) , que es la fuente de datos autorizada para las decisiones de enrutamiento, basada en un cálculo de ruta de todos los datos y reglas disponibles. Si ejecuta múltiples protocolos de enrutamiento o utiliza otras reglas administrativas (listas de acceso, enrutamiento de origen, etc.), el RIB reflejará las reglas del conjunto digeridas.

Al reenviar un paquete, el enrutador realiza una búsqueda RIB, y a partir de ahí se le asignará un “próximo salto” al paquete reenviado, que es la siguiente dirección IP que debe manejar el paquete reenviado.

Una vez que se decide el enrutamiento, el envío real a una interfaz puede regirse por otras reglas en torno al equilibrio de carga u otras preocupaciones a nivel de hardware. La Base de información de reenvío (FIB) es una tabla en la que la dirección MAC (y la interfaz física) deben transportar un paquete a un siguiente salto IP determinado determinado por la búsqueda RIB.

Estoy tentado a escribir un poema o una canción, pero no tengo ni el tiempo ni el talento. La prosa aburrida tendrá que hacer.

Internet utiliza protocolos de enrutamiento para calcular dónde deben ir los paquetes. Dentro de la red de cada proveedor, ejecutan un protocolo de puerta de enlace Interior (IGP). Al principio, comenzamos con protocolos de vector de distancia basados ​​en el algoritmo de Bellman-Ford, pero el tiempo de convergencia para estos se convirtió en un problema y el mundo ha cambiado en gran medida a los protocolos de enrutamiento de estado de enlace. En un protocolo de estado de enlace, la información sobre la topología de la red (en realidad área o nivel) se inunda por completo. El primer algoritmo de primer camino más corto (SPF) de Dijkstra se utiliza para calcular el camino más corto desde cualquier punto de la red a cualquier otro punto de la red. Cada una de estas rutas es una ruta y se almacena en la Base de información de enrutamiento (RIB) (consulte la tabla de enrutamiento). Cuando se han calculado todas las rutas, muchos de estos protocolos pueden haber inyectado rutas en la RIB, a veces para el mismo destino. La ruta ganadora para cada destino se traslada a la base de información de reenvío (FIB) del enrutador.

Ah, las alegrías de la sopa de jerga. Es fácil confundir el apio de los frijoles en el tazón de caldo para los no iniciados.

Tony y Phil han escrito excelentes respuestas, que junto con su lectura deberían brindarle una imagen más clara.

De todos modos, también intentaré despejar la niebla.

Todas las redes son esencialmente gráficos, con nodos y enlaces, y los costos asociados con estos enlaces. No todos los nodos están conectados a todos los demás. En cada nodo, hay una entidad que podría querer comunicarse con cualquier otra entidad en cualquier otro nodo. Con estos antecedentes, profundicemos en los términos.

Cálculo de ruta : en cada nodo, el proceso de elegir en qué enlace viajar dada la identidad del nodo de destino final. La identidad del nodo de destino permanece igual para todo el viaje.

FIB : una base de datos que proporciona el enlace a utilizar para llegar a un grupo de nodos de destino relacionados. La agrupación de nodos es jerárquica. Hay una tabla FIB en cada nodo y debe tener suficientes entradas para poder llegar a todos los nodos directamente o mediante la agrupación de nodos.

RIB : una base de datos similar a la FIB, pero no necesita tener un conjunto completo de accesibilidad. Podría haber muchos RIB, cada uno formado y mantenido independientemente, incluso con muchas superposiciones. Un FIB se construye a partir de estos RIB utilizando un esquema de selección apropiado.

Mejor selección de ruta : El proceso de crear una base de datos de reenvío completa (FIB) a partir del conjunto disponible de RIB, utilizando ciertos criterios.

Tabla de ruta de población : El proceso de crear filas en la RIB. Cada RIB es responsabilidad de un solo Protocolo de enrutamiento. A medida que el protocolo aprende nuevas rutas, agrega entradas a la RIB y así llena la tabla de rutas.

Protocolo de enrutamiento : un conjunto de reglas distribuidas, código, estructuras de datos y mecanismos que comparten un diseño común, trabajando de manera cooperativa para descubrir la conectividad gráfica, el estado y las rutas óptimas de un nodo a otro (o grupos). La clave es el diseño común, incluida la implementación, las estructuras de datos y los formatos de información de ruta. Esto calcula y mantiene la RIB en cada nodo.

Algoritmo de enrutamiento : un algoritmo abstracto construido a partir de la teoría de gráficos para derivar la accesibilidad de los nodos en el gráfico utilizando un conjunto de parámetros, restricciones y reglas. Debe definir claramente los criterios de convergencia, robustez, escalabilidad, recuperación de errores, etc. También abordamos los problemas de recursos necesarios para que el algoritmo funcione en un nodo práctico como CPU, memoria, etc. Esto forma la lógica central del Protocolo de enrutamiento .

Algoritmo de Dijkstra : un algoritmo descrito por primera vez por Dijkstra que permite a todos los nodos calcular la ruta óptima de sí mismo a todos los demás nodos de una manera eficiente y rápida dada la topología de la red.

Algoritmo de Bellman Ford : un algoritmo más antiguo, más simple que el de Dijkstra, pero que tarda más en converger y es más propenso a errores. Es más simple porque no necesita conocimiento de la topología completa, solo necesita información de conectividad vecina inmediata. Más fácil de entender, codificar y mantener.

Vector de distancia : la métrica o parámetro del gráfico que utiliza el algoritmo de Bellman Ford para hacer es el trabajo, junto con otra información sobre vecinos inmediatos.

Estado del enlace : otro tipo de parámetro del gráfico utilizado por el algoritmo de Dijkstra para hacer su trabajo. Cada nodo encuentra su propio vector de estado de enlace e informa a otros nodos, eventualmente todos los nodos descubren la topología, y cada nodo puede ejecutar el algoritmo de Dijkstra en esta información de red para construir su propia tabla de enrutamiento.

Ahora, lea esto dos o cuatro veces, hacia adelante y hacia atrás, y debería tener una idea más clara sobre cómo los diversos ingredientes se unen para hacer la sopa, que ya está bebiendo y saboreando en este momento , incluso mientras está leyendo esta.

El jefe de Jim quiere un protocolo de enrutamiento en el enrutador de la compañía. Ok, pensó Jim, así que necesito un algoritmo de enrutamiento. ¿Qué tal BellmanFord ? No, eso no parece adecuado, ya que no puede almacenar todos los bordes al mismo tiempo. ¡Ajá! Dijkstra ! Entonces, ¿cómo debo implementar un algoritmo Dijkstr a? Hmm, déjame revisar mi libro de texto de la vieja escuela … Necesito un vector de distancia , pero un montón es mejor … Además, para recopilar la información sobre la red posiblemente enorme, necesito implementar el Protocolo de estado del enlace para intercambiar información de conectividad. Después de calcular el RIB y el FIB , el enrutador debe realizar una tabla de enrutamiento para notar la red … Jim se siente un poco desalentador, ¡Dios! Tantos hezzle! Pero mi jefe me rompería las costillas si lo estropeara … ¡Odio el cálculo de rutas ! ¡Incluso más complicado que Fib onacci!