Deluge TinyOS Network Programming The real way to program your motes Jonathan Hui jwhui@cs.berkeley.edu Computer Science Division University of California, Berkeley Feb. 11, 2005 TinyOS Technology Exchange
Network Programming is Essential Retasking is essential Often learn the about the environment after deployment (sensing data, network characteristics, etc.) Retasking over the network is crucial Embedded nature of sensor networks Network scales reaching thousands of nodes A necessity in debugging and testing cycle Deluge addresses retasking via a new binary image. Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange What is Deluge? A reliable data dissemination protocol for large data objects over a multihop network. Combined with a bootloader (TOSBoot) Network Programming Feb. 11, 2005 TinyOS Technology Exchange
How Does Deluge Work? (Glossing over many details) Nodes periodically advertise I only have version 1. Version 2 here. I only have version 1. Feb. 11, 2005 TinyOS Technology Exchange
How Does Deluge Work? (Glossing over many details) Neighboring nodes request data Send me page 1! Send me page 1! Feb. 11, 2005 TinyOS Technology Exchange
How Does Deluge Work? (Glossing over many details) Requested data is sent Packet 12 of page 1! Feb. 11, 2005 TinyOS Technology Exchange
How Does Deluge Work? (Glossing over many details) Dropped packets are NACKed Repeat packet 4 of page 1! Repeat packet 32 of page 1! Feb. 11, 2005 TinyOS Technology Exchange
How Does Deluge Work? (Glossing over many details) Dropped packets are sent again Packet 4 of page 1! Feb. 11, 2005 TinyOS Technology Exchange
How Does Deluge Work? (Glossing over many details) Advertise for propagation to next hop Version 2 here. I only have version 1. Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange Epidemic Propagation Epidemic propagation from one source Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange Epidemic Propagation Epidemic propagation from one source or many Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange Epidemic Propagation Epidemic propagation from one source or many Continuous propagation effort by all nodes Reaches nodes with intermittent connectivity Will find a path if it exists Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange Deluge Features Robustness Epidemic propagation from one source or many Redundant data integrity checks Golden image Rollback gesture Isolated bootloader (TOSBoot) Convenience Wireless, multihop reprogramming Store multiple program images Low Overhead Less than 150 bytes of RAM Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange How to Use It Deluge 1.0 since TinyOS 1.1.8. Mica2, Mica2-dot, MicaZ, and Telos. For many apps, just wire StdControl components DelugeC; Main.StdControl -> DelugeC; Integrated (by others) with many apps Blink, Surge, TinyDB, etc. eXtreme Scale Demo: 983 Nodes Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange Deluge 2.0 (in beta) Robustness Hardware write protect on external flash chip. Data-structures integrity protected by PC generated CRCs Deluge version number information included in Deluge packets Usability Ping reply includes app name, compile time, user, host, size. Auto-resume incomplete images and detection of identical images. Auto-detection of identical images. User confirmation to continue execution. Auto-detection of Deluge vs. TOSBase. In Sourceforge: tinyos-1.x/beta/Deluge Feb. 11, 2005 TinyOS Technology Exchange
ROSEBUDS: Secure Dissemination Implementation Components: Nodes, (Owner’s) Server, Factory Factory assigns node id (IEEE OUI + serial #) Node generates ECC keys, gives pub key to Server Factory signs [id, ECC pub key] at mfg time Node preloaded w/ id, cert, Server RSA pub key Server queries network for object version Creates new package with version + 1 Performs Object Transmission Security Overhead: ~ 14% more octets, larger packets Crypto Suite SHA-1 for hash (upper 64-bits) : ~ 13 ms/hash RSA-1024 for signatures: ~ 1.5 s/check ECCDH for node pair-wise key-exchange: ~ 1-2 min/key exchange Status: prototype implementation of security but not yet integrated with dissemination service Hash Data Head Nonce Sign 1 2 n-1 n Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange Thanks Demonstration today (of Deluge 2.0)! http://www.tinyos.net/deluge/ tinyos-1.x/doc/deluge-manual.pdf “The Dynamic Behavior of a Data Dissemination Protocol for Network Programming at Scale,” SenSys 2004. Please provide feedback! Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange Backup Slides Feb. 11, 2005 TinyOS Technology Exchange
TinyOS Technology Exchange Methods for Retasking Method Flexibility Cost Frequency Configuration Parameters Low High Scripts/ ByteCode Med New Binary Very High Very Low Deluge addresses retasking via a new binary image. Feb. 11, 2005 TinyOS Technology Exchange