[Programación de red·Capa de red] Protocolo IP


Los estudiantes que necesitan servidores en la nube y otros productos en la nube para aprender Linux pueden pasar a / --> Tencent Cloud <-- / --> Alibaba Cloud <-- / --> Huawei Cloud <-- / sitio web oficial, los servidores en la nube livianos son de bajo costo a 112 yuanes al año, y los nuevos usuarios pueden disfrutar de descuentos ultrabajos en su primer pedido. 


Tabla de contenido

1. El concepto de protocolo IP.

2. Cabecera del protocolo IP

1. Longitud de cuatro cabezas.

2. Longitud total de 16 bits (desempaquetada)

3. Protocolo de 8 bits (uso separado)

4. Suma de comprobación del encabezado de 16 bits

5. Tiempo de supervivencia de 8 bits

6. IP de origen de 32 bits e IP de destino de 32 bits

7. Versión de 4 bits/tipo de servicio de 8 bits

8. Identificación de 16 bits

9. marca de 3 dígitos

Desplazamiento de corte de 10 y 13 bits

3. División del segmento de red del protocolo IP.

1. ¿Por qué es necesaria la subred?

2. Reglas de segmentación de la red.

2.1 Antiguo esquema de división de números de red y números de host (compatible con el nuevo esquema)

2.2 Nuevo esquema de división de números de red y números de host CIDR

4. Dirección IP especial

5. Resuelva el límite en la cantidad de direcciones IP

6. IP privada e IP pública

6.1NAT

6.2PNAT

6.3 Defectos de NAT

7. Enrutamiento y tablas de enrutamiento.

1. Enrutamiento

2. tabla de enrutamiento

3. Algoritmo de generación de tabla de enrutamiento


1. El concepto de protocolo IP.

IP: la dirección de un host de destino en la red de destino

Anfitrión: un dispositivo equipado con una dirección IP, pero no capaz de controlar el enrutamiento; Enrutador: equipado con una dirección IP, pero capaz de controlar el enrutamiento; Nodo: el nombre colectivo de un host y un enrutador;

La función de la dirección IP: localizar el host y enviar de manera confiable el datagrama desde el host A a través de la red al host B (los datos tienen una alta probabilidad de enviarse con éxito. Si el envío no tiene éxito, las diversas estrategias de TCP permiten que IP realice la transmisión de datos nuevamente. La combinación de TCP e IP garantiza una comunicación de red confiable)

2. Cabecera del protocolo IP

1. Longitud de cuatro cabezas.

Al igual que el protocolo TCP, la longitud del encabezado de cuatro bits del protocolo IP representa la longitud total del mensaje = longitud del encabezado de 4 bits * 4 bytes (el rango de valores de los bits de 4 bits es 0-15, y la longitud del encabezado es de al menos 20 bytes, por lo que la longitud total del mensaje varía entre 20 y 60 bytes)

Mirando el mensaje en la imagen de arriba, hay un mensaje de 20 bytes a la derecha. Esta es una IP estándar. Para una IP estándar, los datos binarios de la longitud del encabezado de cuatro dígitos son 0101 (5 * 4 es igual a 20)

2. Longitud total de 16 bits (desempaquetada)

La longitud total de 16 bits del protocolo IP incluye el encabezado y la carga útil, por lo que puede obtener la longitud de la carga útil a través de la longitud total de 16 bits: encabezado (para la capa de aplicación, su carga útil es el mensaje proporcionado por la capa de transporte )

3. Protocolo de 8 bits (uso separado)

El número de protocolo de la capa de transporte está escrito en el protocolo de 8 bits, de modo que cuando se entrega hacia arriba, el protocolo IP sabe a qué protocolo de la capa superior quiere entregar la carga útil.

4. Suma de comprobación del encabezado de 16 bits

Si la verificación falla, el mensaje se descartará directamente, TCP tiene un mecanismo de retransmisión de tiempo de espera y lo reenviará a IP.

5. Tiempo de supervivencia de 8 bits

Durante la transmisión de mensajes a través de la red, una vez que el mensaje se envía desde el host, ya no está bajo el control del host. El mensaje se pasará entre enrutadores y pueden ocurrir problemas como el reenvío de bucle. Si al enrutador no se le da el derecho de descartar el mensaje, el mensaje se reenviará en un bucle, ocupando recursos de la red en vano.

La vida útil de 8 bits del protocolo IP especifica el número máximo de saltos para que este datagrama llegue a su destino, que generalmente es 64. (Cada vez que pasa una ruta, el TTL se reduce y cuando llega a 0, el paquete se descarta directamente)

