¿Cuál es la diferencia entre TCP y UDP?

Ambas respuestas a continuación son correctas, solo lo estoy informando.

1. El Protocolo de control de transmisión es un protocolo orientado a la conexión, lo que significa que requiere un protocolo de enlace para establecer comunicaciones de extremo a extremo. (Apretón de manos de 3 vías)

Una vez que se establece una conexión, los datos del usuario pueden enviarse bidireccionalmente a través de la conexión.

Está
-> Confiable : TCP gestiona el reconocimiento de mensajes , la retransmisión y el tiempo de espera . Se realizan múltiples intentos para entregar el mensaje.

Eso significa que si un paquete se pierde en el camino, el servidor volverá a solicitar la parte perdida.
En TCP, no faltan datos o, en caso de múltiples tiempos de espera, la conexión se cae.

-> Pedido : si se envían dos mensajes por una conexión en secuencia, el primer mensaje llegará primero a la aplicación receptora.
Cuando los segmentos de datos llegan en el orden incorrecto, los buffers TCP retrasan los datos fuera de servicio hasta que todos los datos puedan ser reordenados y entregados a la aplicación.

-> Peso 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 confiabilidad y el control de congestión.

-> Streaming : 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 mejores ejemplos de uso de TCP son: HTTP, HTTP, FTP, SMTP, Telnet, etc.

2. User Datagram Protocol es un protocolo sin conexión basado en mensajes más simple. Los protocolos sin conexión no configuran una conexión de extremo a extremo dedicada.
La comunicación se logra transmitiendo información en una dirección desde el origen al destino sin verificar la disponibilidad o el estado del receptor.

-> No confiable : cuando se envía un mensaje UDP, no se puede saber si llegará a su destino; podría perderse en el camino.
No existe un concepto de reconocimiento, retransmisión o tiempo de espera.

-> No ordenado : si se envían dos mensajes al mismo destinatario, no se puede predecir el orden en que llegarán.

-> Ligero – No hay orden de mensajes, no hay conexiones de seguimiento, etc. Es una pequeña capa de transporte diseñada sobre IP.

-> Datagramas : los paquetes se envían individualmente y se verifica su integridad solo si llegan.
Los paquetes tienen límites definidos que se cumplen al recibirlos, lo que significa que una operación de lectura en el zócalo del receptor producirá un
mensaje completo como se envió originalmente.

-> Sin control de congestión – UDP en sí mismo no evita la congestión, a menos que implementen medidas de control de congestión a nivel de aplicación.

-> Emisiones : al no tener conexión, UDP puede emitir: los paquetes enviados se pueden direccionar para que todos los dispositivos de la subred puedan recibirlos.

mejores ejemplos de UDP: DNS, DHCP, TFTP, SNMP, RIP, VOIP, etc.

En resumen, TCP primero establece una conexión confiable adecuada y luego los datos se transmiten con el reconocimiento adecuado, mientras que UDP solo transmite los datos, no le importa si el destinatario está recibiendo datos o no.

Entonces, si tomamos el ejemplo del servidor DHCP, allí no necesita una conexión confiable con su servidor DHCP, porque solo necesita una dirección IP para su sistema. No tiene sentido establecer una conexión confiable adecuada. Entonces usamos UDP en lugar de TCP.

Espero que hayas conseguido lo que estabas buscando ……

La diferencia, esencialmente, está en la detección y corrección de errores.

Se puede pensar que TCP tiene una conversación telefónica. Alguien lo llama, su teléfono suena indicando que alguien está tratando de contactarlo y usted decide aceptarlo o ignorarlo. Si acepta, levanta el teléfono y dice “¿Hola?” señalando que está en el teléfono y listo para escuchar, y la otra persona generalmente responde con “Hola, este es (quien sea)”. Este es el “protocolo”, por así decirlo, de comenzar una conversación telefónica y tratar de iniciar una conversación de cualquier otra manera confundirá a la otra parte y probablemente lo colgará.

TCP tiene un protocolo de establecimiento similar, denominado “protocolo de enlace de tres vías”. Un “cliente” (alguien que solicita una conexión) enviará un mensaje “SYN” (solicitud de sincronización) a un “servidor” que esté escuchando estos mensajes. El servidor, si decide aceptar la solicitud, enviará un mensaje “SYN / ACK”, confirmando la solicitud anterior y solicitando su propio “canal de retorno” de comunicación. El cliente luego envía un mensaje “ACK” confirmando la solicitud del servidor, y se establece un canal de comunicación bidireccional.

