¿Qué es el enrutamiento? El llamado proceso de enrutamiento es el proceso de recibir paquetes de datos desde la interfaz entrante, procesarlos por la CPU (buscar en la tabla de enrutamiento, reconstruir el marco de la segunda capa) y colocar el paquete "nuevo" en la interfaz correspondiente. En realidad, este proceso se puede transformar en el siguiente modelo: un automóvil (paquete de datos) llega a una intersección. Tenga en cuenta que en este momento tiene un destino (dirección IP de destino), por ejemplo, este automóvil quiere ir a Beijing. Cuando llegamos a esta intersección, vimos varios carteles que decían "Beijing, Shijiazhuang, Tangshan". En este momento, el conductor (CPU) debe elegir la intersección (interfaz de salida) hacia Beijing, y eso es todo. Yendo más allá, ¿cómo se realiza la consulta de enrutamiento a nivel micro? El nivel micro mencionado aquí no analiza los diversos algoritmos de enrutamiento y reenvío, sino cómo el enrutador busca la tabla de enrutamiento. Primero veamos una topología simple.
Hay cuatro enrutadores, a saber, POOH, TIGGER, PIDET y RABBIT. Lo que se muestra debajo de esta topología es la tabla de enrutamiento de POOH. Puede ver que ahora está disponible. En POOH se encontraron cinco segmentos de red, lo que significa que ahora toda la red está interconectada.
Por ejemplo, si desea llegar al segmento de red 10.1.10.0, la CPU comienza a buscar en la tabla de enrutamiento y encuentra una entrada de enrutamiento que llega desde 10.1.10.0 hasta 192.168.1.194, y esta dirección es la La dirección más reciente del enrutador Piglet. El puerto de la izquierda, entonces, ¿cómo llega este 192.168.1.194? Busque nuevamente en la tabla de enrutamiento y encuentre un segmento de red 192.168.1.192, que contiene la dirección 192.168.1.194, y llegar a él es a través de 192.168.1.66. Entonces, ¿cómo llegar a 192.168.1.66? Aún tienes que buscar la tabla de enrutamiento. 192.168.1.194
Este proceso se lleva a cabo una y otra vez, formando un proceso recursivo hasta que el enrutador encuentra la ubicación del segmento de red conectado directamente. Según el ejemplo anterior, encontrará la entrada 192.168. 1.64.
Bien, este es el proceso de consulta recursiva del enrutador.
Pero, ¿para qué sirve un método de consulta de este tipo? ¿Lo has considerado?
Primero volvamos a una pregunta más esencial: ¿cuáles son las funciones de los enrutadores y conmutadores? De hecho, no tiene más que dos funciones: una es considerar cómo entregar correctamente el paquete de datos a la dirección de destino y la otra es considerar cómo entregarlo más rápido. En cuanto a otras diversas tecnologías de seguridad, QoS, etc., todas sirven a estos dos objetivos finales. Dado que este artículo no involucra conmutadores, no los mencionaré aquí solo. Los ingenieros han hecho esfuerzos incansables para que los enrutadores completen mejor estas dos tareas. el propósito del reenvío rápido de paquetes.
Echemos un vistazo primero desde una perspectiva histórica.
El primero fue el "cambio de proceso".
Este tipo de cambio es muy tradicional. Cada vez que el enrutador recibe un paquete, buscará en la tabla de enrutamiento a través de la CPU y lo enviará al puerto de salida. Esto se hará cada vez que llegue un paquete. No hay ningún problema con este método, pero es muy lento y obviamente ineficaz.
Para resolver este problema nació el "intercambio rápido".
Aquí hay una premisa, y también es un requisito previo para el desarrollo del "intercambio rápido", es decir , nuestros datos Generalmente se transmiten en forma de flujo. La palabra flujo es muy vívida, que es una serie de paquetes de datos que van al mismo lugar. Cuando los ingenieros descubrieron esta regla, nació la idea de la "conmutación rápida". La llamada conmutación rápida consiste en analizar primero el primer paquete de cada flujo, consultar de acuerdo con el método de conmutación del proceso y luego enviar los resultados. consulta saliente al mismo tiempo. Almacenado en un caché separado. Cuando los paquetes restantes de este flujo ingresan a la estación, el enrutador no verifica la tabla de enrutamiento sino la caché. Esto ahorra recursos de la CPU y reenvía los paquetes directamente. Esto no sólo mejora la velocidad de reenvío de paquetes, sino que también mejora la eficiencia del uso de la CPU.
El último es CEF
El cambio rápido de Cisco tiene demasiado contenido para hablar. Es muy diferente de los dos primeros métodos de cambio. Diferencias en las formas de cambio.
El cambio de proceso consiste en enrutar el primer paquete cuando llega un nuevo flujo de datos y luego almacenar en caché la información para acelerar el reenvío. ¡Y el enfoque de CEF es aún más sorprendente!
Ni siquiera necesitas verificar el primer paquete, ¡simplemente realiza la operación de caché directamente! Y se almacena en caché antes del paquete.
Así es la famosa mesa del FIB.
Cuando entra un paquete de datos, se consulta directamente la tabla FIB en lugar de la tabla de enrutamiento, lo que puede aumentar considerablemente la velocidad de reenvío.
Tal vez tenga preguntas. Al principio tenía preguntas. Originalmente tenía una buena tabla de enrutamiento, pero ahora he establecido una tabla FIB. Cuando llega un paquete de datos, ¿no necesito mirar todavía? ¿Está arriba? ¿Qué hace esto? Evidentemente, los motivos no figuran en los libros generales actuales y no me dieron una explicación razonable. Sin embargo, escribiré un artículo aparte para describir este tema y la discusión especial sobre CEF la próxima semana para que entiendas CEF.
¡Ahora respetemos el hecho de que CEF es más rápido!
He dedicado mucho espacio a escribir sobre "cambio de enrutador" que parece no tener nada que ver con el tema de este artículo. Lo que quiero decirles es "acelerar el cambio y mantenerse alejado del". tabla de enrutamiento", menor será el número de consultas de enrutamiento de la CPU. ¡Cuanto mayor sea la eficiencia del reenvío!
Ahora volvamos al tema de este artículo "Consulta de enrutamiento recursivo", ¡muy confuso! Incluso verificar la tabla de enrutamiento una vez es demasiado para otros, ¡pero usaste consultas recursivas para verificar la tabla de enrutamiento tantas veces!
¡De hecho, esta es la mayor desventaja de las consultas recursivas! También es una cuestión que debemos considerar a la hora de diseñar la red. Pero piénselo detenidamente, dado que este es un método extremadamente "infructuoso", ¿por qué todavía se permite que exista? ¿Para qué es esto?
¡Ventajas de la consulta recursiva! ¡Ventajas incomparables!
Echemos un vistazo a esta topología y prestemos atención al diseño del enrutamiento estático de SANDERZ.
Este es un caso de uso típico de enrutamiento recursivo, puedes verlo más de cerca.
Aquí primero diseñamos un escenario, a juzgar por la información de enrutamiento mostrada, todos los datos que llegan al segmento de red correcto deben pasar a través del enrutador HEFFALUMP. En este momento, si HEFFALUMP está roto, debe pasar a través de él. el enrutador HEFFALUMP para enrutar.
En este momento, el administrador de red sólo necesita ajustar una ruta.
Sanderz(config)# ruta ip 10.87.14.0 255.255.255.0 10.23.5.95
Sanderz(config)# sin ruta ip 10.87.14.0 255.255.255.0 10.23.5.20
Esto completa la tarea.
¿Y qué pasa si no se utiliza el enrutamiento recursivo? Luego, es necesario restablecer todas las rutas de la imagen. Si seguimos el ejemplo de la imagen de arriba, necesitamos reescribir 26 entradas de ruta. Si cree que este número es soportable, ¿qué pasa si hay 100 o 400 segmentos de red? ¡Tienes que reescribir 200. 800 rutas! Esto es mucho trabajo, ¿todavía puedes soportarlo? También hay 400 segmentos de red y el enrutamiento recursivo sigue siendo el mismo que los dos comandos anteriores.
Tome prestado y transforme el concepto de complejidad temporal en el algoritmo: la complejidad temporal de no usar enrutamiento recursivo es O (n), ¡pero la complejidad temporal de usar enrutamiento recursivo es O (1)!
¡Esta es la mayor ventaja del enrutamiento recursivo!
Frente a las ventajas y desventajas del enrutamiento recursivo, es realmente difícil de abordar y debe considerarse. (Esta es la declaración de "ROUTING TCP/IP VOL.1")
Pero creo que no es tan "difícil"
Desde la perspectiva de las aplicaciones de red reales, puede ahora La topología de la red que utiliza el enrutamiento estático no será muy grande en comparación con la potencia de procesamiento de la CPU del enrutador y no afectará la velocidad. Por lo tanto, para facilitar la administración, podemos usar recursivo de manera segura. enrutamiento.
Sin embargo, mi declaración no incluye la situación en la que se utiliza enrutamiento estático entre dos grandes redes de campus (red educativa). En tal situación, es mejor usar la ruta más común.
Después de analizar la situación específica, todos deben estar familiarizados con las ventajas y desventajas del enrutamiento recursivo y poder elegir entre ellas.