Protocolos TCP y UDP: diferencias y usos

Si estás empezando con TCP/IP entonces probablemente te preguntes por qué hay dos protocolos de capa de transporte- ( TCP y UDP ).

¿Por qué no tenemos sólo uno? Después de todo, TCP parece ser la mejor opción de todas formas.

Diferencias entre TCP y UDP

El objetivo de este tutorial es explicar las diferencias básicas entre los dos protocolos y por qué se necesita cada uno, y cuándo se usan.

Tanto el TCP como el UDP se sitúan en la capa de transporte de protocolos TCP/IP y ambos utilizan el protocolo IP.

Las aplicaciones están diseñadas para usar uno u otro protocolo dependiendo de sus requerimientos.

¿Qué es TCP?

El TCP/IP te ayuda a determinar cómo un computador específico debe estar conectado a Internet y cómo puedes transmitir datos entre ellos. Te ayuda a crear una red virtual cuando se conectan varias redes de computadores.

TCP/IP significa Protocolo de Control de Transmisión/Protocolo de Internet. Está diseñado específicamente como un modelo para ofrecer un flujo de bytes altamente fiable y de extremo a extremo a través de una red de Internet poco fiable.

¿Qué es UDP?

UDP es un protocolo orientado a los Datagramas (o User Datagram Protocol, por sus siglas en inglés). Se utiliza para la transmisión de red de tipo broadcast y multicast. La forma completa de UDP es el Protocolo de Datagrama de Usuario (Un datagrama es una unidad de transferencia asociada con una red de conmutación de paquetes.) El protocolo UDP funciona casi de manera similar a TCP, pero elimina todo el material de comprobación de errores, toda la comunicación de ida y vuelta y la entrega.

DIFERENCIAS CLAVE:

  • El TCP es un protocolo orientado a conexión, mientras que el UDP es un protocolo sin previa conexión.
  • La velocidad del TCP es más lenta mientras que la del UDP es más rápida.
  • TCP usa el protocolo de handshake como SYN, SYN-ACK, ACK mientras que UDP no usa protocolos de handshake.
  • TCP hace la comprobación de errores y también hace la recuperación de errores, por otro lado, UDP hace la comprobación de errores, pero descarta los paquetes erróneos.
  • TCP tiene segmentos de reconocimiento, pero UDP no tiene ningún segmento de reconocimiento.
  • TCP es pesado, y UDP es ligero.

¿Cómo funciona el TCP?

Se establece una conexión TCP con la ayuda de un handshake de tres vías. Es un proceso de inicio y reconocimiento de una conexión. Una vez que se establece la conexión, comienza la transferencia de datos, y cuando el proceso de transmisión termina, la conexión se termina por el cierre de un circuito virtual establecido.

handshake de tres vías

¿Cómo funciona el UDP?

UDP utiliza un método de transmisión simple sin diálogos implícitos de handshake para el orden, la fiabilidad o la integridad de los datos. UDP también asume que la comprobación y corrección de errores no es importante ni se realiza en la aplicación, para evitar la sobrecarga de dicho procesamiento a nivel de la interfaz de la red. También es compatible con las emisiones por paquetes y la multidifusión.

Características del TCP

Aquí, hay algunas características importantes del TCP:

  • Acuse de recibo de la entrega.
  • Retransmisión.
  • Retrasa la transmisión cuando la red está congestionada.
  • Fácil detección de errores.

Características del UDP

Aquí, hay algunas características importantes de UDP:

  • Soporta aplicaciones intensivas en ancho de banda que toleran la pérdida de paquetes.
  • Menos retraso.
  • Envía la cantidad de paquetes a granel.
  • Posibilidad de pérdida de datos.
  • Permite pequeñas transacciones (búsqueda DNS)

Diferencias entre el TCP y el UDP

Aquí están las diferencias entre el TCP y el UDP:

TCP UDP
Es un protocolo orientado a conexión. Es un protocolo sin previa conexión.
El TCP lee los datos como flujos de bytes, y el mensaje se transmite a los límites de los segmentos. Los mensajes UDP contienen paquetes que son enviados uno por uno. También comprueba la integridad en el momento de la llegada.
Los mensajes TCP se abren camino a través de Internet de un computador a otro. No está basado en la conexión, así que un programa puede enviar muchos paquetes a otro.
El TCP reorganiza los paquetes de datos en el orden específico. El protocolo UDP no tiene un orden fijo porque todos los paquetes son independientes entre sí.
La velocidad para el TCP es más lenta. UDP es más rápido ya que no se intenta la recuperación de errores.
El tamaño de la cabecera es de 20 bytes. El tamaño de la cabecera es de 8 bytes.
El TCP es pesado. TCP necesita tres paquetes para establecer una conexión antes de que se pueda enviar cualquier dato de usuario. UDP es ligero. No hay conexiones de control, ordenamiento de mensajes, etc.
TCP hace la comprobación de errores y también hace la recuperación de errores. UDP realiza la comprobación de errores, pero descarta los paquetes defectuosos.
Segmentos de confirmación.No hay segmentos de confirmación.
Usa el protocolo de handshake como SYN, SYN-ACK, ACK No hay handshake
El TCP es fiable, ya que garantiza la entrega de datos al router de destino.La entrega de datos al destino no puede ser garantizada en UDP.
El TCP ofrece amplios mecanismos de comprobación de errores porque proporciona control de flujo y reconocimiento de datos.El UDP tiene un único mecanismo de comprobación de errores el cual es la suma de comprobación o checksum.

