Tabla de contenido
Seguramente has oído hablar de los protocolos de transporte TCP y UDP, pero ¿conoces las diferencias entre uno y otro? Hoy te lo explicamos.
Tomando como referencia el modelo OSI, los protocolos TCP (Protocolo de control de transmisión) y UDP (Protocolo de datagramas de usuario) pertenecen a la capa 4 (capa de transporte). En el modelo TCP/IP, estos protocolos también se encuentran en la capa de transporte, pero que corresponde a la capa 3.
En una máquina hay (teóricamente) 65.536 puertos TCP lógicos que pueden ser utilizados por las más diversas aplicaciones/servicios, los cuales (teóricamente) podrían tener 65.536 aplicaciones/servicios diferentes ejecutándose simultáneamente en nuestra máquina.
Recordando lo mencionado en artículos anteriores: la La dirección IP identifica la máquina y el El puerto lógico identifica la aplicación/servicio.. Además de los puertos lógicos TCP también tenemos 65.536 puertos lógicos UDP (teóricamente).
Protocolo TCP VS Protocolo UDP
tcp
TCP es el protocolo más utilizado porque garantiza la entrega de todos los paquetes entre una PC emisora y una PC receptora. Al establecer una conexión entre el remitente y el receptor existe un “preacuerdo” llamado Three Way Handshake (SYN, SYN-ACK, ACK).
- La sesión entre un cliente y un servidor siempre la inicia el cliente, que envía un paquete de solicitud de conexión con el Bandera SYN activada;
- El cliente también envía un número secuencial aleatorio;
- El servidor responde con un paquete. SINCRONIZACIÓN, ACK Con su propio número secuencial aleatorio es un número de confirmación (igual al número de secuencia del cliente +1);
- para terminar el El cliente responde con un paquete ACK. como número de confirmación (igual al número de secuencia del servidor +1).
Para obtener más información sobre el protocolo de enlace de tres vías, vaya a aquí.
Ejemplo
Considere, por ejemplo, que desea transmitir una película o un archivo de juego que ocupa 800 MB. Este archivo deberá dividirse en partes más pequeñas (fragmentación) para poder transferirlo a otra PC.
Al utilizar el protocolo TCP, existe la garantía de que todos los paquetes se entregarán y clasificarán en el otro lado. (ya que pueden seguir caminos diferentes). Además, para cada paquete o conjunto de paquetes (previamente definido), la máquina de destino confirma que recibió esta información del remitente y, en caso de falla de algún paquete, la máquina de destino procede al remitente con la solicitud de retransmisión del paquete(s). ) faltan paquete(s).
¿Alguna vez has pensado si, por ejemplo, al transmitir un archivo de película o juego (800 MB) solo faltaban 2 kb???? … el receptor simplemente no podría abrir ese archivo, recibiendo el mensaje”archivo dañado”.
UDP
UDP es un protocolo más simple y por sí solo no ofrece garantía de entrega de paquetes. Sin embargo, este proceso de aseguramiento de datos puede ser realizado simplemente por la propia aplicación (que utiliza el protocolo UDP) y no por el protocolo.
Básicamente, utilizando el protocolo UDP, una máquina emisora envía cierta información y la máquina receptora recibe esta información, sin confirmación de los paquetes recibidos. Si un paquete se pierde, normalmente no hay solicitud de reenvío, simplemente deja de existir para el destinatario.
Ejemplo
Veamos un ejemplo común. Imagine que va a utilizar la transmisión de vídeo y audio a través de Internet y utilizar Skype como aplicación. Si estableces conexión con un amigo tuyo notarás que hay muchos paquetes en la transmisión que se pierden... escuchas ese ruido normal al transmitir..."bluuup" o la pérdida/bloqueo de la imagen por unos pocos ms (milisegundos), lo cual es perfectamente aceptable.
No tendría mucho sentido que tu aplicación dejara de transmitir en medio de esta transmisión y preguntara al receptor por paquetes perdidos, simplemente iniciaríamos una conversación y a mitad de camino recibiríamos información, probablemente sobre lo que dijimos al principio.
No es muy común encontrar aplicaciones que utilicen exclusivamente el protocolo UDP, usando el ejemplo del streaming, siempre existe el uso de TCP para intercambiar información de control, liberando a UDP solo para enviar la información.