Enrutamiento del árbol del diccionario
Aunque todo reenvío de paquetes en Internet se basa en la red donde se encuentra el host de destino, en la mayoría de los casos permite indicar una ruta hacia un host específico, lo que se denomina enrutamiento específico del host. El uso de enrutamiento de host específico permite al personal de la red administrar y controlar fácilmente la red, así como probarla.
Los enrutadores también pueden utilizar rutas predeterminadas para reducir el espacio ocupado por la tabla de enrutamiento y el tiempo necesario para buscar en la tabla de enrutamiento.
Cuando el enrutador recibe el datagrama a reenviar, después de obtener la dirección IP del enrutador del siguiente salto de la tabla de enrutamiento, no escribe esta dirección en el datagrama IP, sino que la envía al datagrama. Software de interfaz de red de capa de enlace. El software de interfaz de red convierte la dirección IP del enrutador responsable del siguiente salto en una dirección de hardware (se debe usar ARP), escribe la dirección de hardware en el encabezado de la trama MAC y luego encuentra el enrutador del siguiente salto basado en este hardware. DIRECCIÓN. Se puede ver que al enviar una serie de datagramas, el proceso anterior de buscar en la tabla de enrutamiento, usar ARP para obtener la dirección de hardware y escribir la dirección de hardware en el encabezado de la dirección MAC se repetirá continuamente, lo que resultará en una cierta cantidad de arriba.
Con base en los puntos anteriores, proponemos un algoritmo de reenvío de paquetes:
Lo que debemos enfatizar aquí es que la tabla de enrutamiento no indica la ruta completa desde la red hasta los datos. paquete (es decir, primero a través de qué enrutador, luego a través de qué enrutador, etc.). La tabla de enrutamiento indica que para llegar a una determinada red, primero debe llegar a un determinado enrutador (el siguiente enrutador) y luego, después de llegar al enrutador del siguiente salto, continúe buscando en la tabla de enrutamiento para saber a qué enrutador debe llegar a continuación. Esta búsqueda avanza paso a paso hasta llegar finalmente a la red de destino.
¿Por qué elegir subred?
Para resolver los problemas anteriores, en 1985 se introdujo el campo de número de subred, convirtiendo la dirección IP secundaria en una dirección IP de tercer nivel. Esta práctica se llama subredes.
La idea básica de la creación de subredes es:
Casos de uso de la creación de subredes
Como se muestra en la figura anterior, una empresa tiene una dirección IP de Clase B, y la red La dirección es 145.13.0.0 (el número de red es 145.13), y todos los datagramas con la red de destino 145.13.x.x se enviarán al enrutador R60 en esta red.
Ahora la red está dividida en tres subredes. Suponiendo que el número de subred ocupa 8 bits, entonces el número de host es solo 16-8 = 8 bits. Las tres subredes divididas son 145.13.3.0 y 145.13.7.0. . Después de recibir los datos del enrutador en 145.13.0.0, el enrutador traducirá el datagrama a la subred correspondiente según su dirección de destino.
En definitiva, cuando no hay subred, la dirección IP es una estructura de dos segmentos. Después de la división en subredes, la dirección IP se convierte en una estructura de tres niveles. La creación de subredes solo subdivide el número de host de la dirección IP y no cambia el número de red original de la dirección IP.
Supongamos que un datagrama IP (cuya dirección de destino es 145.13.3.10) ha llegado al enrutador R1, ¿cómo lo reenvía el enrutador a la subred 145.13.3.0?
Sabemos que a partir del encabezado del datagrama IP, no podemos saber si la red conectada al host de origen y al host de destino está dividida en subredes. Esto se debe a que la propia dirección IP de 32 bits y el encabezado del datagrama no contienen ninguna información sobre la subred.
Entonces tenemos que encontrar otra manera y es usar una máscara de subred.
Al realizar una operación AND bit a bit en la máscara de subred de la dirección IP de tercer nivel y la dirección IP de la dirección de destino recibida, la dirección de red se puede obtener inmediatamente y los pasos restantes se dejan al enrutador para el procesamiento de paquetes.
La ventaja de utilizar una máscara de subred es que, independientemente de si la red está dividida en subredes, siempre que la máscara de subred y la dirección IP tengan un AND bit a bit, la dirección de red se puede obtener inmediatamente, de modo que el enrutador puede procesar el paquete entrante. Esto también se puede hacer con los paquetes entrantes.
¿Por qué es necesario utilizar una máscara de subred cuando no se crean subredes? Esto es para facilitar la búsqueda de la tabla de enrutamiento. Ahora Internet estipula que todas las redes deben usar máscaras de subred y la tabla de enrutamiento del enrutador debe tener una columna de máscara de subred. Si la red no está dividida en subredes, la máscara de subred de la red es la máscara de subred predeterminada y la posición 1 en la máscara de subred predeterminada corresponde al campo net-id de la dirección IP. Entonces, si usa la máscara de subred predeterminada y una dirección IP que no está dividida en subredes poco a poco, debería poder obtener la dirección de red para esa dirección IP para saber qué tipo de dirección IP es sin tener que buscar la clase. de la dirección Bit. Obviamente:
La Figura 4-21 muestra las direcciones de red y las correspondientes máscaras de subred predeterminadas para estas tres direcciones IP:
Una máscara de subred es una red o atributos importantes de subred. Después de que RFC950 se convierta en un estándar de Internet, al intercambiar información de enrutamiento con enrutadores vecinos, el enrutador debe indicarle al enrutador vecino la máscara de subred de su propia red (o subred). Para cada entrada en la tabla de enrutamiento del enrutador, además de la dirección de red de destino, también se debe proporcionar la máscara de subred de la red. Si un enrutador está conectado a dos subredes, tiene dos direcciones de red y dos máscaras de subred.
Realización 4-2:
La dirección IP conocida es 141.14.72.24 y la máscara de subred es 255.255.192.0. Busque la dirección de red:
Solución: 255.255.192.0 binario: 11111165438.
ip141.14 72 .24 binario: 11111165438+.
00000000
La operación AND de la dirección IP binaria y la máscara de subred binaria es: 111111165438+.
Es decir, la IP de la red es 141.14.64.0.
En el caso de subredes, se debe cambiar el algoritmo de reenvío de paquetes. Después de usar la división en subredes, la tabla de enrutamiento debe contener el siguiente contenido:
En el caso de la división en subredes, el algoritmo del enrutador para reenviar paquetes de datos es el siguiente:
Ejemplo 4-4:
La Figura 4-24 tiene tres subredes, dos enrutadores y una tabla de enrutamiento parcial del enrutador R1. Ahora, el host de origen H1 envía un paquete al host de destino H2. Intente analizar el proceso en el que R1 verifica la tabla de enrutamiento después de recibir el paquete de datos enviado de H1 a H2.
Solución:
La dirección de destino del paquete de datos enviado por el host de origen H1 al host de destino H2 es 128.30.33.138.
El host de origen H1 y la máscara de subred de esta subred son 255.255.128 y la dirección IP de H2 es 128 para obtener 128. Esto indica que el host H2 y el host H1 no están en el mismo segmento de red, por lo que H1 no puede enviar paquetes directamente a H2. Debe entregarse a la ruta predeterminada R1 en la subred y reenviarse por R1.
Después de recibir este paquete, la tabla de enrutamiento coincide y se busca fila por fila en la tabla de enrutamiento.
Primero observe la primera fila de la tabla de enrutamiento de R1: use la máscara de subred 255.255.255.128 en esta fila para interactuar con la dirección H2IP para obtener 128.30.33.128, y luego use esta fila para crear la segunda fila. de la misma manera se encontró que salió la fase. Para que no tengas que seguir buscando. R1 entrega paquetes directamente desde la interfaz 1 al host H2 (ambos están en la misma subred).
Se pueden utilizar varias máscaras de subred diferentes en redes en subredes. El uso de VLSM (máscara de subred de longitud variable) puede mejorar aún más la utilización de los recursos de direcciones IP. Basado en VLSM, se estudió más a fondo el método de compilación sin clasificación. Su nombre oficial es Enrutamiento entre dominios sin clases (CIDR).
CIDR tiene dos características principales:
CIDR también utiliza la notación de barra diagonal, es decir, agrega una barra diagonal / después de la dirección IP y luego escribe el número de bits ocupados por la red. prefijo. Por ejemplo, la dirección IP 128.14.35.7/20 es una dirección en la caché de direcciones CIDR, donde los primeros 20 bits son el prefijo de la red y los siguientes 14 bits son los bits del host. Como se muestra:
Por supuesto, las direcciones donde todos los números de host son 0 y todas las direcciones son 1 generalmente no se utilizan. Este bloque de direcciones * * * tiene 2 12 direcciones. Podemos usar la dirección más pequeña y el prefijo de red en el bloque de direcciones para indicar que esta dirección es rápida. Por ejemplo, el bloque de direcciones anterior podría escribirse como 128.14.32.0/20.
Para que el enrutamiento sea más conveniente, CIDR utiliza una máscara de dirección de 32 bits. La máscara de dirección consta de una cadena de unos y una cadena de ceros, donde el número de unos es el número de prefijos de red. Aunque CIDR no utiliza subredes, la máscara de dirección utilizada por CIDR aún puede denominarse máscara de subred por algunas razones. En notación de barra, el número después de la barra es el número 1. Por ejemplo, la máscara de dirección rápida para una dirección /20 es 111111165438. En notación de barra, el número después de la barra es el número 1 en la máscara de dirección.
Otra ventaja del símbolo de barra diagonal es que no solo representa una dirección IP, sino que también proporciona otra información importante. Tomemos el siguiente ejemplo:
Por ejemplo, la dirección 192.199.170.82/27 no solo significa que la dirección IP es 192.199.170.82, sino que también significa que el prefijo de red de esta dirección es de 27 bits ( los 5 bits restantes son el número de host), por lo que esta dirección es rápida. Mediante cálculo, también se puede concluir que la dirección mínima de este bloque de direcciones es 192.199.170.64 y la dirección máxima es 192.6438+099.438+070.95. El método de cálculo específico es el siguiente: descubra qué byte en la dirección aparece en la unión de 1 y 0 en la máscara de dirección. Ahora es el cuarto byte, así que use la representación binaria de este byte como decimal 82:82. El número binario es 01010010, tome los primeros tres dígitos (estos tres más los primeros tres dígitos) y luego escriba los últimos cinco dígitos como 0, es decir, 0100000 para encontrar la dirección mínima con una dirección rápida de 192.199.170.64, y luego configure el último cinco dígitos a 1, es decir, 0106544. Igual a 95 en decimal, esto encontrará la dirección más grande en el bloque de direcciones: 192.199.438+070.95.
Debido a que hay muchas direcciones en el bloque de direcciones CICR, el bloque de direcciones CIDR se utiliza para encontrar la red de destino en la tabla de enrutamiento. Este tipo de agregación de direcciones, a menudo denominada agregación de rutas, permite que una sola entrada en la tabla de enrutamiento represente muchas rutas a la dirección clasificada tradicional original. La agregación de rutas, también conocida como supernetting, ayuda a reducir el intercambio de información de enrutamiento entre enrutadores, mejorando así el rendimiento de toda Internet.
El número de direcciones en cada bloque de direcciones CIDR debe ser una potencia entera de 2. Aquí es donde se construyen las superredes.
Cuanto más corto sea el prefijo de red, más direcciones contiene en el bloque de direcciones y, en la estructura de tres niveles de direcciones IP, la subred hace que el prefijo de red sea más largo.
Cuando se utiliza CIDR, debido a la notación del prefijo de red, la dirección IP consta del prefijo de red y el número de host, por lo que los elementos de la tabla de enrutamiento deben cambiarse en consecuencia. En este punto, cada entrada consta de un prefijo de red y una dirección de siguiente salto, pero es posible que obtenga varias coincidencias al buscar en la tabla de enrutamiento, lo que plantea la pregunta: ¿qué ruta debemos elegir entre estas coincidencias?
La respuesta correcta es: la ruta con el prefijo de red más largo debe seleccionarse de los resultados de la coincidencia. Esto se llama coincidencia de prefijo largo, porque cuanto más largo es el prefijo de red, más pequeño es el bloque de direcciones, por lo que la ruta. es más específico y la coincidencia de prefijo más larga también se denomina coincidencia más larga o mejor coincidencia.
Con CIDR, encontrar la coincidencia de prefijo más larga es muy complicado. Cuando la cantidad de entradas en la tabla de enrutamiento es grande, cómo reducir el tiempo promedio de búsqueda en la tabla de enrutamiento se convierte en una cuestión muy importante. Lo que se usa comúnmente ahora es el trie binario, que es un árbol con una estructura especial. Los valores de bits de izquierda a derecha en la dirección IP determinan la ruta que se extiende desde el nodo raíz hasta las capas inferiores. Cada ruta en el trie binario representa la tabla de enrutamiento.
La Figura 4-26 ilustra la estructura de una pista de árbol binario. En la figura se dan cinco direcciones IP. Para simplificar la estructura de la pista binaria, primero podemos encontrar el prefijo único correspondiente a cada dirección IP.
Los llamados prefijos únicos son únicos entre todas las direcciones IP de la tabla, por lo que podemos utilizar estos prefijos únicos para construir pistas binarias. Al buscar, siempre que coincida con un prefijo único.
El nodo raíz del árbol binario tiene una profundidad máxima de 32 niveles de arriba a abajo, y cada nivel corresponde a un bit de la dirección IP.