Transcript Lecture 6

PSIRP Architectural Components
Part 1
Walter Wong
NomadicLab & HIIT
08.02.2010
Outline
Identifiers
 Algorithmic IDs
 Node Internal Architecture
 Helper Functions
 Rendezvous System

Background – IP-based Identifier

Network Layer Identifier
◦ IP address
◦ Topological identifier
◦ Refers to a specific location in the network

Transport Layer Identifier
◦ Also IP address (IPsrc/dst, portsrc/dst, protocol)
◦ Identifies end-hosts in the Internet
IP Semantic Overload Problem
Socket
Application
174.180.23/24
Transport
IP
Network
Link
Physical
200.201.11/24
128.17.11.22
IP-based Identification – Problems

Entangle host location with identification
◦ Host-centric approach

Content can’t be addressed alone
◦
◦
◦
◦

Sub-part of a URL
Ex. www.unicamp.br/main/courses/index.html
Identified as part of connection parameters
Ex. TCP sequence number
Limited naming system
◦ Hinders new features, ex., mobility, multicast
◦ Users can’t express their interest in data
regardless of location
PSIRP Identifiers – Motivation

Express user interests
◦ WWW
 users are interested in documents regardless of
their location
◦ Currently users express an interest (what)
and it is translated to a place (where)

Publish/subscribe
◦ Users express their interest on data
◦ Data is asynchronously delivered to users
PSIRP Identifiers
Application Level Identifier (AId)
 Rendezvous Identifier (RId)
 Scope Identifier (SId)
 Forwarding Identifier (FId)
 Algorithmic Identifier (AlgId)

Application Level Identifier (AId)
Application level identification
 Based application requirements

◦ Easiness to route, easiness to resolve,
randomness, etc

Can be any namespace
◦
◦
◦
◦
Flat labels
Structured names (FQDN)
Global Unique Identifier (GUID)
Electronic Numbering (ENUM)
Rendezvous Identifier (RId)
PSIRP network level identifier
 Uniquely identifies a piece of information
 256-bit identifier (SHA-256 hash over the
data)
 Goal: identify the interest between
publishers and subscribers in the
rendezvous system

Rendezvous Identifier (Rid)
Interest!
Doesn’t subscribe RIdnut
Rendezvous Point
Bingo
Publish RIdnut
Deliver data
Nut
Subscribe RIdnut
Scrat
Scope Identifier (Sid)




Also PSIRP network identifier with 256 bits
length
Goal: aggregate a set of Rids into one group
(scope)
Represents a collection of whatever
information that Rids represents
Scope = implicit context of a set of Rids
◦ Photo album has a Sid and each photo has a Rid

Also
◦ Access control
◦ Metadata control operations
Scope Identifier (Sid)
RidA
Sidfamily_album
RidB
RidC
Sidpublic_album
Forwarding ID
256-bit long network identifier
 Goal: identify path segments in the
forwarding path
 Difference:

◦ Sid/Rid used in the rendezvous system (slow
path)
◦ Fid used in the forwarding fabric (fast path)

Can be aggregated in Bloom filters
Forwarding ID
Rendezvous 1
FId11
FId12
FId13
Rendezvous 2
FId21
FId22
FId31
David
Bloom-filter
FIdA
Bob
Clark
Forwarding ID

Source controlled packet soft state
◦ Topology manager creates the Bloom filter
◦ + stateless
◦ - requires constant updates from the
rendezvous to identify new subscribers
◦ - recycle Fids after un-subscription

In-network state
◦ Fid switching state in the forwarding nodes
◦ + Identifies just initial Fid
◦ - state in the switches
Algorithmic Identifiers (AIgIds)
Special class of identifiers
 Information collection concept

◦ group semantically similar information items
Goal: automatic generation of IDs for
different pieces of information
 Allow elaborate tests with the identifier

Algorithmic Identifiers

Allows relationship tests on each ID:
◦ Ordering: precedence (does an identifier
precede another one?)
◦ Composition: does an ID belong to another
ID (e.g. a chunk ID belongs to a file ID)
◦ Completeness: do we have all the identifiers
composing another information object?
Algorithmic IDs

