Internet Engineering Task Force                                   RMT WG
INTERNET-DRAFT                                   M.Luby/Digital Fountain
draft-ietf-rmt-pi-alc-04.txt                         J.Gemmell/Microsoft
                                                        L.Vicisano/Cisco
                                            L.Rizzo/ACIRI and Univ. Pisa
                                                        J. Crowcroft/UCL
                                                        21 November 2001
                                                       Expires: May 2002


                      Asynchronous Layered Coding:
 A massively scalable reliable content delivery protocol instantiation



Status of this Document

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 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 a "work in progress".

The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt

To view the list Internet-Draft Shadow Directories, see
http://www.ietf.org/shadow.html.

This document is a product of the IETF RMT WG.  Comments should be
addressed to the authors, or the WG's mailing list at rmt@lbl.gov.


                                Abstract


     This document describes the Asynchronous Layered Coding
     protocol, a massively scalable reliable content delivery
     protocol, hereafter referred to as ALC.  ALC can be used for



Luby/Gemmell/Vicisano/Rizzo/Crowcroft                           [Page 1]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


     multi-rate reliable delivery of content to large sets of
     receivers.  This specification of ALC uses version 0 of the
     LCT building block specified in [4] augmented with a multi-
     rate congestion control building block that is compliant with
     RFC2357 such as one of the congestion control building blocks
     described [6] and [1]. ALC achieves reliability based on FEC
     codecs as generally described in [2], and in particular uses
     the FEC building block described in [3].











































Luby/Gemmell/Vicisano/Rizzo/Crowcroft                           [Page 2]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


                           Table of Contents


     1. Introduction. . . . . . . . . . . . . . . . . . . . . .   4
      1.1. Related Documents. . . . . . . . . . . . . . . . . .   5
      1.2. Environmental Requirements and Considerations. . . .   6
     2. General Architecture. . . . . . . . . . . . . . . . . .   7
      2.1. Delivery service models. . . . . . . . . . . . . . .   7
      2.2. Congestion Control . . . . . . . . . . . . . . . . .   8
     3. Packet format used by the ALC protocol. . . . . . . . .   8
      3.1. Specific packet format . . . . . . . . . . . . . . .   9
      3.2. Packet header field definitions. . . . . . . . . . .  10
     4. Procedures. . . . . . . . . . . . . . . . . . . . . . .  10
      4.1. Sender Operation . . . . . . . . . . . . . . . . . .  10
      4.2. Receiver Operation . . . . . . . . . . . . . . . . .  11
     5. Security Considerations . . . . . . . . . . . . . . . .  11
     6. IANA Considerations . . . . . . . . . . . . . . . . . .  12
     7. Intellectual Property Issues. . . . . . . . . . . . . .  12
     8. Acknowledgments . . . . . . . . . . . . . . . . . . . .  12
     9. References. . . . . . . . . . . . . . . . . . . . . . .  12
     10. Authors' Addresses . . . . . . . . . . . . . . . . . .  13
     11. Full Copyright Statement . . . . . . . . . . . . . . .  14





























Luby/Gemmell/Vicisano/Rizzo/Crowcroft                           [Page 3]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


1.  Introduction

This document describes a massively scalable reliable content delivery
protocol, Asynchronous Layered Coding (ALC), for multi-rate reliable
content delivery.  ALC is a protocol instantiation as defined in
RFC3048. This specification of ALC uses version 0 of the LCT building
block specified in [4]. Like the LCT building block, the ALC protocol is
primarily designed to be used with the IP multicast network service, but
may also be used with other basic underlying network services such as
unicast IP.

All ALC packets in a session use the default LCT header to convey, among
others, session and layering information.  ALC uses FEC codes to provide
reliability as generally described in [2], and in particular ALC uses
the FEC building block described in [3]. Thus, all packets in a session
contain an FEC payload ID in a format that is compliant with the FEC
building block.  Overall, a packet includes the default LCT header,
followed by the FEC Payload ID, followed by the packet payload.

Although ALC is a transport protocol, no IP protocol identifier is
reserved for it and this specification defines ALC as UDP payload, in
accordance with the RMT-WG guidelines. The ALC header hence follows an
UDP header in an IP packet. Future versions of this specification, or
companion documents may extend ALC to use the IP network layer service
directly. Note that this specification does not make any assumption on
the presence of UDP.

