190 likes | 367 Views
Deluge TinyOS Network Programming The real way to program your motes. Jonathan Hui jwhui@cs.berkeley.edu Computer Science Division University of California, Berkeley. Network Programming is Essential. Retasking is essential
E N D
DelugeTinyOS Network ProgrammingThe real way to program your motes Jonathan Hui jwhui@cs.berkeley.edu Computer Science Division University of California, Berkeley 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. 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 TinyOS Technology Exchange
How Does Deluge Work?(Glossing over many details) • Nodes periodically advertise I only have version 1. Version 2here. I only have version 1. TinyOS Technology Exchange
How Does Deluge Work?(Glossing over many details) • Neighboring nodes request data Send mepage 1! Send me page 1! TinyOS Technology Exchange
How Does Deluge Work?(Glossing over many details) • Requested data is sent Packet 12 of page 1! TinyOS Technology Exchange
How Does Deluge Work?(Glossing over many details) • Dropped packets are NACKed Repeat packet 4of page 1! Repeat packet 32of page 1! TinyOS Technology Exchange
How Does Deluge Work?(Glossing over many details) • Dropped packets are sent again Packet 4 of page 1! TinyOS Technology Exchange
How Does Deluge Work?(Glossing over many details) • Advertise for propagation to next hop Version 2here. I only have version 1. TinyOS Technology Exchange
Epidemic Propagation • Epidemic propagation from one source TinyOS Technology Exchange
Epidemic Propagation • Epidemic propagation from one source or many 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 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 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 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 TinyOS Technology Exchange
0 Head Hash Sign 1 Head Data Hash 2 Head Data Hash n-1 Head Data Hash n Head Data Nonce 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 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! TinyOS Technology Exchange
Backup Slides TinyOS Technology Exchange
Methods for Retasking • Deluge addresses retasking via a new binary image. TinyOS Technology Exchange