2. How do we meet/find people
● ... when wandering downtown?
● ... in my neighborhood?
● ... in my office?
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
3. Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
4. Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
5. Why not?
● Data transfer must be efficient
(forget about TCP/IP)
● Discovery must be scalable
(humans/objects/applications)
● Overhead and Power Consumption must be
minimized
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
7. Scalable discovery
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
8. Cerebro: http://cerebro.mit.edu
Provides:
● presence information (including distance) for all other
users/objects in the network
● mesh networking on regular 802.11b/g devices
● extensible user profile including nickname, colors, keys, IP
addresses, pictures, status message etc
● file sharing using an efficient multicast mechanism
● simple collaboration mechanism
● connect to remote mesh networks over the internet
● interoperability among different architectures (x86, ARM)
● programming API
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
9. Cerebro: discovery
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
10. Cerebro: discovery
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
11. Cerebro: discovery
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
15. Cerebro: File sharing
How “illegal” can we get?
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
16. Cerebro: File sharing
Cerebro: broadcast
TCP/IP: sequential
(opportunistic and reliable)
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
17. Transfer of 2MB to 27 nodes
Cerebro: 1Mbps
broadcast,
simultaneous
TCP/IP: 10Mbps,
unicast, sequential
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
22. Why multiple entries? Mobility!
Presence information arriving at B:
Node ID Witness Distance Source
C C 1 C
D C 3 C
E D 4 C
F D 4 C
G D 4 C
D D 2.5 D
E D 3.5 D
F D 3.5 D
G D 3.5 D
E E 5 E
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
23. Presence Table
Presence information arriving at A:
Node ID Witness Distance Source
B B 1 B
C C 2 B
D C 3 B
E C 4 B
F C 4 B
G C 4 B
Polychronis Ypodimatopoulos <ypod@mit.edu>
MIT Media Lab
24. Presence Protocol
1) Wait for a period T for presence beacons from neighboring nodes
2) For every beacon received:
For every entry in beacon:
• if it is about the current node, or the current node is the witness, or the the
serial number is not newer than the existing one, discard it!
• if node/witness pair exists in presence table update number of arrivals and
next arrival estimate both for node and witness
• else add new entry in the table
4) Eliminate stale entries in presence table (ie. entries where the next
arrival estimate has lapsed)
5) Create a new beacon using the minimum distances to each node in
presence table
6) Broadcast beacon to neighbors
May 2008 Polychronis Ypodimatopoulos <ypod@mit.edu> 24
MIT Media Lab
25. Presence Frame contents
Node ID Witness Distance Serial No.
Unique ID for each entry
ID of the node this
published by
entry is about
node <Node ID>
(MAC address, 6 bytes)
(2 byte)
ID of the node from Distance from the current
which this entry was node to <Node ID>
received (similar to ETX metric)
(MAC address, 6 bytes) (1 byte)
Presence Protocol for Large Mesh Networks
May 2008 Polychronis Ypodimatopoulos <ypod@mit.edu> 25
MIT Media Lab
26. Distance calculation
Distance D:
D = T/A
T: period of time
A: number of arrivals
May 2008 Polychronis Ypodimatopoulos <ypod@mit.edu> 26
MIT Media Lab