6. IP de origen de 32 bits e IP de destino de 32 bits

El número de puerto proporcionado por la capa de aplicación es para la capa de transporte y la IP proporcionada es para el protocolo IP. levemente.

7. Versión de 4 bits/tipo de servicio de 8 bits

La versión de 4 dígitos se completa con 4, que representa ipv4 (ipv6 e ipv4 son incompatibles)

Tipo de servicio de 8 bits: campo de prioridad de 3 bits (obsoleto), campo TOS de 4 bits y campo reservado de 1 bit (debe establecerse en 0). Los TOS de 4 dígitos representan respectivamente: retraso mínimo, rendimiento máximo, confiabilidad máxima y costo mínimo. Estos cuatro entran en conflicto entre sí y solo se puede seleccionar uno. Para aplicaciones como ssh/telnet, el retraso mínimo es más importante; para programas como ftp, el rendimiento máximo es más importante.

8. Identificación de 16 bits

Identificación de 16 bits (id): identifica de forma única el mensaje enviado por el host. Si el mensaje IP es mayor que la unidad de transmisión máxima de la capa de enlace de datos, lo que hace que la capa IP se fragmente, entonces la ID en cada fragmento será lo mismo.

9. marca de 3 dígitos

Campo de bandera de 3 dígitos: el primer bit está reservado (reservado significa no utilizado todavía, reservado). El segundo bit es 1, lo que significa que la fragmentación está prohibida. En este momento, si la longitud del mensaje excede la MTU, el módulo IP descartará el mensaje. El tercer bit significa "más fragmentos". Si está fragmentado, el último fragmento es establecido en 0, otros son 1. Si el bit del fragmento es 1, significa que el fragmento no es el último fragmento de todo el mensaje.

Para el indicador de prohibición de fragmentación, si se establece en 1, se prohíbe la fragmentación. Cuando el paquete pasa a través de un enrutador en la carretera, si la MTU máxima del enrutador es menor que la carga útil del paquete, el enrutador en la carretera no puede fragmentarlo porque el indicador de prohibición de fragmentación está establecido en 1 y el paquete será descartado. La capa de transporte expirará el tiempo de espera, retransmitirá el mensaje y seleccionará una ruta de enrutamiento que pueda satisfacer la transmisión de datos. (Encontrar el camino hacia un mayor rendimiento). Entonces, ¿no sería bueno establecer la MTU máxima de todos los enrutadores en 1500 bytes? De hecho, los enrutadores con una MTU máxima más pequeña son más adecuados para el paso de cargas útiles de pequeña capacidad y la velocidad es más rápida.

Desplazamiento de corte de 10 y 13 bits

Desplazamiento de fragmentación de 13 bits (desplazamiento de marco): es el desplazamiento del fragmento en relación con el comienzo del mensaje IP original. De hecho, indica dónde está el fragmento actual en el mensaje original. El número real de bytes del desplazamiento es Este valor se obtiene mediante * 8. Por lo tanto, excepto el último mensaje, la longitud de los demás mensajes debe ser un múltiplo entero de 8 (de lo contrario, los mensajes no serán continuos).

El protocolo de trama MAC de la capa de enlace de datos estipula que su carga útil no puede exceder los 1500 bytes (MTU (unidad de transmisión máxima, que puede modificarse)). Este límite de 1500 bytes incluye el encabezado IP + la carga útil en el mensaje IP.

El tamaño del paquete de datos solo puede ser controlado por la capa de transporte, pero a veces aún excede los 1500 bytes, lo que solo puede resolverse fragmentando y ensamblando el protocolo IP. La capa IP del extremo emisor se fragmenta y cada fragmento tendrá un Encabezado IP: la capa IP final está ensamblada (el límite de bytes hace que la capa IP se fragmente y se ensamble, lo cual no es bueno, porque la fragmentación aumentará la probabilidad de pérdida de paquetes ). A las tramas TCP y MAC no les importa la fragmentación de IP ni el ensamblaje de paquetes de datos, este es solo el comportamiento de la capa IP misma.

Fragmentación: si Más fragmentos es 1, significa que el mensaje ha sido fragmentado. Si más fragmentos son 0 y el desplazamiento del fragmento es igual a 0, significa que no hay fragmentación y viceversa.

Ensamblaje: simplemente ordene los paquetes IP fragmentados según el desplazamiento de la foto en orden ascendente.

Cómo garantizar un ensamblaje correcto: el protocolo IP tiene una suma de verificación de encabezado de 16 bits y el protocolo TCP también tiene una suma de verificación.

