Hoy comenzaremos centrándonos en TCP. Anteriormente, en el capítulo sobre capas, mencionamos un punto importante. En la capa de red y por debajo, se centran más en las conexiones host a host, lo que significa que su computadora necesita saber dónde se encuentra otra computadora para conectarse. Sin embargo, la comunicación en una red suele ser entre procesos, no entre máquinas. Por lo tanto, el protocolo TCP introduce el concepto de puerto. Un puerto solo puede estar ocupado por un proceso, lo que proporciona comunicación directa entre procesos de aplicación que se ejecutan en diferentes hosts.
La función de la capa de transporte es proporcionar servicios de comunicación directa entre procesos de aplicación que se ejecutan en diferentes hosts, por lo que también se conoce como protocolo de extremo a extremo. La capa de transporte oculta los detalles esenciales de la red, lo que permite que el proceso de aplicación perciba un canal de comunicación lógico de extremo a extremo entre las dos entidades de la capa de transporte.
TCP significa Protocolo de Control de Transmisión y se conoce como un protocolo orientado a la conexión. Esto significa que antes de que una aplicación pueda enviar datos a otra, ambos procesos deben realizar un protocolo de enlace. El protocolo de enlace es un proceso lógicamente conectado que garantiza una transmisión fiable y una recepción ordenada de datos. Durante el protocolo de enlace, se establece una conexión entre los hosts de origen y destino mediante el intercambio de una serie de paquetes de control y el acuerdo sobre parámetros y reglas para garantizar una transmisión de datos correcta.
¿Qué es TCP? (MylinkingGrifo de redyBroker de paquetes de redPodría procesar paquetes TCP o UDP)
TCP (Protocolo de control de transmisión) es un protocolo de comunicación de capa de transporte basado en flujo de bytes, confiable y orientado a conexión.
Orientado a la conexión:Orientado a conexión significa que la comunicación TCP es de uno a uno, es decir, comunicación punto a punto de extremo a extremo, a diferencia de UDP, que puede enviar mensajes a múltiples hosts al mismo tiempo, por lo que no se puede lograr una comunicación de uno a muchos.
ConfiableLa confiabilidad de TCP garantiza que los paquetes se entreguen de manera confiable al receptor independientemente de los cambios en el enlace de red, lo que hace que el formato de paquetes de protocolo de TCP sea más complejo que el de UDP.
Basado en flujo de bytesLa naturaleza basada en flujo de bytes de TCP permite la transmisión de mensajes de cualquier tamaño y garantiza el orden de los mensajes: incluso si el mensaje anterior no se ha recibido completamente, e incluso si se han recibido los bytes posteriores, TCP no los entregará a la capa de aplicación para su procesamiento y descartará automáticamente los paquetes duplicados.
Una vez que los hosts A y B establecen una conexión, la aplicación solo necesita usar la línea de comunicación virtual para enviar y recibir datos, garantizando así su transmisión. El protocolo TCP se encarga de controlar tareas como el establecimiento, la desconexión y la retención de la conexión. Cabe destacar que la línea virtual solo se refiere al establecimiento de la conexión, mientras que la conexión del protocolo TCP solo indica que ambas partes pueden iniciar la transmisión de datos y garantiza su fiabilidad. Los dispositivos de red gestionan los nodos de enrutamiento y transporte; el protocolo TCP no se ocupa de estos detalles.
Una conexión TCP es un servicio full-duplex, lo que significa que los hosts A y B pueden transmitir datos en ambas direcciones. Es decir, los datos se pueden transferir entre los hosts A y B en un flujo bidireccional.
TCP almacena temporalmente los datos en el búfer de envío de la conexión. Este búfer de envío es una de las cachés configuradas durante el protocolo de enlace de tres vías. Posteriormente, TCP enviará los datos de la caché de envío a la caché de recepción del host de destino en el momento oportuno. En la práctica, cada par tendrá una caché de envío y una caché de recepción, como se muestra a continuación:
El búfer de envío es un área de memoria mantenida por la implementación de TCP en el lado del emisor, que se utiliza para almacenar temporalmente los datos que se enviarán. Cuando se realiza el protocolo de enlace de tres vías para establecer una conexión, se configura la caché de envío y se utiliza para almacenar datos. El búfer de envío se ajusta dinámicamente según la congestión de la red y la información del receptor.
Un búfer de recepción es un área de memoria que la implementación de TCP mantiene en el lado receptor y que se utiliza para almacenar temporalmente los datos recibidos. TCP almacena los datos recibidos en la caché de recepción y espera a que la aplicación superior los lea.
Tenga en cuenta que el tamaño del caché de envío y del caché de recepción es limitado; cuando el caché está lleno, TCP puede adoptar algunas estrategias, como control de congestión, control de flujo, etc., para garantizar la transmisión confiable de datos y la estabilidad de la red.
En las redes informáticas, la transmisión de datos entre hosts se realiza mediante segmentos. Entonces, ¿qué es un segmento de paquete?
TCP crea un segmento TCP, o segmento de paquete, dividiendo el flujo entrante en fragmentos y añadiendo encabezados TCP a cada uno. Cada segmento solo puede transmitirse durante un tiempo limitado y no puede superar el Tamaño Máximo de Segmento (MSS). En su camino hacia abajo, un segmento de paquete pasa por la capa de enlace. Esta capa tiene una Unidad Máxima de Transmisión (MTU), que es el tamaño máximo de paquete que puede pasar por la capa de enlace de datos. La unidad máxima de transmisión suele estar relacionada con la interfaz de comunicación.
Entonces, ¿cuál es la diferencia entre MSS y MTU?
En las redes informáticas, la arquitectura jerárquica es fundamental, ya que considera las diferencias entre los distintos niveles. Cada capa tiene un nombre distinto: en la capa de transporte, los datos se denominan segmento, y en la capa de red, paquete IP. Por lo tanto, la Unidad Máxima de Transmisión (MTU) puede considerarse el tamaño máximo de paquete IP que puede transmitir la capa de red, mientras que el Tamaño Máximo de Segmento (MSS) es un concepto de la capa de transporte que se refiere a la cantidad máxima de datos que un paquete TCP puede transmitir simultáneamente.
Tenga en cuenta que cuando el Tamaño Máximo de Segmento (MSS) es mayor que la Unidad Máxima de Transmisión (MTU), la fragmentación de IP se realizará en la capa de red y TCP no dividirá los datos más grandes en segmentos adecuados para el tamaño de MTU. Habrá una sección en la capa de red dedicada a la capa IP.
Estructura del segmento de paquetes TCP
Exploremos el formato y el contenido de los encabezados TCP.
Número de secuenciaUn número aleatorio generado por la computadora al establecer la conexión, como su valor inicial al establecerse la conexión TCP, se envía al receptor mediante el paquete SYN. Durante la transmisión de datos, el emisor incrementa el número de secuencia según la cantidad de datos enviados. El receptor evalúa el orden de los datos según el número de secuencia recibido. Si los datos están desordenados, el receptor los reordena para asegurar su correcto orden.
Número de acuse de reciboEste es un número de secuencia utilizado en TCP para confirmar la recepción de datos. Indica el número de secuencia de los siguientes datos que el emisor espera recibir. En una conexión TCP, el receptor determina qué datos se han recibido correctamente basándose en el número de secuencia del segmento del paquete de datos recibido. Cuando el receptor recibe los datos correctamente, envía un paquete ACK al emisor, que contiene el número de acuse de recibo. Tras recibir el paquete ACK, el emisor puede confirmar que los datos se han recibido correctamente antes de confirmar el número de respuesta.
Los bits de control de un segmento TCP incluyen lo siguiente:
bit ACKCuando este bit es 1, significa que el campo de respuesta de acuse de recibo es válido. TCP especifica que este bit debe establecerse en 1, excepto para los paquetes SYN, al establecerse la conexión inicialmente.
Bit RST:Cuando este bit es 1, indica que hay una excepción en la conexión TCP y se debe forzar la desconexión de la conexión.
bit SYN:Cuando este bit se establece en 1, significa que se debe establecer la conexión y el valor inicial del número de secuencia se establece en el campo de número de secuencia.
Bit FIN:Cuando este bit es 1, significa que no se enviarán más datos en el futuro y se desea la conexión.
Las diversas funciones y características de TCP están incorporadas en la estructura de los segmentos de paquetes TCP.
¿Qué es UDP? (Mylinking)Grifo de redyBroker de paquetes de redpodría procesar paquetes TCP o UDP)
El Protocolo de Datagramas de Usuario (UDP) es un protocolo de comunicación sin conexión. A diferencia de TCP, UDP no ofrece mecanismos de control complejos. El protocolo UDP permite a las aplicaciones enviar directamente paquetes IP encapsulados sin establecer una conexión. Cuando el desarrollador opta por usar UDP en lugar de TCP, la aplicación se comunica directamente con el IP.
El nombre completo del protocolo UDP es Protocolo de Datagramas de Usuario (UDP), y su encabezado tiene solo ocho bytes (64 bits), lo cual es muy conciso. El formato del encabezado UDP es el siguiente:
Puertos de destino y de origen:Su propósito principal es indicar a qué proceso UDP debe enviar los paquetes.
Tamaño del paquete:El campo de tamaño del paquete contiene el tamaño del encabezado UDP más el tamaño de los datos
Suma de comprobación:Diseñado para garantizar la entrega confiable de encabezados y datos UDP. La función de la suma de comprobación es detectar si se ha producido un error o corrupción durante la transmisión de un paquete UDP para garantizar la integridad de los datos.
Diferencias entre TCP y UDP en MylinkingGrifo de redyBroker de paquetes de redPodría procesar paquetes TCP o UDP
TCP y UDP se diferencian en los siguientes aspectos:
ConexiónTCP es un protocolo de transporte orientado a la conexión que requiere el establecimiento de una conexión antes de poder transferir datos. UDP, en cambio, no requiere conexión y puede transferir datos inmediatamente.
Objeto de servicioTCP es un servicio bidireccional uno a uno; es decir, una conexión solo tiene dos extremos para comunicarse. Sin embargo, UDP admite la comunicación interactiva uno a uno, uno a muchos y muchos a muchos, lo que permite la comunicación con varios hosts simultáneamente.
FiabilidadTCP proporciona el servicio de entrega de datos confiable, garantizando que estén libres de errores, pérdidas, duplicaciones y lleguen cuando se necesiten. UDP, por otro lado, se esfuerza al máximo y no garantiza una entrega confiable. UDP puede sufrir pérdidas de datos y otras situaciones durante la transmisión.
Control de congestión, control de flujoTCP cuenta con mecanismos de control de congestión y control de flujo que permiten ajustar la velocidad de transmisión de datos según las condiciones de la red para garantizar la seguridad y estabilidad de la transmisión. UDP no cuenta con estos mecanismos; incluso con una red muy congestionada, no ajustará la velocidad de envío de UDP.
Encabezado superiorTCP tiene una longitud de encabezado larga, normalmente de 20 bytes, que aumenta al usar campos de opción. UDP, por otro lado, tiene un encabezado fijo de solo 8 bytes, por lo que su sobrecarga de encabezado es menor.
Escenarios de aplicación TCP y UDP:
TCP y UDP son dos protocolos de capa de transporte diferentes y tienen algunas diferencias en los escenarios de aplicación.
Dado que TCP es un protocolo orientado a la conexión, se utiliza principalmente en escenarios donde se requiere una entrega de datos fiable. Algunos casos de uso comunes incluyen:
Transferencia de archivos FTP:TCP puede garantizar que los archivos no se pierdan ni se corrompan durante la transferencia.
HTTP/HTTPS:TCP garantiza la integridad y corrección del contenido web.
Dado que UDP es un protocolo sin conexión, no ofrece garantía de fiabilidad, pero se caracteriza por su eficiencia y tiempo real. UDP es adecuado para los siguientes escenarios:
Tráfico de paquetes bajo, como DNS (Sistema de nombres de dominio)Las consultas DNS suelen ser paquetes cortos y UDP puede completarlas más rápido.
Comunicación multimedia como vídeo y audioPara la transmisión multimedia con altos requisitos de tiempo real, UDP puede proporcionar una menor latencia para garantizar que los datos puedan transmitirse de manera oportuna.
Comunicación de difusión:UDP admite la comunicación de uno a muchos y de muchos a muchos y se puede utilizar para la transmisión de mensajes de difusión.
Resumen
Hoy aprendimos sobre TCP. TCP es un protocolo de comunicación de la capa de transporte, orientado a la conexión, confiable y basado en flujo de bytes. Garantiza la transmisión confiable y la recepción ordenada de datos mediante el establecimiento de la conexión, el protocolo de enlace y la confirmación. El protocolo TCP utiliza puertos para la comunicación entre procesos y proporciona servicios de comunicación directa para los procesos de aplicación que se ejecutan en diferentes hosts. Las conexiones TCP son dúplex completo, lo que permite transferencias de datos bidireccionales simultáneas. Por el contrario, UDP es un protocolo de comunicación sin conexión que no ofrece garantías de confiabilidad y es adecuado para algunos escenarios con altos requisitos de tiempo real. TCP y UDP difieren en el modo de conexión, el objeto de servicio, la confiabilidad, el control de congestión, el control de flujo y otros aspectos, y sus escenarios de aplicación también son diferentes.
Hora de publicación: 03-dic-2024