¿Qué son los paquetes fijos TCP?
De la siguiente manera:
Análisis y solución del problema de comunicación TCP (texto completo)
En los programas de red de socket, TCP y UDP están orientados a la conexión y no orientado a la conexión. Por lo tanto, en la programación de sockets TCP, tanto el extremo emisor como el receptor (cliente y servidor) deben tener sockets emparejados. Por lo tanto, para enviar varios paquetes de datos al extremo receptor, el extremo emisor debe enviarlos a la otra parte de manera más eficiente. , utilice el método de optimización (algoritmo de Nagle) para fusionar varios datos con intervalos pequeños y volúmenes de datos pequeños en un bloque de datos grande, y luego empaquetarlo. De esta manera, es difícil para el receptor distinguirlos y se debe proporcionar un mecanismo científico de descompresión.
Para UDP, no se utilizará el algoritmo de optimización de fusión de bloques. De hecho, actualmente se cree que debido a que UDP admite el modo uno a muchos, el skbuff (búfer de socket) en el extremo receptor adopta la cadena. tipo La estructura registra cada paquete UDP que llega, y cada paquete UDP tiene un encabezado de mensaje (dirección de origen, puerto y otra información), de modo que sea fácil para el extremo receptor distinguirlo y procesarlo. Por lo tanto, UDP no tiene ningún problema complicado.
============================================ = =========================
Antes de presentar TCP, primero popularizamos dos conceptos relacionados: conexiones largas y conexiones cortas. conectar.
1. Conexión larga
El cliente y el servidor primero establecen una conexión de comunicación. Una vez establecida la conexión, permanecerá abierta y luego enviará y recibirá información.
2. Conexión corta
El cliente y el servidor se comunican cada vez que se envía y recibe una transacción de mensaje, y luego se desconectan inmediatamente después de que finaliza la transacción. Este método se utiliza normalmente para comunicaciones punto a multipunto, como la conexión de varios clientes a un servidor.
Introducción al protocolo TCP
TCP es un protocolo de capa de transporte orientado a conexión. Aunque TCP no forma parte del conjunto de protocolos establecidos por ISO, se ha convertido en el estándar de redes de facto debido a su uso exitoso en los negocios y la industria.
Como protocolo de capa de transporte orientado a la conexión, el objetivo de TCP es proporcionar a los usuarios conexiones confiables de un extremo a otro y garantizar la transmisión de información ordenada y sin errores. Además de proporcionar funciones básicas de transmisión de datos, también utiliza una serie de medidas como numeración de datos, cálculo de suma de verificación y verificación de datos para garantizar la confiabilidad. Numera cada byte de datos transmitido y requiere que el receptor devuelva un acuse de recibo (ACK). Si el remitente no recibe acuse de recibo de los datos dentro del tiempo especificado, los datos se retransmiten.
(1)? La numeración de datos permite al receptor manejar datos fuera de secuencia y duplicados.
(2)? El número de error de datos se resuelve agregando una suma de verificación a cada segmento de datos transmitido; el receptor verificará la suma de verificación después de recibir los datos. El segmento con el número incorrecto se descartará y el remitente deberá retransmitir.
(3)? El control de flujo también es una medida importante para garantizar la confiabilidad. Sin control de flujo, se puede perder una gran cantidad de datos debido al desbordamiento del búfer de recepción, lo que resulta en múltiples retransmisiones y congestión de la red. .
(4)?TCP utiliza ventanas variables para el control de flujo, es decir, el receptor controla la cantidad de datos enviados por el remitente.
TCP proporciona a los usuarios servicios de transmisión de red altamente confiables, pero las medidas de garantía de confiabilidad también afectarán la eficiencia de la transmisión. Por lo tanto, en aplicaciones de ingeniería reales, TCP solo se usa para transmitir datos críticos, mientras que UDP eficiente generalmente se usa para transmitir datos ordinarios.
Proteger los límites de los mensajes y los flujos de datos
Entonces, ¿qué es proteger los límites de los mensajes y los flujos de datos?
Proteger los límites de los mensajes significa que el protocolo de transporte trata los datos en la red como mensajes separados y el extremo receptor solo puede recibir mensajes separados. Es decir, existe un límite de mensaje protegido y el receptor sólo puede recibir un paquete del remitente a la vez.
Orientado a flujo se refiere al límite de protección de mensajes desprotegidos. Si el remitente envía datos continuamente, el receptor puede recibir dos o más paquetes de datos al mismo tiempo en una operación de recepción.
Por ejemplo, enviamos tres paquetes de datos uno tras otro, con tamaños de 2k, 4k y 8k respectivamente, cuando estos tres paquetes de datos llegan al extremo receptor de la pila de protocolos de red. Se utiliza el protocolo UDP, no importa cuántos Para recibir datos en el búfer de recepción, debemos tener tres acciones de recepción para recibir todos los paquetes de datos. Cuando utilizamos el protocolo TCP, solo necesitamos configurar el tamaño del búfer de recepción en 14k o más para recibir todos los paquetes a la vez, con una sola acción de recepción.