Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

COMUNICACIONES INDUSTRIALES GRADO EN INGENIERÍA ELÉCTRICA Y ELECTRÓNICA PRÁCTICA 2 Comunicaciones TCP-IP con LabVIEW® Patxi Cilveti Jiménez Ignacio Del Villar Fernández 0 Comunicaciones e Instalaciones Industriales Práctica 2: Comunicaciones TCP-IP con LabVIEW® 1. INTRODUCCIÓN Y OBJETIVOS El...

COMUNICACIONES INDUSTRIALES GRADO EN INGENIERÍA ELÉCTRICA Y ELECTRÓNICA PRÁCTICA 2 Comunicaciones TCP-IP con LabVIEW® Patxi Cilveti Jiménez Ignacio Del Villar Fernández 0 Comunicaciones e Instalaciones Industriales Práctica 2: Comunicaciones TCP-IP con LabVIEW® 1. INTRODUCCIÓN Y OBJETIVOS El protocolo IP (Internet Protocol), el protocolo TCP (Transmission Control Protocol) y el protocolo UDP (User Datagram Protocol) son las herramientas básicas para comunicación de redes ofimáticas y constituyen también la base sobre la que se construyen muchos de los sistemas de comunicación industrial empleados en la actualidad. IP es un protocolo de capa de red del modelo OSI, y permite una comunicación bidireccional entre los diferentes nodos (ordenadores y otros equipos) de la red. Para ello, empaqueta los datos en datagramas. Un datagrama contiene datos y encabezado indicando el origen y el destino del paquete, de manera que éste pueda llegar a su destino. Pero IP no garantiza que los paquetes lleguen a su destino. Esta tarea debe realizarse en la siguiente capa (transporte). En la capa de transporte es donde se sitúan los protocolos TCP y UDP. UDP permite llevar la información de los datagramas de nivel de red a un puerto específico del nodo destino. Sin embargo, al igual que IP, no garantiza que el paquete llegue a su destino. Esto, que puede parecer extraño, es algo habitual cuando se trata de información como la voz o el vídeo, donde perder algunos datos no supone un problema serio en las comunicaciones y agiliza los procesos. Sin embargo, cuando se trata de enviar un fichero informático o un correo, no se pueden permitir pérdidas de información. Es aquí donde se utiliza el otro protocolo más popular del nivel de transporte, que es el TCP. Éste garantiza la transmisión sin errores ni duplicados. Para ello, retransmite los datagramas hasta que recibe una confirmación de la recepción en destino. Como TCP en principio tiene mejores prestaciones que UDP, este protocolo, junto con el IP han dado nombre a un modelo basado en OSI (ver figura 1 para ver similitudes) que es el empleado en la actualidad en entornos ofimáticos y también en buena parte de los industriales. Para entender el funcionamiento de TCP/IP se realizará un ejercicio guiado en el que el alumnado comprobará cómo es posible enviar y recibir datos en un mismo ordenador. Acto seguido, se podrá enviar estos mismos datos a otro terminal del laboratorio, haciendo las veces de cliente y de servidor. Como aplicación práctica de lo anterior, se diseñará un programa cliente y otro servidor en LabVIEW®, que se usarán para interconectar dos ordenadores y ver la transferencia de información entre ellos vía TCP. Figura 1. Paralelismo entre los modelos de protocolos de comunicaciones de la OSI y TCP/IP. 1 Comunicaciones e Instalaciones Industriales Práctica 2: Comunicaciones TCP-IP con LabVIEW® 2. COMUNICACIÓN CLIENTE – SERVIDOR MEDIANTE TCP/IP La comunicación TCP se establece entre dos terminales: el cliente y el servidor. En esta parte de la práctica se va a diseñar una comunicación TCP/IP sencilla, para lo cual habrá que diseñar dos vis. En la figura 2 se muestra un ejemplo del esquema de funcionamiento del programa cliente diseñado en LabVIEW®. Se indica una dirección IP: 127.0.0.1. Esta dirección es la de loopback del ordenador. Es decir, que nos estaremos comunicando con el propio equipo. De esta manera, no hace falta instalar el servidor en otro ordenador. El programa servidor se puede desarrollar de acuerdo con el esquema de la figura 3. Los bloques TCP Listen, TCP Read, etc., se encuentran en Functions\Data Communication\Protocols\TCP. Para que el sistema funcione correctamente, será necesario realizar los siguientes pasos: 1. Diseñar un programa cliente y un programa servidor en dos .vi diferentes, de acuerdo a lo mostrado en las figuras 2 y 3. 2. Indicar el número de bytes que se van a leer en el cliente y en el servidor (¿DÓNDE?). 3. Escribir en el panel frontal del cliente un mensaje (por ejemplo, command = “hola”) y en el panel frontal del servidor otro mensaje (por ejemplo, response = “recibido”). 4. Ejecutar primero el servidor y luego ejecutar el cliente. Si el número de bytes leídos en cada lado coincide con la longitud de los strings que se han enviado de cada lado, se recibirá en el servidor request = “hola” y en el cliente response = “recibido”. Figura 2. Programa cliente para la comunicación TCP-IP en LabVIEW®. Figura 3. Programa servidor para la comunicación TCP-IP en LabVIEW®. 2 Comunicaciones e Instalaciones Industriales Práctica 2: Comunicaciones TCP-IP con LabVIEW® 3. MONITORIZACIÓN DE UNA COMUNICACIÓN TCP CLIENTE-SERVIDOR El ejemplo del apartado 2 solamente sirve para que el cliente envíe un dato y el servidor le responda con otro. Queremos ver que esto es así. Una vez comprobado el correcto funcionamiento del programa anterior, a continuación vamos a monitorizar ese intercambio de mensajes mediante el programa Wireshark, una aplicación muy potente que captura todo tipo de mensajes que llegan por la red al PC. El proceso a seguir para realizar dicha captura se describe a continuación: 1. Una vez dentro de Wireshark, nos aseguraremos de que no capturamos mensajes acudiendo al menú Capture y ejecutando la opción Capture Stop, si se encuentra disponible. 2. Se puede echar un vistazo a todos los paquetes que aparecen en el listado, si bien solamente se monitorizarán los paquetes TCP. Para ello se acude al menú Capture y, dentro de sus opciones, se selecciona Capture Filters (figura 4). Entonces se abrirá la siguiente ventana donde se elegirá la opción TCP only y se hará clic en Aceptar. 3. De nuevo presionamos en Capture/Options y entramos en la ventana de configuración de interfaces de red. Para visualizar el tráfico de loopback, seleccionamos la opción NPcap Loopback Adapter y hacemos clic en Start. El programa comenzará a tomar datos. 4. En LabVIEW®, iniciaremos el servidor y, acto seguido, el cliente. Tras ello, al haberse producido la comunicación, ambos programas pararán su ejecución. 5. Ejecutar la opción Capture Stop del menú Capture en WireShark, para parar la monitorización de los paquetes recibidos. 6. Buscar las tramas TCP correspondientes a servidor y a cliente (ver figura 5). Como hemos filtrado por loopback, las tramas capturadas serían similares a las mostradas en la figura 5. Figura 4: Ventana para configuración de filtrado de mensajes en Wireshark. 3 Comunicaciones e Instalaciones Industriales Práctica 2: Comunicaciones TCP-IP con LabVIEW® Figura 5: Mensajes TCP capturados por Wireshark en una comunicación loopback. Como se puede observar, las 3 primeras tramas (41, 42 y 43, en verde) se corresponden con el establecimiento de la conexión, ya que TCP es un protocolo orientado a conexión (ver figura 5). Precisamente por ello, tiene que haber un momento en el que se gestione el cierre de la misma. Eso es lo que encontramos en los paquetes 58-59 y 62-63 (en rojo). Las tramas intermedias (50-51 y 54-55, en azul) se corresponden con el intercambio de datos entre cliente y servidor, además de otro tipo de comunicaciones internas dentro del PC. De ellas, las de tipo push (PSH) gestionan el forzado del envío de datos que hay en el buffer de salida del equipo, y las de tipo ACK se corresponden a mensajes de asentimiento de transmisión o de recepción. Conviene estudiar la correspondencia entre la longitud de los datos que se intercambian y el programa realizado con LabVIEW® para comunicación TCP/IP, y relacionarlo con la figura 6. Figura 6: Establecimiento de conexión TCP. (http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-3.htm) 4 Comunicaciones e Instalaciones Industriales Práctica 2: Comunicaciones TCP-IP con LabVIEW® Si se hace clic en alguna de las tramas, se podrá observar el encabezado del nivel de enlace de datos (Ethernet), el encabezado de nivel de red (IP) y el encabezado de nivel transporte (TCP). En el encabezado IP se podrán distinguir, por ejemplo, las direcciones de red origen y destino y en el encabezado TCP los campos de puerto origen y destino. En la figura 5 se puede visualizar los datos relativos al paquete 50, donde se ve el envío de los 4 bytes de la palabra “hola”, encriptada en el mensaje. Finalmente, como ejercicio de entrenamiento se propone intercambiar mensajes con otra pareja del laboratorio, de manera que se envíen y reciban los correspondientes mensajes en sendos ordenadores. Además, estas conexiones se monitorizarán mediante Wireshark, para visualizar los paquetes enviados por la red. Para hallar la IP de nuestro ordenador, se hará clic en “Inicio”, se tecleará “cmd” para acceder al símbolo del sistema, y luego “ipconfig”. La dirección IP que deberemos de teclear será la dirección IPv4 de nuestro PC. 4. EJERCICIO ENTREGABLE Una vez se ha asimilado el manejo de WireShark y de los programas básicos de la comunicación TCP/IP en LabVIEW®, se aplicará lo aprendido durante las dos primeras prácticas para analizar los dos ficheros .vi de la carpeta Simple TCP_v2019 dentro de la práctica 2 de MiAulario. Se monitorizarán los paquetes enviados por un ordenador local y por uno remoto (el de la pareja de al lado, por ejemplo) y más adelante se intercambiarán los roles, obteniendo datos que hagan que cada pareja actúe como clienta y como servidora. En concreto, se pide: Cuestión 1: ¿Qué hacen los programas “cliente” y “servidor” reflejados en las figuras 6 y 7? Obviar la comprobación de los errores. Asumir que los programas se ejecutan correctamente. Cuestión 2: ¿Qué ocurrirá si, fijando el resto de parámetros,… a) b) c) d) e) cambiamos la IP del servidor antes y durante la ejecución de los programas? cambiamos el puerto del servidor antes y durante la ejecución de los programas? cambiamos el puerto local del cliente antes y durante la ejecución de los programas? cambiamos el timeout del servidor a 5 s (antes de ejecutarlo) y sólo ejecutamos su vi? cambiamos el timeout del cliente a 10 s (antes de ejecutarlo) y sólo ejecutamos su vi? Cuestión 3: Explicar el proceso de conexión e intercambio de paquetes TCP/IP en el ejercicio planteado, actuando primero como cliente y luego como servidor. Los timeouts se fijarán en 30 s. Condiciones: 3.1. Los bucles iterarán cada 1 s y se capturarán 5 intercambios de datos. 3.2. En todos los casos se mostrará y describirá la secuencia de datos enviada/recibida. Se podrá emplear cualquier medio electrónico/digital para asegurar que así sea. 3.3. Se incluirán las tramas de Wireshark que se consideren claves para demostrar el correcto envío/recepción de los datos a lo largo de TODA la comunicación TCP/IP. Cada grupo de prácticas subirá el entregable a través de la plataforma Mi Aulario con fecha de entrega tope la que se indique en la Tarea que se abrirá en Mi Aulario a tal efecto. Bastará con que una persona lo envíe. El entregable será un archivo .zip. Los documentos escritos se adjuntarán en formato pdf. Los documentos gráficos se adjuntarán en formato universal, de manera que puedan ser visualizables por cualquier reproductor. 5 Figura 6: Programa cliente para monitorizar datos mediante comunicación TCP/IP. El cambio de datos de un tipo a otro se realiza a través de la función “type cast”. En el case interior al lazo del cliente, si el servidor no ha enviado datos, la comunicación seguirá tal cual. Al final, el gestor de errores es un “Simple Error Handler”. Figura 7: Programa servidor para monitorizar datos en una comunicación TCP/IP. 6

Use Quizgecko on...
Browser
Browser