Retransmisión de pérdida de paquetes: si una determinada parte del paquete se pierde debido a la fragmentación, el conjunto de empalme fallará. Entonces el par necesita volver a emitir. El mecanismo de reemisión solo está disponible en la capa TCP. IP no tiene la función de reemisión. Sin embargo, para TCP, a TCP no le importa cómo se fragmenta IP y qué parte se pierde. No importa , TCP solo reenviará un mensaje completo para la capa IP.

3. División del segmento de red del protocolo IP.

La dirección IP tiene un total de 32 bits y se divide en dos partes, el número de red y el número de host.

Número de red: asegúrese de que los dos segmentos de red conectados entre sí tengan identidades diferentes (al igual que las diferentes universidades de la escuela tienen números diferentes)

Número de host: en el mismo segmento de red, los hosts tienen el mismo número de red, pero deben tener números de host diferentes;

1. ¿Por qué es necesaria la subred?

Cada host en Internet debe pertenecer a una determinada subred, esto es para facilitar la ubicación de este host. El host A envía datos al host B. Cuando el datagrama pasa a través del enrutador, se seleccionará el número de red correcto, excluyendo instantáneamente una gran cantidad de direcciones IP, lo que mejora en gran medida la eficiencia de la búsqueda.

2. Reglas de segmentación de la red.

1. El reenvío de datos entre diferentes segmentos de red depende de enrutadores, por lo que los enrutadores son dispositivos que pertenecen a múltiples segmentos de red. El enrutador también es un host y tiene una dirección IP del segmento de red actual en múltiples segmentos de red. Normalmente, la dirección IP de subred del enrutador es el identificador del segmento de red.1 (puerto LAN)

2. En una subred, el dispositivo IP en la subred de administración suele ser un enrutador.

3. Existe una tecnología llamada DHCP, que puede asignar automáticamente direcciones IP a nuevos nodos host en la subred, evitando el inconveniente de la administración manual de IP. Los enrutadores generales tienen función DHCP, por lo que el enrutador también puede considerarse como un servidor DHCP.

2.1 Antiguo esquema de división de números de red y números de host (compatible con el nuevo esquema)

Todas las direcciones IP se dividen en cinco categorías:

Clase A 0.0.0.0 a 127.255.255.255

Clase B 128.0.0.0 a 191.255.255.255

Clase C 192.0.0.0 a 223.255.255.255

Clase D 224.0.0.0 a 239.255.255.255

Clase E 240.0.0.0 a 247.255.255.255

Este método de división no es razonable. Por ejemplo, para una dirección IP de Clase A, el número de red solo tiene 7 dígitos, pero el número de host tiene 24 dígitos. Hay muy pocos escenarios en los que haya tantos hosts en una subred, lo que provoca que la Clase A Las direcciones son un gran desperdicio; las direcciones de Clase B son más razonables, lo que da como resultado que la mayoría de las organizaciones soliciten direcciones de Clase B, lo que hace que las direcciones de Clase B se asignen temprano.

En respuesta a este esquema de división irrazonable, la gente ha propuesto un nuevo esquema de división CIDR (Classless Interdomain Routing)

2.2 Nuevo esquema de división de números de red y números de host CIDR

Introduzca una máscara de subred adicional para distinguir el número de red y el número de host:

La máscara de subred también es un entero positivo de 32 bits y suele terminar con una cadena de "0";

Realice una operación "Y bit a bit" en la dirección IP y la máscara de subred, y el resultado es el número de red;

La división de números de red y números de host no tiene nada que ver con si la dirección IP es Clase A, Clase B o Clase C;

Nota: El número de red está determinado por la posición del bit más bajo del binario 1 de la máscara de subred. Los dígitos que siguen al dígito binario más bajo de la máscara de subred, 1, pertenecen al número de host.

Ejemplo 1:

Realice una operación AND bit a bit en los números binarios de la dirección IP y la máscara de subred para obtener el número de red. El número de host es 0-255 (0000 0000-1111 1111), pero los dos números de host 0 y 255 no se utilizarán porque 0 representa el número de red y 255 representa la dirección de transmisión.

Ejemplo 2: 

4. Dirección IP especial

1. Configure todas las direcciones de host en la dirección IP en 0, que se convierte en el número de red que representa esta LAN;

2. Establezca todas las direcciones de host en la dirección IP en 1, que se convierte en una dirección de transmisión, utilizada para enviar paquetes de datos a todos los hosts conectados entre sí en el mismo enlace;

3. La dirección IP 127.* se utiliza para las pruebas de bucle local, generalmente 127.0.0.1

5. Resuelva el límite en la cantidad de direcciones IP

Las direcciones IP solo tienen 32 bits. Debido a la existencia de algunas direcciones IP de propósito especial, las direcciones IP disponibles son mucho menos de 4,29 mil millones. Sin embargo, el protocolo TCP/IP estipula que cada host necesita una dirección IP (en realidad, cada red La tarjeta debe configurarse con una o más IP), por lo que la dirección IP está lejos de ser suficiente. Aunque CIDR alivia hasta cierto punto el problema de la baja utilización de IP del antiguo estándar, el número total de IP no ha aumentado.

Utilice los siguientes métodos para resolver el problema de direcciones IP insuficientes:

1. Asignación dinámica de direcciones IP: solo asigne direcciones IP a dispositivos conectados a la red. Por lo tanto, es posible que los dispositivos con la misma dirección MAC no necesariamente obtengan la misma dirección IP cada vez que se conectan a Internet;

2. tecnología NAT

3. IPv6: IPv6 no es una simple versión mejorada de IPv4. Estos son dos protocolos no relacionados y no son compatibles entre sí; IPv6 utiliza 16 bytes y 128 bits para representar una dirección IP; sin embargo, IPv6 aún no es popular;

6. IP privada e IP pública

Si una organización establece una LAN internamente, la dirección IP solo se usa para la comunicación dentro de la LAN y no está conectada directamente a Internet. En teoría, se puede usar cualquier dirección IP, pero RFC 1918 estipula direcciones IP privadas para establecer una LAN.

1. 10.*, los primeros 8 dígitos son el número de red, un total de 16,777,216 direcciones (utilizadas por enrutadores de nivel empresarial)

2. 172.16 a 172.31, los primeros 12 dígitos son el número de red, un total de 1.048.576 direcciones (utilizadas por enrutadores de nivel empresarial)

3. 192.168.*, los primeros 16 dígitos son el número de red, un total de 65,536 direcciones (utilizadas por enrutadores domésticos)

Las incluidas en este rango pasan a ser IP privadas, y el resto se denominan IP globales (o IP públicas)

El papel del enrutador:

1. Reenvío de paquetes de datos

2. Función DHCP, configuración de una subred (como configurar una red inalámbrica. Nota: LAN es una IP de intranet)

3. Función NAT

6.1NAT

1. El segundo punto mencionó que los enrutadores pueden construir subredes. Para los enrutadores domésticos, la subred construida contiene múltiples hosts. Para los enrutadores de operador, la subred construida contiene múltiples enrutadores domésticos. Cuando enviamos datos desde el host, los datos no están necesariamente en la red pública, sino que también pueden estar en la subred del operador, y el paquete de datos aún puede estar en el entorno de intranet.

2. El enrutador estará equipado con al menos dos IP, una de las cuales es la IP de la subred, también llamada IP del puerto LAN, que corresponde a la subred construida por el enrutador, la otra IP es la IP del puerto WAN, que es la IP externa Sí, está conectado al enrutador de nivel superior. El puerto WAN del enrutador del operador más externo está conectado a la IP pública.

3. Diferentes enrutadores tienen la misma IP de subred (generalmente 192.168.1.1). Las direcciones IP del host dentro de la misma subred no se pueden repetir, pero sí se pueden repetir las direcciones IP entre diferentes subredes.

4. Cuando la red interna IP192.168.1.201 envía datos a la red pública IP122.77.241.3, la subred descubre que la IP de destino no pertenece al segmento de red actual y entregará el paquete de datos al enrutador, permitiendo El enrutador debe proceder capa por capa, buscar la entrega y finalmente llegar a la IP de destino. Según el tercer punto, si el servidor con la IP de destino obtiene la IP de la intranet, no puede devolverla tocando el cable de red. Debido a que esta IP de la intranet puede existir en varias intranets, requiere que el host entregue el paquete de datos al enrutador Reemplace la IP paso a paso con la IP del puerto WAN del enrutador. Esta tecnología de sustitución del puerto WAN se denomina NAT (Network Address Translation) .

En la LAN, hay varios hosts que acceden al mismo servidor de red externo. En los datos devueltos por el servidor, el número de red de destino es el mismo. Entonces, ¿cómo determina el enrutador NAT a qué host de LAN reenviar este paquete de datos? incluso ser Diferentes procesos de cliente en un host en la LAN inician la transmisión de datos al extremo remoto a través de diferentes números de puerto de cliente. Para enviar los paquetes correctos al proceso correcto, el enrutador NAT necesita usar NAPT para resolver este problema, utilizando el formulario de puerto IP+ para establecer la asociación.

