TCP VS. UDP

TCP VS. UDP

Hay dos tipos de tráfico de protocolo de Internet (IP). Ellos son TCP o Protocolo de Control de Transmisión y UDP o Protocolo de datagrama de usuario. TCP está orientado a la conexión: una vez que se establece una conexión, los datos pueden enviarse bidireccionales. UDP es un protocolo de Internet más simple y sin conexión. Múltiples mensajes se envían como paquetes en fragmentos usando UDP.

Cuadro comparativo

Diferencias - similitudes - TCP versus tabla de comparación UDP
TCPUDP
Acrónimo para Protocolo de Control de Transmisión Protocolo de datagrama de usuario o protocolo de datagrama universal
Conexión El protocolo de control de transmisión es un protocolo orientado a la conexión. El protocolo de datagrama del usuario es un protocolo sin conexión.
Función Como un mensaje se abre paso a través de Internet de una computadora a otra. Esto se basa en la conexión. UDP también es 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 fiabilidad, y el tiempo de transmisión es relativamente menos crítico. UDP es adecuado para aplicaciones que necesitan transmisión rápida y eficiente, como los juegos. La naturaleza sin estado de UDP también es útil para servidores que responden pequeñas consultas de grandes cantidades de clientes.
Uso por otros protocolos Http, https, ftp, smtp, telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Pedido de paquetes de datos TCP reorganiza los paquetes de datos en el pedido especificado. UDP no tiene orden inherente, ya que todos los paquetes son independientes entre sí. Si se requiere pedidos, 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 la recuperación de errores no se intenta. Es un protocolo de "mejor esfuerzo".
Fiabilidad Existe una garantía absoluta de que los datos transferidos permanecen intactos y llegan en el mismo orden en que se envió. No hay garantía de que los mensajes o paquetes enviados llegarán en absoluto.
Tamaño de encabezado El tamaño del encabezado de TCP es de 20 bytes El tamaño del encabezado de UDP es de 8 bytes.
Campos de encabezado comunes Puerto de origen, puerto de destino, suma de verificación Puerto de origen, puerto de destino, suma de verificación
Transmisión de datos Los datos se leen como una secuencia 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 revisan la integridad solo si llegan. Los paquetes tienen límites definidos que se honran al recibir, lo que significa que una operación de lectura en el enchufe del receptor producirá un mensaje completo a medida que se envió originalmente.
Peso TCP es pesado. TCP requiere tres paquetes para configurar una conexión de socket, antes de que se puedan enviar los datos del usuario. TCP maneja la fiabilidad y el control de congestión. UDP es liviano. No hay ordenamiento de mensajes, ni 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 puedan enviar los datos del usuario. TCP maneja la fiabilidad y el control de congestión. UDP no tiene una opción para el control de flujo
Comprobación de errores TCP realiza comprobación de errores y recuperación de errores. Los paquetes erróneos se retransmiten desde la fuente hasta el destino. UDP realiza la verificación de errores, pero simplemente descarta paquetes erróneos. No se intenta la recuperación de errores.
Campos 1. Número de secuencia, 2. Número ACK, 3. Compensación de datos, 4. Reservado, 5. Bit de control, 6. Ventana, 7. Puntero urgente 8. Opciones, 9. Relleno, 10. Verifique la suma, 11. Puerto fuente, 12. Puerto de destino 1. Longitud, 2. Puerto de origen, 3. Puerto de destino, 4. Comprobar la suma
Reconocimiento Segmentos de reconocimiento Sin reconocimiento
Apretón de manos Syn, syn-ack, ack Sin apretón de manos (protocolo sin conexión)

Diferencias en las funciones de transferencia de datos

TCP Asegura una entrega confiable y ordenada de un flujo de bytes de usuario a servidor o viceversa. UDP no se dedica a las conexiones de extremo a extremo y la comunicación no verifica la preparación del receptor.

Fiabilidad

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 datos faltantes. UDP no garantiza que la comunicación haya llegado al receptor ya que los conceptos de reconocimiento, tiempo de espera y retransmisión no están presentes.

Pedido

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

Conexión

TCP es una conexión de peso pesado que requiere tres paquetes para una conexión de socket y maneja el control de la congestión y la confiabilidad. 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 flujo de bytes y el mensaje se transmite a los límites de segmento. UDP Los mensajes son paquetes que se envían individualmente y a la llegada se verifican por su integridad. Los paquetes han definido los límites, mientras que el flujo de datos no tiene ninguno.

Detección de errores

UDP funciona en una base de "mejor esfuerzo". El protocolo admite la detección de errores a través de la suma de verificació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 suele ser 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 uso.

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 verificación y si un paquete es erróneo, el receptor no lo reconoce, lo que desencadena una retransmisión por parte del remitente. Este mecanismo operativo se llama reconocimiento positivo con retransmisión (PAR).

Cómo funcionan TCP y UDP

Se establece una conexión TCP a través de un apretón de manos de tres vías, que es un proceso de iniciar y reconocer una conexión. Una vez que se establece la conexión, la transferencia de datos puede comenzar. Después de la transmisión, la conexión se termina al cerrar todos los circuitos virtuales establecidos.

UDP utiliza un modelo de transmisión simple sin diálogos implícitos de sacudida a mano para garantizar la confiabilidad, el pedido o la integridad de los datos. Por lo tanto, UDP proporciona un servicio poco confiable y los datagramas pueden llegar fuera de servicio, parecer duplicados o desaparecer sin previo aviso. UDP supone que la verificación y corrección de errores no es necesario o realizado en la aplicación, evitando la sobrecarga de dicho procesamiento a nivel de interfaz de red. A diferencia de TCP, UDP es compatible con las transmisiones de paquetes (enviando todo en la red local) y la multidifusión (envíe 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 instalaciones de corrección de errores a nivel de interfaz de red. UDP se usa en gran medida mediante aplicaciones sensibles a tiempo, así como por servidores que responden pequeñas consultas de una gran cantidad de clientes. UDP es compatible con la transmisión de paquetes, enviando a todos en una red y multidifusión, enviando a todos los suscriptores. UDP se usa comúnmente en el sistema de nombres de dominio, la voz a través de IP, protocolo de transferencia de archivos triviales y juegos en línea.

TCP VS. UDP para servidores de juegos

Para juegos en línea multijugador masivo (MMO), los desarrolladores a menudo tienen que tomar una elección arquitectónica entre usar conexiones persistentes UDP o TCP. Las ventajas de TCP son conexiones persistentes, confiabilidad y poder usar 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 las redes 3G o Wi-Fi, esto puede causar una latencia significativa.

El desarrollador experimentado 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 de estado sin estado iniciadas ocasionales cuando esté bien tener un retraso ocasional.
  • Use enchufes TCP lisos persistentes si tanto el cliente como el servidor envían de forma independiente los paquetes, pero un retraso ocasional está bien (e.gramo. Póker en línea, muchos MMO).
  • Use UDP si tanto el cliente como el servidor pueden enviar paquetes de forma independiente y el retraso ocasional no está bien (e.gramo. La mayoría de los juegos de acción multijugador, algunos MMO).