A crucial point is that ALC strongly relies on FEC codecs in the sense
that there is no request for retransmission of individual packets from
receivers that miss packets in order to assure reliable reception of an
object, and the packets and their rate of transmission out of the sender
can be independent of the number and the individual reception
experiences of the receivers.  In some delivery service models it is
appropriate that receivers send out of band messages to the sender to
provide guaranteed delivery of content.  For example, in a push reliable
delivery model receivers may send messages to a sender to continue the
session if receivers have not yet received enough packets to recover the
content or to terminate the session when receivers have received enough
packets to recover the content.  To be able to track usage of the
system, receivers may also send messages out of band to the sender that
contain statistics on their reception experience. ALC, however, does not
require nor specify such messages, with the aim of avoiding unnecessary
limitation to the scalability of the basic ALC protocol.

The LCT building block provides support for congestion control, and the
ALC protocol uses this support.  In particular, to take full advantage
of the scalability features of ALC, the congestion control building
block used by ALC must be a multi-rate congestion control scheme that



Luby/Gemmell/Vicisano/Rizzo/Crowcroft               Section 1.  [Page 4]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


requires no receiver feedback to the sender and must use the Congestion
Control Information field within the LCT header to convey packet by
packet congestion control information to receivers.  Possible congestion
control building blocks that could be used with ALC are described in [6]
and [1]. A sender sends packets in the session to several LCT channels
at potentially different rates. Then, individual receivers can adjust
their reception rate within a session by adjusting which set of LCT
channels they are joined to at each point in time depending on the
available bandwidth between the receiver and the sender, but independent
of other receivers.

Receivers may join and leave a session asynchronously at their
discretion.

Note also that the congestion control building block used by ALC must
conform with RFC2357.

ALC has the following properties when multicast is used to deliver
packets:


o To each receiver, it appears as if though there is a dedicated session
  from the sender to the receiver, where the reception rate adjusts to
  congestion along the path from sender to receiver.

o To the sender, there is no difference in load or outgoing rate if one
  receiver is joined to the session or a million (or any number of)
  receivers are joined to the session, independent of when the receivers
  join and leave.

o On each link in the network, the packet traffic from the session and
  its reaction to competing traffic is the same whether there is one
  receiver or a million receivers beyond the link.

  Thus, ALC provides a massively scalable content delivery system that
  is network friendly.

  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 RFC2119.


1.1.  Related Documents

This specification of ALC must use version 0 of the LCT building block
as specified in [4].  A more in-depth description of the use of FEC
codecs in reliable content delivery protocols is given in [2]. All
packets in a session must contain an FEC Payload ID in a format that is



Luby/Gemmell/Vicisano/Rizzo/Crowcroft             Section 1.1.  [Page 5]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


compliant with the FEC building block described in [3].  Implementors of
ALC must also implement a multi-rate feedback-free congestion control
building block that is in accordance to RFC2357, where the congestion
control is over the entire session.  Some possible schemes are specified
in [6] and [1]. Congestion control must be integrated into ALC through
the support provided in the LCT building block.

It is recommended that ALC implementors use some packet authentication
scheme to protect the protocol from attacks. An example of a possibly
suitable scheme is described in [5]. Packet authentication in ALC, if
used, is to be integrated through the support provided in the LCT
building block.


1.2.  Environmental Requirements and Considerations

ALC is intended for multi-rate congestion controlled delivery of
objects, i.e., reliable content delivery.

This specification defines ALC as payload of the UDP transport protocol
(RFC768).

All of the environmental requirements and considerations that apply to
the LCT building block and to the FEC building block also apply to ALC.

In particular, LCT requires the ability by receivers to uniquely
identify and demultiplex packets associated with an LCT session, and ALC
inherits this requirement.  To this purpose, a Transport Session
Identifier (TSI) must be associated with each session. The TSI is scoped
by the IP address of the sender, and the IP address of the sender
together with the TSI must uniquely identify the session.  It is
recommended that the TSI field in the LCT header is used to convey the
ALC TSI. If the TSI is not present in the LCT header, then 16-bit UDP
source port is used as TSI.

