summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3941.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc3941.txt')
-rw-r--r--doc/rfc/rfc3941.txt2019
1 files changed, 2019 insertions, 0 deletions
diff --git a/doc/rfc/rfc3941.txt b/doc/rfc/rfc3941.txt
new file mode 100644
index 0000000..07789cb
--- /dev/null
+++ b/doc/rfc/rfc3941.txt
@@ -0,0 +1,2019 @@
+
+
+
+
+
+
+Network Working Group B. Adamson
+Request for Comments: 3941 NRL
+Category: Experimental C. Bormann
+ Universitaet Bremen TZI
+ M. Handley
+ UCL
+ J. Macker
+ NRL
+ November 2004
+
+
+ Negative-Acknowledgment (NACK)-Oriented Reliable Multicast (NORM)
+ Building Blocks
+
+Status of this Memo
+
+ This memo defines an Experimental Protocol for the Internet
+ community. It does not specify an Internet standard of any kind.
+ Discussion and suggestions for improvement are requested.
+ Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2004).
+
+Abstract
+
+ This document discusses the creation of negative-acknowledgment
+ (NACK)-oriented reliable multicast (NORM) protocols. The rationale
+ for NORM goals and assumptions are presented. Technical challenges
+ for NACK-oriented (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 NORM protocol operation. It is anticipated that
+ these building blocks will be useful in generating different
+ instantiations of reliable multicast protocols.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 1]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 2. Rationale. . . . . . . . . . . . . . . . . . . . . . . . . . . 4
+ 2.1. Delivery Service Model . . . . . . . . . . . . . . . . . 4
+ 2.2. Group Membership Dynamics . . . . . . . . . . . . . . . . 5
+ 2.3. Sender/Receiver Relationships . . . . . . . . . . . . . . 5
+ 2.4. Group Size Scalability. . . . . . . . . . . . . . . . . . 6
+ 2.5. Data Delivery Performance . . . . . . . . . . . . . . . . 6
+ 2.6. Network Environments. . . . . . . . . . . . . . . . . . . 6
+ 2.7. Router/Intermediate System Assistance . . . . . . . . . . 7
+ 3. Functionality. . . . . . . . . . . . . . . . . . . . . . . . . 7
+ 3.1. NORM Sender Transmission. . . . . . . . . . . . . . . . . 10
+ 3.2. NORM Repair Process . . . . . . . . . . . . . . . . . . . 11
+ 3.2.1. Receiver NACK Process Initiation . . . . . . . . . 11
+ 3.2.2. NACK Suppression . . . . . . . . . . . . . . . . . 13
+ 3.2.3. NACK Content . . . . . . . . . . . . . . . . . . . 17
+ 3.2.3.1. NACK and FEC Repair Strategies. . . . . . 17
+ 3.2.3.2. NACK Content Format . . . . . . . . . . . 20
+ 3.2.4. Sender Repair Response . . . . . . . . . . . . . . 21
+ 3.3. NORM Receiver Join Policies and Procedures. . . . . . . . 23
+ 3.4. Reliable Multicast Member Identification. . . . . . . . . 24
+ 3.5. Data Content Identification . . . . . . . . . . . . . . . 24
+ 3.6. Forward Error Correction (FEC). . . . . . . . . . . . . . 26
+ 3.7. Round-trip Timing Collection. . . . . . . . . . . . . . . 27
+ 3.7.1. One-to-Many Sender GRTT Measurement. . . . . . . . 27
+ 3.7.2. One-to-Many Receiver RTT Measurement . . . . . . . 29
+ 3.7.3. Many-to-Many RTT Measurement . . . . . . . . . . . 29
+ 3.7.4. Sender GRTT Advertisement. . . . . . . . . . . . . 30
+ 3.8. Group Size Determination/Estimation . . . . . . . . . . . 31
+ 3.9. Congestion Control Operation. . . . . . . . . . . . . . . 31
+ 3.10 Router/Intermediate System Assistance . . . . . . . . . . 31
+ 3.11 NORM Applicability. . . . . . . . . . . . . . . . . . . . 31
+ 4. Security Considerations. . . . . . . . . . . . . . . . . . . . 32
+ 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 33
+ 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 33
+ 6.1. Normative References. . . . . . . . . . . . . . . . . . . 33
+ 6.2. Informative References. . . . . . . . . . . . . . . . . . 33
+ 7. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 35
+ Full Copyright Statement . . . . . . . . . . . . . . . . . . . 36
+
+
+
+
+
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 2]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+1. Introduction
+
+ Reliable multicast transport is a desirable technology for the
+ 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 [3]. This
+ document addresses the creation of negative-acknowledgment (NACK)-
+ oriented reliable multicast (NORM) protocols. While different
+ protocol instantiations may be required to meet specific application
+ and network architecture demands [4], there are a number of
+ fundamental components that may be common to these different
+ instantiations. This document describes the framework and common
+ "building block" components relevant to multicast protocols based
+ primarily on NACK operation for reliable transport. While this
+ document discusses a large set of reliable multicast components and
+ issues relevant to NORM protocol design, it specifically addresses in
+ detail the following building blocks which are not addressed in other
+ IETF documents:
+
+ 1) NORM sender transmission strategies,
+
+ 2) NACK-oriented repair process with timer-based feedback
+ suppression, and
+
+ 3) Round-trip timing for adapting NORM timers.
+
+ The potential relationships to other reliable multicast transport
+ building blocks (Forward Error Correction (FEC), congestion control)
+ and general issues with NORM protocols are also discussed. This
+ document is a product of the IETF RMT WG and follows the guidelines
+ provided in RFC 3269 [5]. 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 BCP 14, RFC 2119 [1].
+
+Statement of Intent
+
+ This memo contains part of the definitions necessary to fully specify
+ a Reliable Multicast Transport protocol in accordance with RFC 2357.
+ As per RFC 2357, the use of any reliable multicast protocol in the
+ Internet requires an adequate congestion control scheme.
+
+ While waiting for such a scheme to be available, or for an existing
+ scheme to be proven adequate, the Reliable Multicast Transport
+ working group (RMT) publishes this Request for Comments in the
+ "Experimental" category.
+
+
+
+Adamson, et al. Experimental [Page 3]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ It is the intent of RMT to re-submit this specification as an IETF
+ Proposed Standard as soon as the above condition is met.
+
+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,
+ 6) Network Environments, and
+ 7) Router/Intermediate System Interactions.
+
+ All of these areas are at least briefly discussed. Additionally,
+ other reliable multicast transport building block documents such as
+ [9] have been created to address areas outside of the scope of this
+ document. NORM 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 NORM but may be used in concert
+ with the other building block areas. In some cases, a building block
+ may be able 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.
+
+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.
+ A most basic service model for reliable multicast transport is that
+ of "bulk transfer" which is a primary focus of this and other related
+
+
+
+Adamson, et al. Experimental [Page 4]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ RMT working group documents. However, the same principles in
+ protocol design may also be applied to other services 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.
+
+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.
+
+
+
+
+Adamson, et al. Experimental [Page 5]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+2.4. Group Size Scalability
+
+ Native IP multicast [2] 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-oriented protocol
+ can apply without NACK implosion problems. Research suggests that
+ NORM group sizes on the order of tens of thousands of receivers may
+ operate with modest feedback to the sender using probabilistic,
+ timer-based suppression techniques [7]. However, the potential for
+ router assistance and/or other NACK suppression heuristics may enable
+ these protocols to scale to very large 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.
+
+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 for the
+ sender of data to identify appropriate content for efficient repair
+ transmission. For example, backoff timeouts can be used to ensure
+ efficient NACK suppression and repair transmission, but this comes at
+ a 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
+
+
+
+Adamson, et al. Experimental [Page 6]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ connectivity is limited to a single source multicast (SSM) model from
+ a specific source [8]. Receivers in the group may be 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. Router/Intermediate System Assistance
+
+ While intermediate assistance from devices/systems with direct
+ knowledge of the underlying network topology may be used to leverage
+ the performance and scalability of reliable multicast protocols,
+ there will continue to be a number of instances where this 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 NORM building block
+ identification/design. This section describes different building
+ block areas applicable to NORM protocols. Some of these areas are
+ specific to NACK-oriented 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 other general building
+ block areas from the standpoint of NACK-oriented reliable multicast.
+ Where applicable, other building block documents are referenced for
+ possible contribution to NORM 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 NORM
+ building block "inputs" must be satisfied by the specific protocol
+ instantiation or implementation (e.g., application data and control).
+
+
+
+
+
+Adamson, et al. Experimental [Page 7]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ The following building block components relevant to NORM are
+ identified:
+
+ (NORM-Specific)
+ 1) NORM Sender Transmission
+ 2) NORM Repair Process
+ 3) NORM Receiver Join Policies
+ (General Purpose)
+ 4) Node (member) Identification
+ 5) Data Content Identification
+ 6) Forward Error Correction (FEC)
+ 7) Round-trip Timing Collection
+ 8) Group Size Determination/Estimation
+ 9) Congestion Control Operation
+ 10) Router/Intermediate System Assistance
+ 11) 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 8]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ Application Data and Control
+ |
+ v
+ .---------------------. .-----------------------.
+ | Node Identification |----------->| Sender Transmission |<------.
+ `---------------------' _.-' `-----------------------' |
+ .---------------------. _.-' .' | .--------------. |
+ | Data Identification |--' .'' | | Join Policy | |
+ `---------------------' .' ' v `--------------' |
+ .---------------------. .' ' .------------------------. |
+ .->| Congestion Control |-' ' | Receiver NACK | |
+ | `---------------------' .' | Repair Process | |
+ | .---------------------. .' | .------------------. | |
+ | | FEC |'. | | NACK Initiation | | |
+ | `---------------------'` `._ | `------------------' | |
+ | .---------------------. ``. `-._ | .------------------. | |
+ `--| RTT Collection |._` ` `->| | NACK Content | | |
+ `---------------------' .`- ` | `------------------' | |
+ .---------------------. \ `-`._ | .------------------. | |
+ | Group Size Est. |---.-`---`->| | NACK Suppression | | |
+ `---------------------'`. ` ` | `------------------' | |
+ .---------------------. ` ` ` `------------------------' |
+ | Other | ` ` ` | .-----------------. |
+ `---------------------' ` ` ` | |Router Assistance| |
+ `. ` ` v `-----------------' |
+ `.`' .-------------------------. |
+ `>| Sender NACK Processing |_____/
+ | and Repair Response |
+ `-------------------------'
+
+ ^ ^
+ | |
+ .-----------------------------.
+ | (Security) |
+ `-----------------------------'
+
+ Fig. 1 - NORM Building Block Framework
+
+ The components on the left side of this figure are areas that may be
+ applicable beyond NORM. The most significant of these components are
+ discussed in other building block documents such as [9]. A brief
+ description of these areas and their role in the NORM protocol is
+ given below. The components on the right are seen as specific to
+ NORM protocols, most notably the NACK repair process. These areas
+ are discussed in detail below. Some other components (e.g.,
+ "Security") impact many aspects of the protocol, and others such as
+ "Router Assistance" may be more transparent to the core protocol
+ processing. The sections below describe the "NORM Sender
+
+
+
+Adamson, et al. Experimental [Page 9]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ Transmission", "NORM Repair Process", and "RTT Collection" building
+ blocks in detail. The relationships to and among the other building
+ block areas are also discussed, focusing on issues applicable to NORM
+ protocol design. Where applicable, specific technical
+ recommendations are made for mechanisms that will properly satisfy
+ the goals of NORM transport for the Internet.
+
+3.1. NORM Sender Transmission
+
+ NORM 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 [9]. When congestion control mechanisms are needed (REQUIRED for
+ general Internet operation), NORM transmission SHALL be controlled by
+ the congestion control mechanism. In any case, it is RECOMMENDED
+ that all data transmissions from NORM 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 NORM
+ 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 NORM NACK
+ procedure. For efficiency, the sender should allow sufficient time
+ between the redundant transmissions to receive any NACK-oriented
+ 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 NORM protocol timeouts should be
+ dependent upon the group greatest round trip timing (GRTT) estimate
+
+
+
+Adamson, et al. Experimental [Page 10]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ and any expected resultant NACK or other feedback operation. The
+ NORM GRTT is an estimate of the worst-case round-trip timing from a
+ 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 given sender. NORM instantiations SHOULD be able to
+ dynamically adapt to a wide range of multicast network topologies.
+
+ Sender Transmission Interface Description
+
+ Inputs:
+
+ 1) Application data and control
+ 2) Sender node identifier
+ 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
+ NORM session.
+ 2) Commands indicating sender's status or other transport
+ control actions to be taken.
+
+3.2. NORM Repair Process
+
+ A critical component of NORM protocols is the NACK repair process.
+ This includes 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 NORM repair process:
+
+ 1) Receiver NACK process initiation,
+
+ 3) NACK suppression,
+
+ 2) NACK message content,
+
+ 4) Sender NACK processing and response.
+
+3.2.1. Receiver NACK Process Initiation
+
+ The NORM 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
+
+
+
+Adamson, et al. Experimental [Page 11]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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 NORM data content is marked to identify its
+ FEC block number and that ordinal relationship is preserved in order
+ of transmission.
+
+ 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 processor 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-base 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 current 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.
+
+ Receiver NACK Process Initiation Interface Description
+
+ Inputs:
+
+ 1) Sender data content with sequencing identifiers from sender
+ transmissions.
+ 2) History of content received from sender.
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 12]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ Outputs:
+
+ 1) NACK process initiation decision
+ 2) Recorded sender transmission sequence position.
+
+3.2.2. NACK Suppression
+
+ An effective NORM feedback suppression mechanism is the use of random
+ backoff timeouts prior to NACK transmission by receivers requiring
+ repairs [10]. Upon expiration of the backoff timeout, a receiver
+ will request repairs unless its pending repair needs have 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 provide 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 [6].
+ 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 sender<->group
+ GRTT and a group size estimate that is determined by other mechanisms
+ within the protocol or 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.
+
+ Given the receiver group size (R), and maximum allowed backoff
+ timeout (T_maxBackoff), random backoff timeouts (t') with a truncated
+ exponential distribution can be picked with the following algorithm:
+
+
+
+
+
+Adamson, et al. Experimental [Page 13]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 1) Establish an optimal mean (L) for the exponential backoff based on
+ the group size:
+
+ L = ln(R) + 1
+
+ 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 * ln(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 maxTime, double groupSize)
+ {
+ double lambda = log(groupSize) + 1;
+ double x = UniformRand(lambda/maxTime) +
+ lambda / (maxTime*(exp(lambda)-1));
+ return ((maxTime/lambda) *
+ log(x*(exp(lambda)-1)*(maxTime/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 tradeoff worst-case
+ NACK feedback volume versus latency. This is derived from [6] 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.
+
+
+
+Adamson, et al. Experimental [Page 14]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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
+
+ For general Internet operation, a default value of K=4 is RECOMMENDED
+ for operation with multicast (to the group at large) NACK delivery
+ and a value of K=6 for unicast NACK delivery. Alternate values may
+ be used to for buffer utilization, reliable delivery latency and
+ group size scalability tradeoffs.
+
+ 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 the section below on "Sender NACK Processing and Repair
+ Response".
+
+ 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.
+
+
+
+
+
+Adamson, et al. Experimental [Page 15]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ Finally, some consideration might be given to using the NACKing
+ history of receivers to weight 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
+ there is correlation over successive intervals of time in the loss
+ experienced by a receiver. Such correlation MAY not be present in
+ multicast networks. This adjustment of backoff timeout selection may
+ 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
+
+
+
+Adamson, et al. Experimental [Page 16]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ payload limits occur, the NACK content SHOULD contain requests for
+ the ordinally lowest repair content needed from the sender.
+
+ NACK Suppression Interface Description
+
+ 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 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 NORM 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 NORM 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
+ block. An exact count of erasures implies the FEC algorithm is
+ capable of repairing _any_ loss combination within the coding block.
+
+
+
+Adamson, et al. Experimental [Page 17]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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 affect repair. For a 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) that are capable of provided 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 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.
+
+ 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 data vectors plus parity vectors for the given FEC algorithm
+
+
+
+Adamson, et al. Experimental [Page 18]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ used. For example, a 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 have received
+ 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 or intermediate systems assisting NACK operation.
+
+ 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
+
+
+
+Adamson, et al. Experimental [Page 19]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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
+
+ Fig. 2: NORM Data Content Identification Hierarchy
+
+ The format of NACK messages should meet the following goals:
+
+ 1) Able to identify transport data unit transmissions required to
+ repair a portion of the received content, whether it is an entire
+ missing object/stream (or range), entire FEC coding block(s), or
+ sets of symbols,
+
+ 2) Be simple to process for NACK aggregation and suppression,
+
+ 3) Be capable of including NACKs for multiple objects, FEC coding
+ blocks and/or symbols in a single message, and
+
+ 4) Have a reasonably compact format.
+
+ If the NORM transport object/stream is identified with an <objectId>
+ and the FEC symbol being transmitted is identified with an
+ <fecPayloadId>, the concatenation of <objectId::fecPayloadId>
+
+
+
+Adamson, et al. Experimental [Page 20]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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 receivers 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.
+
+ NACK Content Interface Description
+
+ 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.
+
+ Outputs:
+
+ 1) NACK message with repair requests.
+
+3.2.4. Sender 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
+
+
+
+Adamson, et al. Experimental [Page 21]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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 "holdoff" 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 "holdoff" time should be:
+
+ T_sndrHoldoff = 1*GRTT
+
+ Recall that the receivers will also employ a "holdoff" 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 holdoff timeouts of:
+
+ T_rcvrHoldoff = T_sndrAggregate + T_sndrHoldoff = (K+2)*GRTT
+
+ 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:
+
+ 1) 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.
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 22]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 2) 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 work to 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.
+
+ Sender Repair Response Interface Description
+
+ 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.
+
+3.3. NORM 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 limiting the opportunities when
+ receivers 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).
+
+
+
+
+Adamson, et al. Experimental [Page 23]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ Group Join Policy Interface Description
+
+ 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. Reliable Multicast Member Identification
+
+ In a NORM 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 in some cases) within the group. 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.
+
+3.5. Data Content Identification
+
+ The data and repair content transmitted by a NORM 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
+
+
+
+Adamson, et al. Experimental [Page 24]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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
+ <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 the "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
+ identifier that has been provided. Thus, in some cases, NORM
+ 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 Building Block
+ document [9] provides a standard message format for identifying FEC
+ transmission content. NORM protocol instantiations using FEC SHOULD
+ follow that document's 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 NORM protocol data content messages:
+
+ 1) Source node identifier (<sourceId>)
+
+
+
+Adamson, et al. Experimental [Page 25]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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. NORM protocols that use these data content fields should also
+ be compatible with support for intermediate system assistance to
+ reliable multicast transport operation when available.
+
+3.6. Forward Error Correction (FEC)
+
+ Multiple forward error correction (FEC) approaches have been
+ identified that can provide great performance enhancements to the
+ repair process of NACK-oriented and other reliable multicast
+ protocols [11], [12], [13]. NORM 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 NORM, 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
+ [14]. 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 NORM, 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 NORM 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 [9] provides
+ detailed recommendations concerning application of FEC and standard
+ formats for related reliable multicast protocol messages.
+
+
+
+Adamson, et al. Experimental [Page 26]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+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 where only
+ "one-to-many" transmission is required, it may be that only the
+ sender require RTT knowledge of the greatest RTT (GRTT) among the
+ receiver set 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 RTT information may be required by each receiver in the group.
+ In this case, an alternative RTT collection scheme may be utilized
+ where receivers collect individual RTT measurements with respect to
+ the sender and advertise them to the group or sender. 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 increased efficiency [15]. And
+ in some cases, there might be absolute time synchronization among
+ 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 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 learn
+ the GRTT among the receivers who are actively participating in NORM
+ 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:
+
+
+
+Adamson, et al. Experimental [Page 27]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ 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 the 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
+ 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 GRTT estimate (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
+
+
+
+Adamson, et al. Experimental [Page 28]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ with correspondingly shorter GRTT collection periods. GRTT
+ collection may also be coupled with collection of other information
+ for congestion control purposes.
+
+ In summary, although NORM repair cycle timeouts are based on GRTT, it
+ should be noted that convergent operation of the protocol does not
+ _strictly_ depend on highly accurate GRTT estimation. The current
+ mechanism has proved sufficient in simulations and in the
+ environments where NORM-like protocols have been deployed to date.
+ The estimate provided by the 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.
+
+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 sender's "b" and "c", it is likely that:
+
+ RTT(a<->b) <= RTT(a<->c)) + RTT(b<->c)
+
+
+
+
+Adamson, et al. Experimental [Page 29]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ Further refinement of this estimate can be conducted if RTT
+ information is available to a node concerning its own RTT to a small
+ subset of other group members and RTT information among those other
+ group members it learns during protocol operation.
+
+3.7.4. Sender GRTT Advertisement
+
+ To facilitate deterministic NORM 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 to a single byte of information. The following C-
+ language functions allows 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 GRTT 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. NORM 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)));
+ }
+
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 30]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ Note that this function is useful for quantizing GRTT times in the
+ range of 1 microsecond to 1000 seconds. Of course, NORM 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 NORM 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 a
+ group size determination mechanism a default group size value of
+ 10,000 is RECOMMENDED for reasonable management of feedback given the
+ scalability of expected NORM usage.
+
+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) [16] or Pragmatic General Multicast Congestion
+ Control (PGMCC) techniques [17] may be applied to NORM operation to
+ meet this requirement.
+
+3.10. Router/Intermediate System Assistance
+
+ NACK-oriented protocols may benefit from general purpose router
+ assistance. In particular, additional NACK suppression where routers
+ or 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 NORM 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. Both of
+ these types of assist functions would require router interpretation
+ of transport data unit content identifiers and flags.
+
+3.11. NORM Applicability
+
+ The NORM building block applies to protocols wishing to employ
+ negative acknowledgement to achieve reliable data transfer. Properly
+ designed negative-acknowledgement (NACK)-oriented reliable multicast
+
+
+
+Adamson, et al. Experimental [Page 31]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ (NORM) 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
+ scalability property of NACK-oriented protocols [18], [19] 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. NORM protocols can make use of reciprocal
+ (among senders and receivers) multicast communication under the Any-
+ Source Multicast (ASM) model defined in RFC 1112 [2], and are capable
+ of scalable operation in asymmetric topologies such as Single-Source
+ Multicast (SSM) [8] where there may only be unicast routing service
+ from the receivers to the sender(s).
+
+ NORM operation is compatible with transport layer forward error
+ correction coding techniques as described in [13] and congestion
+ control mechanisms such as those described in [16] and [17]. A
+ principal limitation of NORM operation involves group size
+ scalability when network capacity for receiver feedback is very
+ limited. NORM 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.
+
+4. Security Considerations
+
+ NORM protocols are expected to be subject to the same sort of
+ security vulnerabilities as other IP and IP multicast protocols.
+ NORM is compatible with IP security (IPsec) authentication mechanisms
+ [20] 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 that would prevent a NORM
+ sender from making forward progress in transmission. Any standard
+ IPsec mechanisms that can provide protection against such replay
+ attacks are RECOMMENDED for use. Additionally, NORM protocol
+ instantiations SHOULD consider providing support for their own NACK
+ replay attack protection when network layer mechanisms are not
+ available. The IETF Multicast Security (msec) Working Group is also
+ developing solutions which may be applicable to NORM in the future.
+
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 32]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+5. Acknowledgements (and these are not Negative)
+
+ The authors would like to thank 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.
+
+6. References
+
+6.1. Normative References
+
+ [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [2] Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC
+ 1112, August 1989.
+
+6.2. Informative References
+
+ [3] Mankin, A., Romanow, A., Bradner, S., and V. Paxson, "IETF
+ Criteria for Evaluating Reliable Multicast Transport and
+ Application Protocols", RFC 2357, June 1998.
+
+ [4] Clark, D. and D. Tennenhouse, "Architectural Considerations for
+ a New Generation of Protocols". In Proc. ACM SIGCOMM, pages
+ 201--208, September 1990.
+
+ [5] Kermode, R. and L. Vicisano, "Author Guidelines for Reliable
+ Multicast Transport (RMT) Building Blocks and Protocol
+ Instantiation documents", RFC 3269, April 2002.
+
+ [6] Nonnenmacher, J. and E. Biersack, "Optimal Multicast Feedback,"
+ in IEEE Infocom, San Francisco, California, p. 964, March/April
+ 1998.
+
+ [7] Macker, J. and R. Adamson, "Quantitative Prediction of Nack
+ Oriented Reliable Multicast (NORM) Feedback", Proc. IEEE MILCOM
+ 2002, October 2002.
+
+ [8] Holbrook, H., "A Channel Model for Multicast", Ph.D.
+ Dissertation, Stanford University, Department of Computer
+ Science, Stanford, California, August 2001.
+
+ [9] Luby, M., Vicisano, L., Gemmell, J., Rizzo, L., Handley, M., and
+ J. Crowcroft, "Forward Error Correction (FEC) Building Block",
+ RFC 3452, December 2002.
+
+
+
+
+Adamson, et al. Experimental [Page 33]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+ [10] 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.
+
+ [11] Metzner, J., "An Improved Broadcast Retransmission Protocol",
+ IEEE Transactions on Communications, Vol. Com-32, No.6, June
+ 1984.
+
+ [12] Macker, J., "Reliable Multicast Transport and Integrated
+ Erasure-based Forward Error Correction", Proc. IEEE MILCOM 97,
+ October 1997.
+
+ [13] 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.
+
+ [14] Gossink, D. and J. Macker, "Reliable Multicast and Integrated
+ Parity Retransmission with Channel Estimation", IEEE GLOBECOM
+ 98'.
+
+ [15] Ozdemir, V., Muthukrishnan, S., and I. Rhee, "Scalable, Low-
+ Overhead Network Delay Estimation", NCSU/AT&T White Paper,
+ February 1999.
+
+ [16] Widmer, J. and M. Handley, "Extending Equation-Based Congestion
+ Control to Multicast Applications", Proc ACM SIGCOMM 2001, San
+ Diego, August 2001.
+
+ [17] Rizzo, L., "pgmcc: A TCP-Friendly Single-Rate Multicast
+ Congestion Control Scheme", Proc ACM SIGCOMM 2000, Stockholm,
+ August 2000.
+
+ [18] Pingali, S., Towsley, D., and J. Kurose, "A Comparison of
+ Sender-Initiated and Receiver-Initiated Reliable Multicast
+ Protocols". In Proc. INFOCOM, San Francisco, CA, October 1993.
+
+ [19] B.N. Levine, J.J. Garcia-Luna-Aceves, "A Comparison of Known
+ Classes of Reliable Multicast Protocols", Proc. International
+ Conference on Network Protocols (ICNP-96), Columbus, Ohio, Oct
+ 29--Nov 1, 1996.
+
+ [20] Kent, S. and R. Atkinson, "Security Architecture for the
+ Internet Protocol", RFC 2401, November 1998.
+
+
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 34]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+7. 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
+ Department of Computer Science
+ 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. Experimental [Page 35]
+
+RFC 3941 NORM Building Blocks November 2004
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2004).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the IETF's procedures with respect to rights in IETF Documents can
+ be found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at ietf-
+ ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+Adamson, et al. Experimental [Page 36]
+