Asynchronous Layered Coding (ALC) is an
Internet protocol
The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
...
for content delivery in a reliable, massively scalable, multiple-rate, and congestion-controlled manner. Specified i
RFC 5775 it is an
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and a ...
proposed standard.
The protocol
is specifically designed to provide massive scalability using IP
multicast
In computer networking, multicast is group communication where data transmission is addressed to a group of destination computers simultaneously. Multicast can be one-to-many or many-to-many distribution. Multicast should not be confused with ...
as the underlying network service. Massive scalability in
this context means the number of concurrent receivers for an object
is potentially in the millions, the aggregate size of objects to be
delivered in a session ranges from hundreds of kilobytes to hundreds
of gigabytes, each receiver can initiate reception of an object
asynchronously, the reception rate of each receiver in the session is
the maximum fair bandwidth available between that receiver and the
sender, and all of this can be supported using a single sender.
Because ALC is focused on reliable content delivery, the goal is to
deliver objects as quickly as possible to each receiver while at the
same time remaining network friendly to competing traffic. Thus, the
congestion control used in conjunction with ALC should strive to
maximize use of available bandwidth between receivers and the sender
while at the same time backing off aggressively in the face of
competing traffic.
The sender side of ALC consists of generating packets based on
objects to be delivered within the session and sending the
appropriately formatted packets at the appropriate rates to the
channels associated with the session. The receiver side of ALC
consists of joining appropriate channels associated with the session,
performing congestion control by adjusting the set of joined channels
associated with the session in response to detected congestion, and
using the packets to reliably reconstruct objects. All information
flow in an ALC session is in the form of data packets sent by a
single sender to channels that receivers join to receive data.
ALC does specify the Session Description needed by receivers before
they join a session, but the mechanisms by which receivers obtain
this required information is outside the scope of ALC. An
application that uses ALC may require that receivers report
statistics on their reception experience back to the sender, but the
mechanisms by which receivers report back statistics is outside the
scope of ALC. In general, ALC is designed to be a minimal protocol
instantiation that provides reliable content delivery without
unnecessary limitations to the scalability of the basic protocol.
Implementations
Tampere University of Technology MAD/TUTTZI Papageno
Internet protocols
{{Internet-stub