If Generic Router Assist (GRA) is being used then additional
dependencies may be introduced by GRA on the TSI field.  Generic Router
Assist is a current topic of discussion within the RMT working group.
If a TSI value appears more than once in a packet then all occurrences
of the value must be equal.

If, in future specification, there is no underlying TSI provided by the
network, transport or any other layer, then the use of the TSI in the
LCT header must be mandatory.







Luby/Gemmell/Vicisano/Rizzo/Crowcroft             Section 1.2.  [Page 6]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


2.  General Architecture

ALC protocol uses the FEC codecs in the form described in [3] combined
with the LCT building block as described in [4]. Thus, the terminology
used in the description of the LCT building block and the FEC building
block are inherited by the ALC protocol and this terminology is used
below.  In particular, the definition of a session for the ALC protocol
is the same as it is for the LCT building block.

There is a one-to-one mapping between ALC sessions and LCT sessions.

An ALC packet consists of the default LCT header, followed by the FEC
Payload ID, followed by the packet payload.  The packet payload is as
described in [3]. If Generic Router Assist (GRA) is being used, then
additional constraints may be introduced on the LCT header.

The ALC header immediately follows a UDP header.

The out of band information used by the ALC protocol consists of all the
out of band information required for both the LCT building block and for
the FEC building block.  The possible means for acquiring this out of
band information is the same as for the LCT building block and the FEC
building block, and in particular is outside the scope of the ALC
protocol.


2.1.  Delivery service models

ALC can support several different delivery service models. Two examples
are briefly described here.


Push service model.

One way a push service model can be used for reliable content delivery
is to deliver a series of objects.  For example, a receiver could join
the session and dynamically adapt the number of LCT channels the
receiver is joined to until enough packets have been received to
reconstruct an object. After reconstructing the object the receiver may
stay in the session and wait for the transmission of the next object.

The push model is particularly attractive in satellite networks and
wireless networks.  In these cases, a session may consist of one fixed
rate LCT channel.







Luby/Gemmell/Vicisano/Rizzo/Crowcroft             Section 2.1.  [Page 7]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


On-demand content delivery model.

For an on-demand content delivery service model, senders typically
transmit for some given time period selected to be long enough to allow
all the intended receivers to join the session and recover a single
object.  For example a popular software update might be transmitted
using ALC for several days, even though a receiver may be able to
complete the download in one hour total of connection time, perhaps
spread over several intervals of time.

In this case the receivers join the session at any point in time when it
is active and dynamically adapt the number of LCT channels they
subscribe to according to the available bandwidth using a multi-rate
congestion control building block. Receivers leave the session when they
have received enough packets to recover the object.


Other service models.


There may be other delivery service models that can be supported by ALC.
The description of the potential applications, the appropriate delivery
service model, and the additional mechanisms to support such
functionalities when combined with ALC is beyond the scope of this
document.


2.2.  Congestion Control

A multi-rate congestion control building block that is feedback-free,
that is suitable for reliable content delivery, and that conforms to
RFC2357 is to be used by ALC.  An example of such a congestion control
building block is described in [6] and [1]. While the general behavior
of the congestion control building block is to reduce transmission rate
in the presence of congestion and gradually increase the rate in the
absence of congestion, the actual dynamic behavior (e.g. response to
single losses) can vary.

The congestion control building block must use the Congestion Control
Information field carried in the LCT header of each packet.  Congestion
control must be applied to all packets within a session independently of
which information about which object is carried in each packet.


3.  Packet format used by the ALC protocol

The packet format used by the ALC protocol is the UDP header followed by
the default LCT header followed by the FEC Payload ID followed by the



Luby/Gemmell/Vicisano/Rizzo/Crowcroft               Section 3.  [Page 8]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


packet payload.  The packet payload is as described in [3], i.e., it
contains encoding information about the object.  If Generic Router
Assist (GRA) is being used, then additional information may be required
in the packet headers, and an additional specification may be needed.

The version number of ALC specified in this document is 0.  This
coincides with version 0 of the LCT building block [4] used in this
specification.  The LCT version number field should be interpreted as
the ALC version number field.

