Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Practical Asynchronous Neighbor Discovery and Rendezvous for Mobile Sensing Applications Prabal Dutta and David Culler Computer Science Division University.

Similar presentations


Presentation on theme: "1 Practical Asynchronous Neighbor Discovery and Rendezvous for Mobile Sensing Applications Prabal Dutta and David Culler Computer Science Division University."— Presentation transcript:

1 1 Practical Asynchronous Neighbor Discovery and Rendezvous for Mobile Sensing Applications Prabal Dutta and David Culler Computer Science Division University of California, Berkeley {prabal,culler}@cs.berkeley.edu Sensys’08 – Raleigh, NC – Nov. 5-7, 2008

2 2 Mobility makes energy and communication challenges fundamentally harder Energy –Must carry it along with the node –Or harvest it from the ambient environment –And deal with inherent uncertainty of harvesting Link dynamics –Link. What link? –Never before seen link –What radio channel? –When to look? –Can’t just probe during deployment –History is a poor guide –History is no guide “Weather + mobility = uncertain energy budget” - Jacob Sorber, Sensys 2007 J. Sorber et al., “Eon: A Language and Runtime for Perpetual Systems”, Sensys’07, Sydney, Australia

3 3 Mobility makes asynchronous neighbor discovery a fundamental problem The asynchronous neighbor discovery problem How can two systems that are –rarely co-located –awake infrequently –operating with independent duty cycles discover each other –without prior knowledge of potential encounters –without external assistance?

4 4 Emerging class of low-power mobile sensing applications Talking DockingFlocking [Liu04] [Choudury04,07] [Wark07] [Malinowski07] [Borriello04] [Huang05] [UP08] [Eisenman08] Three interaction patterns. Three operating regimes: symmetric, asymmetric, hybrid

5 5 Some asynchronous neighbor discovery techniques exist Quorum [Tseng02] Divide time into m x m intervals Listen during a column Transmit during a row Rendezvous at their intersection Used by LPL (B-MAC, X-MAC) –Listen periodically (m = T listen ) –Transmit long preambles or same packet repeatedly, periodically ( E {T listen /2}) –Rendezvous when these listen and transmit times overlap Overhearing problem TLR t 87 21 109 43 1211 65 2019 1413 2221 1615 2423 1817 3231 2625 3433 28 27 3635 3029 CCA O(15 ms) in T2 m m But requires global agreement on the minimum node duty cycle (B-MAC) or unclear termination condition (X-MAC)

6 6 Variations on a theme T L R t 87 21 109 43 1211 65 2019 1413 2221 1615 2423 1817 3231 2625 3433 28 27 3635 3029 m m Birthday [McGlynn01] Randomly choose to listen, transmit or be idle (sleep) Not deterministic Combinatoric [Zheng03] Requires symmetric design Asymmetric schedule NP hard Not distributed Quorum [Tseng02] Listen during a row Transmit during a column Used by some TDMA protocols Global agreement on duty cycle

7 7 Disco: a new asynchronous neighbor discovery algorithm that is fully distributed and allows local duty cycle choices Two nodes, i and j –start their counters c i and c j –at arbitrary times, say x = 1 and x = 2 –increment counters with equal period Tslot –and wake up at some relatively prime intervals, say m i = 3 and m j = 5 Dark cells indicate times when node i and j turn on radios Both nodes are awake at times x = 7 and x = 22 This rendezvous pattern repeats for x = 7+15k,  k  Z + Works by virtue of the Chinese Remainder Theorem –Provided periods m i = 3 and m j = 5 are relatively prime Disco uses two primes/node to ensure pairwise relative primes The choice of primes is a critical design consideration that enables great flexibility with relative simplicity

