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


                      Asynchronous Layered Coding:
        A massively scalable reliably content delivery protocol



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]


INTERNET-DRAFT          Expires: January 2002           July 2001


     multi-rate reliable delivery of content to large sets of
     receivers. ALC uses the LCT transport described in [3]
     augmented with a congestion control protocol that is compliant
     with RFC2387 such as one of the layered congestion control
     protocols described [4]. ALC achieves reliability based on FEC
     codecs as generally described in [1], and in particular based
     on the details provided in the FEC building block described in
     [2].











































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


INTERNET-DRAFT          Expires: January 2002           July 2001


                           Table of Contents


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































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


INTERNET-DRAFT          Expires: January 2002           July 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. ALC uses the LCT transport [3]. Thus, like the LCT transport,
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 or transport services such as unicast UDP.  ALC uses FEC codes
to provide reliability as generally described in [1], i.e. all packets
in a session contain FEC coded information in formats that are compliant
with the FEC building block described in [2].  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 transport provides support for congestion control, and the ALC
protocol uses this support.  The congestion control protocol must
conform with RFC 2357.  It is recommended that the congestion control
protocol used for ALC be a multi-rate protocol, as described in [4]. In
this case, 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.  A single rate congestion control protocol can also
be used, but this may limit the scalability of the session in terms of
the number of receivers that can concurrently participate.

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

An ALC packet thus consists of an LCT packet header, an FEC packet
header, optional by additional parameters and packet payload.




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


INTERNET-DRAFT          Expires: January 2002           July 2001


ALC has the following properties when the LCT transport uses multicast
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

The LCT transport that ALC MUST use is described in [3].  A more in-
depth description of the use of FEC codecs in reliable content delivery
protocols is given in [1]. All packets in a session MUST contain FEC
coded information in formats that are compliant with the FEC building
block described in [2]. Implementors of ALC MUST also implement a
congestion control protocol in accordance to RFC2357, where the
congestion control is over the entire session.  Some possible schemes
are specified in [4]. Congestion control MUST be integrated into ALC
through the support provided in the LCT transport.

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


1.2.  Environmental Requirements and Considerations

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




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


INTERNET-DRAFT          Expires: January 2002           July 2001


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


2.  General Architecture

ALC protocol consists basically of using FEC codecs in the form
described in [2] with the LCT transport as described in [3]. Thus, the
terminology used in the description of the LCT transport 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 transport.

Packets used within the ALC protocol are specialized versions of LCT
packets.  In particular, a packet consists of an LCT packet header, an
FEC payload ID, optional additional parameters as appropriate, and the
packet payload. From the point of view of the LCT transport, the FEC
payload ID, the additional parameters if present, and the packet payload
are all part of the LCT packet payload.

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

Congestion control for the ALC protocol MUST conform to RFC 2387, and
MUST be provided through the mechanisms provided by the LCT transport.
Although it is not mandatory, ALC is most scalable when multi-rate
congestion control is used that does not require feedback from receivers
to the sender, and thus use of a mult-rate congestion control as
described in [4] is RECOMMENDED.


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.



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


INTERNET-DRAFT          Expires: January 2002           July 2001


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.


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

The specific congestion control protocol to be used for ALC sessions
should be suitable for reliable content delivery.  While the general
behavior of the congestion control protocol is to reduce the throughput
in presence of congestion and gradually increase it in the absence of
congestion, the actual dynamic behavior (e.g. response to single losses)
can vary.

Some possible multi-rate congestion control protocols for reliable
content delivery using LCT are described in [4].

3.  Type of packets used by the ALC protocol

The type of packet used by the ALC protocol is a specialized version of
an LCT packet.  LCT packets are sent by senders to LCT channels.



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


INTERNET-DRAFT          Expires: January 2002           July 2001


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.  Packet format for the ALC protocol

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     LCT packet header                         |
|                                                               |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|                       FEC Payload ID                          |
|                                                               |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|                    Additional parameters                      |
|                         (optional)                            |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|                          Payload                              |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Figure 1 - Packet format for ALC protocol


3.2.  Packet header fields for the ALC protocol

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

The description of the fields and their functions within the FEC payload
ID can be found in [2], with the exception that the FEC Encoding Flag
value, if applicable, MAY be communicated via the value of the Codepoint
field within LCT packet header. The information that needs to be
communicated out of band for the FEC codecs and the possible mechanisms
for achieving this are described in [2]. The mechanisms for
communicating the out of band information needed for the LCT transport,
including the mapping between the Codepoint field values in the LCT
packet header and the interpretations of the values, MAY be the same as
those used for communicating the out of band information needed for the



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


INTERNET-DRAFT          Expires: January 2002           July 2001


FEC building block, with the exception that portions of the information
needed for FEC building blocks may be communicated either through the
use of the Codepoint field in the LCT packet header, or through the
Additional Parameters fields that follow the FEC payload ID.

The fields and formats of the optional Additional Parameters fields MUST
be communicated to the receivers out of band.  The particular Additional
Parameters fields that may appear in packets MUST be communicated out of
band.  The specification of which Additional Parameters fields that
appear in a packet MUST be communicated via the value of the Codepoint
field in the LCT packet header, and the mapping between Codepoint field
values and the Additional Parameters fields that appear in a packet MUST
be communicated out of band.  It is RECOMMENDED that the format of any
Additonal Parameters fields adhere to the format of Header-Extension
Fields defined for the LCT transport in [3].

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 transport as
described in [3], and the FEC building block as described in [2]. The
following description highlights some of the additional considerations
to be taken into account with respect to the ALC protocol.

Before a session starts, 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 transport;

  o The congestion control protocol being used within the LCT transport;

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

  o Any information needed for the FEC building block;

  o If used, the authentication scheme being used within the LCT
    transport, and all relevant information which is necessary for
    sender authentication purposes;








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


INTERNET-DRAFT          Expires: January 2002           July 2001


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 transport as described in [3], and
that pertain to using the FEC building block as described in [2]. 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 LCT
packet header (excluding the Codepoint field)  as described in [3]
before processing any other fields of the packet.


5.  Security Considerations

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


6.  IANA Considerations

No information in this specification is directly subject to IANA
registration.  However, building blocks components used by the ALC
protcol 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 protocol or congestion control protocol is
specified or referenced as mandatory in this document.

ALC MAY be used with congestion control protocols and other protocols
which are proprietary, or have pending or granted patents.



[1] 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-00.txt, November
2000, a work in progress.

[2] Luby, M., Gemmell, J., Vicisano, L., Rizzo, L., Handley, M.,



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


INTERNET-DRAFT          Expires: January 2002           July 2001


Crowcroft, J., "RMT BB Forward Error Correction Codes", Internet Draft
draft-ietf-rmt-bb-fec-03.txt, July 2001.

[3] 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-01.txt, July
2001.

[4] Luby, M., Vicisano, L., Haken, A., "RMT BB Layered congestion
control", draft-ietf-rmt-bb-lcc-00.txt, November 2000, a work in
progress.

[5] Perrig, A., Canetti, R., Briscoe, B., Tygar, D., Song, D., "TESLA:
Multicast Source Authentication Transform", draft-irtf-smug-
tesla-00.txt, November, 2000, a work in progress.



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



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


INTERNET-DRAFT          Expires: January 2002           July 2001


   University College London
   Gower Street,
   London WC1E 6BT, UK
















































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


INTERNET-DRAFT          Expires: January 2002           July 2001


9.  Full Copyright Statement

Copyright (C) The Internet Society (2000).  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 9.  [Page 13]


INTERNET-DRAFT          Expires: January 2002           July 2001





















































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