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.
TCP | UDP | |
---|---|---|
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) |
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.
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.
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.
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..
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.
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).
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).
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.
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: