pawel gburzynski & wlodek olesinski olsonet communications · reactive environment picos ==...
TRANSCRIPT
1
Ad-hoc networking with low-cost devices:how to do it right
Ad-hoc networking with low-cost devices:how to do it right
Pawel Gburzynski & Wlodek Olesinski
Olsonet Communications
2
What is wrong?
Lots of academic work: “problems” identified, “solutions” abound
Lots of academic work: “problems” identified, “solutions” abound
Industry has been making a lot of noise (and we are already blessed with ZigBee®)
Industry has been making a lot of noise (and we are already blessed with ZigBee®)
So where are those mesh networks? Have you seen one lately?
So where are those mesh networks? Have you seen one lately?
3
What is the goal?
hardwarehardware
OSOS
protocolsprotocols
applicationapplication
4
What is the goal?
hardwarehardware
OSOS
protocolsprotocols
applicationapplication This is what appears to be exciting research-wise
5
What is the goal?
hardwarehardware
OSOS
protocolsprotocols
applicationapplication
This is what you have to build, if you are serious
6
What is the goal?
hardwarehardware
OSOS
protocolsprotocols
applicationapplicationThis has the largest and
direct impact on unit cost and feasibility
7
What is the goal?
hardwarehardware
OSOS
protocolsprotocols
applicationapplicationThis determines how much you can do (and
how easily)
8
What is the goal?
Here we have it: the notorious (although not often realized) layering problem in the standard approach to solutions:
Here we have it: the notorious (although not often realized) layering problem in the standard approach to solutions:
hardwarehardware
OSOS
protocolsprotocols
applicationapplicationBut again, this is what you have to build: the
WHOLE thing
9
What is wrong with academic research:
Most research ignores mundane aspects, like:Most research ignores mundane aspects, like:
device footprint and end costdevice footprint and end cost
realistic properties of wireless channelsrealistic properties of wireless channels
ease of application developmentease of application development
portabilityportability
maintenancemaintenance
10
What is wrong with the industry:standards and layers structured by consortia, i.e., the larger the better
standards and layers structured by consortia, i.e., the larger the better
no early view of the actual software: it will be outsourced; design and implementation are two completely different things
no early view of the actual software: it will be outsourced; design and implementation are two completely different things
the application is just a layer on top of a large mess of various “stacks”
the application is just a layer on top of a large mess of various “stacks”
trying to solve general problems with conflicting specs: you cannot produce anything truly simple and small this way
trying to solve general problems with conflicting specs: you cannot produce anything truly simple and small this way
11
Our holistic ideasSimple is beautiful, e.g., the word “stack” has been removed from our dictionary
Simple is beautiful, e.g., the word “stack” has been removed from our dictionary
A flexible plug-in model: tools facilitating structured interplay of modules without restricting their reach
A flexible plug-in model: tools facilitating structured interplay of modules without restricting their reach
Ease of accommodating new devicesEase of accommodating new devices
Authoritative product development and testing without hardware deployment! truly rapid development!
Authoritative product development and testing without hardware deployment! truly rapid development!
A simple, auto-scalable, stage-less routing schemeA simple, auto-scalable, stage-less routing scheme
12
The principle of collaboration
Nodes come and go, nothing is ever guaranteed.Nodes come and go, nothing is ever guaranteed.
The more nodes are involved in some action, the more likely that some of them will fail to keep their end up.
The more nodes are involved in some action, the more likely that some of them will fail to keep their end up.
Do not use contrived schemes, i.e., ones that break irreparably when one of the collaborating nodes fails.
Do not use contrived schemes, i.e., ones that break irreparably when one of the collaborating nodes fails.
A node should idempotently push the system towards the goal. It should never be a critical member of the team, unless the team is small and the action is short.
A node should idempotently push the system towards the goal. It should never be a critical member of the team, unless the team is small and the action is short.
13
The principle of participation
Your resources are limited.Your resources are limited.
You should be able to tailor the extent of your participation in collaborative tasks to your resources.
You should be able to tailor the extent of your participation in collaborative tasks to your resources.
The collaborative schemes should be scalable to the amount of resources of the team members.
The collaborative schemes should be scalable to the amount of resources of the team members.
Say, a node with small memory should be able to contribute, too, albeit at proportionately reduced quality compared to a resourceful node.
Say, a node with small memory should be able to contribute, too, albeit at proportionately reduced quality compared to a resourceful node.
14
These principles are mostly violated
E.g., popular ad-hoc routing protocols operate in two phases whereby:
E.g., popular ad-hoc routing protocols operate in two phases whereby:
Don't be fooled! Even if the two phases are interleaved and not blatantly visible, they are still there.
Don't be fooled! Even if the two phases are interleaved and not blatantly visible, they are still there.
paths are identified, maintained, recoveredpaths are identified, maintained, recovered
Those paths emulate wires (in a pathetic sort of way). The collaboration is contrived: every node along a path is a critical member of a potentially large team.
Those paths emulate wires (in a pathetic sort of way). The collaboration is contrived: every node along a path is a critical member of a potentially large team.
actual hop-by hop forwarding takes placeactual hop-by hop forwarding takes place
15
Mesh networking
?
Where should I send the packet on its way to the destination?
Where should I send the packet on its way to the destination?
P->PP->P
This is how everybody (including Zigbee®)
does it
16
Mesh networking: TARP
?
Where should I send the packet on its way to the destination?
Where should I send the packet on its way to the destination?
P->PP->P ?
?
??
Should I rebroadcast the received packet? Will I help when I do that?
Should I rebroadcast the received packet? Will I help when I do that?
TARPTARP
17
Flooding controlled by a chain of rules
am I therecipient?
am I therecipient?
receive andforget
receive andforget
YES
NOrule 1rule 1
drop
rule 2rule 2drop
rule nrule ndrop
rebroadcastrebroadcast
fail
fail
fail
too many hops?
seen already?
Suboptimal Path Discard
18
Path convergence
S
D
19
Path convergence
S
D
S
D
20
Path convergence
S
D
S
D
21
Don't let them fool you!This is not fundamentally worse than point-to-point forwarding! Flooding may have negative connotations, so call it something else, e.g., re-casting.
This is not fundamentally worse than point-to-point forwarding! Flooding may have negative connotations, so call it something else, e.g., re-casting.
All those “sophisticated” point-to-point schemes must at least start this way, i.e., from flooding.
All those “sophisticated” point-to-point schemes must at least start this way, i.e., from flooding.
Everything is broadcast in wireless: there is no such thing as point-to-point; they can only pretend.
Everything is broadcast in wireless: there is no such thing as point-to-point; they can only pretend.
In TARP the “paths” can converge to essentially the same narrow stripe of nodes as in AODV, DSR, ... if you REALLY want them to. You don't!
In TARP the “paths” can converge to essentially the same narrow stripe of nodes as in AODV, DSR, ... if you REALLY want them to. You don't!
22
AdvantagesNo need for data-link encapsulation: packets are forwarded in their “original” shape.
No need for data-link encapsulation: packets are forwarded in their “original” shape.
Rules are cache-driven and failsafe: if the cache is too short, the packet will not be dropped on the rule's behalf.
Rules are cache-driven and failsafe: if the cache is too short, the packet will not be dropped on the rule's behalf.
This makes the rules scalable to resources: preserving the principle of participation.
This makes the rules scalable to resources: preserving the principle of participation.
Tuneability: easy to trade bandwidth for reliability (PDF) in the face of mobility.
Tuneability: easy to trade bandwidth for reliability (PDF) in the face of mobility.
Single phase, automatic redundancy, no critical nodes: follows the principle of collaboration.
Single phase, automatic redundancy, no critical nodes: follows the principle of collaboration.
23
Node software layout
microcontroller
PicOS kernel
VNETI
praxis(application) TARP other
plugins
RFmodule
phy
othernetworkdevices
API plugs
driver driver
...GPIO, ADC, DACUART
24
VUE2: the same thing run virtually
VNETI
praxis(application) TARP other
plugins
phy
API plugs
VUEE = Virtual Underlay Emulation Engine
VirtualRF module
VirtualUART
VirtualI/O pins
Othervirtual
hardware
Interface daemon
Channelmodel
Virtualnetwork
Remote agents
25
SMURPH -> PicOS -> VUE2
SMURPH == simulation and specification systemSMURPH == simulation and specification system
SIDE == SMURPH + interface to real-lifereactive environment
SIDE == SMURPH + interface to real-lifereactive environment
PicOS == SMURPH lingo used as the threadparadigm in our microscopic OS
PicOS == SMURPH lingo used as the threadparadigm in our microscopic OS
VUE2 == macros and functions turning a PicOSapplication (praxis) into a SMURPH model
VUE2 == macros and functions turning a PicOSapplication (praxis) into a SMURPH model
26
fsm hrate { state HR_INIT: delay (3 * 1024, HR_SEND); Release; state HR_SEND: if ((HeartRate = hrc_get ()) > 255) HeartRate = 255; if (XWS == 0) { // Don't do this if a sample is being sent
address packet = tcv_wnp (HR_SEND, BSFD, 2); put1 (packet, PT_HRATE); put1 (packet, HeartRate); tcv_endp (packet); } proceed HR_INIT;}
A PicOS thread
27
fsm hrate { state HR_INIT: delay (3 * 1024, HR_SEND); Release; state HR_SEND: if ((HeartRate = hrc_get ()) > 255) HeartRate = 255; if (XWS == 0) { // Don't do this if a sample is being sent
address packet = tcv_wnp (HR_SEND, BSFD, 2); put1 (packet, PT_HRATE); put1 (packet, HeartRate); tcv_endp (packet); } proceed HR_INIT;}
A PicOS thread
INITINIT 3 sec3 sec SENDSEND
calculateHR
calculateHR
XWS?XWS?yes
get xmtbuffer
sendHR
sendHR
no
28
What does it buy us?
codecode
datadata
stackstackx
shared, ROM (flash)shared, ROM (flash)
needed anyway (small, mostly global)
needed anyway (small, mostly global)
unacceptableunacceptable
29
What does it buy us?
codecode
datadata
stackstackx
shared, ROM (flash)shared, ROM (flash)
needed anyway (small, mostly global)
needed anyway (small, mostly global)
unacceptableunacceptable
1Multiple threads (FSM's) operating as coroutines with implicit control transfer and multiple entry points. They all execute on the same single stack within a trivial prerequisite amount of RAM (like 20 bytes per thread).
Multiple threads (FSM's) operating as coroutines with implicit control transfer and multiple entry points. They all execute on the same single stack within a trivial prerequisite amount of RAM (like 20 bytes per thread).
30
Summary
Something simple that works wins with anything complex that is merely supposed to work.
Something simple that works wins with anything complex that is merely supposed to work.
We only demonstrate whole solutions, not their parts of allegedly superb (albeit isolated) quality.
We only demonstrate whole solutions, not their parts of allegedly superb (albeit isolated) quality.
1000+ nodes industrial grade ad-hoc setup based on node with component cost below $20.
1000+ nodes industrial grade ad-hoc setup based on node with component cost below $20.
An IL (Independent Living) monitoring system in a leading IL facility in NJ.
An IL (Independent Living) monitoring system in a leading IL facility in NJ.