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

30
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

Upload: others

Post on 15-Mar-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 2: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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?

Page 3: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

3

What is the goal?

hardwarehardware

OSOS

protocolsprotocols

applicationapplication

Page 4: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

4

What is the goal?

hardwarehardware

OSOS

protocolsprotocols

applicationapplication This is what appears to be exciting research-wise

Page 5: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

5

What is the goal?

hardwarehardware

OSOS

protocolsprotocols

applicationapplication

This is what you have to build, if you are serious

Page 6: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

6

What is the goal?

hardwarehardware

OSOS

protocolsprotocols

applicationapplicationThis has the largest and

direct impact on unit cost and feasibility

Page 7: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

7

What is the goal?

hardwarehardware

OSOS

protocolsprotocols

applicationapplicationThis determines how much you can do (and

how easily)

Page 8: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 9: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 10: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 11: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 12: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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.

Page 13: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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.

Page 14: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 15: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 16: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 17: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 18: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

18

Path convergence

S

D

Page 19: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

19

Path convergence

S

D

S

D

Page 20: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

20

Path convergence

S

D

S

D

Page 21: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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!

Page 22: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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.

Page 23: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

23

Node software layout

microcontroller

PicOS kernel

VNETI

praxis(application) TARP other

plugins

RFmodule

phy

othernetworkdevices

API plugs

driver driver

...GPIO, ADC, DACUART

Page 24: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 25: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 26: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 27: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 28: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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

Page 29: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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).

Page 30: Pawel Gburzynski & Wlodek Olesinski Olsonet Communications · reactive environment PicOS == SMURPH lingo used as the thread paradigm in our microscopic OS PicOS == SMURPH lingo used

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.