Applications
◦ Automatic deriving identifiers for information
fragments
◦ Calculating the next identifier for a sequence
◦ Deducing the identifier
Subscription Management
Subscribe
comics
Billy
Comics
part 1
ID3
Comics
Part 3
algID
ID2
ID1
Comics
Part 2
ID4
ID5
ID6
Comics
Part 4
Comics
Part 5
Comics
Part 6
Forwarding State Aggregation
RVS
FId21
RVS
FId22
FIdB
FId12
FId11
David
FId13
RVS
FId31
FIdC
FId A
Bloom-filter
Bob
FId32
Clark
Re-encoding the same publication
AlgIDhigh_resolution
IDA
Publisher
Publication
IDB
AlgIDlow_resolution
ID1
ID2
IDC
Return Path
(legacy client-server model)
Publish(algIdA)
RVS
Subscribe(hash(algIdA))
Bob
Subscribe(algIdA)
Publish(hash(algIdA))
Hey Clark, let’s have a beer after work!
Okee dokee, Bob!
Clark
Sequence Numbering
RVS
Subscribe(algId)
Publish(algId)
ID2
ID3
ID1
Alice
ID1 = hash(algId)
ID2 = hash(ID1)
ID3 = hash(ID2)
ID3
ID2
ID1
Beth
Algorithmic IDs – Other scenarios

Error control
◦ generate error messages identified with IDs
derived from the error ID

Reliability
◦ different algIds can be generated to receive error
messages

Announcements
◦ prior to a data publication, publishers announce
in the algId channel, informing possible
subscribers that data will be published in the
related algId
Algorithmic ID – General design



Direct Acyclic Graph
Identifiers are related to each other by
functions
Sorting algorithms
◦ Ordering the identifiers



Trees are generated by consecutive
application of one-way functions
Sequences can be expressed as the recursive
application of a singular function
Reverse function to walk in both directions
Algorithmic IDs – Example
B = f(A,1)
C = f(A,2)
A
D = f(C,1)
B,1
C,2
D,1
E,2
C = f-1(F,3)
A = f-1(C,2)
F,3
G,1
H,1
Node Internal Architecture

Blackboard Approach
◦ Communication model for sharing memory
objects through the network

Uses Memory Object Service
◦ Simple unreliable page service
◦ Simple memory object service
Unreliable Page Service

Simple unreliable page
service
◦ Pages can be mapped to
packet level transmissions
using PageIDs
◦ Allows for identifying and
caching individual packets
within the network
◦ There is one PageID for
each Fid
Memory Pages
PageIDA
PageIDB
PageIDC
PageIDD
PageIDE
Memory Object Service
Works on the page
service
 Supports larger data
files (over one memory
page)
 Supports update on
memory objects

Memory Pages
Memory Object
PageIDA
PageIDB
PageIDC
PageIDD
PageIDE
MOA
Memory Object Creation &
Publication
Blackboard
Memory
Object
Publisher
1. Publisher requests a meta-publication and a memory object
2. Memory service returns a memory object with the meta attached
3. Publisher fills the data in the memory object
4. Publisher creates a Rid for the memory object. It can be republished
as many times as he needs with equal or different tags
Memory Object Subscription
Subscriber subscribers to the MO-Rid
 Subscriber receives an event stream

◦ File descriptor which can be read with select

Whenever the publisher publishes some
data, the subscriber will be notified and
will receive a new memory object
representing the corresponding version of
the object
Node Internals – Networking

Nodes
◦ Local input queues, with one Fid for each
queue
◦ Local output queues, with one Fid for each
queue
◦ Sender-helper sends the packet identified with
the interfaces Fid
◦ Network-receiver receives packets from the
network
Node Internal Architecture
Publish call
Application
Node Internal - Networking
Sender
Helper
Network
Receiver
Output queue 1 (FId1)
Output queue 2 (FId2)
Input queue 1 (FId3)
Input queue 1 (FId4)
Node Internal Architecture
Subscribe call
Application
Node Internal - Networking
Sender
Helper
Memory
Object
Network
Receiver
Output queue 1 (FId1)
Output queue 2 (FId2)
Input queue 1 (FId3)
Input queue 1 (FId4)
Memory Object Segmentation

Packetiser helper
◦ handles memory objects larger than a packet size
◦ Partitions objects into a set of packets
At each local output places, whenever there
is a new object, the packetiser chunks the
data and places each of them in the correct
output queue scope
 There is no memory copy, just a new
mapping of the object in the scope directory

Memory Object Segmentation
Local Blackboard
M
D0 D1
D2
Packetiser
Depacketiser
Output
Places
Input Places
Output
Queue
Input Queue
Network
M
D0 D1
D2
Helper Functions
Not core network service
 Not traditional applications

◦ Actually, it is a set of functions providing
additional features for the system
◦ “Helps the system!”