Además, TCP tiene características inherentes a la forma en que un mensaje de datos de gran tamaño se organiza en paquetes más pequeños, para garantizar que estos paquetes de datos, que pueden viajar a través de diferentes rutas entre las dos computadoras a través de Internet, se puedan volver a ensamblar en su orden correcto, y que la detección de cualquier paquete que se haya perdido y la solicitud de reemplazo es relativamente fácil y eficiente. Esto permite que se envíen grandes cantidades de datos a través de las redes al tiempo que garantiza que los datos recibidos por el otro lado sean, finalmente, los que envió el remitente. La desventaja es que estas características adicionales aumentan la sobrecarga de datos de la comunicación; un paquete de información solo puede tener un tamaño máximo fijo, por lo que cuanta más información sobre la comunicación tenga que incluir, menos espacio tendrá disponible para lo que realmente desea comunicar.

UDP puede considerarse más como walkie-talkies o radio CB. presiona un botón y habla, y cualquiera que escuche en esa frecuencia lo escuchará, a menos que también esté usando la misma frecuencia para hablar. Dos personas que hablan al mismo tiempo en la misma frecuencia no pueden escucharse, y sonarán como galimatías a cualquier tercera persona. Puede crear “protocolos” adicionales para evitar hablar entre ellos o pedir una respuesta o repetir un mensaje anterior, y los usuarios de CB lo han hecho, pero la tecnología no previene ni tolera explícitamente la diafonía, ni proporciona métodos para resolver pérdida de información cuando suceden cosas así.

La estructura de paquetes de UDP es mucho más simple que la de TCP, y prácticamente no hay mensajes predefinidos como los de establecimiento de conexión (porque UDP es un protocolo “sin conexión”). Todo el “encabezado” del paquete contiene las direcciones de origen y destino, la longitud de los datos y la suma de verificación. Sin número de secuencia (por lo que no se pueden organizar múltiples datagramas UDP en el orden en que se enviaron, al menos no mediante una implementación del protocolo), sin opciones de transmisión, sin confirmación de recepción, sin nada. Cuando UDP se transmite a través de una red IPv4 (que ya es casi todo), se utiliza un “pseudo-encabezado” que contiene los campos necesarios para el enrutamiento a través de IP, pero todavía no hay funciones de corrección de errores o retransmisión incorporadas en el protocolo; la aplicación que usa UDP debe manejar paquetes perdidos o faltantes (si le importa).

En cuanto al uso, TCP es el protocolo principal para la transmisión de datos a través de Internet y redes Ethernet más pequeñas, porque sus características de detección y corrección de errores permiten enviar y reconfigurar grandes flujos de datos. UDP se utiliza principalmente para mensajes pequeños y únicos que representan la totalidad de lo que hay que decir en un momento dado. La resolución de nombres de dominio a través de DNS, que es parte integral de Internet, a menudo se maneja con UDP, por ejemplo. Otros mensajes que a menudo se manejan con UDP incluyen “latidos”, mensajes de estado o telemetría enviados entre computadoras para mantenerse informados. La pérdida de un solo mensaje en estos casos no es un gran problema, ya que la vida útil de los datos suele ser corta.

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 que se establece una conexión, los datos pueden enviarse bidireccionales. UDP es un protocolo de Internet más simple y sin conexión. Se envían múltiples mensajes como paquetes en fragmentos utilizando UDP.

Cuadro comparativo

Tabla de comparación de TCP versus UDP

TCP

UDP

Acrónimo de

Protocolo de Control de Transmisión

Protocolo de datagramas de usuario o protocolo de datagramas 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 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 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 consultas pequeñas de un gran número de clientes.

Pedido de paquetes de datos

TCP reorganiza 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 ordenar, 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”.

Fiabilidad

Existe una garantía absoluta de que los datos transferidos permanecen intactos y llegan en el mismo orden en que fueron enviados.

No hay garantía de que los mensajes o paquetes enviados lleguen 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 verificación

Puerto de origen, puerto de destino, suma de verificación

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 verifica su integridad solo si llegan. Los paquetes tienen límites definidos que se cumplen al recibirlos, 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 pesado. TCP requiere tres paquetes para configurar una conexión de socket, antes de que se puedan enviar datos de usuario. TCP maneja la confiabilidad y el control de congestión.

UDP es liviano. No hay orden de mensajes, no hay 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 datos 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 una comprobación de errores, pero simplemente descarta los paquetes erróneos. No se ha intentado recuperar el error.

Campos

1. Número de secuencia, 2. Número de AcK, 3. Desplazamiento de datos, 4. Reservado, 5. Bit de control, 6. Ventana, 7. Puntero urgente 8. Opciones, 9. Relleno, 10. Suma de verificación, 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 acuse de recibo

Sin acuse de recibo

Apretón de manos

SYN, SYN-ACK, ACK

