Professional Documents
Culture Documents
ALM API For Topology Management - Internet Engineering Task Force
ALM API For Topology Management - Internet Engineering Task Force
API for Topology Management
ALM API for Topology Management
and Network Layer Transparent
Multimedia Transport
<draft‐lim‐irtf‐sam‐alm‐api‐00.txt >
p
71ST IETF SAM‐RG MEETING, PHILADELPHIA.
Lim Boon Ping
Ettik K K
Ettikan K.K
1
Requirement
• Lack of common set of wrapper API leads to redundant application
layer development, thus diluting effort for underlying ALM protocol
enhancement and integration on a common application platform.
• Core functions of ALM topology management
– ALM topology construction (at initial stage),
– ALM topology re‐construction (upon membership change),
– ALM topology refinement (upon network condition or performance
metrics change),
– ALM topology distribution (for centralized approach),
– ALM forwarding table lookup (upon data delivery/relay), and
– Content distribution based on ALM topology.
2
Goal
• SAMRG
– Group Management
– Traffic Management
g
• Proposal
p
– Wrapper API for Topology management
– Wrapper API for Traffic Management
pp g
(flexible protocols selection)
3
Middleware Architecture
Middleware Architecture
4
Needs for ALM Topology Management
Wrapper API
• Limitation of Protocol‐specific API
– ALM protocols export different set of protocol‐specific APIs
despite providing common services.
– ALM middleware is restricted to access only one ALM protocol
by interfacing with protocol‐specific
by interfacing with protocol specific APIs.
APIs.
– ALM middleware looses the flexibility to leverage on or access
different ALM protocols based on the application needs within
the same architecture.
5
Needs for ALM Topology Management
Wrapper API
• Lack of complete coverage of different ALM APIs
– Centralized (eg. ALMI etc.) vs. distributed topology (eg. narada, yoid, bayeux
l d ( ) d b d l ( d d b
etc.).
– Overlay‐based common API
• RelayCast ‐ MakeTree(), Find(), SendDat(), RecvDat()
• Dabek et al. ‐ forward(), join(), leave(), local_lookup(), multicast()
() () () () () and anycast()
()
– Client‐server centralized‐based common API ?
• ALM server
– Initialization for receiving membership information, metrics information…
– construct/update/distribute topology (a.k.a forwarding table)
/ d /di ib l ( k f di bl )
• ALM client
– Receive/update forwarding table from ALM server,
– perform forwarding table lookup to identify next destination ALM node for content
relay.
relay.
6
Usecase Example
p
Middleware API usage for ALM Tree Construction Approach
7
Usecase Example
p
Middleware API usage for ALM Content Distribution / Relay
8
Backup
9
Needs For Network Layer Transparent
Wrapper API
• Lack of multimedia network/transport layer selection
– ALM protocols define different set of API for content distribution.
Neither provides complete selection of IP protocol (v4, v6), transport
protocol (tcp/udp/rtp) or multicasting type (IP multicast, multi‐
unicast, xcast) specifically from the ALM middleware.
) p y
– Flexibility to select the network and transport layer protocols, and the
underlying Traffic Management module to switch dynamically based
on network capability and application need
10
Middleware API For Forwarding Path Construction &
Di t ib ti
Distribution
• constructPath(const int actionMode, struct AlmPathLst*
almPaths,
l P th struct
t t AlmMetricsLst*
Al M t i L t* almMetrics)
l M t i )
– actionMode – BUILDTREE, JOIN
– almPaths – (output) forwarding table / selected parent path information
– almMetrics – (optional input) provides metrics information for path construction from
external metrics collection/providing module.
11
Middleware API for Content Transmission / Receiving / Relay /
P th L k
Path Lookup
• relay(const
l ( i
int transportMode,
d struct AlmData*
l * d
data)
)
12
Objective
• To understand & identify common requirement
y q
for SAM framework development & API
definition, covering aspects of
– Topology management (Multi algorithm support)
Topology management (Multi algorithm support)
• Application Layer Multicast
• Overlay Multicast
– Traffic management (Multiple protocol support)
ffi ( li l l )
• Native multicast
• Xcast
• Proprietary unicast (eg. ALMcast)
• etc.
– Group membership management
p p g
13
Comparison of SAMTK / ALM API /
SAM Overlay Protocol
l l
Description SAMTK ALM API SAM Overlay Protocol
Goal Define the group Define the topology Define the overlay API and
management and management and messaging needed to
traffic network layer • support the multicast tree operations
management API transparent between ALM/NM region via AMT-
with topology middleware wrapper GW. (Propose P2PP message for
management API for ALM forwarding SAM to ensure SAM framework to be
module is table construction, compatible with P2P SIP).
anticipated to be distribution and • ensure overlay agnostic API so that
managed by multimedia transport different overlay algorithms can
ALM/OM plugin over IPv4/IPv6 for interoperate in a single SAM
developer
developer. unicast and xcast
xcast. (Scalable Adaptive Multicast) session
session.
API consideration for Define SAMSocket Transport layer Generic multicast message.
Transport protocol with underlined transparent via selection
protocol can be of underlying transport Note: Use AMT (Automatic IP
called through protocol. May work as Multicast Without Explicit Tunnels) to
standard
t d d plugin
l i another
th hihigher
h llevell API connectt peers in
i ALM (A(Application
li ti
interface on top of SAMTK Layer Multicast) regions with peers in
(xcast, multicast, standard plugin native multicast regions.
ipv6, alm) interface. (necessary?)
API consideration for Centralized/distributed Overlay multicast
Topology Management non-overlay-based ALM.
API consideration for Define list of group
Group Management management
related API 14
Comparison of SAMTK / ALM API /
SAM Overlay Protocol
l l
Apps Layer
Transparent Transport
Layer Selection
Plugin-based
Overlay Centralized / distributed Transport Layer
15
Multicast based ALM/OM Selection
Comparison of SAMTK / ALM API /
SAM Overlay Protocol
l l
Proposed API SAMTK ALM API SAM Overlay Protocol
Topology constructPath(const int actionMode, Create(PeerId, SessionKey, GroupId,
Management API struct AlmPathLst* almPaths, struct Options) ;
AlmMetricsLst* almMetrics); JoinAccept(ParentPeerId, ChildPeerId,
GroupId, Options);
releasePath(const int actionMode); JoinConfirm(ChildPeerId, ParentPeerId,
GroupId, Options);
sendPath(const int transportMode, JoinDecline(PeerId, ParentPeerId,
const in sendMode, struct GroupId);
AlmPathLst* almPaths); JoinViaAMTGateway(PeerId, AMT-GW,
GroupId, Options);
updatePath(struct AlmPathLst* LeaveViaAMTGateway(PeerId
LeaveViaAMTGateway(PeerId,
almPaths) AdjacentPeerId, AMT-GW, GroupId,
Options);
Heartbeat(PeerId1, PeerId2, GroupId);
PublishAMTGateway(PeerId, Key, Region,
Options);
LookupAMTGateway(PeerId, Key);
PublishPeerNMInfo(PeerId, Key, Options);
LookupPeerNMInfo(PeerId, Key);
16
Comparison of SAMTK / ALM API /
SAM Overlay Protocol
l l
Proposed API SAMTK ALM API SAM Overlay
Protocol
Traffic SAMSendSocket send(const int multicastMsg
Management SAMReceiveSocket transportMode, struct (groupID, msg);
AlmData* data);
setGroup(GroupAddress);
writeDatagram(char
it D t ( h **, iint,
t recv(struct
( t t AlmData*
Al D t * data)
d t );
GroupAddress);
readDatagram(char *, int, HostAddress); relay(const int
bool hasPendingDatagrams(); transportMode, struct
AlmData* data)
HTTP/XML
SAM Applications
Application Interface Group Interface
Group Management
M d l
Module
SAMTK Core Module
Protocol Interface
ALM
XCAST Plugin
Plugin
XCAST6 IPv4
19