- What it is: File Delivery over Unidirectional Transport, a protocol that delivers files in one direction, from a sender to receivers, over UDP/IP.
- Built on: ALC, which is made of the LCT, CC and FEC building blocks; FLUTE adds an in-band File Delivery Table.
- Three profiles: unprofiled FLUTE, MBMS download and MBS Object Distribution.
- Next: the Architecture and Features pages go deeper into FLUTE.
Why one-way delivery
FLUTE is a protocol for the unidirectional delivery of files over the Internet, particularly suited to multicast networks (RFC 3926 Abstract; RFC 3926 section 1). It builds on Asynchronous Layered Coding (ALC), the base protocol designed for massively scalable multicast distribution.
ALC provides congestion controlled, reliable, asynchronous delivery of content to an unlimited number of concurrent receivers from a single sender (TS 26.346 V19.3.0 clause 7.1; RFC 3450 section 2). Its reliability comes from the Forward Error Correction (FEC) building block.
Some networks are not amenable to congestion control (RFC 3450 section 1.3; TS 26.346 V19.3.0 clause 7.1). For a satellite or wireless network, there may be no way for receivers to reduce their reception rate, since a fixed transmission rate may be allocated to the session. MBMS download delivery is such an environment, and does not use congestion control.
The building blocks
- LCT (Layered Coding Transport): gives ALC its in-band session management (TS 26.346 V19.3.0 clause 7.1; RFC 3450 section 2.1). Each packet carries a Transport Session Identifier (TSI) and a Transport Object Identifier (TOI).
- CC (congestion control): a building block that ALC combines with the others (TS 26.346 V19.3.0 clause 7.1). MBMS download does not use it.
- FEC (Forward Error Correction): gives ALC its reliability (TS 26.346 V19.3.0 clause 7.1). The FEC building block allows the choice of an FEC code, including the no-code FEC code that sends the original data with no coding.
- ALC (Asynchronous Layered Coding): the protocol instantiation that combines the three (TS 26.346 V19.3.0 clause 7.1). It is under-specified and transports binary objects of finite or indeterminate length.
- FLUTE (File Delivery over Unidirectional Transport): a fully specified protocol to transport files (TS 26.346 V19.3.0 clause 7.1; RFC 3926 section 3.2). It uses special-purpose objects, the File Delivery Table (FDT) Instances, to provide a running index of files and their essential reception parameters in band.
FLUTE is carried over UDP/IP, and is independent of the IP version and of the underlying link layers (TS 26.346 V19.3.0 clause 7.1).
FLUTE version 1 and version 2
- Version 1 is RFC 3926, an Experimental RFC of October 2004 (RFC 3926 section 1; RFC 6726 section 11.1). It uses ALC as RFC 3450 specifies it and LCT as RFC 3451 specifies it.
- Version 2 is RFC 6726, a Standards Track RFC of November 2012 that obsoletes RFC 3926 (RFC 6726 section 1; RFC 6726 section 3.1; RFC 6726 section 11.1). It uses ALC (RFC 5775) and LCT (RFC 5651), and is not backwards compatible with version 1: for instance, the T and R fields of the LCT header changed meaning between RFC 3451 and RFC 5651.
TS 26.346 and TS 26.517 both refer to RFC 3926. The three profiles below are therefore defined on FLUTE version 1.
The three FLUTE profiles
| Profile | Defined in | Sender and receiver | What it is |
|---|---|---|---|
| Unprofiled FLUTE (RFC 3926 section 1; RFC 3450 section 4.1; RFC 3451 section 5.1) | RFC 3926, with RFC 3450 and RFC 3451 | Any FLUTE sender and receiver | FLUTE as the IETF defines it, with no 3GPP constraints |
| MBMS download | TS 26.346 clause 7.2, and the MBMS Download Profile of annex L.4 | BM-SC and MBMS Client | MBMS clients and servers implement RFC 3926 with the ALC and LCT features FLUTE inherits, plus several optional and extended aspects of FLUTE. The MBMS Download Profile then sets the required, expected and permitted usage of the FDT attributes and elements. |
| MBS Object Distribution | TS 26.517 clause 6.2 | MBSTF and MBS Client | When FLUTE realises the Object Distribution Method, the MBS Distribution Session conforms to the MBMS Download Profile of TS 26.346 annex L.4, with the additional requirements of TS 26.517 clause 6.2 |
Only one of the three has a name in the specifications: the MBMS Download Profile. "Unprofiled FLUTE" and "MBS Object Distribution" are the names this site uses for the other two. The Features page compares the three, row by row.
Repositories
FLUTE is implemented by the FLUTE library and checked by the conformance validator.
Early Access: available to members first
rt-libfluteSources for this page
- Why one-way delivery: RFC 3926, Abstract and section 1.1.4; TS 26.346 V19.3.0, clause 7.1.
- The building blocks: TS 26.346 V19.3.0, clause 7.1; RFC 3926, section 3.1.
- Figure: a 5G-MAG drawing based on TS 26.346 V19.3.0, figure 10 and clause 7.1.
- FLUTE version 1 and version 2: RFC 3926 and RFC 3450, headers; RFC 6726, header, section 1 and section 11.1; TS 26.346 V19.3.0, clause 2 (reference [9]); TS 26.517 V19.3.0, clause 2 (reference [12]).
- The three FLUTE profiles: TS 26.346 V19.3.0, clauses 7.2.0 and L.4.1; TS 26.517 V19.3.0, clause 6.2.1.
Related: Content Delivery Protocols and Tools · ROUTE · CMMF · Standards: Content Delivery Protocols and Tools · Reference Tools: FLUTE Protocol and Profiles