Aplicación del TCP

Aquí están los pros y los contras de usar el modelo TCP/IP:

  • Te ayuda a establecer/configurar una conexión entre diferentes tipos de computadores.
  • Funciona independientemente del sistema operativo.
  • Soporta muchos protocolos de enrutamiento.
  • Permite la interconexión entre las organizaciones.
  • Puede ser operado independientemente.
  • Soporta varios protocolos de enrutamiento.
  • TCP puede ser usado para establecer una conexión entre dos computadoras.

Aplicación de UDP

  • El método UDP es utilizado en gran medida por aplicaciones sensibles al tiempo, así como por servidores que responden a pequeñas consultas de una base de clientes más grande.
  • El UDP es compatible con la transmisión de paquetes para el envío en toda la red y para el envío de multidifusión.
  • También se utiliza en el Sistema de Nombres de Dominio, Voz sobre IP y juegos en línea.

Ventajas del TCP

Aquí están los pros y los contras del TCP:

  • Te ayuda a establecer/configurar una conexión entre diferentes tipos de computadores.
  • Funciona independientemente del sistema operativo.
  • Soporta muchos protocolos de enrutamiento.
  • Permite la interconexión entre las organizaciones.
  • El modelo TCP/IP tiene una arquitectura cliente-servidor altamente escalable.
  • Puede funcionar de forma independiente.
  • Soporta varios protocolos de enrutamiento.
  • Puede ser usado para establecer una conexión entre dos computadores.

Ventajas de UDP

Aquí están los pros y los contras del UDP:

  • Nunca te restringe a un modelo de comunicación basado en la conexión; por eso la latencia de inicio en aplicaciones distribuidas es baja.
  • El receptor de los paquetes UDP los recibe sin administrar, lo que también incluye límites de bloque.
  • Las transmisiones de difusión y multidifusión también están disponibles con UDP.
  • La pérdida de datos puede producirse.
  • Funcional para pequeñas transacciónes(búsqueda DNS).
  • Una aplicación de ancho de banda intensivo que soporta la pérdida de paquetes

Desventajas del TCP

Aquí, están las desventajas de usar el TCP:

  • El TCP nunca concluye una transmisión sin que se le pidan explícitamente todos los datos en transito.
  • No se puede utilizar para la transmisión de radiodifusión o multidifusión.
  • TCP no tiene límites de bloque, así que tienes que crear los tuyos propios.
  • TCP ofrece muchas características que no quieres. Puede hacer perder ancho de banda, tiempo o esfuerzo.
  • En este modelo, la capa de transporte no garantiza la entrega de paquetes.
  • Reemplazar el protocolo en TCP/IP no es fácil.
  • No ofrece una separación clara de sus servicios, interfaces y protocolos.

Desventajas del UDP

Aquí están los principales contras y desventajas del UDP:

  • En el protocolo de UDP, un paquete no puede ser entregado o puede ser entregado dos veces. Puede ser entregado en desorden, por lo que no se obtiene ninguna información.
  • Los routers son bastante descuidados con el UDP, así que nunca lo retransmiten si colisiona.
  • UDP no tiene control de congestión, y control de flujo, por lo que la implementación es el trabajo de una aplicación de usuario.
  • A UDP sufre de pérdida de paquetes

¿Cuándo usar UDP y TCP?

  • TCP es una opción ideal, e incluso tiene asociada una sobrecarga, Por lo tanto, cuando la mayor parte de la sobrecarga está en la conexión, su aplicación se mantiene conectada durante cualquier periodo de tiempo.
  • UDP es ideal para usar con multimedia como VoIP.
  • Utilice los sockets TCP cuando tanto el cliente como el servidor envían paquetes de forma independiente en ese momento; un retraso ocasional es aceptable. (por ejemplo, en el póquer en línea).
  • Debe utilizar el UDP de usuario si tanto el cliente como el servidor pueden enviar paquetes por separado, y un retraso ocasional no es aceptable. (por ejemplo, juegos multijugador).