3. Análisis comparativo: TCP - UDP

Los dos protocolos más comunes de la capa de Transporte del conjunto de protocolos TCP/IP son el Protocolo de control de transmisión (TCP) y el Protocolo de datagramas de usuario (UDP). Ambos protocolos gestionan la comunicación de múltiples aplicaciones. Las diferencias entre ellos son las funciones específicas que cada uno implementa.
TCP vs UDP

TCP
UDP
  • Orientado a la conexión
  • Confiabilidad en la entrega de mensajes
  • Divide los mensajes en datagramas
  • Hace seguimiento del orden (o secuencia)
  • Usa checksums para la detección de errores
  • Los procedimientos remotos no son idempotentes
  • La confiabilidad es prioridad
  • Los mensajes exceden el tamaño de un paquete UDP
  • Sin conexión
  • No se fragmentan los mensajes
  • No hay reensamblaje ni sincronización
  • En caso de error, el mensaje se retransmite
  • Sin acuse de envío
  • Los procedimientos remotos son idempotentes
  • Los mensajes del servidor y el cliente entran completamente dentro de un paquete
  • El servidor maneja multiples clientes (UDP no tiene estados)

TCP y UDP utilizan el mismo esquema de direccionamiento. Una dirección IP y un número de puerto.

Ventajas de UDP


  • No te restringe a un modelo de comunicación basado en la conexión, la latencia para el inicio en aplicaciones distribuidas es mucho menor, al igual que la sobrecarga del sistema operativo.
  • Todo el control de flujo, los acuses de recibo, el registro de transacciones, etc. depende de los programas de usuario. Además, sólo es necesario implementar y utilizar las funciones que necesita.
  • El receptor de los paquetes UDP los recibe sin fragmentar, incluyendo los límites de los bloques.
  • Broadcast y transmisión multicast están disponibles con UDP.

Ventajas de TCP


  • El sistema operativo hace todo el trabajo, el manejo de paquetes de entrada tiene menos cambios de contexto del kernel al espacio de usuario y de vuelta, todo el reensamblaje, acuse de recibo, control de flujo, etc se lleva a cabo por el kernel.
  • TCP garantiza tres cosas: que sus datos lleguen, que lleguen en orden, y que lleguen sin duplicaciones.
  • Los routers pueden notar los paquetes TCP y los tratan de forma especial. los pueden almacenar en búfer y los retransmiten.
  • TCP tiene un buen rendimiento relativo a través de un módem o una LAN.

Desventajas de UDP


  • No hay garantías con UDP. un paquete puede no ser entregado, o entregado dos veces o entregado fuera de orden, no se obtiene ningún indicio de esto a menos que el programa de escucha en el otro extremo decide decir algo.
  • UDP no tiene control de flujo. la implementación es el deber de los programas de usuario.
  • Los routers son muy descuidados con UDP. nunca se retransmiten si colisionan, y parecen ser la primera cosa descartada cuando un router está corto de memoria. UDP sufre más pérdida de paquetes que TCP.

Desventajas de TCP


  • El sistema operativo puede ser defectuoso.Puede ser ineficaz, y puede que no se pueda afinar.
  • TCP es díficil de expandir,se puede establecer una pocas opciones de socket,pero tiene que tolerar el control de flujo incorporado.
  • TCP puede tener un montón de característicasque no son necesarias, puede desperdiciar ancho de banda, tiempo o esfuerzo en asegurar cosas que son irrelevantes para la tarea en cuestión.
  • TCP no tiene límites de bloques, debe crear el suyo.
  • Los routers de la Internet de hoy en día están agotando su memoria, no pueden prestar mucha atención a tcp, las asumpsiones de diseño de TCP se descomponen en este entorno.
  • TCP tiene rendimiento relativamente pobre en conexiones de alta latencia, gran ancho de banda como una conexión por satélite o con sobrecarga.
  • TCP no puede ser utilizado para broadcast o transmisión multicast.
  • TCP no puede concluir una transmisión sin todos los datos en movimiento explícitamente confirmados.

Ventajas de la UDP para la transferencia de archivos


  • El control de flujo depende del espacio de usuario; las ventanas pueden ser infinitas, no existen interrupciones artificiales, la latencia es bien tolerada, y las velocidades máximas solo se pueden forzar por ancho de banda real, a pesar de que las velocidades reales son elegidas por acuerdo entre el emisor y el receptor.
  • Si recibe una imagen de forma simultánea desde varios hosts es mucho más fácil con UDP, como lo es el envío a varios hosts, especialmente si llegan a ser parte del mismo grupo broadcast o multicast.

Desventajas de TCP para la transferencia de archivos


  • TCP permite una ventana de un máximo de 64k, y el mecanismo de ACKING significa que la pérdida de paquetes no se ha detectado.
  • Los servidores de transferencia TCP han de mantener un socket separado (y a menudo un hilo separado) para cada cliente.
  • El balanceo de carga es crudo y aproximado. Especialmente en las redes locales que permiten colisiones, dos transferencias simultáneas de TCP tienen una tendencia a pelear unas con otras, incluso si el remitente es el mismo.

Procesos de Servidor


Server Process





socket()





|





bind()





|

TCP
Server Process

UDP
listen


socket()

|
|

Client Process
|

Client Process
accept()

socket()
bind()

|
|

|
|

socket()
Get a blocked client
<-1->
connect()
recvfrom()

|
|

|
|

bind()
read()
<-2--
write()
Get a blocked client

|
|

|
|
<---
sendto()
process request

|
process request

|
|

|
|

|
write
--3->
read()
sendto()
--->
recvfrom()



imagesCA77OK0B.jpg tecnologia_bigger.jpg