¿Formato de mensaje TCP y cómo funciona el protocolo TCP?
Puerto de origen y puerto de destino: ambos son de 16 bits, indicando los números de puerto del remitente y del receptor respectivamente. El número de puerto y la dirección IP son los componentes principales de una dirección de socket. Los sockets de origen y destino juntos representan de forma única una conexión. Las aplicaciones de red envían y reciben datos directamente a los sockets cuando se comunican.
Número de secuencia y número de confirmación: ambos son enteros sin signo de 32 bits que pueden representar el rango de 0-4G(232) bytes. Entre ellos, el número de secuencia representa el número de secuencia del primer byte de la parte de datos, y el número de confirmación representa el número de secuencia del siguiente byte que el destinatario del datagrama espera que la otra parte envíe (es decir, cualquier dato con se ha recibido correctamente un número de secuencia menor que el número de confirmación).
Longitud del encabezado del mensaje (HLEN): Indica la longitud del encabezado del mensaje TCP. La longitud se calcula en unidades de 32 bits. Por lo tanto, si la longitud de la sección de opciones no es múltiplo de 4 bytes, se agregará relleno.
Campo reservado: Inmediatamente después del campo de longitud del encabezado hay 6 bits que deben establecerse en 0.
Seguido de 6 banderas. Significado específico de los bits de bandera:
URG (urgente) es una bandera de datos urgente. Si es 1, el datagrama contiene datos urgentes. El valor indicado por el puntero de datos urgentes
es válido en este momento. Representa el valor de desplazamiento del primer byte después de los datos urgentes (es decir, la longitud total de los datos urgentes).
ACK (acuse de recibo) es el indicador de confirmación. Si ACK es 1, significa que el número de confirmación en el mensaje es válido. De lo contrario, el número de confirmación
en el mensaje no será válido y el destinatario podrá ignorarlo.
Bandera PSH (push). Cuando está configurado, el software del protocolo TCP del remitente debe enviar el datagrama inmediatamente y el receptor debe cargar los datos en la aplicación tan pronto como los reciba, incluso si su búfer de recepción no está lleno.
El indicador RST (restablecer) se utiliza para restablecer la conexión. Un mensaje con el indicador RST activado se denomina mensaje de reinicio. En términos generales, si TCP recibe un mensaje que claramente no pertenece a ninguna conexión en el host, enviará un mensaje de reinicio al extremo remoto.
Indicador SYN (sincronización). Se utiliza para establecer una conexión y permitir que ambas partes conectadas sincronicen sus números de secuencia. Si SYN=1 y ACK=0, el datagrama es una solicitud de conexión; si SYN=1 y ACK=1, la conexión ha sido aceptada.
Bandera FIN (terminada). Indica que el remitente no tiene más datos para transmitir y desea liberar la conexión.
Campos de ventana. La ventana representa el número máximo de bytes consecutivos que el remitente puede enviar a partir del byte de confirmación. Al establecer el tamaño del valor de la ventana, el receptor puede ajustar la velocidad a la que la fuente envía datos, logrando así el control del flujo.
Campo de suma de comprobación. Es un mecanismo de verificación de errores proporcionado por el protocolo TCP. De manera similar al protocolo UDP que estudiamos en capítulos anteriores, al calcular la suma de verificación, no solo necesitamos calcular el mensaje TCP en sí (encabezado del mensaje y datos), sino también agregar información adicional: el "pseudo encabezado del mensaje" de 12 bytes. .
TCP/IP (Protocolo de control de transmisión/Protocolo de Internet) es el protocolo más básico de Internet y se compone simplemente de los protocolos IP y TCP subyacentes.
Antes de la formación de Internet, se establecieron muchas redes pequeñas en todos los lugares, llamadas redes de área local (LAN). El nombre chino de Internet significa "Internet", que en realidad conecta redes de área local alrededor de la red. mundo. Formar una "red" (es decir, Internet). En realidad, es una "Internet (es decir, Internet)" conectada por redes de área local en todo el mundo. Sin embargo, antes de conectar cada LAN, sus estructuras de red y reglas de transmisión de datos son diferentes. Entonces, después de la conexión, ¿qué reglas se deben usar para transmitir datos entre estas pequeñas redes? Es como si hubiera muchos países en el mundo y la gente de cada país hablara su propio idioma, entonces, ¿cómo pueden dos personas en el mundo comunicarse entre sí? Si la gente de todo el mundo pudiera hablar el mismo idioma (es decir, esperanto), ¿no se resolvería este problema? El protocolo TCP/IP es el "esperanto" de Internet.
Desarrollado en la década de 1970, TCP/IP fue el primer protocolo utilizado en Internet.