pawel gburzynski & wlodek olesinski olsonet communications · reactive environment picos ==...

Post on 15-Mar-2021

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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.

top related