17
The Real Ad The Real Ad-hoc Multi hoc Multi-hop hop The Real Ad The Real Ad hoc Multi hoc Multi hop hop Peer Peer-to to-peer (RAMP) Middleware: peer (RAMP) Middleware: an Easy an Easy-to to-use Support use Support an Easy an Easy-to to-use Support use Support for Spontaneous Networking for Spontaneous Networking P l B ll it Paolo Bellavista Antonio Corradi Carlo Giannelli 24.6.2010 - ISCC '10 DEIS, Università degli Studi di Bologna, Viale Risorgimento, 2 - 40136 Bologna Italy [email protected]

The Real AdThe Real Ad-hoc Multihoc Multi-hop PeerPeer

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

The Real AdThe Real Ad--hoc Multihoc Multi--hophopThe Real AdThe Real Ad hoc Multihoc Multi hop hop PeerPeer--toto--peer (RAMP) Middleware:peer (RAMP) Middleware:

an Easyan Easy--toto--use Supportuse Supportan Easyan Easy--toto--use Support use Support for Spontaneous Networkingfor Spontaneous Networking

P l B ll i tPaolo BellavistaAntonio CorradiCarlo Giannelli

24.6.2010 - ISCC '10DEIS, Università degli Studi di Bologna,

Viale Risorgimento, 2 - 40136 Bologna [email protected]

AgendaAgendaggSpontaneous networkingp g– opportunities and issues

RAMP middleware for spontaneous networking supportd i id li d li ti l ti– design guidelines and application-layer routing

– main features provided to application developers

Efficient packet managementp g– dynamic splitting of huge packets– performance of File Sharing application

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

performance of File Sharing application

1/15

Spontaneous Network (1)Spontaneous Network (1)p ( )p ( )

Impromptu interconnection of mobile and fixed nodesImpromptu interconnection of mobile and fixed nodes– users willing to share content and resources

Maximize interconnected nodes and available servicesMaximize interconnected nodes and available services– heterogeneous wireless technologies– both infrastructure and ad-hoc connectivity

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

– multiple connectivity opportunities

2/15

Spontaneous Network (2)Spontaneous Network (2)p ( )p ( )Node cooperation to UMTS 

Base StationIEEE 802.11Access Point

– provide single-hop connectivity– manage multi-hop connectivity C

DA

E

IEEE 802.11IBSS

Bluetoothmanage multi hop connectivity– support peer-to-peer services F

B

E

Ginterface providing ad hoc connectivity

BluetoothPiconet

Bluetooth i

IEEE 802.11IBSS

Peer-to-peer File Sharingservice advertising: NodeA provides lesson notes

ad hoc connectivity PiconetIBSSsingle‐hop link

– service advertising: NodeA provides lesson notes– service discovery: NodeF looks for nodes that share files

i d b d d l d– service invocation: NodeF browses and downloads notes stored on NodeA

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

NodeA and NodeF reside in different layer-3 networks3/15

Issues of Spontaneous Issues of Spontaneous NetworkingNetworkingNetworkingNetworking

Heterogeneous nodesIEEE 802 11 Bl h E h– IEEE 802.11, Bluetooth, Ethernet

– several operating systemsU di t d t k tUn-coordinated network management– localized provisioning of layer-2/3 connectivity

interconnection of heterogeneous layer 3 networks– interconnection of heterogeneous layer-3 networksErratic and unpredictable behavior

nodes abruptly create and destroy pieces of network– nodes abruptly create and destroy pieces of network– nodes dynamically join/move/leave

Scenario complexity makes hard the development of novel applications

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

of novel applications

4/15

RAMP: Real AdRAMP: Real Ad--hoc hoc MultiMulti hop Peerhop Peer toto peerpeerMultiMulti--hop Peerhop Peer--toto--peerpeer

Easy-to-use middleware for transparent spontaneous t k t i l ti tnetwork management in relation to

– operating systemwireless technology– wireless technology

– layer-3 network configuration– node mobilityy

Unicast and broadcast communicationper packet sendUnicast sendBroadcast receive– per-packet sendUnicast, sendBroadcast, receive

Peer-to-peer service provisioning and discovery– per-service registerService findServiceper service registerService, findService

RAMP Java prototype available on MS Windows XP/Vi t /7 Li d M OS X

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

XP/Vista/7, Linux and Mac OS X

5/15

RAMP Design GuidelinesRAMP Design GuidelinesggApplication-layer management

l 3 ti it bl f t t k– layer-3 routing unsuitable for spontaneous networks– operating system independency + routing flexibility

Local management decisionsLocal management decisions– nodes have partial topology awareness– dynamic path reconfigurationy p g

Reactive and mission-oriented approach– resource/path discovery only when required – eventually cached information invalidated very soon

Stateless communicationk t i f ti d li d th ti– per-packet information delivery and path creation

Cross-layer managementapplications may influence routing mechanism behavior

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

– applications may influence routing mechanism behavior

6/15

RAMP ArchitectureRAMP ArchitecturesendUnicastsendBroadcast

registerServicefindServices sendBroadcast

receive

ServiceLayer

localservices

ServiceManager

Discovery

findServices

CoreE2E Comm

LayerDispatcher Listener XHeartbeater

Service Layerhigh level features for peer to peer service offering and discovery– high-level features for peer-to-peer service offering and discovery

Core Layerlow level primitives for end to end multi hop communication

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

– low-level primitives for end-to-end multi-hop communication

7/15

Service LayerService LayeryyDiscovery

Vector<ServiceResponse> findService(String– Vector<ServiceResponse> findService(String serviceName, int TTL, int timeout, intresponseAmount);mission oriented TTL bound broadcast– mission-oriented TTL-bound broadcast

– timeout + maximum service amount

ServiceManager: registration and advertising– void registerService(String serviceName, intservicePort, int prot);servicePort, int prot);