Sin apretón de manos (protocolo sin conexión)

No soy un experto, pero espero que esto ayude.

Comencemos con las similitudes.

El protocolo de capa de transporte es el protocolo de extremo a extremo de capa 4. Un ejemplo de esto es la suma de verificación proporcionada en el encabezado. A diferencia de la suma de verificación proporcionada en la Capa 2 y la Capa 3, si observa detenidamente, observará que esta suma de verificación verifica la integridad de los datos entre los dos hosts finales. Para que los enrutadores o conmutadores no introdujeran errores en la ruta.

Esta es la única ventaja que UDP ofrece sobre los paquetes IP.

¡Pero TCP ofrece muchísimo más!

Un ejemplo es una conexión con estado .

TCP tiene una fase de establecimiento de conexión con las solicitudes SYN, SYN-ACK y ACK. Lo que esto logra es que TCP garantiza que el host final está escuchando cuando el host emisor comienza a enviar datos. TCP también requiere que el receptor envíe ACK cuando recibe paquetes Una vez que se realiza la conversación, la conexión se cierra.

UDP no tiene fase de establecimiento de conexión o ACK, lo que significa que el remitente no tiene forma de saber si el receptor ha escuchado algo que el remitente ha estado enviando.

Espera, ¿significa esto que una persona que está usando UDP nunca podrá asegurarse de que se hayan recibido sus paquetes?

No exactamente, lo que esto significa es que la aplicación que se ejecuta sobre UDP tiene que ocuparse de estas características. Entonces, el programador que está creando una aplicación no solo debe trabajar en las características de la aplicación, sino que también debe ocuparse de dividir los paquetes, enviarlos a través de un socket UDP (más sobre esto más adelante) y recibir alguna forma de reconocimiento del receptor de que recibió Paquetes intactos. ¿Debería el receptor responder por cada paquete? por cada diez paquetes? nunca debería responder? El programador es libre de decidir.

¿El programador que usa una aplicación TCP también tiene que preocuparse por romper paquetes?

No, esto nos lleva a una segunda característica de TCP, es decir , orientada a la transmisión
La aplicación puede enviar una secuencia de bytes a TCP y TCP es lo suficientemente inteligente como para descubrir la MTU, dividir los bytes, asignar números de secuencia y enviarlos al receptor.

El programador UDP tiene que dividir sus datos en bloques y darles uno a la vez a UDP para formar un datagrama.

Entonces, si TCP asigna números de secuencia y recibe confirmación después de cada paquete, se está introduciendo otra característica. entrega en orden.

Un host de destino puede recibir paquetes fuera de servicio por una variedad de razones. Un paquete podría haberse perdido, retrasado debido a la congestión. El receptor TCP tiene un búfer para guardar los paquetes antes de enviarlo a la capa de aplicación. asegúrese de que todos los paquetes en el búfer se reciban en orden antes de enviarlo a la aplicación. Esto se realiza enviando acuses de recibo del siguiente paquete secuencial que el receptor está esperando.

Ahora, dado que el receptor tiene un búfer, el remitente debe asegurarse de que no causa que el búfer se desborde. Esto se establece a través del control de flujo donde el receptor se comunica si su búfer está lleno.

Una de las características más hermosas de TCP es su control de congestión . Utiliza el concepto de aumento de aditivos y disminuciones multiplicativas (verá gráficos de dientes de sierra) para decidir su velocidad de envío. Con cada ACK sucesivo, aumenta su “tamaño de ventana”, tratando con avidez de aumentar su tasa de envío. Cuando detecta un paquete perdido, supone que hay congestión en la red y baja su velocidad de envío.

Esto ha llevado a una serie de efectos secundarios interesantes, como la disminución de los requisitos de búfer de un enrutador.
Dimensionamiento de las memorias intermedias del enrutador

Las aplicaciones TCP y UDP se comunican (multiplex y demultiplex) a través del socket s. Una diferencia interesante entre los dos es que TCP necesita un par único de sockets para comunicarse entre dos pares de dispositivos finales, mientras que UDP puede apuntar a multipunto. El mismo socket podría estar hablando con un montón de receptores UDP.

TCP es un tema extremadamente vasto y lleva tiempo comprender todas sus características. Recomendaría comenzar con Computer Networking: un enfoque de arriba hacia abajo de James Kurose y Keith Ross . El libro ha explicado estos conceptos realmente bien.

Casi todos los estudiantes de posgrado que han tomado protocolos de Internet han tenido que escribir aplicaciones de igual a igual a través de TCP y UDP. Este proyecto es una buena idea si desea apreciar las diferencias fundamentales entre TCP y UDP.