Some instances of sessions may require the generation of feedback from
the receivers to the sender.  However, the mechanism for doing this is
outside the scope of ALC.


3.1.  Specific packet format

The packet format used for ALC protocol is depicted in Figure 1.


  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                     Default LCT header                        |
 |                                                               |
 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 |                       FEC Payload ID                          |
 |                                                               |
 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 |                        ALC payload                            |
 |                                                               |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Figure 1 - Packet format for the ALC protocol

The length of the Default LCT header is explicitly encoded in the
header itself (see
[4]) , while the length of the FEC Payload ID is implicitly defined by the
FEC Encoding ID (see
[3]) , that is communicated out of band and, possibly, through the Codepoint
field in the LCT header.  The rest of the datagram is made of ALC
payload.

In some special cases an ALC source may need to produce ALC packets
that do not contain any payload. This may be required, for example, to
signal the end of a session or to convey congestion control



Luby/Gemmell/Vicisano/Rizzo/Crowcroft             Section 3.1.  [Page 9]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


information. These data-less packets do not contain the FEC Payload ID
either, but only the LCT header fields. The total datagram length,
conveyed by outer protocol headers (e.g. the IP or UDP header),
enables receivers to detect the absence of the ALC payload and FEC
Payload ID.


3.2.  Packet header field definitions

The description of the fields and their functions within the default LCT
header can be found in [4]. The information that needs to be
communicated out of band for the LCT building block and the possible
mechanisms for achieving this are described in [4].

The description of the fields and their functions within the FEC Payload
ID can be found in [3]. The information that needs to be communicated
out of band for the FEC codecs and the possible mechanisms for achieving
this are described in [3]. The mechanisms for communicating the out of
band information needed for the LCT building block, including the
mapping between the Codepoint field values in the default LCT header and
the interpretations of the values, may be the same as those used for
communicating the out of band information needed for the FEC building
block, with the exception that portions of the information needed for
FEC building blocks may be communicated through the use of the Codepoint
field in the default LCT header.

Multiple objects may be transmitted in the same session.  The Transport
Object Identifier (TOI) field in the LCT header must be used to identify
the different objects, and the FEC Payload ID and the packet payload
must correspond to the object identified by the TOI in the LCT header.

If the FEC encoding scheme varies among different objects transmitted in
the same session, the Codepoint field in the LCT header must be used to
convey, in each packet, the association between the ALC payload and the
tuple <FEC Encoding ID, FEC Encoding Name>. This allows the receiver to
parse the FEC Payload ID field and to select the appropriate decoder
class without having to interpret the TOI field.


4.  Procedures


4.1.  Sender Operation

The sender operation when using the ALC protocol includes all the points
made about the sender operation when using the LCT building block as
described in [4], and the FEC building block as described in [3]. The
following description highlights some of the additional considerations



Luby/Gemmell/Vicisano/Rizzo/Crowcroft            Section 4.1.  [Page 10]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


to be taken into account with respect to the ALC protocol.

A sender using the ALC protocol must make available all applicable
information regarding the session.  This information includes:

  o Any information needed by the LCT building block;

  o The congestion control building block being used within the LCT
    building block;

  o The mapping between values of the Codepoint field in the default LCT
    header and interpretations of these values;

  o Any information needed for the FEC building block, including the FEC
    Object Transmission Information;

  o If used, the packet authentication scheme being used within the LCT
    building block, and all relevant information which is necessary for
    packet authentication purposes.


4.2.  Receiver Operation

The receiver operation when using the ALC protocol includes all the
points made about the receiver operation that pertain to reliable
content delivery when using the LCT building block as described in [4],
and that pertain to using the FEC building block as described in [3].
The following description highlights some of the additional
considerations to be taken into account with respect to the ALC
protocol.

When a receiver receives a packet, the receiver must process the default
LCT header (excluding the Codepoint field) as described in [4] before
processing any other fields of the packet.


5.  Security Considerations

The same security consideration that apply to the LCT building block and
to the FEC building block also apply to the ALC protocol.  In addition,
any security considerations that apply to the congestion control
building block used by the ALC protocol within the LCT building block
also apply.








