TCP vs. UDP

Hay dos tipos de tráfico de Protocolo de Internet (IP). Son TCP o Protocolo de Control de Transmisión y UDP o Protocolo de datagramas de usuario. TCP está orientado a la conexión: una vez establecida la conexión, los datos se pueden enviar de forma bidireccional. UDP es un protocolo de Internet sin conexión más simple. Múltiples mensajes se envían como paquetes en trozos usando UDP.

Gráfica comparativa

Cuadro comparativo TCP versus UDP
TCPUDP
Acrónimo de Protocolo de Control de Transmisión Protocolo de datagrama de usuario o Protocolo de datagrama universal
Conexión TCP es un protocolo orientado a la conexión.. UDP es un protocolo sin conexión.
Función A medida que un mensaje se abre paso a través de Internet de una computadora a otra. Esto es conexión basada. UDP es también un protocolo utilizado en el transporte o transferencia de mensajes. Esto no se basa en la conexión, lo que significa que un programa puede enviar una carga de paquetes a otro y ese sería el final de la relación.
Uso TCP es adecuado para aplicaciones que requieren alta confiabilidad, y el tiempo de transmisión es relativamente menos crítico. UDP es adecuado para aplicaciones que necesitan una transmisión rápida y eficiente, como los juegos. La naturaleza sin estado de UDP también es útil para servidores que responden a pequeñas consultas de un gran número de clientes.
Uso por otros protocolos. HTTP, HTTPs, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Pedidos de paquetes de datos TCP reordena los paquetes de datos en el orden especificado. UDP no tiene un orden inherente ya que todos los paquetes son independientes entre sí. Si se requiere un pedido, debe ser administrado por la capa de aplicación.
Velocidad de transferencia La velocidad para TCP es más lenta que UDP. UDP es más rápido porque no se intenta la recuperación de errores. Es un protocolo de "mejor esfuerzo"..
Confiabilidad Existe una garantía absoluta de que los datos transferidos permanecen intactos y llegan en el mismo orden en que se enviaron.. No hay garantía de que los mensajes o paquetes enviados alcancen en absoluto.
Tamaño del encabezado El tamaño del encabezado TCP es de 20 bytes El tamaño del encabezado UDP es de 8 bytes.
Campos de encabezado comunes Puerto de origen, Puerto de destino, Suma de cheques Puerto de origen, Puerto de destino, Suma de cheques
Streaming de datos Los datos se leen como un flujo de bytes, no se transmiten indicaciones distintivas a los límites del mensaje de señal (segmento). Los paquetes se envían individualmente y se comprueba su integridad solo si llegan. Los paquetes tienen límites definidos que se respetan cuando se reciben, lo que significa que una operación de lectura en el zócalo del receptor generará un mensaje completo tal como se envió originalmente.
Peso TCP es de peso pesado TCP requiere tres paquetes para configurar una conexión de socket, antes de que se pueda enviar cualquier información de usuario. TCP maneja la confiabilidad y el control de congestión.. UDP es ligero. No hay pedidos de mensajes, conexiones de seguimiento, etc. Es una pequeña capa de transporte diseñada sobre IP.
Control de flujo de datos TCP hace control de flujo. TCP requiere tres paquetes para configurar una conexión de socket, antes de que se pueda enviar cualquier información de usuario. TCP maneja la confiabilidad y el control de congestión.. UDP no tiene una opción para el control de flujo
Comprobación de errores TCP realiza la comprobación de errores y la recuperación de errores. Los paquetes erróneos se retransmiten desde el origen al destino. UDP realiza la comprobación de errores, pero simplemente descarta los paquetes erróneos. No se intenta recuperar el error.
Campos 1. Número de secuencia, 2. Número de acuse de recibo, 3. Desplazamiento de datos, 4. Reservado, 5. Bit de control, 6. Ventana, 7. Puntero urgente 8. Opciones, 9. Relleno, 10. Verificación de suma, 11. Puerto de origen, 12. Puerto de destino 1. Longitud, 2. Puerto de origen, 3. Puerto de destino, 4. Suma de verificación
Reconocimiento Segmentos de reconocimiento Sin Reconocimiento
Apretón de manos SYN, SYN-ACK, ACK Sin apretón de manos (protocolo sin conexión)

Contenidos: TCP vs UDP

  • 1 diferencias en las características de transferencia de datos
    • 1.1 Fiabilidad
    • 1.2 Pedidos
    • 1.3 conexión
    • 1.4 Método de transferencia
    • 1.5 Detección de errores
  • 2 Como funcionan TCP y UDP
  • 3 aplicaciones diferentes de TCP y UDP
    • 3.1 TCP vs. UDP para servidores de juegos
  • 4 referencias

Diferencias en las características de transferencia de datos

TCP asegura una entrega confiable y ordenada de un flujo de bytes del usuario al servidor o viceversa. UDP no está dedicado a conexiones de extremo a extremo y la comunicación no verifica la preparación del receptor.

Confiabilidad

TCP es más confiable ya que administra el reconocimiento de mensajes y las retransmisiones en caso de piezas perdidas. Por lo tanto, no hay absolutamente ningún dato perdido. UDP no garantiza que la comunicación haya llegado al receptor ya que los conceptos de acuse de recibo, tiempo de espera y retransmisión no están presentes.

