[en] One of the main challenges in wireless communications networks between machines (M2M) is the need to provide large number of devices with access to a common communications channel. This is exacerbated in those applications in which the number of devices is unknown. To solve this problem, it is necessary to design medium access control (MAC) protocols responsible for managing the access of device communications to the shared channel efficiently. This project aims to implement and evaluate the performance of three protocols for M2M networks: Frame Slotted Aloha with feedback (FSA-FB), FSA without feedback (FSA-noFB) and Contention Tree Algorithm (CTA). The three protocols have been developed on Contiki OS, its functionality has been verified on Cooja simulator, and its performance has been evaluated experimentally on Z1 Zolertia wireless motes operating in the 2.4GHz frequency band. Z1 motes incorporate CC2420 radio transceivers Texas Instruments, whose physical layer complies with IEEE 802.15.4. Furthermore, Z1 motes have integrated sensors and include a Universal Serial Bus (USB) to be controlled from a computer and transfer the data to it. Z1 motes were programmed with the C programming language, which is compiled using a freeware application mounted on the Linux operating system called Contiki that is installed on the motes. The test scenario consists of a mote coordinator and a number of slave motes or "slaves". The coordinator sends a command to interrogate the slaves, which respond by running controlled MAC protocol rules. The motes are scheduled to execute the different MAC protocols, calculate the time (delay) they need to successfully complete all data transmissions to the coordinator, and measure their energy consumption during data transfer with the Contiki Powertrace tool. This work is focused on comparing the performance of the three protocols; FSA-FB, FSA-noFB and CTA; in terms of delay and energy consumption. We have obtained experimental measurements and compared them with computer-based simulation results with Cooja. These parameters have been evaluated based on the number of slave motes. Along the process, we have identified the limitations associated with the assumptions and models used in the software implementation, comparing the obtained results with both the theoretical and experimental results. Experimental results and the results obtained on the simulator show that the most efficient protocol in terms of delay is FSA-FB when you have a good estimation of the number of slaves. However, CTA and FSA-FB are more efficient in terms of energy consumption depending on the number of slots per frame. For experiments with a limited number of slots, 3 to 10, CTA ranks as the most efficient protocol, however, from 10 slots per frame FSA-FB becomes more efficient. Finally, we have identified the strengths and weaknesses of Contiki OS for implementation of MAC protocols in it.

[es] Una de las principales problemáticas en las redes de comunicaciones M2M (Machine-to-Machine) es la gran cantidad de dispositivos que intentan acceder al canal de comunicaciones simultáneamente. Esto se agrava en aquellas aplicaciones en las que la cantidad de dispositivos es desconocida. Para resolver esta problemática, es necesario diseñar protocolos de control de acceso al medio (MAC) que se encarguen de gestionar el acceso de los dispositivos al canal de comunicaciones de una manera eficiente. Este proyecto tiene cómo objetivo implementar y evaluar el rendimiento de tres protocolos adecuados para redes M2M: Frame Slotted Aloha con feedback (FSA-FB), FSA sin feedback (FSA-noFB) y Contention Tree Algorithm (CTA). Los tres protocolos se han desarrollado sobre Contiki OS, se ha verificado su funcionalidad sobre el simulador Cooja, y se ha evaluado su rendimiento experimentalmente sobre motas inalámbricas Zolertia Z1 que operan en la banda frecuencial de 2.4GHz. Las motas Z1 incorporan transceptores radio CC2420 de Texas Instruments, cuya capa física cumple con el estándar IEEE 802.15.4. Además, las motas Z1 tienen sensores integrados y disponen de un puerto Universal Serial Bus (USB) para ser controlados desde un ordenador y transferir los datos al mismo. Las motas Z1 han sido programadas con el lenguaje de programación C, que se compila usando una aplicación de libre distribución montada sobre el sistema operativo Linux llamada Contiki y que se instala en las motas. El escenario de pruebas está compuesto por una mota coordinadora y un conjunto de motas esclavas o "slaves". El coordinador envía un comando para interrogar a los esclavos, los cuales responden de manera controlada ejecutando las reglas del protocolo MAC para enviar una cierta información de prueba. Las motas están programadas para ejecutar los protocolos MAC, medir el tiempo (retardo) que necesitan para finalizar con éxito todas las transmisiones de datos al coordinador y su consumo de energía durante la transferencia de datos. Este consumo se mide mediante la herramienta powertrace de Contiki. Este trabajo se ha centrado en comparar los protocolos FSA-FB, FSA-noFB y CTA en términos de retardo y consumo energético. Se han obtenido y comparado medidas experimentales y resultados de simulaciones hechas con Cooja. A lo largo del proceso, se han identificado los problemas asociados a la implementación software, comparando los resultados teóricos y los simulados, y las complicaciones derivadas de la implementación real observando las diferencias entre los resultados simulados y los de la implementación real. Tanto los resultados obtenidos sobre el simulador Cooja cómo los resultados experimentales demuestran que el protocolo más eficiente en términos de retardo es FSA-FB cuando se dispone de una buena estimación del número de esclavos. Sin embargo, CTA y FSA-FB son más eficientes en términos de consumo energético en función del número de slots por trama. Para experimentos con un número reducido de slots, de 3 a 10, CTA se sitúa cómo el protocolo más eficiente, sin embargo, a partir de 10 slots por trama FSA-FB pasa a ser el más eficiente