Alguna vez te has preguntado ¿cómo es posible que estés navegando por una página web, escuchando música en streaming y recibiendo mensajes de chat al mismo tiempo, todo a través de la misma conexión a internet? La respuesta a esta simultaneidad mágica se encuentra en una técnica llamada multiplexación, y los protocolos TCP (Transmission Control Protocol) y UDP (User Datagram Protocol)
¿Qué es la Multiplexación?
Es el proceso por el cual varias aplicaciones pueden usar simultáneamente una misma red física para comunicarse, sin interferir entre sí. Esto se logra identificando cada aplicación con un número de puerto asociado al protocolo (TCP o UDP).
Imaginemos una carretera con un solo carril. Si solo un vehículo pudiera usarla a la vez, el tráfico sería lentísimo, ¿verdad? La multiplexación en redes funciona de manera similar. Es la técnica que permite que múltiples aplicaciones o servicios compartan la misma conexión de red subyacente para enviar y recibir datos simultáneamente.
En lugar de tener una conexión física separada para cada aplicación, la multiplexación divide el flujo de datos en porciones y las etiqueta de manera que el sistema receptor pueda identificar a qué aplicación pertenece cada parte. Esto optimiza el uso de los recursos de red y hace posible la multitarea que disfrutamos en línea.
TCP: El Conductor Organizado que Etiqueta Cada Paquete
Cuando múltiples aplicaciones utilizan TCP para comunicarse, este protocolo se encarga de establecer una conexión virtual dedicada para cada una de ellas. Pero, ¿cómo se asegura de que los datos de cada aplicación lleguen al destino correcto y no se mezclen? Sencillo... a través de la multiplexación basada en puertos
Cada aplicación que utiliza TCP se asocia a un número de puerto específico. Piensen en estos puertos como "apartamentos" dentro de la dirección IP de un dispositivo. Cuando una aplicación envía datos, TCP agrega información de encabezado que incluye el puerto de origen (de la aplicación que envía) y el puerto de destino (de la aplicación que recibe)
¿Cómo funciona la multiplexación con TCP?
- Establecimiento de Conexiones: Para cada aplicación, TCP establece una conexión separada con el destino, utilizando una combinación única de dirección IP de origen, puerto de origen, dirección IP de destino y puerto de destino (conocido como un "socket").
- Etiquetado de Segmentos: Los datos de cada aplicación se dividen en segmentos, y cada segmento se etiqueta con los números de puerto de origen y destino correspondientes a esa conexión específica.
- Demultiplexación en el Destino: Cuando el sistema receptor recibe los segmentos TCP, examina los números de puerto de destino para identificar a qué aplicación deben entregarse los datos. El sistema operativo luego dirige los segmentos a la aplicación correcta basándose en este número de puerto.
UDP: El Mensajero Veloz que Confía en la Identificación por Puertos
El protocolo UDP, a diferencia de TCP, es un protocolo sin conexión y no fiable. Su principal objetivo es la velocidad, sacrificando la garantía de entrega y el orden de los paquetes. A pesar de su naturaleza "despreocupada", UDP también utiliza la multiplexación basada en puertos para permitir que múltiples aplicaciones compartan la conexión de red.
Al igual que TCP, cuando una aplicación utiliza UDP para enviar datos, se asocia a un número de puerto. Los datagramas UDP (las unidades de datos de UDP) también incluyen información de encabezado con los puertos de origen y destino.
¿Cómo funciona la multiplexación con UDP?
- Envío sin Conexión: Las aplicaciones que utilizan UDP simplemente envían sus datagramas al destino, sin establecer una conexión previa.
- Etiquetado de Datagramas: Cada datagrama UDP incluye los números de puerto de origen y destino, identificando la aplicación que envió los datos y la aplicación a la que van dirigidos.
- Demultiplexación en el Destino: Al igual que con TCP, el sistema operativo receptor examina el puerto de destino en cada datagrama UDP y lo entrega a la aplicación correspondiente que está escuchando en ese puerto.
Aunque UDP no garantiza la entrega ni el orden de los paquetes, la multiplexación por puertos asegura que los datos de diferentes aplicaciones (como el streaming de video, las llamadas VoIP o los juegos en línea) se dirijan a la aplicación correcta en el extremo receptor. Si bien algunos paquetes pueden perderse o llegar desordenados, la identificación por puertos permite que cada aplicación procese los datos que sí llegan.
No hay comentarios.:
Publicar un comentario