Como mencioné anteriormente, TCP es un tema muy vasto y hay muchos detalles interesantes con los que me encuentro todos los días. Como por qué Youtube usa TCP sobre UDP. ¡Es un viaje interesante y espero haberte dado lo suficiente para comenzar!

Tcp es un protocolo orientado a la conexión, lo que significa que cuando el servidor envía un empaquetador al cliente, necesita un reconocimiento con el número de secuencia. para que ese servidor envíe otro paquete. En el servidor de protocolo TCP, el paquete de verificación se ha alcanzado correctamente o no. Si el paquete no llega a su destino, puede reenviar el paquete.

Pero en el servidor UDP no se verificó si se alcanzó o no el paquete. incluso al servidor no le importó. solo envía paquetes al cliente, principalmente UDP se usa donde necesitamos alta transmisión como transmisión de videos, transmisión en vivo, etc.

TCP:

Está orientado a la conexión: una vez que se establece una conexión, los datos pueden enviarse bidireccionales.

Cuando carga una página web, su computadora envía paquetes TCP a la dirección del servidor web, pidiéndole que le envíe la página web. El servidor web responde enviando una secuencia de paquetes TCP, que su navegador web une para formar la página web y mostrársela.

TCP garantiza que el destinatario recibirá los paquetes en orden numerándolos. El destinatario envía mensajes al remitente diciéndole que recibió los mensajes. Si el remitente no recibe una respuesta correcta, reenviará los paquetes para asegurarse de que el destinatario los recibió.

UDP:

UDP es un protocolo de Internet más simple y sin conexión. Se envían múltiples mensajes como paquetes en fragmentos utilizando UDP.

Digamos que estás viendo una transmisión de video en vivo. Las transmisiones en vivo a menudo se transmiten usando UDP en lugar de TCP. El servidor solo envía un flujo constante de paquetes UDP a las computadoras que están mirando. Si pierde la conexión durante unos segundos, el video se congelará por un momento y luego saltará al bit actual de la transmisión, omitiendo los bits que perdió. Si experimenta una pérdida menor de paquetes, el video o el audio pueden distorsionarse por un momento a medida que el video continúa reproduciéndose sin los datos faltantes.

Cuando se usa UDP, los paquetes se envían al destinatario. El remitente no esperará para asegurarse de que el destinatario recibió el paquete, simplemente continuará enviando los siguientes paquetes. Si eres el destinatario y te pierdes algunos paquetes UDP, es una lástima, no puedes volver a solicitar esos paquetes. No hay garantía de que obtenga todos los paquetes y no hay forma de pedir un paquete nuevamente si lo pierde.

TCP (Protocolo de control de transmisión) es un estándar que define cómo establecer y mantener una conversación de red a través de la cual los programas de aplicación pueden intercambiar datos. TCP funciona con el Protocolo de Internet (IP), que define cómo las computadoras envían paquetes de datos entre sí. Juntos, TCP e IP son las reglas básicas que definen Internet. TCP está definido por el Grupo de trabajo de ingeniería de Internet (IETF) en el documento de normas de solicitud de comentarios (RFC) número 793.

TCP es un protocolo orientado a la conexión, lo que significa que se establece y mantiene una conexión hasta que los programas de aplicación en cada extremo hayan terminado de intercambiar mensajes. Determina cómo dividir los datos de la aplicación en paquetes que las redes pueden entregar, envía paquetes y acepta paquetes de la capa de red, administra el control de flujo y, debido a que está destinado a proporcionar una transmisión de datos sin errores, maneja la retransmisión de paquetes descartados o ilegibles así como el reconocimiento de todos los paquetes que llegan. En el modelo de comunicación de interconexión de sistemas abiertos (OSI), TCP cubre partes de la capa 4, la capa de transporte y partes de la capa 5, la capa de sesión.

Por ejemplo, cuando un servidor web envía un archivo HTML a un cliente, utiliza el protocolo HTTP para hacerlo. La capa del programa HTTP le pide a la capa TCP que configure la conexión y envíe el archivo. La pila TCP divide el archivo en paquetes, los numera y luego los reenvía individualmente a la capa IP para su entrega. Aunque cada paquete en la transmisión tendrá las mismas direcciones IP de origen y destino, los paquetes pueden enviarse a lo largo de múltiples rutas. La capa del programa TCP en la computadora del cliente espera hasta que todos los paquetes hayan llegado, luego reconoce los que recibe y solicita la retransmisión de los que no recibe (según los números de paquetes faltantes), luego los ensambla en un archivo y entrega el archivo a la aplicación receptora.

MIENTRAS

