TOC 
RMTV. Roca
Internet-DraftINRIA
Intended status: ExperimentalFebruary 25, 2008
Expires: August 28, 2008 


FCAST: Scalable Object Delivery on top of the ALC Protocol
draft-roca-rmt-newfcast-01.txt

Status of this Memo

By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79.

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.

This Internet-Draft will expire on August 28, 2008.

Abstract

This document introduces the FCAST object (e.g. file) delivery application on top of the ALC reliable multicast protocols. FCAST is a highly scalable application that provides a reliable object delivery service.



Table of Contents

1.  Introduction
2.  Requirements notation
3.  Definitions, Notations and Abbreviations
    3.1.  Definitions
    3.2.  Abbreviations
4.  FCAST Specifications
    4.1.  Meta-Data Associated to Objects
    4.2.  Meta-Data Transmission
    4.3.  Object Transmissions Within a Carousel
5.  Control Information Formats
    5.1.  Object Meta-Data ALC/LCT Header Extension (EXT_OMD) Format
    5.2.  Object Trailer Format
    5.3.  Carousel Instance Object (CIO) Format
6.  Security Considerations
7.  Acknowledgments
8.  Normative References
§  Author's Address
§  Intellectual Property and Copyright Statements




 TOC 

1.  Introduction

This document introduces the FCAST reliable and scalable object (e.g. file) delivery application on top of the ALC reliable multicast protocols.

Since FCAST is built on top of ALC/LCT [draft‑ietf‑rmt‑pi‑alc‑revised] (Luby, M., Watson, M., and L. Vicisano, “Asynchronous Layered Coding (ALC) Protocol Instantiation,” February 2007.) [draft‑ietf‑rmt‑bb‑lct‑revised] (Luby, M., Watson, M., and L. Vicisano, “Layered Coding Transport (LCT) Building Block,” February 2007.), it inherits in particular the concepts of ``PUSH'' and ``ON-DEMAND'' delivery modes and the concept of Transport Object ID (TOI) that uniquely identifies the object(s) being transported in an ALC session.

Depending on the target use case, the delivery service that FCAST defines will be more or less reliable. For instance, when used in ON-DEMAND mode over a time period that largely exceeds the typical download time, the service can be considered as fully reliable. When FCAST is used along with a session control application capable of collecting reception information and taking appropriate corrective measures, then the service can be considered as fully reliable. But if FCAST operates in PUSH mode, for a time period that is close to the typical download time, then the service is usually only partially reliable.

Depending on the target use case, the FCAST scalability will be more or less important. For instance, if used on top of purely unidirectional transport channels, with no feedback information at all, which is the default mode of operation, then the scalability is maximum since neither FCAST, nor ALC/LCT, UDP or IP will generate feedback messages. But if FCAST is used along with a session control application capable of collecting reception information from the receivers, then this session control application (that is kept separate from FCAST) will probably create a limit on the FCAST scalability. This situation can be mitigated by using a hierarchy of feedback message aggregators or servers. How this session control application can be designed is out of the scope of the present document.

A goal of FCAST is to enable the receivers to collect meta-data information sent in-band, along with the objects. The transmission of meta-data is done in two complementary ways. Depending on the target use case, the sender will use one scheme or the other, or both of them. When the client must be able to process the meta-data, or a subset of the meta-data, early in the reception process, and in particular before the object has been completely received and decoded, then meta-data (or a subset) is included in a dedicated ALC/LCT header extension. When it is sufficient for the client to extract the meta-data, or a subset of the meta-data, once the object has been fully received and decoded, then meta-data (or a subset) is appended to the object. Several motivations can lead a sender to use one method or the other, or both. Using a dedicated header extension enables a client to select the objects he is interested in, based on various criteria (like the object size or encoding). In that case the client can decide to receive the following packets, or to drop them if he's not interested by the object, which saves both processing and memory resources. But appending meta-data to the object is also an efficient way to carry the information, in particular with very small objects, for instance when the size of the object and the associated meta-data is less than the maximum payload size. With larger objects, appending the meta-data to the object enables to benefit from the erasure protection that is probably provided by the FEC encoding of the object.



 TOC 

2.  Requirements notation

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] (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.).



 TOC 

3.  Definitions, Notations and Abbreviations



 TOC 

3.1.  Definitions

This document uses the following definitions:

Carousel: this is the object transmission system of an FCAST sender;

Carousel Instance: this is a fixed set of registered objects, that will be sent by the carousel during a certain number of cycles. Whenever objects need to be added or removed, a new Carousel Instance is defined;

Carousel Cycle: within a cycle, all the objects registered in the Carousel Instance are transmitted a certain number of times. By default, objects are transmitted once per cycle, but higher values are possible, that might differ according to the object (e.g. to simulate different levels of priorities);



 TOC 

3.2.  Abbreviations

This document uses the following abbreviations:

CIO: Carousel Instance Object

OMD: Object Meta Data

FEC OTI: FEC Object Transmission Information

FPI: FEC Payload ID



 TOC 

4.  FCAST Specifications

This section gives more details on the key design principles behind FCAST, and their motivations.



 TOC 

4.1.  Meta-Data Associated to Objects

Meta-data are associated to each object sent during a session. The meta-data can be composed of, but are not limited to:

This list is not limited, and new meta-data information can be added to this list as the need arises. Note also that these items are not all mandatory. The only mandatory meta-data item is the name and location of the object (i.e. ``Content-Location'' attribute).



 TOC 

4.2.  Meta-Data Transmission

FCAST proposes two complementary but optional ways to carry meta-data:

Depending on the target use case, the sender can choose:



 TOC 

