Una descripción general de las redes informáticas

prefacio

Al realizar el desarrollo de aplicaciones de capa superior, a menudo podemos llamar a varios marcos de red para realizar las funciones de las solicitudes de red y la entrega de datos. Es cierto que el marco de la red puede simplificar la estructura del código o reducir la cantidad de código innecesario, pero también es fácil que no nos familiaricemos con los principios subyacentes de la red. La familiaridad con los principios de las redes informáticas es la única manera de que cada programador se convierta en un ingeniero senior o incluso senior.Este artículo es un análisis en profundidad y un resumen de las redes informáticas.

El modelo OSI de siete capas es un modelo estándar relativamente autorizado, pero rara vez se usa debido a su complejidad en capas y falta de practicidad. El modelo de cuatro capas de TCP/IP es un modelo ampliamente utilizado. Para comprender mejor el conocimiento de las capas de red, estos dos protocolos generalmente se combinan para formar un protocolo de aprendizaje de cinco capas.

El papel de cada capa del modelo de red y la unidad de transmisión de protocolo de cada capa

Modelo OSI de siete capas:

  • Capa de aplicación: las aplicaciones de red se implementan a través de la interacción entre los procesos de aplicación, y la unidad de transmisión de protocolo es la unidad de datos de protocolo de aplicación (APDU, Unidad de datos de protocolo de aplicación).
  • Capa de presentación: conversión de formato de datos, la unidad de transmisión del protocolo es la unidad de datos del protocolo de presentación (PPDU, Unidad de datos del protocolo de presentación).
  • Capa de sesión: Realice la gestión de sesión en el proceso de sincronización de datos, y la unidad de transmisión de protocolo es la unidad de datos de protocolo de sesión (SPDU, Unidad de datos de protocolo de sesión).
  • Capa de transporte: realiza la transmisión de datos entre puertos, y la unidad de transmisión del protocolo es un segmento (Segmento).
  • Capa de red: realice la comunicación entre el host y el host, y la unidad de transmisión del protocolo es el paquete de datos (paquete).
  • Capa de enlace de datos: Los paquetes de datos enviados por la capa de red se empaquetan en tramas para realizar la transmisión entre los nodos adyacentes del enlace.La unidad de transmisión del protocolo es una trama (Frame).
  • Capa física: el flujo de bits se transmite en la conexión física y la unidad de transmisión del protocolo es bit (Bit).

Modelo TCP/IP de cuatro capas:

  • capa de aplicación
  • capa de transporte
  • capa de internet
  • capa de interfaz de red

Modelo de cinco capas:

  • capa de aplicación
  • capa de transporte
  • Capa de red
  • Capa de enlace de datos
  • capa fisica

Protocolos principales en diferentes capas

  • capa de aplicación

inserte la descripción de la imagen aquí

  • capa de transporte
    inserte la descripción de la imagen aquí

  • Capa de red
    inserte la descripción de la imagen aquí

  • Protocolo PPP de capa de enlace de datos
    (protocolo punto a punto, un protocolo diseñado para transmitir paquetes de datos entre unidades pares)
    Protocolo MAC (protocolo de control de acceso a medios)
    Protocolo VLAN (protocolo de red de área local virtual)

  • Capa física
    RJ45 (un protocolo de interfaz)
    IEEE802.2 (el protocolo define la velocidad de transmisión, la banda de frecuencia de trabajo, etc.)

Introducción a acuerdos importantes

Los protocolos HTTPS y HTTP son protocolos muy importantes en las redes informáticas. El artículo anterior analizó los protocolos HTTP y HTTPS en detalle y los presentó en detalle.

¿Cómo encuentra DNS la dirección IP correspondiente a través del nombre de dominio?

  • Compruebe si hay una IP correspondiente al nombre de dominio en el archivo de hosts locales y devuélvala directamente si la hay. (caché de archivos)
  • Verifique el caché de DNS local y regrese si hay uno. (caché del sistema local)
  • Conéctese a la red y consulte la memoria caché del servidor DNS. (La primera vez que visite un nombre de dominio, no debe haber caché local, y definitivamente irá al servidor dns)
  • Búsqueda de servidor DNS recursivamente.

