viernes, 3 de julio de 2015

2. User Datagram Protocol (UDP)

2.1 Visión general




El protocolo UDP (UserDatagram Protocol) es un protocolo no orientado a conexión de la capa de transporte del modelo TCP/IP, lo que significa que nogarantizar ni la entrega de paquetes ni que los paquetes lleguen en orden secuencial, donde el control sobre el destino final de un paquete UDP recae en el equipo que lo envía.


Sin_título1.png
Figura Nº 7: UDP en una red pueden ser poco fiables
Dado la probabilidad de pérdida de paquetes de datos, puede parecer extraño que a nadie se le ocurra utilizar un sistema tan poco fiable, aparentemente anárquica. De hecho, hay muchas ventajas al usar UDP que pueden no ser evidentes a primera vista.
  • UDP puede ser más eficiente que la entrega garantizada de flujos de datos de. Si la cantidad de datos es pequeña y los datos se envían con frecuencia, tiene sentido usarla para evitar la sobrecarga de entrega garantizada.
  • A diferencia de TCP, que establecen una conexión, UDP causa menos gastos generales. Si la cantidad de datos que se envían es pequeña y los datos se envían con frecuencia, la sobrecarga de establecer una conexión no puede valer la pena. 
  • UDP puede ser preferible en este caso, sobre todo si se envían los datos de un gran número de máquinas a una central, en cuyo caso la suma total de todas estas conexiones pueden provocar una sobrecarga considerable.


  • Las aplicaciones en tiempo real pueden ser candidatos para usar UDP, ya que hay menos retrasos debido a la comprobación de errores y control de flujo de TCP. 
  • Los Paquetes UDP pueden ser utilizados para saturar el ancho de banda disponible para ofrecer grandes cantidades de datos. Además, si se pierden algunos datos, pueden ser sustituidos por el siguiente grupo de paquetes con información actualizada, eliminando la necesidad de volver a enviar los datos antiguos.
  • Los sockets UDP puede recibir datos de más de un host. Si hay varias máquinasdebe haber comunicación, entonces UDP puede ser más conveniente que otros mecanismos como TCP.
  • Algunos protocolos de red especificar UDP como mecanismo de transporte, que requiriendo su uso.


Un socket es una referencia indirecta a un puerto particular usada por el proceso receptor en la máquina receptora.

El envío de datagramas es similar a enviar una carta a través del servicio postal: El orden de salida no es importante y no está garantizado, y cada mensaje es independiente de cualquier otro.
En las comunicaciones basadas en datagramas como las UDP, el paquete de datagramas contiene el número de puerto de su destino y el UDP encamina el paquete a la aplicación apropiada. Como en la figura Nº 8

Comunicación_basada_en_datagramas.png

Figura Nº 8: Comunicación basada en datagramas
Un datagrama enviado mediante UDP es trasmitido desde un proceso emisor a un proceso receptor sin reconocimiento o recomprobaciones. Si tiene lugar un fallo, el mensaje puede no llegar. 
Un datagrama es transmitido entre procesos cuando un proceso lo envía y otro proceso lo recibe. Cualquier proceso que necesite enviar o recibir mensajes debe en primer lugar crear un socket a una dirección de Internet y un puerto local. Un servidor enlazará ese socket a un puerto servidor - uno que se hace conocido a los clientes de manera que puedan enviar mensajes al mismo. 
Un cliente enlaza su socket a cualquier puerto local libre. El método receptor devuelve la dirección de Internet y el puerto del emisor, además del mensaje, permitiendo a los receptores enviar una respuesta.


image010.jpg
Figura Nº 9: un servidor utiliza dos sockets: uno para aceptar la conexión y el otro para enviar / receptor
Las clases Java para establecer comunicaciones mediante datagramas son:
  • java.net.DatagramPacket
  • java.net.DatagramSocket
1. Definición: Concepto y estructura
udp.jpg
Un datagrama es un fragmento de paquete (análogo a un telegrama) que es enviado con la suficiente información para que la red pueda simplemente encaminar el fragmento hacia el equipo terminal de datos receptor, de manera independiente a los fragmentos restantes. Esto puede provocar una recomposición desordenada o incompleta del paquete en el ETD destino.

Figura Nº 5: Protocolo UDP


Los datagramas también son la agrupación lógica de información que se envía como una unidad de capa de red a través de un medio de transmisión sin establecer con anterioridad un circuito virtual. Los datagramas IP son las unidades principales de información de Internet. Los términos trama, mensaje, paquete y segmento también se usan para describir las agrupaciones de información lógica en las diversas capas del modelo de referencia OSI y en los diversos círculos tecnológicos.
Algunos Protocolos basados en datagramas son IPX, UDP, IPoAC. Los datagramas tienen cabida en los servicios de red no orientados a la conexión (como por ejemplo UDP) o Datagrama.

