Trickle: A Self-Regulating Algorithm for Code Propagation and Maintenance in Wireless Sensor Networks Paper by David Culler, Philip Levis, Neil Patel, and Scott Shenker Presented by: Lee Hathcock The Problem Code propagation in WSNs is costly Desire an algorithm for scheduling code propagation Low maintenance Rapid propagation Scalable The solution? Trickle, of course. Few packets per hour, propagates in tens of seconds, scales well, robust, and only 11 bytes of state info Trickle Overview Every once in a while, a node transmits code “metadata” that represents its current code, provided it hasn’t heard the same data recently. Either all nodes are up to date, or… …a node needs to be updated. If a node needs to be updated, it happens by either… …a node hearing that it is out of date, and broadcasts its metadata so it can be updated, or… …a node hears that another node is out of date, and sends an update to the code. Trickle Algorithm • “Polite gossip” • Parameters – c: a counter, incremented each time a node hears its own metadata – k: a threshold, usually between 1 and 2 – t: a timer value, between the range of 0- – : a time constant Algorithm Analysis • k*m packet transmissions, but only under the following assumptions – No packet loss – Perfect interval synchronization – Single hop network • Relax each of these constraints Algorithm Analysis Conclusions Related work SPIN, SPIN-RL SRM Demers et al. PlanetP Reijers et al. Assumes nodes always on More of a scheduler than anything As such, can be used for more than code propagation References P. Levis, N. Patel, D. Culler, and S. Shenker, "Trickle: A self-regulating algorithm for code propagation and maintenance in wireless sensor networks," NSDI, 2004.