El proceso detallado de búsqueda recursiva:

  • Solicite el nombre de dominio raíz (.com. con un punto al final), obtenga el nombre de dominio de nivel superior (.com).
  • Infórmese sobre el nombre de dominio de nivel superior y obtenga el nombre de dominio de segundo nivel (.baidu.com)
  • Infórmese sobre el nombre de dominio de segundo nivel y obtenga el nombre de dominio de tercer nivel (.baijiahao.baidu.com)
  • Finalmente, devuelva la dirección IP de .baijiahao.baidu.com al usuario y guárdela en caché.

Proceso de ejecución ARP

  • Cada host tiene una lista ARP, que almacena la dirección Mac correspondiente a la dirección IP.
  • Cuando el host de origen quiera enviar datos, primero juzgue si hay una dirección Mac correspondiente a la dirección IP en la lista ARP y, de ser así, envíe los datos directamente. De lo contrario, el host de origen envía una transmisión a todos los hosts en este segmento de red. La información del paquete de datos de transmisión incluye: la dirección IP del host de origen, la dirección Mac del host de origen y la dirección IP del host de destino.
  • Después de recibir la transmisión, otros hosts primero juzgarán si la dirección IP de destino del host de origen coincide con su propia dirección IP. Si no coincide, ignóralo. Si coincide, primero actualizará la dirección IP y la dirección Mac del host de origen a su propia lista ARP y luego enviará un unicast para informar al host de origen de la dirección Mac correspondiente a la dirección IP de destino.
  • Después de que el host de origen reciba el unicast, actualizará la dirección Mac a la lista ARP y luego usará la dirección Mac para enviar datos. Si el host de origen no ha recibido una respuesta, significa que la consulta ARP falló.

UDP

inserte la descripción de la imagen aquí

TCP

Estructura del segmento TCP
inserte la descripción de la imagen aquí

  • Puerto de origen: 2 bytes, el número de puerto de la aplicación que envía la solicitud de conexión TCP
  • Puerto de destino: 2 bytes, el número de puerto de la aplicación que recibe la solicitud de conexión TCP
  • Número de serie: 4 bytes, se refiere al número de serie. Debido a que TCP está orientado a bytes, el número de secuencia es el número de secuencia de cada byte en el flujo de bytes transmitido por la conexión TCP. Por ejemplo, el valor del campo de número de secuencia en el segmento del mensaje es 1 y los datos transportados son 100 bytes en total, lo que significa que el número de secuencia del primer byte del segmento del mensaje es 1 y el número de secuencia del El último byte es 100. El número de secuencia del siguiente segmento comienza desde 101.
  • Número de acuse de recibo: el número de secuencia del primer byte de datos que se espera recibir en el siguiente segmento. Tome el ejemplo del número de secuencia anterior como ejemplo. Cuando B recibe el segmento de mensaje enviado por A (el valor de campo del número de secuencia en el segmento de mensaje es 1, y los datos transportados son 100 bytes en total), entonces la confirmación segmento de mensaje enviado por B a A El número es 101.
  • Desplazamiento de datos: ocupa 4 bits, el valor máximo es de 60 bytes, que hace referencia a la distancia entre el inicio de los datos del segmento TCP y el inicio del TCP, es decir, la longitud de la cabecera.
  • Reservado: 6 dígitos, reservado para uso futuro.
  • ACK de confirmación: ACK se establece en 1 y el campo del número de confirmación es válido. ACK es 0 y el campo del número de reconocimiento no es válido.
  • Synchronous SYN: se utiliza para sincronizar el número de serie cuando se establece la conexión. Cuando SYN=1 y ACK=0, significa que se solicita establecer una conexión; cuando SYN=1 y ACK=1, significa que la otra parte acepta establecer una conexión.
  • Terminar FIN: se utiliza para liberar una conexión.
  • Ventana: ocupa 2 bytes, se refiere a la ventana de recepción de la parte que envía este segmento de mensaje, y su función es decirle a la otra parte la cantidad de datos que la parte receptora actualmente permite enviar al remitente desde el número de confirmación de este segmento de mensaje .
  • URG urgente: URG se establece en 1, lo que indica que hay datos urgentes en el segmento, que el sistema debe procesar primero.
  • Push PSH: el TCP del remitente establece PSH en 1 e inmediatamente envía el segmento. Después de recibir el segmento con PSH=1, el receptor responderá lo antes posible, en lugar de esperar a que se llene el caché antes de responder.
  • Restablecer RST: cuando RST es 1, indica que hay un error grave en la conexión TCP, y la conexión debe liberarse y restablecerse. También se puede utilizar para rechazar segmentos ilegales.
  • Checksum: Ocupando 2 bytes, la función es descubrir los cambios del encabezado y los datos desde el extremo de envío hasta el extremo de recepción.
  • Puntero urgente: ocupa 2 bytes, indicando la posición del final del dato urgente en el segmento del mensaje (dado que al dato urgente le siguen los datos ordinarios, el puntero urgente también indica el número de bytes del dato urgente).
  • Opción: Función: TCP está diseñado para adaptarse al entorno de red complejo y servir mejor a la capa de aplicación, como establecer la longitud máxima del segmento. Longitud variable, hasta 40 bytes
  • Relleno: haga que la longitud del encabezado TCP sea un múltiplo entero de 4 bytes.