IPX
El protocolo Intercambio de Paquetes Entre Redes (IPX) es la implementación del protocolo IDP (Internet Datagram Protocol) de Xerox. Es un protocolo de datagramas rápido orientado a comunicaciones sin conexión que se encarga de transmitir datos a través de la red, incluyendo en cada paquete la dirección de destino.Pertenece a la capa de red (nivel 3 del modelo OSI) y al ser un protocolo de datagramas es similar (aunque más simple y con menor fiabilidad) al protocolo IP del TCP/IP en sus operaciones básicas pero diferente en cuanto al sistema de direccionamiento, formato de los paquetes y el ámbito general Fue creado por el ing. Alexis G.Soulle
UDP
User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio de datagramas (Paquete de datos). Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente información de direccionamiento en su cabecera. Tampoco tiene confirmación ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de entrega o recepción. Su uso principal es para protocolos como DHCP, BOOTP, DNS y demás protocolos en los que el intercambio de paquetes de la conexión/desconexión son mayores, o no son rentables con respecto a la información transmitida, así como para la transmisión de audio y vídeo en tiempo real, donde no es posible realizar retransmisiones por los estrictos requisitos de retardo que se tiene en estos casos.
IPoAC
IP sobre palomas mensajeras es un protocolo de red creado en 1 de abril de 1990 para la transmisión de datagramas del protocolo IP mediante palomas mensajeras y definido en la recomendación RFC 1149. El 1 de abril de 1999 se publicó la recomendación RFC 2549, una extensión de la anterior denominada IP sobre palomas mensajeras con calidad de servicio.
EstructuraLa estructura de un datagrama es: cabecera y datos.

datagrama_UDP_2.png





Significado de los diferentes campos:
  • Puerto de origen: es el número de puerto relacionado con la aplicación del remitente del segmento UDP. Este campo representa una dirección de respuesta para el destinatario. Por lo tanto, este campo es opcional. Esto significa que si el puerto de origen no está especificado, los 16 bits de este campo se pondrán en cero. En este caso, el destinatario no podrá responder (lo cual no es estrictamente necesario, en particular para mensajes unidireccionales).
  • Puerto de destino: este campo contiene el puerto correspondiente a la aplicación del equipo receptor al que se envía.
  • Longitud: este campo especifica la longitud total del segmento, con el encabezado incluido. Sin embargo, el encabezado tiene una longitud de 4 x 16 bits (que es 8 x 8 bits), por lo tanto la longitud del campo es necesariamente superior o igual a 8 bytes.
  • Suma de comprobación: es una suma de comprobación realizada de manera tal que permita controlar la integridad del segmento.

EnrutamientoEnrutar es el proceso de selección de un camino para el envío de paquetes. La computadora que hace esto es llamada Router.

image014.jpg

En general se puede dividir el enrutamiento en Entrega Directa y Entrega Indirecta. La Entrega Directa es la transmisión de un Datagrama de una maquina a otra dentro de la misma red física.

La Entrega Indirecta ocurre cuando el destino no está en la red local, lo que obliga al Host a enviar el Datagrama a algún Router intermedio. Es necesario el uso de mascaras de subred para saber si el Host destino de un Datagrama esta o no dentro de la misma red física.

Algoritmo de Enrutamiento
Ruta Datagrama(Datagrama) {Extrae de la Cabecera de Datagrama la dirección de destino D;Extrae de D el prefijo de Red N;Si N corresponde a cualquier dirección directamente conectada EntoncesEnvía el Datagrama a D sobre la Red N;SinoSi en la tabla hay una ruta especifica para D EntoncesEnvía Datagrama al salto siguiente especificado;SinoSi En la tabla hay una ruta para la red N EntoncesEnvía Datagrama al salto siguiente especificado;SinoSi En la tabla hay una ruta por defecto EntoncesEnvía el Datagrama a la dirección por defecto;SinoDeclarar Fallo de Enrutamiento;FsiFsiFsiFsi}

PuertosUDP utiliza puertos para permitir la comunicación entre aplicaciones. El campo de puerto tiene una longitud de 16 bits, por lo que el rango de valores válidos va de 0 a 65.535. El puerto 0 está reservado, pero es un valor permitido como puerto origen si el proceso emisor no espera recibir mensajes como respuesta.
  • Los puertos 1 a 1023 se llaman puertos "bien conocidos" y en sistemas operativos tipo Unix enlazar con uno de estos puertos requiere acceso como superusuario.
  • Los puertos 1024 a 49.151 son puertos registrados.
  • Los puertos 49.152 a 65.535 son puertos efímeros y son utilizados como puertos temporales, sobre todo por los clientes al comunicarse con los servidores.


























PROTOCOLO TCP Y 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 Protocolos 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. UDP es un protocolo simple, sin conexión, descrito en la RFC 768. Cuenta con la ventaja de proveer la entrega de datos sin utilizar muchos recursos. Entre las aplicaciones que utilizan UDP se incluyen: 

