Protocolo TCP/IP
Hace referencia a un grupo de protocolos que puede realizar la transmisión de información entre múltiples redes diferentes, incluidos múltiples protocolos.
Protocolo OSI de siete capas:
[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y subirla directamente (img-VKuNoi2y-1662292662605)(en-resource://database/1099:1)]
[Error en la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-uiY3CHzI-1662292662607)(en-resource://database/1101:1) ]
protocolo ARP
Envíe paquetes de datos en modo de transmisión para obtener la dirección mac del host de destino. Con la dirección IP, podemos juzgar que en una subred, también dijimos en la capa de enlace que la comunicación es a través de la dirección MAC en una subred. Ahora solo sabemos la dirección IP del objetivo. ¿Cómo podemos obtener la MAC de El host de destino La dirección, esta vez conduce al protocolo ARP.
El host emisor envía sus propios paquetes de datos mediante transmisión, y todos los hosts desempaquetan los paquetes después de recibirlos, y cuando descubren que la IP de destino es la suya, responden y devuelven su propio mac. El formato del paquete es el siguiente:
Formato del paquete: (dirección MAC del remitente, dirección MAC de destino, dirección IP del remitente, dirección IP de destino, datos)
Protocolo ICMP
Una red recién construida a menudo necesita realizar una prueba simple para verificar si la red es fluida, pero el protocolo IP no es una transmisión confiable, si el paquete se pierde, el protocolo IP no puede informar a la capa de transporte si el paquete se pierde y la razón. por la perdida Así que existe el protocolo ICMP.
Las funciones principales del protocolo ICMP:
1. Confirme si el paquete de datos IP llega a la dirección de destino con éxito
2. Notifique el motivo por el cual se perdió el paquete IP durante el proceso de envío.
hay que tener en cuenta es:
(1) ICMP funciona según el protocolo IP, pero no es una función de la capa de transporte, por lo que aún se atribuye al protocolo de la capa de red;
(2) ICMP solo se puede usar con IPv4.Si es IPv6, se debe usar ICMPv6. El comando ping que solemos usar en realidad usa ICMP.
Entonces, ¿cómo verificarlo?
(1) El comando ping primero enviará una solicitud de eco ICMP al par
(2) Después de que el compañero lo reciba, devolverá una respuesta de eco ICMP
(3) Si no hay retorno, se agota el tiempo y se considerará que la dirección de red especificada no existe
La capa de red es establecer la comunicación de host a host, y la función de la capa de transporte es establecer la comunicación de puerto a puerto.
Control de Flujo y Control de Congestión
(1) control de flujo
TCP utiliza una ventana deslizante para implementar el control de flujo.El control de flujo es para controlar la tasa de envío del remitente y garantizar que el receptor pueda recibirlo a tiempo. El campo de ventana en el mensaje de confirmación enviado por el receptor se puede usar para controlar el tamaño de la ventana del remitente, lo que afecta la tasa de envío del remitente. Establecer el campo de la ventana en 0 significa que el remitente no puede enviar datos.
(2) Control de congestión
En un cierto período de tiempo, si la demanda de un determinado recurso en la red excede la parte disponible que el recurso puede proporcionar, el rendimiento de la red se deteriorará. Esta situación se llama congestión. El control de congestión es para evitar que se inyecten demasiados datos en la red, de modo que los enrutadores o enlaces en la red no se sobrecarguen. El requisito previo es que la red pueda soportar la carga de la red existente. Para el control de la congestión, el remitente TCP mantiene una ventana de congestión y un volumen de estado. El tamaño de la ventana de control de congestión depende del grado de congestión de la red y cambia dinámicamente. El remitente establece su ventana de envío como la más pequeña de la ventana de congestión y la ventana de recepción del receptor. Cuatro algoritmos para el control de congestión: inicio lento, evitación de congestión, retransmisión rápida (FRR) y recuperación rápida.
La diferencia entre control de flujo y control de congestión:
El control de congestión es un proceso global que involucra a todos los hosts, todos los enrutadores y todos los factores relacionados con la reducción del rendimiento de transmisión de la red. Por el contrario, el control de flujo es a menudo el control del tráfico de punto a punto y es un problema de extremo a extremo. Lo que tiene que hacer el control de flujo es suprimir la tasa de envío del extremo emisor para que el extremo receptor pueda recibirlo a tiempo.
protocolo HTTP
Protocolo de transferencia de hipertexto, la web se basa en el protocolo HTTP para la comunicación. La traducción exacta de HTTP es Protocolo de transferencia de hipertexto. Salió en 1990 y se convirtió oficialmente en el estándar HTTP1.0 en 1996.
Tiene desventajas: el primer punto es que no se puede reutilizar. Http1.0 estipula que el navegador y el servidor solo mantienen una conexión corta. Cada solicitud del navegador debe establecer una conexión TCP con el servidor. El servidor desconecta inmediatamente la conexión TCP después de completar el procesamiento de la solicitud. El servidor no rastrea cada cliente y no registra solicitudes pasadas. Si desea solicitar otros recursos, debe establecer una nueva conexión.
El segundo punto es el bloqueo de encabezado de línea, holb se refiere a una serie de paquetes porque el primer paquete está bloqueado; cuando se necesita solicitar una gran cantidad de recursos en la página, HOLB hará que los recursos restantes esperen otras solicitudes de recursos cuando se alcanza el número máximo de solicitudes Complete la solicitud antes de iniciarla. Esto da como resultado un ancho de banda infrautilizado y solicitudes de estado bloqueadas posteriores.
Entonces, en 1997, la versión HTTP1.1 también es la versión principal actual, la versión FRC2616.
Optimización: ①Añadir mecanismo de almacenamiento en caché; ②Optimización de banda ancha y uso de conexión de red; ③Gestión de notificación de errores; ④Conexión larga
Limitaciones: ① Sin multiplexación; ② El navegador limita la cantidad de solicitudes bajo el mismo nombre de dominio; ③ A veces, el costo de transmisión es alto: el contenido que se lleva en el encabezado es demasiado grande, lo que aumenta el costo de transmisión en cierta medida.
**Google reveló el protocolo SPDY en 2009, W3C introdujo el protocolo SPDY en el protocolo HTTP y lanzó el protocolo HTTP2.0 en 2012. **Ventajas de la optimización: ①Transmisión de datos en formato binario: en comparación con el formato de texto anterior, el análisis de datos en formato binario es más eficiente; ②Modo dúplex: no solo el cliente puede enviar varias solicitudes al mismo tiempo, sino que el servidor también puede procesar al mismo tiempo Las solicitudes múltiples resuelven el problema del bloqueo al principio de la cola. La tecnología de multiplexación se utiliza para que se puedan conectar y procesar varias solicitudes al mismo tiempo. ③Mejorar la utilización: Cree una tabla para los campos de información de solicitud y respuesta, y cree un índice para cada campo de la tabla. El cliente y el servidor usan esta tabla juntos. Los números de índice entre ellos representan los campos de información y los comprimen en almacenamiento, lo que mejora la tasa de utilización; ④ empuje del servidor: el servidor envía activamente datos al cliente sin solicitud.
[Error en la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-ycuMws9I-1662292662608)(en-resource://database/1103:1)]
QUIC, se ha aplicado una conexión rápida a Internet UDP (HTTP3.0) al navegador Chrome
Aunque el protocolo TCP puede garantizar que no se pierdan paquetes, existen algunas limitaciones. Google desarrolló QUIC basado en el protocolo UDP para mejorar la velocidad de las redes, absorber las ventajas de la tecnología de apertura rápida de TCP y almacenar en caché el contexto actual.
Optimización: ① El problema de bloqueo de cabeza de línea está completamente resuelto: los diferentes flujos son independientes entre sí y no interfieren entre sí. ②Mantenimiento de la conexión al cambiar de red: cuando el terminal móvil cambia de red, como cambiar WiFi o redes 4G o 5G, aún puede mantener los servicios de conexión.
Códigos de estado comunes
200, la solicitud se procesa normalmente; 301, redirigido; 401 no autorizado; 403 acceso denegado; 404 recurso no encontrado; 500 error interno del servidor. Para los códigos de estado que comienzan con 4, cuando la interfaz de backend está conectada correctamente, generalmente hay un problema con el frontend; para los códigos de estado que comienzan con 5, generalmente es un problema con el backend.
Cómo garantizar la fiabilidad de la transmisión TCP
1. El mecanismo de numeración de bytes, para un mejor envío y recepción, 2. El mecanismo de confirmación del segmento de datos, el mecanismo de respuesta de confirmación, 3. El mecanismo de retransmisión de tiempo de espera de TCP, una garantía importante para asegurar la confiabilidad de la transmisión.
¿Por qué el protocolo de enlace TCP no puede ser 2 veces?
- El objetivo principal es evitar que el mensaje de solicitud de conexión no válida se envíe repentinamente al servidor, lo que genera errores innecesarios y desperdicio de recursos.
- El apretón de manos bidireccional solo puede garantizar que se desbloquee una sola conexión. Debido a que TCP es un protocolo de transmisión bidireccional, solo después del tercer protocolo de enlace podemos asegurarnos de que los datos enviados por la otra parte se puedan recibir en ambas direcciones.
Tres apretones de manos y cuatro ondas
- tres apretón de manos
- El primer apretón de manos: el cliente envía un mensaje SYN al servidor.
- El segundo apretón de manos: después de recibir el mensaje SYN, el servidor responderá con un mensaje SYN+ACK.
- El tercer apretón de manos: después de recibir el mensaje SYN+ACK, el cliente responderá con un mensaje ACK.
- Después de que el servidor recibe el mensaje ACK, se establece el protocolo de enlace de tres vías
SYN: Número de secuencia síncrona al establecer una conexión
seq: Secuencia de marcado de segmentos de datos
ACK: Número de acuse de recibo
Un apretón de manos de tres vías puede confirmar si las capacidades de recepción y envío de ambas partes son normales.
-
El primer apretón de manos: el cliente envía un paquete de red y el servidor lo recibe. De esta forma, el servidor puede concluir que la capacidad de envío del cliente y la capacidad de recepción del servidor son normales.
-
El segundo apretón de manos: el servidor envía un paquete y el cliente lo recibe. De esta forma, el cliente puede concluir que las capacidades de recepción y envío del servidor y las capacidades de recepción y envío del cliente son normales. Sin embargo, en este momento, el servidor no puede confirmar si la capacidad de recepción del cliente es normal.
-
El tercer apretón de manos: el cliente envía un paquete y el servidor lo recibe. De esta forma, el servidor puede concluir que las capacidades de recepción y envío del cliente son normales, y que las capacidades de envío y recepción del propio servidor también son normales.
-
saludó cuatro veces
- La primera ola: el cliente envía un mensaje FIN, que especifica un número de secuencia. En este punto, el cliente se encuentra en el estado FIN_WAIT1.
- El segundo protocolo de enlace: después de recibir el FIN, el servidor enviará un mensaje ACK y utilizará el valor del número de serie del cliente + 1 como el valor del número de serie del mensaje ACK, lo que indica que se ha recibido el mensaje del cliente. esta vez, el servidor En el estado CLOSE_WAIT.
- La tercera ola: si el servidor también quiere desconectarse, enviará un mensaje FIN y especificará un número de serie, al igual que la primera ola del cliente. En este momento, el servidor se encuentra en el estado LAST_ACK.
- La cuarta ola: después de recibir el FIN, el cliente también envía un mensaje ACK como respuesta y usa el valor del número de serie del servidor + 1 como el valor del número de serie de su propio mensaje ACK.En este momento, el cliente está en el estado TIME_WAIT. Toma un tiempo asegurarse de que el servidor ingrese al estado CERRADO después de recibir su propio mensaje ACK
- Después de que el servidor recibe el mensaje ACK, cierra la conexión y se encuentra en estado CERRADO.
En cuanto a la duración de TIME_WAIT, es al menos el tiempo de ida y vuelta de un mensaje. Por lo general, se establece un temporizador, si el mensaje FIN no se recibe nuevamente después de este tiempo, significa que la otra parte tuvo éxito y es un mensaje ACK, y está en estado CERRADO en este momento.
Tres formas de comunicación
- Canal unidireccional: simplex, solo puede haber comunicación en un sentido y ninguna interacción en el sentido contrario. Las transmisiones de radio o cable y las transmisiones de televisión entran en esta categoría.
- Comunicación alternativa bidireccional: comunicación semidúplex, ambas partes en la comunicación pueden enviar mensajes, pero no pueden enviar mensajes al mismo tiempo y, por supuesto, no pueden recibir mensajes al mismo tiempo.
- Comunicación simultánea bidireccional: comunicación full-duplex, ambas partes que se comunican pueden enviar y recibir mensajes al mismo tiempo.
tecnología de multiplexación de canales
- Multiplexación por división de frecuencia: después de que a los usuarios se les asigna una determinada banda de frecuencia, ocupan esta banda de frecuencia de principio a fin
- Multiplexación por división de tiempo: las tramas de multiplexación por división de tiempo de igual longitud ocupan el mismo ancho de banda en momentos diferentes.
- Multiplexación estadística por división de tiempo: Suele usarse en concentradores.El concentrador conecta múltiples usuarios vulgares y recolecta sus datos y los envía a una computadora remota a través de una línea de alta velocidad.
Además, la multiplexación por división de longitud de onda en realidad utiliza la multiplexación por división de frecuencia óptica, y la multiplexación por división de código es en realidad un método para compartir canales.
División de direcciones IP
[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-N76PrLYu-1662292662609)(en-resource://database/1125:1)]
Todos los 0 representan la máquina local, red 0, host host, que representan hosts en esta red;
todos los 1 representan transmisión de red local, network net, host 1, que representan transmisión en la red de red;
red 127, los hosts son todos 1 o no todos 0 , lo que indica la prueba de bucle invertido local para determinar si la tarjeta de red funciona normalmente.
VPN: utilice la Internet pública como portador de comunicación entre las redes privadas de esta máquina. Dicha red privada se denomina red privada virtual.
TCP y UDP
UDP: entrega sin conexión, no confiable (entrega de mejor esfuerzo), orientada a mensajes, sin control de congestión (transmisión en vivo), UDP admite interacción 1 a 1, uno a muchos, muchos a uno, muchos a muchos La comunicación, los gastos generales de la cabeza son pequeños.
TCP: comunicación punto a punto orientada a enlace (uno a uno), entrega confiable, comunicación full-duplex, flujo de bytes orientado.