miércoles, 1 de julio de 2015




































upt

 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

TCPUDP
  • 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 ineficazy 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 necesariaspuede desperdiciar ancho de banda, tiempo oesfuerzo 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.

Diferencias entre protocolos de transporte TCP y UDP

Dentro del Modelo OSI, la capa de transporte (capa 4) tiene como función principal aceptar los datos enviados por las capas superiores, dividirlos en pequeñas partes si es necesario, y pasarlos a la capa de red, también se asegura que lleguen correctamente al otro lado de la comunicación.
Existen dos mecanismos o protocolos dentro de esta capa de transporte, el protocolo TCP (Transfer Control Protocol) y UDP (User Datagram Protocol).
TCP es un protocolo de transporte orientado a conexión, por ejemplo servicios como Telnet, FTP y SSH utilizan el protocolo TCP, ya que están orientados a conexión, la estación de trabajo A y la estación de trabajo B establecen comunicación/conexión. Al establecerse la comunicación entre las dos estaciones de trabajo, se asegura que el flujo de datos entre ellas sea fiable, asegurandose de que los datos llegan correctamente del emisor al destinatario, en el orden estipulado y completos.
Un ejemplo adapatado a la vida real y de forma muy básica de conexión TCP, podría ser la de una llamada telefónica, el sujeto A llama al sujeto B, hasta que B no coge el teléfono, la conexión no es aceptada, y cuando uno de los dos sujetos dice adiós, la conexión se da por finalizada.
UDP por el contrario es un protocolo en el que no hay conexión. Una estación de trabajo A envía datos a la estación de trabajo B de forma unidireccional, no establece previa conexión con ella, por lo que los datos son enviados sin saber si van a ser recibidos correctamente, en orden, completos, etc.
Como podréis imaginar, este protocolo de transporte es muchísimo menos fiable que TCP, suele ser utilizado para aplicaciones de streaming (video o audio) ya que en estas es más importante la recepción rápida de los datos que la verificación de los mismos, lo mismo sucede con los servicios DNS, aplicacion simple de tipo petición/respuesta.
Estas son las diferencias a un nivel muy básico de TCP y UDP, os recomiendo revisar este manual de administración de redes o la familia de protocolos de Internet si queréis profundizar en el tema.