/
/

TCP vs UDP: ¿cuál es la diferencia?

por Team Ninja
TCP vs UDP: What’s the Difference blog banner image

Resumen instantáneo

Este post ofrece una lista completa de comandos CMD básicos y una inmersión profunda en los comandos de Windows, con más de 70 comandos cmd esenciales tanto para principiantes como para usuarios avanzados. Explica comandos prácticos del símbolo del sistema para la gestión de archivos, la navegación por directorios, la solución de problemas de red, las operaciones de disco y la automatización con ejemplos reales para mejorar la productividad. Tanto si estás aprendiendo los comandos básicos de cmd como si ya dominas las herramientas avanzadas de la CLI de Windows, esta guía te ayudará a utilizar el Símbolo del sistema de forma más eficaz.

¿Qué sabemos realmente sobre TCP vs UDP? Internet, blockchain, cloud computing: sea cual sea el ámbito, los ordenadores resultan mucho más útiles cuando están conectados entre sí. Sin embargo, enviar datos (y asegurarse de que llegan íntegros a su destino) exige una compleja interconexión de redes y nodos. Antes de entrar en los detalles de los protocolos Transport Control Protocol (TCP) y User Datagram Protocol (UDP), conviene dar un paso atrás.

Todos los modelos de redes intentan describir un proceso parecido: cómo se envían los bits de datos a través de cables en forma de impulsos eléctricos, o por fibra óptica en patrones de luz. Y, en el extremo receptor, cómo se reciben esos bits y se vuelven a ensamblar.

Técnicamente sería posible transferir datos de una aplicación a otra en equipos distintos con un único protocolo. Pero ese método sería extremadamente frágil: cualquier cambio en el hardware obligaría a modificar toda la aplicación y el software del protocolo. Para lograr la flexibilidad que exige conectar dispositivos, las redes utilizan pilas de protocolos organizadas por capas. Cada capa de la pila tiene una función concreta e interactúa con las capas inmediatamente superior e inferior.

Hoy, el marco más completo es el modelo de interconexión de sistemas abiertos (OSI). Tanto UDP como TCP reorganizan algunas de las capas implicadas, así que partir del modelo OSI es el mejor punto de arranque para profundizar.

Visión general rápida del modelo OSI

Capa física

En su nivel más básico, esta capa está formada por los elementos mecánicos del envío y la recepción de datos. Determina cómo los pines y los cables codifican los 0 y los 1 en una señal que después se envía al medio local en forma de señales luminosas, eléctricas o de radio.

Capa de enlace de datos (DLL)

La capa de enlace de datos actúa como intermediaria entre los componentes físicos del dispositivo y los paquetes de datos de la red. Los datos de la capa física no tienen prácticamente ninguna estructura y es tarea de esta capa empaquetarlos en tramas. Así se toma el flujo continuo de datos enviados y se agrupa en bloques, un proceso llamado multiplexación. Aquí, cada paquete de datos recibe un encabezado que indica el remitente y el destino previstos.

Capa de red

Con los paquetes de datos listos, la capa de red (o de internet) puede enrutarlos de un dispositivo a otro a través de la red. Para ello asigna a cada dispositivo una dirección IP única, que sirve para identificarlo y determinar la ruta que deben seguir los paquetes para llegar hasta él.

Capa de transporte

Situada entre la capa de red y la de sesión, la capa de transporte se encarga de entregar los mensajes a un host. Gracias a ella, las aplicaciones y los servicios funcionan más rápido, porque los procesos superiores no tienen que tener en cuenta las particularidades de la red de comunicación de cada dispositivo. Esta capa es la base de los protocolos UDP y TCP que veremos a continuación.

Capa de sesión

A la capa de transporte le da igual si dos ordenadores ya se han comunicado antes: solo se ocupa de mover paquetes de un lado a otro. La capa de sesión organiza el tráfico dándole un principio y un final lógicos.

Capa de presentación

El volumen de estos paquetes de datos puede ser enorme. La capa de presentación se centra sobre todo en codificarlos y comprimirlos para reducir su consumo de ancho de banda antes de que salgan del dispositivo emisor.

Capa de aplicación

Por último, los datos recibidos (o los que están a punto de enviarse) deben comunicarse al usuario. Aunque OSI es un modelo útil, recuerda que ningún protocolo moderno sigue con exactitud sus 7 capas. Por ejemplo, los protocolos TCP y UDP se centran solo en las capas de red y de transporte.

Qué es TCP

El Transport Control Protocol fue, en esencia, el primer protocolo de red. Creado poco después de la aparición de internet, en 1981, su primera versión se centraba en segmentar los datos en paquetes. En las décadas siguientes creció y evolucionó hasta convertirse en la pila TCP/IP que hoy es el estándar. Los paquetes de TCP se reparten en 4 capas: enlace de datos, red, transporte y aplicación.

Como indica su nombre, TCP tiene su mayor peso en la capa de transporte. Antes de enviar cualquier dato, TCP establece una breve conexión entre dos endpoints de red mediante un saludo en tres pasos (three-way handshake).

Primero, el cliente inicia la conexión enviando un mensaje SYN (synchronize), en forma de número aleatorio. Al recibirlo, el servidor lo confirma con un SYN-ACK (que simplemente añade un 1 al final del número del cliente). Por último, el cliente confirma ese SYN-ACK con un mensaje ACK. Este saludo virtual garantiza que tanto el emisor como el receptor están listos para comunicarse y saben que el canal está establecido. Si el puerto receptor está desconectado o no disponible, el mensaje ACK se sustituye por un paquete TCP RST (reset).

