the real adthe real ad-hoc multihoc multi-hop peerpeer
TRANSCRIPT
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