Protocolos TCP vs UDP
Tanto TCP como UDP encajan en la cuarta capa del modelo OSI, que es la capa de transporte justo por encima de la capa IP. Tanto TCP como UDP admiten la transmisión de datos de dos formas diferentes, TCP está orientado a la conexión y UDP es sin conexión.
En el transporte de paquetes existen dos limitaciones principales, una es la fiabilidad y la otra es la latencia. La confiabilidad es la entrega garantizada del paquete y la latencia es la entrega oportuna del paquete. No se puede lograr que ambos alcancen el pico al mismo tiempo, pero se pueden optimizar.
Para iniciar una comunicación de datos entre dos nodos, el remitente debe conocer la IP del receptor y el número de puerto. La dirección IP es para enrutar el paquete y el número de puerto es para entregar el paquete a la persona correcta. Para explicar más a fondo este escenario en un ejemplo del mundo real, piense en un entorno de complejo de múltiples tiendas y alguien lo dirigió a la tienda 30 (que es un salón de peluquería), Golden Plaza, No 21 Park Ave, para llegar a este lugar, solo necesita saber No 21 park avenue, pero para obtener el servicio desde el salón es necesario conocer el número de la tienda, que es 30. Puede asumir el número 21 como dirección IP y el número 30 como puerto.
Al igual que en el modelo de servicios de aplicaciones y comunicación de datos, las aplicaciones TCP escuchan los números de puerto para aceptar conexiones TCP. Al igual que las aplicaciones UDP, también escuchan los números de puerto para brindar servicios UDP.
TCP:
Definido en RFC 793
TCP es un protocolo confiable de extremo a extremo orientado a la conexión para soportar la transmisión de datos garantizada. Desde el propio establecimiento de la conexión, TCP garantiza la fiabilidad. Algunas de las características principales de TCP son protocolo de enlace de 3 vías (SYN, SYN-ACK, ACK), detección de errores, inicio lento, control de flujo y control de congestión.
TCP es un mecanismo de transporte confiable, por lo que se utilizará donde la entrega de paquetes sea imprescindible incluso en situaciones de congestión. Los ejemplos típicos de aplicaciones TCP y números de puerto son datos FTP (20), Control FTP (21), SSH (222), Telnet (23), Correo (25), DNS (53), HTTP (80), POP3 (110), SNMP (161) y HTTPS (443). Estas son aplicaciones TCP bien conocidas.
UDP:
Definido en RFC 768
UDP (User Datagram Protocol) es un protocolo de transmisión simple que proporciona un servicio poco confiable. No significa que UDP no entregará los datos, pero no hay mecanismos para monitorear el control de la congestión o la pérdida de paquetes, etc. Dado que es simple, evita el procesamiento de sobrecarga en la interfaz de red. Las aplicaciones en tiempo real utilizan principalmente UDP porque es preferible descartar paquetes que retrasar los paquetes. Un ejemplo típico son los flujos de medios de voz sobre IP.
Resumen:
(1) TCP está orientado a la conexión y es confiable, mientras que UDP tiene menos conexión y no es confiable.
(2) TCP necesita más procesamiento a nivel de interfaz de red, mientras que en UDP no lo es.
(3) Usos de TCP, protocolo de enlace de 3 vías, control de congestión, control de flujo y otros mecanismos para garantizar la transmisión confiable.
(4) UDP se utiliza principalmente en los casos en que el retraso de los paquetes es más grave que la pérdida de paquetes. (Aplicaciones en tiempo real)