<img height="1" width="1" src="https://www.facebook.com/tr?id=1101141206686180&amp;ev=PageView &amp;noscript=1">

Redes empresariales en LabVIEW 2

En la primera entrega de esta serie de blogs, aprendimos cómo se puede utilizar TCP para la comunicación 1:1 (unidifusión) y cómo TCP es un protocolo enrutable (puede atravesar Internet). En esta serie de blogs, aprenderemos un caso de uso centrado en su homólogo UDP (Protocolo de datagramas de usuario). El protocolo UDP es conocido como un protocolo de entrega sin conexión, de mejor esfuerzo, a diferencia de TCP, no contiene ninguna comprobación de errores incorporada o funcionalidad de alto nivel (por ejemplo, establecimiento/retiro de conexión) ¡Código de ejemplo incluido!

Aunque UDP carece de la funcionalidad orientada a la conexión de TCP, puede atravesar Internet/red sin problemas. A diferencia de TCP, la comunicación n:n en UDP es significativamente más fácil debido a la falta de funcionalidad. La multidifusión UDP, un método de comunicación n:n, puede compararse con varias personas que entran en una habitación conocida y se gritan unas a otras. La "habitación" se identifica mediante una dirección y un puerto de multidifusión. Las direcciones multicast válidas son las de clase D (224.0.0.0 - 239.255.255.255); nosotros utilizaremos la dirección multicast local (no enrutable) 239.1.1.1 y el puerto 58431.

Desafortunadamente, debido a la falta de funcionalidad de alto nivel de UDP, hay problemas que pueden necesitar ser resueltos dependiendo de tu implementación:

  • Cómo identificar el destino de los mensajes emitidos
  • Cómo saber si se ha recibido un mensaje
  • Cómo reconstruir datos de varios mensajes
  • Cómo responder si no se recibe respuesta o acuse de recibo a tiempo

Utilizar UDP, especialmente la multidifusión UDP, a menudo requerirá que reimplemente algunas funcionalidades TCP. El siguiente ejemplo muestra un caso de uso específico en el que se puede utilizar la multidifusión UDP en una red local para identificar puntos finales. A menudo se utilizan direcciones IP estáticas para evitar esto, pero las direcciones IP estáticas no son escalables.

udp_packet_diagram.png

El paquete se diseña utilizando pistas de TCP, el preámbulo de inicio y el sufijo de parada ayudan a identificar cuando un paquete comienza y termina, mientras que los datos de la trama y el id del mensaje ayudan a identificar qué tipo de mensaje y si se están recibiendo múltiples mensajes en qué orden se deben reconstruir los datos.

VI Snippet showing a conversion of a packet (string) into a cluster.

VI Snippet showing conversion of a cluster into a packet (string).

Este VI se utiliza para codificar/decodificar paquetes y verificar la suma de comprobación cuando se reciben.

VI Snippet showing the diagram of a UDP endpoint.

Usando 'launch.vi' el ejemplo, múltiples copias de este VI pueden ser ejecutadas y configuradas para demostrar operaciones udp multicast en el adaptador de red primario. El código de ejemplo puede descargarse aquí.

Este tipo de implementación UDP se puede utilizar para la auto-detección de puntos finales de red que abarcan múltiples redes donde no hay direcciones IP estáticas suponiendo que el enrutamiento UDP multicast está habilitado y todos los puntos finales son accesibles. En la próxima entrega de esta serie de blogs, desarrollaremos una solución para la comunicación avanzada 1:N utilizando el Protocolo de Control de Transmisión.