presence information
Polychronis Ypodimatopoulos
ypod at MIT.EDU
Sun May 20 12:28:14 EDT 2007
I'm not sure exactly how presence service decides whether an XO is still
present in the mesh or not, but I'll propose something anyway.
Every node waits for a period T (1sec?) to receive presence frames from
its neighbors. At the end of T, it summarizes presence information from
those frames into one or more frames (one frame fits around 100 entries)
and appends its own presence (MAC+TTL). At each node TTLs are decreased
and duplicate information on the same MAC is discarded, keeping the one
with the largest TTL. Presence frames contain a list of [MAC,TTL].
Each node calculates a rate at which presence information arrives from
all other nodes and fits the expected time until the next arrival into a
Poisson distribution and infers with some confidence (90% should be
fine) whether some other node is still online or not.
This scheme has the following advantages:
1) no broadcasting to whole mesh (communication only with neighbors), so
it should scale very well.
2) confidence level is independent of network latency (different rates
are calculated for different nodes, so no one-value-fits-all)
disadvantages:
1) on average, it takes T * {# of hops}seconds to discover node
arrivals/departures in the mesh (as opposed to just "network latency"
time when using broadcast).
Sample code can be provided.
p.
More information about the Devel
mailing list