Giter Site home page Giter Site logo

robust-flooding's Introduction

Robust Flooding using Back-to-Back Synchronous Transmissions with Channel-Hopping

This is the source code of used for the EWSN dependability competition 2017 [1]. This solution was rated first amongst 10 submissions.

Scenario

A binary event has to be communicated from a source node to a sink node. This communication has to involve intermediate nodces, since source and sink are not within communication range of each other. At the same time, jammers create interference in the same communication frequency. The solution should be energy efficient, reliable and provide low latency. A more detailed description can be found on the competition webpage [1].

Protocol Description

This protocol uses periodic rounds of floods to propagate information in a multi-hop network. Every flood consists of consecutive (back-to-back), synchronous transmissions. Once a packet is received, nodes use a local timeout to schedule a transmission in the next slot. In the case of a blocked channel, information is not propagated. However, in the following slot, the flood can continue at the same progress level. This is different to the approach of Glossy [2], which requires for every sent packet a preceeding packet reception in order to maintain tighly aligned, synchronous transmissions. More information about the protocol can be found in the slides in doc/slides or in [3].

How to use it

Following key parameters can be set in the Makefile for the depcomp app:

GLOSSY_PERIOD_MS Interval of floods in milli seconds. Tested values: 25, 50, 100, 200

N_TX Number of transmissions per node in a flood.

N_CH Number of different channels to use.

SLEEP_BTW_EVENTS Set to 1 to enable the round skipping feature. If enabled, rounds following an event are skipped in order to save energy. This is only save, if the minimal interval between events is known (e.g., 2 s in the competition).

To run this code on FlockLab [4], set the DEFINES in the Makefile as follows:

DEFINES=COMPETITION_MODE=0,TINYOS_NODE_ID=1,GLOSSY_PERIOD_MS=50,N_TX=6,N_CH=6,SLEEP_BTW_EVENTS=1,USE_LIGHT_SENSOR=0

This allows to generate events on the initiator node using the GPIO actuation feature of FlockLab, by toggling the SIG1 pin.

Contact

Roman Lim [email protected] Reto Da Forno [email protected] Felix Sutton [email protected] Lothar Thiele [email protected]

References

  • [1] EWSN 2017 dependability competition http://www.ewsn2017.org/dependability-competition.html
  • [2] F. Ferrari, M. Zimmerling, L. Thiele, and O. Saukh. Efficient network flooding and time synchronization with Glossy. In Proceedings of the 10th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN), 2011
  • [3] R. Lim, R. Da Forno, F. Sutton, and L. Thiele. Robust Flooding using Back-to-Back Synchronous Transmissions with Channel-Hopping, Proceedings of the 14th International Conference on Embedded Wireless Systems and Networks (EWSN 2017), Uppsala, Sweden, 2017
  • [4] http://flocklab.ethz.ch/

robust-flooding's People

Contributors

rolim avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.