UDP (User Datagram Protocol) es un protocolo de comunicaciones alternativo al Protocolo de Control de Transmisión (TCP) utilizado principalmente para establecer conexiones de baja latencia y tolerancia a pérdidas entre aplicaciones en Internet. Tanto UDP como TCP se ejecutan sobre el Protocolo de Internet (IP) y a veces se los denomina UDP / IP o TCP / IP. Ambos protocolos envían paquetes cortos de datos, llamados datagramas.

UDP proporciona dos servicios no proporcionados por la capa IP. Proporciona números de puerto para ayudar a distinguir las diferentes solicitudes de los usuarios y, opcionalmente, una capacidad de suma de verificación para verificar que los datos llegaron intactos.

TCP se ha convertido en el protocolo dominante utilizado para la mayor parte de la conectividad a Internet debido a los servicios para dividir grandes conjuntos de datos en paquetes individuales, verificar y reenviar los paquetes perdidos y volver a ensamblar los paquetes en la secuencia correcta. Pero estos servicios adicionales tienen un costo en términos de sobrecarga adicional de datos y retrasos llamados latencia.

Por el contrario, UDP solo envía los paquetes, lo que significa que tiene una sobrecarga y latencia de ancho de banda mucho menor. Pero los paquetes pueden perderse o recibirse fuera de servicio como resultado, debido a las diferentes rutas que atraviesan los paquetes individuales entre el emisor y el receptor.

UDP es un protocolo ideal para aplicaciones de red en las que la latencia percibida es crítica, como las comunicaciones de juegos, voz y video, que pueden sufrir alguna pérdida de datos sin afectar negativamente la calidad percibida. En algunos casos, las técnicas de corrección de errores de reenvío se utilizan para mejorar la calidad de audio y video a pesar de alguna pérdida.

UDP también se puede usar en aplicaciones que requieren transmisión de datos sin pérdida cuando la aplicación está configurada para administrar el proceso de retransmitir paquetes perdidos y organizar correctamente los paquetes recibidos. Este enfoque puede ayudar a mejorar la velocidad de transferencia de datos de archivos grandes en comparación con TCP.

En el modelo de comunicación de interconexión de sistemas abiertos (OSI), UDP, como TCP, está en la capa 4, la capa de transporte. UDP funciona junto con protocolos de nivel superior para ayudar a administrar los servicios de transmisión de datos, incluidos el Protocolo de transferencia de archivos trivial (TFTP), el Protocolo de transmisión en tiempo real (RTSP), el Protocolo simple de red (SNP) y las búsquedas del Sistema de nombres de dominio (DNS).

Para obtener más información sobre las redes, suscríbase a mi canal de YouTube

Saludos
Adithya Srivastava
Canal de YouTube: parada de redes

Puede encontrar una gran cantidad de detalles técnicos sobre TCP y UDP, pero en lugar de repetir eso, la respuesta breve es que ambos son protocolos de transporte , es decir, permiten la comunicación entre procesos en diferentes hosts conectados a través de una red basada en IP, generalmente Internet . El objetivo de un protocolo de transporte es hacer que la comunicación sea independiente de la tecnología de red subyacente, por lo que solo se preocupan por la comunicación de extremo a extremo y no (por ejemplo) por el enrutamiento o el acceso al medio. La diferencia entre ellos es que UDP agrega una sobrecarga mínima a la capa subyacente de IP (Protocolo de Internet), básicamente solo un encabezado para permitir el direccionamiento de los puntos finales, pero no garantiza la fiabilidad, la secuencia o el control de flujo. TCP, en cambio, tiene un conjunto completo de procedimientos para configurar y derribar conexiones, gestionar la retransmisión y controlar la congestión.

Por lo tanto, TCP (Protocolo de control de transporte) tiene el concepto de una conexión entre los puntos finales, donde los paquetes llegan en orden, se retransmiten automáticamente si no llegan, donde se gestiona la demanda en la red para reducir la congestión, etc. Esto implica más sobrecarga pero es lo que la mayoría de las aplicaciones quieren. Una conexión TCP es un flujo de bytes confiable .

En contraste, UDP (User Datagram Protocol) no proporciona nada de esto. Los paquetes entre hosts pueden llegar fuera de servicio, pueden fallar al llegar o pueden llegar demasiado rápido para ser tratados, pero UDP puede ser mejor para algunas aplicaciones. Un ejemplo es la voz o el video en tiempo real. Una conexión TCP confiable retendrá el flujo mientras se reenvía un paquete perdido, pero en general no es una buena idea en este caso. Tiene más sentido descartar el paquete ocasional y continuar en lugar de tener que pausar la transmisión. Por supuesto, ahora significa que la aplicación en sí misma debe ocuparse de la secuenciación o el control de la congestión. Otro caso de uso es para verificar rápidamente el estado de un sistema remoto, donde la pérdida de la consulta ocasional no importa mucho porque la información quedará desactualizada rápidamente. UDP brinda la flexibilidad para hacer este tipo de cosas donde TCP fuerza todo a un modelo de servicio único para todos.

