RFC 3940:Negative-acknowledgment (NACK)-Oriented R...
RFC-Ref

receiver


Click on the red underlined text to get to the source

... or more sender(s) to a group of receivers over an IP multicast network ...
... multicast session participation with minimal coordination among senders and receivers. NORM allows senders and receivers ...
... receivers. NORM allows senders and receivers to dynamically join and leave multicast ...
... protocol message headers contain some common information allowing receivers to easily synchronize to senders throughout the lifetime ...


... sender transmitting bulk data content to a group of receivers. However, the protocol MAY operate with multiple senders within the ...
... protocol, it is anticipated that multiple senders will transmit independent of one another and receivers will maintain state as necessary for each sender ...
... NORM_OBJECT_FILE is simply to provide a "hint" to receivers in NormSessions serving multiple types of content as to what type of storage should be allocated for received content (i.e., memory or file storage ...
... of the Transmission Control Protocol (TCP), although NORM receivers will be able to begin receiving stream ...
... sender. This readily-available "out-of- band" data allows multicast receivers to quickly and efficiently determine the nature of the corresponding data, file, or stream bulk ...
... content being transmitted. This allows application-level control of the receiver node's participation in the current transport activity. ...
... This also allows the protocol to be flexible with minimal pre- coordination among senders and receivers. The NORM_INFO content is designed to be atomic in that its size MUST fit into the payload ...
... in an efficient manner. Other similar protocol control mechanisms (e.g., session termination, receiver synchronization, etc.) are specified so that reliable multicast application variants may ...
... FEC content in response to NACK messages received from the receiver group. Mechanisms for "out-of-band ...
... scalability is the volume of feedback traffic generated by the receiver set to facilitate reliability and congestion control ...
... NORM protocol will readily scale to group sizes on the order of tens of thousands of receivers. A study of the quantity of feedback for this type of protocol is described in [13]. ...
... single TCP connection, even with relatively large numbers of receivers. Thus, depending upon the network topology, it is possible that NORM ...
... NORM protocol does _not_ require that state be kept on all receivers in the group. NORM senders maintain state ...
... NORM senders maintain state only for receivers providing explicit congestion control feedback. NORM receivers must maintain state ...
... for receivers providing explicit congestion control feedback. NORM receivers must maintain state for each active sender ...
... NORM can make use of reciprocal (among senders and receivers) multicast communication under the Any-Source Multicast ...
... routing service from the receivers to the sender(s). ...
... port numbers for remapping feedback traffic from receivers to the sender(s). ...


... A NormSession is comprised of participants (NormNodes) acting as senders and/or receivers. NORM senders transmit data content in the form of NormObjects to the session ...
... form of NormObjects to the session destination address and the NORM receivers attempt to reliably receive the transmitted content using negative acknowledgments to request repair. Each NormNode within a ...
... senders and to distinguish feedback information from different receivers. There are two reserved NormNodeId values. A value of 0x00000000 is considered an invalid NormNodeId value and a value of 0xffffffff is a "wildcard ...
... segments of the stream to the receiver application. In either case, NORM sender and receiver ...
... receiver application. In either case, NORM sender and receiver implementations provide buffering to facilitate repair of the stream ...
... FEC encoding parity content. In this case, the receiver must receive a sufficient number of symbols to reconstruct (via FEC decoding) the original user data ...
... transferred. By default, redundant FEC symbols are sent only in response to receiver repair requests (NACKs) and thus normally little or no additional transmission overhead ...
... satellite, cable) [15] with reduced receiver feedback, or, in some cases, no feedback. A sender message ...
... serve special purposes for some bulk transfer, reliable multicast applications where receivers join the group mid-stream ...
... congestion control, end-of- transmission flushing, round trip time estimation, receiver synchronization, and optional positive acknowledgment requests or application defined commands. The transmission of NORM_CMD ...
... transmission rate, etc.). NORM receivers generate messages of type NORM_NACK or NORM ...
... NORM_NACK messages are generated to request repair of detected data transmission losses. Receivers generally detect losses by tracking the sequence of transmission from a sender. Sequencing information ...
... order to meet potential application requirements for positive acknowledgment from receivers, other NORM_ACK messages are defined ...
... NORM_ACK messages are defined and available for use. All sender and receiver transmissions are subject to rate control governed by a peak transmission rate ...
... governed by any buffer constraints of the sender and receiver applications. NORM protocol implementations SHOULD be designed to ...
... This is because NORM feedback suppression is based upon randomly- delayed transmissions from the receiver set, rather than immediately transmitted feedback. There are definitive tradeoffs between buffer ...