Ordenando

TCP Las transmisiones se envían en una secuencia y se reciben en la misma secuencia. En el caso de que los segmentos de datos lleguen en un orden incorrecto, TCP reordena y entrega la aplicación. En el caso de UDP, La secuencia de mensajes enviados no se puede mantener cuando llega a recibir la aplicación. No hay absolutamente ninguna manera de predecir el orden en que se recibirá el mensaje.

Conexión

TCP es una conexión de gran peso que requiere tres paquetes para una conexión de zócalo y maneja la confiabilidad y el control de congestión. UDP es una capa de transporte liviana diseñada sobre una IP. No hay conexiones de seguimiento ni pedidos de mensajes..

Método de transferencia

TCP lee los datos como un flujo de bytes y el mensaje se transmite a los límites del segmento. UDP Los mensajes son paquetes que se envían individualmente y, a su llegada, se comprueba su integridad. Los paquetes tienen límites definidos mientras que el flujo de datos no tiene ninguno.

Detección de errores

UDP trabaja sobre una base de "mejor esfuerzo". El protocolo admite la detección de errores mediante suma de comprobación, pero cuando se detecta un error, el paquete se descarta. No se intenta la retransmisión del paquete para la recuperación de ese error. Esto se debe a que UDP es generalmente para aplicaciones sensibles al tiempo como juegos o transmisión de voz. La recuperación del error sería inútil porque para cuando se reciba el paquete retransmitido, no será de ninguna utilidad..

TCP utiliza tanto la detección de errores como la recuperación de errores. Los errores se detectan a través de la suma de comprobación y, si un paquete es erróneo, el receptor no lo confirma, lo que desencadena una retransmisión por parte del remitente. Este mecanismo operativo se denomina acuse de recibo positivo con retransmisión (PAR).

Cómo funcionan TCP y UDP

Una conexión TCP se establece mediante un protocolo de enlace de tres vías, que es un proceso de inicio y confirmación de una conexión. Una vez establecida la conexión se puede iniciar la transferencia de datos. Después de la transmisión, la conexión se termina cerrando todos los circuitos virtuales establecidos.

UDP utiliza un modelo de transmisión simple sin diálogos implícitos para garantizar la confiabilidad, el orden o la integridad de los datos. Por lo tanto, UDP proporciona un servicio no confiable y los datagramas pueden llegar fuera de servicio, aparecer duplicados o desaparecer sin previo aviso. UDP asume que la verificación y corrección de errores no es necesaria o realizada en la aplicación, evitando la sobrecarga de dicho procesamiento en el nivel de la interfaz de red. A diferencia de TCP, UDP es compatible con difusiones de paquetes (envío a todos en la red local) y multidifusión (envío a todos los suscriptores).

Diferentes aplicaciones de TCP y UDP

La navegación web, el correo electrónico y la transferencia de archivos son aplicaciones comunes que utilizan TCP. TCP se utiliza para controlar el tamaño del segmento, la tasa de intercambio de datos, el control de flujo y la congestión de la red. Se prefiere TCP cuando se requieren recursos de corrección de errores a nivel de interfaz de red. UDP es utilizado en gran medida por aplicaciones sensibles al tiempo, así como por servidores que responden a pequeñas consultas de una gran cantidad de clientes. UDP es compatible con la difusión de paquetes, el envío a todos en una red y la multidifusión, el envío a todos los suscriptores. UDP se usa comúnmente en el Sistema de nombres de dominio, Voz sobre IP, Protocolo trivial de transferencia de archivos y juegos en línea.

TCP vs. UDP para los servidores de juegos

Para los juegos en línea de multijugador masivo (MMO), los desarrolladores a menudo tienen que hacer una elección arquitectónica entre el uso de conexiones persistentes UDP o TCP. Las ventajas de TCP son las conexiones persistentes, la confiabilidad y la posibilidad de utilizar paquetes de tamaños arbitrarios. El mayor problema con TCP en este escenario es su algoritmo de control de congestión, que trata la pérdida de paquetes como un signo de limitaciones de ancho de banda y limita automáticamente el envío de paquetes. En redes 3G o Wi-Fi, esto puede causar una latencia significativa.

El experimentado desarrollador Christoffer Lernö sopesó los pros y los contras y recomienda los siguientes criterios para elegir si usar TCP o UDP para su juego:

  • Use HTTP sobre TCP para hacer consultas ocasionales sin estado iniciadas por el cliente cuando está bien tener un retraso ocasional.
  • Use sockets TCP simples y persistentes si el cliente y el servidor envían paquetes de forma independiente, pero una demora ocasional es correcta (por ejemplo, póker en línea, muchos MMO).
  • Use UDP si el cliente y el servidor pueden enviar paquetes de forma independiente y el retraso ocasional no está bien (por ejemplo, la mayoría de los juegos de acción multijugador, algunos MMO).

Referencias

  • Wikipedia: Protocolo de Control de Transmisión
  • Wikipedia: User Datagram Protocol
  • UDP vs TCP para servidores de juegos
  • El Protocolo de Control de Transmisión