TCP o el Protocolo de Control de Transmisión, es uno de los protocolos más comunes y básicos del conjunto de protocolos de Internet, es un protocolo confiable.
establece una conexión utilizando un mecanismo de enlace múltiple, envía los datos y cierra la conexión, si se establece una conexión, la transmisión de datos está garantizada a menos que la conexión esté deshabilitada, cada paquete enviado a través de este protocolo se verifica mediante un acuse de recibo del receptor, si no se recibe confirmación, el paquete se reenvía, esto se repite hasta que se alcanza un límite de reenvío o se agota el tiempo de espera de la conexión. Los paquetes de datos siempre se envían en orden.

UDP o User Datagram Protocol como TCP también es un protocolo central del conjunto de protocolos de Internet, es un protocolo sin conexión, es decir, no se crea una conexión confiable entre el emisor y el receptor. No hay garantía de que los datos se entreguen, no se utiliza ningún mecanismo de reconocimiento para verificar los paquetes perdidos, ¡simplemente se pierden! No hay retransmisión.

Copiando de Wikipedia:

El Protocolo de control de transmisión es un protocolo orientado a la conexión, lo que significa que requiere un protocolo de enlace para establecer comunicaciones de extremo a extremo. Una vez que se establece una conexión, los datos del usuario pueden enviarse bidireccionalmente a través de la conexión.

  • Confiable : TCP gestiona el reconocimiento de mensajes, la retransmisión y el tiempo de espera. Se realizan múltiples intentos para entregar el mensaje. Si se pierde en el camino, el servidor volverá a solicitar la parte perdida. En TCP, no faltan datos o, en caso de múltiples tiempos de espera, la conexión se cae.
  • Pedido : si se envían dos mensajes a través de una conexión en secuencia, el primer mensaje llegará primero a la aplicación receptora. Cuando los segmentos de datos llegan en el orden incorrecto, los buffers TCP retrasan los datos fuera de servicio hasta que todos los datos puedan ser reordenados y entregados a la aplicación.
  • Peso 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 confiabilidad y el control de congestión.
  • Streaming : los datos se leen como un flujo de bytes, no se transmiten indicaciones distintivas a los límites del mensaje de señal (segmento).

User Datagram Protocol es un protocolo sin conexión basado en mensajes más simple. Los protocolos sin conexión no configuran una conexión de extremo a extremo dedicada. La comunicación se logra transmitiendo información en una dirección desde el origen al destino sin verificar la disponibilidad o el estado del receptor.

  • No confiable : cuando se envía un mensaje UDP, no se puede saber si llegará a su destino; podría perderse en el camino. No existe un concepto de reconocimiento, retransmisión o tiempo de espera.
  • No ordenado : si se envían dos mensajes al mismo destinatario, no se puede predecir el orden en que llegan.
  • Ligero : no hay pedidos de mensajes, no hay conexiones de seguimiento, etc. Es una pequeña capa de transporte diseñada sobre IP.
  • Datagramas : los paquetes se envían individualmente y se verifica su integridad solo si llegan. Los paquetes tienen límites definidos que se cumplen al recibirlos, lo que significa que una operación de lectura en el zócalo del receptor generará un mensaje completo tal como se envió originalmente.
  • Sin control de congestión : el UDP en sí no evita la congestión, a menos que implementen medidas de control de congestión a nivel de aplicación.
  • Transmisiones : al no tener conexión, UDP puede transmitir: los paquetes enviados pueden ser direccionados para que todos los dispositivos de la subred puedan recibirlos.

UDP es un protocolo de transporte de mejor esfuerzo, lo que significa que si un paquete se pierde en tránsito, no hay nada en UDP que recupere ese paquete o que la aplicación sepa de la pérdida. UDP se usa comúnmente en aplicaciones audiovisuales donde es más importante obtener datos a tiempo que perderlos. Las personas tienen una alta tolerancia para los datos de sensores con pérdida (ojos, oídos).

TCP es un protocolo de transporte confiable, lo que significa que si un paquete se pierde en tránsito, el protocolo TCP recuperará (retransmitirá) el paquete para que se entregue a la aplicación (o genere un error para permitir que la aplicación no tenga una conexión cortada). TCP se utiliza cuando la integridad de los datos es más importante que el tiempo que lleva obtener los datos (las retransmisiones toman tiempo).

Tanto UDP como TCP usan números de puerto, pero como son protocolos diferentes, los puertos no están “compartidos”. El protocolo simplemente especifica el mismo rango de números de puerto (0–65535) para que ambos tengan un puerto 20, pero el número en sí solo tiene significado dentro del protocolo, no entre protocolos.

