summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5401.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc5401.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc5401.txt')
-rw-r--r--doc/rfc/rfc5401.txt2355
1 files changed, 2355 insertions, 0 deletions
diff --git a/doc/rfc/rfc5401.txt b/doc/rfc/rfc5401.txt
new file mode 100644
index 0000000..183f541
--- /dev/null
+++ b/doc/rfc/rfc5401.txt
@@ -0,0 +1,2355 @@
+
+
+
+
+
+
+Network Working Group B. Adamson
+Request for Comments: 5401 Naval Research Laboratory
+Obsoletes: 3941 C. Bormann
+Category: Standards Track Universitaet Bremen TZI
+ M. Handley
+ University College London
+ J. Macker
+ Naval Research Laboratory
+ November 2008
+
+
+ Multicast Negative-Acknowledgment (NACK) Building Blocks
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (c) 2008 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents (http://trustee.ietf.org/
+ license-info) in effect on the date of publication of this document.
+ Please review these documents carefully, as they describe your rights
+ and restrictions with respect to this document.
+
+Abstract
+
+ This document discusses the creation of reliable multicast protocols
+ that utilize negative-acknowledgment (NACK) feedback. The rationale
+ for protocol design goals and assumptions are presented. Technical
+ challenges for NACK-based (and in some cases general) reliable
+ multicast protocol operation are identified. These goals and
+ challenges are resolved into a set of functional "building blocks"
+ that address different aspects of reliable multicast protocol
+ operation. It is anticipated that these building blocks will be
+ useful in generating different instantiations of reliable multicast
+ protocols. This document obsoletes RFC 3941.
+
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 1]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+Table of Contents
+
+ 1. Introduction ....................................................2
+ 1.1. Requirements Language ......................................4
+ 2. Rationale .......................................................4
+ 2.1. Delivery Service Model .....................................5
+ 2.2. Group Membership Dynamics ..................................6
+ 2.3. Sender/Receiver Relationships ..............................6
+ 2.4. Group Size Scalability .....................................6
+ 2.5. Data Delivery Performance ..................................7
+ 2.6. Network Environments .......................................7
+ 2.7. Intermediate System Assistance .............................8
+ 3. Functionality ...................................................8
+ 3.1. Multicast Sender Transmission .............................11
+ 3.2. NACK Repair Process .......................................13
+ 3.3. Multicast Receiver Join Policies and Procedures ...........26
+ 3.4. Node (Member) Identification ..............................26
+ 3.5. Data Content Identification ...............................27
+ 3.6. Forward Error Correction (FEC) ............................28
+ 3.7. Round-Trip Timing Collection ..............................29
+ 3.8. Group Size Determination/Estimation .......................33
+ 3.9. Congestion Control Operation ..............................34
+ 3.10. Intermediate System Assistance ...........................34
+ 4. NACK-Based Reliable Multicast Applicability ....................35
+ 5. Security Considerations ........................................36
+ 6. Changes from RFC 3941 ..........................................38
+ 7. Acknowledgements ...............................................38
+ 8. References .....................................................39
+ 8.1. Normative References ......................................39
+ 8.2. Informative References ....................................39
+
+1. Introduction
+
+ Reliable multicast transport is a desirable technology for efficient
+ and reliable distribution of data to a group on the Internet. The
+ complexities of group communication paradigms necessitate different
+ protocol types and instantiations to meet the range of performance
+ and scalability requirements of different potential reliable
+ multicast applications and users (see [RFC2357]). This document
+ addresses the creation of reliable multicast protocols that utilize
+ negative-acknowledgment (NACK) feedback. NACK-based protocols
+ generally entail less frequent feedback messaging than reliability
+ protocols based on positive acknowledgment (ACK). The less frequent
+ feedback messaging helps simplify the problem of feedback implosion
+ as group size grows larger. While different protocol instantiations
+ may be required to meet specific application and network architecture
+ demands [ArchConsiderations], there are a number of fundamental
+ components that may be common to these different instantiations.
+
+
+
+Adamson, et al. Standards Track [Page 2]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ This document describes the framework and common "building block"
+ components relevant to multicast protocols that are based primarily
+ on NACK operation for reliable transport. While this document
+ discusses a large set of reliable multicast components and issues
+ relevant to NACK-based reliable multicast protocol design, it
+ specifically addresses in detail the following building blocks, which
+ are not addressed in other IETF documents:
+
+ 1. NACK-based multicast sender transmission strategies,
+
+ 2. NACK repair process with timer-based feedback suppression, and
+
+ 3. Round-trip timing for adapting NACK and other timers.
+
+ NACK-based reliable multicast implementations SHOULD make use of
+ Forward Error Correction (FEC) erasure coding techniques, as
+ described in the FEC Building Block [RFC5052] document. Packet-level
+ erasure coding allows missing packets from a given FEC block to be
+ recovered using the parity packets instead of classical,
+ individualized retransmission of original source data content. For
+ this reason, this document refers to the protocol mechanisms for
+ reliability as a "repair process." Note that NACK-based protocols
+ can reactively provide the parity packets in response to receiver
+ requests for repair rather than just proactively sending added FEC
+ parity content as part of the original transmission. Hybrid
+ proactive/reactive use of FEC content is also possible with the
+ mechanisms described in this document. Some classes of FEC coding,
+ such as Maximal Separable Distance (MDS) codes, allow senders to
+ dynamically implement deterministic, highly efficient receiver group
+ repair strategies as part of a NACK-based, selective automated
+ repeat-request (ARQ) scheme.
+
+ The potential relationships to other reliable multicast transport
+ building blocks (e.g., FEC, congestion control) and general issues
+ with NACK-based reliable multicast protocols are also discussed.
+ This document follows the guidelines provided in [RFC3269].
+
+ Statement of Intent
+
+ This memo contains descriptions of building blocks that can be
+ applied in the design of reliable multicast protocols utilizing
+ negative-acknowledgement (NACK) feedback. [RFC3941] contains a
+ previous description of this specification. RFC 3941 was published
+ in the "Experimental" category. It was the stated intent of the
+ Reliable Multicast Transport (RMT) working group at that time to
+ resubmit this specification as an IETF Proposed Standard in due
+ course.
+
+
+
+
+Adamson, et al. Standards Track [Page 3]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ This Proposed Standard specification is thus based on [RFC3941] and
+ has been updated according to accumulated experience and growing
+ protocol maturity since the publication of RFC 3941. Said experience
+ applies both to this specification itself and to congestion control
+ strategies related to the use of this specification.
+
+ The differences between [RFC3941] and this document are listed in
+ Section 6.
+
+1.1. Requirements Language
+
+ 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].
+
+2. Rationale
+
+ Each potential protocol instantiation using the building blocks
+ presented here (and in other applicable building block documents)
+ will have specific criteria that may influence individual protocol
+ design. To support the development of applicable building blocks, it
+ is useful to identify and summarize driving general protocol design
+ goals and assumptions. These are areas that each protocol
+ instantiation will need to address in detail. Each building block
+ description in this document will include a discussion of the impact
+ of these design criteria. The categories of design criteria
+ considered here include:
+
+ 1. Delivery Service Model,
+
+ 2. Group Membership Dynamics,
+
+ 3. Sender/Receiver Relationships,
+
+ 4. Group Size Scalability,
+
+ 5. Data Delivery Performance, and
+
+ 6. Network Environments.
+
+ All of these areas are at least briefly discussed. Additionally,
+ other reliable multicast transport building block documents, such as
+ [RFC5052], have been created to address areas outside of the scope of
+ this document. NACK-based reliable multicast protocol instantiations
+ may depend upon these other building blocks as well as the ones
+ presented here. This document focuses on areas that are unique to
+ NACK-based reliable multicast but may be used in concert with the
+ other building block areas. In some cases, a building block may be
+
+
+
+Adamson, et al. Standards Track [Page 4]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ able to address a wide range of assumptions, while in other cases
+ there will be trade-offs required to meet different application needs
+ or operating environments. Where necessary, building block features
+ are designed to be parametric to meet different requirements. Of
+ course, an underlying goal will be to minimize design complexity and
+ to at least recommend default values for any such parameters that
+ meet a general purpose "bulk data transfer" requirement in a typical
+ Internet environment. The forms of "bulk data transfer" covered here
+ include reliable transport of bulky, fixed-length, a priori static
+ content and also transmission of non-predetermined, perhaps streamed,
+ content of indefinite length. Section 3.5 discusses these different
+ forms of bulk data content in further detail.
+
+2.1. Delivery Service Model
+
+ The implicit goal of a reliable multicast transport protocol is the
+ reliable delivery of data among a group of members communicating
+ using IP multicast datagram service. However, the specific service
+ the application is attempting to provide can impact design decisions.
+ The most basic service model for reliable multicast transport is that
+ of "bulk transfer", which is a primary focus of this and other
+ related RMT working group documents. However, the same principles in
+ protocol design may also be applied to other service models, e.g.,
+ more interactive exchanges of small messages such as with white-
+ boarding or text chat. Within these different models there are
+ issues such as the sender's ability to cache transmitted data (or
+ state referencing it) for retransmission or repair. The needs for
+ ordering and/or causality in the sequence of transmissions and
+ receptions among members in the group may be different depending upon
+ data content. The group communication paradigm differs significantly
+ from the point-to-point model in that, depending upon the data
+ content type, some receivers may complete reception of a portion of
+ data content and be able to act upon it before other members have
+ received the content. This may be acceptable (or even desirable) for
+ some applications but not for others. These varying requirements
+ drive the need for a number of different protocol instantiation
+ designs. A significant challenge in developing generally useful
+ building block mechanisms is accommodating even a limited range of
+ these capabilities without defining specific application-level
+ details.
+
+ Another factor impacting the delivery service model is the potential
+ for different receivers in the multicast group to have significantly
+ differing quality of network connectivity. This may involve
+ receivers with very limited goodput due to connection rate or
+ substantial packet loss. NACK-based protocol implementations may
+ wish to provide policies by which extremely poor-performing receivers
+ are excluded from the main group or migrated to a separate delivery
+
+
+
+Adamson, et al. Standards Track [Page 5]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ group. Note that some application models may require that the entire
+ group be constrained to the performance of the "weakest member" to
+ satisfy operational requirements. In either case, protocol designs
+ should consider this aspect of the reliable multicast delivery
+ service model.
+
+2.2. Group Membership Dynamics
+
+ One area where group communication can differ from point-to-point
+ communications is that even if the composition of the group changes,
+ the "thread" of communication can still exist. This contrasts with
+ the point-to-point communication model where, if either of the two
+ parties leave, the communication process (exchange of data) is
+ terminated (or at least paused). Depending upon application goals,
+ senders and receivers participating in a reliable multicast transport
+ "session" may be able to join late, leave, and/or potentially rejoin
+ while the ongoing group communication "thread" still remains
+ functional and useful. Also note that this can impact protocol
+ message content. If "late joiners" are supported, some amount of
+ additional information may be placed in message headers to
+ accommodate this functionality. Alternatively, the information may
+ be sent in its own message (on demand or intermittently) if the
+ impact to the overhead of typical message transmissions is deemed too
+ great. Group dynamics can also impact other protocol mechanisms such
+ as NACK timing, congestion control operation, etc.
+
+2.3. Sender/Receiver Relationships
+
+ The relationship of senders and receivers among group members
+ requires consideration. In some applications, there may be a single
+ sender multicasting to a group of receivers. In other cases, there
+ may be more than one sender or the potential for everyone in the
+ group to be a sender and receiver of data may exist.
+
+2.4. Group Size Scalability
+
+ Native IP multicast [RFC1112] may scale to extremely large group
+ sizes. It may be desirable for some applications to scale along with
+ the multicast infrastructure's ability to scale. In its simplest
+ form, there are limits to the group size to which a NACK-based
+ protocol can be applied without the potential for the volume of NACK
+ feedback messages to overwhelm network capacity. This is often
+ referred to as "feedback implosion". Research suggests that NACK-
+ based reliable multicast group sizes on the order of tens of
+ thousands of receivers may operate with acceptable levels of feedback
+ to the sender using probabilistic, timer-based suppression techniques
+ [NormFeedback]. Instead of receivers immediately transmitting
+ feedback messages when loss is detected, these techniques specify use
+
+
+
+Adamson, et al. Standards Track [Page 6]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ of purposefully-scaled, random back-off timeouts such that some
+ potential NACKing receivers can self-suppress their feedback upon
+ hearing messages from other receivers that have selected shorter
+ random timeout intervals. However, there may be additional NACK
+ suppression heuristics that can be applied to enable these protocols
+ to scale to even larger group sizes. In large scale cases, it may be
+ prohibitive for members to maintain state on all other members (in
+ particular, other receivers) in the group. The impact of group size
+ needs to be considered in the development of applicable building
+ blocks.
+
+ Group size scalability may also be aided by intermediate system
+ assistance; see section 2.7 below.
+
+2.5. Data Delivery Performance
+
+ There is a trade-off between scalability and data delivery latency
+ when designing NACK-oriented protocols. If probabilistic, timer-
+ based NACK suppression is to be used, there will be some delays built
+ into the NACK process to allow suppression to occur and to allow the
+ sender of data to identify appropriate content for efficient repair
+ transmission. For example, back-off timeouts can be used to ensure
+ efficient NACK suppression and repair transmission, but this comes at
+ the cost of increased delivery latency and increased buffering
+ requirements for both senders and receivers. The building blocks
+ SHOULD allow applications to establish bounds for data delivery
+ performance. Note that application designers must be aware of the
+ scalability trade-off that is made when such bounds are applied.
+
+2.6. Network Environments
+
+ The Internet Protocol has historically assumed a role of providing
+ service across heterogeneous network topologies. It is desirable
+ that a reliable multicast protocol be capable of effectively
+ operating across a wide range of the networks to which general
+ purpose IP service applies. The bandwidth available on the links
+ between the members of a single group today may vary between low
+ numbers of kbit/s for wireless links and multiple Gbit/s for high
+ speed LAN connections, with varying degrees of contention from other
+ flows. Recently, a number of asymmetric network services including
+ 56K/ADSL modems, CATV Internet service, satellite, and other wireless
+ communication services have begun to proliferate. Many of these are
+ inherently broadcast media with potentially large "fan-out" to which
+ IP multicast service is highly applicable. Additionally, policy
+ and/or technical issues may result in topologies where multicast
+ connectivity is limited to a source-specific multicast (SSM) model
+ from a specific source [RFC4607]. Receivers in the group may be
+
+
+
+
+Adamson, et al. Standards Track [Page 7]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ restricted to unicast feedback for NACKs and other messages.
+ Consideration must be given, in building block development and
+ protocol design, to the nature of the underlying networks.
+
+2.7. Intermediate System Assistance
+
+ Intermediate assistance from devices/systems with direct knowledge of
+ the underlying network topology may be used to increase the
+ performance and scalability of NACK-based reliable multicast
+ protocols. Feedback aggregation and filtering of sender repair data
+ may be possible with NACK-based protocols using FEC-based repair
+ strategies as described in the present and other reliable multicast
+ transport building block documents. However, there will continue to
+ be a number of instances where intermediate system assistance is not
+ available or practical. Any building block components for NACK-
+ oriented reliable multicast SHALL be capable of operating without
+ such assistance. However, it is RECOMMENDED that such protocols also
+ consider utilizing these features when available.
+
+3. Functionality
+
+ The previous section has presented the role of protocol building
+ blocks and some of the criteria that may affect NACK-based reliable
+ multicast building block identification/design. This section
+ describes different building block areas applicable to NACK-based
+ reliable multicast protocols. Some of these areas are specific to
+ NACK-based protocols. Detailed descriptions of such areas are
+ provided. In other cases, the areas (e.g., node identifiers, forward
+ error correction (FEC), etc.) may be applicable to other forms of
+ reliable multicast. In those cases, the discussion below describes
+ requirements placed on those general building block areas from the
+ standpoint of NACK-based reliable multicast. Where applicable, other
+ building block documents are referenced for possible contribution to
+ NACK-based reliable multicast protocols.
+
+ For each building block, a notional "interface description" is
+ provided to illustrate any dependencies of one building block
+ component upon another or upon other protocol parameters. A building
+ block component may require some form of "input" from another
+ building block component or other source to perform its function.
+ Any "inputs" required by a building block component and/or any
+ resultant "output" provided will be defined and described in each
+ building block component's interface description. Note that the set
+ of building blocks presented here do not fully satisfy each other's
+ "input" and "output" needs. In some cases, "inputs" for the building
+ blocks here must come from other building blocks external to this
+ document (e.g., congestion control or FEC). In other cases NACK-
+
+
+
+
+Adamson, et al. Standards Track [Page 8]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ based reliable multicast building block "inputs" must be satisfied by
+ the specific protocol instantiation or implementation (e.g.,
+ application data and control).
+
+ The following building block components relevant to NACK-based
+ reliable multicast are identified:
+
+ NORM (NACK-Oriented Reliable Multicast)-Specific
+
+ 1. Multicast Sender Transmission
+
+ 2. NACK Repair Process
+
+ 3. Multicast Receiver Join Policies and Procedures
+
+ General Purpose
+
+ 1. Node (Member) Identification
+
+ 2. Data Content Identification
+
+ 3. Forward Error Correction (FEC)
+
+ 4. Round-Trip Timing Collection
+
+ 5. Group Size Determination/Estimation
+
+ 6. Congestion Control Operation
+
+ 7. Intermediate System Assistance
+
+ 8. Ancillary Protocol Mechanisms
+
+ Figure 1 provides a pictorial overview of these building block areas
+ and some of their relationships. For example, the content of the
+ data messages that a sender initially transmits depends upon the
+ "Node Identification", "Data Content Identification", and "FEC"
+ components, while the rate of message transmission will generally
+ depend upon the "Congestion Control" component. Subsequently, the
+ receivers' response to these transmissions (e.g., NACKing for repair)
+ will depend upon the data message content and inputs from other
+ building block components. Finally, the sender's processing of
+ receiver responses will feed back into its transmission strategy.
+
+ The components on the left side of this figure are areas that may be
+ applicable beyond NACK-based reliable multicast. The more
+ significant of these components are discussed in other building block
+ documents, such as the FEC Building Block [RFC5052]. Brief
+
+
+
+Adamson, et al. Standards Track [Page 9]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ descriptions of these areas and their roles in NACK-based reliable
+ multicast protocols are given below, and "RTT Collection" is
+ discussed in detail in Section 3.7 of this document.
+
+ The components on the right are seen as specific to NACK-based
+ reliable multicast protocols, most notably the NACK repair process.
+ These areas are discussed in detail below (most notably, "Multicast
+ Sender Transmission" and "NACK Repair Process" in Sections 3.1 and
+ 3.2). Some other components (e.g., "Security") impact many aspects
+ of the protocol, and others may be more transparent to the core
+ protocol processing. Where applicable, specific technical
+ recommendations are made for mechanisms that will properly satisfy
+ the goals of NACK-based reliable multicast transport for the
+ Internet.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 10]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ Application Data and Control
+ |
+ v
+ .---------------------. .-----------------------.
+ | Node Identification |-------+-->| Sender Transmission |<---.
+ `---------------------' | `-----------------------' |
+ .---------------------. | | .------------------. |
+ | Data Identification |-------+ | | Rcvr Join Policy | |
+ `---------------------' | V `------------------' |
+ .---------------------. | .----------------------. |
+ .->| Congestion Control |-------+ | Receiver NACK | |
+ | `---------------------' | | Repair Process | |
+ | .---------------------. | | .------------------. | |
+ | | |-------' | | NACK Initiation | | |
+ | | FEC |-----. | `------------------' | |
+ | | |--. | | .------------------. | |
+ | `---------------------' | | | | NACK Content | | |
+ | .---------------------. | | | `------------------' | |
+ `--| RTT Collection |--|--+---->| .------------------. | |
+ | |--+ | | | NACK Suppression | | |
+ `---------------------' | | | `------------------' | |
+ .---------------------. | | `----------------------' |
+ | Group Size Est. |--|--' | .-----------------. |
+ | |--+ | | Intermediate | |
+ `---------------------' | | | System Assist | |
+ .---------------------. | v `-----------------' |
+ | Other | | .-------------------------. |
+ `---------------------' `------->| Sender NACK Processing |--'
+ | and Repair Response |
+ `-------------------------'
+ ^ ^
+ | |
+ .-----------------------------.
+ | (Security) |
+ `-----------------------------'
+
+ Figure 1: NACK-Based Reliable Multicast Building Block Framework
+
+3.1. Multicast Sender Transmission
+
+ Reliable multicast senders will transmit data content to the
+ multicast session. The data content will be application dependent.
+ The sender will transmit data content at a rate, and with message
+ sizes, determined by application and/or network architecture
+ requirements. Any FEC encoding of sender transmissions SHOULD
+ conform with the guidelines of the FEC Building Block [RFC5052].
+ When congestion control mechanisms are needed (REQUIRED for general
+ Internet operation), the sender transmission rate SHALL be controlled
+
+
+
+Adamson, et al. Standards Track [Page 11]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ by the congestion control mechanism. In any case, it is RECOMMENDED
+ that all data transmissions from multicast senders be subject to rate
+ limitations determined by the application or congestion control
+ algorithm. The sender's transmissions SHOULD make good utilization
+ of the available capacity (which may be limited by the application
+ and/or by congestion control). As a result, it is expected there
+ will be overlap and multiplexing of new data content transmission
+ with repair content. Other factors related to application operation
+ may determine sender transmission formats and methods. For example,
+ some consideration needs to be given to the sender's behavior during
+ intermittent idle periods when it has no data to transmit.
+
+ In addition to data content, other sender messages or commands may be
+ employed as part of protocol operation. These messages may occur
+ outside of the scope of application data transfer. In NACK-based
+ reliable multicast protocols, reliability of such protocol messages
+ may be attempted by redundant transmission when positive
+ acknowledgement is prohibitive due to group size scalability
+ concerns. Note that protocol design SHOULD provide mechanisms for
+ dealing with cases where such messages are not received by the group.
+ As an example, a command message might be redundantly transmitted by
+ a sender to indicate that it is temporarily (or permanently) halting
+ transmission. At this time, it may be appropriate for receivers to
+ respond with NACKs for any outstanding repairs they require,
+ following the rules of the NACK procedure. For efficiency, the
+ sender should allow sufficient time between the redundant
+ transmissions to receive any NACK responses from the receivers to
+ this command.
+
+ In general, when there is any resultant NACK or other feedback
+ operation, the timing of redundant transmission of control messages
+ issued by a sender and other NACK-based reliable multicast protocol
+ timeouts should be dependent upon the group greatest round-trip
+ timing (GRTT) estimate and any expected resultant NACK or other
+ feedback operation. The sender GRTT is an estimate of the worst-case
+ round-trip timing from a given sender to any receivers in the group.
+ It is assumed that the GRTT interval is a conservative estimate of
+ the maximum span (with respect to delay) of the multicast group
+ across a network topology with respect to a given sender. NACK-based
+ reliable multicast instantiations SHOULD be able to dynamically adapt
+ to a wide range of multicast network topologies.
+
+ Inputs:
+
+ 1. Application data and control.
+
+ 2. Sender node identifier.
+
+
+
+
+Adamson, et al. Standards Track [Page 12]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ 3. Data identifiers.
+
+ 4. Segmentation and FEC parameters.
+
+ 5. Transmission rate.
+
+ 6. Application controls.
+
+ 7. Receiver feedback messages (e.g., NACKs).
+
+ Outputs:
+
+ 1. Controlled transmission of messages with headers uniquely
+ identifying data or repair content within the context of the
+ reliable multicast session.
+
+ 2. Commands indicating sender's status or other transport control
+ actions to be taken.
+
+3.2. NACK Repair Process
+
+ A critical component of NACK-based reliable multicast protocols is
+ the NACK repair process. This includes both the receiver's role in
+ detecting and requesting repair needs and the sender's response to
+ such requests. There are four primary elements of the NACK repair
+ process:
+
+ 1. Receiver NACK process initiation,
+
+ 2. NACK suppression,
+
+ 3. NACK message content,
+
+ 4. Sender NACK processing and repair response.
+
+3.2.1. Receiver NACK Process Initiation
+
+ The NACK process (cycle) will be initiated by receivers that detect a
+ need for repair transmissions from a specific sender to achieve
+ reliable reception. When FEC is applied, a receiver should initiate
+ the NACK process only when it is known its repair requirements exceed
+ the amount of pending FEC transmission for a given coding block of
+ data content. This can be determined at the end of the current
+ transmission block (if it is indicated) or upon the start of
+ reception of a subsequent coding block or transmission object. This
+ implies the sender data content is marked to identify its FEC block
+ number and that ordinal relationship is preserved in order of
+ transmission.
+
+
+
+Adamson, et al. Standards Track [Page 13]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ Alternatively, if the sender's transmission advertises the quantity
+ of repair packets it is already planning to send for a block, the
+ receiver may be able to initiate the NACK process earlier. Allowing
+ receivers to initiate NACK cycles at any time they detect their
+ repair needs have exceeded pending repair transmissions may result in
+ slightly quicker repair cycles. However, it may be useful to limit
+ NACK process initiation to specific events, such as at the end-of-
+ transmission of an FEC coding block or upon detection of subsequent
+ coding blocks. This can allow receivers to aggregate NACK content
+ into a smaller number of NACK messages and provide some implicit
+ loose synchronization among the receiver set to help facilitate
+ effective probabilistic suppression of NACK feedback. The receiver
+ MUST maintain a history of data content received from the sender to
+ determine its current repair needs. When FEC is employed, it is
+ expected that the history will correspond to a record of pending or
+ partially-received coding blocks.
+
+ For probabilistic, timer-based suppression of feedback, the NACK
+ cycle should begin with receivers observing backoff timeouts. In
+ conjunction with initiating this backoff timeout, it is important
+ that the receivers record the position in the sender's transmission
+ sequence at which they initiate the NACK cycle. When the suppression
+ backoff timeout expires, the receivers should only consider their
+ repair needs up to this recorded transmission position in making the
+ decision to transmit or suppress a NACK. Without this restriction,
+ suppression is greatly reduced as additional content is received from
+ the sender during the time a NACK message propagates across the
+ network to the sender and other receivers.
+
+ Inputs:
+
+ 1. Sender data content with sequencing identifiers from sender
+ transmissions.
+
+ 2. History of content received from sender.
+
+ Outputs:
+
+ 1. NACK process initiation decision.
+
+ 2. Recorded sender transmission sequence position.
+
+3.2.2. NACK Suppression
+
+ An effective feedback suppression mechanism is the use of random
+ backoff timeouts prior to NACK transmission by receivers requiring
+ repairs [SrmFramework]. Upon expiration of the backoff timeout, a
+ receiver will request repairs unless its pending repair needs have
+
+
+
+Adamson, et al. Standards Track [Page 14]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ been completely superseded by NACK messages heard from other
+ receivers (when receivers are multicasting NACKs) or from some
+ indicator from the sender. When receivers are unicasting NACK
+ messages, the sender may facilitate NACK suppression by forwarding a
+ representation of NACK content it has received to the group at large
+ or by providing some other indicator of the repair information it
+ will be subsequently transmitting.
+
+ For effective and scalable suppression performance, the backoff
+ timeout periods used by receivers should be independently, randomly
+ picked by receivers with a truncated exponential distribution
+ [McastFeedback]. This results in the majority of the receiver set
+ holding off transmission of NACK messages under the assumption that
+ the smaller number of "early NACKers" will supersede the repair needs
+ of the remainder of the group. The mean of the distribution should
+ be determined as a function of the current estimate of the sender's
+ GRTT assessment and a group size estimate that is either determined
+ by other mechanisms within the protocol or is preset by the multicast
+ application.
+
+ A simple algorithm can be constructed to generate random backoff
+ timeouts with the appropriate distribution. Additionally, the
+ algorithm may be designed to optimize the backoff distribution given
+ the number of receivers ("R") potentially generating feedback. This
+ "optimization" minimizes the number of feedback messages (e.g., NACK)
+ in the worst-case situation where all receivers generate a NACK. The
+ maximum backoff timeout ("T_maxBackoff") can be set to control
+ reliable delivery latency versus volume of feedback traffic. A
+ larger value of "T_maxBackoff" will result in a lower density of
+ feedback traffic for a given repair cycle. A smaller value of
+ "T_maxBackoff" results in shorter latency, which also reduces the
+ buffering requirements of senders and receivers for reliable
+ transport.
+
+ In the functions below, the "log()" function specified refers to the
+ "natural logarithm" and the "exp()" function is similarly based upon
+ the mathematical constant 'e' (a.k.a. Euler's number) where "exp(x)"
+ corresponds to '"e"' raised to the power of '"x"'. Given the
+ receiver group size ("groupSize") and maximum allowed backoff timeout
+ ("T_maxBackoff"), random backoff timeouts ("t'") with a truncated
+ exponential distribution can be picked with the following algorithm:
+
+ 1. Establish an optimal mean ("L") for the exponential backoff based
+ on the "groupSize":
+
+ L = log(groupSize) + 1
+
+
+
+
+
+Adamson, et al. Standards Track [Page 15]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ 2. Pick a random number ("x") from a uniform distribution over a
+ range of:
+
+ L L L
+ -------------------- to -------------------- + ----------
+ T_maxBackoff*(exp(L)-1) T_maxBackoff*(exp(L)-1) T_maxBackoff
+
+ 3. Transform this random variate to generate the desired random
+ backoff time ("t'") with the following equation:
+
+ t' = T_maxBackoff/L * log(x * (exp(L) - 1) * (T_maxBackoff/L))
+
+ This "C" language function can be used to generate an appropriate
+ random backoff time interval:
+
+ double RandomBackoff(double T_maxBackoff, double groupSize)
+ {
+ double lambda = log(groupSize) + 1;
+ double x = UniformRand(lambda/T_maxBackoff) +
+ lambda / (T_maxBackoff*(exp(lambda)-1));
+ return ((T_maxBackoff/lambda) *
+ log(x*(exp(lambda)-1)*(T_maxBackoff/lambda)));
+ } // end RandomBackoff()
+
+ where "UniformRand(double max)" returns random numbers with a uniform
+ distribution from the range of "0..max". For example, based on the
+ POSIX "rand()" function, the following "C" code can be used:
+
+ double UniformRand(double max)
+ {
+ return (max * ((double)rand()/(double)RAND_MAX));
+ }
+
+ The number of expected NACK messages generated ("N") within the first
+ round-trip time for a single feedback event is approximately:
+
+ N = exp(1.2 * L / (2*T_maxBackoff/GRTT))
+
+ Thus, the maximum backoff time can be adjusted to trade off worst-
+ case NACK feedback volume versus latency. This is derived from the
+ equations given in [McastFeedback] and assumes "T_maxBackoff >=
+ GRTT", and "L" is the mean of the distribution optimized for the
+ given group size as shown in the algorithm above. Note that other
+ mechanisms within the protocol may work to reduce redundant NACK
+ generation further. It is suggested that "T_maxBackoff" be selected
+ as an integer multiple of the sender's current advertised GRTT
+ estimate such that:
+ T_maxBackoff = K * GRTT; where K >= 1
+
+
+
+Adamson, et al. Standards Track [Page 16]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ For general Internet operation, a default value of "K=4" is
+ RECOMMENDED for operation with multicast (to the group at large) NACK
+ delivery; a value of "K=6" is the RECOMMENDED default for unicast
+ NACK delivery. Alternate values may be used to achieve desired
+ buffer utilization, reliable delivery latency, and group size
+ scalability trade-offs.
+
+ Given that ("K*GRTT") is the maximum backoff time used by the
+ receivers to initiate NACK transmission, other timeout periods
+ related to the NACK repair process can be scaled accordingly. One of
+ those timeouts is the amount of time a receiver should wait after
+ generating a NACK message before allowing itself to initiate another
+ NACK backoff/transmission cycle ("T_rcvrHoldoff"). This delay should
+ be sufficient for the sender to respond to the received NACK with
+ repair messages. An appropriate value depends upon the amount of
+ time for the NACK to reach the sender and the sender to provide a
+ repair response. This MUST include any amount of sender NACK
+ aggregation period during which possible multiple NACKs are
+ accumulated to determine an efficient repair response. These
+ timeouts are further discussed in Section 3.2.4.
+
+ There are also secondary measures that can be applied to improve the
+ performance of feedback suppression. For example, the sender's data
+ content transmissions can follow an ordinal sequence of transmission.
+ When repairs for data content occur, the receiver can note that the
+ sender has "rewound" its data content transmission position by
+ observing the data object, FEC block number, and FEC symbol
+ identifiers. Receivers SHOULD limit transmission of NACKs to only
+ when the sender's current transmission position exceeds the point to
+ which the receiver has incomplete reception. This reduces premature
+ requests for repair of data the sender may be planning to provide in
+ response to other receiver requests. This mechanism can be very
+ effective for protocol convergence in high loss conditions when
+ transmissions of NACKs from other receivers (or indicators from the
+ sender) are lost. Another mechanism (particularly applicable when
+ FEC is used) is for the sender to embed an indication of impending
+ repair transmissions in current packets sent. For example, the
+ indication may be as simple as an advertisement of the number of FEC
+ packets to be sent for the current applicable coding block.
+
+ Finally, some consideration might be given to using the NACKing
+ history of receivers to bias their selection of NACK backoff timeout
+ intervals. For example, if a receiver has historically been
+ experiencing the greatest degree of loss, it may promote itself to
+ statistically NACK sooner than other receivers. Note this requires
+ correlation over successive intervals of time in the loss experienced
+ by a receiver. Such correlation MAY not always be present in
+ multicast networks. This adjustment of backoff timeout selection may
+
+
+
+Adamson, et al. Standards Track [Page 17]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ require the creation of an "early NACK" slot for these historical
+ NACKers. This additional slot in the NACK backoff window will result
+ in a longer repair cycle process that may not be desirable for some
+ applications. The resolution of these trade-offs may be dependent
+ upon the protocol's target application set or network.
+
+ After the random backoff timeout has expired, the receiver will make
+ a decision on whether to generate a NACK repair request or not (i.e.,
+ it has been suppressed). The NACK will be suppressed when any of the
+ following conditions has occurred:
+
+ 1. The accumulated state of NACKs heard from other receivers (or
+ forwarding of this state by the sender) is equal to or supersedes
+ the repair needs of the local receiver. Note that the local
+ receiver should consider its repair needs only up to the sender
+ transmission position recorded at the NACK cycle initiation (when
+ the backoff timer was activated).
+
+ 2. The sender's data content transmission position "rewinds" to a
+ point ordinally less than that of the lowest sequence position of
+ the local receiver's repair needs. (This detection of sender
+ "rewind" indicates the sender has already responded to other
+ receiver repair needs of which the local receiver may not have
+ been aware). This "rewind" event can occur any time between 1)
+ when the NACK cycle was initiated with the backoff timeout
+ activation and 2) the current moment when the backoff timeout has
+ expired to suppress the NACK. Another NACK cycle must be
+ initiated by the receiver when the sender's transmission sequence
+ position exceeds the receiver's lowest ordinal repair point.
+ Note it is possible that the local receiver may have had its
+ repair needs satisfied as a result of the sender's response to
+ the repair needs of other receivers and no further NACKing is
+ required.
+
+ If these conditions have not occurred and the receiver still has
+ pending repair needs, a NACK message is generated and transmitted.
+ The NACK should consist of an accumulation of repair needs from the
+ receiver's lowest ordinal repair point up to the current sender
+ transmission sequence position. A single NACK message should be
+ generated and the NACK message content should be truncated if it
+ exceeds the payload size of single protocol message. When such NACK
+ payload limits occur, the NACK content SHOULD contain requests for
+ the ordinally lowest repair content needed from the sender.
+
+
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 18]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ Inputs:
+
+ 1. NACK process initiation decision.
+
+ 2. Recorded sender transmission sequence position.
+
+ 3. Sender GRTT.
+
+ 4. Sender group size estimate.
+
+ 5. Application-defined bound on backoff timeout period.
+
+ 6. NACKs from other receivers.
+
+ 7. Pending repair indication from sender (may be forwarded NACKs).
+
+ 8. Current sender transmission sequence position.
+
+ Outputs:
+
+ 1. Yes/no decision to generate NACK message upon backoff timer
+ expiration.
+
+3.2.3. NACK Message Content
+
+ The content of NACK messages generated by reliable multicast
+ receivers will include information detailing their current repair
+ needs. The specific information depends on the use and type of FEC
+ in the NACK repair process. The identification of repair needs is
+ dependent upon the data content identification (see Section 3.5
+ below). At the highest level, the NACK content will identify the
+ sender to which the NACK is addressed and the data transport object
+ (or stream) within the sender's transmission that needs repair. For
+ the indicated transport entity, the NACK content will then identify
+ the specific FEC coding blocks and/or symbols it requires to
+ reconstruct the complete transmitted data. This content may consist
+ of FEC block erasure counts and/or explicit indication of missing
+ blocks or symbols (segments) of data and FEC content. It should also
+ be noted that NACK-based reliable multicast can be effectively
+ instantiated without a requirement for reliable NACK delivery using
+ the techniques discussed here.
+
+3.2.3.1. NACK and FEC Repair Strategies
+
+ Where FEC-based repair is used, the NACK message content will
+ minimally need to identify the coding block(s) for which repair is
+ needed and a count of erasures (missing packets) for the coding
+
+
+
+
+Adamson, et al. Standards Track [Page 19]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ block. An exact count of erasures implies the FEC algorithm is
+ capable of repairing any loss combination within the coding block.
+ This count may need to be adjusted for some FEC algorithms.
+
+ Considering that multiple repair rounds may be required to
+ successfully complete repair, an erasure count also implies that the
+ quantity of unique FEC parity packets the server has available to
+ transmit is essentially unlimited (i.e., the server will always be
+ able to provide new, unique, previously unsent parity packets in
+ response to any subsequent repair requests for the same coding
+ block). Alternatively, the sender may "round-robin" transmit through
+ its available set of FEC symbols for a given coding block, and
+ eventually effect repair. For the most efficient repair strategy,
+ the NACK content will need to also explicitly identify which symbols
+ (information and/or parity) the receiver requires to successfully
+ reconstruct the content of the coding block. This will be
+ particularly true of small- to medium-size block FEC codes (e.g.,
+ Reed Solomon [FecSchemes]) that are capable of providing a limited
+ number of parity symbols per FEC coding block.
+
+ When FEC is not used as part of the repair process, or the protocol
+ instantiation is required to provide reliability even when the sender
+ has transmitted all available parity for a given coding block (or the
+ sender's ability to buffer transmission history is exceeded by the
+ "(delay*bandwidth*loss)" characteristics of the network topology),
+ the NACK content will need to contain explicit coding block and/or
+ segment loss information so that the sender can provide appropriate
+ repair packets and/or data retransmissions. Explicit loss
+ information in NACK content may also potentially serve other
+ purposes. For example, it may be useful for decorrelating loss
+ characteristics among a group of receivers to help differentiate
+ candidate congestion control bottlenecks among the receiver set.
+
+ When FEC is used and NACK content is designed to contain explicit
+ repair requests, there is a strategy where the receivers can NACK for
+ specific content that will help facilitate NACK suppression and
+ repair efficiency. The assumptions for this strategy are that the
+ sender may potentially exhaust its supply of new, unique parity
+ packets available for a given coding block and be required to
+ explicitly retransmit some data or parity symbols to complete
+ reliable transfer. Another assumption is that an FEC algorithm where
+ any parity packet can fill any erasure within the coding block (e.g.,
+ Reed Solomon) is used. The goal of this strategy is to make maximum
+ use of the available parity and provide the minimal amount of data
+ and repair transmissions during reliable transfer of data content to
+ the group.
+
+
+
+
+
+Adamson, et al. Standards Track [Page 20]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ When systematic FEC codes are used, the sender transmits the data
+ content of the coding block (and optionally some quantity of parity
+ packets) in its initial transmission. Note that a systematic FEC
+ coding block is considered to be logically made up of the contiguous
+ set of source data vectors plus parity vectors for the given FEC
+ algorithm used. For example, a systematic coding scheme that
+ provides for 64 data symbols and 32 parity symbols per coding block
+ would contain FEC symbol identifiers in the range of 0 to 95.
+
+ Receivers then can construct NACK messages requesting sufficient
+ content to satisfy their repair needs. For example, if the receiver
+ has three erasures in a given received coding block, it will request
+ transmission of the three lowest ordinal parity vectors in the coding
+ block. In our example coding scheme from the previous paragraph, the
+ receiver would explicitly request parity symbols 64 to 66 to fill its
+ three erasures for the coding block. Note that if the receiver's
+ loss for the coding block exceeds the available parity quantity
+ (i.e., greater than 32 missing symbols in our example), the receiver
+ will be required to construct a NACK requesting all (32) of the
+ available parity symbols plus some additional portions of its missing
+ data symbols in order to reconstruct the block. If this is done
+ consistently across the receiver group, the resulting NACKs will
+ comprise a minimal set of sender transmissions to satisfy their
+ repair needs.
+
+ In summary, the rule is to request the lower ordinal portion of the
+ parity content for the FEC coding block to satisfy the erasure repair
+ needs on the first NACK cycle. If the available number of parity
+ symbols is insufficient, the receiver will also request the subset of
+ ordinally highest missing data symbols to cover what the parity
+ symbols will not fill. Note this strategy assumes FEC codes such as
+ Reed-Solomon for which a single parity symbol can repair any erased
+ symbol. This strategy would need minor modification to take into
+ account the possibly limited repair capability of other FEC types.
+ On subsequent NACK repair cycles where the receiver may receive some
+ portion of its previously requested repair content, the receiver will
+ use the same strategy, but only NACK for the set of parity and/or
+ data symbols it has not yet received. Optionally, the receivers
+ could also provide a count of erasures as a convenience to the
+ sender.
+
+ Other types of FEC schemes may require alteration to the NACK and
+ repair strategy described here. For example, some of the large block
+ or expandable FEC codes described in [RFC3453] may be less
+ deterministic with respect to defining optimal repair requests by
+ receivers or repair transmission strategies by senders. For these
+ types of codes, it may be sufficient for receivers to NACK with an
+ estimate of the quantity of additional FEC symbols required to
+
+
+
+Adamson, et al. Standards Track [Page 21]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ complete reliable reception and for the sender to respond
+ accordingly. This apparent disadvantage, as compared to codes such
+ as Reed Solomon, may be offset by the reduced computational
+ requirements and/or ability to support large coding blocks for
+ increased repair efficiency that these codes can offer.
+
+ After receipt and accumulation of NACK messages during the
+ aggregation period, the sender can begin transmission of fresh
+ (previously untransmitted) parity symbols for the coding block based
+ on the highest receiver erasure count if it has a sufficient quantity
+ of parity symbols that were not previously transmitted. Otherwise,
+ the sender MUST resort to transmitting the explicit set of repair
+ vectors requested. With this approach, the sender needs to maintain
+ very little state on requests it has received from the group without
+ need for synchronization of repair requests from the group. Since
+ all receivers use the same consistent algorithm to express their
+ explicit repair needs, NACK suppression among receivers is simplified
+ over the course of multiple repair cycles. The receivers can simply
+ compare NACKs heard from other receivers against their own calculated
+ repair needs to determine whether they should transmit or suppress
+ their pending NACK messages.
+
+3.2.3.2. NACK Content Format
+
+ The format of NACK content will depend on the protocol's data service
+ model and the format of data content identification the protocol
+ uses. This NACK format also depends upon the type of FEC encoding
+ (if any) used. Figure 2 illustrates a logical, hierarchical
+ transmission content identification scheme, denoting that the notion
+ of objects (or streams) and/or FEC blocking is optional at the
+ protocol instantiation's discretion. Note that the identification of
+ objects is with respect to a given sender. It is recommended that
+ transport data content identification is done within the context of a
+ sender in a given session. Since the notion of session "streams" and
+ "blocks" is optional, the framework degenerates to that of typical
+ transport data segmentation and reassembly in its simplest form.
+
+ Session_
+ \_
+ Sender_
+ \_
+ [Object/Stream(s)]_
+ \_
+ [FEC Blocks]_
+ \_
+ Symbols
+
+ Figure 2: Reliable Multicast Data Content Identification Hierarchy
+
+
+
+Adamson, et al. Standards Track [Page 22]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ The format of NACK messages should enable the following:
+
+ 1. Identification of transport data units required to repair the
+ received content, whether this is an entire missing object/stream
+ (or range), entire FEC coding block(s), or sets of symbols,
+
+ 2. Simple processing for NACK aggregation and suppression,
+
+ 3. Inclusion of NACKs for multiple objects, FEC coding blocks,
+ and/or symbols in a single message, and
+
+ 4. A reasonably compact format.
+
+ If the reliable multicast transport object/stream is identified with
+ an <objectId> and the FEC symbol being transmitted is identified with
+ an <fecPayloadId>, the concatenation of <objectId::fecPayloadId>
+ comprises a basic transport protocol data unit (TPDU) identifier for
+ symbols from a given source. NACK content can be composed of lists
+ and/or ranges of these TPDU identifiers to build up NACK messages to
+ describe the receiver's repair needs. If no hierarchical object
+ delineation or FEC blocking is used, the TPDU is a simple linear
+ representation of the data symbols transmitted by the sender. When
+ the TPDU represents a hierarchy for purposes of object/stream
+ delineation and/or FEC blocking, the NACK content unit may require
+ flags to indicate which portion of the TPDU is applicable. For
+ example, if an entire "object" (or range of objects) is missing in
+ the received data, the receiver will not necessarily know the
+ appropriate range of <sourceBlockNumbers> or <encodingSymbolIds> for
+ which to request repair and thus requires some mechanism to request
+ repair (or retransmission) of the entire unit represented by an
+ <objectId>. The same is true if entire FEC coding blocks represented
+ by one or a range of <sourceBlockNumbers> have been lost.
+
+ Inputs:
+
+ 1. Sender identification.
+
+ 2. Sender data identification.
+
+ 3. Sender FEC object transmission information.
+
+ 4. Recorded sender transmission sequence position.
+
+ 5. Current sender transmission sequence position. History of repair
+ needs for this sender.
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 23]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ Outputs:
+
+ 1. NACK message with repair requests.
+
+3.2.4. Sender NACK Processing and Repair Response
+
+ Upon reception of a repair request from a receiver in the group, the
+ sender will initiate a repair response procedure. The sender may
+ wish to delay transmission of repair content until it has had
+ sufficient time to accumulate potentially multiple NACKs from the
+ receiver set. This allows the sender to determine the most efficient
+ repair strategy for a given transport stream/object or FEC coding
+ block. Depending upon the approach used, some protocols may find it
+ beneficial for the sender to provide an indicator of pending repair
+ transmissions as part of its current transmitted message content.
+ This can aid some NACK suppression mechanisms. The amount of time to
+ perform this NACK aggregation should be sufficient to allow for the
+ maximum receiver NACK backoff window (""T_maxBackoff"" from Section
+ 3.2.2) and propagation of NACK messages from the receivers to the
+ sender. Note the maximum transmission delay of a message from a
+ receiver to the sender may be approximately "(1*GRTT)" in the case of
+ very asymmetric network topology with respect to transmission delay.
+ Thus, if the maximum receiver NACK backoff time is "T_maxBackoff =
+ K*GRTT", the sender NACK aggregation period should be equal to at
+ least:
+
+ T_sndrAggregate = T_maxBackoff + 1*GRTT = (K+1)*GRTT
+
+ Immediately after the sender NACK aggregation period, the sender will
+ begin transmitting repair content determined from the aggregate NACK
+ state and continue with any new transmission. Also, at this time,
+ the sender should observe a "hold-off" period where it constrains
+ itself from initiating a new NACK aggregation period to allow
+ propagation of the new transmission sequence position due to the
+ repair response to the receiver group. To allow for worst case
+ asymmetry, this "hold-off" time should be:
+
+ T_sndrHoldoff = 1*GRTT
+
+ Recall that the receivers will also employ a "hold-off" timeout after
+ generating a NACK message to allow time for the sender's response.
+ Given a sender "<T_sndrAggregate>" plus "<T_sndrHoldoff>" time of
+ "(K+1)*GRTT", the receivers should use hold-off timeouts of:
+
+ T_rcvrHoldoff = T_sndrAggregate + T_sndrHoldoff = (K+2)*GRTT
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 24]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ This allows for a worst-case propagation time of the receiver's NACK
+ to the sender, the sender's aggregation time, and propagation of the
+ sender's response back to the receiver. Additionally, in the case of
+ unicast feedback from the receiver set, it may be useful for the
+ sender to forward (via multicast) a representation of its aggregated
+ NACK content to the group to allow for NACK suppression when there is
+ not multicast connectivity among the receiver set.
+
+ At the expiration of the "<T_sndrAggregate>" timeout, the sender will
+ begin transmitting repair messages according to the accumulated
+ content of NACKs received. There are some guidelines with regards to
+ FEC-based repair and the ordering of the repair response from the
+ sender that can improve reliable multicast efficiency:
+
+ When FEC is used, it is beneficial that the sender transmit
+ previously untransmitted parity content as repair messages whenever
+ possible. This maximizes the receiving nodes' ability to reconstruct
+ the entire transmitted content from their individual subsets of
+ received messages.
+
+ The transmitted object and/or stream data and repair content should
+ be indexed with monotonically increasing sequence numbers (within a
+ reasonably large ordinal space). If the sender observes the
+ discipline of transmitting repair for the earliest content (e.g.,
+ ordinally lowest FEC blocks) first, the receivers can use a strategy
+ of withholding repair requests for later content until the sender
+ once again returns to that point in the object/stream transmission
+ sequence. This can increase overall message efficiency among the
+ group and help keep repair cycles relatively synchronized without
+ dependence upon strict time synchronization among the sender and
+ receivers. This also helps minimize the buffering requirements of
+ receivers and senders and reduces redundant transmission of data to
+ the group at large.
+
+ Inputs:
+
+ 1. Receiver NACK messages.
+
+ 2. Group timing information.
+
+ Outputs:
+
+ 1. Repair messages (FEC and/or Data content retransmission).
+
+ 2. Advertisement of current pending repair transmissions when
+ unicast receiver feedback is detected.
+
+
+
+
+
+Adamson, et al. Standards Track [Page 25]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+3.3. Multicast Receiver Join Policies and Procedures
+
+ Consideration should be given to the policies and procedures by which
+ new receivers join a group (perhaps where reliable transmission is
+ already in progress) and begin requesting repair. If receiver joins
+ are unconstrained, the dynamics of group membership may impede the
+ application's ability to meet its goals for forward progression of
+ data transmission. Policies that limit the opportunities for
+ receivers to begin participating in the NACK process may be used to
+ achieve the desired behavior. For example, it may be beneficial for
+ receivers to attempt reliable reception from a newly-heard sender
+ only upon non-repair transmissions of data in the first FEC block of
+ an object or logical portion of a stream. The sender may also
+ implement policies limiting the receivers from which it will accept
+ NACK requests, but this may be prohibitive for scalability reasons in
+ some situations. Alternatively, it may be desirable to have a looser
+ transport synchronization policy and rely upon session management
+ mechanisms to limit group dynamics that can cause poor performance in
+ some types of bulk transfer applications (or for potential
+ interactive reliable multicast applications).
+
+ Inputs:
+
+ 1. Current object/stream data/repair content and sequencing
+ identifiers from sender transmissions.
+
+ Outputs:
+
+ 1. Receiver yes/no decision to begin receiving and NACKing for
+ reliable reception of data.
+
+3.4. Node (Member) Identification
+
+ In a NACK-based reliable multicast protocol (or other multicast
+ protocols) where there is the potential for multiple sources of data,
+ it is necessary to provide some mechanism to uniquely identify the
+ sources (and possibly some or all receivers) within the group.
+ Receivers that send NACK messages to the group will need to identify
+ the sender to which the NACK is intended. Identity based on arriving
+ packet source addresses is insufficient for several reasons. These
+ reasons include routing changes for hosts with multiple interfaces
+ that result in different packet source addresses for a given host
+ over time, network address translation (NAT) or firewall devices, or
+ other transport/network bridging approaches. As a result, some type
+ of unique source identifier <sourceId> field SHOULD be present in
+ packets transmitted by reliable multicast session members.
+
+
+
+
+
+Adamson, et al. Standards Track [Page 26]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+3.5. Data Content Identification
+
+ The data and repair content transmitted by a NACK-based reliable
+ multicast sender requires some form of identification in the protocol
+ header fields. This identification is required to facilitate the
+ reliable NACK-oriented repair process. These identifiers will also
+ be used in NACK messages generated. This building block document
+ assumes two very general types of data that may comprise bulk
+ transfer session content. One type is static, discrete objects of
+ finite size and the other is continuous non-finite streams. A given
+ application may wish to reliably multicast data content using either
+ one or both of these paradigms. While it may be possible for some
+ applications to further generalize this model and provide mechanisms
+ to encapsulate static objects as content embedded within a stream,
+ there are advantages in many applications to provide distinct support
+ for static bulk objects and messages with the context of a reliable
+ multicast session. These applications may include content caching
+ servers, file transfer, or collaborative tools with bulk content.
+ Applications with requirements for these static object types can then
+ take advantage of transport layer mechanisms (i.e., segmentation/
+ reassembly, caching, integrated forward error correction coding,
+ etc.) rather than being required to provide their own mechanisms for
+ these functions at the application layer.
+
+ As noted, some applications may alternatively desire to transmit bulk
+ content in the form of one or more streams of non-finite size.
+ Example streams include continuous quasi-real-time message broadcasts
+ (e.g., stock ticker) or some content types that are part of
+ collaborative tools or other applications. And, as indicated above,
+ some applications may wish to encapsulate other bulk content (e.g.,
+ files) into one or more streams within a multicast session.
+
+ The components described within this building block document are
+ envisioned to be applicable to both of these models with the
+ potential for a mix of both types within a single multicast session.
+ To support this requirement, the normal data content identification
+ should include a field to uniquely identify the object or stream
+ (e.g., <objectId>) within some reasonable temporal or ordinal
+ interval. Note that it is not expected that this data content
+ identification will be globally unique. It is expected that the
+ object/stream identifier will be unique with respect to a given
+ sender within the reliable multicast session and during the time that
+ sender is supporting a specific transport instance of that object or
+ stream.
+
+ Since "bulk" object/stream content usually requires segmentation,
+ some form of segment identification must also be provided. This
+ segment identifier will be relative to any object or stream
+
+
+
+Adamson, et al. Standards Track [Page 27]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ identifier that has been provided. Thus, in some cases, NACK-based
+ reliable multicast protocol instantiations may be able to receive
+ transmissions and request repair for multiple streams and one or more
+ sets of static objects in parallel. For protocol instantiations
+ employing FEC, the segment identification portion of the data content
+ identifier may consist of a logical concatenation of a coding block
+ identifier <sourceBlockNumber> and an identifier for the specific
+ data or parity symbol <encodingSymbolId> of the code block. The FEC
+ Basic Schemes building block [FECSchemes] and descriptions of
+ additional FEC schemes that may be documented later provide a
+ standard message format for identifying FEC transmission content.
+ NACK-based reliable multicast protocol instantiations using FEC
+ SHOULD follow such guidelines.
+
+ Additionally, flags to determine the usage of the content identifier
+ fields (e.g., stream vs. object) may be applicable. Flags may also
+ serve other purposes in data content identification. It is expected
+ that any flags defined will be dependent upon individual protocol
+ instantiations.
+
+ In summary, the following data content identification fields may be
+ required for NACK-based reliable multicast protocol data content
+ messages:
+
+ 1. Source node identifier (<sourceId>).
+
+ 2. Object/Stream identifier (<objectId>), if applicable.
+
+ 3. FEC Block identifier (<sourceBlockNumber>), if applicable.
+
+ 4. FEC Symbol identifier (<encodingSymbolId>).
+
+ 5. Flags to differentiate interpretation of identifier fields or
+ identifier structure that implicitly indicates usage.
+
+ 6. Additional FEC transmission content fields per FEC Building
+ Block.
+
+ These fields have been identified because any generated NACK messages
+ will use these identifiers in requesting repair or retransmission of
+ data.
+
+3.6. Forward Error Correction (FEC)
+
+ Multiple forward error correction (FEC) approaches using erasure
+ coding techniques have been identified that can provide great
+ performance enhancements to the repair process of NACK-oriented and
+ other reliable multicast protocols [FecBroadcast], [RmFec],
+
+
+
+Adamson, et al. Standards Track [Page 28]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ [RFC3453]. NACK-based reliable multicast protocols can reap
+ additional benefits since FEC-based repair does not generally require
+ explicit knowledge of repair content within the bounds of its coding
+ block size (in symbols). In NACK-based reliable multicast, parity
+ repair packets generated will generally be transmitted only in
+ response to NACK repair requests from receiving nodes. However,
+ there are benefits in some network environments for transmitting some
+ predetermined quantity of FEC repair packets multiplexed with the
+ regular data symbol transmissions [FecHybrid]. This can reduce the
+ amount of NACK traffic generated with relatively little overhead cost
+ when group sizes are very large or the network connectivity has a
+ large "delay*bandwidth" product with some nominal level of expected
+ packet loss. While the application of FEC is not unique to NACK-
+ based reliable multicast, these sorts of requirements may dictate the
+ types of algorithms and protocol approaches that are applicable.
+
+ A specific issue related to the use of FEC with NACK-based reliable
+ multicast is the mechanism used to identify the portion(s) of
+ transmitted data content to which specific FEC packets are
+ applicable. It is expected that FEC algorithms will be based on
+ generating a set of parity repair packets for a corresponding block
+ of transmitted data packets. Since data content packets are uniquely
+ identified by the concatenation of <sourceId::objectId::
+ sourceBlockNumber::encodingSymbolId> during transport, it is expected
+ that FEC packets will be identified in a similar manner. The FEC
+ Building Block document [RFC5052] provides detailed recommendations
+ concerning application of FEC and standard formats for related
+ reliable multicast protocol messages.
+
+3.7. Round-Trip Timing Collection
+
+ The measurement of packet propagation round-trip time (RTT) among
+ members of the group is required to support timer-based NACK
+ suppression algorithms, timing of sender commands or certain repair
+ functions, and congestion control operation. The nature of the
+ round-trip information collected is dependent upon the type of
+ interaction among the members of the group. In the case of "one-to-
+ many" transmission, it may be that only the sender requires RTT
+ knowledge of the GRTT and/or RTT knowledge of only a portion of the
+ group. Here, the GRTT information might be collected in a reasonably
+ scalable manner. For congestion control operation, it is possible
+ that each receiver in the group may need knowledge of its individual
+ RTT. In this case, an alternative RTT collection scheme may be
+ utilized where receivers collect individual RTT measurements with
+ respect to the sender(s) and advertise them to the group or
+ sender(s). Where it is likely that exchange of reliable multicast
+ data will occur among the group on a "many-to-many" basis, there are
+ alternative measurement techniques that might be employed for
+
+
+
+Adamson, et al. Standards Track [Page 29]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ increased efficiency [DelayEstimation]. In some cases, there might
+ be absolute time synchronization available among the participating
+ hosts that may simplify RTT measurement. There are trade-offs in
+ multicast congestion control design that require further
+ consideration before a universal recommendation on RTT (or GRTT)
+ measurement can be specified. Regardless of how the RTT information
+ is collected (and more specifically GRTT) with respect to congestion
+ control or other requirements, the sender will need to advertise its
+ current GRTT estimate to the group for various NACK timeouts used by
+ receivers.
+
+3.7.1. One-to-Many Sender GRTT Measurement
+
+ The goal of this form of RTT measurement is for the sender to
+ estimate the GRTT among the receivers who are actively participating
+ in NACK-based reliable multicast operation. The set of receivers
+ participating in this process may be the entire group or some subset
+ of the group determined from another mechanism within the protocol
+ instantiation. An approach to collect this GRTT information follows.
+
+ The sender periodically polls the group with a message (independent
+ or "piggy-backed" with other transmissions) containing a "<sendTime>"
+ timestamp relative to an internal clock at the sender. Upon
+ reception of this message, the receivers will record this
+ "<sendTime>" timestamp and the time (referenced to their own clocks)
+ at which it was received "<recvTime>". When the receiver provides
+ feedback to the sender (either explicitly or as part of other
+ feedback messages depending upon protocol instantiation
+ specification), it will construct a "response" using the formula:
+
+ grttResponse = sendTime + (currentTime - recvTime)
+
+ where the "<sendTime>" is the timestamp from the last probe message
+ received from the source and the ("<currentTime> - <recvTime>") is
+ the amount of time differential since that request was received until
+ the receiver generated the response.
+
+ The sender processes each receiver response by calculating a current
+ RTT measurement for the receiver from whom the response was received
+ using the following formula:
+
+ RTT_rcvr = currentTime - grttResponse
+
+ During each periodic "GRTT" probing interval, the source keeps the
+ peak round-trip timing measurement ("RTT_peak") from the set of
+ responses it has received. A conservative estimate of "GRTT" is kept
+
+
+
+
+
+Adamson, et al. Standards Track [Page 30]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ to maximize the efficiency of redundant NACK suppression and repair
+ aggregation. The update to the source's ongoing estimate of "GRTT"
+ is done observing the following rules:
+
+ 1. If a receiver's response round-trip time ("RTT_rcvr") is greater
+ than the current "GRTT" estimate, the "GRTT" is immediately
+ updated to this new peak value:
+
+ GRTT = RTT_rcvr
+
+ 2. At the end of the response collection period (i.e., the GRTT
+ probe interval), if the recorded "peak" response ("RTT_peak") is
+ less than the current GRTT estimate, the GRTT is updated to:
+
+ GRTT = MAX(0.9*GRTT, RTT_peak)
+
+ 3. If no feedback is received, the sender "GRTT" estimate remains
+ unchanged.
+
+ 4. At the end of the response collection period, the peak tracking
+ value ("RTT_peak") is reset to ZERO for subsequent peak
+ detection.
+
+ The GRTT collection period (i.e., period of probe transmission) could
+ be fixed at a value on the order of that expected for group
+ membership and/or network topology dynamics. For robustness, more
+ rapid probing could be used at protocol startup before settling to a
+ less frequent, steady-state interval. Optionally, an algorithm may
+ be developed to adjust the GRTT collection period dynamically in
+ response to the current estimate of GRTT (or variations in it) and to
+ an estimation of packet loss. The overhead of probing messages could
+ then be reduced when the GRTT estimate is stable and unchanging, but
+ be adjusted to track more dynamically during periods of variation
+ with correspondingly shorter GRTT collection periods. GRTT
+ collection MAY also be coupled with collection of other information
+ for congestion control purposes.
+
+ In summary, although NACK repair cycle timeouts are based on GRTT, it
+ should be noted that convergent operation of the protocol does not
+ depend upon highly accurate GRTT estimation. The current mechanism
+ has proved sufficient in simulations and in the environments where
+ NACK-based reliable multicast protocols have been deployed to date.
+ The estimate provided by the given algorithm tracks the peak envelope
+ of actual GRTT (including operating system effect as well as network
+ delays) even in relatively high loss connectivity. The steady-state
+ probing/update interval may potentially be varied to accommodate
+ different levels of expected network dynamics in different
+ environments.
+
+
+
+Adamson, et al. Standards Track [Page 31]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+3.7.2. One-to-Many Receiver RTT Measurement
+
+ In this approach, receivers send messages with timestamps to the
+ sender. To control the volume of these receiver-generated messages,
+ a suppression mechanism similar to that described for NACK
+ suppression my be used. The "age" of receivers' RTT measurement
+ should be kept by receivers and used as a metric in competing for
+ feedback opportunities in the suppression scheme. For example,
+ receiver who have not made any RTT measurement or whose RTT
+ measurement has aged most should have precedence over other
+ receivers. In turn, the sender may have limited capacity to provide
+ an "echo" of the receiver timestamps back to the group, and it could
+ use this RTT "age" metric to determine which receivers get
+ precedence. The sender can determine the "GRTT" as described in
+ 3.7.1 if it provides sender timestamps to the group. Alternatively,
+ receivers who note their RTT is greater than the sender GRTT can
+ compete in the feedback opportunity/suppression scheme to provide the
+ sender and group with this information.
+
+3.7.3. Many-to-Many RTT Measurement
+
+ For reliable multicast sessions that involve multiple senders, it may
+ be useful to have RTT measurements occur on a true "many-to-many"
+ basis rather than have each sender independently tracking RTT. Some
+ protocol efficiency can be gained when receivers can infer an
+ approximation of their RTT with respect to a sender based on RTT
+ information they have on another sender and that other sender's RTT
+ with respect to the new sender of interest. For example, for
+ receiver "a" and senders "b" and "c", it is likely that:
+
+ RTT(a<->b) <= RTT(a<->c)) + RTT(b<->c)
+
+ Further refinement of this estimate can be conducted if RTT
+ information is available to a node concerning its own RTT with
+ respect to a small subset of other group members and if information
+ concerning RTT among those other group members is learned by the node
+ during protocol operation.
+
+3.7.4. Sender GRTT Advertisement
+
+ To facilitate deterministic protocol operation, the sender should
+ robustly advertise its current estimation of "GRTT" to the receiver
+ set. Common, robust knowledge of the sender's current operating GRTT
+ estimate among the group will allow the protocol to progress in its
+ most efficient manner. The sender's GRTT estimate can be robustly
+ advertised to the group by simply embedding the estimate into all
+ pertinent messages transmitted by the sender. The overhead of this
+ can be made quite small by quantizing (compressing) the GRTT estimate
+
+
+
+Adamson, et al. Standards Track [Page 32]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ to a single byte of information. The following C-language functions
+ allow this to be done over a wide range ("RTT_MIN" through "RTT_MAX")
+ of GRTT values while maintaining a greater range of precision for
+ small values and less precision for large values. Values of 1.0e-06
+ seconds and 1000 seconds are RECOMMENDED for "RTT_MIN" and "RTT_MAX"
+ respectively. NACK-based reliable multicast applications may wish to
+ place an additional, smaller upper limit on the GRTT advertised by
+ senders to meet application data delivery latency constraints at the
+ expense of greater feedback volume in some network environments.
+
+ unsigned char QuantizeGrtt(double grtt)
+ {
+ if (grtt > RTT_MAX)
+ grtt = RTT_MAX;
+ else if (grtt < RTT_MIN)
+ grtt = RTT_MIN;
+ if (grtt < (33*RTT_MIN))
+ return ((unsigned char)(grtt / RTT_MIN) - 1);
+ else
+ return ((unsigned char)(ceil(255.0 -
+ (13.0 * log(RTT_MAX/grtt)))));
+ }
+
+ double UnquantizeRtt(unsigned char qrtt)
+ {
+ return ((qrtt <= 31) ?
+ (((double)(qrtt+1))*(double)RTT_MIN) :
+ (RTT_MAX/exp(((double)(255-qrtt))/(double)13.0)));
+ }
+
+ Note that this function is useful for quantizing GRTT times in the
+ range of 1 microsecond to 1000 seconds. Of course, NACK-based
+ reliable multicast protocol implementations may wish to further
+ constrain advertised GRTT estimates (e.g., limit the maximum value)
+ for practical reasons.
+
+3.8. Group Size Determination/Estimation
+
+ When NACK-based reliable multicast protocol operation includes
+ mechanisms that excite feedback from the group at large (e.g.,
+ congestion control), it may be possible to roughly estimate the group
+ size based on the number of feedback messages received with respect
+ to the distribution of the probabilistic suppression mechanism used.
+ Note the timer-based suppression mechanism described in this document
+ does not require a very accurate estimate of group size to perform
+ adequately. Thus, a rough estimate, particularly if conservatively
+ managed, may suffice. Group size may also be determined
+ administratively. In absence of any group size determination
+
+
+
+Adamson, et al. Standards Track [Page 33]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ mechanism, a default group size value of 10,000 is RECOMMENDED for
+ reasonable management of feedback given the scalability of expected
+ NACK-based reliable multicast usage. This conservative estimate
+ (over-estimate) of group size in the algorithms described above will
+ result in some added latency to the NACK repair process if the actual
+ group size is smaller but with a guarantee of feedback implosion
+ protection. The study of the timer-based feedback suppression
+ mechanism described in [McastFeedback] and [NormFeedback] showed that
+ the group size estimate need only be with an order-of-magnitude to
+ provide effective suppression performance.
+
+3.9. Congestion Control Operation
+
+ Congestion control that fairly shares available network capacity with
+ other reliable multicast and TCP instantiations is REQUIRED for
+ general Internet operation. The TCP-Friendly Multicast Congestion
+ Control (TFMCC) [TfmccPaper] or Pragmatic General Multicast
+ Congestion Control (PGMCC) [PgmccPaper] techniques can be applied to
+ NACK-based reliable multicast operation to meet this requirement.
+ The former technique has been further documented in [RFC4654] and has
+ been successfully applied in the NACK-Oriented Reliable Multicast
+ Protocol (NORM) [RFC3940].
+
+3.10. Intermediate System Assistance
+
+ NACK-based multicast protocols may benefit from general purpose
+ intermediate system assistance. In particular, additional NACK
+ suppression where intermediate systems can aggregate NACK content (or
+ filter duplicate NACK content) from receivers as it is relayed toward
+ the sender could enhance NORM group size scalability. For NACK-based
+ reliable multicast protocols using FEC, it is possible that
+ intermediate systems may be able to filter FEC repair messages to
+ provide an intelligent "subcast" of repair content to different legs
+ of the multicast topology depending on the repair needs learned from
+ previous receiver NACKs. Similarly, intermediate systems could
+ monitor receiver NACKs and provide repair transmissions on-demand in
+ response if sufficient state on the content being transmitted was
+ being maintained. This can reduce the latency and volume of repair
+ transmissions when the intermediate system is associated with a
+ network link that is particularly problematic with respect to packet
+ loss. These types of assist functions would require intermediate
+ system interpretation of transport data unit content identifiers and
+ flags. NACK-based protocol designs should consider the potential for
+ intermediate system assistance in the specification of protocol
+ messages and operations. It is likely that intermediate systems
+ assistance will be more pragmatic if message parsing requirements are
+ modest and if the amount of state an intermediate system is required
+ to maintain is relatively small.
+
+
+
+Adamson, et al. Standards Track [Page 34]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+4. NACK-Based Reliable Multicast Applicability
+
+ The Multicast NACK building block applies to protocols wishing to
+ employ negative acknowledgement to achieve reliable data transfer.
+ Properly designed NACK-based reliable multicast protocols offer
+ scalability advantages for applications and/or network topologies
+ where, for various reasons, it is prohibitive to construct a higher
+ order delivery infrastructure above the basic Layer 3 IP multicast
+ service (e.g., unicast or hybrid unicast/multicast data distribution
+ trees). Additionally, the multicast scalability property of NACK-
+ based protocols [RmComparison], [RmClasses] is applicable where broad
+ "fan-out" is expected for a single network hop (e.g., cable-TV data
+ delivery, satellite, or other broadcast communication services).
+ Furthermore, the simplicity of a protocol based on "flat" group-wide
+ multicast distribution may offer advantages for a broad range of
+ distributed services or dynamic networks and applications. NACK-
+ based reliable multicast protocols can make use of reciprocal (among
+ senders and receivers) multicast communication under the any-source
+ multicast (ASM) model defined in RFC 1112 [RFC1112], and are capable
+ of scalable operation in asymmetric topologies, such as source-
+ specific multicast (SSM) [RFC4607], where there may only be unicast
+ routing service from the receivers to the sender(s).
+
+ NACK-based reliable multicast protocol operation is compatible with
+ transport layer forward error correction coding techniques as
+ described in [RFC3453] and congestion control mechanisms such as
+ those described in [TfmccPaper] and [PgmccPaper]. A principal
+ limitation of NACK-based reliable multicast operation involves group
+ size scalability when network capacity for receiver feedback is very
+ limited. It is possible that, with proper protocol design, the
+ intermediate system assistance techniques mentioned in Section 2.4
+ and described further in Section 3.10 can allow NACK-based approaches
+ to scale to larger group sizes. NACK-based reliable multicast
+ operation is also governed by implementation buffering constraints.
+ Buffering greater than that required for typical point-to-point
+ reliable transport (e.g., TCP) is recommended to allow for disparity
+ in the receiver group connectivity and to allow for the feedback
+ delays required to attain group size scalability.
+
+ Prior experimental work included various protocol instantiations that
+ implemented some of the concepts described in this building block
+ document. This includes the Pragmatic General Multicast (PGM)
+ protocol described in [RFC3208] as well as others that were
+ documented or deployed outside of IETF activities. While the PGM
+ protocol specification and some other approaches encompassed many of
+ the goals of bulk data delivery as described here, this NACK-based
+ building block provides a more generalized framework so that
+ different application needs can be met by different protocol
+
+
+
+Adamson, et al. Standards Track [Page 35]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ instantiation variants. The NACK-based building block approach
+ described here includes compatibility with the other protocol
+ mechanisms including FEC and congestion control that are described in
+ other IETF reliable multicast building block documents. The NACK
+ repair process described in this document can provide performance
+ advantages compared to PGM when both are deployed on a pure end-to-
+ end basis without intermediate system assistance. The round-trip
+ timing estimation described here and its use in the NACK repair
+ process allow protocol operation to more automatically adapt to
+ different network environments or operate within environments where
+ connectivity is dynamic. Use of the FEC payload identification
+ techniques described in the FEC building block [RFC5052] and specific
+ FEC instantiations allow protocol instantiations more flexibility as
+ FEC techniques evolve than the specific sequence number data
+ identification scheme described in the PGM specification. Similar
+ flexibility is expected if protocol instantiations are designed to
+ modularly invoke (at design time, if not run-time) the appropriate
+ congestion control building block for different application or
+ deployment purposes.
+
+5. Security Considerations
+
+ NACK-based reliable multicast protocols are expected to be subject to
+ the same security vulnerabilities as other IP and IP multicast
+ protocols. However, unlike point-to-point (unicast) transport
+ protocols, it is possible that one badly behaving participant can
+ impact the transport service experience of others in the group. For
+ example, a malicious receiver node could intentionally transmit NACK
+ messages to cause the sender(s) to unnecessarily transmit repairs
+ instead of making forward progress with reliable transfer. Also,
+ group-wise messaging to support congestion control or other aspects
+ of protocol operation may be subject to similar vulnerabilities.
+ Thus, it is highly RECOMMENDED that security techniques such as
+ authentication and data integrity checks be applied for NACK-based
+ reliable multicast deployments. Protocol instantiations using this
+ building block MUST identify approaches to security that can be used
+ to address these and other security considerations.
+
+ NACK-based reliable multicast is compatible with IP security (IPsec)
+ authentication mechanisms [RFC4301] that are RECOMMENDED for
+ protection against session intrusion and denial of service attacks.
+ A particular threat for NACK-based protocols is that of NACK replay
+ attacks, which could prevent a multicast sender from making forward
+ progress in transmission. Any standard IPsec mechanisms that can
+ provide protection against such replay attacks are RECOMMENDED for
+ use. The IETF Multicast Security (MSEC) Working Group has developed
+ a set of recommendations in its "Multicast Extensions to the Security
+ Architecture for the Internet Protocol" [IpsecExtensions] that can be
+
+
+
+Adamson, et al. Standards Track [Page 36]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ applied to appropriately extend IPsec mechanisms to multicast
+ operation. An appendix of this document specifically addresses the
+ NACK-Oriented Reliable Multicast protocol service model. As complete
+ support for IPsec multicast operation may potentially follow reliable
+ multicast deployment, NACK-based reliable multicast protocol
+ instantiations SHOULD consider providing support for their own NACK
+ replay attack protection when network layer mechanisms are not
+ available. This MAY be necessary when IPsec implementations are used
+ that do not provide multicast replay attack protection when multiple
+ sources are present.
+
+ For NACK-based multicast deployments with large receiver groups using
+ IPsec, approaches might be developed that use shared, common keys for
+ receiver-originated protocol messages to maintain a practical number
+ of IPsec Security Associations (SAs). However, such group-based
+ authentication may not be sufficient unless the receiver population
+ can be completely trusted. Additionally, this can make
+ identification of badly behaving (although authenticated) receiver
+ nodes problematic as such nodes could potentially masquerade as other
+ receivers in the group. In deployments such as this, one SHOULD
+ consider use of source-specific multicast (SSM) instead of any-source
+ multicast (ASM) models of multicast operation. SSM operation can
+ simplify security challenges in a couple of ways:
+
+ 1. A NACK-based protocol supporting SSM operation can eliminate
+ direct receiver-to-receiver signaling. This dramatically reduces
+ the number of security associations that need to be established.
+
+ 2. The SSM sender(s) can provide a centralized management point for
+ secure group operation for its respective data flow as the sender
+ alone is required to conduct individual host authentication for
+ each receiver when group-based authentication does not suffice or
+ is not pragmatic to deploy.
+
+ When individual host authentication is required, then it is possible
+ receivers could use a digital signature on the IPsec Encapsulating
+ Security Protocol (ESP) payload as described in [RFC4359]. Either an
+ identity-based signature system or a group-specific public key
+ infrastructure could avoid per-receiver state at the sender(s).
+ Additionally, implementations MUST also support policies to limit the
+ impact of extremely or exceptionally poor-performing (due to bad
+ behavior or otherwise) receivers upon overall group operation if this
+ is acceptable for the relevant application.
+
+ As described in Section 3.4, deployment of NACK-based reliable
+ multicast in some network environments may require identification of
+ group members beyond that of IP addressing. If protocol-specific
+ security mechanisms are developed, then it is RECOMMENDED that
+
+
+
+Adamson, et al. Standards Track [Page 37]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ protocol group member identifiers are used as selectors (as defined
+ in [RFC4301]) for the applicable security associations. When IPsec
+ is used, it is RECOMMENDED that the protocol implementation verify
+ that the source IP addresses of received packets are valid for the
+ given protocol source identifier in addition to usual IPsec
+ authentication. This would prevent a badly behaving (although
+ authorized) member from spoofing messages from other legitimate
+ members, provided that individual host authentication is supported.
+
+ The MSEC Working Group has also developed automated group keying
+ solutions that are applicable to NACK-based reliable multicast
+ security. For example, to support IPsec or other security
+ mechanisms, the Group Secure Association Key Management Protocol
+ [RFC4535] MAY be used for automated group key management. The
+ technique it identifies for "Group Establishment for Receive-Only
+ Members" may be application NACK-based reliable multicast SSM
+ operation.
+
+6. Changes from RFC 3941
+
+ This section lists the changes between the Experimental version of
+ this specification, [RFC3941], and this version:
+
+ 1. Change of title to avoid confusion with NORM Protocol
+ specification,
+
+ 2. Updated references to related, updated RMT Building Block
+ documents, and
+
+ 3. More detailed security considerations.
+
+7. Acknowledgements
+
+ (and these are not Negative)
+
+ The authors would like to thank George Gross, Rick Jones, and Joerg
+ Widmer for their valuable comments on this document. The authors
+ would also like to thank the RMT working group chairs, Roger Kermode
+ and Lorenzo Vicisano, for their support in development of this
+ specification, and Sally Floyd for her early inputs into this
+ document.
+
+
+
+
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 38]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+8. References
+
+8.1. Normative References
+
+ [RFC1112] Deering, S., "Host extensions for IP
+ multicasting", STD 5, RFC 1112, August 1989.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to
+ Indicate Requirement Levels", BCP 14, RFC 2119,
+ March 1997.
+
+ [RFC4607] Holbrook, H. and B. Cain, "Source-Specific
+ Multicast for IP", RFC 4607, August 2006.
+
+8.2. Informative References
+
+ [ArchConsiderations] Clark, D. and D. Tennenhouse, "Architectural
+ Considerations for a New Generation of
+ Protocols", Proc. ACM SIGCOMM, pp. 201-208,
+ September 1990.
+
+ [DelayEstimation] Ozdemir, V., Muthukrishnan, S., and I. Rhee,
+ "Scalable, Low-Overhead Network Delay
+ Estimation", NCSU/AT&T White Paper,
+ February 1999.
+
+ [FECSchemes] Watson, M., "Basic Forward Error Correction
+ (FEC) Schemes", Work in Progress, July 2008.
+
+ [FecBroadcast] Metzner, J., "An Improved Broadcast
+ Retransmission Protocol", IEEE Transactions on
+ Communications Vol. Com-32, No. 6, June 1984.
+
+ [FecHybrid] Gossink, D. and J. Macker, "Reliable Multicast
+ and Integrated Parity Retransmission with
+ Channel Estimation", IEEE Globecomm 1998, 1998.
+
+ [FecSchemes] Lacan, J., Roca, V., Peltotalo, J., and S.
+ Peltotalo, "Reed-Solomon Forward Error
+ Correction (FEC) Schemes", Work in Progress,
+ November 2007.
+
+ [IpsecExtensions] Weis, B., Gross, G., and D. Ignjatic,
+ "Multicast Extensions to the Security
+ Architecture for the Internet Protocol", Work
+ in Progress, June 2008.
+
+
+
+
+
+Adamson, et al. Standards Track [Page 39]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ [McastFeedback] Nonnenmacher, J. and E. Biersack, "Optimal
+ Multicast Feedback", IEEE Infocom p. 964,
+ March/April 1998.
+
+ [NormFeedback] Adamson, B. and J. Macker, "Quantitative
+ Prediction of NACK-Oriented Reliable Multicast
+ (NORM) Feedback", IEEE MILCOM 2002,
+ October 2002.
+
+ [PgmccPaper] Rizzo, L., "pgmcc: A TCP-Friendly Single-Rate
+ Multicast Congestion Control Scheme", ACM
+ SIGCOMM 2000, August 2000.
+
+ [RFC2357] Mankin, A., Romanov, A., Bradner, S., and V.
+ Paxson, "IETF Criteria for Evaluating Reliable
+ Multicast Transport and Application Protocols",
+ RFC 2357, June 1998.
+
+ [RFC3208] Speakman, T., Crowcroft, J., Gemmell, J.,
+ Farinacci, D., Lin, S., Leshchiner, D., Luby,
+ M., Montgomery, T., Rizzo, L., Tweedly, A.,
+ Bhaskar, N., Edmonstone, R., Sumanasekera, R.,
+ and L. Vicisano, "PGM Reliable Transport
+ Protocol Specification", RFC 3208,
+ December 2001.
+
+ [RFC3269] Kermode, R. and L. Vicisano, "Author Guidelines
+ for Reliable Multicast Transport (RMT) Building
+ Blocks and Protocol Instantiation documents",
+ RFC 3269, April 2002.
+
+ [RFC3453] Luby, M., Vicisano, L., Gemmell, J., Rizzo, L.,
+ Handley, M., and J. Crowcroft, "The Use of
+ Forward Error Correction (FEC) in Reliable
+ Multicast", RFC 3453, December 2002.
+
+ [RFC3940] Adamson, B., Bormann, C., Handley, M., and J.
+ Macker, "Negative-acknowledgment (NACK)-
+ Oriented Reliable Multicast (NORM) Protocol",
+ RFC 3940, November 2004.
+
+ [RFC3941] Adamson, B., Bormann, C., Handley, M., and J.
+ Macker, "Negative-Acknowledgment (NACK)-
+ Oriented Reliable Multicast (NORM) Building
+ Blocks", RFC 3941, November 2004.
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 40]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+ [RFC4301] Kent, S. and K. Seo, "Security Architecture for
+ the Internet Protocol", RFC 4301,
+ December 2005.
+
+ [RFC4359] Weis, B., "The Use of RSA/SHA-1 Signatures
+ within Encapsulating Security Payload (ESP) and
+ Authentication Header (AH)", RFC 4359,
+ January 2006.
+
+ [RFC4535] Harney, H., Meth, U., Colegrove, A., and G.
+ Gross, "GSAKMP: Group Secure Association Key
+ Management Protocol", RFC 4535, June 2006.
+
+ [RFC4654] Widmer, J. and M. Handley, "TCP-Friendly
+ Multicast Congestion Control (TFMCC): Protocol
+ Specification", RFC 4654, August 2006.
+
+ [RFC5052] Watson, M., Luby, M., and L. Vicisano, "Forward
+ Error Correction (FEC) Building Block",
+ RFC 5052, August 2007.
+
+ [RmClasses] Levine, B. and J. Garcia-Luna-Aceves, "A
+ Comparison of Known Classes of Reliable
+ Multicast Protocols", Proc. International
+ Conference on Network Protocols (ICNP-
+ 96) Columbus, OH, October 1996.
+
+ [RmComparison] Pingali, S., Towsley, D., and J. Kurose, "A
+ Comparison of Sender-Initiated and Receiver-
+ Initiated Reliable Multicast Protocols", Proc.
+ INFOCOMM San Francisco, CA, October 1993.
+
+ [RmFec] Macker, J., "Reliable Multicast Transport and
+ Integrated Erasure-based Forward Error
+ Correction", IEEE MILCOM 1997, October 1997.
+
+ [SrmFramework] Floyd, S., Jacobson, V., McCanne, S., Liu, C.,
+ and L. Zhang, "A Reliable Multicast Framework
+ for Light-weight Sessions and Application Level
+ Framing", Proc. ACM SIGCOMM, August 1995.
+
+ [TfmccPaper] Widmer, J. and M. Handley, "Extending Equation-
+ Based Congestion Control to Multicast
+ Applications", ACM SIGCOMM 2001, August 2001.
+
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 41]
+
+RFC 5401 Multicast NACK BB November 2008
+
+
+Authors' Addresses
+
+ Brian Adamson
+ Naval Research Laboratory
+ Washington, DC 20375
+
+ EMail: adamson@itd.nrl.navy.mil
+
+
+ Carsten Bormann
+ Universitaet Bremen TZI
+ Postfach 330440
+ D-28334 Bremen, Germany
+
+ EMail: cabo@tzi.org
+
+
+ Mark Handley
+ University College London
+ Gower Street
+ London, WC1E 6BT
+ UK
+
+ EMail: M.Handley@cs.ucl.ac.uk
+
+
+ Joe Macker
+ Naval Research Laboratory
+ Washington, DC 20375
+
+ EMail: macker@itd.nrl.navy.mil
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Adamson, et al. Standards Track [Page 42]
+