Publication: Ánalisis y prueba de escenarios de red en el sistema operativo RIOT para dispositivos IoT
Authors
Iván Álvarez Belotto
item.page.secondaryauthor
Facultades de la UMU::Facultad de Informática
item.page.director
Marín López, Rafael ; López Millán, Gabriel
Publisher
publication.page.editor
publication.page.department
DOI
item.page.type
info:eu-repo/semantics/bachelorThesis
Description
Abstract
The purpose of this work is to analyze, develop and test a solution for establishing network and application level communications within RIOT, one of the newest operating systems designed to be deployed on IoT devices. Among its features, RIOT adopts a modular structure with a minimalist kernel and has a unique network stack, called GNRC, that supports protocols for network communications such as IPv6, ICMPv6 or 6LoWPAN. In particular, 6LoWPAN is characterized by compressing IPv6 packets so that they can be transported in energy efficient wireless networks with low data transmission rates, on which IoT devices tend to operate and exchange information between them. This protocol is based on the IEEE 802.15.4 standard that only defines the physical and media access control layers of the OSI model for this type of network. Hence, 6LoWPAN is used to scale to the network layer. Nevertheless, it is not able to provide packet routing on its own, and this issue led to the definition of additional technologies, the most popular being the RPL protocol.
It is significant to notice that RIOT constitutes an open source collaborative project with a wide variety of example applications, whose code is written in the C programming language. Moreover, the modules that are declared in the “Makefile” of these applications, which can have network, transport, system or other functionalities, are added at compile time so the applications are executed properly and resource use remains low. All things considered, RIOT is just one of the many existing options for IoT dedicated operating systems. Some alternatives are Tiny OS, Contiki OS or Zephyr, the latter being a system with very similar characteristics but more oriented towards industrial projects. However, the choice of RIOT is a perfect fit to the context of this work as it is commonly used in academic or partnership environments. Besides, since its first appearance in 2013, RIOT’s development has continued to grow, giving rise to multiple tasks that create a challenging roadmap for potential or current contributors.
---------------------- En este trabajo, se ha llevado a cabo un análisis exhaustivo acerca del sistema operativoRIOT, una solución software diseñada para interactuar con dispositivos IoT caracterizados por su bajo consumo de energía, poco gasto en memoria y capacidades de cómputo limitadas. Entre las propiedades fundamentales de RIOT, conviene resaltar que permite la gestión de tareas concurrentes, el establecimiento de comunicaciones en redes de bajo consumo y la monitorización de actividades en tiempo real. Más allá del análisis anterior, el siguiente TFG se centra en el desarrollo y la prueba de escenarios de red en RIOT, los cuales sean acordes a la pila de red que este sistema operativo soporta por defecto. Para ello, definiremos un modelo OSI particular sujeto a esta pila y estudiaremos en profundidad cada uno de los protocolos que lo componen, siendo estos IEEE 802.15.4, 6LoWPAN, IPv6, ICMPv6, RPL y CoAP. Respecto a los escenarios a implementar, distinguiremos dos: el primero consistirá en la configuración y puesta en marcha de comunicaciones a nivel de red y aplicación entre dos dispositivos o motas IoT que comparten un enlace inalámbrico, donde este define una red de baja potencia y reducida transmisión de datos. Con el fin de probar que hay conectividad en las capas indicadas, utilizaremos mensajes ping y solicitudes CoAP de tipo GET, construidas por un cliente para obtener un recurso alojado en un servidor. Por otro lado, el segundo escenario trasladará el anterior a un intercambio de información análogo, pero en el que los extremos de la comunicación sean una mota IoT y un PC, con este último situado en una red IPv6 externa. De este modo, empezaremos diseñando un escenario dentro de una red con recursos restringidos y, como siguiente paso, veremos que es posible que los mensajes procedentes de una red inalámbrica puedan enrutarse hacia una red cableada, y viceversa, gracias a un componente intermedio denominado Border Router. Por consiguiente, el objetivo del trabajo se basa en analizar, montar y probar el establecimiento de comunicaciones de red en RIOT. Nótese que este tema sigue siendo objeto de estudio y debate dentro de la comunidad de desarrolladores asociada a este sistema operativo. Sin embargo, la información existente sobre él es muy extensa y se encuentra dispersa. A modo de ejemplo, es bien sabido que RIOT ha sufrido diversas actualizaciones desde su lanzamiento, lo que ha provocado que un amplio número de sus aplicaciones software dejen de estar mantenidas, sin que ello implique que ya no tengan interés para fines de investigación. En consecuencia, este TFG también pretende reunir toda la documentación de referencia acerca del despliegue de escenarios de red en RIOT y extraer de ella una guía que sea clara, concisa y permita llevar a cabo este proceso con éxito. Para ello, nos ayudaremos de una explicación teórica previa de los dos escenarios comentados y haremos uso de aplicaciones de RIOT ya programadas, centrándonos en la funcionalidad mínima que necesitamos de estas para completar los objetivos. Recordemos que dichos objetivos son tanto la correcta transmisión como recepción de mensajes ping y solicitudes CoAP. Así, una vez diseñados ambos escenarios, procederemos a identificar las tecnologías, herramientas y, en síntesis, todo el material necesario para comenzar su implementación dentro de RIOT. Entonces será cuando describiremos los dispositivos de Nordic Semiconductor con los que representaremos las motas IoT y el Border Router, las aplicaciones software de RIOT que nos permitirán instalar las funcionalidades correspondientes a un cliente CoAP, servidor CoAP y un Border Router sobre los dispositivos anteriores, así como aquellas utilidades que se requiere incorporar en el PC con la finalidad de que la compilación y ejecución de las aplicaciones se complete satisfactoriamente. La fase de desarrollo anterior puede resumirse en que, para el escenario entre dos motas IoT, utilizaremos dos placas nRF52840 DK sobre las que cargaremos el firmware de la aplicación “gcoap” de RIOT. En concreto, una de ellas hará el rol de cliente CoAP y la otra será el servidor. Mientras, en el segundo escenario, tendremos de nuevo una mota IoT representada por un nRF52840 DK, que será el servidor CoAP, y el cliente será el PC en el que habremos instalado RIOT y con el que estemos trabajando en todo momento. Por otra parte, el Border Router se implementará dentro de un dispositivo nRF52840 Dongle, al que se le cargará en memoria el firmware de la aplicación “gnrc border router” de RIOT. Otro aspecto relevante para comprobar que los escenarios en RIOT se comportan tal y como se puede considerar desde un punto de vista teórico será la captura de los paquetes intercambiados en cada caso. Para el escenario entre la mota IoT y el PC, este proceso se realizará desde la interfaz cableada por la que se comunicará el ordenador personal, mientras que en el escenario entre dos motas IoT, aprovecharemos el nRF52840 Dongle para instalar sobre él la funcionalidad de un nRF Sniffer, con el que obtendremos una traza de las tramas transmitidas en la red inalámbrica. Tras analizar cómo manejar correctamente los dispositivos anteriores y cargar aplicaciones software en ellos, estaremos en disposición de montar los escenarios de red de acuerdo al diseño teórico estudiado y, finalmente, desarrollaremos una serie de pruebas de concepto para verificar que los objetivos se satisfacen. Como parte de este último procedimiento, gracias a las trazas obtenidas podremos analizar la estructura de los paquetes intercambiados. Por tanto, este trabajo parte de un enfoque teórico, centrado en explicar las características principales de RIOT, los protocolos utilizados y los escenarios de red considerados (que sirven como base para cualquier desarrollador que pretenda desplegar comunicaciones a nivel de red y aplicación en este sistema operativo), para posteriormente detallar cómo llevar tales escenarios a la práctica, trabajando con dispositivos IoT específicos dentro de las terminales ofrecidas por las aplicaciones de RIOT empleadas y consiguiendo capturar todo el tráfico generado para estudiar el flujo resultante de las comunicaciones.
---------------------- En este trabajo, se ha llevado a cabo un análisis exhaustivo acerca del sistema operativoRIOT, una solución software diseñada para interactuar con dispositivos IoT caracterizados por su bajo consumo de energía, poco gasto en memoria y capacidades de cómputo limitadas. Entre las propiedades fundamentales de RIOT, conviene resaltar que permite la gestión de tareas concurrentes, el establecimiento de comunicaciones en redes de bajo consumo y la monitorización de actividades en tiempo real. Más allá del análisis anterior, el siguiente TFG se centra en el desarrollo y la prueba de escenarios de red en RIOT, los cuales sean acordes a la pila de red que este sistema operativo soporta por defecto. Para ello, definiremos un modelo OSI particular sujeto a esta pila y estudiaremos en profundidad cada uno de los protocolos que lo componen, siendo estos IEEE 802.15.4, 6LoWPAN, IPv6, ICMPv6, RPL y CoAP. Respecto a los escenarios a implementar, distinguiremos dos: el primero consistirá en la configuración y puesta en marcha de comunicaciones a nivel de red y aplicación entre dos dispositivos o motas IoT que comparten un enlace inalámbrico, donde este define una red de baja potencia y reducida transmisión de datos. Con el fin de probar que hay conectividad en las capas indicadas, utilizaremos mensajes ping y solicitudes CoAP de tipo GET, construidas por un cliente para obtener un recurso alojado en un servidor. Por otro lado, el segundo escenario trasladará el anterior a un intercambio de información análogo, pero en el que los extremos de la comunicación sean una mota IoT y un PC, con este último situado en una red IPv6 externa. De este modo, empezaremos diseñando un escenario dentro de una red con recursos restringidos y, como siguiente paso, veremos que es posible que los mensajes procedentes de una red inalámbrica puedan enrutarse hacia una red cableada, y viceversa, gracias a un componente intermedio denominado Border Router. Por consiguiente, el objetivo del trabajo se basa en analizar, montar y probar el establecimiento de comunicaciones de red en RIOT. Nótese que este tema sigue siendo objeto de estudio y debate dentro de la comunidad de desarrolladores asociada a este sistema operativo. Sin embargo, la información existente sobre él es muy extensa y se encuentra dispersa. A modo de ejemplo, es bien sabido que RIOT ha sufrido diversas actualizaciones desde su lanzamiento, lo que ha provocado que un amplio número de sus aplicaciones software dejen de estar mantenidas, sin que ello implique que ya no tengan interés para fines de investigación. En consecuencia, este TFG también pretende reunir toda la documentación de referencia acerca del despliegue de escenarios de red en RIOT y extraer de ella una guía que sea clara, concisa y permita llevar a cabo este proceso con éxito. Para ello, nos ayudaremos de una explicación teórica previa de los dos escenarios comentados y haremos uso de aplicaciones de RIOT ya programadas, centrándonos en la funcionalidad mínima que necesitamos de estas para completar los objetivos. Recordemos que dichos objetivos son tanto la correcta transmisión como recepción de mensajes ping y solicitudes CoAP. Así, una vez diseñados ambos escenarios, procederemos a identificar las tecnologías, herramientas y, en síntesis, todo el material necesario para comenzar su implementación dentro de RIOT. Entonces será cuando describiremos los dispositivos de Nordic Semiconductor con los que representaremos las motas IoT y el Border Router, las aplicaciones software de RIOT que nos permitirán instalar las funcionalidades correspondientes a un cliente CoAP, servidor CoAP y un Border Router sobre los dispositivos anteriores, así como aquellas utilidades que se requiere incorporar en el PC con la finalidad de que la compilación y ejecución de las aplicaciones se complete satisfactoriamente. La fase de desarrollo anterior puede resumirse en que, para el escenario entre dos motas IoT, utilizaremos dos placas nRF52840 DK sobre las que cargaremos el firmware de la aplicación “gcoap” de RIOT. En concreto, una de ellas hará el rol de cliente CoAP y la otra será el servidor. Mientras, en el segundo escenario, tendremos de nuevo una mota IoT representada por un nRF52840 DK, que será el servidor CoAP, y el cliente será el PC en el que habremos instalado RIOT y con el que estemos trabajando en todo momento. Por otra parte, el Border Router se implementará dentro de un dispositivo nRF52840 Dongle, al que se le cargará en memoria el firmware de la aplicación “gnrc border router” de RIOT. Otro aspecto relevante para comprobar que los escenarios en RIOT se comportan tal y como se puede considerar desde un punto de vista teórico será la captura de los paquetes intercambiados en cada caso. Para el escenario entre la mota IoT y el PC, este proceso se realizará desde la interfaz cableada por la que se comunicará el ordenador personal, mientras que en el escenario entre dos motas IoT, aprovecharemos el nRF52840 Dongle para instalar sobre él la funcionalidad de un nRF Sniffer, con el que obtendremos una traza de las tramas transmitidas en la red inalámbrica. Tras analizar cómo manejar correctamente los dispositivos anteriores y cargar aplicaciones software en ellos, estaremos en disposición de montar los escenarios de red de acuerdo al diseño teórico estudiado y, finalmente, desarrollaremos una serie de pruebas de concepto para verificar que los objetivos se satisfacen. Como parte de este último procedimiento, gracias a las trazas obtenidas podremos analizar la estructura de los paquetes intercambiados. Por tanto, este trabajo parte de un enfoque teórico, centrado en explicar las características principales de RIOT, los protocolos utilizados y los escenarios de red considerados (que sirven como base para cualquier desarrollador que pretenda desplegar comunicaciones a nivel de red y aplicación en este sistema operativo), para posteriormente detallar cómo llevar tales escenarios a la práctica, trabajando con dispositivos IoT específicos dentro de las terminales ofrecidas por las aplicaciones de RIOT empleadas y consiguiendo capturar todo el tráfico generado para estudiar el flujo resultante de las comunicaciones.
publication.page.subject
Citation
item.page.embargo
Collections
Ir a Estadísticas
Este ítem está sujeto a una licencia Creative Commons. http://creativecommons.org/licenses/by-nc-nd/4.0/