... NORM_CMD(FLUSH) | Sender command to excite receivers for repair | | | requests in lieu of ongoing NORM_DATA | ...
... | | unicast feedback messages are detected. Used | | | to control/suppress excessive receiver | | | feedback in asymmetric multicast topologies ...
... |NORM_NACK | Receiver message used to request repair of | | | missing transmitted content. | +--------------------+-----------------------------------------------+ ...
... |NORM_ACK | Receiver message used to proactively provide | | | feedback for congestion control purposes. | ...


... NORM messages: sender messages and receiver messages. NORM_CMD, ...
... NORM_ACK messages generated by receivers within a NormSession. An auxiliary message type of ...
... NORM_NACK or other feedback messages. In this case, the receiver node should maintain a monotonically increasing "sequence" field space for each ...
... Object Transmission Information (EXT_FTI) header extension. This allows NORM receivers to automatically allocate resources and properly perform FEC decoding without the need for pre-configuration ...
... NORM_OBJECT_FILE and NORM_OBJECT_DATA, these fields are unnecessary since the receiver can calculate the payload length and offset information from the "fec_payload ...
... sender to uniquely identify its current instance of participation in the NormSession. This allows receivers to detect when senders have perhaps left and rejoined a session ...
... sender (identified by its "source_id") is detected to have a new "instance_id", the NORM receivers SHOULD drop their previous state on the sender ...
... 4]. The "backoff" field value is used by receivers to determine the maximum backoff timer value used in the timer ...
... sender GRTT to determine the maximum backoff timeout. The "backoff" field informs the receiver set of the sender's backoff factor parameter "Ksender". Recommended values and ...
... sender's backoff factor parameter "Ksender". Recommended values and their use are described in the NORM receiver NACK procedure description in Section 5.3. The "gsize" field contains a ...
... The "flags" field contains a number of different binary flags providing information and hints regarding how the receiver should handle the identified object. Defined flags in this field include: ...
... NORM_FLAG_EXPLICIT | 0x02 | Indicates a repair segment intended to | | | | meet a specific receiver erasure, as | | | | compared to parity segments provided by | ...
... NORM_FLAG_REPAIR is set when the associated message is a repair transmission. This information can be used by receivers to help observe a join policy where it is desired that newly joining ...
... observe a join policy where it is desired that newly joining receivers only begin participating in the NACK process upon receipt ...
... NORM_INFO content is actually available for the associated object. Thus, receivers will NACK for retransmission of NORM ...
... sender wishes to transmit an object with only "best effort" delivery and will not supply repair transmissions for the object. NORM receivers SHOULD NOT execute repair requests for objects marked with the NORM_FLAG_UNRELIABLE flag. Note that receivers ...
... NORM receivers SHOULD NOT execute repair requests for objects marked with the NORM_FLAG_UNRELIABLE flag. Note that receivers may inadvertently request repair of such objects when all segments (or info content) ...
... NORM stream. This allows NORM receiver applications to "synchronize" with NORM senders and to be able to properly interpret application layer ...
... bit field size provides an adequate enough sequence space to avoid object confusion amongst receivers and sources (i.e., receivers SHOULD re-synchronize with a server when receiving ...
... an adequate enough sequence space to avoid object confusion amongst receivers and sources (i.e., receivers SHOULD re-synchronize with a server when receiving object sequence identifiers ...
... segments in the identified coding block. Given the "source_block_len" information of how many symbols of application data are contained in the block, the receiver can determine whether the attached segment is data or parity content and treat it ...
... useful for the sender to include this information "in band" to facilitate receiver operation with minimal preconfiguration. For this purpose, the NORM FEC ...
... NORM_OBJECT_FILE and NORM_OBJECT_DATA. This information is used by receivers to determine storage requirements and/or allocate storage for the received object. ...
... storage requirements and/or allocate storage for the received object. Receivers with insufficient storage capability may wish to forego reliable reception (i.e., not NACK ...
... stream buffer to the receiver group. In turn, the receivers SHOULD use this ...
... to the receiver group. In turn, the receivers SHOULD use this information to allocate a stream buffer ...
... sender's current setting for maximum message payload content (in bytes). This allows receivers to allocate appropriate buffering resources and to determine other information in order to ...
... sender during the session. This allows receivers to allocate appropriate buffer space for buffering ...
... object into the NORM_INFO payload. Receivers may use the NORM_INFO content to make a decision as whether to participate in reliable ...
... contain a flag to indicate the availability of NORM_INFO for a given NormObject. NORM receivers may NACK for retransmission of NORM ...
... NORM_DATA messages. These values allow the receiver to prepare appropriate buffering, etc, for further transmissions from the sender ...
... payload_data" field contains sender application- defined content which can be used by receiver applications for various purposes as described above. ...
... synchronization of sender/receiver repair "windows", and notification of sender ...
... | | | (Assists in robustly initiating | | | | outstanding repair requests from| | | | receivers). May also be | | | | optionally used to collect | | | | positive acknowledgment of | ...
... | | | positive acknowledgment of | | | | reliable reception from subset | | | | of receivers. | +----------------------+-------------+---------------------------------+ |NORM ...
... range NACKs | | | | from receivers. | +----------------------+-------------+---------------------------------+ |NORM ...
... | | | for suppression of unicast | | | | feedback from receivers. | +----------------------+-------------+---------------------------------+ |NORM ...
... ACK_REQ) | 6 | Used to request application- | | | | defined positive acknowledgment | | | | from a list of receivers | | | | (OPTIONAL). | +----------------------+-------------+---------------------------------+ ...
... GRTT to excite the receiver set for any outstanding repair requests up to and including the transmission point indicated within the NORM_CMD ...
... The number of repeats is equal to NORM_ROBUST_FACTOR unless a list of receivers from which explicit positive acknowledgment is expected ("acking_node_list") is given. In that case, the "acking_node ...
... greater the NORM_ROBUST_FACTOR, the greater the probability that all applicable receivers will be excited for acknowledgment or repair requests (NACKs) _and_ that the corresponding NACKs ...
... transmissions are completed. Note that receivers also employ a timeout mechanism to self-initiate NACKing (if there are outstanding repair needs) when no messages of any type are received from a sender ...
... NORM_CMD(FLUSH) transmissions and a longer timeout for receivers to self-initiate the terminal NACK ...
... Upon receipt of the NORM_CMD(FLUSH), receivers are expected to check their completion state _through_ (including) this transmission ...
... their completion state _through_ (including) this transmission position. If receivers have outstanding repair needs in this range, they SHALL initiate the NORM ...
... NORM NACK Repair Process as described in Section 5.3. If receivers have no outstanding repair needs, no response to the NORM_CMD ...
... NORM_OBJECT_STREAM objects using systematic FEC codes, receivers MUST request "explicit-only" repair of the identified "source_block_number" if the given "encoding ...
... stream transmission and passes the end of the pending coding block, subsequent NACKs from receivers SHALL request parity-based repair as usual. Note that the use of a systematic FEC code is ...
... repair as usual. Note that the use of a systematic FEC code is assumed here. Normal receiver NACK initiation and construction is discussed in detail ...
... discussed in detail in Section 5.3. The OPTIONAL "acking_node_list" field contains a list of NormNodeIds for receivers from which the sender is requesting explicit positive acknowledgment of reception up ...
... sender reaches permanent end-of-transmission with respect to the NormSession and will not respond to further repair requests. This allows receivers to gracefully reach closure of operation with this sender (without ...
... NORM_CMD(FLUSH) commands to provide a high assurance of reception by the receiver set. 0 1 2 3 ...
... header extensions present is 4. The "reserved" field is reserved for future use and MUST be set to an all ZERO value. Receivers MUST ignore the "reserved" field. ...
... sender previously transmitted marked with the NORM_FLAG_UNRELIABLE flag. This command indicates to receivers what content is available for repair, thus serving as a description of the sender ...
... content is available for repair, thus serving as a description of the sender's current "repair window". Receivers SHALL not generate repair requests for content identified as invalid by a NORM ...
... CMD(SQUELCH) will be needed infrequently, and generally only to provide a reference repair window for receivers who have fallen "out-of-sync" with the sender due to extremely poor network conditions ...
... of the squelch. The length of the list is limited by the sender's NormSegmentSize. This allows the receivers to learn the status of the sender's applicable object repair window with minimal ...
... payload_id" field. This serves as an advertisement of a "synchronization point" for receivers to request repair. Note, that while an "encoding_symbol_id" may be ...
... CC) messages contains fields to enable sender-to- receiver group greatest round-trip time (GRTT ...
... to the "feedback round number" (fb_nr)described in [19]. The most recently received "cc_sequence" value is recorded by receivers and can be fed back to the sender in congestion control ...
... sender in congestion control feedback generated by the receivers for that sender. The "cc_sequence" number can also be used in NORM ...
... can also be used in NORM implementations to assess how recently a receiver has received NORM_CMD(CC ...
... byte ordering of the fields is "Big Endian" network order. Receivers use this timestamp adjusted by the amount of delay ...
... sender to evaluate round-trip times to different receivers for congestion control and other (e.g., GRTT ...
... CMD(CC) message. The presence of this header extension also implies that NORM receivers should respond according to the procedures described in Section 5.5.2. The "cc_node_list" ...
... node_list" consists of a list of NormNodeIds and their associated congestion control status. This includes the current limiting receiver (CLR) node ...
... CLR) node, any potential limiting receiver (PLR) nodes that have been ...
... PLR) nodes that have been identified, and some number of receivers for which congestion control status is being provided, most notably including the receivers ...
... receivers for which congestion control status is being provided, most notably including the receivers' current RTT measurement. The maximum length of the "cc_node ...
... node_list" provides for at least the CLR and one other receiver, but may be configurable for more timely feedback to the group. The list length ...
... The "cc_node_id" is the NormNodeId of the receiver which the item represents. ...
... The "cc_flags" field contains flags indicating the congestion control status of the indicated receiver. The following flags are defined: +------------------+-------+------------------------------------------+ ...
... NORM_FLAG_CC_CLR | 0x01 | Receiver is the current limiting | | | | receiver (CLR ...
... CLR | 0x01 | Receiver is the current limiting | | | | receiver (CLR). | +------------------+-------+------------------------------------------+ ...
... NORM_FLAG_CC_PLR | 0x02 | Receiver is a potential limiting | | | | receiver (PLR ...
... PLR | 0x02 | Receiver is a potential limiting | | | | receiver (PLR). | +------------------+-------+------------------------------------------+ ...
... NORM_FLAG_CC_RTT | 0x04 | Receiver has measured RTT with respect | | | | to sender ...
... CC_START| 0x08 | Sender/receiver is in "slow start" phase | | | | of congestion control ...
... | | | of congestion control operation (i.e., | | | | The receiver has not yet detected any | | | | packet loss and the "cc_rate" field is | ...
... | | | packet loss and the "cc_rate" field is | | | | the receiver's actual measured receive | | | | rate). | +------------------+-------+------------------------------------------+ ...
... |NORM_FLAG_CC_LEAVE| 0x10 | Receiver is imminently leaving the | | | | session and its feedback should not be | ...
... RTT as measured by the sender with respect to the indicated receiver. This field is valid only if the NORM ...
... document [4]. The "cc_rate" field contains a representation of the receiver's current calculated (during steady-state congestion control ...
... unicast transmission instead of multicast. By "echoing" this information to the receiver set, suppression of feedback can be achieved even when receivers are unicasting that feedback instead of ...
... information to the receiver set, suppression of feedback can be achieved even when receivers are unicasting that feedback instead of multicasting it among the group ...
... current repair state into a single NormSegmentSize. If this flag is set, receivers should limit their NACK response to generating NACK ...
... NORM_CMD(REPAIR_ADV) message to suppress receiver congestion control responses as well as NACK ...
... The "cc_sequence" field contains the current greatest "cc_sequence" value receivers have received in NORM_CMD(CC ...
... congestion control operation by providing an indicator of how current ("fresh") the receiver's round-trip measurement reference time is and whether the receiver ...
... receiver's round-trip measurement reference time is and whether the receiver has been successfully receiving recent congestion control ...
... congestion control probes. For example, if it is apparent the receiver has not been receiving recent congestion control ...
... The "cc_flags" field contains bits representing the receiver's state with respect to congestion control ...
... CC) message node list item flags. These fields are used by receivers in controlling (suppressing as necessary) their congestion control ...
... received from non-CLR or non-PLR receivers. And the NORM_FLAG_CC ...
... NORM_CMD(REPAIR_ADV) ensure the most effective suppression of receivers providing unicast feedback messages. ...
... NORM_FLAG_CC_RTT flag SHALL be cleared when no receiver has yet received RTT measurement information. When a receiver ...
... receiver has yet received RTT measurement information. When a receiver has received RTT measurement information, it shall set the "cc_rtt" value ...
... PLR RTT it has measured from receivers for the current feedback round. The "cc_loss" field represents the receiver ...
... receivers for the current feedback round. The "cc_loss" field represents the receiver's current packet loss fraction estimate for the indicated source. The loss fraction is a ...
... CLR/non-PLR loss estimate it has received from receivers for the current feedback round. The "cc_rate" field represents the receivers ...
... receivers for the current feedback round. The "cc_rate" field represents the receivers current local congestion control rate. During "slow start", when the receiver ...
... receivers current local congestion control rate. During "slow start", when the receiver has detected no loss, this value is set to twice the actual rate it has measured from the corresponding sender ...
... CC_START is set in the "cc_flags' field. Otherwise, the receiver calculates a congestion control rate based on its loss measurement and RTT measurement ...
... CLR/non-PLR "cc_rate" report it has received from receivers for the current feedback round. The "cc_reserved" field is reserved for future NORM ...
... NORM protocol use. Currently, senders SHALL set this field to ZERO, and receivers SHALL ignore the content of this field. ...
... NORM_NACK messages and can be processed by receivers for suppression purposes in the same manner, with the exception of the condition when the NORM_REPAIR_ADV_FLAG_LIMIT is ...
... ACK_REQ) message is used by the sender to request acknowledgment from a specified list of receivers. This message is used in providing a lightweight positive acknowledgment mechanism that is OPTIONAL for use by the reliable multicast ...
... NORM_CMD(ACK_REQ) messages and the receiver response (NORM_ACK) are ...
... The "ack_type" field indicates the type of acknowledgment being requested and thus implies rules for how the receiver will treat this request. The following "ack_type" values are defined and are also used in NORM ...
... ACK_REQ) message. This "ack_id" is returned in NORM_ACK messages generated by the receivers so that the sender may associate the response with its corresponding request. ...
... SHALL be set to ZERO by senders and ignored by receivers. The "acking_node ...
... The "acking_node_list" field contains the NormNodeIds of the current NORM receivers that are desired to provide positive acknowledge (NORM_ACK ...
... in network (Big Endian) byte order. If a receiver's NormNodeId is included in the "acking_node_list", it SHALL schedule transmission of ...
... Receiver Messages ...
... The NORM message types generated by participating receivers consist of NORM_NACK ...
... principal purpose of NORM_NACK messages is for receivers to request repair of sender content via selective, negative acknowledgment ...
... NORM_CMD(CC) command. The receiver adjusts the source's NORM_CMD ...
... CC) "send_time" timestamp by adding the time differential from when the receiver received the NORM_CMD(CC ...
... receive_to_response_differential The receiver SHALL set the "grtt_response" to a ZERO value, to indicate that it has not yet received a NORM_CMD ...
... to NORM_NACK messages to provide feedback on the receivers current state with respect to congestion control operation. Note that ...
... NORM_NACK message specifies the repair needs of the receiver with respect to the NORM sender indicated by the "server_id" field. The receiver ...
... receiver with respect to the NORM sender indicated by the "server_id" field. The receiver constructs repair requests based on the NORM_DATA and/or NORM ...
... sender in order to complete reliable reception up to the sender's transmission position at the moment the receiver initiates the NACK Procedure as described in Section 5.3. A single NORM ...
... segments are needed to repair content at the receiver. When the NORM_NACK_BLOCK flag is set, this indicates the ...
... NORM_NACK_BLOCK flag is set, this indicates the receiver is completely missing the indicated coding block(s) and requires transmissions sufficient to repair the indicated block(s) in their entirety. When the NORM ...
... NORM_NACK_INFO flag is set, this indicates the receiver is missing the NORM_INFO segment for the indicated ...
... NORM_NACK_OBJECT flag is set, this indicates the receiver is missing the entire NormTransportObject referenced by the "object_transport_id". This also implicitly ...
... field value. When the receiver's repair needs dictate that different forms (mixed ranges and/or individual items) or types (mixed specific segments ...
... NORM_NACK message. Additionally, NORM receivers SHALL construct NORM_NACK ...
... for OPTIONAL collection of positive acknowledgment of reliable reception to a certain "watermark" transmission point from specific receivers using this mechanism. The NORM_ACK type NORM ...
... transport_id" and "fec_payload_id" are used by the receiver to acknowledge applicable NORM_CMD(FLUSH) messages ...
... sessions whether the participant is acting as a sender and/or receiver within the group. ...
... NORM participants. This message could be used for periodic performance reports from receivers in experimental NORM ...


... This section describes the detailed interactions of senders and receivers participating in a NORM session. A simple synopsis of ...
... to initialize and collect roundtrip timing and congestion control feedback from the receiver set. 2) The sender ...
... transport objects. 3) As receivers detect missing content from the sender, they initiate repair requests with NORM ...
... repair requests with NORM_NACK messages. Note the receivers track the sender's most recent objectId::fecPayloadId transmit position ...
... and NACK _only_ for content ordinally prior to that transmit position. The receivers schedule random backoff timeouts before generating NORM_NACK ...
... 4) The sender aggregates repair requests from the receivers and logically "rewinds" its transmit position to send appropriate repair messages. The sender ...
... NORM_CMD(FLUSH) messages when it reaches the end of enqueued transmit content and pending repairs. Receivers respond to the NORM_CMD ...
... independent congestion control state. Receivers provide congestion control feedback in NORM ...
... sender may wish to defer data transmission until it has received some feedback or request from the receiver set indicating that receivers are indeed present. Note, in some applications (e.g., web push), this ...
... wish to defer data transmission until it has received some feedback or request from the receiver set indicating that receivers are indeed present. Note, in some applications (e.g., web push), this indication may come out-of-band ...
... sender message headers can contain all information necessary to prepare receivers for subsequent reliable reception. This includes FEC coding ...
... sender NormSegmentSize, and other information. If this header extension is not used, it is presumed that receivers have received the FEC Object Transmission Information ...
... being transmitted. These mechanisms allow for operation with minimal pre-coordination among the senders and receivers. The NORM sender ...
... congestion control mechanisms or is a fixed rate if desired for closed network operations. The receivers participating in the multicast group provide feedback to the sender ...
... NORM_CMD(FLUSH) messages at a rate of one per 2*GRTT. Receivers may respond to these NORM_CMD ...
... requests. A protocol parameter "NORM_ROBUST_FACTOR" determines the number of flush messages sent. If receivers request repair, the repair is provided and flushing occurs again at the end of repair transmission. The sender ...
... to NORM_CMD(FLUSH) containing the NormNodeIds for receivers from which it expects explicit positive acknowledgment of reception. The NORM ...
... NORM senders and receivers must use a common algorithm for logically segmenting transport ...
... source block size (number of source symbols per coding block). NORM senders and receivers use these FEC parameters, along with the NormSegmentSize and transport ...
... Receiver Initialization and Reception ...
... The NORM protocol is designed such that receivers may join and leave the group ...
... the group at will. However, some applications may be constrained such that receivers need to be members of the group prior to start of ...
... data transmission. NORM applications may use different policies to constrain the impact of new receivers joining the group in the middle of a session ...
... of a session. For example, a useful implementation policy is for new receivers joining the group to limit or avoid repair requests for transport ...
... implementation may wish to impose additional constraints to limit the ability of receivers to disrupt reliable multicast performance by ...
... performance by joining, leaving, and rejoining the group often. Different receiver "join policies" may be appropriate for different applications and/or ...
... join policies" may be appropriate for different applications and/or scenarios. For general purpose operation, default policy where receivers are allowed to request repair only for coding blocks with a NormTransportId and FEC coding block number greater than or equal to ...
... STREAM it is RECOMMENDED that the join policy constrain receivers to start reliable reception at the current FEC coding block ...
... Receiver NACK Procedure ...
... When the receiver detects it is missing data from a sender's NORM ...
... network failure during SSM operation, the receiver SHALL automatically suppress its NACK and immediately enter the "holdoff" ...
... period described below when T_backoff is greater than (Ksender- 1)*GRTTsender. Otherwise, the backoff period is entered and the receiver MUST accumulate external pending repair state from NORM_NACK ...
... NORM_CMD(REPAIR_ADV) messages received. At the end of the backoff time, the receiver SHALL generate a NORM_NACK message ...
... sender's current transmit position (in terms of objectId::fecPayloadId) exceeds the earliest repair position of the receiver. 2) The repair state ...
... NORM_CMD(REPAIR_ADV) messages do not equal or supersede the receiver's repair needs up to the sender transmission position at the time the NACK ...
... NACK procedure (backoff timeout) was initiated. If these conditions are met, the receiver immediately generates a NORM_NACK ...
... NORM_NACK message when the backoff timeout expires. Otherwise, the receiver's NACK is considered to be "suppressed" and the message is not sent. At this time, the receiver ...
... receiver's NACK is considered to be "suppressed" and the message is not sent. At this time, the receiver begins a "holdoff" period during which it constrains itself to not reinitiate the NACKing process. The purpose of this timeout is to allow the sender ...
... process. The purpose of this timeout is to allow the sender worst- case time to respond to the repair needs before the receiver requests repair again. The value of this "holdoff" timeout (T_rcvrHoldoff) as described in [4 ...
... NORM_NACK message contains repair request content beginning with lowest ordinal repair position of the receiver up through the coding block prior to the most recently heard ordinal transmission position for the sender ...
... sender's NormSegmentSize, the NACK content is truncated so that the receiver only generates a single NORM_NACK message per NACK ...
... sender. In summary, a single NACK message is generated containing the receiver's lowest ordinal repair needs. For each partially-received FEC ...
... For each partially-received FEC coding block requiring repair, the receiver SHALL, on its _first_ repair attempt for the block, request the parity portion of the FEC coding block beginning with the lowest ...
... corresponding to its data segment erasure count for the block. On _subsequent_ repair cycles for the same coding block, the receiver SHALL request only those repair symbols from the first set it has not yet received up to the remaining erasure count for that applicable ...
... sender may have provided other different, additional parity segments for other receivers that could also be used to satisfy the local receiver's erasure-filling needs. ...
... segments for other receivers that could also be used to satisfy the local receiver's erasure-filling needs. In the case where the erasure count for a partially-received FEC ...
... sender for the block (as indicated by the NORM_DATA "fec_num_parity" field), the receiver SHALL request all available parity segments plus the ordinally highest missing data segments ...
... segments required to satisfy its total erasure needs for the block. The goal of this strategy is for the overall receiver set to request a lowest common denominator set of repair symbols for a given FEC coding ...
... segment set and enables effective NACK suppression among the receivers even with uncorrelated packet loss. This approach also requires no synchronization ...
... packet loss. This approach also requires no synchronization among the receiver set in their repair requests for the sender. ...
... For FEC coding blocks or NormObjects missed in their entirety, the NORM receiver constructs repair requests with NORM_NACK_BLOCK or ...
... sender must occasionally "rewind" its logical transmission point to satisfy the repair needs of receivers who have NACKed. Aggregation of multiple NACKs ...
... repair strategy when a NACK event occurs. Since receivers initiate the NACK process on coding block or object boundaries, there is some loose degree of ...
... on coding block or object boundaries, there is some loose degree of synchronization of the repair process even when receivers experience uncorrelated data loss. ...
... where "Ksender" is the same backoff scaling value used by the receivers, and "GRTT" is the sender's current estimate of the group ...
... arrival of a NACK) in concert with the pending repair and new data transmission. Recall that receivers are not to initiate the NACK repair process until the sender ...
... FEC parity content for repair to the greatest extent possible. Recall that the receivers use a strategy to request a lowest common denominator of explicit repair (including parity content) in the formation of their NORM ...
... NORM_NACK messages. Before falling back to explicitly satisfying different receivers' repair needs, the sender can make use of the general erasure-filling capability of FEC ...
... coding blocks, the sender can transmit these in lieu of the specific packets the receiver set has requested. Only after exhausting its supply of "fresh" (unsent) parity segments for a given coding block ...
... segments for a given coding block should the sender resort to explicit transmission of the receiver set's repair needs. In general, if a sufficiently powerful FEC code ...
... DATA messages sent as repair transmissions SHALL be flagged with the NORM_FLAG_REPAIR flag. This allows receivers to obey any policies that limit new receivers from joining the reliable ...
... NORM_FLAG_REPAIR flag. This allows receivers to obey any policies that limit new receivers from joining the reliable transmission when only repair transmissions have been received. Additionally, the sender ...
... Although NORM end system receivers do not make use of the NORM_FLAG_EXPLICIT flag, this message transmission status could be ...
... NORM_CMD(SQUELCH) message to advertise its repair window and squelch any receivers from additional NACKing of invalid data. The transmission rate ...
... NORM sender receives NORM_NACK messages from receivers via unicast transmission, it uses NORM ...
... CMD(REPAIR_ADV) messages to advertise its accumulated repair state to the receiver set since the receiver set is not directly sharing their repair needs via multicast ...
... state to the receiver set since the receiver set is not directly sharing their repair needs via multicast communication. The NORM ...
... CMD(REPAIR_ADV) message is multicast to the receiver set by the sender. The payload portion of this message has ...
... content in the same format as the NORM_NACK receiver message payload. Receivers ...
... receiver message payload. Receivers are then able to perform feedback suppression in the same manner as with NORM_NACK ...
... NORM_NACK messages directly received from other receivers. Note the sender does not merely retransmit NACK content ...
... NORM_CMD(REPAIR_ADV) message is of maximum size, receivers SHALL consider the maximum ordinal transmission position value embedded in the message as the senders "current" ...
... need to provide information so that dynamic congestion control feedback can be suppressed as needed among receivers. This document specifies the NORM-CC ...
... ensure that maximum possible suppression state is conveyed to the receiver set. ...
... For NORM receivers to appropriately scale backoff timeouts and the senders to use proper corresponding timeouts, the participants must ...
... round-trip time of active receivers and determines the group greatest round-trip time ...
... sender advertises this GRTT estimate in every message it transmits so that receivers have this value available for scaling their timers. To measure the current GRTT ...
... CC) messages that contain a locally generated timestamp. Receivers are expected to record this timestamp along with the time the