Luby/Gemmell/Vicisano/Rizzo/Crowcroft              Section 5.  [Page 11]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


6.  IANA Considerations

No information in this specification is directly subject to IANA
registration.  However, building blocks components used by the ALC
protocol may introduce additional IANA considerations.  In particular,
the FEC building block used by the ALC protocol does require IANA
registration of the FEC codecs used.


7.  Intellectual Property Issues


No specific reliability building block or congestion control building
block is specified or referenced as mandatory in this document.

ALC may be used with congestion control building blocks and other
building blocks which contain proprietary elements, or have pending or
granted patents.


8.  Acknowledgments


Thanks to Vincent Roca and Justin Chapweske for their detailed comments
on this draft.


9.  References

[1] Byers, J.W., Frumin, M., Horn, G., Luby, M., Mitzenmacher, M.,
Roetter, A., and Shaver, W., "FLID-DL: Congestion Control for Layered
Multicast", Proceedings of Second International Workshop on Networked
Group Communications (NGC 2000), Palo Alto, CA, November 2000.

[2] Luby, M., Gemmell, Vicisano, L., J., Rizzo, L., Handley, M.,
Crowcroft, J., "The use of Forward Error Correction in Reliable
Multicast", Internet Draft draft-ietf-rmt-info-fec-01.txt, October 2001,
a work in progress.

[3] Luby, M., Gemmell, J., Vicisano, L., Rizzo, L., Handley, M.,
Crowcroft, J., "RMT BB Forward Error Correction Codes", Internet Draft
draft-ietf-rmt-bb-fec-04.txt, October 2001.

[4] Luby, M., Gemmell, J., Vicisano, L., Rizzo, L., Handley, M.,
Crowcroft, J., "Layered Coding Transport: A massively scalable content
delivery transport", Internet Draft draft-ietf-rmt-bb-lct-02.txt,
October 2001.




Luby/Gemmell/Vicisano/Rizzo/Crowcroft              Section 9.  [Page 12]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


[5] Perrig, A., Canetti, R., Song, D., Tygar, J.D., "Efficient and
Secure Source Authentication for Multicast", Network and Distributed
System Security Symposium, NDSS 2001, pp. 35-46, February 2001.

[6] Vicisano, L., Rizzo, L., Crowcroft, J., "TCP-like Congestion Control
for Layered Multicast Data Transfer", IEEE Infocom '98, San Francisco,
CA, Mar.28-Apr.1 1998.



10.  Authors' Addresses

   Michael Luby
   luby@digitalfountain.com
   Digital Fountain
   39141 Civic Center Drive
   Suite 300
   Fremont, CA, USA, 94538

   Jim Gemmell
   jgemmell@microsoft.com
   Microsoft Research
   301 Howard St., #830
   San Francisco, CA, USA, 94105

   Lorenzo Vicisano
   lorenzo@cisco.com
   cisco Systems, Inc.
   170 West Tasman Dr.,
   San Jose, CA, USA, 95134

   Luigi Rizzo
   luigi@iet.unipi.it
   Dip. Ing. dell'Informazione,
   Univ. di Pisa
   via Diotisalvi 2, 56126 Pisa, Italy

   Jon Crowcroft
   J.Crowcroft@cs.ucl.ac.uk
   Department of Computer Science
   University College London
   Gower Street,
   London WC1E 6BT, UK








Luby/Gemmell/Vicisano/Rizzo/Crowcroft             Section 10.  [Page 13]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001


11.  Full Copyright Statement

Copyright (C) The Internet Society (2001).  All Rights Reserved.

This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it or
assist in its implementation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are included
on all such copies and derivative works. However, this document itself
may not be modified in any way, such as by removing the copyright notice
or references to the Internet Society or other Internet organizations,
except as needed for the purpose of developing Internet standards in
which case the procedures for copyrights defined in the Internet
languages other than English.

The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE."


























Luby/Gemmell/Vicisano/Rizzo/Crowcroft             Section 11.  [Page 14]


^L
INTERNET-DRAFT              Expires: May 2002              November 2001





















































Luby/Gemmell/Vicisano/Rizzo/Crowcroft             Section 11.  [Page 15]