Courier is a group communication tool, based on the publish/subscribe principle,
i.e., applications can register their interest in receiving certain types
of events as subscribers and they can publish events to other subscribers.
Communication is asynchronous and anonymous. Courier is implemented in C and
currently available for the Unix environment only. It can be used for a
variety of settings (sensor networks, wireless/mobile systems, Internet-scale
distributed systems, clusters, etc.), however our current focus is on wireless
systems such as sensor networks. Here, the focus of our current work is on
multi-constraint event communication and network management, including
adaptive routing protocols in multi-hop networks, etc.
A monthly snapshot of the source code (and some documentation on how to use it) is provided on our lab's wiki. Current projects performed as part of the Courier effort include:
RTMC: Real-Time MultiCast (RTMC) is a protocol that energy-efficiently disseminates data in an ad-hoc or sensor network to several destinations (sinks), while meeting each sink's unique real-time requirements. Further, RTMC
also considers energy efficiency in multicast tree establishment. RTMC has
been implemented as extension to the Jist/SWANS simulator.
- SA-DSR: Stability Aware Dynamic Source Routing is our
contribution to disruption-tolerant networking. SA-DSR considers multiple
reliability aspects, e.g., it predicts the "awake time" of a multi-hop
route to prevent interruptions in communication caused by wireless network
cards entering low-power sleep modes. SA-DSR has been implemented in the
Jist/SWANS simulator and an implemention in Courier is underway.
- DETOUR: This project exploits the presense of multiple routes
between the same source and sink to improve end-to-end QoS (e.g., latency
management and energy efficiency).
- Clock Synchronization: In mobile environments, traditional
(e.g., client-server based) clock synchronization approaches are too rigid
and slow. This work addresses the design of an opportunistic clock
synchronization approach that operates efficiently and rapidly in mobile
environments, where individual nodes can tune the synchronization to meet
their needs for clock accuracy.
- Efficient Code/File Distribution: In large wireless
environments (e.g., sensor networks), it is often necessary to distribute
files to all (or many) nodes, e.g., to install new software releases. This
protocol efficiently distributes files across such networks (and installs/starts) them if these files are executables.
- Asymmetric Geographic Forwarding: Most routing protocols assume
symmetric links between two nodes, but many networks have numerous asymmetric
links (e.g., heterogeneous radio devices). AGF modifies the GF protocol
such that asymmetric links can also be exploited, thereby potentially
improving the QoS of multi-hop communications.