– registration to the local service DB– advertising: it actively listens to requests and then replies via unicast

Service invocation via the Core LayerService

findServicesregisterService

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10 8/15

localservices

ServiceManager

Discovery

Core LayerCore LayeryyE2EComm: per-packet communication primitives

sendUnicastsendBroadcast receive

communication primitives– en/decapsulates payload into RAMP packets– packet injection

Dispatcher Listener XHeartbeater

E2E Comm

p jboolean sendUnicast(Vector<InetAddress> dest, intdestPort, int prot, int bufferSize, Object payload);void sendBroadcast(int TTL, int destPort, int prot,

( l d 60KB)Object payload ); (payload at most 60KB)– packet reception

Packet receive(int localPort, int prot, int timeout);

Heartbeater for local IP addresses gathering and single-hop neighbors discovery (IP broadcast)g y ( )

Dispatcher remote node interconnectionactual inter node packet forwarding

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

– actual inter-node packet forwarding– listener-based plug-in for run-time packet management

9/15

ApplicationApplication--layer Routinglayer Routingpppp y gy gE2EComm

Client

E2ECommE2EComm

Service

CDA X.X.0.3

X.X.1.3X.X.1.2

IP

UDP TCP

IP

UDP TCP

IP

UDP TCP

Dispatcher Dispatcher DispatcherC

X.X.0.1

X.X.0.2

X.X.1.1

B

E

X.X.2.5 X.X.4.12

Un-coordinated IP address assignment with local visibility

IPIPIP

NodeA NodeC NodeDX.X.0.1

X.X.0.3

X.X.1.1

X.X.1.2F

B

X.X.2.1 X.X.4.1

Un coordinated IP address assignment with local visibility– each layer-3 network has a different IP address space

RAMP k t h d t i m lti hop ro ting informationRAMP packet headers contain multi-hop routing information– ordered set of intermediary nodes IP addresses

from NodeA to NodeD: [X.X.0.3, X.X.1.1]from NodeD to NodeA: [X.X.1.2, X.X.0.1]

Dispatchers deliver packets to the next node: single-hop TCP/UDPconnectionless: each packet managed by a different socket

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

– connectionless: each packet managed by a different socket– intermediary Dispatchers put the traversed node sequence in the header

10/15

Packet SplittingPacket Splittingp gp gTransmission time increases linearly with trivial receive&forward approach

3

12

receive&forward

trivial receive&forward approach

Split unicast huge packets in data chunks

A B

A B

3 12

t

t0

p g p– first the header with routing information– then the payload split in small pieces

sending a payload chunk while receiving other

3

12

A Bt1

– sending a payload chunk while receiving other chunks

A Bt2

32

splitting

Chunk size tradeoff: bufferSize– low value: prompt transmission and small local

buffers on intermediary nodes but frequent 23 1

A B

1

t0

y qread/write

– high value: minor communication overhead but delayed transmission and greater memory

132

A B

23 1

t1

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

y g yusage

11/15

A B

13

t2

BufferSize ManagementBufferSize ManagementggDynamic and context-aware packet splitting management based on cross-layer approachbased on cross-layer approach

Application-driven bufferSize selectionpp– per-packet size selection based on path length and packet size

Listener-based BufferManager plug-in to set bufferSizeon a per node granularityon a per-node granularity

– users of intermediary nodes can select the proper buffer size of traversing packets to limit/tune local resource consumption

incomingpacket

invokelisteners

sendpacket

receivepacket

outgoingpacketpacket listeners

P k F di

originalpacket

processedpacket

packetpacket packet

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10 12/15

Packet Forwardinglisteners

File Sharing ApplicationFile Sharing Applicationg ppg ppTesting RAMP routing mechanism and huge packets transmission performance in different deployment scenariosperformance in different deployment scenarios

– file size from 100KB to 10MB– buffer size from 1KB to 1 MB– path length from 1 to 3

Comparison with analytical and layer-3 routing2Mbit/s single hop bandwidth limit– 2Mbit/s single-hop bandwidth limit

File Sharing Service– registerService, receive, sendUnicast

File Sharing Client– findService sendUnicast receivefindService, sendUnicast, receive

Different protocols– UDP for service discovery (small data amount)

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

– TCP for file content transfer (huge data amount)

13/15

File Sharing PerformanceFile Sharing Performancegg

No split: bufferSize greater than file size– transmission time increases linearly

Split: bufferSize lower than file sizeSplit: bufferSize lower than file size– transmission time greatly lowers– RAMP introduces little overhead

Best buffer size– minimum transmission time while limiting

read/writeread/write– depends on path length and packet size– sub-optimal default value: 50KBi b ff Si (i

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10 14/15

– int bestBufferSize(intpacketSize, int pathLength);

ConclusionsConclusionsRAMP supports multi-hop communication in heterogeneous spontaneous networksheterogeneous spontaneous networks– application-layer routing transparent in relation to OS,

wireless technology, network topology– performance comparable with traditional layer-3 routing

RAMP is service-orientedA f i d l b– easy-to-use API for service development by non-expert

programmersRAMP prototype available to leverage applicationRAMP prototype available to leverage application development and spread spontaneous networking

Ongoing work– live multimedia stream via DVB-T re-casting

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10

– porting to mobile platforms

15/15

Any Question?Any Question?yy

Prototype code and implementation insightshtt //li d i ib it/ h/RAMP/– http://lia.deis.unibo.it/research/RAMP/

– http://lia.deis.unibo.it/Staff/CarloGiannelli/

Riccione, Italy — 24.6.2010 Carlo Giannelli - ISCC '10