TCP

  • significa ” Protocolo de control de transmisión “.
  • está orientado a la conexión.
  • Orientado a la conexión significa primero que se establece una conexión de extremo a extremo entre los dispositivos en los dos puntos finales antes de la transmisión de datos.
  • La velocidad observada por TCP es más lenta en comparación con la de UDP.
  • TCP es confiable y seguro, pero relativamente más lento, ya que mantiene los datos uniformes y verifica los errores.
  • El orden de los datos en el extremo receptor es el mismo que en el extremo emisor. El tamaño del encabezado de TCP es de 20 bytes.

UDP

  • significa ” Protocolo de datagramas de usuario ” o “Protocolo universal de datagramas”.
  • Es menos conexión.
  • Conexión menos significa que sin tener un canal preestablecido, cada unidad de información de datos se direcciona y enruta individualmente en función de la información que transporta.
  • UDP no tiene un mecanismo de verificación de errores, por eso es menos confiable pero es más rápido en la transferencia de datos que TCP
  • Es adecuado para multidifusión y transmisiones de paquetes.
  • El tamaño del encabezado de UDP es de 8 bytes.

TCP: Establecimiento de la conexión (protocolo de enlace) entre el remitente y el receptor antes de cualquier cosa. Es más confiable e incluye encabezados adicionales en cada paquete, como el tamaño de la ventana que controla el flujo de paquetes y evita abrumar al receptor con demasiados, y por lo tanto evita la pérdida de paquetes. Además, cada vez que se envía un paquete, el receptor debe enviar un acuse de recibo al remitente de que se recibió y está listo para el siguiente paquete. De lo contrario, un conjunto de espera expirará y el paquete se reenviará.

UDP: entrega de mejor esfuerzo. Al remitente no le importa si se ha recibido el paquete. Los paquetes se envían a una velocidad mayor que TCP, lo que hace que se pierdan (efecto mínimo), pero excluye la sobrecarga de comunicación entre los dos extremos, lo que lo hace ideal para conexiones abiertas continuas, como la transmisión de audio o video.

Wiki explica muy bien la diferencia.

Me alegra que haya ayudado.

Esos son dos protocolos de nivel de transporte del conjunto de protocolos TCP / IP. Hacen el mismo trabajo, que es proporcionar una comunicación de transferencia de datos de extremo a extremo, pero lo hacen de manera diferente. TCP funciona en modo conectado, mientras que UDP funciona de otra manera. El modo conectado significa que TCP garantiza una comunicación real entre las dos aplicaciones para que cuando un mensaje no se envíe, el receptor lo notifique al remitente para enviarlo nuevamente. Con este modo, estamos seguros de que todos los mensajes se envían completa y exitosamente sin pérdida de datos. Por otro lado, UDP no utiliza la conexión y permite que el remitente envíe mensajes lo más rápido posible sin esperar un acuse de recibo del receptor.
Básicamente, para enviar datos que no son críticos (que no son sensibles a una pérdida de bits) pero que deben recibirse rápidamente, usamos UDP como en SKYPE con los datos de voz. Y si los datos son críticos pero permiten algún retraso, entonces es TCP como cuando necesita enviar archivos de texto.

TCP (protocolo de control de transmisión)

1.utilizado para una transmisión confiable, ya que secuencia paquetes de datos y también da reconocimiento al remitente. Es un poco más pesado que UDP, ya que su sobrecarga es de 20 bytes, mientras que UDP tiene solo 8 bytes de sobrecarga.

2.utilizado para la transmisión de la mayoría de los datos en la web como texto, imágenes y es utilizado por HTTP.

3. Se usa donde la confiabilidad es obligatoria y la pérdida de datos no debe ocurrir.

UDP (protocolo de datagramas de usuario)

1. No secuencia los datos ni devuelve ninguna solicitud de confirmación. Envía los datos y luego se olvida de ellos.

2. Es más liviano que un paquete TCP y se usa donde los paquetes no necesitan llegar en orden y en secuencia, como la transmisión de audio e incluso la transmisión de video y algunos otros lugares como las solicitudes de DNS, etc.

3. Algunos paquetes de datos pueden perderse durante la transmisión.

TCP y UDP caen en la capa de transporte, TCP es un poco complejo ya que involucra el Apretón de manos de 3 vías, y lo hace confiable. Los paquetes están numerados, hay un reordenamiento y un mecanismo de control de flujo. Sin embargo, en UDP faltan tales cosas, los paquetes se pierden y los paquetes duplicados pueden llegar al destino.