SMS

  • Significado: La longitud máxima del segmento se refiere al valor máximo del campo de datos en un segmento TCP.
  • Función: Mejorar la eficiencia de transmisión. El MSS es bajo, por ejemplo, solo 1 byte, mientras que la longitud del encabezado de la capa de red es de al menos 40 bytes, y la tasa de utilización es solo 1/41, que es muy baja. Si el MSS es muy grande, será necesario fragmentarlo en la capa de red y la sobrecarga también aumentará. Por lo tanto, el MSS debe ser lo más grande posible, siempre que no esté fragmentado en la capa de red.

Apretón de manos TCP de tres vías

  • El primer apretón de manos: el cliente envía un paquete de datos solicitando una conexión con el servidor, esperando que el servidor confirme;
  • El segundo apretón de manos: el servidor recibe la solicitud de conexión del cliente, pero el servidor también debe confirmar si el cliente puede conectarse, por lo que el servidor también envía un paquete de datos solicitando una conexión al cliente, esperando la confirmación del cliente;
  • El tercer apretón de manos: el cliente recibe el paquete de datos del servidor y envía un paquete de confirmación al servidor, y las dos partes establecen una conexión.

TCP saludó cuatro veces

  • La primera ola: el cliente envía el paquete de datos completo al servidor y el cliente ingresa al estado de espera del final;
  • La segunda ola: el servidor recibe el paquete de datos final del cliente, luego envía un paquete de datos de confirmación y entra en el estado de espera para el cierre;
  • La tercera ola: el servidor envía el paquete de datos final al cliente y entra en el estado de confirmación final;
  • La cuarta ola: el cliente recibe el paquete de datos final y entra en el estado final. Antes del final, envía un paquete de datos de confirmación al servidor. Después de recibirlo, el servidor también entra en el estado final y completa cuatro oleadas.

Razón de apretón de manos de tres vías

  • Transmisión de datos confiable garantizada.
  • Si solo se realiza un protocolo de enlace, después de que el cliente envía una solicitud de conexión, no recibe una respuesta del servidor, por lo que es imposible determinar si la conexión es exitosa.
  • Si solo se realizan dos protocolos de enlace, el servidor no puede saber si el cliente se ha conectado correctamente. Para dar un escenario anormal, después de que el cliente envíe una solicitud de conexión, esperará la respuesta del servidor. Si el SYN del cliente no ha llegado al servidor durante mucho tiempo (la primera vez), en este momento, después de que el cliente agote el tiempo (el servidor no ha recibido el paquete de conexión de confirmación durante mucho tiempo), volverá a enviar la conexión El servidor lo ha recibido y ha respondido al cliente, y se ha establecido la conexión. Pero después del establecimiento, el primer SYN atrasado también llega al servidor. En este momento, el servidor pensará que se trata de una nueva conexión (porque solo hay dos protocolos de enlace y el servidor no sabe que el cliente se ha conectado correctamente). conectado), y lo intentará de nuevo. Envíe un ACK al cliente, que por supuesto será descartado por el cliente. Pero en este momento, el servidor ya ha asignado recursos para esta conexión y el servidor siempre mantendrá este recurso, lo que provocará un desperdicio.