Y no es solo el proceso inicial el que depende de una confirmación bidireccional: la terminación también es bidireccional y confirma cuándo un cliente o un servidor ha terminado de enviar datos. Siguiendo un patrón parecido, una vez enviados todos los datos pertinentes, el cliente envía un segmento FIN en forma de número de secuencia propio. De nuevo, el servidor lo confirma. Cuando el servidor ha recibido todos los datos, le toca a él enviar un paquete FIN, que se confirma y con el que se cierra la conexión.

La importancia de la IP

En este proceso resulta clave que toda conexión tenga definido un destino antes del envío. Solo entonces puede producirse el saludo TCP. Aquí es donde el Internet Protocol (IP) actúa como la otra cara de la moneda de TCP/IP.

Cada dispositivo o dominio conectado a internet tiene una dirección IP única. En el encabezado de cada paquete de datos figura la dirección IP del destinatario previsto, de modo que los datos llegan allí donde se necesitan. Una vez identificada la dirección IP, el proceso TCP puede iniciar la transferencia de datos. Pero los datos recibidos tienen que llegar al puerto correcto, y por eso los paquetes TCP incluyen información de puerto. Piensa en la IP como el código postal y en los datos de puerto de TCP como el número concreto de la vivienda. Por último, los paquetes TCP incluyen un número de secuencia, parecido a las páginas numeradas de una carta: indican en qué orden se envían los paquetes.

Aunque TCP/IP se ha convertido en el estándar para una transmisión de datos segura y fiable por internet, una gran ventaja del enfoque de IP es su flexibilidad, y TCP no es la única forma de llevar datos del punto A al punto B.

Qué es UDP

El User Datagram Protocol (UDP) es un protocolo de transporte de datos ligero que funciona sobre los cimientos de IP. Sin embargo, en lugar del largo proceso de saludo de TCP, UDP envía paquetes pequeños e independientes llamados datagramas, sin comprobar antes ninguna conexión. Aunque pueda parecer arriesgado, UDP está diseñado para poder descartar información sin que la comunicación se rompa por completo.

Cada datagrama es una unidad autosuficiente y no contiene información sobre los datos que llegan antes o después. Así, en lugar de tener que procesar una acumulación de paquetes retrasados, un servidor puede atender las solicitudes de forma totalmente lineal. A este proceso contribuye el tamaño de los paquetes de UDP. Piensa en que los paquetes TCP incorporan comprobación de errores y numeración secuencial: al eliminar todos esos extras opcionales, los datagramas UDP ocupan una fracción de ese tamaño. Esos datos tan ligeros pueden procesarse después a una velocidad vertiginosa.

Por eso UDP se utiliza en servicios que necesitan un procesamiento casi en tiempo real. Piensa en el streaming de vídeo y en los videojuegos: pueden requerir muchísimos datagramas UDP, pero su velocidad es imprescindible para una buena experiencia de usuario. Y si un paquete se pierde o se descarta, la consecuencia real podría ser, como mucho, un píxel ausente durante un fotograma. Las consultas del sistema de nombres de dominio (DNS), que vinculan un nombre de dominio a una dirección web reconocible, también usan UDP. Son peticiones minúsculas, formadas por un único par de solicitud y respuesta, pero deben resolverse rápido, lo que convierte a UDP en la opción natural.

Diferencias entre TCP y UDP, función por función

FunciónUDP (User Datagram Protocol)TCP (Transmission Control Protocol)
ConexiónSin conexión: no establece una conexión antes de enviar los datos.Orientado a la conexión: establece un saludo en tres pasos antes de transferir datos.
FiabilidadNo garantiza la entrega, el orden ni la comprobación de errores.La arquitectura de paquetes garantiza la entrega en el orden correcto.
VelocidadRápido.Más lento que UDP por sus amplios mecanismos de comprobación de errores.
Control del flujo de datosSin control de flujo; envía los datos tan rápido como el emisor pueda generarlos y la red pueda asumirlos.El control de flujo se gestiona con técnicas de ventana para ajustar el flujo de datos.
UsosSe usa en aplicaciones sensibles al tiempo en las que se tolera la pérdida de algunos datos (por ejemplo, streaming de audio o vídeo en directo).Se usa cuando la entrega fiable de los datos es fundamental (por ejemplo, navegación web o correo electrónico).
Tamaño del encabezadoEncabezado más pequeño (8 bytes).Encabezado más grande (20 bytes como mínimo).
SecuenciaciónNo secuencia los paquetes de datos.Secuencia los paquetes de datos para garantizar una entrega ordenada.

Una última reflexión sobre seguridad

Cuando elijas entre los protocolos UDP y TCP para tus propios proyectos, ten presente que, aunque la velocidad de UDP lo haga muy atractivo, es intrínsecamente más vulnerable a problemas de seguridad como la suplantación (spoofing) y los ataques de denegación de servicio. El mecanismo de saludo de TCP evitaría que las direcciones IP falsificadas causaran problemas, pero TCP tampoco es inmune. En los últimos años, los ataques DDoS de amplificación han secuestrado este mecanismo de ida y vuelta para forzar al servidor a esperar un mensaje ACK final que nunca llega.

Si quieres una explicación visual de las diferencias entre TCP y UDP, consulta TCP vs. UDP: ¿cuál es la diferencia?

Quizá también te interese…

¿Listo para simplificar los aspectos más complejos de las TI?