-Sistema de nombres de dominios (DNS), -Streaming de vídeo -Voz sobre IP (VoIP). Protocolo de control de transmisión (TCP) TCP es un protocolo orientado a la conexión. TCP incurre en el uso adicional de recursos para agregar funciones. Las funciones adicionales especificadas por TCP están en el mismo orden de entrega, son de entrega confiable y de control de flujo.

DIFERENCIAS ENTRE TCP Y UDP


El protocolo UDP UDP es un protocolo no orientado a conexión. Es decir cuando una maquina A envía paquetes a una maquina B, el flujo es unidireccional.
La transferencia de datos es realizada sin haber realizado previamente una conexión con la máquina de destino (maquina B), y el destinatario recibirá los datos sin enviar una confirmación al emisor (la maquina A). Esto es debido a que la encapsulación de datos enviada por el protocolo UDP no permite transmitir la información relacionada al emisor. Por ello el destinatario no conocerá al emisor de los datos excepto su IP.

El protocolo TCP

Contrariamente a UDP, el protocolo TCP está orientado a conexión. Cuando una máquina A envía datos a una máquina B, la máquina B es informada de la llegada de datos, y confirma su buena recepción.

CAPA DE APLICACIÓN

El nivel de aplicación o capa de aplicación es el séptimo nivel del modelo OSI. Ofrece a las aplicaciones (de usuario o no) la posibilidad de acceder a los servicios de las demás capas y define los protocolos que utilizan las

aplicaciones para intercambiar datos, como correo electrónico (POP y SMTP), gestores de bases de datos y protocolos de transferencia de archivos (FTP). En el modelo de tcp/ip la capa de aplicación igual a las tres capas primeras del modelo osi es decir equivalen a presentación, aplicación y sesión.

LOS PROTOCOLOS

En esta capa aparecen diferentes protocolos:

-FTP (File Transfer Protocol - Protocolo de transferencia de archivos) para transferencia de archivos.
-DNS (Domain Name Service - Servicio de nombres de dominio). Se usa para traducir los nombres de dominios.
-DHCP (Dynamic Host Configuration Protocol - Protocolo de configuración dinámica de anfitrión). permite a los clientes de una red IP obtener sus parámetros de configuración automáticamente
-HTTP (HyperText Transfer Protocol) para acceso a páginas web. -NAT (Network Address Translation
- Traducción de dirección de red).
-POP (Post Office Protocol) para correo electrónico.
-SMTP (Simple Mail Transport Protocol). Protocolo Simple deTransferencia de Correo,
-SSH (Secure SHell) sirve para acceder a máquinas remotas a través de una red.
-TELNET para acceder a equipos remotos.
-TFTP (Trival File Transfer Protocol).Muy similiar al protocolo FTP.

FUNCIONES DE LA CAPA DE APLICACIÓN

-Redirección de dispositivo y uso compartido de recursos -Acceso de archivo remoto -Acceso de la impresora remota -Comunicación entre procesos -Administración de la red -Servicios de directorio -Electrónica de mensajería (como mail) -Red virtuales terminales
¿Qué es UDP?

El protocolo UDP es un protocolo de nivel de transporte que es manejado en Internet, ofrece a las aplicaciones un mecanismo para enviar datos IP en bruto encapsulados sin tener que establecer una conexión, es utilizado por muchas aplicaciones cliente-servidor ya que se evitan la molestia de establecer y luego liberar una conexión.

Lo que realmente ofrece UDP respecto a IP es la posibilidad de múltiplexacción de aplicaciones.

UDP no admite numeración de datos, factor que, sumado a que tampoco utiliza señales de confirmación de entrega, hace que la garantía de que un paquete llegue a su destino sea menor que si se usa TCP.

Esto también origina que los datos puedan llegar duplicados o desordenados a su destino, por este motivo el control de envió de datos, si existe, debe ser implementado por las aplicaciones que usan UDP.

El protocolo UDP es llamado de tipo de tipo máximo esfuerzo por que hace lo que puede para transmitir los datos hacia la aplicación, pero no garantiza que la aplicación los reciba

No utiliza mecanismos de detección de errores, cuando se detecta un error en lugar de entregar la información a su destino se descarta.

La longitud máxima de un datagrama UDP es de 65.536 bits no es común ver datagramas UDP mayores de 512 bits de datos.




Características

  • No es orientado a la conexión.
  • No garantiza la fiabilidad, no podemos asegurar que cada dato UDP transmitido llegue a su destino.
  • Hace lo que puede para transmitir los datos hacia la aplicación.
  • No preserva la secuencia de la información que proporciona la aplicación, la aplicación se puede recibir desordenada, llega con retardos y la aplicación que lo recibe debe estar preparada por si se pierden los datos.
  • No indicación para el dispositivo transmisor de que el mensaje se ha recibido en forma correcta.
  • Es muy rápida y fácil de utilizar, pero poco confiable.
  • Cuando detecta un error en el dato en lugar de enviarlo a su destino lo elimina.
  • Es más sencilla que el TCP ocasiona una interfaz con el IP u otros protocolos sin la molestia del control de flujo de errores, actuando tan solo con un transmisor y receptor de datagramas.