2010-ICT-SOCKETS - Mobile Multimedia Laboratory
Download
Report
Transcript 2010-ICT-SOCKETS - Mobile Multimedia Laboratory
Socket Emulation over a Publish/Subscribe Network
Architecture
George Xylomenos, Blerim Cici
Mobile Multimedia Laboratory
Athens University of Economics and Business
Greece
Session 4f, 16th June 2010
Future Network & MobileSummit 2010
Copyright 2010 Mobile Multimedia Laboratory
Motivation
• Most Internet traffic is due to P2P content distribution
– Users are interested on content, not peers
• Redesign the Internet to make it information centric
– Content Centric Networking (CCN)
– Publish/Subscribe Internet Routing Paradigm (PSIRP)
• Co-existence with the current Internet
– Content distribution applications may be rewritten
– End-to-end applications should run on compatibility mode
• The PSIRP Socket Emulator
– Most applications use the sockets API
– The PSIRP prototype uses a different API
– Emulator to translate socket calls to PSIRP calls
Session 4f, 16th June 2010
Future Network & MobileSummit 2010
Copyright 2010 Mobile Multimedia Laboratory
PSIRP Implementation Concepts
• The PSIRP prototype implementation
– Based on FreeBSD
– API provided by the libpsirp library
– A publication is identified by a SId/RId pair
• Publication life cycle
– Psirp_create(): allocate memory for publication
– Psirp_pub_data(): get a pointer to the memory
– Psirp_pub(): make publication available
• Repeated calls make new versions available
– Psirp_subscribe_sync(): subscribe to publication
– Psirp_pub_version_count(): find publication version
– Psirp_subscribe_versions(): get previous versions
– Psirp_free(): free publication memory
Session 4f, 16th June 2010
Future Network & MobileSummit 2010
Copyright 2010 Mobile Multimedia Laboratory
Emulation Options
Application
Application
Application
Socket
Socket
Socket
TCP/UDP
TCP/UDP
IP
IP
Emulator
Emulator
libpsirp
libpsirp
Lower Layers
Lower Layers
Lower Layers
(a)
(b)
(c)
• Option 1: network layer emulation
– Translate IP packets into publications
• Option 2: transport layer emulation (preferred)
– Translate socket calls to libpsirp calls
Session 4f, 16th June 2010
Future Network & MobileSummit 2010
Copyright 2010 Mobile Multimedia Laboratory
Mapping Addresses to Identifiers
Client
Server
Client
Server
Socket
Socket
Emulator
Emulator
IP: a.b.c.d
Port: e
Protocol: z
IP: f.g.h.i
Port: j
Protocol: z
Subscribe
Subscribe
Publication
Publication
SID: a.b.c.d
RID: a.b.c.d:e:z
SID: f.g.h.i
RID: f.g.h.i:j:z
(a)
Publish
(b)
• Sockets use endpoint identifiers
– Local Port, Local IP, Protocol, Remote IP, Remote Port
• PSIRP has no endpoint identifiers!
• Map each IP address to a separate SId
– Publishing to SId means sending data to a machine
• Map each protocol/port to a separate RId
– Publiching to RId means sending data to the protocol/port
Session 4f, 16th June 2010
Future Network & MobileSummit 2010
Copyright 2010 Mobile Multimedia Laboratory
Datagram Sockets
Client
Server
PSIRP calls
Socket calls
socket()
PSIRP calls
Socket calls
socket()
bind()
bind()
Calculate SId/RId
Calculate SId/RId
recvfrom()
sendto()
psirp_subscribe_sync()
psirp_publish()
Blocks
Blocks
Process
recvfrom()
Process
psirp_subscribe_sync()
sendto()
Blocks
psirp_publish()
Blocks
Process
Process
• Each socket endpoint maps to a SId/RId pair
– Publications to that pair represent UDP messages
– New messages are mapped to new publication versions
Session 4f, 16th June 2010
Future Network & MobileSummit 2010
Copyright 2010 Mobile Multimedia Laboratory
Stream Sockets
Server
Socket calls
socket()
Client
PSIRP calls
PSIRP calls
bind()
Socket calls
socket()
bind()
Calculate SId/RId
Calculate SId/RId
listen()
accept()
psirp_subscribe_sync()
connect()
Blocks
Calculate SId/RId
psirp_publish()
Blocks
Blocks
• Connection requests
• Data transfers
psirp_subscribe_sync()
psirp_subscribe_sync()
– Connection requests
– Data transfers
– Concurrent sessions
– Same as above
– Use half addresses
psirp_publish()
recv()
• Two SId/RId pairs!
send()
psirp_publish()
Blocks
– Use full addresses
– Similar to sockets
Process
Process
send()
recv()
psirp_subscribe_sync()
psirp_publish()
Blocks
Blocks
Process
Process
Session 4f, 16th June 2010
Future Network & MobileSummit 2010
Copyright 2010 Mobile Multimedia Laboratory
Conclusions and Future Work
• Information centric Internet architectures
– More suitable for content distribution
– Fundamental departure from the current Internet
• Sockets API emulator for PSIRP
– Translates socket calls to libpsirp calls
– Provides compatibility mode for existing applications
– Allows pub/sub and sockets applications to co-exist
• Future work
– Implement complete set of socket calls
– Exploit reliable PSIRP transport for stream sockets
– Measure overhead of emulation process
Session 4f, 16th June 2010
Future Network & MobileSummit 2010
Copyright 2010 Mobile Multimedia Laboratory