8 8 A glimpse of Disco in operation event void Timer.fired() { if (c % p1 == 0) || (c % p2 == 0) { wake(); // 1 beacon(); // 2 listen(Tslot); // 3 beacon(); // 4 sleep(); // 5 } c++; } 21 5 34 At 2% duty cycle, with Tslot = 10 ms, and (p1,p2) = (97, 103), 150 rendezvous / hour or 1 rendezvous every 24 seconds 5 ms ≤ Tslot ≤ 25 ms with Tslot = 25 ms, 60 rendezvous / hour or 1 rendezvous every 60 seconds

9 9 Outline Introduction Related Work Disco Overview How does it work? –From duty cycle to primes –Slot design to ensure rendezvous –A complete example –Duty cycle as a function of latency –(A lot of other details are in the paper) How well does it work? How is it used? What are its limitations?

10 10 Choosing primes from the duty cycle + DC pi1pi1 pi2pi2 11 + 5% = 37 43 11 = + 5% = 23 157 11

11 11 Ensuring bi-directional discovery during rendezvous i j i leads j i and j in sync CSMA/CA

12 12 A more realistic example of Disco operation Node i is awake at times: –5, 10, 15, 20, 25, 30, 25, and –7, 14, 21, 28, 35 Node j is awake at times: –1, 6, 11, 16, 21, 26, 31, and –1, 8, 15, 22, 29, 36 Nodes i and j are both awake at: –15, 22 Two primes per node ensures even if both nodes pick same primes, discovery will occur ijR t 87 21 109 43 1211 65 2019 1413 2221 1615 2423 1817 3231 2625 3433 28 27 3635 3029 B/L/B O(11 ms) in Disco m m 21 15

13 13 Outline Introduction Related Work Disco Overview How does it work? How well does it work? –Discovery latency –Choice of prime pairs –Duty cycle asymmetry How is it used? What are its limitations?

14 14 First, some terminology Discovery latency: time to rendezvous from an unsynchronized state Slot length: the time to beacon + listen (Tslot) Beacon rate: number of beacons per second Balanced primes: when intra-node primes are approximately equal (e.g. 5% = 1/37 + 1/43) Unbalanced primes: when intra-node primes are significantly different (e.g. 5% = 1/23 + 1/157) Symmetric pairs: when inter-node pairs are identical (e.g. both nodes i and j chooses (37, 43)) Aymmetric pairs: when inter-node pairs are distinct (e.g. node i chooses (37, 43) and node j chooses (23, 157))

15 15 CDF of discovery latency for the Disco, Quorum, and Birthday operating at the same duty cycle (5%) Birthday starts strong but the tail is long Disco and Quorum track each other Disco using balanced primes in symmetric pairs

16 16 Practice often beats theory Theory Practice

17 17 Choice of primes and pairs greatly affects discovery latency Birthday Unbalanced primes in asymmetric pairs show best latency (23,157), (29,67) Unbalanced primes in symmetric pairs show worst latency (23,157), (23,157) Balanced primes in symmetric pairs show average latency (37,43), (37,43) 5%

18 18 Limit of the ratio between the best (U/A) and worst (U/S) discovery latency is equal to the duty cycle Example: 1% ≈ (1/101 + 1/10103) ≈ (1/103 + 1/3433) Best cast: O(101*103) Worst case: O(101*10103) ≈ 1 100

19 19 A concrete example: the benefits of good primes and pairs Discovery occurs more quickly in 75% of cases Discovery occurs more slowly in 19% of cases And the really bad pairing is quite rare Four unique pairs for a 5% duty cycle: (23,157), (29,67), (31,59), (37,43) CDF of discovery latencies for the 16 distinct combinations Conclusion: asymmetry helps most of the time. Take advantage if possible.

20 20 Discovery latency decreases with increasing asymmetry in pairwise duty cycles for a fixed average duty cycle Sink nodes Cattle nodes [Wark07] DC = 3% = (3%+3%)/2 (61,73), (61,73) DC = 3% = (2%+4%)/2 (97,103), (47,53) DC = 3% = (1%+5%)/2 (191,211), (37,43) Useful when application has natural asymmetry, like “Docking”

21 21 Neighbor discovery in clusters 2% = (97,103) Time to discovery of first node is short. Sharing neighbor information could be useful

22 22 Outline Introduction Related Work Disco Overview How does it work? How well does it work? How is it used? –Simple API –Discovery latency driven –Node asymmetry What are its limitations?

23 23 Disco allows applications set duty cycle, node class, and beacon mode, and also piggyback data on beacons interface Discovery { // Request a duty cycle between 0 and 100 percent command uint8_t setDutyCycle(uint8_t dutycycle); command uint8_t getDutyCycle(); // Set the node class to reduce inter-class latency command error_t setNodeClass(uint8_t classid); command uint_t getNodeClass(); // Select beacon-and-listen or listen-only mode command error_t setBeaconMode(bool beacon); command bool getBeaconMode(); // Request, event, callback for app-specific payload command error_t requestBroadcast(); event error_t fetchPayload(void *buf, uint8_t *len); event message_t received(message_t* msg, void* buf, uint8_t len); }

24 24 If the discovery window is small, select a maximum discovery latency and compute duty cycle 100 s 2% 10 ms Assumes: 1.Balanced primes 2.Symmetric pairs

25 25 Select different node classes and their operating duty cycles Sink node Cattle nodes [Wark07] Disco.setDutyCycle(1); Disco.setNodeClass(2); Disco.setBeaconMode(TRUE); Disco.setDutyCycle(5); Disco.setNodeClass(1); Disco.setBeaconMode(TRUE);

26 26 Outline Introduction Related Work Disco Overview How does it work? How well does it work? How is it used? What are its limitations? –Not all “slots” are equal –Robustness to clock skew –Duty cycle “adaptation” left to application

27 27 The analysis uses “slot” length, but not all slots are equal Disco tested with 5, 10, 25 ms slots Original B-MAC has O(9) ms “slot” CC2420 LPL in TinyOS 2.x has O(15 ms) CCA CC2420 LPP in TinyOS 2.x has O(20 ms) “slot” [Dutta05] Optimized CCA uses O(3 ms) “slot” [Hui08] [Musaloiu08] [Disco] Real figures of merit are both slot length and ∫p(t)dt

28 28 A clock skew of ±50 ppm could result in a failure to rendezvous as expected at duty cycles below 1% failed rendezvous slots overlap expected rendezvous failed rendezvous early rendezvous early rendezvous Early rendezvous may still occur No clock skew i’s clock is fast j’s clock is fast

29 29 Summary Finding needles of connectivity in haystacks of time A simple scheduling algorithm to ensure temporal overlap A solution to the low-power asynchronous neighbor discovery problem in mobile sensing applications Distributed algorithm allows independent choices As easy as picking a pair of primes and counting Often better performance in practice than in theory

30 30 Questions?

31 31 Backup slides

32 32 Common interaction patterns in mobile systems Talking. Two nodes meet, exchange data, and diverge. Docking. A mobile node discovers a static node situated at a rendezvous point Flocking. A group of nodes move together as a unit

33 33 Mobility makes energy availability highly variable, so per-node duty cycles might vary considerably “Weather + mobility = uncertain energy budget” - Jacob Sorber, Sensys 2007 J. Sorber et al., “Eon: A Language and Runtime for Perpetual Systems”, Sensys’07, Sydney, Australia J. Taneja, J. Jeong, and D. Culler, “Design, Modeling, and Capacity Planning for Micro-Solar Power Sensor Networks”, IPSN/SPOTS’08, St. Louis, MO, USA “Canopy + no mobility = uncertain energy budget” - Jay Taneja IPSN 2008 Mobility or not, energy income is often quite variable

34 34 A concrete example: the benefits of good primes and pairs Discovery occurs more quickly in 75% of cases Discovery occurs more slowly in 19% of cases And the really bad pairing is quite rare Four unique pairs for a 5% duty cycle: (23,157), (29,67), (31,59), (37,43) CDF of discovery latencies for the 16 distinct combinations Conclusion: asymmetry helps most of the time; Take advantage if possible.


Download ppt "1 Practical Asynchronous Neighbor Discovery and Rendezvous for Mobile Sensing Applications Prabal Dutta and David Culler Computer Science Division University."

Similar presentations


Ads by Google