motivo de cuatro ondas

Después de que el servidor recibe el paquete de datos final del cliente, es posible que el servidor tenga operaciones inconclusas y primero debe finalizar sus propias operaciones, por lo que habrá cuatro manos agitadas.

control de flujo

Cuando el búfer de datos en el extremo receptor está lleno y no puede procesar los datos, enviará una señal de "no recibir más", y el extremo emisor dejará de enviar hasta que el extremo emisor reciba la señal "puede continuar enviando" antes de enviar datos.

control de congestión

  • Use la ventana de congestión cwnd para controlar el tamaño de la ventana de envío;
  • Si el paquete expira, se considera que está congestionado, de lo contrario, se considera que la red no está congestionada cuando se recibe la confirmación;
  • La congestión es menor (cwnd disminuye), la no congestión es mayor (cwnd aumenta);
  • Cuando se desconoce la red, cwnd comienza desde el mínimo y cwnd aumenta gradualmente después de recibir la confirmación;
  • Para mejorar la eficiencia, la tasa de crecimiento es rápida al principio y la tasa de crecimiento se ralentiza después de cierta etapa.

retransmisión rápida

  • Después de que el remitente envía 4 paquetes de datos en sucesión: 1, 2, 3 y 4, recibe los paquetes de datos de confirmación de 2, 3 y 4, pero no recibe el paquete de datos de confirmación de 1.
  • El remitente luego envía un paquete de datos de 1 al servidor, sin esperar a que llegue el paquete de datos de confirmación de 1 (más corto que el tiempo establecido por el temporizador).

Cómo usar TCP para lograr seguridad y confiabilidad

  • Retransmisión de tiempo de espera: después de que TCP envía un segmento de mensaje, iniciará un temporizador para confirmar el tiempo de la información de confirmación enviada por el destino y se retransmitirá después del tiempo de espera.
  • Señal de reconocimiento: cuando TCP recibe un segmento de TCP, enviará una señal de reconocimiento.
  • Checksum: TCP siempre mantendrá el checksum del encabezado y los datos, si hay un error en el checksum del segmento del mensaje recibido, se descartará, esperando que el remitente vuelva a transmitir después de un tiempo de espera.
  • Reordenamiento: dado que la llegada de datagramas IP puede estar desordenada, TCP reordenará los datos y los entregará a la capa de aplicación en el orden correcto.
  • Descartar duplicados: dado que los datagramas IP pueden estar duplicados, TCP descartará los datos duplicados.
  • control de flujo

La diferencia entre flujo de bytes orientado a TCP y orientado a paquetes UDP

  • Al enviar datos bajo TCP, el remitente puede enviar datos varias veces en segmentos y el receptor puede recibir datos varias veces.

  • Cuando UDP envía datos, el extremo emisor enviará los datos a la vez y el extremo receptor los recibirá a la vez.

    Esta es la característica de trabajo de TCP y UDP.

El proceso de ejecución del sistema después de ingresar el nombre de dominio

  • El DNS resuelve los nombres de dominio en direcciones IP.
  • Obtenga la dirección física MAC correspondiente a la dirección IP a través de ARP.
  • TCP establece una conexión a través de un protocolo de enlace de tres vías.
  • Una vez establecida la conexión, se envía una solicitud HTTP para obtener los datos devueltos por el servidor.
  • Desconecte con cuatro ondas de mano.

Bienvenido a prestar atención a la cuenta oficial Duxiong Jun, compartir y comunicarse juntos.

Supongo que te gusta

Origin blog.csdn.net/qq_40796375/article/details/125029055
Recomendado
Clasificación