6.2PNAT

 El enrutador NAT mantiene una tabla de conversión K/V. Por ejemplo, la dirección de origen es 10.0.0.11:1025 y la dirección de destino es 163.221.120.9:80. Después de la conversión del puerto WAN del enrutador NAT, la dirección de destino permanece sin cambios y la dirección de origen se reemplaza por 202.244.174.37:1025.

Hay otro conjunto de direcciones de origen y direcciones de destino en la figura. Al pasar por el enrutador NAT, la IP del puerto WAN se reemplazará con 202.244.174.37. Para distinguir, se utilizarán diferentes números de puerto para establecer la relación de mapeo.

Por lo tanto, la dirección de origen + la dirección de destino antes de la conversión y la dirección de origen y la dirección de destino después de la conversión forman una tabla de mapeo que es un valor clave entre sí. Esta tabla se llama tabla de conversión NAT. Esta tabla de conversión se puede consultar en ambas direcciones.

6.3 Defectos de NAT

No se puede establecer conexión desde NAT externa al servidor interno;

La generación y destrucción de tablas de traducción requiere gastos generales adicionales;

Una vez que el dispositivo NAT se vuelve anormal durante el proceso de comunicación, todas las conexiones TCP se desconectarán incluso si hay una copia de seguridad en caliente.

7. Enrutamiento y tablas de enrutamiento.

1. Enrutamiento

El proceso de enrutamiento es un proceso de "pedir direcciones" paso a paso.

El llamado "un salto" es un intervalo en la capa de enlace de datos. Específicamente, en Ethernet, se refiere al intervalo de transmisión de tramas desde la dirección MAC de origen a la dirección MAC de destino.

El proceso de transmisión de paquetes de datos IP también es el mismo que pedir direcciones:

1. Cuando el paquete de datos IP llega al enrutador, el enrutador primero verificará la IP de destino;

2. El enrutador decide si el paquete de datos se puede enviar directamente al host de destino o si debe enviarse al siguiente enrutador. Repita por turnos hasta alcanzar la dirección IP de destino (si un host no puede encontrar una puerta de enlace disponible, enviará el paquete de datos a la puerta de enlace designada predeterminada y esta puerta de enlace procesará el paquete de datos. La puerta de enlace utilizada por el host ahora generalmente se refiere a la puerta de enlace predeterminada).

3. Utilice la tabla de enrutamiento para determinar dónde se debe enviar el paquete de datos.

2. tabla de enrutamiento

Utilice el comando de ruta para ver la tabla de enrutamiento de la máquina Linux:

[jly@VM-4-11-centos linux-code]$ route
Kernel IP routing table
目标网络			下一跳(网关)	子网掩码		   使用状态					哪个接口
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 eth0 //默认网关
10.0.4.0        0.0.0.0         255.255.252.0   U     0      0        0 eth0
link-local      0.0.0.0         255.255.0.0     U     1002   0        0 eth0

[jly@VM-4-11-centos linux-code]$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.4.11  netmask 255.255.252.0  broadcast 10.0.7.255
        inet6 fe80::5054:ff:fe9c:67a2  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:9c:67:a2  txqueuelen 1000  (Ethernet)
        RX packets 171933080  bytes 33378182758 (31.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 165679727  bytes 28636998057 (26.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12503288  bytes 1870189412 (1.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12503288  bytes 1870189412 (1.7 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

En este momento hay un destino IP10.0.4.0

1. Recorre la tabla de enrutamiento.

2. La IP de destino y la máscara de subred configuradas en la tabla de enrutamiento determinan la red de destino a la que está destinado el paquete de datos.

3. Compare los resultados de y con la red de destino (Destino)

4. Busque la red de destino en el enrutador. Esta red de destino es el destino del siguiente salto.

En este momento existe otro destino IP202.10.1.2

1. Repita los pasos anteriores y descubra que no hay ninguna red de destino en la tabla de enrutamiento.

2. Luego, el destino del siguiente salto del enrutador es la puerta de enlace predeterminada configurada en el enrutador.

3. Enviar mensajes a través de la interfaz de Iface

Nota: Los números de red de los datagramas ubicados en diferentes enrutadores son diferentes. La máscara de subred es cada vez más larga, lo que indica que la red de destino del datagrama se vuelve cada vez más específica.

3. Algoritmo de generación de tabla de enrutamiento

La tabla de enrutamiento puede ser mantenida manualmente por el administrador de la red (enrutamiento estático) o generada automáticamente mediante algunos algoritmos (enrutamiento dinámico), como el algoritmo de vector de distancia, el algoritmo LS, el algoritmo de Dijkstra, etc.

Supongo que te gusta

Origin blog.csdn.net/gfdxx/article/details/132241708
Recomendado
Clasificación