Saltar al contenido principal

Protocolos de Transporte: TCP vs UDP

Dentro de la capa de transporte del modelo de red, existen dos pilares fundamentales que determinan cómo se mueven los datos: TCP (Protocolo de Control de Transmisión) y UDP (Protocolo de Datagramas de Usuario). La elección entre uno u otro depende de si priorizamos la fiabilidad o la velocidad.

Conceptos Clave de Transporte

Para diseñar arquitecturas de red eficientes, debemos dominar estos 5 términos:

  1. TCP (Protocolo de Control de Transmisión): Un protocolo fiable que garantiza que todos los datos lleguen en orden.
  2. UDP (Protocolo de Datagramas de Usuario): Un protocolo ligero diseñado para la velocidad, ideal para transmisiones en vivo.
  3. Connection-Oriented (Orientado a la Conexión): Característica de protocolos que establecen una sesión antes de enviar datos.
  4. Three-Way Handshake (Apretón de manos de tres vías): El proceso de sincronización inicial que utiliza TCP para establecer una conexión.
  5. Packet Loss (Pérdida de Paquetes): Situación donde los datos no llegan a su destino; TCP los reenvía, pero UDP los ignora.

Diagrama técnico comparando el flujo de datos entre un Three-Way Handshake de TCP y el envío directo de UDP

Ejemplo de Implementación Conceptual en JavaScript

Podemos simular la lógica de decisión de un sistema al elegir entre estos protocolos según la tolerancia al Packet Loss (Pérdida de Paquetes):

// Simulación de un gestor de protocolos de transporte
const networkManager = {
    protocols: {
        TCP: { type: 'Connection-Oriented', reliability: 1.0 },
        UDP: { type: 'Connectionless', reliability: 0.8 }
    },

    async sendData(data, useReliability) {
        if (useReliability) {
            console.log('Iniciando Three-Way Handshake...');
            return this.protocols.TCP;
        } else {
            console.log('Enviando datos inmediatamente vía UDP...');
            return this.protocols.UDP;
        }
    }
};

// Para un chat, usamos fiabilidad (TCP)
networkManager.sendData('Message', true);

Mientras que el TCP (Protocolo de Control de Transmisión) utiliza el Three-Way Handshake (Apretón de manos de tres vías) para asegurar una conexión estable, el UDP (Protocolo de Datagramas de Usuario) simplemente envía los datos, aceptando que pueda existir un Packet Loss (Pérdida de Paquetes) a cambio de una latencia mínima.