4.3.  Object Transmissions Within a Carousel

The object transmissions are performed within the carousel of an FCAST sender. This carousel sends all the objects that have been scheduled for transmission, for a given number of cycles (i.e. repetitions). In some use-cases (e.g. in PUSH mode), there will be a single cycle, whereas in other use-cases (e.g. in ON-DEMAND mode), transmissions could last several days which can represent a high number of cycles. By default, objects are transmitted once per cycle, but higher values are possible, that might differ according to the object, for instance to simulate different levels of priorities. We call the Carousel Instance a fixed set of registered objects that will be sent by the carousel during a certain number of cycles. Whenever objects need to be added or removed, a new Carousel Instance is defined.

The FCAST application can optionally create a Carousel Instance Object (or CIO), that describes the carousel instance. More specifically, this CIO:

Using a CIO is not mandatory. If it is not used, then the clients progressively learn what files are part of the carousel by receiving ALC packets with new TOIs. However using a CIO has several benefits:

The decision of how often and when the CIO should be sent within an FCAST session is left to the sender and depends on many parameters, including the target use case, and the session dynamics. In case of an FCAST session in PUSH mode, the CIO should be sent before the objects (and with a low frequency after the start to enable late receivers to catch up, if this is desired). In case of a highly dynamic FCAST session, a CIO will probably be sent at the beginning of each new carousel instance, and then periodically. The period depends on the desired maximum latency that could be experienced by late receivers who join the FCAST session in the middle of a carousel instance transmission cycle, and who therefore missed the initial CIO transmission.

At a sender, the following operations take place:



 TOC 

5.  Control Information Formats



 TOC 

5.1.  Object Meta-Data ALC/LCT Header Extension (EXT_OMD) Format

The EXT_OMD header extension format is the following. This is an ALC PI Specific header extension (i.e. HET ≤ 127).



 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   HET = XXX   |       HEL     | Format| CENC  |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |
.                                                               .
.                Object Meta Data Content                       .
|                                               +-+-+-+-+-+-+-+-+
|                                               |    Padding    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 Figure 1: Object Meta-Data (EXT_OMD) header extension format. 

In Figure 1 (Object Meta-Data (EXT_OMD) header extension format.), the Format field defines the format of the Object Meta Data Content field (e.g. XML), while the CENC field defines the optional content encoding of the Object Meta Data Content field (e.g. gzip). An optional padding field is used to make the EXT_OMD an integral number of 32 bit words. Because of the HEL semantic, the EXT_OMD size cannot exceed: 255 * 4 = 1020 bytes. Of course, the resulting ALC packet size, after adding the UDP/IP headers, should remain below the PMTU size for higher efficiency. This constraint can lead the sender to use the EXT_OMD extension in separate control ALC packets, containing no data or repair symbol.



 TOC 

5.2.  Object Trailer Format

To each object of an FCAST session, a trailer is appended that might or not include meta-data. The format of the trailer is the following:



 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
                                                +-+-+-+-+-+-+-+-+
             Object data                        |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |
.                                                               .
.                Object Meta Data Content                       .
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Format| CENC  |       Trailer Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 Figure 2: Object trailer with meta-data. 

In Figure 2 (Object trailer with meta-data.), the Format and CENC fields have the same meaning as for EXT_OMD. If no object meta data is appended to the object, then these two fields are not present. The Trailer Length field contains the number of bytes used by all the trailer fields, from the Object Meta Data Content field up to and including the Trailer Length field.


 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
                                                +-+-+-+-+-+-+-+-+
             Object data                        |    Trailer... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...Length = 2 |
+-+-+-+-+-+-+-+-+

 Figure 3: Object trailer without meta-data. 

Figure 2 (Object trailer with meta-data.) shows an object trailer without any meta-data. In that case the Trailer Length value equals 2, which means that the trailer is only composed of the Trailer Length field.



 TOC 

5.3.  Carousel Instance Object (CIO) Format

The Carousel Instance object format is the following. It basically consists of two lists:

The TOI 0 is reserved for the Carousel Instance object. The various instances of this object are identified by the Carousel Instance ID.

XXX: format TDB

The Carousel Instance ID identifies the carousel instance. It starts from 0 and is incremented by 1 for each new carousel instance. Wrapping of the Carousel Instance ID can happen. In that case, IDs that wrapped to 0 must be considered higher than the IDs used before the wrapping.

The Expires attribute identifies the validity period of this carousel instance. This validity period is expressed as an NTP time. The validity period should enable the transmission, the reception and processing of all the objects that belong to this carousel instance.



 TOC 

6.  Security Considerations

TBD



 TOC 

7.  Acknowledgments



 TOC 

8. Normative References

[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” RFC 2119, BCP 14, March 1997.
[draft-ietf-rmt-bb-lct-revised] Luby, M., Watson, M., and L. Vicisano, “Layered Coding Transport (LCT) Building Block,”  draft-ietf-rmt-bb-lct-revised-05.txt (work in progress), February 2007.
[draft-ietf-rmt-pi-alc-revised] Luby, M., Watson, M., and L. Vicisano, “Asynchronous Layered Coding (ALC) Protocol Instantiation,”  draft-ietf-rmt-pi-alc-revised-04.txt (work in progress), February 2007.


 TOC 

Author's Address

  Vincent Roca
  INRIA
  655, av. de l'Europe
  Inovallee; Montbonnot
  ST ISMIER cedex 38334
  France
Email:  vincent.roca@inria.fr
URI:  http://planete.inrialpes.fr/~roca/


 TOC 

Full Copyright Statement

Intellectual Property