¿Cómo compararías TCP y 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.

Tanto TCP como UDP son protocolos utilizados para enviar bits de datos, conocidos como paquetes, a través de Internet. Ambos se basan en el protocolo de Internet. En otras palabras, si está enviando un paquete a través de TCP o UDP, ese paquete se envía a una dirección IP. Estos paquetes se tratan de manera similar, ya que se envían desde su computadora a enrutadores intermediarios y al destino.

TCP y UDP no son los únicos protocolos que funcionan sobre IP. Sin embargo, son los más utilizados. El término ampliamente utilizado “TCP / IP” se refiere a TCP sobre IP. UDP sobre IP también podría denominarse “UDP / IP”, aunque este no es un término común.

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.

Ver más diferencia entre TCP y UDP.

ejemplos de TCP y UDP

=> Su navegador web usa TCP para cargar páginas web, pero antes usa UDP para traducir una URL a una dirección IP .

Sus “aplicaciones” que cargan artículos de un sitio de noticias utilizarán TCP para descargar el contenido.

Cuando le escribas a alguien, usarás UDP porque las retransmisiones y los gastos generales no son deseables.

Hablemos de WhatsApp. Como puede observar, esta aplicación mantiene a los usuarios informados no solo sobre el destinatario de los mensajes, sino también si esos mensajes se han visto y reproducido … Un buen ejemplo de TCP.
Nota: -Imágenes cortesía de Google.

Formato de encabezado TCP

TCP, Protocolo de Control de Transmisión

TCP Vegas

UDP, Protocolo de datagramas de usuario

TCP proporciona una serie de instalaciones y opciones que no están disponibles en UDP, como se puede ver en los enlaces, incluida cierta seguridad elemental a través de la numeración de secuencias y el hash MD5 opcional. La numeración de secuencias también permite reordenar los paquetes entregados fuera de servicio. Esto es más útil con TCP de múltiples rutas. Hay controles para recuperarse de una falla de transmisión y admite varios algoritmos de control de flujo y de evitación de congestión. Uno, Vegas, está vinculado a lo anterior. TCP utiliza un protocolo de enlace de tres vías para establecer conexiones y todos los paquetes son confirmados recibidos por la computadora (pero no necesariamente las aplicaciones) a través de un ACK. Los paquetes no reconocidos son reenviados. Hay otro apretón de manos elaborado al cerrar. TCP está restringido a tramas regulares.

UDP es mucho más elemental. No hay ningún esfuerzo para rastrear el estado, por lo que los paquetes se procesan en el orden en que se reciben. No hay seguridad, ningún esfuerzo de robustez y ningún esfuerzo de control de flujo. Todas esas instalaciones se proporcionan en las capas OSI 5-7. UDP admite unidifusión, multidifusión, anycast (solo v6) y difusión. UDP puede usar tramas gigantes, pero no hay garantía de que ningún dispositivo de red los reenvíe o procese. Nunca he visto marcos jumbo utilizados, excepto en LAN homogéneas.

Las primeras versiones del conjunto de protocolos TCP / IP usaban RTP donde UDP se usaría hoy, como se puede ver en la sección 2.5 del RFC. Estoy un poco perplejo, ya que RTP solo se define en un RFC en 1996, considerablemente después de que se definió TCP. Incluyo un enlace al RFC actual, pero el RTP moderno se ejecuta dentro de UDP y no puede considerarse al mismo nivel que TCP. Un historiador de Internet necesitará aclarar.

RFC 793 – Protocolo de control de transmisión

RTP: un protocolo de transporte para aplicaciones en tiempo real

El moderno conjunto de protocolos TCP / IP también incluye SCTP y DCCP, que corrigen muchos defectos en TCP y UDP respectivamente, pero aparte de algunos parches experimentales para Apache y Firefox para admitir conexiones SCTP, nunca he oído hablar de estos que se utilizan en la naturaleza .

TCP significa “Protocolo de control de transmisión”. TCP es un protocolo orientado a la conexión en el que los datos se pueden transferir bidireccionalmente después de la configuración de la conexión.

UDP significa “Protocolo de datagramas de usuario”. UDP es un protocolo sin conexión en el que se necesitan datos para enviar en fragmentos.

La imagen de abajo muestra la comparación:

A menudo se dice que TCP proporciona una entrega garantizada. No es asi. Garantiza fallar la sesión si no puede entregar. Además, solo garantiza la entrega al TCP en el extremo remoto, no al programa con el que realmente está hablando. Si desea garantizar que el programa realmente recibió y procesó correctamente sus datos, debe escribir su propio código para proporcionar esa garantía. Bueno, puedes hacerlo con UDP con la misma facilidad.

TCP entrega una secuencia de bytes, NO de paquetes. Suponga que la fuente desea enviar dos paquetes de 7000 bytes cada uno. El destino recibirá aproximadamente 10 paquetes de diferentes longitudes. Si hace esto con UDP, el destino recibirá sus dos paquetes tal como los envió. Pueden llegar dañados, fuera de servicio o en absoluto, pero si llegan, no serán reempacados. TCP desarmará sus paquetes, los volverá a empaquetar como mejor le parezca y los entregará así. El receptor tiene que desempacar todo y volver a colocarlo. Estará en orden, pero no en los tamaños de paquete en los que fueron enviados. Leer TCP es como leer en alemán: Donaudampfschiffskapitaen. Tienes que averiguar dónde están las palabras.

TCP garantiza una entrega confiable y ordenada de una secuencia 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 disponibilidad del receptor. El número TCP es más confiable ya que gestiona el reconocimiento de mensajes y las retransmisiones en caso de partes perdidas. Por lo tanto, no faltan absolutamente datos. 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.

La imagen de arriba lo encontró en la búsqueda de Google. Espero que sea de ayuda.