Para comprender varios aspectos y parámetros relacionados con estos protocolos, hice dos videos, estos son videos detallados que explican el protocolo TCP y UDP , y finalmente para comprenderlos a nivel microscópico, hemos capturado pocos paquetes TCP y UDP en Wireshark. Aquí están los enlaces.

Tcp es un servicio orientado a la conexión, lo que significa que cada vez que envía un mensaje, recibe un acuse de recibo del receptor que indica que el mensaje ha sido recibido.
Esta es una forma confiable de comunicación, pero es lenta. Piense en ello como una llamada telefónica. Solo cuando la otra parte atiende la llamada, puedes hablar.

UDP es un servicio sin conexión. Como el que usamos en la transmisión en línea. No hay confirmación en este caso, por lo que los datos pueden no ser perfectos en el receptor, pero la transmisión es rápida. Entonces, la pérdida de algunos paquetes realmente no importa. Es como un correo electrónico. Puede enviar pero no sabrá si se ha leído o no. Como si no supieras qué paquetes llegaron y cuáles fueron descartados.

Imagine que quiere enviarme un automóvil a través de servicios de correo de paquetes pequeños. Dado que es un paquete pequeño, debe dividirlo y enviarlo pieza por pieza. A veces el correo se pierde, la mayoría de las veces, no.

Opción 1: divide el automóvil en pedazos pequeños, llamados “paquetes”, los envía. Cada pieza es transferida por múltiples terceros, algunos llegan más rápido que otros. Algunos se pierden, esto es UDP

Opción 2: divide el automóvil en pedazos pequeños, llamados “paquetes” y los envía. Una persona en el otro extremo los recoge y se asegura de que estén en el orden correcto, independientemente de cómo fueron realmente recibidos. Si falta una pieza, esa persona pide que se vuelva a enviar. Esto es TCP

A veces no necesita una conexión confiable, solo necesita algo que envíe datos de su lado al receptor rápidamente. Esto es importante para programas con aplicaciones en tiempo real. Además, TCP espera hasta que recibe una cierta cantidad de datos y luego envía el paquete. Por supuesto, puede desactivar esta función, pero se sabe que es problemática.
Tome Counter Strike por ejemplo. Cuando hace clic en ese mouse, solo desea que los datos de los eventos se envíen al otro lado lo antes posible. UDP hace un mejor trabajo en comparación con TCP.
Ver esto-> UDP vs. TCP

  • IP proporciona la entrega de los mejores datagramas (paquetes) a través de una red interna. IP admite algunos protocolos que se pueden encapsular en su interior, incluidos TCP y UDP.
  • TCP utiliza los servicios de IP (entrega de datagramas de mejor esfuerzo) y proporciona un servicio diferente a las aplicaciones: entrega confiable en orden de bytes. Bajo ciertas condiciones, TCP también comparte “de manera justa” recursos de red limitados con otros TCP. TCP distingue qué datagrama pertenece a qué aplicación mediante el “número de puerto TCP”, un entero de 16 bits.
  • UDP utiliza los servicios de IP (entrega de datagramas al mejor esfuerzo) y proporciona el mismo servicio a aplicaciones individuales que se ejecutan en el mismo host. Distingue qué datagrama pertenece a qué aplicación mediante el “número de puerto UDP”, un entero de 16 bits.

Por lo tanto, TCP proporciona a una aplicación un flujo de bytes bidireccional confiable y controlado por flujo que se ejecuta en una red imperfecta de conmutación de paquetes.

UDP generalmente expone esa red imperfecta de paquetes conmutados a la aplicación y permite que la aplicación haga lo que quiera. (Que podría ser TCP, otro protocolo confiable, un programa de videoconferencia u otra cosa).

La diferencia es la forma en que trabajan. Tanto TCP como UDP están presentes dentro de la capa de transporte, pero TCP es un protocolo confiable y UDP es un protocolo poco confiable.

TCP utiliza una serie de apretones de manos y reconocimientos para garantizar la entrega confiable de datagramas y que lleguen en orden. UDP no lo hace y deja la confiabilidad y el orden de los paquetes en manos de la aplicación en el otro extremo. La compensación por la fiabilidad en UDP significa una menor latencia de los paquetes, por lo que es muy adecuado para la entrega multimedia y de voz en particular. DNS, por ejemplo, también usa UDP por defecto.

La opción de la cual, si lo determina la necesidad, TCP se usa para transacciones web, por ejemplo, servicios de aplicaciones y conectividad de bases de datos donde la confiabilidad y la consistencia de los datos son importantes. Estos son solo ejemplos breves.

Hay literalmente miles de referencias en línea que lo ayudarán más. Aquí hay uno: http://www.diffen.com/difference