PSIRP has three categories:
◦ Network Management Functions
◦ Remote Service Functions
◦ Host Centric Functions
Network Management Functions
Network Management & Information
gathering
 Information gathering for better planning
and management

◦ Increase performance

In PSIRP, network management functions
can subscribe to the link state, receiving
information as it becomes available
Network Management Functions –
Example

Current Internet
◦ SNMP/ICMP
◦ GET/SET/TRAP directives
◦ Managed systems generate asynchronous
messages to notify new events
Network Management Functions –
Unified Link Layer API (ULLA)
Closely resembles publish/subscribe
 Introduces an interface to collect
information from the link layer
 Link aware applications express their
interests by specifying link conditions
 Notifications can be asynchronous or
periodic
 ULLA can be the base for the helper
function which subscribes to the link
conditions and wait for updates

Remote Service Functions

Segmentation function
◦ Helps in the segmentation decision
◦ Extracts data from link layer, such as MTU,
and provides parameters for the
fragmentation

Merger function
◦ Merges partitioned data to get the original
publication
Remote Service Functions

Forwarding Error Correction/Content
protection
◦ Error correction in the transmission
◦ Recover received data without
retransmissions
◦ Send redundant data together
◦ Ex. Reed Solomon Block Code (N, K)
◦ N-K symbol redundancy
◦ After receiving any K symbols out of N, the
receiver is able to decode the original data
FEC Parameters
◦ Currently, the FEC parameters are statically
set, degrading the performance
◦ Inaccuracy in the estimation of the underlying
channel state, resulting in inefficient
bandwidth usage
◦ FEC helper can subscribe to the channel
conditions in order to generate better
parameters
Remote Service Functions

Content re-encoding
◦ Scenario: heterogeneous subscribers
requesting the same video but with different
resolution
◦ Content provider can’t attend the demand
◦ Content provider asks for remote helper
functions located closer to the subscribers to
perform the translation
Application-specific Caches

Content caching
◦ Offers the same interface as the original
content provider (transparent)
◦ Applications can select from which cache to
retrieve data
◦ content providers may instruct caches to
serve content on their behalf
◦ subscribers can receive data from the closest
caches, saving network resources
Host Service Functions
Transport and other middle network
services
 PSIRP offers shared blackboard for
distributed applications using the network
 Analysis and debugging purposes

◦ Ping, traceroute, tcpdump, wireshark

PSIRP context
◦ Transport component for rate control and
reliability algorithm for point-to-point delivery
Rendezvous System
Meeting point of interests between
publishers and subscribers
 Requirements

◦ Scalability (Internet scale)
◦ Efficiency in operation
◦ Deployability (gradual deployment and
stakeholders incentives)
Rendezvous Network
Composed of Rendezvous Nodes (RNs)
 Organized as a BGP-like inter-domain
hierarchy
 Collection of RNs from multiple
cooperative ASes
 Rendezvous points (RPs)

◦ logical meeting points of interests between
publishers and subscribers
◦ one rendezvous point for each Sid/Rid pair
Rendezvous Network
Interconnection

Some approaches
◦ Central entity managing signaling reachability:
lack of incentives, trust, competition
◦ Multiple entities: providers compete for global
reachability coverage
◦ Fully distributed mechanism: rendezvous
networks self-organize to interconnect
without any third party infrastructure
Rendezvous Network Connection

Canon DHT
◦ Hierarchical DHT
◦ Maintains local communication within its
domain
◦ Caching in the sub-domain exit between
levels in the DHT
Canon Hierarchical DHT
Top-level Domain
0
13
2
12
3
10
5
8
0
5
2
3
12
10
13
8
Domain A
Domain B
Rendezvous System Example
RNA
RNB
RNB10
RNC
RP
RNC10
RNC100
RNB100
Pub
Node
Node
Sub
Rendezvous System Bootstrapping
RNA
RNB
RNB10
RNC
RP
RNC10
RNC100
RNB100
Pub
Node
Node
Sub
Publish Operation
RNA
RNB
RNB10
RNC
RP
RNC10
RNC100
RNB100
Pub
Node
Node
Sub
Subscribe Operation
RNA
RNB
RNB10
RNC
RP
RNC10
RNC100
RNB100
Pub
Node
Node
Sub
Summarizing

Identifiers
◦ Many types, special semantics

Algorithmic ID
◦ New use cases

Node Internal Architecture
◦ Blackboard, Input/output queues, memory objects
segmentation

Helper functions
◦ Adding new functionalities in the architecture

Rendezvous System
◦ Matching interests between publishers and
subscribers
Questions?
Comments?
 Thanks!
