[AG-TECH] Multicast service model
Bill Nickless
nickless at mcs.anl.gov
Tue Jan 22 17:45:41 CST 2002
With the current discussion about multicast bridges, I think it might be
about the right time to show people this Internet Draft on the IP multicast
service model.
The closest thing we have in the Internet for a multicast service model
is RFC 1112 by Steve Deering (1989). It defines three things simultaneously:
- The multicast service model
- The system call extensions needed on hosts to support those apps
that want to take advantage of the multicast service model
- (In Appendix A) the wire protocol to control multicast on
the local subnet: IGMP
For the Access Grid, the service model is the most valuable of the
above. The system call extension expectations are buried in the vic and
rat applications, so some programming effort would be required to move
beyond that. The Access Grid applications have no particular need for an
IGMP-based local wire protocol; in fact, the existing MSB doesn't use IGMP
at all.
Caveats: the reference for the multicast service model on page 1 should
be RFC 1112.
David Helder suggested that we also look at the UDP Multicast
Tunneling Protocol (UMTP) and Castgate.
Comments and criticism welcome.
Internet Draft B. Nickless
Document: draft-nickless-mcast-svc-model-00.txt Argonne National
Laboratory
Expires: July 2002 January 2002
Towards a Multicast Service Model
Status of this Memo
This document is an Internet-Draft and is in full conformance
with all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract
This document outlines a framework for IP Multicast applications.
It intends to describe the services that an application host and
associated networks should provide, and provide a framework for
evaluating ways to implement those services for applications.
Table of Contents
Status of this Memo................................................1
Abstract...........................................................1
Conventions used in this document..................................2
Introduction and Motivation........................................2
Core Application Operations........................................3
Desirable Application Operations...................................4
Evaluation Framework...............................................4
Native Multicast (IGMP) Implementation of Core Operations..........4
SSM With Group Leader Implementation of Core Operations............5
PIM-speaking Host Implementation of Core Operations................6
Hypothetical TCP-based Tunnel Implementation of Core Operations....6
Nickless Informational - Expires July 2002 1
Towards A Multicast Service Model January 2002
Emcast Multicast Library...........................................7
Security Considerations............................................8
Acknowledgements...................................................8
References.........................................................8
Author's Address...................................................8
Overview
The traditional IP Multicast service model is conceptually simple: a
source application sends datagrams to the network, which delivers
those datagrams to interested receiver applications. Some
applications could benefit from extensions to this conceptual model,
such as providing the source application with knowledge of the
existence of receivers. There remain networks where IP Multicast
deployment is not complete, requiring applications to work around
the problem. An application may wish to control which sources and
receivers are permitted to participate. The traditionally
unreliable nature of IP Multicast datagram delivery requires
applications to implement their own reliable delivery schemes.
This Draft intends to describe an application framework that
provides a unified multicast application service model. Such a
model could lead to a common Application Programming Interface for
multicast applications. It could also provide a framework for
evaluating protocols and implementations.
Criteria for evaluating implementations to support the application
framework are supplied, along with a brief survey of some existing
possible implementations.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [RFC2119].
Introduction and Motivation
IP Multicast [MCAST] is an internetwork service that allows IP
datagrams sent from a source to be delivered to one or more
interested receiver(s). That is, a host system sends a packet to
the internetwork with a multicast group destination address. The
internetwork transports this packet to all receivers (replicated
where necessary) that have registered interest in receiving these
packets.
This multicast service model (XXX needs reference) was derived
from how an operating system interacts with an Ethernet network
interface. To send, the operating system builds Ethernet frames in
Nickless Informational - Expires July 2002 2
Towards A Multicast Service Model January 2002
a buffer and hands that buffer off to the Ethernet interface for
transmission. To receive, an operating system programs the Ethernet
interface to accept frames that match a certain Media Access Control
(MAC) address.
Several classes of multicast applications have evolved. The first
and perhaps best-known application is the multiparty multimedia
conference. Following close behind is the use of IP multicast for
service discovery, such as how the Open Shortest Path First (OSPF)
routing protocol discovers adjacent routers. Distributing media
content (for example, Internet Radio) is a natural fit for IP
multicast. Time-sensitive distribution of financial market
information can also be done through IP multicast. Parallel
computations often require collective operations (barriers,
broadcasts, multicasts) that could be implemented using IP multicast
technology. The distribution of files across clusters of computers
is a natural use of reliable multicast protocols.
Core Application Operations
Application developers and users have come to expect certain
facilities to be available from an IP Multicast-enabled network.
Often, when a local host or network does not support native IP
Multicast, the application developer and/or end-user will implement
these facilities independent of the network.
Host Interface Discovery (INTERFACE DISCOVERY): The application
queries the host to discover which, if any, of the host interfaces
support IP Multicast services, and the IP address assigned to each
interface.
Multicast Packet Transmission (TRANSMIT): An application constructs
an IP datagram including the IP Source Address determined through
the INTERFACE DISCOVERY step and the IP Destination Address
determined through the GROUP SELECT step. A pointer to this
datagram is conveyed to the host, which is then responsible for
transmitting this datagram to the network for transport to
interested receivers.
Join Multicast Group (JOIN): An application notifies the host that
it wishes to receive IP datagrams addressed to a given IP
Destination/Group address. Optionally, in the case of Source
Specific Multicast, the application also notifies the host that it
wishes to receive IP datagrams originated by a certain set of hosts
identified by IP Source Addresses. The host notifies the network to
deliver such packets, and returns an opaque identifier to the
application for later use.
Multicast Packet Receipt (RECEIVE): An application provides a memory
pointer to the host, along with an opaque identifier provided by the
host in the JOIN operation. The host waits until a datagram is
received from the network that has an appropriate IP Destination
Group address (and optionally an appropriate IP Source Address).
Nickless Informational - Expires July 2002 3
Towards A Multicast Service Model January 2002
When received, the data is copied into memory associated with the
pointer.
Leave Multicast Group (LEAVE): An application notifies the host that
it no longer wishes to receive IP datagrams addressed to a given IP
Destination and/or Group address. The host in turn notifies the
network to stop delivering such packets.
Desirable Application Operations
In addition to the Core Application Operations listed above,
application developers and users are requesting certain additional
services. At present these are not widely available or in use.
Measure Group Size (GROUP SIZE): An application queries the host to
determine whether there are any interested Receivers to which
multicast datagrams might be delivered. If the returned estimate is
zero, the application might choose not to construct IP datagrams for
transmission.
Authenticated Join Multicast Group (SECURE JOIN): An application
must provide an authentication token as part of the JOIN operation.
Authenticated Transmit To Multicast Group (SECURE TRANSMIT): An
application must be "approved" in some way in order for its data to
be received by cooperating receivers.
Evaluation Framework
As shown in the rest of this Draft, there are several possible ways
of providing the multicast service to applications. Criteria for
evaluating each approach should include:
- How expensive is the deployment of the approach? Does it require
the cooperation of the local network administrator to operate?
- Is it compatible with the Best Current Practices of routing IP
multicast in the Internet core?
- Does it ensure that only one copy of a multicast packet need
traverse a network link?
- Does it allow for both multicast transmission and reception?
Each of the following approaches is evaluated by these criteria.
Native Multicast (IGMP) Implementation of Core Operations
The traditional IGMPv2 service model implements the core application
services in the following way:
INTERFACE DISCOVERY is done by putting reachability information in
the host reachability table, generally with a static route to the
224.0.0.0/4 logical internet subnet. The application looks up this
reachability information and uses the IP address associated with the
appropriate host interface.
Nickless Informational - Expires July 2002 4
Towards A Multicast Service Model January 2002
TRANSMIT is done by the host executing the equivalent of a UNIX
sendto() call, with the source address set by the INTERFACE
DISCOVERY step above, and the destination address set to the
intended Group address.
JOIN is done through the operation of the IGMP protocol. The
application instructs the host to create IGMP Group Membership
reports, which the network uses to create appropriate forwarding
trees to the local subnetwork.
RECEIVE is done by the host executing the equivalent of a UNIX
recvfrom() call, with the from address set to the Group address.
LEAVE is done through the operation of the IGMP protocol. The
application instructs the host to stop issuing IGMP Group Membership
reports indicating interest in that Group.
An extension of IGMP might support the SECURE JOIN Operation.
Implementation of this approach requires that the host, and the host
network, be made IGMP-aware. If properly configured by the network
administrator, it is compatible with IPv4 routing Best Current
Practices. Only one copy of a multicast packet is sent or received
by the local Designated Router. Multicast transmission and
reception is supported.
SSM With Group Leader Implementation of Core Operations
Single Source Multicast is generally implemented by a combination of
IGMPv3 between the host and the network, and source-specific-tree-
only PIM operations. Group addresses are in the 232.0.0.0/8 range,
and any transmission within that range is source-specific.
Within that context, INTERFACE DISCOVERY, TRANSMIT, JOIN, RECEIVE,
and LEAVE operate the same way as described in the Native Multicast
section.
Some applications may wish to use SSM to provide many-to-many
communications. It is possible to bootstrap many-to-many by
designating an application group leader that redistributes the (S,G)
information about active sources down a multicast distribution tree.
Each interested receiver then executes a source-specific JOIN
towards the newly discovered source.
SECURE TRANSMIT can be implemented by controlling what (S,G)
information is propagated down the source-information multicast
distribution tree.
SECURE JOIN can be implemented by encrypting the information
propagated down the source-information multicast distribution tree.
Nickless Informational - Expires July 2002 5
Towards A Multicast Service Model January 2002
Implementation of this approach requires that the host, and the host
network, be made IGMPv3-aware. If properly configured by the
network administrator, it is compatible with IPv4 routing Best
Current Practice. Only one copy of a multicast packet is sent or
received by the local Designated Router. Multicast transmission and
reception is supported.
PIM-speaking Host Implementation of Core Operations
The design and implementations of IGMP predate the PIM routing
protocol. However, one could imagine a host that ignores IGMP and
speaks PIM directly with routers on the local subnetwork.
INTERFACE DISCOVERY would have to be hard-coded or otherwise
discovered by the implementation. The application or host would
implement the PIM protocol instead of the IGMP protocol. This might
mean the host would have to discover or be configured with the
appropriate upstream PIM speaker (PIM Designated Router) for the
local subnetwork.
TRANSMIT would be accomplished by encapsulating the application data
into a PIM Register message and transmitting that encapsulated data
via unicast to the PIM Rendezvous Point. This would happen
relatively infrequently; most of the data would be discarded until a
PIM Join was received. Given a PIM Join, the application would
transmit directly onto the local subnetwork.
JOIN would be accomplished by sending a PIM Join towards the local
PIM Designated Router, refreshed appropriately.
RECEIVE is done by the host executing the equivalent of a UNIX
recvfrom() call, with the from address set to the Group address.
A variant of GROUP SIZE is accomplished as a side effect. Until the
PIM Join arrives, the application can assume that no receiver has
expressed an interest in the data at full rate, so the application
need not even generate the data for transmission, much less transmit
it on the local subnetwork.
Implementation of this approach requires that the host and at least
one router on the local network speak the PIM protocol. It is
consistent with IPv4 routing Best Current Practice. Only one copy
of a multicast packet is sent or received by the local Designated
Router. Multicast transmission and reception is supported.
Hypothetical TCP-based Tunnel Implementation of Core Operations
Consider a hypothetical tunneling protocol that bypasses the local
subnetwork of a host with an interested application. Multicast
packets are transmitted from a tunnel host participating in the
native IP multicast core of the internetwork, over a TCP channel, to
the application on a host.
INTERFACE DISCOVERY requires configuration on both the tunnel host
and the application host. (This configuration might be automated.)
Nickless Informational - Expires July 2002 6
Towards A Multicast Service Model January 2002
The application host needs to know what IP address to use to source
packets, so that the internetwork core knows to get those packets
from the tunnel host.
TRANSMIT would be accomplished by encapsulating the application data
into the TCP channel and transmitting it to the tunnel host. If the
TCP transmit buffer is full, the application data would be
discarded.
JOIN and LEAVE would be accomplished by a special message through
the TCP channel, where the application host notifies the tunnel host
of its interest (or disinterest) in data from various groups (and
possibly specific sources.)
RECEIVE would be accomplished by the tunnel host encapsulating data
into the TCP channel towards the application host. If the TCP
transmit buffer is full, the application data would be discarded.
The application host would decapsulate the data from the TCP stream
and deliver it to the application in datagram form.
TCP is preferred in this scenario because of its ability to sense
congestion and back off appropriately.
Implementation of this approach requires that the application host
implement the TCP-Based Tunnel protocol, and that the application
host be associated with at least one tunnel host. It does not
require that the application host subnetwork be configured for
multicast in any way. Given proper configuration of the tunnel
host, it is consistent with IPv4 routing Best Current Practice. If
there are multiple application hosts on a given subnetwork, multiple
copies of a multicast packet may be carried to that subnetwork from
the tunnel host (one each per TCP tunnel). Multicast transmission
and reception is supported.
Emcast Multicast Library
Emcast [EMCAST] is a user-level implementation of several of the
Core Operations. It implements the TRANSMIT, JOIN, LEAVE, and
RECEIVE operations with library calls, and has hooks for handlers of
various types. Currently supported handlers include the traditional
Internet Multicast, Banana Tree Protocol, and Internet Relay Chat.
Use of Emcast requires that the application support the Emcast
library and at least one handler. If using the Banana Tree Protocol
or Internet Relay Chat handlers, it does not require that the local
subnetwork be configured for multicast in any way.
If Emcast was extended to support the INTERFACE DISCOVERY operation,
specifically giving the application an internetwork-unique
multicast-enabled IP source address, then the non-traditional user-
level multicast forwarding schemes (e.g. Banana Tree Protocol and
Internet Relay Chat) could be made consistent with IPv4 routing Best
Current Practice. This would of course require some gateway
Nickless Informational - Expires July 2002 7
Towards A Multicast Service Model January 2002
function between a Banana Tree Protocol or Internet Relay Chat
domain and the IPv4 multicast core.
Multicast transmission and reception is supported.
Security Considerations
Multicast technology is subject to various denial-of-service
attacks.
Certain host-based implementation of IP multicast forwarding are
subject to security vulnerabilities; especially when insecure
services are delivered IP multicast packets without first executing
a JOIN operation.
Acknowledgements
This work was supported by the Mathematical, Information, and
Computational Sciences Division subprogram of the Office of Advanced
Scientific Computing Research, U.S. Department of Energy, under
Contract W-31-109-Eng-38.
References
[RFC2119] RFC 2119: Key Words for use in RFCs to Indicate
Requirement Levels. S. Bradner. March 1997.
[MCAST] RFC 1112: Host extensions for IP multicasting. S.E. Deering.
Aug-01-1989.
[EMCAST] http://www.junglemonkey.net/emcast by David A. Helder
Author's Address
Bill Nickless
Argonne National Laboratory
9700 South Cass Avenue #221 Phone: +1 630 252 7390
Argonne, IL 60439 Email: nickless at mcs.anl.gov
Nickless Informational - Expires July 2002 8
===
Bill Nickless http://www.mcs.anl.gov/people/nickless +1 630 252 7390
PGP:0E 0F 16 80 C5 B1 69 52 E1 44 1A A5 0E 1B 74 F7 nickless at mcs.anl.gov
More information about the ag-tech
mailing list