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

NORM


Click on the red underlined text to get to the source

... Negative-acknowledgment (NACK) Oriented Reliable Multicast (NORM) protocol is designed to provide reliable transport of data from one ...
... IP multicast network. The primary design goals of NORM are to provide efficient, scalable, and robust bulk data (e.g., computer files, transmission of persistent data) transfer across possibly heterogeneous IP networks ...
... IP networks and topologies. The NORM protocol design provides support for distributed multicast session ...
... among senders and receivers. NORM allows senders and receivers to ...
... overhead for control information and timing synchronization among participants. To accommodate this capability, NORM protocol message headers ...
... lifetime of a reliable multicast session. NORM is designed to be self-adapting to a wide range of dynamic network conditions with little or no pre- ...


... NORM Delivery Service Model ...
... A NORM protocol instance (NormSession) is defined within the context ...
... 8], etc.). The NORM protocol design is principally driven by the assumption of a single sender ...
... necessary for each sender. However, in future versions of NORM, it is possible that some aspects of protocol operation (e.g., round-trip time ...
... senders. NORM provides for three types of bulk data content objects (NormObjects) to be reliably transported. These types include: ...
... (NormObjects) to be reliably transported. These types include: 1) static computer memory data content (NORM_OBJECT_DATA type), ...
... DATA type), 2) computer storage files (NORM_OBJECT_FILE type), and ...
... FILE type), and 3) non-finite streams of continuous data content (NORM_OBJECT_STREAM type). ...
... STREAM type). The distinction between NORM_OBJECT_DATA and NORM_OBJECT_FILE is simply to provide a "hint ...
... The distinction between NORM_OBJECT_DATA and NORM_OBJECT_FILE is simply to provide a "hint" to receivers ...
... transport object types, too. The use of the NORM_OBJECT_STREAM type is at the application's discretion and could be used to carry static ...
... STREAM type is at the application's discretion and could be used to carry static data or file content also. The NORM reliable stream service opens up ...
... additional possibilities such as serialized reliable messaging or other unbounded, perhaps dynamically produced content. The NORM_OBJECT_STREAM provides for reliable transport analogous to that ...
... of the Transmission Control Protocol (TCP), although NORM receivers will be able to begin receiving stream ...
... The applicability of this feature will depend upon the application. The NORM protocol also allows for a small amount of "out-of-band" data (sent as NORM ...
... NORM protocol also allows for a small amount of "out-of-band" data (sent as NORM_INFO messages) to be attached to the data content objects transmitted by the sender. This readily-available "out-of- ...
... coordination among senders and receivers. The NORM_INFO content is designed to be atomic in that its size MUST fit into the payload ...
... designed to be atomic in that its size MUST fit into the payload portion of a single NORM message. NORM ...
... NORM message. NORM does _not_ provide for global or application-level identification of data content within in its message headers ...
... identification of data content within in its message headers. Note the NORM_INFO out-of-band data mechanism could be leveraged by the application for this purpose if desired, or identification could ...
... out-of-band data mechanism could be leveraged by the application for this purpose if desired, or identification could alternatively be embedded within the data content. NORM does identify transmitted content (NormObjects) with transport identifiers ...
... identifiers (NormTransportIds) are assigned in a monotonically increasing fashion by each NORM sender during the course of a NormSession. Each sender maintains its NormTransportId assignments independently so that ...
... are assigned from a large, but fixed, numeric space in increasing order and may be reassigned during long-lived sessions. The NORM protocol provides mechanisms so that the sender application may ...
... meet their goals. To summarize, the NORM protocol provides reliable transport of different types of data content (including potentially mixed types). ...
... senders enqueue and transmit bulk content in the form of static data or files and/or non-finite, ongoing stream types. NORM senders provide for repair transmission of data and/or FEC content in ...
... NORM Scalability ...
... for reliability is required [9]. NORM is a protocol centered around the use of selective NACKs to request repairs of missing data. NORM ...
... NORM is a protocol centered around the use of selective NACKs to request repairs of missing data. NORM provides for the use of packet-level forward error correction (FEC ...
... NACK-oriented protocol. The principal factor in NORM scalability is the volume of feedback traffic ...
... reliability and congestion control. NORM uses probabilistic suppression of redundant feedback based on exponentially distributed random backoff timers. ...
... performance of this type of suppression relative to other techniques is described in [12]. NORM dynamically measures the group's roundtrip timing status to set its suppression and other ...
... group's roundtrip timing status to set its suppression and other protocol timers. This allows NORM to scale well while maintaining reliable data delivery transport ...
... facilitate feedback suppression. In typical Internet environments, it is expected that the NORM protocol will readily scale to group sizes on the order of tens of thousands of receivers ...
... quantity of feedback for this type of protocol is described in [13]. NORM is able to operate with a smaller amount of feedback than a single TCP connection, even with relatively large numbers of ...
... receivers. Thus, depending upon the network topology, it is possible that NORM may scale to larger group sizes. With respect to computer resource usage, the NORM ...
... NORM may scale to larger group sizes. With respect to computer resource usage, the NORM protocol does _not_ require that state be kept on all receivers ...
... kept on all receivers in the group. NORM senders maintain state only for receivers ...
... for receivers providing explicit congestion control feedback. NORM receivers must maintain state for each active sender ...
... sender. This may constrain the number of simultaneous senders in some uses of NORM. ...
... requirements and considerations that apply to the RMT NORM Building Block [4] and the RMT FEC ...
... FEC Building Block [5] also apply to the NORM protocol. The NORM ...
... NORM protocol. The NORM protocol SHALL be capable of operating in an end-to-end fashion with no assistance from intermediate systems beyond basic IP multicast ...
... routing, and forwarding services. While the techniques utilized in NORM are principally applicable to "flat" end-to-end IP multicast ...
... tree-based) multicast distribution if so desired. NORM can make use of reciprocal (among senders and receivers ...
... sender(s). NORM is compatible with IPv4 and IPv6. Additionally, NORM may be ...
... NORM is compatible with IPv4 and IPv6. Additionally, NORM may be used with networks employing Network Address Translation ...


... senders and/or receivers. NORM senders transmit data content in the form of NormObjects to the session destination address ...
... 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 ...
... transmitting within the context of a single NORM session (i.e., many-to-many operation), any type of interactive coordination among NORM senders ...
... NORM session (i.e., many-to-many operation), any type of interactive coordination among NORM senders is assumed to be controlled by the application or higher protocol layer. There are ...
... application layer coordination. As previously noted, NORM allows for reliable transmission of three different basic types of data content. The first type is NORM ...
... NORM allows for reliable transmission of three different basic types of data content. The first type is NORM_OBJECT_DATA, which is used for static, persistent blocks of data content maintained in the sender's application memory storage. The ...
... content maintained in the sender's application memory storage. The second type is NORM_OBJECT_FILE, which corresponds to data stored in the sender's non-volatile file system ...
... the sender's non-volatile file system. The NORM_OBJECT_DATA and NORM_OBJECT_FILE types ...
... file system. The NORM_OBJECT_DATA and NORM_OBJECT_FILE types both represent "NormObjects" of finite but potentially very large size. The third type of data content is ...
... FILE types both represent "NormObjects" of finite but potentially very large size. The third type of data content is NORM_OBJECT_STREAM, which corresponds to an ongoing transmission of undefined length. This is analogous to the reliable stream ...
... stream content is application-defined and may be byte or message oriented. The NORM protocol provides for "flushing" of the stream to expedite delivery ...
... stream to expedite delivery or possibly enforce application message boundaries. NORM protocol implementations may offer either (or both) in-order delivery ...
... stream to the receiver application. In either case, NORM sender and receiver implementations provide buffering ...
... FEC coding blocks and symbols for transmission by the sender. In NORM, an FEC encoding ...
... encoding symbol directly corresponds to the payload of NORM_DATA messages or "segment ...
... FEC codes are used, the payload of NORM_DATA messages sent for the first portion of a FEC encoding ...
... sender's NormNodeId, NormInstanceId, and a temporary NormObjectTransportId. Depending upon the implementation, individual NORM senders may manage their NormInstanceIds independently, or a common NormInstanceId may be agreed upon for all participating nodes ...
... session if needed as a session identifier. NORM NormObjectTransportId data content identifiers are sender ...
... identifiers may be re-used. Note that globally unique identification of transported data content is not provided by NORM and, if required, must be managed by the NORM application. The individual segments ...
... unique identification of transported data content is not provided by NORM and, if required, must be managed by the NORM application. The individual segments or symbols of the NormObject are further ...
... A NORM sender primarily generates messages of type NORM_DATA. These messages carry original data segments ...
... A NORM sender primarily generates messages of type NORM_DATA. These messages carry original data segments or FEC ...
... FEC encoding. However, the NORM implementation MAY be optionally configured to proactively transmit some amount of redundant FEC ...
... A sender message of type NORM_INFO is also defined and is used to carry OPTIONAL "out-of-band" context ...
... context information for a given transport object. A single NORM_INFO message can be associated with a NormObject. Because of its atomic nature, missing NORM_INFO ...
... transport object. A single NORM_INFO message can be associated with a NormObject. Because of its atomic nature, missing NORM_INFO messages can be NACKed and repaired with a slightly lower delay process than NORM ...
... NORM_INFO messages can be NACKed and repaired with a slightly lower delay process than NORM's general FEC-encoded data content. NORM_INFO may ...
... process than NORM's general FEC-encoded data content. NORM_INFO may serve special purposes for some bulk transfer, reliable multicast ...
... ascertain contextual information on the current content being transmitted. The NACK process for NORM_INFO will be described later. When the NORM_INFO message type ...
... NACK process for NORM_INFO will be described later. When the NORM_INFO message type is used, its transmission should precede transmission of any NORM ...
... NORM_INFO message type is used, its transmission should precede transmission of any NORM_DATA message for the associated NormObject. ...
... The sender also generates messages of type NORM_CMD to assist in certain protocol operations such as congestion control ...
... round trip time estimation, receiver synchronization, and optional positive acknowledgment requests or application defined commands. The transmission of NORM_CMD messages from the sender ...
... application-level session management mechanisms that can make use of information available to the underlying NORM protocol engine (e.g., round-trip timing, transmission rate ...
... transmission rate, etc.). NORM receivers generate messages of type NORM_NACK or NORM ...
... NORM receivers generate messages of type NORM_NACK or NORM_ACK ...
... NORM receivers generate messages of type NORM_NACK or NORM_ACK in response to transmissions of data and commands from a sender ...
... response to transmissions of data and commands from a sender. The NORM_NACK messages are generated to request repair of detected data transmission losses. Receivers ...
... data packets and end-of-transmission commands from the sender. NORM_ACK messages are generated in response to certain commands transmitted by the sender ...
... response to certain commands transmitted by the sender. In the general (and most scalable) protocol mode, NORM_ACK messages are sent only in response to congestion control ...
... sender. The feedback volume of these congestion control NORM_ACK messages is controlled using the same timer ...
... controlled using the same timer-based probabilistic suppression techniques as for NORM_NACK messages to avoid feedback implosion. In order to meet potential application requirements ...
... application requirements for positive acknowledgment from receivers, other NORM_ACK messages are defined and available for use. All sender and receiver ...
... quantity of multicast data transmitted by the group. When NORM's congestion control algorithm is enabled the rate for senders ...
... The operation of the NORM protocol is based primarily upon the concepts presented in the Nack-Oriented Reliable Multicast (NORM ...
... NORM protocol is based primarily upon the concepts presented in the Nack-Oriented Reliable Multicast (NORM) Building Block document [4]. This includes the basic NORM ...
... NORM) Building Block document [4]. This includes the basic NORM architecture and the data transmission, repair, and feedback ...
... strategies discussed in that document. Additional reliable multicast building blocks are applied in creating the full NORM protocol instantiation [16]. NORM ...
... NORM protocol instantiation [16]. NORM also makes use of Forward Error Correction encoding ...
... encoding techniques for repair messaging and optional transmission robustness as described in [10]. NORM uses the FEC Payload ID as ...
... congestion control, this document includes a baseline congestion control mechanism (NORM-CC) based on the TCP-Friendly Multicast Congestion Control (TFMCC ...
... While the various features of NORM are designed to provide some measure of general purpose utility, it is important to emphasize the understanding that "no one size fits all" in the reliable multicast transport ...
... congestion control, and transport across low capacity connections. NORM contains various parameters to accommodate many of these differing requirements ...
... contains various parameters to accommodate many of these differing requirements. The NORM protocol and its mechanisms MAY be applied in multicast applications outside of bulk data transfer ...
... in this document. The ability of NORM to provide reliable data delivery is also governed by any buffer ...
... constraints of the sender and receiver applications. NORM protocol implementations SHOULD be designed to operate with the greatest efficiency and robustness possible within application-defined buffer ...
... bandwidth product of the network topology. NORM performs best when allowed more buffering resources than typical point-to-point ...
... point-to-point transport protocols. This is because NORM feedback suppression is based upon randomly- delayed transmissions from the receiver set, rather than immediately ...
... performance. Large buffer sizes allow the NORM protocol to perform most efficiently in large delay-bandwidth topologies ...
... topologies and allow for longer feedback suppression backoff timeouts. This yields improved group size scalability. NORM can operate with reduced buffering but at a cost of decreased efficiency (lower relative goodput ...


... This document specifies the following message types and mechanisms which are REQUIRED in complying NORM protocol implementations: +--------------------+-----------------------------------------------+ ...
... Message Type | Purpose | +--------------------+-----------------------------------------------+ |NORM_DATA | Sender message for application data | ...
... application data | | | transmission. Implementations must support | | | at least one of the NORM_OBJECT_DATA, | | | NORM_OBJECT_FILE, or NORM ...
... | | at least one of the NORM_OBJECT_DATA, | | | NORM_OBJECT_FILE, or NORM_OBJECT_STREAM | ...
... NORM_OBJECT_DATA, | | | NORM_OBJECT_FILE, or NORM_OBJECT_STREAM | | | delivery ...
... | | delivery services. The use of the NORM FEC | | | Object Transmission Information ...
... Object Transmission Information header | | | extension is OPTIONAL with NORM_DATA | | | messages. | +--------------------+-----------------------------------------------+ ...
... | | messages. | +--------------------+-----------------------------------------------+ |NORM_CMD(FLUSH) | Sender command to excite receivers ...
... Sender command to excite receivers for repair | | | requests in lieu of ongoing NORM_DATA | | | transmissions. Note the use of the | | | NORM ...
... NORM_DATA | | | transmissions. Note the use of the | | | NORM_CMD(FLUSH) for positive acknowledgment | | | of data receipt is OPTIONAL. | ...
... | | of data receipt is OPTIONAL. | +--------------------+-----------------------------------------------+ |NORM_CMD(SQUELCH) | Sender command to advertise its current valid ...
... | | for repair. | +--------------------+-----------------------------------------------+ |NORM_CMD(REPAIR_ADV)| Sender command to advertise current repair | ...
... topologies. | +--------------------+-----------------------------------------------+ |NORM_CMD(CC) | Sender ...
... round trip timing collection is used). | +--------------------+-----------------------------------------------+ |NORM_NACK | Receiver message used to request repair of | ...
... +--------------------+-----------------------------------------------+ |NORM_ACK | Receiver message used to proactively provide | ...
... | | feedback for congestion control purposes. | | | Also used with the OPTIONAL NORM Positive | | | Acknowledgment Process. | +--------------------+-----------------------------------------------+ ...
... This document also describes the following message types and associated mechanisms which are OPTIONAL for complying NORM protocol implementations: ...
... Message Type | Purpose | +----------------------+----------------------------------------------+ |NORM_INFO | Sender message for providing ancillary | | | context ...
... Sender message for providing ancillary | | | context information associated with NORM | | | transport objects. The use of the NORM ...
... NORM | | | transport objects. The use of the NORM FEC | | | Object Transmission Information ...
... Object Transmission Information header | | | extension is OPTIONAL with NORM_INFO | | | messages. | +----------------------+----------------------------------------------+ ...
... | | messages. | +----------------------+----------------------------------------------+ |NORM_CMD(EOT) | Sender command to indicate it has reached | ...
... | | respond to repair requests. | +----------------------+----------------------------------------------+ |NORM_CMD(ACK_REQ) | Sender ...
... | | sent outside of the context of the bulk data | | | content being transmitted. The NORM Positive| | | Acknowledgment Procedure associated with this| | | message type ...
... message type is OPTIONAL. | +----------------------+----------------------------------------------+ |NORM_CMD(APPLICATION) | Sender command containing application-defined| ...
... | | bulk data content being transmitted. | +----------------------+----------------------------------------------+ |NORM_REPORT | Optional message type reserved for | | | experimental ...
... message type reserved for | | | experimental implementations of the NORM | | | protocol. | +----------------------+----------------------------------------------+ ...


... As mentioned in Section 2.1, there are two primary classes of NORM messages: sender messages and receiver ...
... messages: sender messages and receiver messages. NORM_CMD, NORM ...
... NORM_CMD, NORM_INFO, and NORM_DATA message types are generated by senders ...
... CMD, NORM_INFO, and NORM_DATA message types are generated by senders of ...
... DATA message types are generated by senders of data content, and NORM_NACK and NORM_ACK messages ...
... data content, and NORM_NACK and NORM_ACK messages generated by receivers ...
... message type of NORM_REPORT is also provided for experimental purposes. This section describes the message formats ...
... experimental purposes. This section describes the message formats used by the NORM protocol. These messages and their fields are referenced in the detailed functional description of the NORM ...
... NORM protocol. These messages and their fields are referenced in the detailed functional description of the NORM protocol given in Section 5. Individual NORM messages are designed to be compatible with the MTU ...
... messages and their fields are referenced in the detailed functional description of the NORM protocol given in Section 5. Individual NORM messages are designed to be compatible with the MTU limitations of ...
... IPv6, and UDP. The current NORM protocol specification assumes UDP encapsulation ...
... leverages the transport features of UDP. The NORM messages are independent of network addresses ...
... NORM Common Message Header and Extensions ...
... There are some common message fields contained in all NORM message types. Additionally, a header extension mechanism is defined to ...
... message types. Additionally, a header extension mechanism is defined to expand the functionality of the NORM protocol without revision to this document. All NORM protocol messages ...
... expand the functionality of the NORM protocol without revision to this document. All NORM protocol messages begin with a common header ...
... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NORM Common Message Header Format ...
... version" field is a 4-bit value indicating the protocol version number. NORM implementations SHOULD ignore received messages with version numbers different from their own. This number is intended to ...
... version numbers different from their own. This number is intended to indicate and distinguish upgrades of the protocol which may be non- interoperable. The NORM version number for this specification is 1. ...
... The message "type" field is a 4-bit value indicating the NORM protocol message type. These types are defined as follows: ...
... Message Value NORM_INFO 1 NORM_DATA 2 ...
... NORM_INFO 1 NORM_DATA 2 NORM_CMD ...
... NORM_DATA 2 NORM_CMD 3 NORM ...
... NORM_CMD 3 NORM_NACK 4 NORM ...
... NORM_NACK 4 NORM_ACK 5 NORM ...
... NORM_ACK 5 NORM_REPORT 6 The 8-bit ...
... bit value that is set by the message originator as a monotonically increasing number incremented with each NORM message transmitted to a given destination address. A "sequence" field number space ...
... packet loss for congestion control purposes. Note that this value is NOT used in the NORM protocol to detect missing reliable data content and does NOT identify the application data ...
... message authentication, the "sequence" field may also be leveraged for protection from message "replay" attacks, particularly of NORM_NACK or other feedback messages. In this case, the receiver ...
... 32-bit value identifying the node that sent the message. A participant's NORM node identifier (NormNodeId) can be set according to application needs but unique identifiers ...
... RTP) specification [18] may be applicable to use for NORM node identifiers. At this point in time, the protocol makes no assumptions about how these unique identifiers ...
... unique identifiers are actually assigned. NORM Header Extensions ...
... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NORM Variable Length Header Extension Format ...
... Header Extension Content | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NORM Fixed Length (32-bit) Header Extension Format ...
... header extension format is defined for each header extension type defined for NORM messages. Some header extensions are defined within this document ...
... messages. Some header extensions are defined within this document for NORM baseline FEC and congestion control operations. ...
... NORM sender messages include the NORM_DATA type, the NORM ...
... NORM sender messages include the NORM_DATA type, the NORM_INFO type, ...
... NORM sender messages include the NORM_DATA type, the NORM_INFO type, and the NORM_CMD ...
... DATA type, the NORM_INFO type, and the NORM_CMD type. NORM_DATA and NORM ...
... and the NORM_CMD type. NORM_DATA and NORM_INFO messages contain application data ...
... NORM_CMD type. NORM_DATA and NORM_INFO messages contain application data content while NORM ...
... NORM_INFO messages contain application data content while NORM_CMD messages are used for various protocol control functions. ...
... NORM_DATA Message ...
... The NORM_DATA message is expected to be the predominant type transmitted by NORM senders ...
... NORM_DATA message is expected to be the predominant type transmitted by NORM senders. These messages are used to encapsulate segmented data content for objects of type NORM ...
... NORM senders. These messages are used to encapsulate segmented data content for objects of type NORM_OBJECT_DATA, NORM_OBJECT_FILE, and NORM ...
... segmented data content for objects of type NORM_OBJECT_DATA, NORM_OBJECT_FILE, and NORM_OBJECT_STREAM. NORM ...
... NORM_OBJECT_DATA, NORM_OBJECT_FILE, and NORM_OBJECT_STREAM. NORM_DATA messages ...
... NORM_OBJECT_FILE, and NORM_OBJECT_STREAM. NORM_DATA messages may contain original or FEC ...
... application data content. The format of NORM_DATA messages is comprised of three logical portions: 1) a fixed-format NORM ...
... NORM_DATA messages is comprised of three logical portions: 1) a fixed-format NORM_DATA header portion, 2) a FEC ...
... application data content. Note for objects of type NORM_OBJECT_STREAM, the payload portion contains additional fields ...
... payload portion contains additional fields used to appropriately recover stream content. NORM implementations MAY also extend the NORM_DATA header ...
... stream content. NORM implementations MAY also extend the NORM_DATA header to include a FEC Object Transmission Information ...
... 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_DATA Message Format ...
... payload_len" and "payload_offset" fields are present only for objects of type NORM_OBJECT_STREAM. The "payload ...
... payload_offset" fields allow senders to arbitrarily vary the size of NORM_DATA payload segments for streams. ...
... meet unique streaming requirements. For objects of types NORM_OBJECT_FILE and NORM_OBJECT_DATA, these fields are unnecessary since the receiver ...
... requirements. For objects of types NORM_OBJECT_FILE and NORM_OBJECT_DATA, these fields are unnecessary since the receiver can calculate the payload length ...
... in Section 5.1.1. The "payload_reserved" field is kept for anticipated future NORM stream control functions. When systematic FEC ...
... encapsulated application data segment for those NORM_DATA messages containing source data symbols. In NORM_DATA messages ...
... segment for those NORM_DATA messages containing source data symbols. In NORM_DATA messages that contain parity information, these fields are not actual length or ...
... The "version", "type", "hdr_len", "sequence", and "source_id" fields form the NORM Common Message Header as described in Section 4.1. The value of the NORM ...
... NORM Common Message Header as described in Section 4.1. The value of the NORM_DATA "type" field is 2. The NORM_DATA _base_ "hdr_len" value is 4 (32-bit ...
... Message Header as described in Section 4.1. The value of the NORM_DATA "type" field is 2. The NORM_DATA _base_ "hdr_len" value is 4 (32-bit words) plus the size of the ...
... payload_id" is two 32-bit words. In this case the NORM_DATA base "hdr_len" value is 6. The cumulative size of any header extensions ...
... 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 ...
... encoding and decoding this field is described in the RMT NORM Building Block document [4]. ...
... maximum backoff timer value used in the timer-based NORM NACK feedback suppression. This 4-bit ...
... 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 ...
... of "0x8" represents 5.0e+01 (50), a value of "0x1" represents 1.0e+02 (100), and a value of "0xf" represents 5.0e+08. For NORM feedback suppression purposes, the group size does not need to be represented ...
... 10,000 ("gsize" = 0x4) is recommended for general purpose reliable multicast applications using the NORM protocol. The "flags" field contains a number of different binary flags ...
... | Flag | Value | Purpose | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_REPAIR | 0x01 | Indicates message is a repair | | | | transmission | +--------------------+-------+-----------------------------------------+ ...
... | | | transmission | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_EXPLICIT | 0x02 | Indicates a repair segment intended to | | | | meet a specific receiver ...
... | | | filling. | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_INFO | 0x04 | Indicates availability of NORM_INFO for | | | | object. | ...
... +--------------------+-------+-----------------------------------------+ |NORM_FLAG_INFO | 0x04 | Indicates availability of NORM_INFO for | | | | object. | +--------------------+-------+-----------------------------------------+ ...
... | | | object. | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_UNRELIABLE| 0x08 | Indicates that repair transmissions for | | | | the specified object will be unavailable| ...
... | | | (One-shot, best effort transmission). | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_FILE | 0x10 | Indicates object is "file-based" data | | | | (hint to use disk storage for | ...
... | | | reception). | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_STREAM | 0x20 | Indicates object is of type | | | | NORM ...
... NORM_FLAG_STREAM | 0x20 | Indicates object is of type | | | | NORM_OBJECT_STREAM. | +--------------------+-------+-----------------------------------------+ ...
... STREAM. | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_MSG_START | 0x40 | Marks the first segment of application | ...
... segment of application | | | | messages embedded in | | | | NORM_OBJECT_STREAMs. | +--------------------+-------+-----------------------------------------+ ...
... +--------------------+-------+-----------------------------------------+ NORM_FLAG_REPAIR is set when the associated message is a repair transmission. This information can be used by receivers to help ...
... NACK process upon receipt of new (non-repair) data content. NORM_FLAG_EXPLICIT is used to mark repair messages sent when the data sender has exhausted its ability ...
... multicast topology with disparate repair needs. NORM_FLAG_INFO is set only when optional NORM_INFO content is actually available for the associated object. Thus, ...
... topology with disparate repair needs. NORM_FLAG_INFO is set only when optional NORM_INFO content is actually available for the associated object. Thus, receivers ...
... receivers will NACK for retransmission of NORM_INFO only when it is available for a given object. NORM_FLAG_UNRELIABLE is set when the ...
... retransmission of NORM_INFO only when it is available for a given object. NORM_FLAG_UNRELIABLE is set when the sender wishes to transmit an object with only "best effort" delivery ...
... 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 ...
... 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 may inadvertently request repair of such objects when all segments ...
... transport_id" sequence is noted). In this case, the sender should invoke the NORM_CMD(SQUELCH) process as described in Section 4.2.3. NORM ...
... NORM_CMD(SQUELCH) process as described in Section 4.2.3. NORM_FLAG_FILE can be set as a "hint" from the sender that ...
... the associated object should be stored in non-volatile storage. NORM_FLAG_STREAM is set when the identified object is of type NORM ...
... NORM_FLAG_STREAM is set when the identified object is of type NORM_OBJECT_STREAM. When NORM_FLAG_STREAM ...
... NORM_OBJECT_STREAM. When NORM_FLAG_STREAM is set, the NORM ...
... NORM_FLAG_STREAM is set, the NORM_FLAG_MSG_START can be optionally used to mark the first data segments ...
... segments of application-layer messages transported within the NORM stream. This allows NORM receiver ...
... NORM stream. This allows NORM receiver applications to "synchronize" with NORM senders and to be able to properly interpret application layer ...
... stream. This allows NORM receiver applications to "synchronize" with NORM senders and to be able to properly interpret application layer data when joining a NORM ...
... NORM senders and to be able to properly interpret application layer data when joining a NORM session already in progress. In practice, the NORM ...
... NORM session already in progress. In practice, the NORM implementation MAY set this flag for the segment transmitted following an explicit "flush" of the stream ...
... FEC encoded content. Small block, systematic codes ("fec_id" = 129) are expected to be used for most NORM purposes and the NORM_OBJECT_STREAM ...
... encoded content. Small block, systematic codes ("fec_id" = 129) are expected to be used for most NORM purposes and the NORM_OBJECT_STREAM requires systematic FEC ...
... current state kept for a given source). During the course of its transmission within a NORM session, an object is uniquely identified by the concatenation ...
... sender "source_id" and the given "object_transport_id". Note that NORM_INFO messages associated with the identified object carry the same "object_transport ...
... The "fec_payload_id" identifies the attached NORM_DATA "payload" content. The size and format of the "fec_payload ...
... 5]. The "source_block_number" identifies the coding block's relative position with a NormObject. Note that, for NormObjects of type NORM_OBJECT_STREAM, the "source_block_number" may wrap for very long lived sessions ...
... identifier for the attached segment with respect to the NORM sender's instance within a session. ...
... FEC Building Block document [5]) is required to properly receive and decode NORM transport objects. This information MAY be provided as out-of-band</