RFC3940 日本語訳

3940 Negative-acknowledgment (NACK)-Oriented Reliable Multicast (NORM)Protocol. B. Adamson, C. Bormann, M. Handley, J. Macker. November 2004. (Format: TXT=220549 bytes) (Status: EXPERIMENTAL)
プログラムでの自動翻訳です。
英語原文

Network Working Group                                         B. Adamson
Request for Comments: 3940                                           NRL
Category: Experimental                                        C. Bormann
                                                 Universitaet Bremen TZI
                                                              M. Handley
                                                                     UCL
                                                               J. Macker
                                                                     NRL
                                                           November 2004

コメントを求めるワーキンググループB.アダムソン要求をネットワークでつないでください: 3940年のNRLカテゴリ: 実験的なC.のM.ハンドレーUCL J.Macker NRLボルマンUniversitaetブレーメンTZI2004年11月

                Negative-acknowledgment (NACK)-Oriented
                   Reliable Multicast (NORM) Protocol

否定応答の(ナック)指向の信頼できるマルチキャスト(標準)プロトコル

Status of this Memo

この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.

このメモはインターネットコミュニティのためにExperimentalプロトコルを定義します。 それはどんな種類のインターネット標準も指定しません。 議論と改善提案は要求されています。 このメモの分配は無制限です。

Copyright Notice

版権情報

   Copyright (C) The Internet Society (2004).

Copyright(C)インターネット協会(2004)。

Abstract

要約

   This document describes the messages and procedures of the Negative-
   acknowledgment (NACK) Oriented Reliable Multicast (NORM) protocol.
   This protocol is designed to provide end-to-end reliable transport of
   bulk data objects or streams over generic IP multicast routing and
   forwarding services.  NORM uses a selective, negative acknowledgment
   mechanism for transport reliability and offers additional protocol
   mechanisms to allow for operation with minimal "a priori"
   coordination among senders and receivers.  A congestion control
   scheme is specified to allow the NORM protocol to fairly share
   available network bandwidth with other transport protocols such as
   Transmission Control Protocol (TCP).  It is capable of operating with
   both reciprocal multicast routing among senders and receivers and
   with asymmetric connectivity (possibly a unicast return path) between
   the senders and receivers.  The protocol offers a number of features
   to allow different types of applications or possibly other higher
   level transport protocols to utilize its service in different ways.
   The protocol leverages the use of FEC-based repair and other IETF
   reliable multicast transport (RMT) building blocks in its design.

このドキュメントはNegative承認(ナック)指向のReliable Multicast(NORM)プロトコルのメッセージと手順について説明します。 このプロトコルは、大量のデータ・オブジェクトかストリームの終わりから終わりへの信頼できる輸送をジェネリックIPマルチキャストルーティングと転送サービスの上に提供するように設計されています。 NORMは、輸送の信頼性に選択していて、否定的な承認メカニズムを使用して、送付者と受信機の中に「先験的な」最小量のコーディネートがある状態で操作を考慮するために追加議定書メカニズムを提供します。 輻輳制御体系は、NORMプロトコルが通信制御プロトコル(TCP)などの他のトランスポート・プロトコルと利用可能なネットワーク回線容量を公正に共有するのを許容するために指定されます。 送付者と受信機の間には、送付者の中の相互的なマルチキャストルーティングと受信機の両方と非対称の接続性(ことによるとユニキャストリターンパス)がある状態で、それは作動できます。 プロトコルは異なったタイプのアプリケーションかことによると他の、より高い平らなトランスポート・プロトコルが異なった方法でサービスを利用するのを許容する多くの特徴を提供します。 プロトコルはデザインにおけるFECベースの修理と他のIETFの信頼できるマルチキャスト輸送(RMT)ブロックの使用を利用します。

Adamson, et al.               Experimental                      [Page 1]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [1ページ]実験的なRFC3940標準プロトコル2004年11月

Table of Contents

目次

   1.  Introduction and Applicability. . . . . . . . . . . . . . . .   3
       1.1. NORM Delivery Service Model. . . . . . . . . . . . . . .   4
       1.2. NORM Scalability . . . . . . . . . . . . . . . . . . . .   6
       1.3. Environmental Requirements and Considerations. . . . . .   7
   2.  Architecture Definition . . . . . . . . . . . . . . . . . . .   7
       2.1. Protocol Operation Overview. . . . . . . . . . . . . . .   9
       2.2. Protocol Building Blocks . . . . . . . . . . . . . . . .  10
       2.3. Design Tradeoffs . . . . . . . . . . . . . . . . . . . .  11
   3.  Conformance Statement . . . . . . . . . . . . . . . . . . . .  12
   4.  Message Formats . . . . . . . . . . . . . . . . . . . . . . .  13
       4.1. NORM Common Message Header and Extensions. . . . . . . .  14
       4.2. Sender Messages. . . . . . . . . . . . . . . . . . . . .  16
            4.2.1. NORM_DATA Message . . . . . . . . . . . . . . . .  16
            4.2.2. NORM_INFO Message . . . . . . . . . . . . . . . .  24
            4.2.3. NORM_CMD Messages . . . . . . . . . . . . . . . .  26
       4.3. Receiver Messages. . . . . . . . . . . . . . . . . . . .  43
            4.3.1. NORM_NACK Message . . . . . . . . . . . . . . . .  43
            4.3.2. NORM_ACK Message. . . . . . . . . . . . . . . . .  50
       4.4. General Purpose Messages . . . . . . . . . . . . . . . .  52
            4.4.1. NORM_REPORT Message . . . . . . . . . . . . . . .  52
   5.  Detailed Protocol Operation . . . . . . . . . . . . . . . . .  52
       5.1. Sender Initialization and Transmission . . . . . . . . .  54
            5.1.1. Object Segmentation Algorithm . . . . . . . . . .  55
       5.2. Receiver Initialization and Reception. . . . . . . . . .  57
       5.3. Receiver NACK Procedure. . . . . . . . . . . . . . . . .  57
       5.4. Sender NACK Processing and Response. . . . . . . . . . .  59
            5.4.1. Sender Repair State Aggregation . . . . . . . . .  60
            5.4.2. Sender FEC Repair Transmission Strategy . . . . .  61
            5.4.3. Sender NORM_CMD(SQUELCH) Generation . . . . . . .  62
            5.4.4. Sender NORM_CMD(REPAIR_ADV) Generation. . . . . .  62
       5.5. Additional Protocol Mechanisms . . . . . . . . . . . . .  63
            5.5.1. Greatest Round-trip Time Collection . . . . . . .  63
            5.5.2. NORM Congestion Control Operation . . . . . . . .  64
            5.5.3. NORM Positive Acknowledgment Procedure. . . . . .  72
            5.5.4. Group Size Estimate . . . . . . . . . . . . . . .  74
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  75
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  75
   8.  Suggested Use . . . . . . . . . . . . . . . . . . . . . . . .  75
   9.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  76
   10. References. . . . . . . . . . . . . . . . . . . . . . . . . .  76
       10.1. Normative References. . . . . . . . . . . . . . . . . .  76
       10.2. Informative References. . . . . . . . . . . . . . . . .  77
   11. Authors' Addresses. . . . . . . . . . . . . . . . . . . . . .  79
       Full Copyright Statement. . . . . . . . . . . . . . . . . . .  80

1. 序論と適用性。 . . . . . . . . . . . . . . . 3 1.1. 標準デリバリ・サービスモデル。 . . . . . . . . . . . . . . 4 1.2. 標準スケーラビリティ. . . . . . . . . . . . . . . . . . . . 6 1.3。 環境要求事項と問題。 . . . . . 7 2. アーキテクチャ定義. . . . . . . . . . . . . . . . . . . 7 2.1。 操作概要について議定書の中で述べてください。 . . . . . . . . . . . . . . 9 2.2. ブロック. . . . . . . . . . . . . . . . 10 2.3について議定書の中で述べてください。 見返り. . . . . . . . . . . . . . . . . . . . 11 3を設計してください。 順応声明. . . . . . . . . . . . . . . . . . . . 12 4。 メッセージ・フォーマット. . . . . . . . . . . . . . . . . . . . . . . 13 4.1。 標準の一般的なメッセージヘッダーと拡大。 . . . . . . . 14 4.2. 送付者メッセージ。 . . . . . . . . . . . . . . . . . . . . 16 4.2.1. 標準_データメッセージ. . . . . . . . . . . . . . . . 16 4.2.2。 標準_インフォメーションメッセージ. . . . . . . . . . . . . . . . 24 4.2.3。 標準_CMDメッセージ. . . . . . . . . . . . . . . . 26 4.3。 受信機メッセージ。 . . . . . . . . . . . . . . . . . . . 43 4.3.1. 標準_ナックMessage. . . . . . . . . . . . . . . . 43 4.3.2。 標準_ACKメッセージ。 . . . . . . . . . . . . . . . . 50 4.4. 汎用のメッセージ. . . . . . . . . . . . . . . . 52 4.4.1。 標準_はメッセージ. . . . . . . . . . . . . . . 52 5を報告します。 詳細なプロトコル操作. . . . . . . . . . . . . . . . . 52 5.1。 送付者初期設定とトランスミッション. . . . . . . . . 54 5.1.1。 オブジェクト分割アルゴリズム. . . . . . . . . . 55 5.2。 受信機初期設定とレセプション。 . . . . . . . . . 57 5.3. 受信機ナック手順。 . . . . . . . . . . . . . . . . 57 5.4. 送付者ナックの処理と応答。 . . . . . . . . . . 59 5.4.1. 送付者修理州の集合. . . . . . . . . 60 5.4.2。 送付者FECはトランスミッション戦略. . . . . 61 5.4.3を修理します。 送付者標準_CMD(押しつぶす)世代. . . . . . . 62 5.4.4。 送付者標準_CMD(修理_ADV)世代。 . . . . . 62 5.5. 追加議定書メカニズム. . . . . . . . . . . . . 63 5.5.1。 最も大きい往復の時間収集. . . . . . . 63 5.5.2。 標準混雑制御機能. . . . . . . . 64 5.5.3。 標準肯定応答手順。 . . . . . 72 5.5.4. サイズ見積り. . . . . . . . . . . . . . . 74 6を分類してください。 セキュリティ問題. . . . . . . . . . . . . . . . . . . 75 7。 IANA問題. . . . . . . . . . . . . . . . . . . . . 75 8。 使用. . . . . . . . . . . . . . . . . . . . . . . . 75 9を示しました。 承認. . . . . . . . . . . . . . . . . . . . . . . 76 10。 参照。 . . . . . . . . . . . . . . . . . . . . . . . . . 76 10.1. 引用規格。 . . . . . . . . . . . . . . . . . 76 10.2. 有益な参照。 . . . . . . . . . . . . . . . . 77 11. 作者のアドレス。 . . . . . . . . . . . . . . . . . . . . . 79 完全な著作権宣言文。 . . . . . . . . . . . . . . . . . . 80

Adamson, et al.               Experimental                      [Page 2]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [2ページ]実験的なRFC3940標準プロトコル2004年11月

1.  Introduction and Applicability

1. 序論と適用性

   The Negative-acknowledgment (NACK) Oriented Reliable Multicast (NORM)
   protocol is designed to provide reliable transport of data from one
   or more sender(s) to a group of receivers over an 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
   and topologies.  The NORM protocol design provides support for
   distributed multicast session participation with minimal coordination
   among senders and receivers.  NORM allows senders and receivers to
   dynamically join and leave multicast sessions at will with minimal
   overhead for control information and timing synchronization among
   participants.  To accommodate this capability, NORM protocol message
   headers contain some common information allowing receivers to easily
   synchronize to senders throughout the 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-
   configuration.  The protocol is purposely designed to be tolerant of
   inaccurate timing estimations or lossy conditions that may occur in
   many networks including mobile and wireless.  The protocol is also
   designed to exhibit convergence and efficient operation even in
   situations of heavy packet loss and large queuing or transmission
   delays.

Negative-承認(ナック)指向のReliable Multicast(NORM)プロトコルは、データの信頼できる1人以上の送付者から受信機のグループまでの輸送をIPマルチキャストネットワークの上に提供するように設計されています。 NORMのプライマリデザイン目標はことによると種々雑多なIPのネットワークとtopologiesの向こう側に効率的で、スケーラブルで、強健な大量のデータ(例えば、コンピュータファイル、永続的なデータの伝達)に転送を供給することです。 NORMプロトコルデザインは送付者と受信機の中で分配されたマルチキャストセッション参加のサポートに最小量のコーディネートを提供します。 NORMは送付者と受信機にダイナミックに加わって、制御情報とタイミング同期のために関係者の中でマルチキャストセッションを最小量のオーバーヘッドに自由自在に預けさせます。 この能力を収容するために、NORMプロトコルメッセージヘッダーは受信機が信頼できるマルチキャストセッションの生涯の間中容易に送付者に連動する何らかの一般的な情報を含んでいます。 NORMは、自己にほとんどプレ構成がないさまざまなダイナミックなネットワーク状態に適合しているように設計されています。 プロトコルは、モバイルを含む多くのネットワークで現れるかもしれない不正確なタイミング見積りか損失性状態において許容性があってワイヤレスであるためにわざわざ設計されています。 また、プロトコルは、重いパケット損失と大きい列を作りかトランスミッション遅れの状況さえにおける集合と効率的な操作を示すように設計されています。

   This document is a product of the IETF RMT WG and follows the
   guidelines provided in RFC 3269 [1].  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 [2].

このドキュメントは、IETF RMT WGの製品であり、RFC3269[1]に提供されたガイドラインに従います。 キーワード“MUST"、「必須NOT」が「必要です」、“SHALL"、「」、“SHOULD"、「「推薦され」て、「5月」の、そして、「任意」のNOTはBCP14(RFC2119[2])で説明されるように本書では解釈されることであるべきです。

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.

このメモはRFC2357によると、Reliable Multicast Transportプロトコルを完全に指定するのに必要な定義の一部を含んでいます。 RFC2357に従って、インターネットでのどんな信頼できるマルチキャストプロトコルの使用も適切な輻輳制御体系を必要とします。

   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.

そのような体系が利用可能であるか、または既存の体系が適切であると立証されるのを待っている間、Reliable Multicast Transportワーキンググループ(RMT)はCommentsのために「実験的な」カテゴリでこのRequestを発行します。

   It is the intent of RMT to re-submit this specification as an IETF
   Proposed Standard as soon as the above condition is met.

それは上記の状態の次第IETF Proposed Standardが会われるときRMTがこの仕様を再提出する意図です。

Adamson, et al.               Experimental                      [Page 3]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [3ページ]実験的なRFC3940標準プロトコル2004年11月

1.1.  NORM Delivery Service Model

1.1. 標準デリバリ・サービスモデル

   A NORM protocol instance (NormSession) is defined within the context
   of participants communicating connectionless (e.g., Internet Protocol
   (IP) or User Datagram Protocol (UDP)) packets over a network using
   pre-determined addresses and host port numbers.  Generally, the
   participants exchange packets using an IP multicast group address,
   but unicast transport may also be established or applied as an
   adjunct to multicast delivery.  In the case of multicast, the
   participating NormNodes will communicate using a common IP multicast
   group address and port number that has been chosen via means outside
   the context of the given NormSession.  Other IETF data format and
   protocol standards exist that may be applied to describe and convey
   the required "a priori" information for a specific NormSession (e.g.,
   Session Description Protocol (SDP) [7], Session Announcement Protocol
   (SAP) [8], etc.).

NORMプロトコルインスタンス(NormSession)はネットワークの上で予定されたアドレスとホストポートナンバーを使用することでコネクションレスな(例えば、インターネットプロトコル(IP)かユーザー・データグラム・プロトコル(UDP))パケットを伝える関係者の文脈の中で定義されます。 一般に、関係者がIPマルチキャストグループアドレスを使用することでパケットを交換しますが、また、ユニキャスト輸送は、付属物としてマルチキャスト配送に確立されるか、または適用されるかもしれません。 マルチキャストの場合では、参加しているNormNodesは、与えられたNormSessionの文脈の外における手段で選ばれた一般的なIPマルチキャストグループアドレスとポートナンバーを使用することで交信するでしょう。 特定のNormSession(例えば、Session記述プロトコル(SDP)[7]、Session Announcementプロトコル(SAP)[8]など)のために「先験的な」必要な情報を説明して、伝えるために適用されるかもしれない他のIETFデータの形式とプロトコル標準は存在しています。

   The NORM protocol design is principally driven by the assumption of a
   single sender transmitting bulk data content to a group of receivers.
   However, the protocol MAY operate with multiple senders within the
   context of a single NormSession.  In initial implementations of this
   protocol, it is anticipated that multiple senders will transmit
   independent of one another and receivers will maintain state as
   necessary for each sender.  However, in future versions of NORM, it
   is possible that some aspects of protocol operation (e.g., round-trip
   time collection) may provide for alternate modes allowing more
   efficient performance for applications requiring multiple senders.

NORMプロトコルデザインは、大量のデータ内容を受信機のグループに伝えながら、独身の送付者の仮定で主に追い立てられます。 しかしながら、プロトコルは独身のNormSessionの文脈の中の複数の送付者と共に作動するかもしれません。 このプロトコルの初期の実装では、複数の送付者がお互いの如何にかかわらず伝わると予期されて、受信機は各送付者に必要に応じて状態を主張するでしょう。 しかしながら、NORMの将来のバージョンでは、プロトコル操作(例えば、往復の時間収集)のいくつかの局面が複数の送付者を必要とするアプリケーションのための、より効率的な性能を許容する代替のモードに備えるのは、可能です。

   NORM provides for three types of bulk data content objects
   (NormObjects) to be reliably transported.  These types include:

NORMは、確かに輸送されるために大量データ内容オブジェクト(NormObjects)の3つのタイプに備えます。 これらのタイプは:

   1) static computer memory data content (NORM_OBJECT_DATA type),

1) 静的なコンピュータメモリデータ内容(NORM_OBJECT_DATAタイプ)

   2) computer storage files (NORM_OBJECT_FILE type), and

そして2) コンピュータ・ストレージが(NORM_OBJECT_FILEタイプ)をファイルする。

   3) non-finite streams of continuous data content (NORM_OBJECT_STREAM
      type).

3) 連続したデータ内容(NORM_OBJECT_STREAMタイプ)の非有限なストリーム。

   The distinction between NORM_OBJECT_DATA and 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).  Other
   than that distinction, the two are identical, providing for reliable
   transport of finite (but potentially very large) units of content.
   These static data and file services are anticipated to be useful for
   multicast-based cache applications with the ability to reliably
   provide transmission of large quantities of static data.  Other types
   of static data/file delivery services might make use of these

NORM_OBJECT_DATAとNORM_OBJECT_FILEの区別は単に受信された内容(すなわち、メモリかファイル記憶装置)のためにどんなタイプのストレージを割り当てるべきであるかに関して複数のタイプの内容に役立つNormSessionsの受信機に「ヒント」を供給することです。 その区別を除いて、2は同じです、有限で(潜在的に非常に大きい)の単位の内容の信頼できる輸送に備えて。 これらの静的なデータとファイルサービスは、大量の静的なデータの伝達を確かに提供する能力のためにマルチキャストベースのキャッシュアプリケーションの役に立つように予期されます。 他のタイプの静的なデータ/ファイルデリバリ・サービスはこれらを利用するかもしれません。

Adamson, et al.               Experimental                      [Page 4]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [4ページ]実験的なRFC3940標準プロトコル2004年11月

   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
   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 content at any point in time.
   The applicability of this feature will depend upon the application.

オブジェクト・タイプも輸送してください。 NORM_OBJECT_STREAMタイプの使用は、アプリケーションの裁量にはあって、静的なデータかファイル内容も運ぶのに使用できました。 NORMの信頼できるストリームサービスは連載された信頼できるメッセージング、または他の限りなくて、恐らくダイナミックに生産された内容などの追加可能性を開けます。 NORM_OBJECT_STREAMは通信制御プロトコル(TCP)のものへの類似の信頼できる輸送に備えます、NORM受信機が、時間内に任意な点にストリーム内容を受け取り始めることができるでしょうが。 この特徴の適用性はアプリケーションによるでしょう。

   The 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-
   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
   portion of a single NORM message.

また、NORMプロトコルは、少量のために「バンドの外」に関するデータ(NORM_INFOメッセージとして、発信する)が送付者によって伝えられたデータ内容オブジェクトに添付されるのを許容します。 容易にこれほど利用可能である、「外、-バンドでは、」 データで、マルチキャスト受信機は、すぐに、効率的に対応するデータの本質を決定するか、ファイルするか、または伝えられる大量の内容を流します。 これは現在の輸送活動における、受信機ノードの参加のアプリケーションレベルコントロールを許容します。 また、これは、送付者と受信機の中に最小量のプレコーディネートがある状態でプロトコルがフレキシブルであることを許容します。 NORM_INFO内容は、サイズがただ一つのNORMメッセージのペイロード部分に収まらなければならないので原子であるために設計されています。

   NORM does _not_ provide for global or application-level
   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
   alternatively be embedded within the data content.  NORM does
   identify transmitted content (NormObjects) with transport identifiers
   that are applicable only while the sender is transmitting and/or
   repairing the given object.  These transport data content 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
   individual NormObjects may be uniquely identified during transport
   with the concatenation of the sender session-unique identifier
   (NormNodeId) and the assigned NormTransportId.  The NormTransportIds
   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
   terminate transmission of data content and inform the group of this
   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
   construct different, complete bulk transfer communication models to
   meet their goals.

NORMはどんな_もメッセージヘッダーで中でデータ内容のグローバルであるかアプリケーション平らな識別に提供しない_をします。 このために望まれているならアプリケーションでNORM_INFOのバンドで出ているデータメカニズムを利用したかもしれないか、またはあるいはまた、データ内容の中で識別を埋め込むことができたことに注意してください。 NORMは送付者が与えられたオブジェクトを伝える、そして/または、修理しているだけである間適切な輸送識別子と伝えられた内容(NormObjects)を同一視します。 これらの輸送データ内容識別子(NormTransportIds)はNormSessionのコースの間、単調に増加するファッションでそれぞれのNORM送付者によって割り当てられます。 各送付者は、輸送の間、送付者のセッションユニークな識別子(NormNodeId)と割り当てられたNormTransportIdの連結で唯一個々のNormObjectsを特定できるように独自にNormTransportId課題を維持します。 NormTransportIdsはしかし、大きくて、修理されて、数値のスペースからオーダーを増強する際に割り当てられて、長命のセッションの間、再選任されるかもしれません。 NORMプロトコルは、送付者アプリケーションがデータ内容の伝達を終えて、効率的な方法でこのグループに知らせることができるように、メカニズムを提供します。 他の同様のプロトコル制御機構(例えば、セッション終了、受信機同期など)は、頼もしいマルチキャストアプリケーション異形が彼らの目標を達成するために異なって、完全なバルク転送コミュニケーションモデルを構成できるように、指定されます。

Adamson, et al.               Experimental                      [Page 5]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [5ページ]実験的なRFC3940標準プロトコル2004年11月

   To summarize, the NORM protocol provides reliable transport of
   different types of data content (including potentially mixed types).
   The 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
   response to NACK messages received from the receiver group.
   Mechanisms for "out-of-band" information and other transport control
   mechanisms are specified for use by applications to form complete
   reliable multicast solutions for different purposes.

まとめるために提供する、NORMプロトコルは異なったタイプのデータ内容の信頼できる輸送を提供します(潜在的に複雑なタイプを含んでいて)。 送付者は、静的なデータかファイル、そして/または、非有限で、進行中のストリーム型の形で大量の内容を待ち行列に入れて、伝えます。 NORM送付者は受信機グループから受け取られたナックメッセージに対応してデータ、そして/または、FEC内容の修理伝達に備えます。 アプリケーションによる使用が異なる役割のための完全な信頼できるマルチキャストソリューションを形成するように、「バンドの外」のためのメカニズム情報と他の輸送制御機構は指定されます。

1.2.  NORM Scalability

1.2. 標準スケーラビリティ

   Group communication scalability requirements lead to adaptation of
   negative acknowledgment (NACK) based protocol schemes when feedback
   for reliability is required [9].  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)
   techniques for efficient multicast repair and optional proactive
   transmission robustness [10].  FEC-based repair can be used to
   greatly reduce the quantity of reliable multicast repair requests and
   repair transmissions [11] in a NACK-oriented protocol.  The principal
   factor in NORM scalability is the volume of feedback traffic
   generated by the receiver set to facilitate reliability and
   congestion control.  NORM uses probabilistic suppression of redundant
   feedback based on exponentially distributed random backoff timers.
   The 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
   protocol timers.  This allows NORM to scale well while maintaining
   reliable data delivery transport with low latency relative to the
   network topology over which it is operating.

信頼性のためのフィードバックが必要な[9]であるときに、グループコミュニケーションスケーラビリティ要件はベースのプロトコル体系を否定応答(ナック)の適合に導きます。 NORMは欠測値の修理を要求するために選択しているNACKsの使用の周りの中心に置かれたプロトコルです。 NORMはパケット・レベル前進型誤信号訂正(FEC)のテクニックの効率的なマルチキャスト修理と任意の先を見越すトランスミッション丈夫さ[10]の使用に備えます。 ナック指向のプロトコルの信頼できるマルチキャスト修理要求と修理トランスミッション[11]の量を大いに減少させるのにFECベースの修理を使用できます。 NORMスケーラビリティにおける主要因は信頼性と輻輳制御を容易にするために受信機セットによって生成されたフィードバックトラフィックのボリュームです。 NORMは指数関数的に分配された無作為のbackoffタイマに基づく余分なフィードバックの確率的な抑圧を使用します。 他のテクニックに比例したこのタイプの抑圧の性能は[12]で説明されます。 NORMは、抑圧と他のプロトコルタイマを設定するためにダイナミックにグループの往復のタイミング状態を測定します。 これで、NORMはそれが作動しているネットワーク形態に比例して低遅延がある確実な資料配送輸送を維持している間、よく比例できます。

   Feedback messages can be either multicast to the group at large or
   sent via unicast routing to the sender.  In the case of unicast
   feedback, the sender "advertises" the feedback state to the group to
   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.  A study of the
   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 protocol does _not_ require that state be
   kept on all receivers in the group.  NORM senders maintain state only
   for receivers providing explicit congestion control feedback.  NORM
   receivers must maintain state for each active sender.  This may
   constrain the number of simultaneous senders in some uses of NORM.

フィードバックメッセージは全体の、または、送付者へのユニキャストルーティングを通して送られたグループへのどちらかのマルチキャストであるかもしれません。 ユニキャストフィードバックの場合では、送付者は、フィードバック抑圧を容易にするためにフィードバック状態のグループに「広告を出します」。 典型的なインターネット環境で、NORMプロトコルが何万台もの受信機の注文のサイズを分類するために容易に比例すると予想されます。 このタイプのプロトコルのためのフィードバックの量の研究は[13]で説明されます。 NORMは単独のTCP接続よりわずかな量のフィードバックで作動できます、比較的多くの受信機があっても。 したがって、NORMが、より大きいグループサイズに比例するのは、可能であって、ネットワーク形態によります。 コンピュータリソース用法に関して、プロトコルが_どんな_もしないNORMは、状態がグループにおけるすべての受信機の上に維持されるのを必要とします。 NORM送付者は、受信機のためだけに明白な輻輳制御フィードバックを提供しながら、状態を維持します。 NORM受信機はそれぞれの活発な送付者のために状態を維持しなければなりません。 これはNORMのいくつかの用途における、同時の送付者の数を抑制するかもしれません。

Adamson, et al.               Experimental                      [Page 6]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [6ページ]実験的なRFC3940標準プロトコル2004年11月

1.3.  Environmental Requirements and Considerations

1.3. 環境要求事項と問題

   All of the environmental requirements and considerations that apply
   to the RMT NORM Building Block [4] and the RMT FEC Building Block [5]
   also apply to the NORM protocol.

また、RMT NORMビルBlock[4]とRMT FECビルBlock[5]に適用される環境要求事項と問題のすべてがNORMプロトコルに適用されます。

   The NORM protocol SHALL be capable of operating in an end-to-end
   fashion with no assistance from intermediate systems beyond basic IP
   multicast group management, routing, and forwarding services.  While
   the techniques utilized in NORM are principally applicable to "flat"
   end-to-end IP multicast topologies, they could also be applied in the
   sub-levels of hierarchical (e.g., tree-based) multicast distribution
   if so desired.  NORM can make use of reciprocal (among senders and
   receivers) multicast communication under the Any-Source Multicast
   (ASM) model defined in RFC 1112 [3], but SHALL also be capable of
   scalable operation in asymmetric topologies such as Source Specific
   Multicast (SSM) [14] where there may only be unicast routing service
   from the receivers to the sender(s).

NORMはSHALLについて議定書の中で述べます。基本的なIPマルチキャスト集団経営を超えて中間システムから支援なしで終わりから終わりへのファッションで作動する、ルーティング、および転送サービスでは、できてください。 また、NORMで利用されたテクニックが主に終わりから終わりへのIP「平坦な」マルチキャストtopologiesに適切である間、階層的のサブレベルでそれらを適用できた、(例えば、木のベース、)、マルチキャスト分配、そうだとすれば、必要です。 NORMはしかし、RFC1112[3]で定義されたAny-ソースMulticast(ASM)モデル、SHALLの下で相互的な(送付者と受信機の中の)マルチキャストコミュニケーションを利用できます、また、受信機から送付者までのユニキャストルーティングサービスがあるだけであるかもしれないSource Specific Multicast(SSM)[14]などの非対称のtopologiesでスケーラブルな操作ができてください。

   NORM is compatible with IPv4 and IPv6.  Additionally, NORM may be
   used with networks employing Network Address Translation (NAT)
   providing the NAT device supports IP multicast and/or can cache UDP
   traffic source port numbers for remapping feedback traffic from
   receivers to the sender(s).

NORMはIPv4とIPv6と互換性があります。 さらに、NORMはNATデバイスがIPマルチキャストをサポートするならNetwork Address Translation(NAT)を使うネットワークと共に使用されるかもしれない、そして/または、受信機から送付者までフィードバックトラフィックを再写像するUDPトラフィックソースポート番号をキャッシュできます。

2.  Architecture Definition

2. アーキテクチャ定義

   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 destination address and the NORM
   receivers attempt to reliably receive the transmitted content using
   negative acknowledgments to request repair.  Each NormNode within a
   NormSession is assumed to have a preselected unique 32-bit identifier
   (NormNodeId).  NormNodes MUST have uniquely assigned identifiers
   within a single NormSession to distinguish  between possible multiple
   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" NormNodeId.  While the protocol does not
   preclude multiple sender nodes concurrently transmitting within the
   context of a single 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
   some optional mechanisms specified in this document that can be
   leveraged for such application layer coordination.

NormSessionは送付者、そして/または、受信機として務めている関係者(NormNodes)から成ります。 NORM送付者はNormObjectsの形でセッション送付先アドレスと修理を要求するのに否定応答を使用することで伝えられた内容を確かに受け取るNORM受信機試みにデータ内容を伝えます。 NormSessionの中の各NormNodeには前選択されたユニークな32ビットの識別子(NormNodeId)があると思われます。 NormNodesは、可能な倍数送付者を見分けて、異なった受信機とフィードバック情報を区別するために独身のNormSessionの中で唯一識別子を割り当てたに違いありません。 2つの予約されたNormNodeId値があります。 0×00000000の値は無効のNormNodeId値であると考えられます、そして、0xffffffffの値は「ワイルドカード」NormNodeIdです。 プロトコルが同時にただ一つのNORMセッションの文脈の中を伝わる複数の送付者ノードを排除しない、(すなわち、多く、-、多くの操作、)、アプリケーションか、より高いプロトコル層によってNORM送付者の中のどんなタイプの対話的なコーディネートも制御されると思われます。 そのような応用層コーディネートのために利用することができる本書では指定されたいくつかの任意のメカニズムがあります。

Adamson, et al.               Experimental                      [Page 7]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [7ページ]実験的なRFC3940標準プロトコル2004年11月

   As previously noted, 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
   second type is NORM_OBJECT_FILE, which corresponds to data stored in
   the sender's non-volatile 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
   NORM_OBJECT_STREAM, which corresponds to an ongoing transmission of
   undefined length.  This is analogous to the reliable stream service
   provide by TCP for unicast data transport.  The format of the stream
   content is application-defined and may be byte or message oriented.
   The NORM protocol provides for "flushing" of the stream to expedite
   delivery or possibly enforce application message boundaries.  NORM
   protocol implementations may offer either (or both) in-order delivery
   of the stream data to the receive application or out-of-order (more
   immediate) delivery of received segments of the stream to the
   receiver application.  In either case, NORM sender and receiver
   implementations provide buffering to facilitate repair of the stream
   as it is transported.

上述しているように、NORMは3人の異なった基本型のデータ内容の信頼できる伝達を考慮します。 最初のタイプはNORM_OBJECT_DATAです(送付者のアプリケーション記憶装置で維持された静的で、永続的なブロックのデータ内容に使用されます)。 タイプがNORM_OBJECT_FILEである(送付者の非揮発性ファイルシステムに保存されたデータに対応しています)秒。 NORM_OBJECT_DATAとNORM_OBJECT_FILEタイプはともに有限な、しかし、潜在的に非常に大きいサイズの「NormObjects」を表します。 3番目のタイプのデータ内容はNORM_OBJECT_STREAMです(不定長の進行中の送信に対応しています)。 これはサービスがTCPでユニキャストデータ伝送に提供する信頼できるストリームに類似しています。 ストリーム内容の形式は、アプリケーションによって定義されていて、バイトかメッセージ指向しているかもしれません。 NORMプロトコルは、配送を速めるか、またはことによるとアプリケーションメッセージ限界を実施するためにストリームを「洗い流すこと」に備えます。 NORMプロトコル実装がオーダーにおける、ストリームデータの配送をどちらか(ともに)に提供するかもしれない、ストリームの容認されたセグメントのアプリケーションか不適切な(より即座の)配送を受信側アプリケーションに受け取ってください。 どちらの場合ではも、NORM送付者と受信機実装は、それが輸送されるときストリームの修理を容易にするためにバッファリングを提供します。

   All NormObjects are logically segmented into FEC coding blocks and
   symbols for transmission by the sender.  In NORM, an FEC encoding
   symbol directly corresponds to the payload of NORM_DATA messages or
   "segment".  Note that when systematic FEC codes are used, the payload
   of NORM_DATA messages sent for the first portion of a FEC encoding
   block are source symbols (actual segments of original user data),
   while the remaining symbols for the block consist of parity symbols
   generated by FEC encoding.  These parity symbols are generally sent
   in response to repair requests, but some number may be sent
   proactively at the end each encoding block to increase the robustness
   of transmission.  When non-systematic FEC codes are used, all symbols
   sent consist of 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 for the given block.  In
   this document, the terms "symbol" and "segment" are used
   interchangeably.

すべてのNormObjectsが送付者によってトランスミッションのブロックとシンボルをコード化するFECに論理的に区分されます。 NORMでは、シンボルをコード化するFECは直接NORM_DATAメッセージか「セグメント」のペイロードに対応しています。 系統的なFECコードが使用されているとき、ブロックをコード化するFECの最初の一部に送られたNORM_DATAメッセージのペイロードがソースシンボル(オリジナルの利用者データの実際のセグメント)であることに注意してください、ブロックの残っているシンボルはシンボルがFECでコード化を生成した同等から成りますが。 一般に修理要求に対応してこれらのパリティシンボルを送りますが、トランスミッションの丈夫さを増強するためにそれぞれブロックをコード化しながら、何らかの数を終わりに予測して送るかもしれません。 非系統的なFECコードが使用されているとき、シンボルが送ったすべてがパリティ内容をコード化するFECから成ります。 この場合、受信機は、与えられたブロックでオリジナルの利用者データを再建する(FEC解読を通して)ために十分な数のシンボルを受け取らなければなりません。 本書では、用語「シンボル」と「セグメント」は互換性を持って使用されます。

   Transmitted NormObjects are temporarily yet uniquely identified
   within the NormSession context using the given 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 within a session if needed as
   a session identifier.  NORM NormObjectTransportId data content
   identifiers are sender-assigned and applicable and valid only during
   a NormObject's actual _transport_ (i.e., for as long as the sender is
   transmitting and providing repair of the indicated NormObject).  For

伝えられたNormObjectsは、NormSession文脈の中で与えられた送付者のNormNodeId、NormInstanceId、および一時的なNormObjectTransportIdを使用することで一時まだ唯一特定されています。 実装によって、個々のNORM送付者が独自に彼らのNormInstanceIdsを管理するかもしれませんか、またはセッション識別子として必要であるなら、一般的なNormInstanceIdにセッション以内にすべて参加しているノードのために同意されるかもしれません。 NORM NormObjectTransportIdデータ内容識別子は、NormObjectの実際の_輸送_(すなわち、送付者が示されたNormObjectの修理を伝えて、提供している限り、)だけの間送付者によって割り当てられて適切であって、有効です。 for

Adamson, et al.               Experimental                      [Page 8]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [8ページ]実験的なRFC3940標準プロトコル2004年11月

   a long-lived session, the NormObjectTransportId field can wrap and
   previously-used 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 or symbols of the NormObject are further
   identified with FEC payload identifiers which include coding block
   and symbol identifiers.  These are discussed in detail later in this
   document.

長命のセッションであり、NormObjectTransportId分野は包装されることができます、そして、以前中古の識別子は再使用されるかもしれません。 輸送されたデータ内容のグローバルにユニークな識別をNORMによって提供されないで、必要なら、NORMアプリケーションで管理しなければならないことに注意してください。 NormObjectの個々のセグメントかシンボルがさらにブロックとシンボル識別子をコード化するのを含んでいるFECペイロード識別子と同一視されています。 後で詳細に本書ではこれらについて議論します。

2.1.  Protocol Operation Overview

2.1. プロトコル操作概要

   A NORM sender primarily generates messages of type NORM_DATA.  These
   messages carry original data segments or FEC symbols and repair
   segments/symbols for the bulk data/file or stream NormObjects being
   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 is imposed due to FEC
   encoding.  However, the NORM implementation MAY be optionally
   configured to proactively transmit some amount of redundant FEC
   symbols along with the original content to potentially enhance
   performance (e.g., improved delay) at the cost of additional
   transmission overhead.  This option may be sensible for certain
   network conditions and can allow for robust, asymmetric multicast
   (e.g., unidirectional routing, satellite, cable) [15] with reduced
   receiver feedback, or, in some cases, no feedback.

NORM送付者は主としてタイプNORM_DATAに関するメッセージを生成します。 これらのメッセージは大量のデータ/ファイルか移されるストリームNormObjectsのオリジナルのデータ・セグメントかFECシンボルと修理セグメント/シンボルを運びます。 デフォルトで、単に受信機修理要求(NACKs)に対応して余分なFECシンボルを送ります、そして、その結果、FECコード化のためまず通常追加トランスミッションオーバーヘッドを課しません。 しかしながら、NORM実装は、追加トランスミッションオーバーヘッドの費用で潜在的に性能を高める(例えば、遅れを改良する)ためにオリジナルコンテンツに伴ういくらかの量の余分なFECシンボルを予測して伝えるために任意に構成されるかもしれません。 このオプションは、あるネットワーク状態において分別があるかもしれなくて、減少している受信機フィードバック、またはいくつかの場合どんなフィードバックでも強健で、非対称のマルチキャスト(例えばルーティング、衛星が電報を打つ単方向)[15]を考慮できません。

   A sender message of type NORM_INFO is also defined and is used to
   carry OPTIONAL "out-of-band" 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
   messages can be NACKed and repaired with a slightly lower delay
   process than NORM's general FEC-encoded data content.  NORM_INFO may
   serve special purposes for some bulk transfer, reliable multicast
   applications where receivers join the group mid-stream and need to
   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 is used, its transmission should
   precede transmission of any NORM_DATA message for the associated
   NormObject.

タイプNORM_INFOの送付者メッセージは、また、定義されて、与えられた輸送オブジェクトのための「バンドの外」というOPTIONAL文脈情報を運ぶのにおいて使用されています。 ただ一つのNORM_INFOメッセージをNormObjectに関連づけることができます。 原子本質のために、なくなったNORM_INFOメッセージは、NACKedであることができ、NORMの一般的なFECによってコード化されたデータ内容よりわずかに低い遅れプロセスで修理されました。 NORM_INFOはいくらかのバルク転送(受信機がグループ中流を接合して、伝えられる現在の内容の文脈上の情報を確かめる必要がある高信頼のマルチキャストアプリケーション)のための特別な目的に役立つかもしれません。 NORM_INFOのためのナックプロセスは後で説明されるでしょう。 NORM_INFOメッセージタイプが使用されているとき、トランスミッションは関連NormObjectへのどんなNORM_DATAメッセージの伝達にも先行するべきです。

   The sender also generates messages of type NORM_CMD to assist in
   certain protocol operations such as 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 messages
   from the sender is accomplished by one of three different procedures.
   These procedures are: single, best effort unreliable transmission of
   the command; repeated redundant transmissions of the command; and

また、送付者はタイプNORM_CMDが輻輳制御、-トランスミッションの洗い流すことでは、周遊旅行時間見積りか、受信機同期と、任意の肯定応答要求かアプリケーションがコマンドを定義した終わりなどのあるプロトコル操作を助けるメッセージを生成します。 送付者からのNORM_CMDメッセージの伝達は3つの異なった手順の1つで実行されます。 これらの手順は以下の通りです。 コマンドの単一の、そして、ベストエフォート型の頼り無い送信。 コマンドの繰り返された余分な送信。 そして

Adamson, et al.               Experimental                      [Page 9]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [9ページ]実験的なRFC3940標準プロトコル2004年11月

   positively-acknowledged commands.  The transmission technique used
   for a given command depends upon the function of the command.
   Several core commands are defined for basic protocol operation.
   Additionally, implementations MAY wish to consider providing the
   OPTIONAL application-defined commands that can take advantage of the
   transmission methodologies available for commands.  This allows for
   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, etc.).

明確に承認されたコマンド。 与えられたコマンドに使用される透過法はコマンドの機能に依存します。 いくつかのコアコマンドが基本プロトコル操作のために定義されます。 さらに、実装は、コマンドに利用可能なトランスミッション方法論を利用できるアプリケーションで定義されたコマンドをOPTIONALに供給すると考えたがっているかもしれません。 これは基本的なNORMプロトコルエンジン(例えば、往復のタイミング、通信速度など)に利用可能な情報を利用できるアプリケーションレベルセッション管理メカニズムを考慮します。

   NORM receivers generate messages of type NORM_NACK or NORM_ACK in
   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 generally detect losses by tracking
   the sequence of transmission from a sender.  Sequencing information
   is embedded in the transmitted data packets and end-of-transmission
   commands from the sender.  NORM_ACK messages are generated in
   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 commands from the sender.  The
   feedback volume of these congestion control NORM_ACK messages is
   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 for positive
   acknowledgment from receivers, other 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 set for
   each participant by the application.  This can be used to limit the
   quantity of multicast data transmitted by the group.  When NORM's
   congestion control algorithm is enabled the rate for senders is
   automatically adjusted.  In some networks, it may be desirable to
   establish minimum and maximum bounds for the rate adjustment
   depending upon the application even when dynamic congestion control
   is enabled.  However, in the case of the general Internet, congestion
   control policy SHALL be observed that is compatible with coexistent
   TCP flows.

NORM受信機はデータとコマンドの送信に対応して送付者からタイプNORM_ナックかNORM_ACKに関するメッセージを生成します。 NORM_ナックメッセージは、検知データ動作減衰量の修理を要求するために生成されます。 一般に、受信機は、送付者からトランスミッションの系列を追跡することによって、損失を検出します。 配列情報は送付者から伝えられたデータ・パケットとトランスミッションの端のコマンドに埋め込まれます。 NORM_ACKメッセージは送付者によって伝えられたあるコマンドに対応して生成されます。 一般的で(最もスケーラブル)のプロトコルモードで、単に送付者からの混雑制御コマンドに対応してNORM_ACKメッセージを送ります。 これらの輻輳制御NORM_ACKメッセージのフィードバックボリュームは、フィードバック内部破裂を避けるNORM_ナックメッセージのように同じタイマベースの確率的なサプレッション技術を使用することで制御されています。 受信機から肯定応答のための潜在的アプリケーション要件を満たすために、他のNORM_ACKメッセージは、使用に定義されていて利用可能です。 すべての送付者と受信機トランスミッションは各関係者のためにアプリケーションでピーク通信速度セットによって治められた速度制御を受けることがあります。 グループによって送られたマルチキャストデータの量を制限するのにこれを使用できます。 NORMの輻輳制御アルゴリズムが可能にされるとき、送付者のレートは自動的に調整されます。 いくつかのネットワークでは、ダイナミックな輻輳制御がいつ可能にさえされるかにアプリケーションによる料金の調整のために最小の、そして、最大の領域を確立するのは望ましいかもしれません。 一般的なインターネットの場合における混雑がどのように方針SHALLを制御しても、観測されて、それは共存しているTCP流れと互換性があるということになってください。

2.2.  Protocol Building Blocks

2.2. プロトコルブロック

   The operation of the 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
   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 also makes use of Forward Error Correction
   encoding techniques for repair messaging and optional transmission
   robustness as described in [10].  NORM uses the FEC Payload ID as

NORMプロトコルの操作は主としてBlockドキュメント[4]を造りながらナックが指向のReliable Multicast(NORM)に提示された概念に基づいています。 これはそのドキュメントで議論した基本的なNORMアーキテクチャ、データ伝送、修理、およびフィードバック戦略を含んでいます。 追加信頼できるマルチキャストブロックは完全なNORMプロトコル具体化[16]を作成する際に適用されます。 また、NORMは修理メッセージングと任意のトランスミッション丈夫さのために[10]で説明されるようにテクニックをコード化するForward Error Correctionを利用します。 NORMはFEC Payload IDを使用します。

Adamson, et al.               Experimental                     [Page 10]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [10ページ]実験的なRFC3940標準プロトコル2004年11月

   specified by the FEC Building Block Document [5].  Additionally, for
   congestion control, this document includes a baseline congestion
   control mechanism (NORM-CC) based on the TCP-Friendly Multicast
   Congestion Control (TFMCC) scheme described in [19].

FECビルBlock Document[5]によって指定されています。 さらに、輻輳制御のために、このドキュメントは[19]で説明されたTCP好意的なMulticast Congestion Control(TFMCC)体系に基づく基線混雑制御機構(NORM-CC)を含んでいます。

2.3.  Design Tradeoffs

2.3. デザイン見返り

   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 arena.  There are numerous engineering tradeoffs involved
   in reliable multicast transport design and this requires an increased
   awareness of application and network architecture considerations.
   Performance requirements affecting design can include:  group size,
   heterogeneity (e.g., capacity and/or delay), asymmetric delivery,
   data ordering, delivery delay, group dynamics, mobility, congestion
   control, and transport across low capacity connections.  NORM
   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, but there is an
   assumed model of bulk transfer transport service that drives the
   trade-offs that determine the scalability and performance described
   in this document.

NORMの様々な特徴はある程度の汎用のユーティリティを提供するように設計されていますが、信頼できるマルチキャストにおける「フリーサイズがありません」がアリーナを輸送するという理解を強調するのは重要です。 信頼できるマルチキャスト輸送デザインにかかわる多数の工学見返りがあります、そして、これはアプリケーションとネットワークアーキテクチャ問題の増強された認識を必要とします。 デザインに影響するパフォーマンス要件は以下を含むことができます。 低い容量接続の向こう側にサイズ、異種性(例えば、容量、そして/または、遅れ)、非対称の配送、データ注文、配送遅れ、グループ・ダイナミックス、移動性、輻輳制御、および輸送を分類してください。 NORMはこれらの異なった要件の多くを収容する様々なパラメタを含んでいます。 NORMプロトコルとそのメカニズムはマルチキャストアプリケーションでバルク・データ転送の外に適用されるかもしれませんが、スケーラビリティを決定するトレードオフと本書では説明された性能を追い立てるバルク転送輸送サービスの想定されたモデルがあります。

   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 constraints.  Buffer requirements for
   reliability, as always, are a function of the delay-bandwidth product
   of the network topology.  NORM performs best when allowed more
   buffering resources than typical point-to-point transport protocols.
   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
   utilization, group size scalability, and efficiency of performance.
   Large buffer sizes allow the NORM protocol to perform most
   efficiently in large delay-bandwidth 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) and reduced
   group size scalability.

また、NORMが確実な資料配送を提供する能力は送付者と受信側アプリケーションのどんなバッファ規制でも決定されます。 NORMプロトコル実装は中でバッファ規制をアプリケーションで定義しましたSHOULDが最大級の効率で作動するように設計されていて、丈夫さ可能である。 信頼性のためのバッファ要件はいつものようにネットワーク形態の遅れ帯域幅生成物の機能です。 典型的な二地点間トランスポート・プロトコルよりリソースをバッファリングするのが許容されているとき、NORMはよく振る舞います。 これはNORMフィードバック抑圧がすぐにフィードバックを伝えるより受信機セットから手当たりしだいに遅らせたトランスミッションにむしろ基づいているからです。 バッファ利用と、グループサイズスケーラビリティと、性能の効率の間には、決定的な見返りがあります。 大きいバッファサイズで、NORMプロトコルは、大きい遅れ帯域幅topologiesで最も効率的に働いて、より長いフィードバック抑圧backoffタイムアウトを考慮します。 これは改良されたグループサイズスケーラビリティをもたらします。 NORMは減少しているバッファリングにもかかわらず、減少している効率(下側の親類goodput)と減少しているグループサイズスケーラビリティの費用において作動できます。

Adamson, et al.               Experimental                     [Page 11]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [11ページ]実験的なRFC3940標準プロトコル2004年11月

3.  Conformance Statement

3. 順応声明

   This Protocol Instantiation document, in conjunction with the RMT
   Building Block documents of [4] and [5], completely specifies a
   working reliable multicast transport protocol that conforms to the
   requirements described in RFC 2357 [17].

[4]と[5]のRMTビルBlockドキュメントに関連して、このプロトコルInstantiationドキュメントはRFC2357[17]で説明された要件に従う働く信頼できるマルチキャストトランスポート・プロトコルを完全に指定します。

   This document specifies the following message types and mechanisms
   which are REQUIRED in complying NORM protocol implementations:

このドキュメントは応じているNORMプロトコル実装でREQUIREDである以下のメッセージタイプとメカニズムを指定します:

+--------------------+-----------------------------------------------+
|    Message Type    |                    Purpose                    |
+--------------------+-----------------------------------------------+
|NORM_DATA           | Sender message for application data           |
|                    | transmission.  Implementations must support   |
|                    | at least one of the NORM_OBJECT_DATA,         |
|                    | NORM_OBJECT_FILE, or NORM_OBJECT_STREAM       |
|                    | delivery services.  The use of the NORM FEC   |
|                    | Object Transmission Information header        |
|                    | extension is OPTIONAL with NORM_DATA          |
|                    | messages.                                     |
+--------------------+-----------------------------------------------+
|NORM_CMD(FLUSH)     | Sender command to excite receivers for repair |
|                    | requests in lieu of ongoing NORM_DATA         |
|                    | transmissions.  Note the use of the           |
|                    | NORM_CMD(FLUSH) for positive acknowledgment   |
|                    | of data receipt is OPTIONAL.                  |
+--------------------+-----------------------------------------------+
|NORM_CMD(SQUELCH)   | Sender command to advertise its current valid |
|                    | repair window in response to invalid requests |
|                    | for repair.                                   |
+--------------------+-----------------------------------------------+
|NORM_CMD(REPAIR_ADV)| Sender command to advertise current repair    |
|                    | (and congestion control state) to group when  |
|                    | unicast feedback messages are detected.  Used |
|                    | to control/suppress excessive receiver        |
|                    | feedback in asymmetric multicast topologies.  |
+--------------------+-----------------------------------------------+
|NORM_CMD(CC)        | Sender command used in collection of round    |
|                    | trip timing and congestion control status     |
|                    | from group (this may be OPTIONAL if           |
|                    | alternative congestion control mechanism and  |
|                    | round trip timing collection is used).        |
+--------------------+-----------------------------------------------+
|NORM_NACK           | Receiver message used to request repair of    |
|                    | missing transmitted content.                  |
+--------------------+-----------------------------------------------+

+--------------------+-----------------------------------------------+ | メッセージタイプ| 目的| +--------------------+-----------------------------------------------+ |標準_データ| アプリケーションデータへの送付者メッセージ| | | トランスミッション。 実装はサポートしなければなりません。| | | 少なくともNORM_OBJECT_DATAの1つ| | | 標準_オブジェクト_ファイル、または標準_オブジェクト_ストリーム| | | デリバリ・サービス。 NORM FECの使用| | | オブジェクトTransmission情報ヘッダー| | | 拡張子はNORM_DATAとOPTIONALです。| | | メッセージ。 | +--------------------+-----------------------------------------------+ |標準_CMD(平らに)| 修理のための受信機を興奮させる送付者コマンド| | | 進行中のNORM_DATAの代わりに要求| | | トランスミッション。 使用に注意します。| | | 肯定応答のためのNORM_CMD(FLUSH)| | | データでは、領収書はOPTIONALです。 | +--------------------+-----------------------------------------------+ |標準_CMD(スケルチ)| 電流の有効な状態で広告を出す送付者コマンド| | | 無効の要求に対応した修理ウィンドウ| | | 修理のために。 | +--------------------+-----------------------------------------------+ |標準_CMD(修理_ADV)| 現在の修理の広告を出す送付者コマンド| | | (そして、輻輳制御状態) いつを分類するかために| | | ユニキャストフィードバックメッセージは検出されます。 使用されます。| | | 過度の受信機を制御するか、または抑圧するために| | | 非対称のマルチキャストtopologiesでのフィードバック。 | +--------------------+-----------------------------------------------+ |標準_CMD(CC)| ラウンドの収集で使用される送付者コマンド| | | 旅行タイミングと輻輳制御状態| | | グループ(| | | 代替の混雑制御機構と| | | 周遊旅行タイミング収集が使用されているなら、これはOPTIONALであるかもしれない)から。 | +--------------------+-----------------------------------------------+ |標準_ナック| 修理を要求するのにおいて中古の受信機メッセージ| | | 取り逃がすのは内容を伝えました。 | +--------------------+-----------------------------------------------+

Adamson, et al.               Experimental                     [Page 12]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [12ページ]実験的なRFC3940標準プロトコル2004年11月

+--------------------+-----------------------------------------------+
|NORM_ACK            | Receiver message used to proactively provide  |
|                    | feedback for congestion control purposes.     |
|                    | Also used with the OPTIONAL NORM Positive     |
|                    | Acknowledgment Process.                       |
+--------------------+-----------------------------------------------+

+--------------------+-----------------------------------------------+ |標準_ACK| 受信機メッセージは以前はよく予測して提供されていました。| | | 混雑管理目的のためのフィードバック。 | | | また、OPTIONAL NORM Positiveと共に使用されます。| | | 承認プロセス。 | +--------------------+-----------------------------------------------+

   This document also describes the following message types and
   associated mechanisms which are OPTIONAL for complying NORM protocol
   implementations:

また、このドキュメントは応じているNORMプロトコル実装のためにOPTIONALである以下のメッセージタイプと関連メカニズムについて説明します:

+----------------------+----------------------------------------------+
|     Message Type     |                    Purpose                   |
+----------------------+----------------------------------------------+
|NORM_INFO             | Sender message for providing ancillary       |
|                      | context information associated with NORM     |
|                      | transport objects.  The use of the NORM FEC  |
|                      | Object Transmission Information header       |
|                      | extension is OPTIONAL with NORM_INFO         |
|                      | messages.                                    |
+----------------------+----------------------------------------------+
|NORM_CMD(EOT)         | Sender command to indicate it has reached    |
|                      | end-of-transmission and will no longer       |
|                      | respond to repair requests.                  |
+----------------------+----------------------------------------------+
|NORM_CMD(ACK_REQ)     | Sender command to support application-       |
|                      | defined, positively acknowledged commands    |
|                      | sent outside of the context of the bulk data |
|                      | content being transmitted.  The NORM Positive|
|                      | Acknowledgment Procedure associated with this|
|                      | message type is OPTIONAL.                    |
+----------------------+----------------------------------------------+
|NORM_CMD(APPLICATION) | Sender command containing application-defined|
|                      | commands sent outside of the context of the  |
|                      | bulk data content being transmitted.         |
+----------------------+----------------------------------------------+
|NORM_REPORT           | Optional message type reserved for           |
|                      | experimental implementations of the NORM     |
|                      | protocol.                                    |
+----------------------+----------------------------------------------+

+----------------------+----------------------------------------------+ | メッセージタイプ| 目的| +----------------------+----------------------------------------------+ |標準_インフォメーション| 付属を提供することへの送付者メッセージ| | | NORMに関連している文脈情報| | | オブジェクトを輸送してください。 NORM FECの使用| | | オブジェクトTransmission情報ヘッダー| | | 拡張子はNORM_INFOとOPTIONALです。| | | メッセージ。 | +----------------------+----------------------------------------------+ |標準_CMD(EOT)| それに達したのを示す送付者コマンド| | | トランスミッションを終わらせて、もう終わるでしょう。| | | 応じて、要求を修理してください。 | +----------------------+----------------------------------------------+ |標準_CMD(ACK_REQ)| アプリケーションをサポートする送付者コマンド| | | 定義されて、明確に承認されたコマンド| | | 大量のデータの文脈の外に発信します。| | | 伝えられる内容。 標準正数| | | これに関連している承認Procedure| | | メッセージタイプはOPTIONALです。 | +----------------------+----------------------------------------------+ |標準_CMD(アプリケーション)| 含有がアプリケーションで定義した送付者コマンド| | | コマンドは文脈の外に発信しました。| | | 伝えられるデータ内容を膨らませてください。 | +----------------------+----------------------------------------------+ |標準_レポート| 任意のメッセージは予約されていた状態でタイプします。| | | NORMの実験的な実装| | | 議定書を作ってください。 | +----------------------+----------------------------------------------+

4.  Message Formats

4. メッセージ・フォーマット

   As mentioned in Section 2.1, there are two primary classes of NORM
   messages: sender messages and receiver messages.  NORM_CMD,
   NORM_INFO, and NORM_DATA message types are generated by senders of
   data content, and NORM_NACK and NORM_ACK messages generated by
   receivers within a NormSession.  An auxiliary message type of

セクション2.1で言及されるように、2つのプライマリクラスに関するNORMメッセージがあります: 送付者メッセージと受信機メッセージ。 NORM_CMD、NORM_INFO、およびNORM_DATAメッセージタイプはデータ内容の送付者、NORM_ナック、およびACKメッセージがNormSessionの中で受信機で生成したNORM_によって生成されます。 メッセージがタイプする補助物

Adamson, et al.               Experimental                     [Page 13]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [13ページ]実験的なRFC3940標準プロトコル2004年11月

   NORM_REPORT is also provided for 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 protocol given in Section 5.  Individual NORM
   messages are designed to be compatible with the MTU limitations of
   encapsulating Internet protocols including IPv4, IPv6, and UDP.  The
   current NORM protocol specification assumes UDP encapsulation and
   leverages the transport features of UDP.  The NORM messages are
   independent of network addresses and can be used in IPv4 and IPv6
   networks.

また、NORM_REPORTを実験目的に提供します。 このセクションはNORMプロトコルによって使用されるメッセージ・フォーマットについて説明します。 これらのメッセージとそれらの分野はセクション5で与えられたNORMプロトコルの詳細な機能的な記述で参照をつけられます。 個々のNORMメッセージは、IPv4、IPv6、およびUDPを含んでいるインターネットがプロトコルであるとカプセル化するMTU制限と互換性があるように設計されています。 現在のNORMプロトコル仕様は、UDPがカプセル化であると仮定して、輸送がUDPの特徴であると利用します。 NORMメッセージは、ネットワーク・アドレスから独立していて、IPv4とIPv6ネットワークに使用できます。

4.1.  NORM Common Message Header and Extensions

4.1. 標準の一般的なメッセージヘッダーと拡大

   There are some common message fields contained in all NORM 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 begin with a common header
   with information fields as follows:

すべてのNORMメッセージタイプで含まれたいくつかの一般的なメッセージ分野があります。 さらに、ヘッダー拡張機能は、改正なしでNORMプロトコルの機能性をこのドキュメントに広げるために定義されます。 情報フィールドは以下の通りですべてのNORMプロトコルメッセージが一般的なヘッダーと共に始まります:

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version|  type |    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| タイプ| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     NORM Common Message Header Format

標準の一般的なメッセージヘッダー形式

   The "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
   indicate and distinguish upgrades of the protocol which may be non-
   interoperable.  The NORM version number for this specification is 1.

「バージョン」分野はプロトコルバージョン番号を示す4ビットの値です。 SHOULDが無視するNORM実装はそれら自身のと異なったバージョン番号でメッセージを受け取りました。 この数は、非共同利用できるかもしれないプロトコルのアップグレードを示して、区別することを意図します。 この仕様のNORMバージョン番号は1です。

   The message "type" field is a 4-bit value indicating the NORM
   protocol message type.  These types are defined as follows:

メッセージ「タイプ」分野はNORMプロトコルメッセージタイプを示す4ビットの値です。 これらのタイプは以下の通り定義されます:

           Message     Value

メッセージ値

         NORM_INFO       1
         NORM_DATA       2
         NORM_CMD        3
         NORM_NACK       4
         NORM_ACK        5
         NORM_REPORT     6

標準_インフォメーション1標準_データ2標準_CMD3標準_ナック4標準_ACK5標準_レポート6

Adamson, et al.               Experimental                     [Page 14]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [14ページ]実験的なRFC3940標準プロトコル2004年11月

   The 8-bit "hdr_len" field indicates the number of 32-bit words that
   comprise the given message's header portion.  This is used to
   facilitate header extensions that may be applied.  The presence of
   header extensions are implied when the "hdr_len" value is greater
   than the base value for the given message "type".

8ビットの「hdr_len」分野は与えられたメッセージのヘッダー部分を包括する32ビットの単語の数を示します。 これは、適用されるかもしれないヘッダー拡大を容易にするのに使用されます。 「hdr_len」値が基礎点より「タイプ」という与えられたメッセージにすばらしいときに、ヘッダー拡大の存在は含意されます。

   The "sequence" field is a 16-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 SHOULD be maintained for messages sent
   to the NormSession group address.  This value can be monitored by
   receiving nodes to detect packet losses in the transmission from a
   sender and used in estimating raw 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 or FEC payload that may be attached.  With 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 node should
   maintain a monotonically increasing "sequence" field space for each
   destination to which it transmits (this may be multiple destinations
   when unicast feedback is used).  The size of this field is intended
   to be sufficient to allow detection of a reasonable range of packet
   loss within the delay-bandwidth product of expected network
   connections.

「系列」分野はそれぞれのNORMメッセージで増加された単調に増加する数が与えられた送付先アドレスに伝わったようにメッセージ創始者によって設定される16ビットの値です。 「系列」は数のスペースSHOULDをさばきます。メッセージには、NormSessionグループアドレスに送って、維持されてください。 この値を送付者からトランスミッションでパケット損失を検出するためにノードを受け取ることによってモニターして、混雑管理目的に生のパケット損失を見積もる際に使用できます。 この値がなくなった確実な資料内容を検出するのにNORMプロトコルに使用されないで、また添付されるかもしれないアプリケーションデータかFECペイロードを特定しないことに注意してください。 また、通報認証で、「系列」分野は保護のために特にNORM_ナックか他のフィードバックメッセージのメッセージ「再生」攻撃から利用されるかもしれません。 この場合、受信機ノードは単調に増加する「系列」分野のスペースをそれが送られる各目的地に維持するはずです(ユニキャストフィードバックが使用されているとき、これは複数の目的地であるかもしれません)。 この分野のサイズが予想されたネットワーク接続の遅れ帯域幅成果の中で妥当な範囲のパケット損失の検出を許すために十分であることを意図します。

   The "source_id" field is a 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 must
   be assigned within a single NormSession.  In some cases, use of the
   host IP address or a hash of it can suffice, but alternative
   methodologies for assignment and potential collision resolution of
   node identifiers within a multicast session need to be considered.
   For example, the "source identifier" mechanism defined in the Real-
   Time Protocol (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 are actually assigned.

「ソース_イド」分野はメッセージを送ったノードを特定する32ビットの値です。 アプリケーションの必要性に従って、関係者のNORMノード識別子(NormNodeId)を設定できますが、独身のNormSessionの中でユニークな識別子を割り当てなければなりません。 いくつかの場合、ホストIPアドレスの使用かそれのハッシュが十分であることができますが、マルチキャストセッション以内のノード識別子の課題と潜在的衝突解決のための代替の方法論は、考えられる必要があります。 例えば、レアル時間プロトコル(RTP)仕様[18]に基づき定義された「ソース識別子」メカニズムはNORMノード識別子に使用するのにおいて適切であるかもしれません。 この時点で、プロトコルはこれらのユニークな識別子が実際にどう割り当てられるかに関する仮定を全くしません。

   NORM Header Extensions

標準ヘッダー拡大

   When header extensions are applied, they follow the message type's
   base header and precede any payload portion.  There are two formats
   for header extensions, both of which begin with an 8-bit "het"
   (header extension type) field.  One format is provided for variable-
   length extensions with "het" values in the range from 0 through 127.
   The other format is for fixed length (one 32-bit word) extensions
   with "het" values in the range from 128 through 255.  These formats
   are given here:

ヘッダー拡大が適用されているとき、それらは、メッセージタイプのベースヘッダーに続いて、どんなペイロード部分にも先行します。 2つの形式がヘッダー拡大のためにあります。その両方が8ビットの「興奮」(ヘッダー拡大タイプ)の分野で始まります。 1つの形式は可変長さのために、「興奮」がある拡張子が0から終えた範囲で127を評価するかどうかということです。 128〜255までもう片方の形式は固定長(1つの32ビットの単語)拡大のための「興奮」の値が範囲にあるものです。 これらの書式をここに与えます:

Adamson, et al.               Experimental                     [Page 15]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [15ページ]実験的なRFC3940標準プロトコル2004年11月

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   het <=127   |      hel      |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   |                    Header Extension Content                   |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 興奮の<=127| hel| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ヘッダー拡大含有量| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              NORM Variable Length Header Extension Format

標準可変長ヘッダー拡大形式

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   het >=128   |   reserved    |    Header Extension Content   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           NORM Fixed Length (32-bit) Header Extension Format

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 興奮の>=128| 予約されます。| ヘッダー拡大含有量| +++++++++++++++++++++++++++++++++標準固定長(32ビット)ヘッダー拡大形式

   The "Header Extension Content" portion of these header extension
   format is defined for each header extension type defined for NORM
   messages.  Some header extensions are defined within this document
   for NORM baseline FEC and congestion control operations.

これらのヘッダー拡大形式の「ヘッダー拡大含有量」部分はNORMメッセージのために定義されたそれぞれのヘッダー拡大タイプのために定義されます。 いくつかのヘッダー拡大がNORM基線FECと混雑制御機能のためのこのドキュメントの中に定義されます。

4.2.  Sender Messages

4.2. 送付者メッセージ

   NORM sender messages include the NORM_DATA type, the NORM_INFO type,
   and the NORM_CMD type.  NORM_DATA and NORM_INFO messages contain
   application data content while NORM_CMD messages are used for various
   protocol control functions.

NORM送付者メッセージはNORM_DATAタイプを含んでいます、そして、NORM_INFOはタイプします、そして、NORM_CMDはタイプします。 NORM_CMDメッセージが様々なプロトコルコントロール機能に使用されている間、NORM_DATAとNORM_INFOメッセージはアプリケーションデータ内容を含んでいます。

4.2.1.  NORM_DATA Message

4.2.1. 標準_データメッセージ

   The 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_OBJECT_DATA,
   NORM_OBJECT_FILE, and NORM_OBJECT_STREAM.  NORM_DATA messages may
   contain original or FEC-encoded application data content.

NORM_DATAメッセージはNORM送付者によって伝えられた支配的なタイプであると予想されます。 これらのメッセージは、区分されたデータがタイプNORM_OBJECT_DATA、NORM_OBJECT_FILE、およびNORM_OBJECT_STREAMのオブジェクトのための内容であるとカプセル化するのに使用されます。 NORM_DATAメッセージはオリジナルの、または、FECによってコード化されたアプリケーションデータ内容を含むかもしれません。

   The format of NORM_DATA messages is comprised of three logical
   portions:  1) a fixed-format NORM_DATA header portion, 2) a FEC
   Payload ID portion with a format dependent upon the FEC encoding
   used, and 3) a payload portion containing source or encoded
   application data content.  Note for objects of type
   NORM_OBJECT_STREAM, the payload portion contains additional fields
   used to appropriately recover stream content.  NORM implementations
   MAY also extend the NORM_DATA header to include a FEC Object

NORM_DATAメッセージの形式は3つの論理的な部分から成ります: 1) 固定フォーマットNORM_DATAヘッダー部分、FECコード化での形式扶養家族がいるFEC有効搭載量ID部分が使用した2、)および3) ソースを含むペイロード部分かコード化されたアプリケーションデータ内容。 タイプNORMのオブジェクトによって_OBJECT_STREAMに注意してください、そして、ペイロード部分は適切にストリーム内容を回復するのに使用される追加分野を含んでいます。 また、NORM実装は、FEC Objectを含むようにNORM_DATAヘッダーを広げるかもしれません。

Adamson, et al.               Experimental                     [Page 16]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [16ページ]実験的なRFC3940標準プロトコル2004年11月

   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 or out-
   of-band information.

トランスミッション情報(EXT_FTI)ヘッダー拡張子。 これで、NORM受信機は、自動的にリソースを割り当てて、適切にバンドのプレ構成かアウト情報の必要性なしで解読するFECを実行します。

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=2|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     flags     |    fec_id     |     object_transport_id       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         fec_payload_id                        |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                header_extensions (if applicable)              |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       payload_reserved*       |          payload_len*         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        payload_offset*                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          payload_data*                        |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =2をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | インスタンス_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 旗| fec_イド| オブジェクト_輸送_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_ペイロード_イド| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ヘッダー_拡大(適切であるなら)| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ペイロード_は*を予約しました。| ペイロード_len*| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ペイロード_オフセット*| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ペイロード_データ*| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        NORM_DATA Message Format

標準_データメッセージ・フォーマット

   *NOTE:  The "payload_reserved", "payload_len" and "payload_offset"
   fields are present only for objects of type NORM_OBJECT_STREAM.  The
   "payload_len" and "payload_offset" fields allow senders to
   arbitrarily vary the size of NORM_DATA payload segments for streams.
   This allows applications to flush transmitted streams as needed to
   meet unique streaming requirements.  For objects of types
   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_id" using the algorithm described
   in Section 5.1.1.  The "payload_reserved" field is kept for
   anticipated future NORM stream control functions.  When systematic
   FEC codes (e.g., "fec_id" = 129) are used, the "payload_len" and
   "payload_offset" fields contain actual length and offset values for
   the encapsulated application data 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

*NOTE: The "payload_reserved", "payload_len" and "payload_offset" fields are present only for objects of type NORM_OBJECT_STREAM. The "payload_len" and "payload_offset" fields allow senders to arbitrarily vary the size of NORM_DATA payload segments for streams. This allows applications to flush transmitted streams as needed to meet unique streaming requirements. For objects of types 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_id" using the algorithm described in Section 5.1.1. The "payload_reserved" field is kept for anticipated future NORM stream control functions. When systematic FEC codes (e.g., "fec_id" = 129) are used, the "payload_len" and "payload_offset" fields contain actual length and offset values for the encapsulated application data 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

Adamson, et al.               Experimental                     [Page 17]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 17] RFC 3940 NORM Protocol November 2004

   offset values, but instead are values computed from FEC encoding the
   "payload_len" and "payload_offset" fields of the _source_ data
   symbols of the corresponding applicable coding block.

offset values, but instead are values computed from FEC encoding the "payload_len" and "payload_offset" fields of the _source_ data symbols of the corresponding applicable coding block.

   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_DATA "type" field is 2.  The NORM_DATA _base_
   "hdr_len" value is 4 (32-bit words) plus the size of the
   "fec_payload_id" field.  The "fec_payload_id" field size depends upon
   the FEC encoding used for the referenced NormObject.  The "fec_id"
   field is used to indicate the FEC coding type.  For example, when
   small block, systematic codes are used, a "fec_id" value of 129 is
   indicated and the size of the "fec_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 applied is added into the "hdr_len"
   field.

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_DATA "type" field is 2. The NORM_DATA _base_ "hdr_len" value is 4 (32-bit words) plus the size of the "fec_payload_id" field. The "fec_payload_id" field size depends upon the FEC encoding used for the referenced NormObject. The "fec_id" field is used to indicate the FEC coding type. For example, when small block, systematic codes are used, a "fec_id" value of 129 is indicated and the size of the "fec_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 applied is added into the "hdr_len" field.

   The "instance_id" field contains a value generated by the 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 in progress.  When a 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 and begin reception anew.

The "instance_id" field contains a value generated by the 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 in progress. When a 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 and begin reception anew.

   The "grtt" field contains a non-linear quantized representation of
   the sender's current estimate of group round-trip time (GRTT) (this
   is also referred to as R_max in [19]).  This value is used to control
   timing of the NACK repair process and other aspects of protocol
   operation as described in this document.  The algorithm for encoding
   and decoding this field is described in the RMT NORM Building Block
   document [4].

The "grtt" field contains a non-linear quantized representation of the sender's current estimate of group round-trip time (GRTT) (this is also referred to as R_max in [19]). This value is used to control timing of the NACK repair process and other aspects of protocol operation as described in this document. The algorithm for encoding and decoding this field is described in the RMT NORM Building Block document [4].

   The "backoff" field value is used by receivers to determine the
   maximum backoff timer value used in the timer-based NORM NACK
   feedback suppression.  This 4-bit field supports values from 0-15
   which is multiplied by the 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
   their use are described in the NORM receiver NACK procedure
   description in Section 5.3.  The "gsize" field contains a
   representation of the sender's current estimate of group size.  This
   4-bit field can roughly represent values from ten to 500 million
   where the most significant bit value of 0 or 1 represents a mantissa
   of 1 or 5, respectively and the three least significant bits
   incremented by one represent a base 10 exponent (order of magnitude).
   For examples, a field value of "0x0" represents 1.0e+01 (10), a value
   of "0x8" represents 5.0e+01 (50), a value of "0x1" represents 1.0e+02

The "backoff" field value is used by receivers to determine the maximum backoff timer value used in the timer-based NORM NACK feedback suppression. This 4-bit field supports values from 0-15 which is multiplied by the 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 their use are described in the NORM receiver NACK procedure description in Section 5.3. The "gsize" field contains a representation of the sender's current estimate of group size. This 4-bit field can roughly represent values from ten to 500 million where the most significant bit value of 0 or 1 represents a mantissa of 1 or 5, respectively and the three least significant bits incremented by one represent a base 10 exponent (order of magnitude). For examples, a field value of "0x0" represents 1.0e+01 (10), a value of "0x8" represents 5.0e+01 (50), a value of "0x1" represents 1.0e+02

Adamson, et al.               Experimental                     [Page 18]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 18] RFC 3940 NORM Protocol November 2004

   (100), and a value of "0xf" represents 5.0e+08.  For NORM feedback
   suppression purposes, the group size does not need to be represented
   with a high degree of precision.  The group size may even be
   estimated somewhat conservatively (i.e., overestimated) to maintain
   low levels of feedback traffic.  A default group size estimate of
   10,000 ("gsize" = 0x4) is recommended for general purpose reliable
   multicast applications using the NORM protocol.

(100), and a value of "0xf" represents 5.0e+08. For NORM feedback suppression purposes, the group size does not need to be represented with a high degree of precision. The group size may even be estimated somewhat conservatively (i.e., overestimated) to maintain low levels of feedback traffic. A default group size estimate of 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
   providing information and hints regarding how the receiver should
   handle the identified object.  Defined flags in this field include:

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:

+--------------------+-------+-----------------------------------------+
|        Flag        | Value |                 Purpose                 |
+--------------------+-------+-----------------------------------------+
|NORM_FLAG_REPAIR    | 0x01  | Indicates message is a repair           |
|                    |       | transmission                            |
+--------------------+-------+-----------------------------------------+
|NORM_FLAG_EXPLICIT  | 0x02  | Indicates a repair segment intended to  |
|                    |       | meet a specific receiver erasure, as    |
|                    |       | compared to parity segments provided by |
|                    |       | the sender for general purpose (with    |
|                    |       | respect to an FEC coding block) erasure |
|                    |       | filling.                                |
+--------------------+-------+-----------------------------------------+
|NORM_FLAG_INFO      | 0x04  | Indicates availability of NORM_INFO for |
|                    |       | 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_OBJECT_STREAM.                     |
+--------------------+-------+-----------------------------------------+
|NORM_FLAG_MSG_START | 0x40  | Marks the first segment of application  |
|                    |       | messages embedded in                    |
|                    |       | NORM_OBJECT_STREAMs.                    |
+--------------------+-------+-----------------------------------------+

+--------------------+-------+-----------------------------------------+ | Flag | Value | Purpose | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_REPAIR | 0x01 | Indicates message is a repair | | | | transmission | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_EXPLICIT | 0x02 | Indicates a repair segment intended to | | | | meet a specific receiver erasure, as | | | | compared to parity segments provided by | | | | the sender for general purpose (with | | | | respect to an FEC coding block) erasure | | | | filling. | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_INFO | 0x04 | Indicates availability of NORM_INFO for | | | | 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_OBJECT_STREAM. | +--------------------+-------+-----------------------------------------+ |NORM_FLAG_MSG_START | 0x40 | Marks the first 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
   observe a join policy where it is desired that newly joining
   receivers only begin participating in the NACK process upon receipt

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 receivers only begin participating in the NACK process upon receipt

Adamson, et al.               Experimental                     [Page 19]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 19] RFC 3940 NORM Protocol November 2004

   of new (non-repair) data content.  NORM_FLAG_EXPLICIT is used to mark
   repair messages sent when the data sender has exhausted its ability
   to provide "fresh" (previously untransmitted) parity segments as
   repair.  This flag could possibly be used by intermediate systems
   implementing functionality to control sub-casting of repair content
   to different legs of a reliable 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,
   receivers will NACK for 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
   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 (or info content)
   for those objects are not received (i.e., a gap in the
   "object_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_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_OBJECT_STREAM.  When NORM_FLAG_STREAM is set, the
   NORM_FLAG_MSG_START can be optionally used to mark the first data
   segments of application-layer messages transported within the NORM
   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 session already in progress.  In practice,
   the NORM implementation MAY set this flag for the segment transmitted
   following an explicit "flush" of the stream by the application.

of new (non-repair) data content. NORM_FLAG_EXPLICIT is used to mark repair messages sent when the data sender has exhausted its ability to provide "fresh" (previously untransmitted) parity segments as repair. This flag could possibly be used by intermediate systems implementing functionality to control sub-casting of repair content to different legs of a reliable 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, receivers will NACK for 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 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 (or info content) for those objects are not received (i.e., a gap in the "object_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_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_OBJECT_STREAM. When NORM_FLAG_STREAM is set, the NORM_FLAG_MSG_START can be optionally used to mark the first data segments of application-layer messages transported within the NORM 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 session already in progress. In practice, the NORM implementation MAY set this flag for the segment transmitted following an explicit "flush" of the stream by the application.

   The "fec_id" field corresponds to the FEC Encoding Identifier
   described in the FEC Building Block document [5].  The "fec_id" value
   implies the format of the "fec_payload_id" field and, coupled with
   FEC Object Transmission Information, the procedures to decode FEC
   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 codes for most efficient performance.

The "fec_id" field corresponds to the FEC Encoding Identifier described in the FEC Building Block document [5]. The "fec_id" value implies the format of the "fec_payload_id" field and, coupled with FEC Object Transmission Information, the procedures to decode FEC 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 codes for most efficient performance.

   The "object_transport_id" field is a monotonically and incrementally
   increasing value assigned by the sender to NormObjects being
   transmitted.  Transmissions and repair requests related to that
   object use the same "object_transport_id" value.  For sessions of
   very long or indefinite duration, the "object_transport_id" field may
   be repeated, but it is presumed that the 16-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 object sequence identifiers sufficiently out-
   of-range with the current state kept for a given source).  During the

The "object_transport_id" field is a monotonically and incrementally increasing value assigned by the sender to NormObjects being transmitted. Transmissions and repair requests related to that object use the same "object_transport_id" value. For sessions of very long or indefinite duration, the "object_transport_id" field may be repeated, but it is presumed that the 16-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 object sequence identifiers sufficiently out- of-range with the current state kept for a given source). During the

Adamson, et al.               Experimental                     [Page 20]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 20] RFC 3940 NORM Protocol November 2004

   course of its transmission within a NORM session, an object is
   uniquely identified by the concatenation of the sender "source_id"
   and the given "object_transport_id".  Note that NORM_INFO messages
   associated with the identified object carry the same
   "object_transport_id" value.

course of its transmission within a NORM session, an object is uniquely identified by the concatenation of the sender "source_id" and the given "object_transport_id". Note that NORM_INFO messages associated with the identified object carry the same "object_transport_id" value.

   The "fec_payload_id" identifies the attached NORM_DATA "payload"
   content.  The size and format of the "fec_payload_id" field depends
   upon the FEC type indicated by the "fec_id" field.  These formats are
   given in the FEC Building Block document [5] and any subsequent
   extensions of that document.  As an example, the format of the
   "fec_payload_id" format small block, systematic codes ("fec_id" =
   129) given here:

The "fec_payload_id" identifies the attached NORM_DATA "payload" content. The size and format of the "fec_payload_id" field depends upon the FEC type indicated by the "fec_id" field. These formats are given in the FEC Building Block document [5] and any subsequent extensions of that document. As an example, the format of the "fec_payload_id" format small block, systematic codes ("fec_id" = 129) given here:

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       source_block_number                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        source_block_len       |      encoding_symbol_id       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_len | encoding_symbol_id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Small Block, Systematic Code ("fec_id" = 129) "fec_payload_id" Format

Small Block, Systematic Code ("fec_id" = 129) "fec_payload_id" Format

   The FEC payload identifier "source_block_number", "source_block_len",
   and "encoding_symbol_id" fields correspond to the "Source Block
   Number", "Source Block Length, and "Encoding Symbol ID" fields of the
   FEC Payload ID format given by the IETF FEC Building Block document
   [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.  The "source_block_len" indicates the number of
   user data 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
   appropriately.  The "encoding_symbol_id" identifies which specific
   symbol (segment) within the coding block the attached payload
   conveys.  Depending upon the value of the "encoding_symbol_id" and
   the associated "source_block_len" parameters for the block, the
   symbol (segment) referenced may be a user data or an FEC parity
   segment.  For systematic codes, encoding symbols numbered less than
   the source_block_len contain original application data while segments
   greater than or equal to source_block_len contain parity symbols
   calculated for the block.  The concatenation of

The FEC payload identifier "source_block_number", "source_block_len", and "encoding_symbol_id" fields correspond to the "Source Block Number", "Source Block Length, and "Encoding Symbol ID" fields of the FEC Payload ID format given by the IETF FEC Building Block document [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. The "source_block_len" indicates the number of user data 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 appropriately. The "encoding_symbol_id" identifies which specific symbol (segment) within the coding block the attached payload conveys. Depending upon the value of the "encoding_symbol_id" and the associated "source_block_len" parameters for the block, the symbol (segment) referenced may be a user data or an FEC parity segment. For systematic codes, encoding symbols numbered less than the source_block_len contain original application data while segments greater than or equal to source_block_len contain parity symbols calculated for the block. The concatenation of

Adamson, et al.               Experimental                     [Page 21]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 21] RFC 3940 NORM Protocol November 2004

   object_transport_id::fec_payload_id can be viewed as a unique
   transport protocol data unit identifier for the attached segment with
   respect to the NORM sender's instance within a session.

object_transport_id::fec_payload_id can be viewed as a unique transport protocol data unit identifier for the attached segment with respect to the NORM sender's instance within a session.

   Additional FEC Object Transmission Information (as described in the
   FEC Building Block document [5]) is required to properly receive and
   decode NORM transport objects.  This information MAY be provided as
   out-of-band session information.  However, in some cases, it may be
   useful for the sender to include this information "in band" to
   facilitate receiver operation with minimal preconfiguration.  For
   this purpose, the NORM FEC Object Transmission Information Header
   Extension (EXT_FTI) is defined.  This header extension MAY be applied
   to NORM_DATA and NORM_INFO messages to provide this necessary
   information.  The exact format of the extension depends upon the FEC
   code in use, but in general it SHOULD contain any required details on
   the FEC code in use (e.g., FEC Instance ID, etc.) and the byte size
   of the associated NormObject (For the NORM_OBJECT_STREAM type, this
   size corresponds to the stream buffer size maintained by the NORM
   sender).  As an example, the format of the EXT_FTI for small block
   systematic codes ("fec_id" = 129) is given here:

Additional FEC Object Transmission Information (as described in the FEC Building Block document [5]) is required to properly receive and decode NORM transport objects. This information MAY be provided as out-of-band session information. However, in some cases, it may be useful for the sender to include this information "in band" to facilitate receiver operation with minimal preconfiguration. For this purpose, the NORM FEC Object Transmission Information Header Extension (EXT_FTI) is defined. This header extension MAY be applied to NORM_DATA and NORM_INFO messages to provide this necessary information. The exact format of the extension depends upon the FEC code in use, but in general it SHOULD contain any required details on the FEC code in use (e.g., FEC Instance ID, etc.) and the byte size of the associated NormObject (For the NORM_OBJECT_STREAM type, this size corresponds to the stream buffer size maintained by the NORM sender). As an example, the format of the EXT_FTI for small block systematic codes ("fec_id" = 129) is given here:

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    het = 64   |    hel = 4    |      object_length (msb)      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      object_length (lsb)                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       fec_instance_id         |          segment_size         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       fec_max_block_len       |         fec_num_parity        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | het = 64 | hel = 4 | object_length (msb) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | object_length (lsb) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_instance_id | segment_size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_max_block_len | fec_num_parity | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   FEC Object Transmission Information Header Extension (EXT_FTI) for
   Small Block Systematic Codes ("fec_id" = 129)

FEC Object Transmission Information Header Extension (EXT_FTI) for Small Block Systematic Codes ("fec_id" = 129)

   The header extension type "het" field value for this header extension
   is 64.  The header extension length "hel" depends upon the format of
   the FTI for FEC code type identified by the "fec_id" field.  In this
   example (for "fec_id" = 129), the "hel" field value is 4.

The header extension type "het" field value for this header extension is 64. The header extension length "hel" depends upon the format of the FTI for FEC code type identified by the "fec_id" field. In this example (for "fec_id" = 129), the "hel" field value is 4.

   The 48-bit "object_length" field indicates the total size of the
   object (in bytes) for the static object types of 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.
   Receivers with insufficient storage capability may wish to forego
   reliable reception (i.e., not NACK for) of the indicated object.  In
   the case of objects of type NORM_OBJECT_STREAM, the "object_length"

The 48-bit "object_length" field indicates the total size of the object (in bytes) for the static object types of 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. Receivers with insufficient storage capability may wish to forego reliable reception (i.e., not NACK for) of the indicated object. In the case of objects of type NORM_OBJECT_STREAM, the "object_length"

Adamson, et al.               Experimental                     [Page 22]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 22] RFC 3940 NORM Protocol November 2004

   field is used by the sender to indicate the size of its stream buffer
   to the receiver group.  In turn, the receivers SHOULD use this
   information to allocate a stream buffer for reception of
   corresponding size.

field is used by the sender to indicate the size of its stream buffer to the receiver group. In turn, the receivers SHOULD use this information to allocate a stream buffer for reception of corresponding size.

   The "fec_instance_id" corresponds to the "FEC Instance ID" described
   in the FEC Building Block document [5].  In this case, the
   "fec_instance_id" SHALL be a value corresponding to the particular
   type of Small Block Systematic Code being used (e.g., Reed-Solomon
   GF(2^8), Reed-Solomon GF(2^16), etc).  The standardized assignment of
   FEC Instance ID values is described in [5].  The "segment_size" field
   indicates the 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
   properly process received data messaging.

The "fec_instance_id" corresponds to the "FEC Instance ID" described in the FEC Building Block document [5]. In this case, the "fec_instance_id" SHALL be a value corresponding to the particular type of Small Block Systematic Code being used (e.g., Reed-Solomon GF(2^8), Reed-Solomon GF(2^16), etc). The standardized assignment of FEC Instance ID values is described in [5]. The "segment_size" field indicates the 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 properly process received data messaging.

   The "fec_max_block_len" indicates the current maximum number of user
   data segments per FEC coding block to be used by the sender during
   the session.  This allows receivers to allocate appropriate buffer
   space for buffering blocks transmitted by the sender.

The "fec_max_block_len" indicates the current maximum number of user data segments per FEC coding block to be used by the sender during the session. This allows receivers to allocate appropriate buffer space for buffering blocks transmitted by the sender.

   The "fec_num_parity" corresponds to the "maximum number of encoding
   symbols that can be generated for any source block" as described in
   for FEC Object Transmission Information for Small Block Systematic
   Codes in the FEC Building Block document [5].  For example, Reed-
   Solomon codes may be arbitrarily shortened to create different code
   variations for a given block length.  In the case of Reed-Solomon
   (GF(2^8) and GF(2^16)) codes, this value indicates the maximum number
   of parity segments available from the sender for the coding blocks.
   This field MAY be interpreted differently for other systematic codes
   as they are defined.

The "fec_num_parity" corresponds to the "maximum number of encoding symbols that can be generated for any source block" as described in for FEC Object Transmission Information for Small Block Systematic Codes in the FEC Building Block document [5]. For example, Reed- Solomon codes may be arbitrarily shortened to create different code variations for a given block length. In the case of Reed-Solomon (GF(2^8) and GF(2^16)) codes, this value indicates the maximum number of parity segments available from the sender for the coding blocks. This field MAY be interpreted differently for other systematic codes as they are defined.

   The payload portion of NORM_DATA messages includes source data or FEC
   encoded application content.

The payload portion of NORM_DATA messages includes source data or FEC encoded application content.

   The "payload_reserved", "payload_len" and "payload_offset" fields are
   present ONLY for transport objects of type NORM_OBJECT_STREAM.  These
   fields indicate the size and relative position (within the stream) of
   the application content represented by the message payload.  For
   senders employing systematic FEC encoding, these fields contain
   _actual_ length and offset values (in bytes) for the payload of
   messages which contain original data source symbols.  For NORM_DATA
   messages containing calculated parity content, these fields will
   actually contain values computed by FEC encoding of the "payload_len"
   and "payload_offset" values of the NORM_DATA data segments of the
   corresponding FEC coding block.  Thus, the "payload_len" and
   "payload_offset" values of missing data content can be determined
   upon decoding a FEC coding block.  Note that these fields do NOT

The "payload_reserved", "payload_len" and "payload_offset" fields are present ONLY for transport objects of type NORM_OBJECT_STREAM. These fields indicate the size and relative position (within the stream) of the application content represented by the message payload. For senders employing systematic FEC encoding, these fields contain _actual_ length and offset values (in bytes) for the payload of messages which contain original data source symbols. For NORM_DATA messages containing calculated parity content, these fields will actually contain values computed by FEC encoding of the "payload_len" and "payload_offset" values of the NORM_DATA data segments of the corresponding FEC coding block. Thus, the "payload_len" and "payload_offset" values of missing data content can be determined upon decoding a FEC coding block. Note that these fields do NOT

Adamson, et al.               Experimental                     [Page 23]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 23] RFC 3940 NORM Protocol November 2004

   contribute to the value of the NORM_DATA "hdr_len" field.  These
   fields are NOT present when the "flags" portion of the NORM_DATA
   message indicate the transport object if of type NORM_OBJECT_FILE or
   NORM_OBJECT_DATA.  In this case, the length and offset information
   can be calculated from the "fec_payload_id" using the methodology
   described in Section 5.1.1.  Note that for long-lived streams, the
   "payload_offset" field can wrap.

contribute to the value of the NORM_DATA "hdr_len" field. These fields are NOT present when the "flags" portion of the NORM_DATA message indicate the transport object if of type NORM_OBJECT_FILE or NORM_OBJECT_DATA. In this case, the length and offset information can be calculated from the "fec_payload_id" using the methodology described in Section 5.1.1. Note that for long-lived streams, the "payload_offset" field can wrap.

   The "payload_data" field contains the original application source  or
   parity content for the symbol identified by the "fec_payload_id".
   The length of this field SHALL be limited to a maximum of the
   sender's NormSegmentSize bytes as given in the FTI for the object.
   Note the length of this field for messages containing parity content
   will always be of length NormSegmentSize.  When encoding data
   segments of varying sizes, the FEC encoder SHALL assume ZERO value
   padding for data segments with length less than the NormSegmentSize.
   It is RECOMMENDED that a sender's NormSegmentSize generally be
   constant for the duration of a given sender's term of participation
   in the session, but may possibly vary on a per-object basis.  The
   NormSegmentSize is expected to be configurable by the sender
   application prior to session participation as needed for network
   topology maximum transmission unit (MTU) considerations.  For IPv6,
   MTU discovery may be possibly leveraged at session startup to perform
   this configuration.  The "payload_data" content may be delivered
   directly to the application for source symbols (when systematic FEC
   encoding is used) or upon decoding of the FEC block.  For
   NORM_OBJECT_FILE and NORM_OBJECT_STREAM objects, the data segment
   length and offset can be calculated using the algorithm described in
   Section 5.1.1.  For NORM_OBJECT_STREAM objects, the length and offset
   is obtained from the segment's corresponding "payload_len" and
   "payload_offset" fields.

The "payload_data" field contains the original application source or parity content for the symbol identified by the "fec_payload_id". The length of this field SHALL be limited to a maximum of the sender's NormSegmentSize bytes as given in the FTI for the object. Note the length of this field for messages containing parity content will always be of length NormSegmentSize. When encoding data segments of varying sizes, the FEC encoder SHALL assume ZERO value padding for data segments with length less than the NormSegmentSize. It is RECOMMENDED that a sender's NormSegmentSize generally be constant for the duration of a given sender's term of participation in the session, but may possibly vary on a per-object basis. The NormSegmentSize is expected to be configurable by the sender application prior to session participation as needed for network topology maximum transmission unit (MTU) considerations. For IPv6, MTU discovery may be possibly leveraged at session startup to perform this configuration. The "payload_data" content may be delivered directly to the application for source symbols (when systematic FEC encoding is used) or upon decoding of the FEC block. For NORM_OBJECT_FILE and NORM_OBJECT_STREAM objects, the data segment length and offset can be calculated using the algorithm described in Section 5.1.1. For NORM_OBJECT_STREAM objects, the length and offset is obtained from the segment's corresponding "payload_len" and "payload_offset" fields.

4.2.2.  NORM_INFO Message

4.2.2. NORM_INFO Message

   The NORM_INFO message is used to convey OPTIONAL, application-
   defined, "out-of-band" context information for transmitted
   NormObjects.  An example NORM_INFO use for bulk file transfer is to
   place MIME type information for the associated file, data, or stream
   object into the NORM_INFO payload.  Receivers may use the NORM_INFO
   content to make a decision as whether to participate in reliable
   reception of the associated object.  Each NormObject can have an
   independent unit of NORM_INFO associated with it.  NORM_DATA messages
   contain a flag to indicate the availability of NORM_INFO for a given
   NormObject.  NORM receivers may NACK for retransmission of NORM_INFO
   when they have not received it for a given NormObject.  The size of
   the NORM_INFO content is limited to that of a single NormSegmentSize

The NORM_INFO message is used to convey OPTIONAL, application- defined, "out-of-band" context information for transmitted NormObjects. An example NORM_INFO use for bulk file transfer is to place MIME type information for the associated file, data, or stream object into the NORM_INFO payload. Receivers may use the NORM_INFO content to make a decision as whether to participate in reliable reception of the associated object. Each NormObject can have an independent unit of NORM_INFO associated with it. NORM_DATA messages contain a flag to indicate the availability of NORM_INFO for a given NormObject. NORM receivers may NACK for retransmission of NORM_INFO when they have not received it for a given NormObject. The size of the NORM_INFO content is limited to that of a single NormSegmentSize

Adamson, et al.               Experimental                     [Page 24]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 24] RFC 3940 NORM Protocol November 2004

   for the given sender.  This atomic nature allows the NORM_INFO to be
   rapidly and efficiently repaired within the NORM reliable
   transmission process.

for the given sender. This atomic nature allows the NORM_INFO to be rapidly and efficiently repaired within the NORM reliable transmission process.

   When NORM_INFO content is available for a NormObject, the
   NORM_FLAG_INFO flag SHALL be set in NORM_DATA messages for the
   corresponding "object_transport_id" and the NORM_INFO message shall
   be transmitted as the first message for the NormObject.

When NORM_INFO content is available for a NormObject, the NORM_FLAG_INFO flag SHALL be set in NORM_DATA messages for the corresponding "object_transport_id" and the NORM_INFO message shall be transmitted as the first message for the NormObject.

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=1|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     flags     |     fec_id    |     object_transport_id       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                header_extensions (if applicable)              |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         payload_data                          |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =1をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 旗| fec_イド| 物_輸送_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ヘッダー_拡大(適切であるなら)| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ペイロード_データ| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        NORM_INFO Message Format

標準_インフォメーションメッセージ・フォーマット

   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 "hdr_len" field when no header extensions are present is 4.

「バージョン」、「タイプ」、「hdr_len」、「系列」、および「ソース_イド」分野はセクション4.1で説明されるようにNORM Common Message Headerを形成します。 どんなヘッダー拡大も存在していないとき、「hdr_len」分野の値は4です。

   The "instance_id", "grtt", "backoff", "gsize", "flags", "fec_id", and
   "object_transport_id" fields carry the same information and serve the
   same purpose as with NORM_DATA messages.  These values allow the
   receiver to prepare appropriate buffering, etc, for further
   transmissions from the sender when NORM_INFO is the first message
   received.

「例_イド」、"backoff"、"gsize"、「旗」、「fec_イド」、および「物_輸送_イド」分野はNORM_DATAメッセージで"grtt"に同じ情報を運んで、同じ目的に役立ちます。 受信機はこれらの値で適切なバッファリングなどを準備できます、NORM_INFOが最初のメッセージであるときに、送付者からのさらなるトランスミッションが受信されたので。

   As with NORM_DATA messages, the NORM FTI Header Extension (EXT_FTI)
   may be optionally applied to NORM_INFO messages.  To conserve
   protocol overhead, some NORM implementations may wish to apply the
   EXT_FTI when used to NORM_INFO messages only and not to NORM_DATA
   messages.

NORM_DATAメッセージなら、NORM FTI Header Extension(EXT_FTI)は任意にNORM_INFOメッセージに適用されるかもしれません。 NORM_DATAメッセージではなく、NORM_INFOメッセージだけに使用されると、プロトコルオーバーヘッドを保存するために、いくつかのNORM実現がEXT_FTIを適用したがっているかもしれません。

Adamson, et al.               Experimental                     [Page 25]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [25ページ]実験的なRFC3940標準プロトコル2004年11月

   The NORM_INFO "payload_data" field contains sender application-
   defined content which can be used by receiver applications for
   various purposes as described above.

分野が含むNORM_INFO「ペイロード_データ」送付者アプリケーションは上で説明されるように様々な目的のための受信側アプリケーションで使用できる内容を定義しました。

4.2.3.  NORM_CMD Messages

4.2.3. 標準_CMDメッセージ

   NORM_CMD messages are transmitted by senders to perform a number of
   different protocol functions.  This includes functions such as
   round-trip timing collection, congestion control functions,
   synchronization of sender/receiver repair "windows", and notification
   of sender status.  A core set of NORM_CMD messages is enumerated.
   Additionally, a range of command types remain available for potential
   application-specific use.  Some NORM_CMD types may have dynamic
   content attached.  Any attached content will be limited to maximum
   length of the sender NormSegmentSize to retain the atomic nature of
   commands.  All NORM_CMD messages begin with a common set of fields,
   after the usual NORM message common header.  The standard NORM_CMD
   fields are:

NORM_CMDメッセージは、多くの異なったプロトコル機能を実行するために送付者によって送られます。 これは往復のタイミング収集や、輻輳制御機能や、受信機修理送付者/「窓」の同期や、送付者状態の通知などの機能を含んでいます。 1人の巻き癖に関するNORM_CMDメッセージは列挙されます。 さらに、さまざまなコマンドタイプが潜在的アプリケーション特定的用法に利用可能なままで残っています。 NORM_CMDタイプの中にはダイナミックな内容を添付させる人もいるかもしれません。 どんな添付の内容も、コマンドの原子本質を保有するために送付者NormSegmentSizeの最大の長さに制限されるでしょう。 すべてのNORM_CMDメッセージが普通のNORMメッセージ一般的なヘッダーの後に一般的なセットの分野で始まります。 標準のNORM_CMD分野は以下の通りです。

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=3|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     flavor    |                                               |
   +-+-+-+-+-+-+-+-+        NORM_CMD Content                       +
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =3をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 風味| | +++++++++標準_CMD内容+| ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        NORM_CMD Standard Fields

標準_CMDの標準の分野

   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 "hdr_len" field for NORM_CMD messages without header
   extensions present depends upon the "flavor" field.

「バージョン」、「タイプ」、「hdr_len」、「系列」、および「ソース_イド」分野はセクション4.1で説明されるようにNORM Common Message Headerを形成します。 存在しているヘッダー拡大のないNORM_CMDメッセージのための「hdr_len」分野の値は「風味」分野に依存します。

   The "instance_id", "grtt", "backoff", and "gsize" fields provide the
   same information and serve the same purpose as with NORM_DATA and
   NORM_INFO messages.  The "flavor" field indicates the type of command
   to follow.  The remainder of the NORM_CMD message is dependent upon
   the command type ("flavor").  NORM command flavors include:

分野がNORM_DATAとNORM_INFOメッセージのように同じ情報を提供して、同じ目的に役立つ「例_イド」、"grtt"、"backoff"、および"gsize"。 「風味」分野は続くコマンドのタイプを示します。 NORM_CMDメッセージの残りはコマンドタイプ(「風味」)に依存しています。 NORMコマンド風味は:

Adamson, et al.               Experimental                     [Page 26]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [26ページ]実験的なRFC3940標準プロトコル2004年11月

+----------------------+-------------+---------------------------------+
|       Command        |Flavor Value |            Purpose              |
+----------------------+-------------+---------------------------------+
|NORM_CMD(FLUSH)       |      1      | Used to indicate sender         |
|                      |             | temporary end-of-transmission.  |
|                      |             | (Assists in robustly initiating |
|                      |             | outstanding repair requests from|
|                      |             | receivers).  May also be        |
|                      |             | optionally used to collect      |
|                      |             | positive acknowledgment of      |
|                      |             | reliable reception from subset  |
|                      |             | of receivers.                   |
+----------------------+-------------+---------------------------------+
|NORM_CMD(EOT)         |      2      | Used to indicate sender         |
|                      |             | permanent end-of-transmission.  |
+----------------------+-------------+---------------------------------+
|NORM_CMD(SQUELCH)     |      3      | Used to advertise sender's      |
|                      |             | current repair window in        |
|                      |             | response to out-of-range NACKs  |
|                      |             | from receivers.                 |
+----------------------+-------------+---------------------------------+
|NORM_CMD(CC)          |      4      | Used for GRTT measurement and   |
|                      |             | collection of congestion control|
|                      |             | feedback.                       |
+----------------------+-------------+---------------------------------+
|NORM_CMD(REPAIR_ADV)  |      5      | Used to advertise sender's      |
|                      |             | aggregated repair/feedback state|
|                      |             | for suppression of unicast      |
|                      |             | feedback from receivers.        |
+----------------------+-------------+---------------------------------+
|NORM_CMD(ACK_REQ)     |      6      | Used to request application-    |
|                      |             | defined positive acknowledgment |
|                      |             | from a list of receivers        |
|                      |             | (OPTIONAL).                     |
+----------------------+-------------+---------------------------------+
|NORM_CMD(APPLICATION) |      7      | Used for application-defined    |
|                      |             | purposes which may need to      |
|                      |             | temporarily preempt data        |
|                      |             | transmission (OPTIONAL).        |
+----------------------+-------------+---------------------------------+

+----------------------+-------------+---------------------------------+ | コマンド|風味値| 目的| +----------------------+-------------+---------------------------------+ |標準_CMD(平らに)| 1 | 送付者を示すために、使用されます。| | | | トランスミッションの一時的な端。 | | | | (||強壮に開始することにおけるアシスト| | | 傑出している修理は|要求します| | 受信機。) また、あるかもしれません。| | | | 集まるのに任意に使用されます。| | | | 肯定応答| | | | 部分集合からの信頼できるレセプション| | | | 受信機について。 | +----------------------+-------------+---------------------------------+ |標準_CMD(EOT)| 2 | 送付者を示すために、使用されます。| | | | トランスミッションの永久的な端。 | +----------------------+-------------+---------------------------------+ |標準_CMD(スケルチ)| 3 | 送付者のものの広告を出すために、使用されます。| | | | 中の現在の修理ウィンドウ| | | | 範囲の外への応答NACKs| | | | 受信機から。 | +----------------------+-------------+---------------------------------+ |標準_CMD(CC)| 4 | そしてGRTT測定に使用される。| | | | 輻輳制御の収集| | | | フィードバック。 | +----------------------+-------------+---------------------------------+ |標準_CMD(修理_ADV)| 5 | 送付者のものの広告を出すために、使用されます。| | | | 修理/フィードバック状態に集めます。| | | | ユニキャストの抑圧のために| | | | 受信機からのフィードバック。 | +----------------------+-------------+---------------------------------+ |標準_CMD(ACK_REQ)| 6 | 申込み書を要求するために、使用されます。| | | | 定義された肯定応答| | | | 受信機のリストから| | | | (任意の。) | +----------------------+-------------+---------------------------------+ |標準_CMD(アプリケーション)| 7 | 使用される、アプリケーションで定義にされる| | | | 必要があるかもしれない目的| | | | 一時データを先取りしてください。| | | | トランスミッション(OPTIONAL)。 | +----------------------+-------------+---------------------------------+

4.2.3.1.  NORM_CMD(FLUSH) Message

4.2.3.1. 標準_CMD(平らである)メッセージ

   The NORM_CMD(FLUSH) command is sent when the sender reaches the end
   of all data content and pending repairs it has queued for
   transmission.  This may indicate a temporary or permanent end of data
   transmission, but the sender is still willing to respond to repair
   requests.  This command is repeated once per 2*GRTT to excite the

送付者がそれがトランスミッションのために列に並ばせたすべてのデータ内容と未定の修理の端に達するとき、NORM_CMD(FLUSH)コマンドを送ります。 これはデータ伝送の一時的であるか永久的な終わりを示すかもしれませんが、送付者は、要求を修理するために応じても構わないとまだ思っています。 このコマンドは、興奮させるために2*GRTT単位で一度繰り返されます。

Adamson, et al.               Experimental                     [Page 27]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [27ページ]実験的なRFC3940標準プロトコル2004年11月

   receiver set for any outstanding repair requests up to and including
   the transmission point indicated within the NORM_CMD(FLUSH) message.
   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_list"
   is updated as acknowledgments are received and the NORM_CMD(FLUSH) is
   repeated according to the mechanism described in Section 5.5.3.  The
   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 are delivered to
   the sender.  If a NORM_NACK message interrupts the flush process, the
   sender will re-initiate the flush process after any resulting repair
   transmissions are completed.

受信機はどんな傑出している修理要求のためにもNORM_CMD(FLUSH)メッセージの中に示されたトランスミッションポイントを含めてセットしました。 明白な肯定応答が予想される受信機(「acking_ノード_リスト」)のリストが与えられない場合、反復の数はNORM_ROBUST_FACTORと等しいです。 その場合、承認が受け取られているとき、「acking_ノード_リスト」をアップデートします、そして、セクション5.5.3で説明されたメカニズムによると、NORM_CMD(FLUSH)を繰り返します。 NORM_ROBUST_FACTORがすばらしければすばらしいほど、すべての適切な受信機が修理要求(NACKs)の承認か_と_のために対応するNACKsが送付者に届けられるのに興奮するという確率は、より大きいです。 NORM_ナックメッセージが洗い流すことの過程を中断すると、どんな結果として起こる修理送信も終了した後に送付者は洗い流すことの過程に再着手するでしょう。

   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.  This inactivity timeout is
   related to 2*GRTT*NORM_ROBUST_FACTOR and will be discussed more
   later.  With a sufficient NORM_ROBUST_FACTOR value, data content is
   delivered with a high assurance of reliability.  The penalty of a
   large NORM_ROBUST_FACTOR value is potentially excess sender
   NORM_CMD(FLUSH) transmissions and a longer timeout for receivers to
   self-initiate the terminal NACK process.

また、受信機が送付者からどんなタイプに関するメッセージも全く受け取らないとき、自己に、NACKing(傑出している修理の必要性があれば)を開始するのにタイムアウトメカニズムを使うことに注意してください。 この不活発タイムアウトについて、2*GRTT*NORM_ROBUST_FACTORに関連して、後でさらに議論するでしょう。 十分なNORM_ROBUST_FACTOR価値と共に、信頼性の高い保証はデータ内容を送ります。 大きいNORM_ROBUST_FACTOR価値の刑罰は、潜在的に余分な送付者NORM_CMD(FLUSH)トランスミッションと受信機が自己に端末のナックの過程に着手するより長いタイムアウトです。

   For finite-size transport objects such as NORM_OBJECT_DATA and
   NORM_OBJECT_FILE, the flush process (if there are no further pending
   objects) occurs at the end of these objects.  Thus, FEC repair
   information is always available for repairs in response to repair
   requests elicited by the flush command.  However, for
   NORM_OBJECT_STREAM, the flush may occur at any time, including in the
   middle of an FEC coding block if systematic FEC codes are employed.
   In this case, the sender will not yet be able to provide FEC parity
   content as repair for the concurrent coding block and will be limited
   to explicitly repairing stream data content for that block.
   Applications that anticipate frequent flushing of stream content
   SHOULD be judicious in the selection of the FEC coding block size
   (i.e., do not use a very large coding block size if frequent flushing
   occurs).  For example, a reliable multicast application transmitting
   an on-going series of intermittent, relatively small messaging
   content will need to trade-off using the NORM_OBJECT_DATA paradigm
   versus the NORM_OBJECT_STREAM paradigm with an appropriate FEC coding
   block size.  This is analogous to application trade-offs for other
   transport protocols such as the selection of different TCP modes of
   operation such as "no delay", etc.

NORM_OBJECT_DATAやNORM_OBJECT_FILEなどの有限サイズ輸送物に関しては、洗い流すことの過程(未定の物がこれ以上なければ)はこれらの物の端に起こります。 したがって、FEC修理情報は洗い流しコマンドで引き出された修理要求に対応していつも修理に利用可能です。 しかしながら、NORM_OBJECT_STREAMに関して、水洗はいつでも起こるかもしれません、FECがブロックをコード化する中央に系統的なFECコードが採用しているかどうかを含んでいて。 この場合、送付者は、同時発生のコード化ブロックのための修理としてまだパリティ内容をFECに供給できないで、明らかにそのブロック流れのデータ内容を修理するのに制限されるでしょう。 流れの内容SHOULDを頻繁な洗い流すのがFECコード化の選択で賢明であると予期するアプリケーションがサイズを妨げます(すなわち、頻繁な洗い流すことが起こるなら、非常に大きいコード化ブロック・サイズを使用しないでください)。 例えば、トレードオフへの必要性が適切なFECと共にNORM_OBJECT_STREAMパラダイムに対してNORM_OBJECT_DATAパラダイムを使用して、継続しているシリーズの間欠の、そして、比較的小さいメッセージング内容を伝える高信頼のマルチキャストアプリケーションは、ブロック・サイズをコード化しながら、そうするでしょう。 これは「遅れがありません」などの操作の異なったTCPモードの品揃えなどの他のトランスポート・プロトコルのためのアプリケーショントレードオフに類似しています。

Adamson, et al.               Experimental                     [Page 28]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [28ページ]実験的なRFC3940標準プロトコル2004年11月

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=3|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   flavor = 1  |    fec_id     |      object_transport_id      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         fec_payload_id                        |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                acking_node_list (if applicable)               |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =3をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 風味=1| fec_イド| 物_輸送_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_ペイロード_イド| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | acking_ノード_リスト(適切であるなら)| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     NORM_CMD(FLUSH) Message Format

標準_CMD(平らである)メッセージ・フォーマット

   In addition to the NORM common message header and standard NORM_CMD
   fields, the NORM_CMD(FLUSH) message contains fields to identify the
   current status and logical transmit position of the sender.

NORMの一般的なメッセージヘッダーと標準のNORM_CMD分野、CMD(FLUSH)メッセージが含むNORM_に加えて、状態的で論理的に電流を特定する分野は送付者の位置を伝えます。

   The "fec_id" field indicates the FEC type used for the flushing
   "object_transport_id" and implies the size and format of the
   "fec_payload_id" field.  Note the "hdr_len" value for the
   NORM_CMD(FLUSH) message is 4 plus the size of the "fec_payload_id"
   field when no header extensions are present.

「fec_イド」分野は、洗い流している「物_輸送_イド」に使用されるFECタイプを示して、「fec_ペイロード_イド」分野のサイズと書式を含意します。 どんなヘッダー拡大も存在していないとき、NORM_CMD(FLUSH)メッセージのための「hdr_len」値が「fec_ペイロード_イド」分野の4とサイズであることに注意してください。

   The "object_transport_id" and "fec_payload_id" fields indicate the
   sender's current logical "transmit position".  These fields are
   interpreted in the same manner as in the NORM_DATA message type.
   Upon receipt of the NORM_CMD(FLUSH), receivers are expected to check
   their completion state _through_ (including) this transmission
   position.  If receivers have outstanding repair needs in this range,
   they SHALL initiate the NORM NACK Repair Process as described in
   Section 5.3.  If receivers have no outstanding repair needs, no
   response to the NORM_CMD(FLUSH) is generated.

「物の_輸送_イド」と「fec_ペイロード_イド」分野は論理的に送付者の電流を示します。「位置を伝えてください。」 これらの分野はNORM_DATAメッセージタイプのように同じ方法で解釈されます。 NORM_CMD(FLUSH)を受け取り次第、受信機が_この(含んでいます)トランスミッション位置を通って彼らの完成州の_をチェックすると予想されます。 受信機がそうしたなら、傑出している修理は中でこの範囲を必要として、それらはSHALLです。セクション5.3で説明されているとしてNORM NACK Repair Processを開始してください。 受信機にどんな傑出している修理の必要性もないなら、NORM_CMD(FLUSH)への応答は全く発生しません。

   For NORM_OBJECT_STREAM objects using systematic FEC codes, receivers
   MUST request "explicit-only" repair of the identified
   "source_block_number" if the given "encoding_symbol_id" is less than
   the "source_block_len".  This condition indicates the sender has not
   yet completed encoding the corresponding FEC block and parity content
   is not yet available.  An "explicit-only" repair request consists of
   NACK content for the applicable "source_block_number" which does not
   include any requests for parity-based repair.  This allows NORM

系統的なFECコードを使用するNORM_OBJECT_STREAM物に関しては、受信機は与えられた「コード化_シンボル_イド」が「ソース_ブロック_len」以下であるなら特定された「ソース_ブロック_番号」の「明白に唯一」の修理を要求しなければなりません。 この状態は、送付者が、対応するFECブロックをコード化するのをまだ完成していないのを示します、そして、パリティ内容はまだ利用可能ではありません。 「明白に唯一」の修理要求がパリティベースの修理を求めるどんな要求も含んでいない適切な「ソース_ブロック_番号」のためのナック内容から成ります。 これはNORMを許容します。

Adamson, et al.               Experimental                     [Page 29]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [29ページ]実験的なRFC3940標準プロトコル2004年11月

   sender applications to "flush" an ongoing stream of transmission when
   needed, even if in the middle of an FEC block.  Once the sender
   resumes 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
   assumed here.  Normal receiver NACK initiation and construction is
   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
   through the transmission point identified by the
   "object_transport_id" and "fec_payload_id" fields.  The length of the
   list can be inferred from the length of the received NORM_CMD(FLUSH)
   message.  When the "acking_node_list" is present, the lightweight
   positive acknowledgment process described in Section 5.5.3 SHALL be
   observed.

トランスミッションの進行中の流れを「洗い流す」送付者アプリケーション1つのFECブロックの中央で必要であると。 送付者がいったん流れ転送を再開して、未定のコード化ブロックの端を通過すると、受信機SHALLからのその後のNACKsは通常通りのパリティベースの修理を要求します。 系統的なFECコードの使用がここで想定されることに注意してください。 セクション5.3で詳細に普通の受信機ナックの開始と工事について議論します。 OPTIONAL「acking_ノード_リスト」分野は送付者が「物の_輸送_イド」と「fec_ペイロード_イド」分野によって特定されたトランスミッションポイントを通したレセプションの明白な肯定応答を要求している受信機のためのNormNodeIdsのリストを含んでいます。 容認されたNORM_CMD(FLUSH)メッセージの長さからリストの長さを推論できます。 ライト級肯定応答の過程は、「acking_ノード_リスト」がいつ存在しているかを説明しました。セクション5.5.3SHALLでは、観測されてください。

4.2.3.2.  NORM_CMD(EOT) Message

4.2.3.2. 標準_CMD(EOT)メッセージ

   The NORM_CMD(EOT) command is sent when the 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
   requiring any timeout) and free any resources that are no longer
   needed.  The NORM_CMD(EOT) command SHOULD be sent with the same
   robust mechanism as used for NORM_CMD(FLUSH) commands to provide a
   high assurance of reception by the receiver set.

送付者がNormSessionに関してトランスミッションの永久的な端に達して、修理要求を促進するために応じないとき、NORM_CMD(EOT)コマンドを送ります。 これは、この送付者(タイムアウトを必要とすることのない)と共に操作の閉鎖に優雅に達して、もう必要でないどんなリソースも解放するために受信機を許容します。 NORM_CMD(EOT)は提供するNORM_CMDに使用される同じ強健なメカニズムで送られた(FLUSH)コマンドが受信機セットによるレセプションの高い保証であったならSHOULDを命令します。

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=3|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   flavor = 2  |                    reserved                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =3をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 風味=2| 予約されます。| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      NORM_CMD(EOT) Message Format

標準_CMD(EOT)メッセージ・フォーマット

   The value of the "hdr_len" field for NORM_CMD(EOT) messages without
   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.

存在しているヘッダー拡大のないNORM_CMD(EOT)メッセージのための「hdr_len」分野の値は4です。 「予約された」分野を今後の使用のために予約されて、すべてのZERO値に設定しなければなりません。 受信機は「予約された」分野を無視しなければなりません。

Adamson, et al.               Experimental                     [Page 30]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [30ページ]実験的なRFC3940標準プロトコル2004年11月

4.2.3.3.  NORM_CMD(SQUELCH) Message

4.2.3.3. 標準_CMD(スケルチ)メッセージ

   The NORM_CMD(SQUELCH) command is transmitted in response to outdated
   or invalid NORM_NACK content received by the sender.  Invalid
   NORM_NACK content consists of repair requests for NormObjects for
   which the sender is unable or unwilling to provide repair.  This
   includes repair requests for outdated objects, aborted objects, or
   those objects which the 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's current "repair window".  Receivers SHALL not generate
   repair requests for content identified as invalid by a
   NORM_CMD(SQUELCH).

NORM_CMD(SQUELCH)コマンドは送付者によって受け取られた時代遅れの、または、無効のNORM_ナック内容に対応して伝えられます。 無効のNORM_ナック内容は送付者が修理を提供したがっていないNormObjectsを求める修理要求から成ります。 これは時代遅れの物を求める修理要求を含んでいます、中止になっている物、または、送付者が以前に伝えたそれらの物がNORMと共に_FLAGがUNRELIABLEが旗を揚げさせる_であるとマークしました。 このコマンドは、どんな内容が修理に利用可能であるかを受信機に示します、その結果、送付者の現在の「修理ウィンドウ」の記述として、機能します。 受信機SHALLは同じくらい無効の状態でNORM_CMD(SQUELCH)によって特定された内容に関する修理要求を発生させません。

   The NORM_CMD(SQUELCH) command is sent once per 2*GRTT at the most.
   The NORM_CMD(SQUELCH) advertises the current "repair window" of the
   sender by identifying the earliest (lowest) transmission point for
   which it will provide repair, along with an encoded list of objects
   from that point forward that are no longer valid for repair.  This
   mechanism allows the sender application to cancel or abort
   transmission and/or repair of specific previously enqueued objects.
   The list also contains the identifiers for any objects within the
   repair window that were sent with the NORM_FLAG_UNRELIABLE flag set.
   In normal conditions, it is expected the 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.

大部分で2*GRTTに一度NORM_CMD(SQUELCH)コマンドを送ります。 NORM_CMD(SQUELCH)はそれが修理を提供する最も前(最も低い)のトランスミッションポイントを特定することによって、送付者の現在の「修理ウィンドウ」の広告を出します、そのポイントフォワードからの修理には、もう有効でない物のコード化されたリストと共に。 このメカニズムで、送付者アプリケーションは、特定の以前に待ち行列に入れられた物のトランスミッション、そして/または、修理を中止するか、または中止します。 また、リストはNORM_FLAG_UNRELIABLE旗のセットで送られた修理ウィンドウの中にどんな物のための識別子も含んでいます。 正常な状態で、非常に不十分なネットワーク状態で送付者と「同期していなかった」状態で落ちたNORM_CMD(SQUELCH)がまれに、そして、一般に必要ですが、参照修理ウィンドウを受信機に供給すると予想されます。

   The starting point of the invalid NormObject list begins with the
   lowest invalid NormTransportId greater than the current "repair
   window" start from the invalid NACK(s) that prompted the generation
   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
   transmission of NORM_CMD(SQUELCH) commands.  The format of the
   NORM_CMD(SQUELCH) message is:

最も低い無効のNormTransportIdが現在の「修理ウィンドウ」始めよりすばらしい状態で無効のNormObjectリストの出発点はスケルチの世代をうながした無効のナックから始まります。 リストの長さは送付者のNormSegmentSizeによって制限されます。 これで、受信機はNORM_CMD(SQUELCH)コマンドの最小量の送信で送付者の適切な物の修理ウィンドウの状態を学ぶことができます。 NORM_CMD(SQUELCH)メッセージの形式は以下の通りです。

Adamson, et al.               Experimental                     [Page 31]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [31ページ]実験的なRFC3940標準プロトコル2004年11月

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    version    |   type = 3    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  flavor = 3   |     fec_id    |      object_transport_id      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         fec_payload_id                        |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        invalid_object_list                    |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | バージョン| =3をタイプしてください。| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 風味=3| fec_イド| 物_輸送_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_ペイロード_イド| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 無効の_物_リスト| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    NORM_CMD(SQUELCH) Message Format

標準_CMD(スケルチ)メッセージ・フォーマット

   In addition to the NORM common message header and standard NORM_CMD
   fields, the NORM_CMD(SQUELCH) message contains fields to identify the
   earliest logical transmit position of the sender's current repair
   window and an "invalid object list" beginning with the index of the
   logically earliest invalid repair request from the offending NACK
   message which initiated the squelch transmission.

NORMの一般的なメッセージヘッダーと標準のNORM_CMD分野、CMD(SQUELCH)メッセージが含むNORM_に加えて、論理的に特定する中でもの最も早い分野は、論理的に最も初期の無効の修理要求のインデックスでスケルチ送信を開始した怒っているナックメッセージから始まりながら、送付者の現在の修理ウィンドウと「無効の物のリスト」の位置を伝えます。

   The "object_transport_id" and "fec_payload_id" fields are
   concatenated to indicate the beginning of the sender's current repair
   window (i.e., the logically earliest point in its transmission
   history for which the sender can provide repair).  The "fec_id" field
   implies the size and format of the "fec_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
   included in the "fec_payload_id" field, the sender's repair window
   SHOULD be aligned on FEC coding block boundaries and thus the
   "encoding_symbol_id" SHOULD be zero.

「物の_輸送_イド」と「fec_ペイロード_イド」分野は、送付者の現在の修理ウィンドウ(すなわち、送付者が修理を提供できるトランスミッション歴史で論理的に最も前のポイント)の始まりを示すために連結されます。 「fec_イド」分野は「fec_ペイロード_イド」分野のサイズと書式を含意します。 これは受信機が修理を要求する「同期ポイント」の広告として機能します。 「コード化_シンボル_イド」はそうですが、「fec_ペイロード_イド」分野、送付者の修理ウィンドウSHOULDに含まれていて、いてください。注意、それ、ゼロになってくださいブロック境界をコード化して、その結果、「コード化_シンボル_イド」SHOULDをコード化しながらFECに並べられて。

   The "invalid_object_list" is a list of 16-bit NormTransportIds that,
   although they are within the range of the sender's current repair
   window, are no longer available for repair from the sender.  For
   example, a sender application may dequeue an out-of-date object even
   though it is still within the repair window.  The total size of the
   "invalid_object_list" content is can be determined from the packet's
   payload length and is limited to a maximum of the NormSegmentSize of
   the sender.  Thus, for very large repair windows, it is possible that
   a single NORM_CMD(SQUELCH) message may not be capable of listing the
   entire set of invalid objects in the repair window.  In this case,

「無効の_物_リスト」は彼らが送付者の現在の修理ウィンドウの範囲の中にいますが、もう送付者からの修理に利用可能でない16ビットのNormTransportIdsのリストです。 例えば、まだ修理ウィンドウの中にそれはありますが、送付者アプリケーションは時代遅れな物をデキューするかもしれません。 「無効の_物_リスト」内容の総サイズは、パケットのペイロード長から決定できるということであり、最大送付者のNormSegmentSizeに制限されます。 したがって、非常に大きい修理ウィンドウに関して、全体のセットの無効の物を修理ウィンドウに独身のNORM_CMD(SQUELCH)メッセージが記載されることができないのは、可能です。 この場合

Adamson, et al.               Experimental                     [Page 32]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [32ページ]実験的なRFC3940標準プロトコル2004年11月

   the sender SHALL ensure that the list begins with a NormObjectId that
   is greater than or equal to the lowest ordinal invalid NormObjectId
   from the NACK message(s) that prompted the NORM_CMD(SQUELCH)
   generation.  The NormObjectIds in the "invalid_object_list" MUST be
   greater than the "object_transport_id" marking the beginning of the
   sender's repair window.  This insures convergence of the squelch
   process, even if multiple invalid NACK/ squelch iterations are
   required.  This explicit description of invalid content within the
   sender's current window allows the sender application (most notably
   for discrete "object" based transport) to arbitrarily invalidate
   (i.e., dequeue) portions of enqueued content (e.g., certain objects)
   for which it no longer wishes to provide reliable transport.

送付者SHALLは、リストがNormObjectIdと共に始まるのを確実にします、すなわち、ナックからの最も低い序数の無効のNormObjectIdがNORM_CMD(SQUELCH)世代をうながした(s)をより通信させます。 送付者の修理ウィンドウの始まりを示して、「無効の_物_リスト」のNormObjectIdsは「物_輸送_イド」よりすばらしいに違いありません。 複数の無効のナック/スケルチ繰り返しが必要であっても、これはスケルチの過程の集合を保障します。 すなわち、送付者の現在の窓の中の無効の内容のこの明白な記述が送付者アプリケーションを許容する、(最も著しさ、「反対してください」という離散的なベースの輸送)、任意に無効にする、(デキューする、)、それがもう信頼できる輸送を提供したがっていない待ち行列に入れられた内容(例えば、ある物)の部分。

4.2.3.4.  NORM_CMD(CC) Message

4.2.3.4. 標準_CMD(CC)メッセージ

   The NORM_CMD(CC) messages contains fields to enable sender-to-
   receiver group greatest round-trip time (GRTT) measurement and to
   excite the group for congestion control feedback.  A baseline NORM
   congestion control scheme (NORM-CC), based on the TCP-Friendly
   Multicast Congestion Control (TFMCC) scheme of [19] is described in
   Section 5.5.2 of this document.  The NORM_CMD(CC) message is usually
   transmitted as part of NORM-CC congestion control operation.  A NORM
   header extension is defined below to be used with the NORM_CMD(CC)
   message to support NORM-CC operation.  Different header extensions
   may be defined for the NORM_CMD(CC) (and/or other NORM messages as
   needed) to support alternative congestion control schemes in the
   future.  If NORM is operated in a private network with congestion
   control operation disabled, the NORM_CMD(CC) message is then used for
   GRTT measurement only and may optionally be sent less frequently than
   with congestion control operation.

NORM_CMD(CC)メッセージは送付者から受信機へのグループ最も大きい往復の時間(GRTT)測定を可能にして、輻輳制御フィードバックのためのグループを興奮させる分野を含んでいます。 基線NORM輻輳制御計画(NORM-CC)、[19]のTCP好意的なMulticast Congestion Controlに基づいている(TFMCC)計画はこの.2通のセクション5.5ドキュメントで説明されます。 通常、NORM_CMD(CC)メッセージはNORM-CC混雑制御機能の一部として送られます。 NORMヘッダー拡張子は、NORM-CC操作を支持するNORM_CMD(CC)メッセージと共に使用されるために以下で定義されます。 NORM_CMD(CC)(そして/または、必要であるとしての他のNORMメッセージ)が将来代替の輻輳制御計画を支持するように、異なったヘッダー拡大は定義されるかもしれません。 操作が損傷した輻輳制御で私設のネットワークでNORMを操作するなら、NORM_CMD(CC)メッセージを次に、GRTT測定だけに使用して、混雑制御機能よりどんな頻繁にも任意に送らないかもしれません。

Adamson, et al.               Experimental                     [Page 33]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [33ページ]実験的なRFC3940標準プロトコル2004年11月

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=3|    hdr_len    |            sequence           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   flavor = 4  |    reserved   |          cc_sequence          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         send_time_sec                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        send_time_usec                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               header extensions (if applicable)               |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  cc_node_list (if applicable)                 |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =3をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 風味=4| 予約されます。| cc_系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | _時間_秒を送ってください。| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | _時間_usecを送ってください。| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ヘッダー拡大(適切であるなら)| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | cc_ノード_リスト(適切であるなら)| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      NORM_CMD(CC) Message Format

標準_CMD(CC)メッセージ・フォーマット

   The NORM common message header and standard NORM_CMD fields serve
   their usual purposes.

NORMの一般的なメッセージヘッダーと標準のNORM_CMD分野はそれらの普通の目的に勤めます。

   The "reserved" field is for potential future use and should be set to
   ZERO in this version of the NORM protocol.

「予約された」分野は、潜在的今後の使用のためにあって、NORMプロトコルのこのバージョンにZEROに設定されるべきです。

   The "cc_sequence" field is a sequence number applied by the sender.
   For NORM-CC operation, it is used to provide functionality equivalent
   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 feedback
   generated by the receivers for that sender.  The "cc_sequence" number
   can also be used in NORM implementations to assess how recently a
   receiver has received NORM_CMD(CC) probes from the sender.  This can
   be useful instrumentation for complex or experimental multicast
   routing environments.

「cc_系列」分野は送付者によって適用された一連番号です。 NORM-CC操作において、それは、[19]で説明された「フィードバック概数」(fb_nr)に同等な機能性を提供するのに使用されます。 最も最近容認された「cc_系列」値を受信機で記録して、提供であって戻しできます。 また、最近受信機が送付者からNORM_CMD(CC)探測装置をどう受け止めたかを評価するのにNORM実現に「cc_系列」番号を使用できます。 これは複雑であるか実験しているマルチキャストルーティング環境のための役に立つ計装であるかもしれません。

   The "send_time" field is a timestamp indicating the time that the
   NORM_CMD(CC) message was transmitted.  This consists of a 64-bit
   field containing 32-bits with the time in seconds ("send_time_sec")
   and 32-bits with the time in microseconds ("send_time_usec") since
   some reference time the source maintains (usually 00:00:00, 1 January
   1970).  The byte ordering of the fields is "Big Endian" network
   order.  Receivers use this timestamp adjusted by the amount of delay

「_時間を送ってください」という分野はNORM_CMD(CC)メッセージが送られた時間を示すタイムスタンプです。 これはソースが維持する秒(「_時間_秒を送る」)の時間による32ビットの、そして、マイクロセカンド(「_時間_usecを送る」)の何らかの参照以来の時間による32ビットの時間(通常00:00:00、1970年1月1日)を含む64ビットの分野から成ります。 分野のバイト順は「ビッグエンディアン」ネットワークオーダーです。 遅れの量に応じてこのタイムスタンプが調整した受信機使用

Adamson, et al.               Experimental                     [Page 34]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [34ページ]実験的なRFC3940標準プロトコル2004年11月

   from the time they received the NORM_CMD(CC) message to the time of
   their response as the "grtt_response" portion of NORM_ACK and
   NORM_NACK messages generated.  This allows the sender to evaluate
   round-trip times to different receivers for congestion control and
   other (e.g., GRTT determination) purposes.

時間から、彼らはNORM_ACKとナックメッセージが発生させたNORM_の「grtt_応答」一部としてNORM_CMD(CC)メッセージを彼らの応答の時間まで受け取りました。 これで、送付者は輻輳制御と他の(例えば、GRTT決断)目的のために異なった受信機に往復の回を評価できます。

   To facilitate the baseline NORM-CC scheme described in Section 5.5.2,
   a NORM-CC Rate header extension (EXT_RATE) is defined to inform the
   group of the sender's current transmission rate.  This is used along
   with the loss detection "sequence" field of all NORM sender messages
   and the NORM_CMD(CC) GRTT collection process to support NORM-CC
   congestion control operation.  The format of this header extension is
   as follows:

セクション5.5.2で説明された基線NORM-CC計画を容易にするなら、NORM-CC Rateヘッダー拡張子(EXT_RATE)は、送付者の変流器率のグループに知らせるために定義されます。 これは、NORM-CC混雑制御機能を支持するのにすべてのNORM送付者メッセージの損失検出「系列」分野とNORM_CMD(CC)GRTT収集の過程と共に使用されます。 このヘッダー拡大の形式は以下の通りです:

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    het = 128  |    reserved   |           send_rate           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 興奮の=128| 予約されます。| _レートを送ってください。| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            NORM-CC Rate Header Extension Format (EXT_RATE)

標準CCレートヘッダー拡大形式(EXT_レート)

   The "send_rate" field indicates the sender's current transmission
   rate in bytes per second.  The 16-bit "send_rate" field consists of
   12 bits of mantissa in the most significant portion and 4 bits of
   base 10 exponent (order of magnitude) information in the least
   significant portion.  The 12-bit mantissa portion of the field is
   scaled such that a floating point value of 0.0 corresponds to 0 and a
   floating point value of 10.0 corresponds to 4096.  Thus:

「_レートを送ってください」という分野は1秒あたりのバイトで表現される送付者の変流器率を示します。 「_レートを送ってください」という16ビットの分野は最も重要でない部分で最も重要な部分の仮数の12ビットと4ビットのベース10解説者(桁)情報から成ります。 分野の12ビットの仮数部分がスケーリングされているので、0.0の浮動小数点値は0に対応しています、そして、10.0の浮動小数点値は4096に対応しています。 このようにして:

   send_rate = (((int)(Value_mantissa * 4096.0 / 10.0 + 0.5)) << 4) |
   Value_exponent;

=((int)(値の_仮数*4096.0 / 10.0+0.5)<<4)を_レートに送ってください。| _解説者を評価してください。

   For example, to represent a transmission rate of 256kbps (3.2e+04
   bytes per second), the lower 4 bits of the 16-bit field contain a
   value of 0x04 to represent the exponent while the upper 12 bits
   contain a value of 0x51f as determined from the equation given above:

例えば、256kbps(1秒あたりの3.2e+04バイト)の通信速度を表すために、上側の12ビットが以下の上に与えられた方程式から決定するように0x51fの値を含んでいる間、16ビットの分野の低級4ビットは解説者の代理をする0×04の値を含んでいます。

send_rate = (((int)((3.2 * 4096.0 / 10.0) + 0.5)) << 4) | 4;

=(((int)((3.2*4096.0 / 10.0)+0.5))<<4)を_レートに送ってください。| 4;

          = (0x51f << 4) | 0x4

= (0x51f<<4) | 0×4

          = 0x51f4

= 0x51f4

To decode the "send_rate" field, the following equation can be used:

「_レートを送ってください」という分野を解読するには、以下の方程式を使用できます:

value = (send_rate >> 4) * 10.0 / 4096.0 *
        power(10.0, (send_rate & x000f))

値は*10.0 / 4096.0*パワーと等しいです(_レート>>4を送ります)。(10.0、(_レートとx000fを送ります))

Adamson, et al.               Experimental                     [Page 35]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [35ページ]実験的なRFC3940標準プロトコル2004年11月

   Note the maximum transmission rate that can be represented by this
   scheme is approximately 9.99e+15 bytes per second.

この計画で表すことができる最大の通信速度が1秒あたり+15バイトおよそ9.99eであることに注意してください。

   When this extension is present, a "cc_node_list" may be attached as
   the payload of the NORM_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"
   consists of a list of NormNodeIds and their associated congestion
   control status.  This includes the current limiting receiver (CLR)
   node, any potential limiting receiver (PLR) nodes that have been
   identified, and some number of receivers for which congestion control
   status is being provided, most notably including the receivers'
   current RTT measurement.  The maximum length of the "cc_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
   can be inferred from the length of the NORM_CMD(CC) message.

この拡大が存在しているとき、「cc_ノード_リスト」はNORM_CMD(CC)メッセージのペイロードとして付けられるかもしれません。 また、このヘッダー拡大の存在は、セクション5.5.2で説明された手順によると、NORM受信機が応じるはずであるのを含意します。 「cc_ノード_リスト」はNormNodeIdsのリストと彼らの関連輻輳制御状態から成ります。 これは現在の制限受信機(CLR)ノードを含んでいます、輻輳制御状態が提供されている特定されたどんな潜在的制限受信機(PLR)ノード、および何らかの数の受信機、受信機の現在のRTT測定を最も著しく含んでいて。 「cc_ノード_リスト」の最大の長さは、少なくともCLRと他の1台の受信機に備えますが、よりタイムリーなフィードバックに、グループに構成可能であるかもしれません。 NORM_CMD(CC)メッセージの長さからリストの長さを推論できます。

   Each item in the "cc_node_list" is in the following format:

以下の形式には「cc_ノード_リスト」の各個条があります:

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          cc_node_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    cc_flags   |     cc_rtt    |            cc_rate            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | cc_ノード_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | cc_旗| cc_rtt| cc_は評価します。| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Congestion Control Node List Item Format

輻輳制御ノードリスト項目形式

   The "cc_node_id" is the NormNodeId of the receiver which the item
   represents.

「cc_ノード_イド」は項目が表す受信機のNormNodeIdです。

   The "cc_flags" field contains flags indicating the congestion control
   status of the indicated receiver.  The following flags are defined:

「cc_旗」分野は示された受信機の輻輳制御状態を示す旗を含んでいます。以下の旗は定義されます:

Adamson, et al.               Experimental                     [Page 36]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [36ページ]実験的なRFC3940標準プロトコル2004年11月

+------------------+-------+------------------------------------------+
|      Flag        | Value |                 Purpose                  |
+------------------+-------+------------------------------------------+
|NORM_FLAG_CC_CLR  | 0x01  | Receiver is the current limiting         |
|                  |       | receiver (CLR).                          |
+------------------+-------+------------------------------------------+
|NORM_FLAG_CC_PLR  | 0x02  | Receiver is a potential limiting         |
|                  |       | receiver (PLR).                          |
+------------------+-------+------------------------------------------+
|NORM_FLAG_CC_RTT  | 0x04  | Receiver has measured RTT with respect   |
|                  |       | to sender.                               |
+------------------+-------+------------------------------------------+
|NORM_FLAG_CC_START| 0x08  | Sender/receiver is in "slow start" phase |
|                  |       | of congestion control operation (i.e.,   |
|                  |       | The receiver has not yet detected any    |
|                  |       | 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   |
|                  |       | considered in congestion control         |
|                  |       | operation.                               |
+------------------+-------+------------------------------------------+

+------------------+-------+------------------------------------------+ | 旗| 値| 目的| +------------------+-------+------------------------------------------+ |_標準_旗の_CC CLR| 0×01| 受信機は現在の制限です。| | | | 受信機(CLR)。 | +------------------+-------+------------------------------------------+ |_標準_旗の_CC PLR| 0×02| 受信機は潜在的制限です。| | | | 受信機(PLR)。 | +------------------+-------+------------------------------------------+ |_標準_旗の_CC RTT| 0×04| 受信機は敬意を伴うRTTを測定しました。| | | | 送付者に。 | +------------------+-------+------------------------------------------+ |標準_旗の_CC_は始まります。| 0×08| 送付者/受信機が「遅れた出発」フェーズにあります。| | | | | | | | すなわち、受信機はまだいずれも検出していません| | | | パケット損失と「cc_レート」分野はそうです|| | | 受信機は実際です。混雑制御機能、(測定されて、|受信してください|、| | レート、) | +------------------+-------+------------------------------------------+ |標準_旗の_CC_はいなくなります。| 0×10| 受信機は差し迫って、いなくなります。| | | | セッションとそのフィードバックはそうであるべきではありません。| | | | 輻輳制御では、考えられます。| | | | 操作。 | +------------------+-------+------------------------------------------+

   The "cc_rtt" contains a quantized representation of the RTT as
   measured by the sender with respect to the indicated receiver.  This
   field is valid only if the NORM_FLAG_CC_RTT flag is set in the
   "cc_flags" field.  This one byte field is a quantized representation
   of the RTT using the algorithm described in the NORM Building Block
   document [4].  The "cc_rate" field contains a representation of the
   receiver's current calculated (during steady-state congestion control
   operation) or twice its measured (during the "slow start" phase)
   congestion control rate.  This field is encoded and decoded using the
   same technique as described for the NORM_CMD(CC) "send_rate" field.

示された受信機に関して送付者によって測定されるように「cc_rtt」はRTTの量子化された表現を含んでいます。NORM_FLAG_CC_RTT旗が「cc_旗」分野に設定される場合にだけ、この分野は有効です。 この1バイトの分野はNORMビルBlockドキュメント[4]で説明されたアルゴリズムを使用するRTTの量子化された表現です。 「cc_レート」分野は計算された(定常状態混雑制御機能の間)受信機の電流の表現か測定された(「遅れた出発」段階の間の)輻輳制御率の2倍を含んでいます。 この分野は、_NORMのために説明されて、CMD(CC)が「_レートを送る」という分野として同じテクニックを使用することでコード化されて、解読されます。

4.2.3.5.  NORM_CMD(REPAIR_ADV) Message

4.2.3.5. 標準_CMD(修理_ADV)メッセージ

   The NORM_CMD(REPAIR_ADV) message is used by the sender to "advertise"
   its aggregated repair state from NORM_NACK messages accumulated
   during a repair cycle and/or congestion control feedback received.
   This message is sent only when the sender has received NORM_NACK
   and/or NORM_ACK(CC) (when congestion control is enabled) messages via
   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
   multicasting it among the group [13].

NORM_CMD(REPAIR_ADV)メッセージは、フィードバックが受けた修理サイクル、そして/または、輻輳制御の間に蓄積されたNORM_ナックメッセージから集められた修理状態の「広告を出すこと」に送付者によって使用されます。 送付者がマルチキャストの代わりにユニキャスト送信でNORM_ナック、そして/または、NORM_ACK(CC)(輻輳制御が可能にされるとき)メッセージを受け取ったときだけ、このメッセージを送ります。 受信機がマルチキャスティングの代わりにそのフィードバックをunicastingしてさえいるとき、この情報が受信機セットに「反響」であることによってフィードバックの抑圧を達成できる、それ、グループ[13]で。

Adamson, et al.               Experimental                     [Page 37]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [37ページ]実験的なRFC3940標準プロトコル2004年11月

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=3|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  flavor = 5   |     flags     |            reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               header extensions (if applicable)               |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       repair_adv_payload                      |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =3をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 風味=5| 旗| 予約されます。| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ヘッダー拡大(適切であるなら)| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 修理_adv_ペイロード| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  NORM_CMD(REPAIR_ADV) Message Format

標準_CMD(修理_ADV)メッセージ・フォーマット

   The "instance_id", "grtt", "backoff", "gsize", and "flavor" fields
   serve the same purpose as in other NORM_CMD messages.  The value of
   the "hdr_len" field when no extensions are present is 4.

"backoff"、"gsize"、および「風味」分野は、他のNORM_CMDメッセージのように「例_イド、grtt」に同じ目的に役立ちます。 どんな拡大も存在していないとき、「hdr_len」分野の値は4です。

   The "flags" field provide information on the NORM_CMD(REPAIR_ADV)
   content.  There is currently one NORM_CMD(REPAIR_ADV) flag defined:

「旗」分野はNORM_CMD(REPAIR_ADV)内容の情報を提供します。 現在、CMD(REPAIR_ADV)旗が定義した1NORM_があります:

                     NORM_REPAIR_ADV_FLAG_LIMIT = 0x01

標準_修理_ADV_旗の_限界=0x01

   This flag is set by the sender when it is unable to fit its full
   current repair state into a single NormSegmentSize.  If this flag is
   set, receivers should limit their NACK response to generating NACK
   content only up through the maximum ordinal transmission position
   (objectId::fecPayloadId) included in the "repair_adv_content".

それが完全な現在の修理状態に独身のNormSegmentSizeに合うことができないとき、この旗は送付者によって設定されます。 この旗が設定されるなら、受信機は彼らのナックの応答を「修理_adv_内容」にトランスミッション位置(objectId: : fecPayloadId)を含んでいて、最大の序数だけを通してナック内容を発生させるのに制限するはずです。

   When congestion control operation is enabled, a header extension may
   be applied to the NORM_CMD(REPAIR_ADV) representing the most limiting
   (in terms of congestion control feedback suppression) congestion
   control response.  This allows the NORM_CMD(REPAIR_ADV) message to
   suppress receiver congestion control responses as well as NACK
   feedback messages.  The field is defined as a header extension so
   that alternative congestion control schemes may be used with NORM
   without revision to this document.  A NORM-CC Feedback Header
   Extension (EXT_CC) is defined to encapsulate congestion control
   feedback within NORM_NACK, NORM_ACK, and NORM_CMD(REPAIR_ADV)
   messages.  If another congestion control technique (e.g., Pragmatic
   General Multicast Congestion Control (PGMCC) [20]) is used within a

混雑制御機能が可能にされるとき、ヘッダー拡大はNORM_CMD(REPAIR_ADV)表す最も多くの制限(輻輳制御フィードバック抑圧による)混雑操舵応答に適用されるかもしれません。 これはナックフィードバックメッセージと同様に受信機混雑操舵応答を抑圧するNORM_CMD(REPAIR_ADV)メッセージを許容します。 分野は、NORMと共に改正なしで代替の輻輳制御計画をこのドキュメントに使用できるようにヘッダー拡大と定義されます。 NORM-CC Feedback Header Extension(EXT_CC)は、NORM_ナック、NORM_ACK、およびNORM_CMD(REPAIR_ADV)メッセージの中で輻輳制御フィードバックを要約するために定義されます。 別の輻輳制御のテクニックである、(例えば、Pragmatic Multicast Congestion Control司令官(PGMCC)[20])はaの中で使用されます。

Adamson, et al.               Experimental                     [Page 38]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [38ページ]実験的なRFC3940標準プロトコル2004年11月

   NORM implementation, an additional header extension MAY need to be
   defined to encapsulate any required feedback content.  The NORM-CC
   Feedback Header Extension format is:

NORM実現、拡張子がどんな必要なフィードバック内容も要約するために定義される必要があるかもしれない追加ヘッダー。 NORM-CC Feedback Header Extension形式は以下の通りです。

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     het = 3   |    hel = 3    |          cc_sequence          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    cc_flags   |     cc_rtt    |            cc_loss            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            cc_rate            |          cc_reserved          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 興奮の=3| hel=3| cc_系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | cc_旗| cc_rtt| cc_損失| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | cc_は評価します。| _が予約したcc| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           NORM-CC Feedback Header Extension (EXT_CC) Format

標準CCフィードバックヘッダー拡大(EXT_CC)形式

   The "cc_sequence" field contains the current greatest "cc_sequence"
   value receivers have  received in NORM_CMD(CC) messages from the
   sender.  This information assists the sender in congestion control
   operation by providing an indicator of how current ("fresh") the
   receiver's round-trip measurement reference time is and whether the
   receiver has been successfully receiving recent congestion control
   probes.  For example, if it is apparent the receiver has not been
   receiving recent congestion control probes (and thus possibly other
   messages from the sender), the sender may choose to take congestion
   avoidance measures.  For NORM_CMD(REPAIR_ADV) messages, the sender
   SHALL set the "cc_sequence" field value to the value set in the last
   NORM_CMD(CC) message sent.

「cc_系列」分野は現在の値の受信機がNORM_CMD(CC)メッセージで送付者から受けた中で最もすばらしい「cc_系列」を含んでいます。 この情報は、受信機の往復の測定参照時間がどれくらいよく見られるか、そして、(「新鮮な」)受信機が首尾よく最近の輻輳制御探測装置を受けるかどうかに関するインディケータを提供することによって、混雑制御機能に送付者を助けます。 例えば、受信機が最近の輻輳制御探測装置(そして、その結果、送付者からのことによると他のメッセージ)を受けていないのが、明らかであるなら、送付者は、輻輳回避対策を実施するのを選ぶかもしれません。 NORM_CMD(REPAIR_ADV)メッセージのために、送付者SHALLは最後のNORM_CMD(CC)メッセージにおける選択値群への値が送った「cc_系列」野原を設定します。

   The "cc_flags" field contains bits representing the receiver's state
   with respect to congestion control operation.  The possible values
   for the "cc_flags" field are those specified for the NORM_CMD(CC)
   message node list item flags.  These fields are used by receivers in
   controlling (suppressing as necessary) their congestion control
   feedback.  For NORM_CMD(REPAIR_ADV) messages, the NORM_FLAG_CC_RTT
   should be set only when all feedback messages received by the sender
   have the flag set.  Similarly, the NORM_FLAG_CC_CLR or
   NORM_FLAG_CC_PLR should be set only when no feedback has been
   received from non-CLR or non-PLR receivers.  And the
   NORM_FLAG_CC_LEAVE should be set only when all feedback messages the
   sender has received have this flag set.  These heuristics for setting
   the flags in NORM_CMD(REPAIR_ADV) ensure the most effective
   suppression of receivers providing unicast feedback messages.

「cc_旗」分野は混雑制御機能に関して受信機の状態を表すビットを含んでいます。 「cc_旗」分野への可能な値はNORM_CMD(CC)メッセージノードリスト項目旗に指定されたものです。 これらの分野は受信機によってそれらの輻輳制御フィードバックを制御する際に(必要に応じて、抑圧します)使用されます。 NORM_CMD(REPAIR_ADV)メッセージにおいて、送付者によって受け取られたすべてのフィードバックメッセージで旗を設定する場合にだけ、NORM_FLAG_CC_RTTは用意ができるべきです。 非CLRの、または、非PLRの受信機からフィードバックを全く受け取っていないときだけ、同様に、NORM_FLAG_が_CLRをCCするべきですか、またはNORM_FLAG_CC_PLRは用意ができるべきです。 そして、送付者が受け取ったすべてのフィードバックメッセージでこの旗を設定する場合にだけ、NORM_FLAG_CC_LEAVEは用意ができるべきです。 NORM_CMD(REPAIR_ADV)に旗をはめ込むためのこれらの発見的教授法はユニキャストフィードバックメッセージを提供する受信機の最も効果的な抑圧を確実にします。

   The "cc_rtt" field SHALL be set to a default maximum value and the
   NORM_FLAG_CC_RTT flag SHALL be cleared when no receiver has yet
   received RTT measurement information.  When a receiver has received
   RTT measurement information, it shall set the "cc_rtt" value
   accordingly and set the NORM_FLAG_CC_RTT flag in the "cc_flags"
   field.

「cc_rtt」がデフォルトへのセットが最大値であったならSHALLをさばいて、NORM_FLAG_CC_RTT旗のSHALLはどんな受信機もクリアされていなかったとき、クリアされましたが、RTT測定情報を受け取りました。 受信機がRTT測定情報を受け取ったとき、それは、それに従って、「cc_rtt」値を設定して、「cc_旗」分野にNORM_FLAG_CC_RTT旗を設定するものとします。

Adamson, et al.               Experimental                     [Page 39]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [39ページ]実験的なRFC3940標準プロトコル2004年11月

   For NORM_CMD(REPAIR_ADV) messages, the sender SHALL set the "cc_rtt"
   field value to the largest non-CLR/non-PLR RTT it has measured from
   receivers for the current feedback round.

NORM_CMD(REPAIR_ADV)メッセージのために、送付者SHALLはそれが電流帰還のために受信機からぐるりと測定した非最も大きい非CLR/PLR RTTに「cc_rtt」分野価値を設定します。

   The "cc_loss" field represents the receiver's current packet loss
   fraction estimate for the indicated source.  The loss fraction is a
   value from 0.0 to 1.0 corresponding to a range of zero to 100 percent
   packet loss.  The 16-bit "cc_loss" value is calculated by the
   following formula:

「cc_損失」分野は受信機の現在のパケット損失断片見積りを示されたソースに表します。 0.0〜1.0まで損失断片は100パーセントのパケット損失へのさまざまなゼロに対応する値です。 16ビットの「cc_損失」値は以下の公式によって計算されます:

                "cc_loss" = decimal_loss_fraction * 65535.0

「cc_損失」は_断片*65535.0に小数_損失と等しいです。

   For NORM_CMD(REPAIR_ADV) messages, the sender SHALL set the "cc_loss"
   field value to the largest non-CLR/non-PLR loss estimate it has
   received from receivers for the current feedback round.

NORM_CMD(REPAIR_ADV)メッセージのために、送付者SHALLはそれが電流帰還のために受信機からぐるりと受けた非最も大きい非CLR/PLR損失見積りに「cc_損失」分野価値を設定します。

   The "cc_rate" field represents the 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 and the NORM_FLAG_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
   information (even if default) for the "cc_rate" field.  For
   NORM_CMD(REPAIR_ADV) messages, the sender SHALL set the "cc_loss"
   field value to the lowest non-CLR/non-PLR "cc_rate" report it has
   received from receivers for the current feedback round.

「cc_レート」分野は受信機電流地方の輻輳制御率を表します。 受信機が損失を全く検出していないときの「遅れた出発」の間、この値はそれが対応する送付者から測定した実際のレートの2倍に設定されます、そして、NORM_FLAG_CC_STARTは「cc_旗の分野」で用意ができています。 さもなければ、受信機がその損失測定とRTT測定情報に基づく輻輳制御率について計算する、(デフォルト) 「cc_レート」分野に。 NORM_CMD(REPAIR_ADV)メッセージのために、送付者SHALLはそれが電流帰還のために受信機からぐるりと受け取った非最も低い非CLR/PLR「cc_レート」レポートに「cc_損失」分野価値を設定します。

   The "cc_reserved" field is reserved for future NORM protocol use.
   Currently, senders SHALL set this field to ZERO, and receivers SHALL
   ignore the content of this field.

「_が予約したcc」分野は今後のNORMプロトコル使用のために予約されます。 現在、送付者SHALLはこの分野をZEROに設定します、そして、受信機SHALLはこの分野の内容を無視します。

   The "repair_adv_payload" is in exactly the same form as the
   "nack_content" of 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
   set.

「修理_adv_ペイロード」は、まさにNORM_ナックメッセージの「nack_内容」と同じフォームにあって、抑圧目的のための受信機で同じ方法で処理できます、_NORM_REPAIR_ADVであるときに、FLAG_LIMITが用意ができているという条件を除いて。

4.2.3.6.  NORM_CMD(ACK_REQ) Message

4.2.3.6. 標準_CMD(ACK_REQ)メッセージ

   The NORM_CMD(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 application.  A
   range of acknowledgment request types is provided for use at the
   application's discretion.  Provision for application-defined,
   positively-acknowledged commands allows the application to
   automatically take advantage of transmission and round-trip timing
   information available to the NORM protocol.  The details of the NORM

NORM_CMD(ACK_REQ)メッセージは、受信機に関する明細表から承認を要求するのに送付者によって使用されます。 このメッセージは高信頼のマルチキャストアプリケーションでOPTIONALである軽量の肯定応答メカニズムを使用に提供する際に使用されます。 アプリケーションの裁量でさまざまな確認要求タイプを使用に提供します。 アプリケーションで定義されて、明確に承認されたコマンドへの支給で、アプリケーションは自動的にトランスミッションとNORMプロトコルに利用可能な往復のタイミング情報を利用できます。 NORMの細部

Adamson, et al.               Experimental                     [Page 40]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [40ページ]実験的なRFC3940標準プロトコル2004年11月

   positive acknowledgment process including transmission of the
   NORM_CMD(ACK_REQ) messages and the receiver response (NORM_ACK) are
   described in Section 5.5.3.  The format of the NORM_CMD(ACK_REQ)
   message is:

NORM_CMD(ACK_REQ)メッセージと受信機応答(NORM_ACK)の送信を含む肯定応答の過程がセクション5.5.3で説明されます。 NORM_CMD(ACK_REQ)メッセージの形式は以下の通りです。

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=3|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  flavor = 6   |    reserved   |    ack_type   |    ack_id     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       acking_node_list                        |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =3をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| grtt|backoff| gsize| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 風味=6| 予約されます。| ack_タイプ| ack_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | acking_ノード_リスト| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    NORM_CMD(ACK_REQ) Message Format

標準_CMD(ACK_REQ)メッセージ・フォーマット

   The NORM common message header and standard NORM_CMD fields serve
   their usual purposes.  The value of the "hdr_len" field for
   NORM_CMD(ACK_REQ) messages with no header extension present is 4.

NORMの一般的なメッセージヘッダーと標準のNORM_CMD分野はそれらの普通の目的に勤めます。 存在しているヘッダー拡大のないNORM_CMD(ACK_REQ)メッセージのための「hdr_len」分野の値は4です。

   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 messages described later:

「ack_タイプ」分野は、要求されている承認のタイプを示して、その結果、受信機がどうこの要求を扱うように、規則を含意するか。 以下の「ack_タイプ」値は、定義されて、また、後で説明されたNORM_ACKメッセージで使用されます:

+---------------------+--------+---------------------------------+
|      ACK Type       | Value  |            Purpose              |
+---------------------+--------+---------------------------------+
|NORM_ACK_CC          |      1 | Used to identify NORM_ACK       |
|                     |        | messages sent in response to    |
|                     |        | NORM_CMD(CC) messages.          |
+---------------------+--------+---------------------------------+
|NORM_ACK_FLUSH       |      2 | Used to identify NORM_ACK       |
|                     |        | messages sent in response to    |
|                     |        | NORM_CMD(FLUSH) messages.       |
+---------------------+--------+---------------------------------+
|NORM_ACK_RESERVED    |   3-15 | Reserved for possible future    |
|                     |        | NORM protocol use.              |
+---------------------+--------+---------------------------------+
|NORM_ACK_APPLICATION | 16-255 | Used at application's           |
|                     |        | discretion.                     |
+---------------------+--------+---------------------------------+

+---------------------+--------+---------------------------------+ | ACKはタイプします。| 値| 目的| +---------------------+--------+---------------------------------+ |標準_ACK_CC| 1 | NORM_ACKを特定するために、使用されます。| | | | に対応してメッセージが発信した。| | | | NORM_CMD(CC)メッセージ。 | +---------------------+--------+---------------------------------+ |標準_ACK_水洗| 2 | NORM_ACKを特定するために、使用されます。| | | | に対応してメッセージが発信した。| | | | NORM_CMD(FLUSH)メッセージ。 | +---------------------+--------+---------------------------------+ |ACK_が予約した標準_| 3-15 | 可能な未来に予約されます。| | | | NORMは使用について議定書の中で述べます。 | +---------------------+--------+---------------------------------+ |標準_ACK_アプリケーション| 16-255 | アプリケーションのものでは、使用されます。| | | | 思慮深さ。 | +---------------------+--------+---------------------------------+

Adamson, et al.               Experimental                     [Page 41]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [41ページ]実験的なRFC3940標準プロトコル2004年11月

   The NORM_ACK_CC value is provided for use only in NORM_ACKs generated
   in response to the NORM_CMD(CC) messages used in congestion control
   operation.  Similarly, the NORM_ACK_FLUSH is provided for use only in
   NORM_ACKs generated in response to applicable NORM_CMD(FLUSH)
   messages.  NORM_CMD(ACK_REQ) messages with "ack_type" of NORM_ACK_CC
   or NORM_ACK_FLUSH SHALL NOT be generated by the sender.

混雑制御機能に使用されるNORM_CMD(CC)メッセージに対応して発生するNORM_ACKsだけにおける使用にNORM_ACK_CC価値を提供します。 同様に、適切なNORM_CMD(FLUSH)メッセージに対応して発生するNORM_ACKsだけにおける使用にNORM_ACK_FLUSHを提供します。 NORM_ACK_CCかNORM_ACK_FLUSH SHALL NOTの「ack_タイプ」が送付者によって発生しているNORM_CMD(ACK_REQ)メッセージ。

   The NORM_ACK_RESERVED range of "ack_type" values is provided for
   possible future NORM protocol use.

「ack_タイプ」値のNORM_ACK_RESERVED範囲を可能な今後のNORMプロトコル使用に提供します。

   The NORM_ACK_APPLICATION range of "ack_type" values is provided so
   that NORM applications may implement application-defined,
   positively-acknowledged commands that are able to leverage internal
   transmission and round-trip timing information available to the NORM
   protocol implementation.

The NORM_ACK_APPLICATION range of "ack_type" values is provided so that NORM applications may implement application-defined, positively-acknowledged commands that are able to leverage internal transmission and round-trip timing information available to the NORM protocol implementation.

   The "ack_id" provides a sequenced identifier for the given
   NORM_CMD(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.

The "ack_id" provides a sequenced identifier for the given NORM_CMD(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.

   The "reserved" field is reserved for possible future protocol use and
   SHALL be set to ZERO by senders and ignored by receivers.

The "reserved" field is reserved for possible future protocol use and SHALL be set to ZERO by senders and ignored by receivers.

   The "acking_node_list" field contains the NormNodeIds of the current
   NORM receivers that are desired to provide positive acknowledge
   (NORM_ACK) to this request.  The packet payload length implies the
   length of the "acking_node_list" and its length is limited to the
   sender NormSegmentSize.  The individual NormNodeId items are listed
   in network (Big Endian) byte order.  If a receiver's NormNodeId is
   included in the "acking_node_list", it SHALL schedule transmission of
   a NORM_ACK message as described in Section 5.5.3.

The "acking_node_list" field contains the NormNodeIds of the current NORM receivers that are desired to provide positive acknowledge (NORM_ACK) to this request. The packet payload length implies the length of the "acking_node_list" and its length is limited to the sender NormSegmentSize. The individual NormNodeId items are listed in network (Big Endian) byte order. If a receiver's NormNodeId is included in the "acking_node_list", it SHALL schedule transmission of a NORM_ACK message as described in Section 5.5.3.

4.2.3.7.  NORM_CMD(APPLICATION) Message

4.2.3.7. NORM_CMD(APPLICATION) Message

   This command allows the NORM application to robustly transmit
   application-defined commands.  The command message preempts any
   ongoing data transmission and is repeated up to NORM_ROBUST_FACTOR
   times at a rate of once per 2*GRTT.  This rate of repetition allows
   the application to observe any response (if that is the application's
   purpose for the command) before it is repeated.  Possible responses
   may include initiation of data transmission, other
   NORM_CMD(APPLICATION) messages, or even application-defined,
   positively-acknowledge commands from other NormSession participants.
   The transmission of these commands will preempt data transmission
   when they are scheduled and may be multiplexed with ongoing data
   transmission.  This type of robustly transmitted command allows NORM
   applications to define a complete set of session control mechanisms

This command allows the NORM application to robustly transmit application-defined commands. The command message preempts any ongoing data transmission and is repeated up to NORM_ROBUST_FACTOR times at a rate of once per 2*GRTT. This rate of repetition allows the application to observe any response (if that is the application's purpose for the command) before it is repeated. Possible responses may include initiation of data transmission, other NORM_CMD(APPLICATION) messages, or even application-defined, positively-acknowledge commands from other NormSession participants. The transmission of these commands will preempt data transmission when they are scheduled and may be multiplexed with ongoing data transmission. This type of robustly transmitted command allows NORM applications to define a complete set of session control mechanisms

Adamson, et al.               Experimental                     [Page 42]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 42] RFC 3940 NORM Protocol November 2004

   with less state than the transfer of FEC encoded reliable content
   requires while taking advantage of NORM transmission and round-trip
   timing information.

with less state than the transfer of FEC encoded reliable content requires while taking advantage of NORM transmission and round-trip timing information.

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=3|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          instance_id          |     grtt      |backoff| gsize |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  flavor = 7   |                    reserved                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Application-Defined Content                 |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |version| type=3| hdr_len | sequence | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | instance_id | grtt |backoff| gsize | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | flavor = 7 | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Application-Defined Content | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  NORM_CMD(APPLICATION) Message Format

NORM_CMD(APPLICATION) Message Format

   The NORM common message header and NORM_CMD fields are interpreted as
   previously described.  The value of the NORM_CMD(APPLICATION)
   "hdr_len" field when no header extensions are present is 4.

The NORM common message header and NORM_CMD fields are interpreted as previously described. The value of the NORM_CMD(APPLICATION) "hdr_len" field when no header extensions are present is 4.

   The "Application-Defined Content" area contains information in a
   format at the discretion of the application.  The size of this
   payload SHALL be limited to a maximum of the sender's NormSegmentSize
   setting.

The "Application-Defined Content" area contains information in a format at the discretion of the application. The size of this payload SHALL be limited to a maximum of the sender's NormSegmentSize setting.

4.3.  Receiver Messages

4.3. Receiver Messages

   The NORM message types generated by participating receivers consist
   of NORM_NACK and NORM_ACK message types.  NORM_NACK messages are sent
   to request repair of missing data content from sender transmission
   and NORM_ACK messages are generated in response to certain sender
   commands including NORM_CMD(CC) and NORM_CMD(ACK_REQ).

The NORM message types generated by participating receivers consist of NORM_NACK and NORM_ACK message types. NORM_NACK messages are sent to request repair of missing data content from sender transmission and NORM_ACK messages are generated in response to certain sender commands including NORM_CMD(CC) and NORM_CMD(ACK_REQ).

4.3.1.  NORM_NACK Message

4.3.1. NORM_NACK Message

   The principal purpose of NORM_NACK messages is for receivers to
   request repair of sender content via selective, negative
   acknowledgment upon detection of incomplete data.  NORM_NACK messages
   will be transmitted according to the rules of NORM_NACK generation
   and suppression described in Section 5.3.  NORM_NACK messages also
   contain additional fields to provide feedback to the sender(s) for
   purposes of round-trip timing collection and congestion control.

The principal purpose of NORM_NACK messages is for receivers to request repair of sender content via selective, negative acknowledgment upon detection of incomplete data. NORM_NACK messages will be transmitted according to the rules of NORM_NACK generation and suppression described in Section 5.3. NORM_NACK messages also contain additional fields to provide feedback to the sender(s) for purposes of round-trip timing collection and congestion control.

Adamson, et al.               Experimental                     [Page 43]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 43] RFC 3940 NORM Protocol November 2004

   The payload of NORM_NACK messages contains one or more repair
   requests for different objects or portions of those objects.  The
   NORM_NACK message format is as follows:

The payload of NORM_NACK messages contains one or more repair requests for different objects or portions of those objects. The NORM_NACK message format is as follows:

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=4|    hdr_len    |            sequence           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           server_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           instance_id         |            reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       grtt_response_sec                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       grtt_response_usec                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               header extensions (if applicable)               |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          nack_payload                         |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |version| type=4| hdr_len | sequence | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server_id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | instance_id | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | grtt_response_sec | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | grtt_response_usec | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | header extensions (if applicable) | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | nack_payload | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        NORM_NACK Message Format

NORM_NACK Message Format

   The NORM common message header fields serve their usual purposes.
   The value of the "hdr_len" field for NORM_NACK messages without
   header extensions present is 6.

The NORM common message header fields serve their usual purposes. The value of the "hdr_len" field for NORM_NACK messages without header extensions present is 6.

   The "server_id" field identifies the NORM sender to which the
   NORM_NACK message is destined.

The "server_id" field identifies the NORM sender to which the NORM_NACK message is destined.

   The "instance_id" field contains the current session identifier given
   by the sender identified by the "server_id" field in its sender
   messages.  The sender SHOULD ignore feedback messages which contain
   an invalid "instance_id" value.

The "instance_id" field contains the current session identifier given by the sender identified by the "server_id" field in its sender messages. The sender SHOULD ignore feedback messages which contain an invalid "instance_id" value.

   The "grtt_response" fields contain an adjusted version of the
   timestamp from the most recently received NORM_CMD(CC) message for
   the indicated NORM sender.  The format of the "grtt_response" is the
   same as the "send_time" field of the NORM_CMD(CC).  The
   "grtt_response" value is _relative_ to the "send_time" the source
   provided with a corresponding 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)

The "grtt_response" fields contain an adjusted version of the timestamp from the most recently received NORM_CMD(CC) message for the indicated NORM sender. The format of the "grtt_response" is the same as the "send_time" field of the NORM_CMD(CC). The "grtt_response" value is _relative_ to the "send_time" the source provided with a corresponding 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)

Adamson, et al.               Experimental                     [Page 44]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 44] RFC 3940 NORM Protocol November 2004

   to when the NORM_NACK is transmitted to calculate the value in the
   "grtt_response" field.  This is the
   "receive_to_response_differential" value used in the following
   formula:

to when the NORM_NACK is transmitted to calculate the value in the "grtt_response" field. This is the "receive_to_response_differential" value used in the following formula:

   "grtt_response" = NORM_CMD(CC) "send_time" +
   receive_to_response_differential

"grtt_response" = NORM_CMD(CC) "send_time" + 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(CC) message from the
   indicated sender and that the sender should ignore the
   "grtt_response" in this message.

The receiver SHALL set the "grtt_response" to a ZERO value, to indicate that it has not yet received a NORM_CMD(CC) message from the indicated sender and that the sender should ignore the "grtt_response" in this message.

   For NORM-CC operation, the NORM-CC Feedback Header Extension, as
   described in the NORM_CMD(REPAIR_ADV} message description, is added
   to NORM_NACK messages to provide feedback on the receivers current
   state with respect to congestion control operation.  Note that
   alternative header extensions for congestion control feedback may be
   defined for alternative congestion control schemes for NORM use in
   the future.

For NORM-CC operation, the NORM-CC Feedback Header Extension, as described in the NORM_CMD(REPAIR_ADV} message description, is added to NORM_NACK messages to provide feedback on the receivers current state with respect to congestion control operation. Note that alternative header extensions for congestion control feedback may be defined for alternative congestion control schemes for NORM use in the future.

   The "reserved" field is for potential future NORM use and SHALL be
   set to ZERO for this version of the protocol.

The "reserved" field is for potential future NORM use and SHALL be set to ZERO for this version of the protocol.

   The "nack_content" of the NORM_NACK message specifies the repair
   needs of the 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_INFO segments it requires from the
   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 Repair Request
   consists of a list of items, ranges, and/or FEC coding block erasure
   counts for needed NORM_DATA and/or NORM_INFO content.  Multiple
   repair requests may be concatenated within the "nack_payload" field
   of a NORM_NACK message.  Note that a single NORM Repair Request can
   possibly include multiple "items", "ranges", or "erasure_counts".  In
   turn, the "nack_payload" field may contain multiple repair requests.
   A single NORM Repair Request has the following format:

The "nack_content" of the NORM_NACK message specifies the repair needs of the 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_INFO segments it requires from the 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 Repair Request consists of a list of items, ranges, and/or FEC coding block erasure counts for needed NORM_DATA and/or NORM_INFO content. Multiple repair requests may be concatenated within the "nack_payload" field of a NORM_NACK message. Note that a single NORM Repair Request can possibly include multiple "items", "ranges", or "erasure_counts". In turn, the "nack_payload" field may contain multiple repair requests. A single NORM Repair Request has the following format:

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      form     |     flags     |             length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      repair_request_items                     |
   |                             ...                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | form | flags | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | repair_request_items | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Adamson, et al.               Experimental                     [Page 45]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 45] RFC 3940 NORM Protocol November 2004

                       NORM Repair Request Format

NORM Repair Request Format

   The "form" field indicates the type of repair request items given in
   the "repair_request_items" list.  Possible values for the "form"
   field include:

The "form" field indicates the type of repair request items given in the "repair_request_items" list. Possible values for the "form" field include:

                Form          Value
         NORM_NACK_ITEMS        1
         NORM_NACK_RANGES       2
         NORM_NACK_ERASURES     3

Form Value NORM_NACK_ITEMS 1 NORM_NACK_RANGES 2 NORM_NACK_ERASURES 3

   A "form" value of NORM_NACK_ITEMS indicates each repair request item
   in the "repair_request_items" list is to be treated as an individual
   request.  A value of NORM_NACK_RANGES indicates that the
   "repair_request_items" list consists of pairs of repair request items
   that correspond to inclusive ranges of repair needs.  And the
   NORM_NACK_ERASURES "form" indicates that the repair request items are
   to be treated individually and that the "encoding_symbol_id" portion
   of the "fec_payload_id" field of the repair request item (see below)
   is to be interpreted as an "erasure count" for the FEC coding block
   identified by the repair request item's "source_block_number".

A "form" value of NORM_NACK_ITEMS indicates each repair request item in the "repair_request_items" list is to be treated as an individual request. A value of NORM_NACK_RANGES indicates that the "repair_request_items" list consists of pairs of repair request items that correspond to inclusive ranges of repair needs. And the NORM_NACK_ERASURES "form" indicates that the repair request items are to be treated individually and that the "encoding_symbol_id" portion of the "fec_payload_id" field of the repair request item (see below) is to be interpreted as an "erasure count" for the FEC coding block identified by the repair request item's "source_block_number".

   The "flags" field is currently used to indicate the level of data
   content for which the repair request items apply (i.e., an individual
   segment, entire FEC coding block, or entire transport object).
   Possible flag values include:

The "flags" field is currently used to indicate the level of data content for which the repair request items apply (i.e., an individual segment, entire FEC coding block, or entire transport object). Possible flag values include:

+------------------+-------+-----------------------------------------+
|      Flag        | Value |                 Purpose                 |
+------------------+-------+-----------------------------------------+
|NORM_NACK_SEGMENT | 0x01  | Indicates the listed segment(s) or range|
|                  |       | of segments are required as repair.     |
+------------------+-------+-----------------------------------------+
|NORM_NACK_BLOCK   | 0x02  | Indicates the listed block(s) or range  |
|                  |       | of blocks in entirety are required as   |
|                  |       | repair.                                 |
+------------------+-------+-----------------------------------------+
|NORM_NACK_INFO    | 0x04  | Indicates that NORM_INFO is required as |
|                  |       | repair for the listed object(s).        |
+------------------+-------+-----------------------------------------+
|NORM_NACK_OBJECT  | 0x08  | Indicates the listed object(s) or range |
|                  |       | of objects in entirety are required as  |
|                  |       | repair.                                 |
+------------------+-------+-----------------------------------------+

+------------------+-------+-----------------------------------------+ | Flag | Value | Purpose | +------------------+-------+-----------------------------------------+ |NORM_NACK_SEGMENT | 0x01 | Indicates the listed segment(s) or range| | | | of segments are required as repair. | +------------------+-------+-----------------------------------------+ |NORM_NACK_BLOCK | 0x02 | Indicates the listed block(s) or range | | | | of blocks in entirety are required as | | | | repair. | +------------------+-------+-----------------------------------------+ |NORM_NACK_INFO | 0x04 | Indicates that NORM_INFO is required as | | | | repair for the listed object(s). | +------------------+-------+-----------------------------------------+ |NORM_NACK_OBJECT | 0x08 | Indicates the listed object(s) or range | | | | of objects in entirety are required as | | | | repair. | +------------------+-------+-----------------------------------------+

   When the NORM_NACK_SEGMENT flag is set, the "object_transport_id" and
   "fec_payload_id" fields are used to determine which sets or ranges of
   individual NORM_DATA segments are needed to repair content at the

When the NORM_NACK_SEGMENT flag is set, the "object_transport_id" and "fec_payload_id" fields are used to determine which sets or ranges of individual NORM_DATA segments are needed to repair content at the

Adamson, et al.               Experimental                     [Page 46]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 46] RFC 3940 NORM Protocol November 2004

   receiver.  When 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_NACK_INFO flag is set, this indicates
   the receiver is missing the NORM_INFO segment for the indicated
   "object_transport_id".  Note the NORM_NACK_INFO may be set in
   combination with the NORM_NACK_BLOCK or NORM_NACK_SEGMENT flags, or
   may be set alone.  When the NORM_NACK_OBJECT flag is set, this
   indicates the receiver is missing the entire NormTransportObject
   referenced by the "object_transport_id".  This also implicitly
   requests any available NORM_INFO for the NormObject, if applicable.
   The "fec_payload_id" field is ignored when the flag NORM_NACK_OBJECT
   is set.

receiver. When 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_NACK_INFO flag is set, this indicates the receiver is missing the NORM_INFO segment for the indicated "object_transport_id". Note the NORM_NACK_INFO may be set in combination with the NORM_NACK_BLOCK or NORM_NACK_SEGMENT flags, or may be set alone. When the NORM_NACK_OBJECT flag is set, this indicates the receiver is missing the entire NormTransportObject referenced by the "object_transport_id". This also implicitly requests any available NORM_INFO for the NormObject, if applicable. The "fec_payload_id" field is ignored when the flag NORM_NACK_OBJECT is set.

   The "length" field value is the length in bytes of the
   "repair_request_items" field.

The "length" field value is the length in bytes of the "repair_request_items" field.

   The "repair_request_items" field consists of a list of individual or
   range pairs of transport data unit identifiers in the following
   format.

The "repair_request_items" field consists of a list of individual or range pairs of transport data unit identifiers in the following format.

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     fec_id    |   reserved    |      object_transport_id      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        fec_payload_id                         |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id | reserved | object_transport_id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_payload_id | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    NORM Repair Request Item Format

NORM Repair Request Item Format

   The "fec_id" indicates the FEC type and can be used to determine the
   format of the "fec_payload_id" field.  The "reserved" field is kept
   for possible future use and SHALL be set to a ZERO value and ignored
   by NORM nodes processing NACK content.

The "fec_id" indicates the FEC type and can be used to determine the format of the "fec_payload_id" field. The "reserved" field is kept for possible future use and SHALL be set to a ZERO value and ignored by NORM nodes processing NACK content.

   The "object_transport_id" corresponds to the NormObject for which
   repair is being requested and the "fec_payload_id" identifies the
   specific FEC coding block and/or segment being requested.  When the
   NORM_NACK_OBJECT flag is set, the value of the "fec_payload_id" field
   is ignored.  When the NORM_NACK_BLOCK flag is set, only the FEC code
   block identifier portion of the "fec_payload_id" is to be
   interpreted.

The "object_transport_id" corresponds to the NormObject for which repair is being requested and the "fec_payload_id" identifies the specific FEC coding block and/or segment being requested. When the NORM_NACK_OBJECT flag is set, the value of the "fec_payload_id" field is ignored. When the NORM_NACK_BLOCK flag is set, only the FEC code block identifier portion of the "fec_payload_id" is to be interpreted.

   The format of the "fec_payload_id" field depends upon the "fec_id"
   field value.

The format of the "fec_payload_id" field depends upon the "fec_id" field value.

Adamson, et al.               Experimental                     [Page 47]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 47] RFC 3940 NORM Protocol November 2004

   When the receiver's repair needs dictate that different forms (mixed
   ranges and/or individual items) or types (mixed specific segments
   and/or blocks or objects in entirety) are required to complete
   reliable transmission, multiple NORM Repair Requests with different
   "form" and or "flags" values can be concatenated within a single
   NORM_NACK message.  Additionally, NORM receivers SHALL construct
   NORM_NACK messages with their repair requests in ordinal order with
   respect to "object_transport_id" and "fec_payload_id" values.  The
   "nack_payload" size SHALL NOT exceed the NormSegmentSize for the
   sender to which the NORM_NACK is destined.

When the receiver's repair needs dictate that different forms (mixed ranges and/or individual items) or types (mixed specific segments and/or blocks or objects in entirety) are required to complete reliable transmission, multiple NORM Repair Requests with different "form" and or "flags" values can be concatenated within a single NORM_NACK message. Additionally, NORM receivers SHALL construct NORM_NACK messages with their repair requests in ordinal order with respect to "object_transport_id" and "fec_payload_id" values. The "nack_payload" size SHALL NOT exceed the NormSegmentSize for the sender to which the NORM_NACK is destined.

   NORM_NACK Content Examples:

NORM_NACK Content Examples:

   In these examples, a small block, systematic FEC code ("fec_id" =
   129) is assumed with a user data block length of 32 segments.  In
   Example 1, a list of individual NORM_NACK_ITEMS repair requests is
   given.  In Example 2, a list of NORM_NACK_RANGES requests _and_ a
   single NORM_NACK_ITEMS request are concatenated to illustrate the
   possible content of a NORM_NACK message.  Note that FEC coding block
   erasure counts could also be provided in each case.  However, the
   erasure counts are not really necessary since the sender can easily
   determine the erasure count while processing the NACK content.
   However, the erasure count option may be useful for operation with
   other FEC codes or for intermediate system purposes.

In these examples, a small block, systematic FEC code ("fec_id" = 129) is assumed with a user data block length of 32 segments. In Example 1, a list of individual NORM_NACK_ITEMS repair requests is given. In Example 2, a list of NORM_NACK_RANGES requests _and_ a single NORM_NACK_ITEMS request are concatenated to illustrate the possible content of a NORM_NACK message. Note that FEC coding block erasure counts could also be provided in each case. However, the erasure counts are not really necessary since the sender can easily determine the erasure count while processing the NACK content. However, the erasure count option may be useful for operation with other FEC codes or for intermediate system purposes.

Adamson, et al.               Experimental                     [Page 48]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 48] RFC 3940 NORM Protocol November 2004

   Example 1:  NORM_NACK "nack_payload" for: Object 12, Coding Block 3,
   Segments 2,5,8

Example 1: NORM_NACK "nack_payload" for: Object 12, Coding Block 3, Segments 2,5,8

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   form = 1    | flags = 0x01  |       length  = 36            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  fec_id = 129 |   reserved    |    object_transport_id = 12   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    source_block_number = 3                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    source_block_length = 32   |    encoding_symbol_id = 2     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  fec_id = 129 |   reserved    |    object_transport_id = 12   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    source_block_number = 3                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    source_block_length = 32   |    encoding_symbol_id = 5     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  fec_id = 129 |   reserved    |    object_transport_id = 12   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    source_block_number = 3                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    source_block_length = 32   |    encoding_symbol_id = 8     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | form = 1 | flags = 0x01 | length = 36 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id = 129 | reserved | object_transport_id = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_number = 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_length = 32 | encoding_symbol_id = 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id = 129 | reserved | object_transport_id = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_number = 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_length = 32 | encoding_symbol_id = 5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id = 129 | reserved | object_transport_id = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_number = 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_length = 32 | encoding_symbol_id = 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Adamson, et al.               Experimental                     [Page 49]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 49] RFC 3940 NORM Protocol November 2004

   Example 2:  NORM_NACK "nack_payload" for: Object 18 Coding Block 6,
   Segments 5, 6, 7, 8, 9, 10; and Object 19 NORM_INFO and Coding Block
   1, segment 3

Example 2: NORM_NACK "nack_payload" for: Object 18 Coding Block 6, Segments 5, 6, 7, 8, 9, 10; and Object 19 NORM_INFO and Coding Block 1, segment 3

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   form = 2    | flags = 0x01  |       length  = 24            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  fec_id = 129 |   reserved    |    object_transport_id = 18   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    source_block_number = 6                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    source_block_length = 32   |    encoding_symbol_id = 5     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  fec_id = 129 |   reserved    |    object_transport_id = 18   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    source_block_number = 6                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    source_block_length = 32   |    encoding_symbol_id = 10    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   form = 1    | flags = 0x05  |       length  = 12            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  fec_id = 129 |   reserved    |    object_transport_id = 19   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    source_block_number = 1                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    source_block_length = 32   |    encoding_symbol_id = 3     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | form = 2 | flags = 0x01 | length = 24 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id = 129 | reserved | object_transport_id = 18 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_number = 6 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_length = 32 | encoding_symbol_id = 5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id = 129 | reserved | object_transport_id = 18 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_number = 6 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_length = 32 | encoding_symbol_id = 10 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | form = 1 | flags = 0x05 | length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id = 129 | reserved | object_transport_id = 19 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_number = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source_block_length = 32 | encoding_symbol_id = 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

4.3.2.  NORM_ACK Message

4.3.2. NORM_ACK Message

   The NORM_ACK message is intended to be used primarily as part of NORM
   congestion control operation and round-trip timing measurement.  As
   mentioned in the NORM_CMD(ACK_REQ) message description, the
   acknowledgment type NORM_ACK_CC is provided for this purpose.  The
   generation of NORM_ACK(CC) messages for round-trip timing estimation
   and congestion-control operation is described in Sections 5.5.1 and
   5.5.2, respectively.  However, some multicast applications may
   benefit from some limited form of positive acknowledgment for certain
   functions.  A simple, scalable positive acknowledgment scheme is
   defined in Section 5.5.3 that can be leveraged by protocol
   implementations when appropriate.  The NORM_CMD(FLUSH) may be used
   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_ACK_FLUSH is
   provided for this purpose and the format of the "nack_payload" for
   this acknowledgment type is given below.  Beyond that, a range of

The NORM_ACK message is intended to be used primarily as part of NORM congestion control operation and round-trip timing measurement. As mentioned in the NORM_CMD(ACK_REQ) message description, the acknowledgment type NORM_ACK_CC is provided for this purpose. The generation of NORM_ACK(CC) messages for round-trip timing estimation and congestion-control operation is described in Sections 5.5.1 and 5.5.2, respectively. However, some multicast applications may benefit from some limited form of positive acknowledgment for certain functions. A simple, scalable positive acknowledgment scheme is defined in Section 5.5.3 that can be leveraged by protocol implementations when appropriate. The NORM_CMD(FLUSH) may be used 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_ACK_FLUSH is provided for this purpose and the format of the "nack_payload" for this acknowledgment type is given below. Beyond that, a range of

Adamson, et al.               Experimental                     [Page 50]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 50] RFC 3940 NORM Protocol November 2004

   application-defined "ack_type" values is provided for use at the NORM
   application's discretion.  Implementations making use of
   application-defined positive acknowledgments may also make use the
   "nack_payload" as needed, observing the constraint that the
   "nack_payload" field size be limited to a maximum of the
   NormSegmentSize for the sender to which the NORM_ACK is destined.

application-defined "ack_type" values is provided for use at the NORM application's discretion. Implementations making use of application-defined positive acknowledgments may also make use the "nack_payload" as needed, observing the constraint that the "nack_payload" field size be limited to a maximum of the NormSegmentSize for the sender to which the NORM_ACK is destined.

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |version| type=5|    hdr_len    |          sequence             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           source_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           server_id                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           instance_id         |    ack_type  |     ack_id     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       grtt_response_sec                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       grtt_response_usec                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               header extensions (if applicable)               |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   ack_payload (if applicable)                 |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |バージョン| =5をタイプしてください。| hdr_len| 系列| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | サーバ_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 例_イド| ack_タイプ| ack_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | grtt_応答_秒| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | _grtt_応答usec| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ヘッダー拡大(適切であるなら)| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ack_ペイロード(適切であるなら)| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        NORM_ACK Message Format

標準_ACKメッセージ・フォーマット

   The NORM common message header fields serve their usual purposes.

NORMの一般的なメッセージヘッダーフィールドはそれらの普通の目的に役立ちます。

   The "server_id", "instance_id",  and "grtt_response" fields serve the
   same purpose as the corresponding fields in NORM_NACK messages.  And
   header extensions may be applied to support congestion control
   feedback or other functions in the same manner.

「サーバ_イド」、「例の_イド」、および「grtt_応答」分野はNORM_ナックメッセージの対応する分野と同じ目的に役立ちます。 そして、ヘッダー拡大は、同じ方法で輻輳制御フィードバックか他の機能をサポートするために適用されるかもしれません。

   The "ack_type" field indicates the nature of the NORM_ACK message.
   This directly corresponds to the "ack_type" field of the
   NORM_CMD(ACK_REQ) message to which this acknowledgment applies.

「ack_タイプ」分野はNORM_ACKメッセージの本質を示します。 これは直接この承認が適用されるNORM_CMD(ACK_REQ)メッセージの「ack_タイプ」分野に対応しています。

   The "ack_id" field serves as a sequence number so that the sender can
   verify that a NORM_ACK message received actually applies to a current
   acknowledgment request.  The "ack_id" field is not used in the case
   of the NORM_ACK_CC and NORM_ACK_FLUSH acknowledgment types.

「ack_イド」分野は、送付者が、実際に受け取られたNORM_ACKメッセージが現在の確認要求に適用されることを確かめることができるように、一連番号として機能します。 「ack_イド」分野はNORM_ACK_CCとNORM_ACK_FLUSH承認タイプの場合に使用されません。

Adamson, et al.               Experimental                     [Page 51]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [51ページ]実験的なRFC3940標準プロトコル2004年11月

   The "ack_payload" format is a function of the "ack_type".  The
   NORM_ACK_CC message has no attached content.  Only the NORM_ACK
   header applies.  In the case of NORM_ACK_FLUSH, a specific
   "ack_payload" format is defined:

「ack_ペイロード」形式は「ack_タイプ」の機能です。 NORM_ACK_CCメッセージには、どんな添付の内容もありません。 NORM_ACKヘッダーだけが適用します。 NORM_ACK_FLUSHの場合では、特定の「ack_ペイロード」書式は定義されます:

      0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     fec_id    |   reserved    |      object_transport_id      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        fec_payload_id                         |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_イド| 予約されます。| 物_輸送_イド| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_ペイロード_イド| | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  NORM_ACK_FLUSH "ack_payload" Format

標準_ACK_水洗「ack_ペイロード」形式

   The "object_transport_id" and "fec_payload_id" are used by the
   receiver to acknowledge applicable NORM_CMD(FLUSH) messages
   transmitted by the sender identified by the "server_id" field.

「物の_輸送_イド」と「fec_ペイロード_イド」は受信機によって使用されて、「サーバ_イド」分野によって特定された送付者によって送られた適切なNORM_CMD(FLUSH)メッセージを承認します。

   The "ack_payload" of NORM_ACK messages for application-defined
   "ack_type" values is specific to the application but is limited in
   size to a maximum the NormSegmentSize of the sender referenced by the
   "server_id".

アプリケーションで定義された「ack_タイプ」値へのNORM_ACKメッセージの「ack_ペイロード」は、アプリケーションに特定ですが、サイズが送付者のNormSegmentSizeが「サーバ_イド」で参照をつけた最大に制限されます。

4.4.  General Purpose Messages

4.4. 汎用のメッセージ

   Some additional message formats are defined for general purpose in
   NORM multicast sessions whether the participant is acting as a sender
   and/or receiver within the group.

関係者が送付者、そして/または、受信機としてグループの中で務めているか否かに関係なく、いくつかの追加メッセージ・フォーマットがNORMマルチキャストセッションにおける汎用のために定義されます。

4.4.1.  NORM_REPORT Message

4.4.1. 標準_レポートメッセージ

   This is an optional message generated by NORM participants.  This
   message could be used for periodic performance reports from receivers
   in experimental NORM implementations.  The format of this message is
   currently undefined.  Experimental NORM implementations may define
   NORM_REPORT formats as needed for test purposes.  These report
   messages SHOULD be disabled for interoperability testing between
   different NORM implementations.

これはNORM関係者によって発生した任意のメッセージです。 周期的な業績報告書に受信機から実験的なNORM実現にこのメッセージを使用できました。 このメッセージの形式は現在、未定義です。 実験的なNORM実現はテスト目的のために必要に応じてNORM_REPORT書式を定義するかもしれません。 これらは相互運用性のための身体障害者が異なったNORM実現の間のテストであったならメッセージSHOULDを報告します。

5.  Detailed Protocol Operation

5. 詳細なプロトコル操作

   This section describes the detailed interactions of senders and
   receivers participating in a NORM session.  A simple synopsis of
   protocol operation is given here:

このセクションはNORMセッションのときに関与する送付者と受信機の詳細な相互作用について説明します。 プロトコル操作の簡単な構文をここに与えます:

Adamson, et al.               Experimental                     [Page 52]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [52ページ]実験的なRFC3940標準プロトコル2004年11月

   1) The sender periodically transmits NORM_CMD(CC) messages as needed
      to initialize and collect roundtrip timing and congestion control
      feedback from the receiver set.

1) 送付者は往復のタイミングを初期化して、集めるために必要に応じて定期的にNORM_CMD(CC)メッセージを送ります、そして、受信機からの輻輳制御フィードバックはセットしました。

   2) The sender transmits an ordinal set of NormObjects segmented in
      the form of NORM_DATA messages labeled with NormTransportIds and
      logically identified with FEC encoding block numbers and symbol
      identifiers.  NORM_INFO messages may optionally precede the
      transmission of data content for NORM transport objects.

2) 送付者は街区番号とシンボル識別子をコード化するNormTransportIdsでラベルされて、FECと論理的に同一視されたNORM_DATAメッセージの形で区分されたNormObjectsの序数のセットを伝えます。 NORM_INFOメッセージは任意にNORM輸送物のためのデータ内容の伝達に先行するかもしれません。

   3) As receivers detect missing content from the sender, they initiate
      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 messages and wait an appropriate amount of
      time before repeating the NORM_NACK if their repair request is not
      satisfied.

3) 受信機として、送付者からのなくなった内容を検出してください、そして、彼らはNORM_ナックメッセージで修理要求を開始します。 送付者の受信機道の最新のobjectIdに注意してください:、:fecPayloadIdは内容のための_だけが序数である位置を伝える位置とナック_を伝えます。 受信機は、NORM_ナックメッセージを発生させる前に、無作為のbackoffタイムアウトの計画をして、彼らの修理要求が満たされていないならNORM_ナックを繰り返す前に、適切な時間を待ちます。

   4) The sender aggregates repair requests from the receivers and
      logically "rewinds" its transmit position to send appropriate
      repair messages.  The sender sends repairs for the earliest
      ordinal transmit position first and maintains this ordinal repair
      transmission sequence.  Previously untransmitted FEC parity
      content for the applicable FEC coding block is used for repair
      transmissions to the greatest extent possible.  If the sender
      exhausts its available FEC parity content on multiple repair
      cycles for the same coding block, it resorts to an explicit repair
      strategy (possibly using parity content) to complete repairs.
      (The use of explicit repair is expected to be an exception in
      general protocol operation, but the possibility does exist for
      extreme conditions).  The sender immediately assumes transmission
      of new content once it has sent pending repairs.

4) 修理が受信機から要求して、論理的に「巻き戻す」送付者集合、それ、適切な修理メッセージを送る立場を伝えてください。 送付者は、最も初期の序数が最初に位置を伝えるので修理を送って、この序数の修理トランスミッション系列を維持します。 以前、適切なFECコード化ブロックでuntransmitted FECパリティ内容は修理送信に可能な最大限まで使用されます。 同じコード化ブロック複数の修理サイクルに関する利用可能なFECパリティ内容が送付者でくたくたになるなら、それは、修理を終了するために明白な修理戦略(ことによると、パリティ内容を使用する)に訴えます。 (明白な修理の使用は一般に、例外が操作について議定書の中で述べるということであると予想されますが、可能性は極限の状態のために存在しています。) いったん未定の修理を送ると、送付者はすぐに、新しい内容の伝達を仮定します。

   5) The sender transmits NORM_CMD(FLUSH) messages when it reaches the
      end of enqueued transmit content and pending repairs.  Receivers
      respond to the NORM_CMD(FLUSH) messages with NORM_NACK
      transmissions (following the same suppression backoff timeout
      strategy as for data) if they require further repair.

5) 送付者は達すると待ち行列に入れられることの終わりが満足していて未定の修理を伝えるというNORM_CMD(FLUSH)メッセージを送ります。 彼らがさらなる修理を必要とするなら、受信機はNORM_ナックのトランスミッション(データのように同じ抑圧backoffタイムアウト戦略に従う)でNORM_CMD(FLUSH)メッセージに応じます。

   6) The sender transmissions are subject to rate control limits
      determined by congestion control mechanisms.  In the baseline
      NORM-CC operation, each sender in a NormSession maintains its own
      independent congestion control state.  Receivers provide
      congestion control feedback in NORM_NACK and NORM_ACK messages.
      NORM_ACK feedback for congestion control purposes is governed
      using a suppression mechanism similar to that for NORM_NACK
      messages.

6) 送付者トランスミッションは混雑制御機構で決定しているレート管理限界を受けることがあります。基線NORM-CC操作では、NormSessionの各送付者はそれ自身の独立している輻輳制御状態を維持します。 受信機はNORM_ナックとNORM_ACKメッセージに輻輳制御フィードバックを提供します。 混雑管理目的のためのNORM_ACKフィードバックは、NORM_ナックメッセージに、それと同様の抑圧メカニズムを使用することで支配されます。

Adamson, et al.               Experimental                     [Page 53]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [53ページ]実験的なRFC3940標準プロトコル2004年11月

   While this overall concept is relatively simple, there are details to
   each of these aspects that need to be addressed for successful,
   efficient, robust, and scalable NORM protocol operation.

この総合的な概念は比較的簡単ですが、うまくいっていて、効率的で、強健で、スケーラブルなNORMプロトコル操作のために記述される必要があるそれぞれのこれらの局面への詳細があります。

5.1.  Sender Initialization and Transmission

5.1. 送付者初期設定とトランスミッション

   Upon startup, the NORM sender immediately begins sending NORM_CMD(CC)
   messages to collect round trip timing and other information from the
   potential group.  If NORM-CC congestion control operation is enabled,
   the NORM-CC Rate header extension MUST be included in these messages.
   Congestion control operation SHALL be observed at all times when
   operating in the general Internet.  Even if congestion control
   operation is disabled at the sender, it may be desirable to use the
   NORM_CMD(CC) messaging to collect feedback from the group using the
   baseline NORM-CC feedback mechanisms.  This proactive feedback
   collection can be used to establish a GRTT estimate prior to data
   transmission and potential NACK operation.

始動のときに、NORM送付者はすぐに、潜在的グループから旅行タイミングと他の情報の周りに集まるメッセージをNORM_CMD(CC)に送り始めます。 NORM-CC混雑制御機能が可能にされるなら、これらのメッセージにNORM-CC Rateヘッダー拡張子を含まなければなりません。 混雑は操作SHALLを制御します。一般的なインターネットで作動するとき、いつも観測されます。 混雑制御機能が送付者で無効にされても、NORM_CMD(CC)を使用するのは、グループから基線NORM-CCフィードバック・メカニズムを使用することでフィードバックを集めるために通信しながら、望ましいかもしれません。データ伝送と潜在的ナックの操作の前にGRTT見積りを証明するのにこの先を見越すフィードバック収集は使用できます。

   In some cases, applications may wish for the sender to also proceed
   with data transmission immediately.  In other cases, the 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
   indication may come out-of-band with respect to the multicast session
   via other means.  As noted, the periodic transmission of NORM_CMD(CC)
   messages may precede actual data transmission in order to have an
   initial GRTT estimate.

いくつかの場合、アプリケーションは、また、送付者がすぐにデータ伝送を続ける必要があるかもしれません。 他の場合では、本当に、受信機が存在しているのを示すように設定された受信機から何らかのフィードバックか要求を受け取るまで、送付者はデータ伝送を延期したがっているかもしれません。 いくつかのアプリケーション(例えば、ウェブプッシュ)でこの指示がマルチキャストセッションに関して他の手段でバンドの外に来るかもしれないことに注意してください。 注意されるように、NORM_CMD(CC)メッセージの周期的な伝達は初期のGRTT見積りを持つために実際のデータ伝送に先行するかもしれません。

   With inclusion of the OPTIONAL NORM FEC Object Transmission
   Information Header Extension, the NORM protocol sender message
   headers can contain all information necessary to prepare receivers
   for subsequent reliable reception.  This includes FEC coding
   parameters, the sender NormSegmentSize, and other information.  If
   this header extension is not used, it is presumed that receivers have
   received the FEC Object Transmission Information via other means.
   Additionally, applications may leverage the use of NORM_INFO messages
   associated with the session data objects in the session to provide
   application-specific context information for the session and data
   being transmitted.  These mechanisms allow for operation with minimal
   pre-coordination among the senders and receivers.

OPTIONAL NORM FEC Object Transmission情報Header Extensionの包含で、NORMプロトコル送付者メッセージヘッダーはその後の信頼できるレセプションのために受信機を準備するのに必要なすべての情報を含むことができます。 これはパラメタ、送付者NormSegmentSize、および他の情報をコード化するFECを含んでいます。 このヘッダー拡大が使用されていないなら、受信機が他の手段でFEC Object Transmission情報を受け取ったと推定されます。 さらに、アプリケーションは、送られるセッションとデータのためのアプリケーション特有の文脈情報を提供するためにセッションのときにセッションデータ・オブジェクトに関連しているNORM_INFOメッセージの使用に投機するかもしれません。 送付者と受信機の中に最小量のプレコーディネートがある状態で、これらのメカニズムは操作を考慮します。

   The NORM sender begins segmenting application-enqueued data into
   NORM_DATA segments and transmitting it to the group.  The
   segmentation algorithm is described in Section 5.1.1.  The rate of
   transmission is controlled via 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
   as needed.  When the sender reaches the end of data it has enqueued

NORM送付者は、アプリケーションで待ち行列に入れられたデータをNORM_DATAセグメントに区分して、それをグループに伝え始めます。 分割アルゴリズムはセクション5.1.1で説明されます。 トランスミッションの速度は、混雑制御機構で制御されるか、閉じているネットワーク操作のために望まれているなら、定率です。 マルチキャストグループに参加する受信機は必要に応じてフィードバックを送付者に提供します。 送付者がそれが待ち行列に入れたデータの端に達する場合

Adamson, et al.               Experimental                     [Page 54]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [54ページ]実験的なRFC3940標準プロトコル2004年11月

   for transmission or any pending repairs, it transmits a series of
   NORM_CMD(FLUSH) messages at a rate of one per 2*GRTT.  Receivers may
   respond to these NORM_CMD(FLUSH) messages with additional repair
   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 may attach an OPTIONAL "acking_node_list"
   to NORM_CMD(FLUSH) containing the NormNodeIds for receivers from
   which it expects explicit positive acknowledgment of reception.  The
   NORM_CMD(FLUSH) message may be also used for this optional function
   any time prior to the end of data enqueued for transmission with the
   NORM_CMD(FLUSH) messages multiplexed with ongoing data transmissions.
   The OPTIONAL NORM positive acknowledgment procedure is described in
   Section 5.5.3.

トランスミッションかどんな未定の修理のためにも、それは2*GRTTあたり1つのレートで一連のNORM_CMD(FLUSH)メッセージを送ります。 受信機は追加修理要求でこれらのNORM_CMD(FLUSH)メッセージに応じるかもしれません。 「標準の_の強健な_要素」というプロトコルパラメタは、豊富なメッセージの数が発信したことを決定します。 受信機が修理を要求するなら、修理を提供します、そして、洗い流すことは修理送信の終わりに再び起こります。 それがレセプションの明白な肯定応答を予想する受信機のためのNormNodeIdsを含んで、送付者はOPTIONAL「acking_ノード_リスト」をNORM_CMD(FLUSH)に付けるかもしれません。 また、NORM_CMD(FLUSH)メッセージはこの任意の機能にトランスミッションのために進行中のデータ伝送でNORM_CMD(FLUSH)メッセージを多重送信している状態で待ち行列に入れられたデータの終わりまでにいつでも使用されるかもしれません。 OPTIONAL NORM肯定応答手順はセクション5.5.3で説明されます。

5.1.1.  Object Segmentation Algorithm

5.1.1. 物の分割アルゴリズム

   NORM senders and receivers must use a common algorithm for logically
   segmenting transport data into FEC encoding blocks and symbols so
   that appropriate NACKs can be constructed to request repair of
   missing data.  NORM FEC coding blocks are comprised of multi-byte
   symbols which are transmitted in the payload of NORM_DATA messages.
   Each NORM_DATA message contains one source or encoding symbol and the
   NormSegmentSize sender parameter defines the maximum symbol size in
   bytes.  The FEC encoding type and associated parameters govern the
   source block size (number of source symbols per coding block).  NORM
   senders and receivers use these FEC parameters, along with the
   NormSegmentSize and transport object size to compute the source block
   structure for transport objects.  These parameters are provided in
   the FEC Transmission Information for each object.  The algorithm
   given below is used to compute a source block structure such that all
   source blocks are as close to being equal length as possible.  This
   helps avoid the performance disadvantages of "short" FEC blocks.
   Note this algorithm applies only to the statically-sized
   NORM_OBJECT_DATA and NORM_OBJECT_FILE transport object types where
   the object size is fixed and predetermined.  For NORM_OBJECT_STREAM
   objects, the object is segmented according to the maximum source
   block length  given in the FEC Transmission Information, unless the
   FEC Payload ID indicates an alternative size for a given block.

NORM送付者と受信機は、輸送データを欠測値の修理を要求するために適切なNACKsを組み立てることができるようにブロックとシンボルをコード化するFECに論理的に区分するのに一般的なアルゴリズムを使用しなければなりません。 NORM FECコード化ブロックはNORM_DATAメッセージのペイロードで伝えられるマルチバイトシンボルから成ります。 1つのソースがそれぞれのNORM_DATAメッセージは含まれるか、またはシンボルとNormSegmentSize送付者パラメタをコード化すると、最大のシンボルサイズはバイトで定義されます。 タイプと関連パラメタをコード化するFECはソースブロック・サイズ(コード化ブロックあたりのソースシンボルの数)を決定します。 NORM送付者と受信機は、輸送物のためにソースブロック構造を計算するのにNormSegmentSizeと輸送物のサイズに伴うこれらのFECパラメタを使用します。 各物のためのFEC Transmission情報にこれらのパラメタを提供します。 以下に与えられたアルゴリズムがソースブロック構造を計算するのに使用されるので、すべてのソースブロックができるだけ等しい長さであることの近くにあります。 これは、「短い」FECブロックの性能難点を避けるのを助けます。 このアルゴリズムが_OBJECT_DATAとFILEが輸送するNORM_OBJECT_が物のサイズが修理されていて、予定されるところでタイプするのを反対させる静的にサイズのNORMだけに適用されることに注意してください。 NORM_OBJECT_STREAM物に関しては、FEC Transmission情報で与えられた最大のソースブロック長に応じて、物は区分されます、FEC Payload IDが代替のサイズを与えられたブロックに示さない場合。

   The NORM block segmentation algorithm is defined as follows.  For a
   transport object of a given length (L_obj) in bytes, a first number
   of FEC source blocks (N_large) is delineated of a larger block size
   (B_large), and a second number of source blocks (N_small) is
   delineated of a smaller block size (B_small).  Given the maximum FEC
   source block size (B_max) and the sender's NormSegmentSize, the block
   segmentation for a given NORM transport object is determined as
   follows:

NORMブロック分割アルゴリズムは以下の通り定義されます。 バイトで表現される与えられた長さ(L_obj)の輸送物に関して、最初の数のFECソースブロック(N_大きい)が、より大きいブロック・サイズ(B_大きい)、および2番目の数のソースブロックについて図で表わされる、(N、_小さい)、 よりわずかなブロック・サイズについて図で表わされる、(B、_小さい) 最大のFECソースブロック・サイズ(B_最大)と送付者のNormSegmentSizeを考えて、与えられたNORM輸送物のためのブロック分割は以下の通り決定しています:

Adamson, et al.               Experimental                     [Page 55]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [55ページ]実験的なRFC3940標準プロトコル2004年11月

   Inputs:

入力:

   B_max = Maximum source block length (i.e., maximum number of source
           symbols per source block)

B_最大は最大のソースブロック長と等しいです。(すなわち、最大数のソースブロックあたりのソースシンボル)

   L_sym = Encoding symbol length in bytes (i.e., NormSegmentSize)

L_symはバイトで表現されるシンボルの長さをコード化するのと等しいです。(すなわち、NormSegmentSize)

   L_obj = Object length in bytes

L_objはバイトで表現される物の長さと等しいです。

   Outputs:

出力:

   N_total = The total number of source blocks into which the transport
             object is partitioned.

輸送物が仕切られるソースブロックのN_合計=総数。

   N_large = Number of larger source blocks (first set of blocks)

N_大きい=番号の、より大きいソースブロック(ブロックの第一セット)

   B_large = Size (in encoding symbols) of the larger source blocks

より大きいソースブロックのB_大きい=サイズ(シンボルをコード化することにおける)

   N_small = Number of smaller source blocks (second set of blocks)

N_少ない=番号の、よりわずかなソースブロック(2番目のセットのブロック)

   B_small = Size (in encoding symbols) of the smaller source blocks

よりわずかなソースブロックのB_小さい=サイズ(シンボルをコード化することにおける)

   L_final = Length (in bytes) of the last source symbol of the last
             source block (All other symbols are of length L_sym).

L_決勝は最後のソースブロックの最後のソースシンボルの長さ(バイトによる)と等しいです(他のすべてのシンボルが長さのL_symのものです)。

   Algorithm:

アルゴリズム:

   1) The total number of source symbols in the transport object is
      computed as:  S_total = L_obj/L_sym [rounded up to the nearest
      integer]

1) 輸送物のソースシンボルの総数は以下として計算されます。 _S_合計=L_obj/L sym[丸い最も近い整数まで]です。

   2) The transport object is partitioned into N_total source blocks,
      where:  N_total = S_total/B_max [rounded up to the nearest
      integer]

2) 輸送物はN_合計ソースブロック、どこに仕切られるか: N_合計=S_合計/B_最大[丸い最も近い整数まで]です。

   3) The average length of a source block is computed as:  B_ave =
      S_total/N_total (this may be non-integer)

3) 1つのソースブロックの平均した長さは以下として計算されます。 B_ave=S_合計/N_合計(これは非整数であるかもしれません)

   4) The size of the first set of larger blocks is computed as:
      B_large = B_ave [rounded up to the nearest integer] (Note it will
      always be the case that B_large <= B_max)

4) より大きいブロックの第一セットのサイズは以下として計算されます。 _B大きい=B_ave[最も近い整数まで一周します](いつもB B_大きい<=_が最大限にするのが、事実であるというメモ)

   5) The size of the second set of smaller blocks is computed as:
      B_small = B_ave [rounded down to the nearest integer] (Note if
      B_ave is an integer B_small = B_large; otherwise B_small = B_large
      - 1)

5) 2番目のセットの、よりわずかなブロックのサイズは以下として計算されます。 _B小さい=B_ave[最も近い整数まで一周します](B_aveが_小さい=B_大きい; そうでなければ、_小さい=B B_大きい--の1の整数Bであるかどうかに注意します)

Adamson, et al.               Experimental                     [Page 56]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [56ページ]実験的なRFC3940標準プロトコル2004年11月

   6) The fractional part of B_ave is computed as:  B_fraction = B_ave -
      B_small

6) B_aveの断片的な部分は以下として計算されます。 B_断片は_小さくB_ave--Bと等しいです。

   7) The number of larger source blocks is computed as:  N_large =
      B_fraction * N_total (Note N_large is an integer in the range 0
      through N_total - 1)

7) より大きいソースブロックの数は以下として計算されます。 N_大きい=B_断片*N_合計(注意N_大きいのは、範囲0〜N_合計で整数です--1)

   8) The number of smaller source blocks is computed as:  N_small =
      N_total - N_large

8) よりわずかなソースブロックの数は以下として計算されます。 N_わずかな=N_合計--N_多大

   9) Each of the first N_large source blocks consists of B_large source
      symbols.  Each of the remaining N_small source blocks consists of
      B_small source symbols.  All symbols are L_sym bytes in length
      except for the final source symbol of the final source block which
      is of length (in bytes):
      L_final = L_obj - (N_large*B_large + N_small*B_small - 1) * L_sym

9) それぞれの最初のN_大きいソースブロックがB_の大きいソースシンボルから成ります。 それぞれのN残っている_わずかなソースブロックがB_の小さいソースシンボルから成ります。 ツーイーソウは長さ(バイトによる)のものである最終的なソースブロックの最終的なソースシンボル以外の長さはL_symバイトです: L_決勝=L_obj--、(N_大きい*B_多大+N_の小さい*B_、小さい--、1) * L_sym

5.2.  Receiver Initialization and Reception

5.2. 受信機初期設定とレセプション

   The NORM protocol is designed such that receivers may join and leave
   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.  For example, a useful implementation policy is for new
   receivers joining the group to limit or avoid repair requests for
   transport objects already in progress.  The NORM sender
   implementation may wish to impose additional constraints to limit the
   ability of receivers to disrupt reliable multicast performance by
   joining, leaving, and rejoining the group often.  Different receiver
   "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
   the first non-repair NORM_DATA or NORM_INFO message received upon
   joining the group is RECOMMENDED.  For objects of type
   NORM_OBJECT_STREAM it is RECOMMENDED that the join policy constrain
   receivers to start reliable reception at the current FEC coding block
   for which non-repair content is received.

NORMプロトコルは、受信機が接合して、自由自在に仲間から抜けることができるように、設計されています。 しかしながら、いくつかのアプリケーションが抑制されるかもしれないので、受信機は、データ伝送の始まりの前のグループのメンバーである必要があります。 NORMアプリケーションは、セッションの途中でグループに加わる新しい受信機の衝撃を抑制するのに異なった方針を使用するかもしれません。 例えば、役に立つ実現方針は既に進行中の輸送物を求める修理要求を制限するか、または避けるためにグループに加わる新しい受信機のためのものです。 NORM送付者実現は受信機が接合するのによる信頼できるマルチキャスト性能を中断する能力を制限するという追加規制を課したがっているかもしれません、いなくなって、しばしばグループに再び加わって。 異なった受信機は「方針を接合します」。異なったアプリケーション、そして/または、シナリオに適切であるかもしれません。 汎用の操作のために、NormTransportIdとFECが街区番号をよりコード化している状態で受信機がコード化ブロックのためだけの修理を要求できるグループに加わるとき最初の非修理NORM_DATAかNORM_INFOメッセージが受けたデフォルト方針はRECOMMENDEDです。 方針を接合してください。タイプNORM_OBJECT_STREAMの物に関して、それがRECOMMENDEDである、それ、受信機が受け取られたどの非修理内容のために信頼できる現在のFECコード化ブロックでのレセプションを始めるかを抑制してください。

5.3.  Receiver NACK Procedure

5.3. 受信機ナック手順

   When the receiver detects it is missing data from a sender's NORM
   transmissions, it initiates its NACKing procedure.  The NACKing
   procedure SHALL be initiated _only_ at FEC coding block boundaries,
   NormObject boundaries, and upon receipt of a NORM_CMD(FLUSH) message.

受信機がいつそれを検出するかによる送付者のNORMトランスミッションからの欠測値であり、NACKing手順に着手するということです。 NACKing手順SHALL、_FECの_だけがブロック境界、NormObject境界をコード化して、NORM_CMD(FLUSH)メッセージを受け取り次第開始されて、開始されてください。

Adamson, et al.               Experimental                     [Page 57]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [57ページ]実験的なRFC3940標準プロトコル2004年11月

   The NACKing procedure begins with a random backoff timeout.  The
   duration of the backoff timeout is chosen using the "RandomBackoff"
   algorithm described in the NORM Building Block document [4] using
   (Ksender*GRTTsender) for the "maxTime" parameter and the sender
   advertised group size (GSIZEsender) as the "groupSize" parameter.
   NORM senders provide values for GRTTsender, Ksender and GSIZEsender
   via the "grtt", "backoff", and "gsize" fields of transmitted
   messages.  The GRTTsender value is determined by the sender based on
   feedback it has received from the group while the Ksender and
   GSIZEsender values may determined by application requirements and
   expectations or ancillary information.  The backoff factor "Ksender"
   MUST be greater than one to provide for effective feedback
   suppression.  A value of K = 4 is RECOMMENDED for the Any Source
   Multicast (ASM) model while a value of K = 6 is RECOMMENDED for
   Single Source Multicast (SSM) operation.

NACKing手順は無作為のbackoffタイムアウトで始まります。 backoffタイムアウトの持続時間は、NORMビルBlockドキュメントで[4] "maxTime"パラメタと送付者の広告を出しているグループサイズ(GSIZEsender)に"groupSize"パラメタとして(Ksender*GRTTsender)を使用することで説明された"RandomBackoff"アルゴリズムを使用することで選ばれています。 NORM送付者は伝えられたメッセージの"grtt"、"backoff"、および"gsize"分野を通してGRTTsender、Ksender、およびGSIZEsenderに値を供給します。 KsenderとGSIZEsender値はアプリケーション要件と期待によって断固とするか補助的情報を決定している間、GRTTsender値はそれがグループから受けたフィードバックに基づく送付者によって決定されます。 backoff要素"Ksender"は、有効なフィードバック抑圧に備えるためにはもの以上でなければなりません。 K=6の値はSingle Source Multicast(SSM)操作のためのRECOMMENDEDですが、K=4の値はAny Source Multicast(ASM)モデルのためのRECOMMENDEDです。

   Thus:

このようにして:

        T_backoff = RandomBackoff(Ksender*GRTTsender, GSIZEsender)

T_backoffはRandomBackoffと等しいです。(Ksender*GRTTsender、GSIZEsender)

   To avoid the possibility of NACK implosion in the case of sender or
   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
   messages and NORM_CMD(REPAIR_ADV) messages received.  At the end of
   the backoff time, the receiver SHALL generate a NORM_NACK message
   only if the following conditions are met:

受信機SHALLは、SSM操作の間、送付者かネットワーク失敗の場合における、ナックの内部破裂の可能性を避けるために、自動的にナックを抑圧して、すぐに、以下で説明されたT_backoffが(Ksender1)*GRTTsenderよりすばらしい"holdoff"の期間に入ります。 さもなければ、backoffの期間は入られます、そして、受信機はナックメッセージとNORM_CMD(REPAIR_ADV)メッセージが受けたNORM_から外部の未定の修理状態を蓄積しなければなりません。 backoff現代の終わりに、以下の条件が満たされる場合にだけ、受信機SHALLはNORM_ナックメッセージを発生させます:

   1) The sender's current transmit position (in terms of
      objectId::fecPayloadId) exceeds the earliest repair position of
      the receiver.

1) 送付者の電流が位置を伝える、(objectIdに関して:、:fecPayloadId) 受信機の最も早い修理位置を超えています。

   2) The repair state accumulated from NORM_NACK and
      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 procedure (backoff timeout) was initiated.

2) 修理状態がNORM_ナックから蓄積して、ナック手順(backoffタイムアウト)が着手されたとき、NORM_CMD(REPAIR_ADV)メッセージは、受信機の修理の必要性に送付者トランスミッション位置まで等しくない、または取って代わりません。

   If these conditions are met, the receiver immediately generates a
   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 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 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] is:

これらの条件が満たされるなら、backoffタイムアウトが期限が切れると、受信機はすぐに、NORM_ナックメッセージを発生させます。 さもなければ、受信機のナックが「抑圧される」と考えられて、メッセージは送られません。 このとき、受信機はそれ自体がNACKingの過程を再開始でないのに抑制する"holdoff"の期間を始めます。 このタイムアウトの目的は受信機要求が再び修理される前に修理の必要性に応じる送付者の最も悪いケース時間を許容することです。 [4]の説明されるとしてのこの"holdoff"タイムアウト(T_rcvrHoldoff)の値は以下の通りです。

Adamson, et al.               Experimental                     [Page 58]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [58ページ]実験的なRFC3940標準プロトコル2004年11月

                   T_rcvrHoldoff =(Ksender+2)*GRTTsender

T_rcvrHoldoffは*GRTTsenderと等しいです(Ksender+2)。

   The 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.  If the size of the NORM_NACK content exceeds the
   sender's NormSegmentSize, the NACK content is truncated so that the
   receiver only generates a single NORM_NACK message per NACK cycle for
   a given sender.  In summary, a single NACK message is generated
   containing the receiver's lowest ordinal repair needs.

NORM_ナックメッセージは大部分前のコード化ブロックを通る受信機の最も低い序数の修理位置が最近聞かれている状態で送付者のために序数のトランスミッション位置を始める修理要求内容を含んでいます。 NORM_ナック内容のサイズが送付者のNormSegmentSizeを超えているなら、ナック内容が端が欠けているので、受信機は与えられた送付者のためにナックサイクルあたり1つのただ一つのNORM_ナックメッセージしか発生させません。 概要では、受信機の最も低い序数の修理の必要性を含んでいて、ただ一つのナックメッセージは発生します。

   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
   ordinal _parity_ "encoding_symbol_id" (i.e., "encoding_symbol_id" =
   "source_block_len") and request the number of FEC symbols
   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
   coding block.  Note that the 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.
   In the case where the erasure count for a partially-received FEC
   coding block exceeds the maximum number of parity symbols available
   from the 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
   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
   block.  This allows the sender to construct the most efficient repair
   transmission segment set and enables effective NACK suppression among
   the receivers even with uncorrelated packet loss.  This approach also
   requires no synchronization among the receiver set in their repair
   requests for the sender.

それぞれが修理を必要とするFECコード化ブロックを部分的に受け取って、受信機SHALLが、ブロックのための_第1_修理試みのときに「_シンボル_イドをコード化する」(すなわち、「_シンボル_イドをコード化します」は「ソース_ブロック_len」と等しいです)最も低い序数_パリティ_で始まるFECコード化ブロックのパリティ一部を要求して、データ・セグメント消去に対応するFECシンボルの数がブロックに重要であるよう要求するので。 同じコード化ブロック_のその後の_修理サイクルに、受信機SHALLは、それがまだ残っている消去まで受けていない第一セットからのそれらの修理シンボルだけがその適切なコード化ブロックに重要であるよう要求します。 送付者がまた、地方の受信機の消去をいっぱいにする需要を満たすのに使用できた他の受信機に他の異なって、追加しているパリティセグメントを供給したかもしれないことに注意してください。 部分的に受信されたFECコード化ブロックのための消去カウントが送付者からブロックに利用可能なパリティシンボルの最大数を超えている(NORM_DATA「fec_num_の同等」分野によって示されるように)場合では、受信機SHALLは、すべての利用可能なパリティセグメントと序数的に最も高い欠測値セグメントがブロックの完全な消去需要を満たすのが必要であるよう要求します。 この戦略の目標は総合的な受信機セットが与えられたFECコード化ブロックの修理シンボルの最小公分母セットを要求することです。 これは、送付者が最も効率的な修理トランスミッションセグメントセットを構成するのを許容して、受信機の中で非相関パケット損失があっても有効なナックの抑圧を可能にします。 また、このアプローチは送付者を求める彼らの修理要求に設定された受信機の中で同期を全く必要としません。

   For FEC coding blocks or NormObjects missed in their entirety, the
   NORM receiver constructs repair requests with NORM_NACK_BLOCK or
   NORM_NACK_OBJECT flags set as appropriate.  The request for
   retransmission of NORM_INFO is accomplished by setting the
   NORM_NACK_INFO flag in a corresponding repair request.

ブロックをコード化するFECか全体としていなくて寂しいNormObjectsに関しては、NORM受信機構造物はナック_BLOCKかNORM_ナック_OBJECT旗が適宜設定するNORM_との要求を修理します。 NORM_INFOの「再-トランスミッション」を求める要求は、対応する修理要求にNORM_ナック_INFO旗を設定することによって、実行されます。

5.4.  Sender NACK Processing and Response

5.4. 送付者ナックの処理と応答

   The principle goal of the sender is to make forward progress in the
   transmission of data its application has enqueued.  However, the
   sender must occasionally "rewind" its logical transmission point to

送付者の原則目標はアプリケーションが待ち行列に入れたデータの伝達における前進の進歩をすることです。 しかしながら、送付者は時折論理的なトランスミッションポイントを「巻き戻さなければなりません」。

Adamson, et al.               Experimental                     [Page 59]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [59ページ]実験的なRFC3940標準プロトコル2004年11月

   satisfy the repair needs of receivers who have NACKed.  Aggregation
   of multiple NACKs is used to determine an optimal 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
   synchronization of the repair process even when receivers experience
   uncorrelated data loss.

NACKedを持っている受信機の修理需要を満たしてください。 ナック出来事が起こるとき、複数のNACKsの集合は、最適の修理戦略を決定するのに使用されます。 ブロックか物の限界をコード化するとき受信機がナックの過程に着手するので、受信機が非相関データの損失を経験さえするとき、修理の過程の何らかのゆるい度の同期があります。

5.4.1.  Sender Repair State Aggregation

5.4.1. 送付者修理州の集合

   When a sender is in its normal state of transmitting new data and
   receives a NACK, it begins a procedure to accumulate NACK repair
   state from NORM_NACK messages before beginning repair transmissions.
   Note that this period of aggregating repair state does _not_
   interfere with its ongoing transmission of new data.

When a sender is in its normal state of transmitting new data and receives a NACK, it begins a procedure to accumulate NACK repair state from NORM_NACK messages before beginning repair transmissions. Note that this period of aggregating repair state does _not_ interfere with its ongoing transmission of new data.

   As described in [4], the period of time during which the sender
   aggregates NORM_NACK messages is equal to:

As described in [4], the period of time during which the sender aggregates NORM_NACK messages is equal to:

                    T_sndrAggregate = (Ksender+1)*GRTT

T_sndrAggregate = (Ksender+1)*GRTT

   where "Ksender" is the same backoff scaling value used by the
   receivers, and "GRTT" is the sender's current estimate of the group's
   greatest round-trip time.

where "Ksender" is the same backoff scaling value used by the receivers, and "GRTT" is the sender's current estimate of the group's greatest round-trip time.

   When this period ends, the sender "rewinds" by incorporating the
   accumulated repair state into its pending transmission state and
   begins transmitting repair messages.  After pending repair
   transmissions are completed, the sender continues with new
   transmissions of any enqueued data.  Also, at this point in time, the
   sender begins a "holdoff" timeout during which time the sender
   constrains itself from initiating a new repair aggregation cycle,
   even if NORM_NACK messages arrive.  As described in [4], the value of
   this sender "holdoff" period is:

When this period ends, the sender "rewinds" by incorporating the accumulated repair state into its pending transmission state and begins transmitting repair messages. After pending repair transmissions are completed, the sender continues with new transmissions of any enqueued data. Also, at this point in time, the sender begins a "holdoff" timeout during which time the sender constrains itself from initiating a new repair aggregation cycle, even if NORM_NACK messages arrive. As described in [4], the value of this sender "holdoff" period is:

                         T_sndrHoldoff = (1*GRTT)

T_sndrHoldoff = (1*GRTT)

   If additional NORM_NACK messages are received during this sender
   "holdoff" period, the sender will immediately incorporate these "late
   messages" into its pending transmission state ONLY if the NACK
   content is ordinally greater than the sender's current transmission
   position.  This "holdoff" time allows worst case time for the sender
   to propagate its current transmission sequence position to the group,
   thus avoiding redundant repair transmissions.  After the holdoff
   timeout expires, a new NACK accumulation period can be begun (upon
   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's logical transmission position
   exceeds the lowest ordinal position of their repair needs.  With the

If additional NORM_NACK messages are received during this sender "holdoff" period, the sender will immediately incorporate these "late messages" into its pending transmission state ONLY if the NACK content is ordinally greater than the sender's current transmission position. This "holdoff" time allows worst case time for the sender to propagate its current transmission sequence position to the group, thus avoiding redundant repair transmissions. After the holdoff timeout expires, a new NACK accumulation period can be begun (upon 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's logical transmission position exceeds the lowest ordinal position of their repair needs. With the

Adamson, et al.               Experimental                     [Page 60]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 60] RFC 3940 NORM Protocol November 2004

   new NACK aggregation period, the sender repeats the same process of
   incorporating accumulated repair state into its transmission plan and
   subsequently "rewinding" to transmit the lowest ordinal repair data
   when the aggregation period expires.  Again, this is conducted in
   concert with ongoing new data and/or pending repair transmissions.

new NACK aggregation period, the sender repeats the same process of incorporating accumulated repair state into its transmission plan and subsequently "rewinding" to transmit the lowest ordinal repair data when the aggregation period expires. Again, this is conducted in concert with ongoing new data and/or pending repair transmissions.

5.4.2.  Sender FEC Repair Transmission Strategy

5.4.2. Sender FEC Repair Transmission Strategy

   The NORM sender should leverage transmission of 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_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-generated parity segments.
   The sender can determine the maximum erasure filling needs for
   individual FEC coding blocks from the NORM_NACK messages received
   during the repair aggregation period.  Then, if the sender has a
   sufficient number (less than or equal to the maximum erasure count)
   of previously unsent parity segments available for the applicable
   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
   should the sender resort to explicit transmission of the receiver
   set's repair needs.  In general, if a sufficiently powerful FEC code
   is used, the need for explicit repair will be an exception, and the
   fulfillment of reliable multicast can be accomplished quite
   efficiently.  However, the ability to resort to explicit repair
   allows the protocol to be reliable under even very extreme
   circumstances.

The NORM sender should leverage transmission of 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_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-generated parity segments. The sender can determine the maximum erasure filling needs for individual FEC coding blocks from the NORM_NACK messages received during the repair aggregation period. Then, if the sender has a sufficient number (less than or equal to the maximum erasure count) of previously unsent parity segments available for the applicable 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 should the sender resort to explicit transmission of the receiver set's repair needs. In general, if a sufficiently powerful FEC code is used, the need for explicit repair will be an exception, and the fulfillment of reliable multicast can be accomplished quite efficiently. However, the ability to resort to explicit repair allows the protocol to be reliable under even very extreme circumstances.

   NORM_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
   transmission when only repair transmissions have been received.
   Additionally, the sender SHOULD additionally flag NORM_DATA
   transmissions sent as explicit repair with the NORM_FLAG_EXPLICIT
   flag.

NORM_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 transmission when only repair transmissions have been received. Additionally, the sender SHOULD additionally flag NORM_DATA transmissions sent as explicit repair with the NORM_FLAG_EXPLICIT flag.

   Although NORM end system receivers do not make use of the
   NORM_FLAG_EXPLICIT flag, this message transmission status could be
   leveraged by intermediate systems wishing to "assist" NORM protocol
   performance.  If such systems are properly positioned with respect to
   reciprocal reverse-path multicast routing, they need to sub-cast only
   a sufficient count of non-explicit parity repairs to satisfy a
   multicast routing sub-tree's erasure filling needs for a given FEC
   coding block.  When the sender has resorted to explicit repair, then
   the intermediate systems should sub-cast all of the explicit repair

Although NORM end system receivers do not make use of the NORM_FLAG_EXPLICIT flag, this message transmission status could be leveraged by intermediate systems wishing to "assist" NORM protocol performance. If such systems are properly positioned with respect to reciprocal reverse-path multicast routing, they need to sub-cast only a sufficient count of non-explicit parity repairs to satisfy a multicast routing sub-tree's erasure filling needs for a given FEC coding block. When the sender has resorted to explicit repair, then the intermediate systems should sub-cast all of the explicit repair

Adamson, et al.               Experimental                     [Page 61]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 61] RFC 3940 NORM Protocol November 2004

   packets to those portions of the routing tree still requiring repair
   for a given coding block.  Note the intermediate systems will be
   required to conduct repair state accumulation for sub-routes in a
   manner similar to the sender's repair state accumulation in order to
   have sufficient information to perform the sub-casting.
   Additionally, the intermediate systems could perform additional
   NORM_NACK suppression/aggregation as it conducts this repair state
   accumulation for NORM repair cycles.  The detail of this type of
   operation are beyond the scope of this document, but this information
   is provided for possible future consideration.

packets to those portions of the routing tree still requiring repair for a given coding block. Note the intermediate systems will be required to conduct repair state accumulation for sub-routes in a manner similar to the sender's repair state accumulation in order to have sufficient information to perform the sub-casting. Additionally, the intermediate systems could perform additional NORM_NACK suppression/aggregation as it conducts this repair state accumulation for NORM repair cycles. The detail of this type of operation are beyond the scope of this document, but this information is provided for possible future consideration.

5.4.3.  Sender NORM_CMD(SQUELCH) Generation

5.4.3. Sender NORM_CMD(SQUELCH) Generation

   If the sender receives a NORM_NACK message for repair of data it is
   no longer supporting, the sender generates a NORM_CMD(SQUELCH)
   message to advertise its repair window and squelch any receivers from
   additional NACKing of invalid data.  The transmission rate of
   NORM_CMD(SQUELCH) messages is limited to once per 2*GRTT.  The
   "invalid_object_list" (if applicable) of the NORM_CMD(SQUELCH)
   message SHALL begin with the lowest "object_transport_id" from the
   invalid NORM_NACK messages received since the last NORM_CMD(SQUELCH)
   transmission.  Lower ordinal invalid "object_transport_ids" should be
   included only while the NORM_CMD(SQUELCH) payload is less than the
   sender's NormSegmentSize parameter.

If the sender receives a NORM_NACK message for repair of data it is no longer supporting, the sender generates a NORM_CMD(SQUELCH) message to advertise its repair window and squelch any receivers from additional NACKing of invalid data. The transmission rate of NORM_CMD(SQUELCH) messages is limited to once per 2*GRTT. The "invalid_object_list" (if applicable) of the NORM_CMD(SQUELCH) message SHALL begin with the lowest "object_transport_id" from the invalid NORM_NACK messages received since the last NORM_CMD(SQUELCH) transmission. Lower ordinal invalid "object_transport_ids" should be included only while the NORM_CMD(SQUELCH) payload is less than the sender's NormSegmentSize parameter.

5.4.4.  Sender NORM_CMD(REPAIR_ADV) Generation

5.4.4. Sender NORM_CMD(REPAIR_ADV) Generation

   When a 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
   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 are then able to perform feedback suppression in the same
   manner as with NORM_NACK messages directly received from other
   receivers.  Note the sender does not merely retransmit NACK content
   it receives, but instead transmits a representation of its aggregated
   repair state.  The transmission of NORM_CMD(REPAIR_ADV) messages are
   subject to the sender transmit rate limit and NormSegmentSize
   limitation.  When the 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"
   transmission position and implicitly suppress requests for ordinally
   higher repair.  For congestion control operation, the sender may also
   need to provide information so that dynamic congestion control
   feedback can be suppressed as needed among receivers.  This document
   specifies the NORM-CC Feedback Header Extension that is applied for

When a 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 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 are then able to perform feedback suppression in the same manner as with NORM_NACK messages directly received from other receivers. Note the sender does not merely retransmit NACK content it receives, but instead transmits a representation of its aggregated repair state. The transmission of NORM_CMD(REPAIR_ADV) messages are subject to the sender transmit rate limit and NormSegmentSize limitation. When the 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" transmission position and implicitly suppress requests for ordinally higher repair. For congestion control operation, the sender may also need to provide information so that dynamic congestion control feedback can be suppressed as needed among receivers. This document specifies the NORM-CC Feedback Header Extension that is applied for

Adamson, et al.               Experimental                     [Page 62]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 62] RFC 3940 NORM Protocol November 2004

   baseline NORM-CC operation.  If other congestion control mechanisms
   are used within a NORM implementation, other header extensions may be
   defined.  Whatever content format is used for this purpose should
   ensure that maximum possible suppression state is conveyed to the
   receiver set.

baseline NORM-CC operation. If other congestion control mechanisms are used within a NORM implementation, other header extensions may be defined. Whatever content format is used for this purpose should ensure that maximum possible suppression state is conveyed to the receiver set.

5.5.  Additional Protocol Mechanisms

5.5. Additional Protocol Mechanisms

   In addition to the principal function of data content transmission
   and repair, there are some other protocol mechanisms that help NORM
   to adapt to network conditions and play fairly with other coexistent
   protocols.

In addition to the principal function of data content transmission and repair, there are some other protocol mechanisms that help NORM to adapt to network conditions and play fairly with other coexistent protocols.

5.5.1.  Greatest Round-trip Time Collection

5.5.1. Greatest Round-trip Time Collection

   For NORM receivers to appropriately scale backoff timeouts and the
   senders to use proper corresponding timeouts, the participants must
   agree on a common timeout basis.  Each NORM sender monitors the
   round-trip time of active receivers and determines the group greatest
   round-trip time (GRTT).  The 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, the
   sender periodically sends NORM_CMD(CC) messages that contain a
   locally generated timestamp.  Receivers are expected to record this
   timestamp along with the time the NORM_CMD(CC) message is received.
   Then, when the receivers generate feedback messages to the sender, an
   adjusted version of the sender timestamp is embedded in the feedback
   message (NORM_NACK or NORM_ACK).  The adjustment adds the amount of
   time the receiver held the timestamp before generating its response.
   Upon receipt of this adjusted timestamp, the sender is able to
   calculate the round-trip time to that receiver.

For NORM receivers to appropriately scale backoff timeouts and the senders to use proper corresponding timeouts, the participants must agree on a common timeout basis. Each NORM sender monitors the round-trip time of active receivers and determines the group greatest round-trip time (GRTT). The 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, the sender periodically sends NORM_CMD(CC) messages that contain a locally generated timestamp. Receivers are expected to record this timestamp along with the time the NORM_CMD(CC) message is received. Then, when the receivers generate feedback messages to the sender, an adjusted version of the sender timestamp is embedded in the feedback message (NORM_NACK or NORM_ACK). The adjustment adds the amount of time the receiver held the timestamp before generating its response. Upon receipt of this adjusted timestamp, the sender is able to calculate the round-trip time to that receiver.

   The round-trip time for each receiver is fed into an algorithm that
   weights and smoothes the values for a conservative estimate of the
   GRTT.  The algorithm and methodology are described in the NORM
   Building Block document [4] in the section entitled "One-to-Many
   Sender GRTT Measurement".  A conservative estimate helps feedback
   suppression at a small cost in overall protocol repair delay.  The
   sender's current estimate of GRTT is advertised in the "grtt" field
   found in all NORM sender messages.  The advertised GRTT is also
   limited to a minimum of the nominal inter-packet transmission time
   given the sender's current transmission rate and system clock
   granularity.  The reason for this additional limit is to keep the
   receiver somewhat "event driven" by making sure the sender has had
   adequate time to generate any response to repair requests from
   receivers given transmit rate limitations due to congestion control
   or configuration.

The round-trip time for each receiver is fed into an algorithm that weights and smoothes the values for a conservative estimate of the GRTT. The algorithm and methodology are described in the NORM Building Block document [4] in the section entitled "One-to-Many Sender GRTT Measurement". A conservative estimate helps feedback suppression at a small cost in overall protocol repair delay. The sender's current estimate of GRTT is advertised in the "grtt" field found in all NORM sender messages. The advertised GRTT is also limited to a minimum of the nominal inter-packet transmission time given the sender's current transmission rate and system clock granularity. The reason for this additional limit is to keep the receiver somewhat "event driven" by making sure the sender has had adequate time to generate any response to repair requests from receivers given transmit rate limitations due to congestion control or configuration.

Adamson, et al.               Experimental                     [Page 63]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 63] RFC 3940 NORM Protocol November 2004

   When the NORM-CC Rate header extension is present in NORM_CMD(CC)
   messages, the receivers respond to NORM_CMD(CC) messages as described
   in Section 5.5.2, "NORM Congestion Control Operation".  The
   NORM_CMD(CC) messages are periodically generated by the sender as
   described for congestion control operation.  This provides for
   proactive, but controlled, feedback from the group in the form of
   NORM_ACK messages.  This provides for GRTT feedback even if no
   NORM_NACK messages are being sent.  If operating without congestion
   control in a closed network, the NORM_CMD(CC) messages may be sent
   periodically without the NORM-CC Rate header extension.  In this
   case, receivers will only provide GRTT measurement feedback when
   NORM_NACK messages are generated since no NORM_ACK messages are
   generated.  In this case, the NORM_CMD(CC) messages may be sent less
   frequently, perhaps as little as once per minute, to conserve network
   capacity.  Note that the NORM-CC Rate header extension may also be
   used proactively solicit RTT feedback from the receiver group per
   congestion control operation even though the sender may not be
   conducting congestion control rate adjustment.  NORM operation
   without congestion control should be considered only in closed
   networks.

When the NORM-CC Rate header extension is present in NORM_CMD(CC) messages, the receivers respond to NORM_CMD(CC) messages as described in Section 5.5.2, "NORM Congestion Control Operation". The NORM_CMD(CC) messages are periodically generated by the sender as described for congestion control operation. This provides for proactive, but controlled, feedback from the group in the form of NORM_ACK messages. This provides for GRTT feedback even if no NORM_NACK messages are being sent. If operating without congestion control in a closed network, the NORM_CMD(CC) messages may be sent periodically without the NORM-CC Rate header extension. In this case, receivers will only provide GRTT measurement feedback when NORM_NACK messages are generated since no NORM_ACK messages are generated. In this case, the NORM_CMD(CC) messages may be sent less frequently, perhaps as little as once per minute, to conserve network capacity. Note that the NORM-CC Rate header extension may also be used proactively solicit RTT feedback from the receiver group per congestion control operation even though the sender may not be conducting congestion control rate adjustment. NORM operation without congestion control should be considered only in closed networks.

5.5.2.  NORM Congestion Control Operation

5.5.2. NORM Congestion Control Operation

   This section describes baseline congestion control operation for the
   NORM protocol (NORM-CC).  The supporting NORM message formats and
   approach described here are an adaptation of the equation-based TCP-
   Friendly Multicast Congestion Control (TFMCC) approach described in
   [19].  This congestion control scheme is REQUIRED for operation
   within the general Internet unless the NORM implementation is adapted
   to use another IETF-sanctioned reliable multicast congestion control
   mechanism (e.g., PGMCC [20]).  With this TFMCC-based approach, the
   transmissions of NORM senders are controlled in a rate-based manner
   as opposed to window-based congestion control algorithms as in TCP.
   However, it is possible that the NORM protocol message set may
   alternatively be used to support a window-based multicast congestion
   control scheme such as PGMCC.  The details of that alternative may be
   described separately or in a future revision of this document.  In
   either case (rate-based TFMCC or window-based PGMCC), successful
   control of sender transmission depends upon collection of sender-to-
   receiver packet loss estimates and RTTs to identify the congestion
   control bottleneck path(s) within the multicast topology and adjust
   the sender rate accordingly.  The receiver with loss and RTT
   estimates that correspond to the lowest result transmission rate is
   identified as the "current limiting receiver" (CLR).

This section describes baseline congestion control operation for the NORM protocol (NORM-CC). The supporting NORM message formats and approach described here are an adaptation of the equation-based TCP- Friendly Multicast Congestion Control (TFMCC) approach described in [19]. This congestion control scheme is REQUIRED for operation within the general Internet unless the NORM implementation is adapted to use another IETF-sanctioned reliable multicast congestion control mechanism (e.g., PGMCC [20]). With this TFMCC-based approach, the transmissions of NORM senders are controlled in a rate-based manner as opposed to window-based congestion control algorithms as in TCP. However, it is possible that the NORM protocol message set may alternatively be used to support a window-based multicast congestion control scheme such as PGMCC. The details of that alternative may be described separately or in a future revision of this document. In either case (rate-based TFMCC or window-based PGMCC), successful control of sender transmission depends upon collection of sender-to- receiver packet loss estimates and RTTs to identify the congestion control bottleneck path(s) within the multicast topology and adjust the sender rate accordingly. The receiver with loss and RTT estimates that correspond to the lowest result transmission rate is identified as the "current limiting receiver" (CLR).

Adamson, et al.               Experimental                     [Page 64]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 64] RFC 3940 NORM Protocol November 2004

   As described in [21], a steady-state sender transmission rate, to be
   "friendly" with competing TCP flows can be calculated as:

As described in [21], a steady-state sender transmission rate, to be "friendly" with competing TCP flows can be calculated as:

                                       S
Rsender = --------------------------------------------------------------
          tRTT * (sqrt((2/3)*p) + 12 * sqrt((3/8)*p) * p *
          (1 + 32*(p^2)))

S Rsender = -------------------------------------------------------------- tRTT * (sqrt((2/3)*p) + 12 * sqrt((3/8)*p) * p * (1 + 32*(p^2)))

where

where

   S = Nominal transmitted packet size. (In NORM, the "nominal"
       packet size can be determined by the sender as an
       exponentially weighted moving average (EWMA) of transmitted
       packet sizes to account for variable message sizes).

S = Nominal transmitted packet size. (In NORM, the "nominal" packet size can be determined by the sender as an exponentially weighted moving average (EWMA) of transmitted packet sizes to account for variable message sizes).

tRTT = The RTT estimate of the current "current limiting receiver"
       (CLR).

tRTT = The RTT estimate of the current "current limiting receiver" (CLR).

   p = The loss event fraction of the CLR.

p = The loss event fraction of the CLR.

   To support congestion control feedback collection and operation, the
   NORM sender periodically transmits NORM_CMD(CC) command messages.
   NORM_CMD(CC) messages are multiplexed with NORM data and repair
   transmissions and serve several purposes:

To support congestion control feedback collection and operation, the NORM sender periodically transmits NORM_CMD(CC) command messages. NORM_CMD(CC) messages are multiplexed with NORM data and repair transmissions and serve several purposes:

   1) Stimulate explicit feedback from the general receiver set to
      collect congestion control information.

1) Stimulate explicit feedback from the general receiver set to collect congestion control information.

   2) Communicate state to the receiver set on the sender's current
      congestion control status including details of the CLR.

2) Communicate state to the receiver set on the sender's current congestion control status including details of the CLR.

   3) Initiate rapid (immediate) feedback from the CLR in order to
      closely track the dynamics of congestion control for that current
      "worst path" in the group multicast topology.

3) Initiate rapid (immediate) feedback from the CLR in order to closely track the dynamics of congestion control for that current "worst path" in the group multicast topology.

   The format of the NORM_CMD(CC) message is describe in Section 4.2.3
   of this document.  The NORM_CMD(CC) message contains information to
   allow measurement of RTTs, to inform the group of the congestion
   control CLR, and to provide feedback of individual RTT measurements
   to the receivers in the group.  The NORM_CMD(CC) also provides for
   exciting feedback from OPTIONAL "potential limiting receiver" (PLR)
   nodes that may be determined administratively or possibly
   algorithmically based on congestion control feedback.  PLR nodes are
   receivers that have been identified to have potential for (perhaps
   soon) becoming the CLR and thus immediate, up-to-date feedback is
   beneficial for congestion control performance.  The details of PLR
   selection are not discussed in this document.

The format of the NORM_CMD(CC) message is describe in Section 4.2.3 of this document. The NORM_CMD(CC) message contains information to allow measurement of RTTs, to inform the group of the congestion control CLR, and to provide feedback of individual RTT measurements to the receivers in the group. The NORM_CMD(CC) also provides for exciting feedback from OPTIONAL "potential limiting receiver" (PLR) nodes that may be determined administratively or possibly algorithmically based on congestion control feedback. PLR nodes are receivers that have been identified to have potential for (perhaps soon) becoming the CLR and thus immediate, up-to-date feedback is beneficial for congestion control performance. The details of PLR selection are not discussed in this document.

Adamson, et al.               Experimental                     [Page 65]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 65] RFC 3940 NORM Protocol November 2004

5.5.2.1.  NORM_CMD(CC) Transmission

5.5.2.1. NORM_CMD(CC) Transmission

   The NORM_CMD(CC) message is transmitted periodically by the sender
   along with its normal data transmission.  Note that the repeated
   transmission of NORM_CMD(CC) messages may be initiated some time
   before transmission of user data content at session startup.  This
   may be done to collect some estimation of the current state of the
   multicast topology with respect to group and individual RTT and
   congestion control state.

The NORM_CMD(CC) message is transmitted periodically by the sender along with its normal data transmission. Note that the repeated transmission of NORM_CMD(CC) messages may be initiated some time before transmission of user data content at session startup. This may be done to collect some estimation of the current state of the multicast topology with respect to group and individual RTT and congestion control state.

   A NORM_CMD(CC) message is immediately transmitted at sender startup.
   The interval of subsequent NORM_CMD(CC) message transmission is
   determined as follows:

A NORM_CMD(CC) message is immediately transmitted at sender startup. The interval of subsequent NORM_CMD(CC) message transmission is determined as follows:

   1) By default, the interval is set according to the current sender
      GRTT estimate.  A startup GRTT of 0.5 seconds is recommended when
      no feedback has yet been received from the group.

1) By default, the interval is set according to the current sender GRTT estimate. A startup GRTT of 0.5 seconds is recommended when no feedback has yet been received from the group.

   2) If a CLR has been identified (based on previous receiver
      feedback), the interval is the RTT between the sender and CLR.

2) If a CLR has been identified (based on previous receiver feedback), the interval is the RTT between the sender and CLR.

   3) Additionally, if the interval of nominal data message transmission
      is greater than the GRTT or RTT_clr interval, the NORM_CMD(CC)
      interval is set to this greater value.  This ensures that the
      transmission of this control message is not done to the exclusion
      of user data transmission.

3) Additionally, if the interval of nominal data message transmission is greater than the GRTT or RTT_clr interval, the NORM_CMD(CC) interval is set to this greater value. This ensures that the transmission of this control message is not done to the exclusion of user data transmission.

   The NORM_CMD(CC) "cc_sequence" field is incremented with each
   transmission of a NORM_CMD(CC) command.  The greatest "cc_sequence"
   recently received by receivers is included in their feedback to the
   sender.  This allows the sender to determine the "age" of feedback to
   assist in congestion avoidance.

The NORM_CMD(CC) "cc_sequence" field is incremented with each transmission of a NORM_CMD(CC) command. The greatest "cc_sequence" recently received by receivers is included in their feedback to the sender. This allows the sender to determine the "age" of feedback to assist in congestion avoidance.

   The NORM-CC Rate Header Extension is applied to the NORM_CMD(CC)
   message and the sender advertises its current transmission rate in
   the "send_rate" field.  The rate information is used by receivers to
   initialize loss estimation during congestion control startup or
   restart.

The NORM-CC Rate Header Extension is applied to the NORM_CMD(CC) message and the sender advertises its current transmission rate in the "send_rate" field. The rate information is used by receivers to initialize loss estimation during congestion control startup or restart.

   The "cc_node_list" contains a list of entries identifying receivers
   and their current congestion control state (status "flags", "rtt" and
   "loss" estimates).  The list may be empty if the sender has not yet
   received any feedback from the group.  If the sender has received
   feedback, the list will minimally contain an entry identifying the
   CLR.  A NORM_FLAG_CC_CLR flag value is provided for the "cc_flags"
   field to identify the CLR entry.  It is RECOMMENDED that the CLR
   entry be the first in the list for implementation efficiency.
   Additional entries in the list are used to provide sender-measured

The "cc_node_list" contains a list of entries identifying receivers and their current congestion control state (status "flags", "rtt" and "loss" estimates). The list may be empty if the sender has not yet received any feedback from the group. If the sender has received feedback, the list will minimally contain an entry identifying the CLR. A NORM_FLAG_CC_CLR flag value is provided for the "cc_flags" field to identify the CLR entry. It is RECOMMENDED that the CLR entry be the first in the list for implementation efficiency. Additional entries in the list are used to provide sender-measured

Adamson, et al.               Experimental                     [Page 66]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 66] RFC 3940 NORM Protocol November 2004

   individual RTT estimates to receivers in the group.  The number of
   additional entries in this list is dependent upon the percentage of
   control traffic the sender application is willing to send with
   respect to user data message transmissions.  More entries in the list
   may allow the sender to be more responsive to congestion control
   dynamics.  The length of the list may be dynamically determined
   according to the current transmission rate and scheduling of
   NORM_CMD(CC) messages.  The maximum length of the list corresponds to
   the sender's NormSegmentSize parameter for the session.  The
   inclusion of additional entries in the list based on receiver
   feedback are prioritized with following rules:

individual RTT estimates to receivers in the group. The number of additional entries in this list is dependent upon the percentage of control traffic the sender application is willing to send with respect to user data message transmissions. More entries in the list may allow the sender to be more responsive to congestion control dynamics. The length of the list may be dynamically determined according to the current transmission rate and scheduling of NORM_CMD(CC) messages. The maximum length of the list corresponds to the sender's NormSegmentSize parameter for the session. The inclusion of additional entries in the list based on receiver feedback are prioritized with following rules:

   1) Receivers that have not yet been provided RTT feedback get first
      priority.  Of these, those with the greatest loss fraction receive
      precedence for list inclusion.

1) Receivers that have not yet been provided RTT feedback get first priority. Of these, those with the greatest loss fraction receive precedence for list inclusion.

   2) Secondly, receivers that have previously been provided RTT are
      included with receivers yielding the lowest calculated congestion
      rate getting precedence.

2) Secondly, receivers that have previously been provided RTT are included with receivers yielding the lowest calculated congestion rate getting precedence.

   There are "cc_flag" values in addition to NORM_FLAG_CC_CLR that are
   used for other congestion control functions.  The NORM_FLAG_CC_PLR
   flag value is used to mark additional receivers from that the sender
   would like to have immediate, non-suppressed feedback.  These may be
   receivers that the sender algorithmically identified as potential
   future CLRs or that have been pre-configured as potential congestion
   control points in the network.  The NORM_FLAG_CC_RTT indicates the
   validity of the "cc_rtt" field for the associated receiver node.
   Normally, this flag will be set since the receivers in the list will
   typically be receivers from which the sender has received feedback.
   However, in the case that the NORM sender has been pre-configured
   with a set of PLR nodes, feedback from those receivers may not yet
   have been collected and thus the "cc_rtt" and "cc_rate" fields do not
   contain valid values when this flag is not set.

There are "cc_flag" values in addition to NORM_FLAG_CC_CLR that are used for other congestion control functions. The NORM_FLAG_CC_PLR flag value is used to mark additional receivers from that the sender would like to have immediate, non-suppressed feedback. These may be receivers that the sender algorithmically identified as potential future CLRs or that have been pre-configured as potential congestion control points in the network. The NORM_FLAG_CC_RTT indicates the validity of the "cc_rtt" field for the associated receiver node. Normally, this flag will be set since the receivers in the list will typically be receivers from which the sender has received feedback. However, in the case that the NORM sender has been pre-configured with a set of PLR nodes, feedback from those receivers may not yet have been collected and thus the "cc_rtt" and "cc_rate" fields do not contain valid values when this flag is not set.

5.5.2.2.  NORM_CMD(CC) Feedback Response

5.5.2.2. NORM_CMD(CC) Feedback Response

   Receivers explicitly respond to NORM_CMD(CC) messages in the form of
   a NORM_ACK(RTT) message.  The goal of the congestion control feedback
   is to determine the receivers with the lowest congestion control
   rates.  Receivers that are marked as CLR or PLR nodes in the
   NORM_CMD(CC) "cc_node_list" immediately provide feedback in the form
   of a NORM_ACK to this message.  When a NORM_CMD(CC) is received,
   non-CLR or non-PLR nodes initiate random feedback backoff timeouts
   similar to that used when the receiver initiates a repair cycle (see
   Section 5.3) in response to detection of data loss.  The backoff
   timeout for the congestion control response is generated as follows:

Receivers explicitly respond to NORM_CMD(CC) messages in the form of a NORM_ACK(RTT) message. The goal of the congestion control feedback is to determine the receivers with the lowest congestion control rates. Receivers that are marked as CLR or PLR nodes in the NORM_CMD(CC) "cc_node_list" immediately provide feedback in the form of a NORM_ACK to this message. When a NORM_CMD(CC) is received, non-CLR or non-PLR nodes initiate random feedback backoff timeouts similar to that used when the receiver initiates a repair cycle (see Section 5.3) in response to detection of data loss. The backoff timeout for the congestion control response is generated as follows:

Adamson, et al.               Experimental                     [Page 67]

RFC 3940                     NORM Protocol                 November 2004

Adamson, et al. Experimental [Page 67] RFC 3940 NORM Protocol November 2004

           T_backoff = RandomBackoff(K*GRTTsender, GSIZEsender)

T_backoff = RandomBackoff(K*GRTTsender, GSIZEsender)

   The "RandomBackoff()" algorithm provides a truncated exponentially
   distributed random number and is described in the NORM Building Block
   document [4].  The same backoff factor K = Ksender MAY be used as
   with NORM_NACK suppression.  However, in cases where the application
   purposefully specifies a very small Ksender backoff factor to
   minimize the NACK repair process latency (trading off group size
   scalability), it may still be desirable to maintain a larger backoff
   factor for congestion control feedback, since there may often be a
   larger volume of congestion control feedback than NACKs in many cases
   and congestion control feedback latency may be tolerable where
   reliable delivery latency is not.  As previously noted, a backoff
   factor value of K = 4 is generally recommended for ASM operation and
   K = 6 for SSM operation.  A receiver SHALL cancel the backoff timeout
   and thus its pending transmission of a NORM_ACK(RTT) message under
   the following conditions:

The "RandomBackoff()" algorithm provides a truncated exponentially distributed random number and is described in the NORM Building Block document [4]. The same backoff factor K = Ksender MAY be used as with NORM_NACK suppression. However, in cases where the application purposefully specifies a very small Ksender backoff factor to minimize the NACK repair process latency (trading off group size scalability), it may still be desirable to maintain a larger backoff factor for congestion control feedback, since there may often be a larger volume of congestion control feedback than NACKs in many cases and congestion control feedback latency may be tolerable where reliable delivery latency is not. As previously noted, a backoff factor value of K = 4 is generally recommended for ASM operation and K = 6 for SSM operation. A receiver SHALL cancel the backoff timeout and thus its pending transmission of a NORM_ACK(RTT) message under the following conditions:

   1) The receiver generates another feedback message (NORM_NACK or
      other NORM_ACK) before the congestion control feedback timeout
      expires,

1) The receiver generates another feedback message (NORM_NACK or other NORM_ACK) before the congestion control feedback timeout expires,

   2) A NORM_CMD(CC) or other receiver feedback with an ordinally
      greater "cc_sequence" field value is received before the
      congestion control feedback timeout expires (this is similar to
      the TFMCC feedback round number),

2) A NORM_CMD(CC) or other receiver feedback with an ordinally greater "cc_sequence" field value is received before the congestion control feedback timeout expires (this is similar to the TFMCC feedback round number),

   3) When the T_backoff is greater than 1*GRTT.  This prevents NACK
      implosion in the event of sender or network failure,

3) When the T_backoff is greater than 1*GRTT. This prevents NACK implosion in the event of sender or network failure,

   4) "Suppressing" congestion control feedback is heard from another
      receiver (in a NORM_ACK or NORM_NACK) or via a
      NORM_CMD(REPAIR_ADV) message from the sender.  The local
      receiver's feedback is "suppressed" if the rate of the competing
      feedback (Rfb) is sufficiently close to or less than the local
      receiver's calculated rate (Rcalc).  The local receiver's feedback
      is canceled when:

4) "Suppressing" congestion control feedback is heard from another receiver (in a NORM_ACK or NORM_NACK) or via a NORM_CMD(REPAIR_ADV) message from the sender. The local receiver's feedback is "suppressed" if the rate of the competing feedback (Rfb) is sufficiently close to or less than the local receiver's calculated rate (Rcalc). The local receiver's feedback is canceled when:

                             Rcalc > (0.9 * Rfb)

Rcalc > (0.9 * Rfb)

      Also note receivers that have not yet received an RTT measurement
      from the sender are suppressed only by other receivers that have
      not yet measured RTT.  Additionally, receivers whose RTT estimate
      has "aged" considerably (i.e., they haven't been included in the
      NORM_CMD(CC) "cc_node_list" in a long time) may wish to compete as
      a receiver with no prior RTT measurement after some expiration
      period.

また、送付者からRTT測定をまだ受けていない注意受信機がまだRTTを測定していない他の受信機だけによって抑圧されます。 さらに、RTT見積りがかなり(すなわち、それらは長い間のNORM_CMD(CC)「cc_ノード_リスト」に含まれていない)「年をとった」受信機はいつかの満了の期間の後に受信機として先のRTT測定なしで競争したがっているかもしれません。

Adamson, et al.               Experimental                     [Page 68]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [68ページ]実験的なRFC3940標準プロトコル2004年11月

   When the backoff timer expires, the receiver SHALL generate a
   NORM_ACK(RTT) message to provide feedback to the sender and group.
   This message may be multicast to the group for most effective
   suppression in ASM topologies or unicast to the sender depending upon
   how the NORM protocol is deployed and configured.

backoffタイマが期限が切れると、受信機SHALLは送付者とグループにフィードバックを提供するNORM_ACK(RTT)メッセージを発生させます。 このメッセージは、ASM topologiesで最も効果的な抑圧のためのグループへのマルチキャストかNORMプロトコルがどう配備されて、構成されるかを当てにする送付者へのユニキャストであるかもしれません。

   Whenever any feedback is generated (including this NORM_ACK(RTT)
   message), receivers include an adjusted version of the sender
   timestamp from the most recently received NORM_CMD(CC) message and
   the "cc_sequence" value from that command in the applicable NORM_ACK
   or NORM_NACK message fields.  For NORM-CC operation, any generated
   feedback message SHALL also contain the NORM-CC Feedback header
   extension.  The receiver provides its current "cc_rate" estimate,
   "cc_loss" estimate, "cc_rtt" if known, and any applicable "cc_flags"
   via this header extension.

どんなフィードバックも発生する(このNORM_ACK(RTT)メッセージを含んでいて)ときはいつも、受信機は最も最近容認されたNORM_CMD(CC)メッセージからの送付者タイムスタンプと適切なNORM_ACKかNORM_ナックメッセージ分野のそのコマンドからの「cc_系列」価値の調整されたバージョンを含んでいます。 また、NORM-CC操作のために、どんな発生しているフィードバックメッセージSHALLもNORM-CC Feedbackヘッダー拡張子を含んでいます。 受信機が電流を供給する、「知られているなら_が」 見積り、「cc_損失」見積り、「cc_はrttする」と評定するcc、およびこのヘッダーを通したどんな適切な「cc_旗」拡大。

   During slow start (when the receiver has not yet detected loss from
   the sender), the receiver uses a value equal to two times its
   measured rate from the sender in the "cc_rate" field.  For steady-
   state congestion control operation, the receiver "cc_rate" value is
   from the equation-based value using its current loss event estimate
   and sender<->receiver RTT information.  (The GRTT is used when the
   receiver has not yet measured its individual RTT).

遅れた出発(受信機がまだ送付者からの損失を検出していないとき)の間、受信機は「cc_レート」分野で送付者からの従量制の2倍と等しい値を使用します。 安定した状態に、受信機RTT情報は、方程式ベースの値からその当期損失イベント見積りと送付者<->を使用することで来ています混雑制御機能、受信機「cc_レート」が、評価する。 (受信機がまだ個々のRTTを測定していないとき、GRTTは使用されています。)

   The "cc_loss" field value reflects the receiver's current loss event
   estimate with respect to the sender in question.

「cc_損失」分野価値は問題の送付者に関して受信機の当期損失イベント見積りを反映します。

   When the receiver has a valid individual RTT measurement, it SHALL
   include this value in the "cc_rtt" field.  The NORM_FLAG_CC_RTT MUST
   be set when the "cc_rtt" field is valid.

いつ受信機には、有効な個々のRTT測定があって、それは「cc_rtt」のこの値がさばくSHALLインクルードであるか。 「cc_rtt」分野がそうであるセットが有効であったなら、NORM_FLAG_は_RTT MUSTをCCします。

   After a congestion control feedback message is generated or when the
   feedback is suppressed, a non-CLR receiver begins a "holdoff" timeout
   period during which it will restrain itself from providing congestion
   control feedback, even if NORM_CMD(CC) messages are received from the
   sender (unless the receive becomes marked as a CLR or PLR node).  The
   value of this holdoff timeout (T_ccHoldoff) period is:

非CLR受信機は輻輳制御フィードバックメッセージが発生した後かフィードバックが抑圧されること、時それが輻輳制御フィードバックを提供するのではやる心を抑える"holdoff"タイムアウト時間を始めます、送付者からNORM_CMD(CC)メッセージを受け取っても(受信、CLRかPLRノードとして著しくなる、) このholdoffタイムアウト(T_ccHoldoff)の期間の値は以下の通りです。

                          T_ccHoldoff = (K*GRTT)

T_ccHoldoff=(K*GRTT)

   Thus, non-CLR receivers are constrained to providing explicit
   congestion control feedback once per K*GRTT intervals.  Note,
   however, that as the session progresses, different receivers will be
   responding to different NORM_CMD(CC) messages and there will be
   relatively continuous feedback of congestion control information
   while the sender is active.

したがって、非CLR受信機はK*GRTT間隔に一度明白な輻輳制御フィードバックを提供するのに抑制されます。 異なった受信機は異なったNORM_CMD(CC)メッセージに応じるでしょう、そして、しかしながら、セッションが進歩をするとき、それに注意してください、そして、送付者が活発である間、混雑制御情報の比較的連続したフィードバックがあるでしょう。

Adamson, et al.               Experimental                     [Page 69]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [69ページ]実験的なRFC3940標準プロトコル2004年11月

5.5.2.3.  Congestion Control Rate Adjustment

5.5.2.3. 輻輳制御料金の調整

   During steady-state operation, the sender will directly adjust its
   transmission rate to the rate indicated by the feedback from its
   currently selected CLR.  As noted in [19], the estimation of
   parameters (loss and RTT) for the CLR will generally constrain the
   rate changes possible within acceptable bounds.  For rate increases,
   the sender SHALL observe a maximum rate of increase of one packet per
   RTT at all times during steady-state operation.

定常状態操作の間、送付者は直接現在選択されたCLRからフィードバックで示されたレートに通信速度を調整するでしょう。 一般に、[19]に述べられるように、CLRのためのパラメタ(損失とRTT)に関する見積りは許容できる領域の中で可能なレート変化を抑制するでしょう。 増税に関しては、送付者SHALLは定常状態操作の間、いつも最高率の1RTTあたり1つのパケットの増加を観測します。

   The sender processes congestion control feedback from the receivers
   and selects the CLR based on the lowest rate receiver.  Receiver
   rates are either determined directly from the slow start "cc_rate"
   provided by the receiver in the NORM-CC Feedback header extension or
   by performing the equation-based calculation using individual RTT and
   loss estimates ("cc_loss") as feedback is received.

送付者は、受信機から輻輳制御フィードバックを処理して、最も低いレート受信機に基づくCLRを選択します。受信機レートが、直接受信機によってNORM-CC Feedbackヘッダー拡張子に提供された遅れた出発「cc_レート」から決定するか、または方程式ベースの計算をフィードバックが受け取られているので、個々のRTTと損失見積り(「cc_損失」)を使用することで実行のどちらかであることによって、あります。

   The sender can calculate a current RTT for a receiver (RTT_rcvrNew)
   using the "grtt_response" timestamp included in feedback messages.
   When the "cc_rtt" value in a response is not valid, the sender simply
   uses this RTT_rcvrNew value as the receiver's current RTT (RTT_rcvr).
   For non-CLR and non-PLR receivers, the sender can use the "cc_rtt"
   value provided in the NORM-CC Feedback header extension as the
   receiver's previous RTT measurement (RTT_rcvrPrev) to smooth
   according to:

送付者は、受信機(RTT_rcvrNew)のためにフィードバックメッセージに含まれていた「grtt_応答」タイムスタンプを使用することで現在のRTTについて計算できます。 応答における「cc_rtt」値が有効でないときに、送付者は受信機の現在のRTT(RTT_rcvr)として単にこのRTT_rcvrNew値を使用します。 非CLRの、そして、非PLRの受信機のために、送付者は以下に従って整える受信機の前のRTT測定(RTT_rcvrPrev)としてNORM-CC Feedbackヘッダー拡張子に提供された「cc_rtt」値を使用できます。

             RTT_rcvr = 0.5 * RTT_rcvrPrev + 0.5 * RTT_rcvrNew

RTT_rcvrは0.5*RTT_rcvrPrev+0.5*RTT_rcvrNewと等しいです。

   For CLR receivers where feedback is received more regularly, the
   sender SHOULD maintain a more smoothed RTT estimate upon new feedback
   from the CLR where:

フィードバックが、より定期的に受け取られるCLR受信機に関しては、送付者SHOULDはCLRからどこを新しいフィードバックに関するさらに平坦なRTT見積りに維持するか:

                RTT_clr = 0.9 * RTT_clr + 0.1 * RTT_clrNew

RTT_clrは0.9*RTT_clr+0.1*RTT_clrNewと等しいです。

   "RTT_clrNew" is the new RTT calculated from the timestamp in the
   feedback message received from the CLR.  The RTT_clr is initialized
   to RTT_clrNew on the first feedback message received.  Note that the
   same procedure is observed by the sender for PLR receivers and that
   if a PLR is "promoted" to CLR status, the smoothed estimate can be
   continued.

「RTT_clrNew」はCLRから受け取られたフィードバックメッセージのタイムスタンプから計算された新しいRTTです。 RTT_clrは最初のフィードバックメッセージのclrNewが受けたRTT_に初期化されます。 送付者がPLR受信機のために同じ手順を観測して、PLRがCLR状態に「促進される」なら、平坦な見積りを続けることができることに注意してください。

   There are some additional periods besides steady-state operation that
   need to be considered in NORM-CC operation.  These periods are:

定常状態操作以外にNORM-CC操作で考えられる必要があるいくつかの追加期間があります。 これらの期間は以下の通りです。

   1) during session startup,

1) セッション始動の間

   2) when no feedback is received from the CLR, and

そして2) CLRからフィードバックを全く受け取らないとき。

Adamson, et al.               Experimental                     [Page 70]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [70ページ]実験的なRFC3940標準プロトコル2004年11月

   3) when the sender has a break in data transmission.

3) 送付者がデータ伝送で休憩するとき。

   During session startup, the congestion control operation SHALL
   observe a "slow start" procedure to quickly approach its fair
   bandwidth share.  An initial sender startup rate is assumed where:

セッション始動の間、混雑制御機能SHALLは、すばやく公正な帯域幅株にアプローチするために「遅れた出発」手順を観測します。 初期の送付者始動率はどこであるかと思われます:

   Rinitial = MIN(NormSegmentSize / GRTT, NormSegmentSize) bytes/second.

Rinitial=MIN(NormSegmentSize / GRTT、NormSegmentSize)バイト/2番目。

   The rate is increased only when feedback is received from the
   receiver set.  The "slow start" phase proceeds until any receiver
   provides feedback indicating that loss has occurred.  Rate increase
   during slow start is applied as:

受信機セットからフィードバックを受け取るときだけ、レートは増加しています。 どんな受信機も損失が発生したのを示すフィードバックを提供するまで、「遅れた出発」フェーズは続きます。 遅れた出発の間の増税は以下として適用されます。

                             Rnew = Rrecv_min

Rnew=Rrecv_分

   where "Rrecv_min" is the minimum reported receiver rate in the
   "cc_rate" field of congestion control feedback messages received from
   the group.  Note that during "slow start", receivers use two times
   their measured rate from the sender in the "cc_rate" field of their
   feedback.  Rate increase adjustment is limited to once per GRTT
   during slow start.

「Rrecv_分」が輻輳制御の「cc_レート」分野の最小の報告された受信機レートであるところでは、フィードバックメッセージはグループから受信されました。 「遅れた出発」の間受信機がそれらのフィードバックの「cc_レート」分野で送付者からそれらの従量制の2倍を使用することに注意してください。 調整が遅れた出発の間に1GRTTに一度制限される増加を評定してください。

   If the CLR or any receiver intends to leave the group, it will set
   the NORM_FLAG_CC_LEAVE in its congestion control feedback message as
   an indication that the sender should not select it as the CLR.  When
   the CLR changes to a lower rate receiver, the sender should
   immediately adjust to the new lower rate.  The sender is limited to
   increasing its rate at one additional packet per RTT towards any new,
   higher CLR rate.

CLRかどれか受信機が仲間から抜けるつもりであると、それは送付者がCLRとしてそれを選定するべきでないという指示として輻輳制御フィードバックメッセージに_NORM_FLAG_CC LEAVEを設定するでしょう。 CLRが低料金受信機に変化すると、送付者はすぐに、新しい低料金に適応するべきです。 送付者は1RTTあたり1つの追加パケットでどんな新しくて、より高いCLRレートに向かってもレートを増加させるのに制限されます。

   The sender should also track the "age" of the feedback it has
   received from the CLR by comparing its current "cc_sequence" value
   (Seq_sender) to the last "cc_sequence" value received from the CLR
   (Seq_clr).  As the "age" of the CLR feedback increases with no new
   feedback, the sender SHALL begin reducing its rate once per RTT_clr
   as a congestion avoidance measure.

また、送付者はそれがCLRから現在の「cc_系列」値(Seq_送付者)をCLR(Seq_clr)から最後の「cc_系列」対価領収にたとえることによって受けたフィードバックの「時代」を追跡するべきです。 CLRフィードバックの「時代」が新しいフィードバックなしで増加するのに従って、送付者SHALLは輻輳回避測定としてレートをRTT_clrに一度低下させ始めます。

   The following algorithm is used to determine the decrease in sender
   rate (Rsender bytes/sec) as the CLR feedback, unexpectedly,
   excessively ages:

以下のアルゴリズムはCLRフィードバックが不意に過度に年をとるとき送付者レート(Rsenderバイト/秒)の減少を決定するのに使用されます:

   Age = Seq_sender - Seq_clr;
   if (Age > 4) Rsender = Rsender * 0.5;

時代はSeq_送付者と等しいです--Seq_clr (時代>4)RsenderがRsender*0.5と等しいなら。

   This rate reduction is limited to the lower bound on NORM
   transmission rate.  After NORM_ROBUST_FACTOR consecutive NORM_CMD(CC)
   rounds without any feedback from the CLR, the sender SHOULD assume
   the CLR has left the group and pick the receiver with the next lowest

このレート減少はNORM通信速度における下界に制限されます。 CLRからの少しもフィードバックのないNORM_ROBUST_FACTORの連続したNORM_CMD(CC)ラウンドの後に、送付者SHOULDはCLRが仲間から抜けたと仮定して、次が最も低い状態で受信機を選びます。

Adamson, et al.               Experimental                     [Page 71]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [71ページ]実験的なRFC3940標準プロトコル2004年11月

   rate as the new CLR.  Note this assumes that the sender does not have
   explicit knowledge that the CLR intentionally left the group.  If no
   receiver feedback is received, the sender MAY wish to withhold
   further transmissions of NORM_DATA segments and maintain NORM_CMD(CC)
   transmissions only until feedback is detected.  After such a CLR
   timeout, the sender will be transmitting with a minimal rate and
   should return to slow start as described here for a break in data
   transmission.

新しいCLRをみなしてください。 これが、送付者にはCLRが故意にグループを出た形式知がないと仮定することに注意してください。 どんな受信機フィードバックも受け取られていないなら、送付者は、NORM_DATAセグメントのさらなる送信を差し控えて、フィードバックが検出されるまでしか、NORM_CMD(CC)トランスミッションを維持したがっていないかもしれません。 そのようなCLRタイムアウトの後に、送付者は、最小量のレートで伝わって、中断のためにここでデータ伝送で説明されるように遅れた出発に戻るべきです。

   When the sender has a break in its data transmission, it can continue
   to probe the group with NORM_CMD(CC) messages to maintain RTT
   collection from the group.  This will enable the sender to quickly
   determine an appropriate CLR upon data transmission restart.
   However, the sender should exponentially reduce its target rate to be
   used for transmission restart as time since the break elapses.  The
   target rate SHOULD be recalculated once per RTT_clr as:

送付者がデータ伝送で休憩するとき、それは、グループからのRTT収集を維持するNORM_CMD(CC)メッセージでグループを調べ続けることができます。 これは、送付者がデータ伝送再開のときにすぐに適切なCLRを決定するのを可能にするでしょう。 しかしながら、送付者は、中断が経過するのでトランスミッション再開に時間として使用されるために目標金利を指数関数的に低下させるべきです。 目標金利SHOULD、以下としてRTT_clrに一度再計算されます。

                         Rsender = Rsender * 0.5;

RsenderはRsender*0.5と等しいです。

   If the minimum NORM rate is reached, the sender should set the
   NORM_FLAG_START flag in its NORM_CMD(CC) messages upon restart and
   the group should observer "slow start" congestion control procedures
   until any receiver experiences a new loss event.

最小のNORMレートに達しているなら、送付者はどんな受信機も新しい損失出来事を経験するまで観察者「遅れた出発」混雑が手順を制御するならSTARTが再開とグループに関するNORM_CMD(CC)メッセージで旗を揚げさせるNORM_FLAG_を設定するべきです。

5.5.3.  NORM Positive Acknowledgment Procedure

5.5.3. 標準肯定応答手順

   NORM provides options for the source application to request positive
   acknowledgment (ACK) of NORM_CMD(FLUSH) and NORM_CMD(ACK_REQ)
   messages from members of the group.  There are some specific
   acknowledgment requests defined for the NORM protocol and a range of
   acknowledgment request types that are left to be defined by the
   application.  One predefined acknowledgment type is the
   NORM_ACK_FLUSH type.  This acknowledgment is used to determine if
   receivers have achieved completion of reliable reception up through a
   specific logical transmission point with respect to the sender's
   sequence of transmission.  The NORM_ACK_FLUSH acknowledgment may be
   used to assist in application flow control when the sender has
   information on a portion of the receiver set.  Another predefined
   acknowledgment type is NORM_ACK(CC), which is used to explicitly
   provide congestion control feedback in response to NORM_CMD(CC)
   messages transmitted by the sender for NORM-CC operation.  Note the
   NORM_ACK(CC) response does NOT follow the positive acknowledgment
   procedure described here.  The NORM_CMD(ACK_REQ) and NORM_ACK
   messages contain an "ack_type" field to identify the type of
   acknowledgment requested and provided.  A range of "ack_type" values
   is provided for application-defined use.  While the application is
   responsible for initiating the acknowledgment request and interprets
   application-defined "ack_type" values, the acknowledgment procedure

ソースアプリケーションがグループのメンバーからNORM_CMD(FLUSH)とNORM_CMD(ACK_REQ)メッセージの肯定応答(ACK)を要求するように、NORMはオプションを提供します。 NORMプロトコルのために定義されたいくつかの特定の確認要求とアプリケーションで定義されるのが残されるさまざまな確認要求タイプがあります。 1つの事前に定義された承認タイプがNORM_ACK_FLUSHタイプです。 この承認は、受信機が送付者のトランスミッションの系列に関して特定の論理的なトランスミッションポイントを通した信頼できるレセプションの完成を達成したかどうか決定するのに使用されます。 NORM_ACK_FLUSH承認は、送付者が受信機の一部の情報を設定させるとき、アプリケーションフロー制御を助けるのに使用されるかもしれません。 別の事前に定義された承認タイプはNORM_ACK(CC)です。(そのACKは、明らかにNORM-CC操作のために送付者によって送られたNORM_CMD(CC)メッセージに対応して輻輳制御フィードバックを提供するのに使用されます)。 NORM_ACK(CC)応答がここで説明された肯定応答手順に従わないことに注意してください。 NORM_CMD(ACK_REQ)とNORM_ACKメッセージは要求されていて、提供された承認のタイプを特定する「ack_タイプ」分野を含んでいます。 さまざまな「ack_タイプ」値をアプリケーションで定義された使用に提供します。 アプリケーションは、確認要求を開始するのに責任があって、アプリケーションで定義された「ack_タイプ」値、承認手順を解釈しますが

Adamson, et al.               Experimental                     [Page 72]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [72ページ]実験的なRFC3940標準プロトコル2004年11月

   SHOULD be conducted within the protocol implementation to take
   advantage of timing and transmission scheduling information available
   to the NORM transport.

SHOULD、プロトコル実現の中で行われて、NORM輸送に利用可能な情報の計画をするタイミングとトランスミッションを利用してください。

   The NORM positive acknowledgment procedure uses polling by the sender
   to query the receiver group for response.  Note this polling
   procedure is not intended to scale to very large receiver groups, but
   could be used in large group setting to query a critical subset of
   the group.  Either the NORM_CMD(ACK_REQ), or when applicable, the
   NORM_CMD(FLUSH) message is used for polling and contains a list of
   NormNodeIds for receivers that should respond to the command.  The
   list of receivers providing acknowledgment is determined by the
   source application with "a priori" knowledge of participating nodes
   or via some other application-level mechanism.

NORM肯定応答手順は、応答のために受信機グループについて質問するのに送付者による世論調査を使用します。 この世論調査手順を非常に大きい受信機グループに比例することを意図しませんでしたが、グループの批判的な部分集合について質問するのに大きいグループ設定で用いることができたことに注意してください。 NORM_CMD(ACK_REQ)であり、適切であるときに、NORM_CMD(FLUSH)メッセージは、コマンドに応じるはずである受信機のために、世論調査に使用されて、NormNodeIdsのリストを含んでいます。 承認を提供する受信機のリストはソースアプリケーションで参加ノードに関する「先験的な」知識かある他のアプリケーションレベルメカニズムで決定します。

   The ACK process is initiated by the sender that generates
   NORM_CMD(FLUSH) or NORM_CMD(ACK_REQ) messages in periodic "rounds".
   For NORM_ACK_FLUSH requests, the NORM_CMD(FLUSH) contain a
   "object_transport_id" and "fec_payload_id" denoting the watermark
   transmission point for which acknowledgment is requested.  This
   watermark transmission point is "echoed" in the corresponding fields
   of the NORM_ACK(FLUSH) message sent by the receiver in response.
   NORM_CMD(ACK_REQ) messages contain an "ack_id" field which is
   similarly "echoed" in response so that the sender may match the
   response to the appropriate request.

ACKの過程は周期的な「ラウンド」におけるNORM_CMD(FLUSH)かNORM_CMD(ACK_REQ)メッセージを発生させる送付者によって着手されます。 NORM_ACK_FLUSH要求のために、NORM_CMD(FLUSH)は、承認が要求されている水位標トランスミッションポイントを指示しながら、「物の_輸送_イド」と「fec_ペイロード_イド」を含んでいます。 この水位標トランスミッションポイントは受信機によって応答で送られたNORM_ACK(FLUSH)メッセージの対応する分野で「反響されます」。 NORM_CMD(ACK_REQ)メッセージは送付者が適切な要求への応答に合うことができるように応答で同様に「反響される」「ack_イド」分野を含んでいます。

   In response to the NORM_CMD(ACK_REQ), the listed receivers randomly
   spread NORM_ACK messages uniformly in time over a window of (1*GRTT).
   These NORM_ACK messages are typically unicast to the sender.  (Note
   that NORM_ACK(CC) messages SHALL be multicast or unicast in the same
   manner as NORM_NACK messages).

NORM_CMD(ACK_REQ)に対応して、記載された受信機は時間内に、手当たりしだいに一様に(1*GRTT)の窓の上にNORM_ACKメッセージを広げます。 通常、これらのNORM_ACKメッセージは送付者へのユニキャストです。 (NORM_ACK(CC)メッセージSHALLがNORM_ナックメッセージと同じ方法でマルチキャストかユニキャストであることに注意します。)

   The ACK process is self-limiting and avoids ACK implosion in that:

ACKの過程は、自己制限であり、それでACK内部破裂を避けます:

   1) Only a single NORM_CMD(ACK_REQ) message is generated once per
      (2*GRTT), and,

1) そして、独身のNORM_CMD(ACK_REQ)メッセージだけが(2*GRTT)に一度発生します。

   2) The size of the "acking_node_list" of NormNodeIds from which
      acknowledgment is requested is limited to a maximum of the sender
      NormSegmentSize setting per round of the positive acknowledgment
      process.

2) 承認が要求されるNormNodeIdsの「acking_ノード_リスト」のサイズは最大肯定応答の過程のラウンド単位でセットする送付者NormSegmentSizeに制限されます。

   Because the size of the included list is limited to the sender's
   NormSegmentSize setting, multiple NORM_CMD(ACK_REQ) rounds may be
   required to achieve responses from all receivers specified.  The
   content of the attached NormNodeId list will be dynamically updated
   as this process progresses and NORM_ACK responses are received from
   the specified receiver set.  As the sender receives valid responses

含まれているリストのサイズが送付者のNormSegmentSize設定に制限されるので、複数のNORM_CMD(ACK_REQ)ラウンドが受信機が指定したすべてから応答を達成するのに必要であるかもしれません。 この過程が進歩をするとき、ダイナミックに添付のNormNodeIdリストの中身をアップデートするでしょう、そして、指定された受信機セットからNORM_ACK応答を受けます。 送付者が有効回答を受けるので

Adamson, et al.               Experimental                     [Page 73]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [73ページ]実験的なRFC3940標準プロトコル2004年11月

   (i.e., matching watermark point or "ack_id") from receivers, it SHALL
   eliminate those receivers from the subsequent NORM_CMD(ACK_REQ)
   message "acking_node_list" and add in any pending receiver
   NormNodeIds while keeping within the NormSegmentSize limitation of
   the list size.  Each receiver is  queried a maximum number of times
   (NORM_ROBUST_FACTOR, by default).  Receivers not responding within
   this number of repeated requests are removed from the payload list to
   make room for other potential receivers pending acknowledgment.  The
   transmission of the NORM_CMD(ACK_REQ) is repeated until no further
   responses are required or until the repeat threshold is exceeded for
   all pending receivers.  The transmission of NORM_CMD(ACK_REQ) or
   NORM_CMD(FLUSH) messages to conduct the positive acknowledgment
   process is multiplexed with ongoing sender data transmissions.
   However, the NORM_CMD(FLUSH) positive acknowledgment process may be
   interrupted in response to negative acknowledgment repair requests
   (NACKs) received from receivers during the acknowledgment period.
   The NORM_CMD(FLUSH) positive acknowledgment process is restarted for
   receivers pending acknowledgment once any the repairs have been
   transmitted.

受信機からの(すなわち、合っている水位標ポイントか「ack_イド」)、それ、SHALLは「acking_ノード_リスト」というその後のNORM_CMD(ACK_REQ)メッセージからそれらの受信機を排除して、リストサイズのNormSegmentSize制限を制限している間、どんな未定の受信機NormNodeIdsも加えます。 各受信機は質問されたa最大数の回(デフォルトでNORM_ROBUST_FACTOR)です。 この数の再三の要求の中で応じない受信機は、承認まで他の潜在的受信機に場所を開けるためにペイロードリストから取り外されます。 さらなる応答は全く必要でない、または反復敷居がすべての未定の受信機のために超えられるまで、NORM_CMD(ACK_REQ)のトランスミッションが繰り返されます。 進行中の送付者データ伝送で肯定応答の過程を行うNORM_CMD(ACK_REQ)かNORM_CMD(FLUSH)メッセージの伝達を多重送信します。 しかしながら、NORM_CMD(FLUSH)肯定応答の過程は承認の期間、受信機から受け取られた否定応答修理要求(NACKs)に対応して中断されるかもしれません。 修理がいったんいくらか伝えられると、NORM_CMD(FLUSH)肯定応答の過程は承認まで受信機のために再開されます。

   In the case of NORM_CMD(FLUSH) commands with an attached
   "acking_node_list", receivers will not ACK until they have received
   complete transmission of all data up to and including the given
   watermark transmission point.  All receivers SHALL interpret the
   watermark point provided in the request NACK for repairs if needed as
   for NORM_CMD(FLUSH) commands with no attached "acking_node_list".

付属「acking_ノード_リスト」、受信機によるCMD(FLUSH)コマンドがそうしないNORM_の場合では、与えられた水位標トランスミッションポイントを含めてACKはすべてのデータの伝達を受信するまで終了します。 NORM_CMD(FLUSH)のように必要であるなら修理のためのナックが要求で付属「acking_ノード_リスト」なしで命令するなら、すべての受信機SHALLが水位標ポイントを解釈します。

5.5.4.  Group Size Estimate

5.5.4. グループサイズ見積り

   NORM sender messages contain a "gsize" field that is a representation
   of the group size and is used in scaling random backoff timer ranges.
   The use of the group size estimate within the NORM protocol does not
   require a precise estimation and works reasonably well if the
   estimate is within an order of magnitude of the actual group size.
   By default, the NORM sender group size estimate may be
   administratively configured.  Also, given the expected scalability of
   the NORM protocol for general use, a default value of 10,000 is
   recommended for use as the group size estimate.

NORM送付者メッセージはグループサイズの表現であり、無作為のbackoffタイマ範囲をスケーリングする際に使用される"gsize"分野を含んでいます。 実際のグループサイズの1桁以内に見積りがあるなら、NORMプロトコルの中のグループサイズ見積りの使用は、正確な見積りを必要としないで、合理的にうまくいきます。 デフォルトで、NORM送付者グループサイズ見積りは行政上構成されるかもしれません。 また、一般的使用のためのNORMプロトコルの予想されたスケーラビリティを考えて、1万のデフォルト値は使用のためにグループサイズ見積りとして推薦されます。

   It is possible that group size may be algorithmically approximated
   from the volume of congestion control feedback messages which follow
   the exponentially weighted random backoff.  However, the
   specification of such an algorithm is currently beyond the scope of
   this document.

グループサイズが指数関数的に荷重している無作為のbackoffに続く輻輳制御フィードバックメッセージのボリュームからalgorithmicallyに近似されているのは、可能です。 しかしながら、そのようなアルゴリズムの仕様は現在、このドキュメントの範囲を超えています。

Adamson, et al.               Experimental                     [Page 74]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [74ページ]実験的なRFC3940標準プロトコル2004年11月

6.  Security Considerations

6. セキュリティ問題

   The same security considerations that apply to the NORM, and FEC
   Building Blocks also apply to the NORM protocol.  In addition to
   vulnerabilities that any IP and IP multicast protocol implementation
   may be generally subject to, the NACK-based feedback of NORM may be
   exploited by replay attacks which force the NORM sender to
   unnecessarily transmit repair information.  This MAY be addressed by
   network layer IP security implementations that guard against this
   potential security exploitation.  It is RECOMMENDED that such IP
   security mechanisms be used when available.  Another possible
   approach is for NORM senders to use the "sequence" field from the
   NORM Common Message Header to detect replay attacks.  This can be
   accomplished if the NORM packets are cryptographically protected and
   the sender is willing to maintain state on receivers which are
   NACKing.  A cache of receiver state may provide some protection
   against replay attacks.  Note that the "sequence" field of NORM
   messages should be incremented with independent values for different
   destinations (e.g., group-addressed versus unicast-addressed messages
   versus "receiver" messages).  Thus, the congestion control loss
   estimation function of the "sequence" field can be preserved for
   sender messages when receiver messages are unicast to the sender.
   The NORM protocol is compatible with the use of the IP security
   (IPsec) architecture described in [22].  It is important to note that
   while NORM does leverage FEC-based repair for scalability, this does
   not alone guarantee integrity of received data.  Application-level
   integrity-checking of data content is highly RECOMMENDED.

またBlocksがNORMプロトコルに適用するNORM、およびFECビルに適用される同じセキュリティ問題。 一般に、どんなIPとIPマルチキャストプロトコル実現も受けることがあるかもしれない脆弱性に加えて、NORMのナックベースのフィードバックはNORM送付者が不必要にやむを得ず修理情報を伝える反射攻撃で利用されるかもしれません。 これはこの潜在的セキュリティ開発に用心するネットワーク層IPセキュリティ実現で記述されるかもしれません。 利用可能であるときに、そのようなIPセキュリティー対策が使用されるのは、RECOMMENDEDです。 別の可能なアプローチはNORM送付者が反射攻撃を検出するのにNORM Common Message Headerから「系列」分野を使用することです。 NORMパケットが暗号で保護されて、送付者が、NACKingである受信機の上で状態を維持しても構わないと思っているなら、これを達成できます。 受信機状態のキャッシュは反射攻撃に対する何らかの保護を提供するかもしれません。 独立している値に従ってNORMメッセージの「系列」分野が異なった目的地(例えばユニキャストで記述されたメッセージ対「受信機」メッセージに対して演説されたグループ)に増加されるべきであることに注意してください。 受信機メッセージが送付者へのユニキャストであるときに、したがって、送付者メッセージのために「系列」分野の輻輳制御損失見積り関数を保存できます。 NORMプロトコルはIPセキュリティ(IPsec)構造の[22]で説明される使用と互換性があります。 NORMがスケーラビリティのためのFECベースの修理に投機しますが、これが受信データのどんな単独の保証保全もしないことに注意するのは重要です。 データ内容を保全してチェックするアプリケーションレベルは非常にそうです。RECOMMENDED。

7.  IANA Considerations

7. IANA問題

   No information in this specification is currently subject to IANA
   registration.  However, several Header Extensions are defined within
   this document.  If/when additional Header Extensions are developed,
   the first RFC MUST establish an IANA registry for them, with a
   "Specification Required" policy [6] and all Header Extensions,
   including those in the present document, MUST be registered
   thereafter.  Additionally, building blocks components used by NORM
   may introduce additional IANA considerations.  In particular, the FEC
   Building Block used by NORM does require IANA registration of the FEC
   codecs used.  The registration instructions for FEC codecs are
   provided in [5].

この仕様によるどんな情報も現在、IANA登録を受けることがありません。 しかしながら、数個のHeader Extensionsがこのドキュメントの中に定義されます。 追加Header Extensionsであるときに、/が開発されているなら、最初のRFC MUSTは彼らのためにIANA登録を確立します、「仕様が必要であること」の方針[6]とHeader Extensionsと共に、現在のドキュメントにそれらを含んでいてその後、登録しなければなりません。 さらに、NORMによって使用されたブロックコンポーネントは追加IANA問題を紹介するかもしれません。 特に、NORMによって使用されたFECビルBlockはコーデックが使用したFECのIANA登録を必要とします。 FECコーデックのための登録指示を[5]に提供します。

8.  Suggested Use

8. 提案された使用

   The present NORM protocol is seen as useful tool for the  reliable
   data transfer over generic IP multicast  services.  It is not the
   intention of the authors to suggest it is suitable for  supporting
   all envisioned multicast reliability requirements.  NORM provides a

確実な資料のための有益な手段が一般的なIPマルチキャストサービスの上で移されるとき、現在のNORMプロトコルは見られます。 それは作者がそれがすべての思い描かれたマルチキャスト信頼度要求事項を支持するのに適当であると示唆するという意志ではありません。 NORMはaを提供します。

Adamson, et al.               Experimental                     [Page 75]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [75ページ]実験的なRFC3940標準プロトコル2004年11月

   simple and flexible framework for multicast applications with a
   degree of concern for network traffic implosion and protocol overhead
   efficiency.  NORM-like protocols have been successfully demonstrated
   within the MBone for bulk data dissemination applications, including
   weather satellite compressed imagery updates servicing a large group
   of receivers and a generic web content reliable "push" application.

ネットワークトラフィック内部破裂とプロトコルオーバーヘッド効率に、重要な1度があるマルチキャストアプリケーションのための簡単でフレキシブルな枠組み。 NORMのようなプロトコルは大量のデータ配布アプリケーションのためにMBoneの中に首尾よく示されました、受信機の大きいグループにサービスを提供する気象衛星の圧縮されたイメージ最新版とウェブの一般的な内容高信頼の「プッシュ」アプリケーションを含んでいて。

   In addition, this framework approach has some design features making
   it attractive for bulk transfer in asymmetric and wireless
   internetwork applications.  NORM is capable of successfully operating
   independent of network structure and in environments with high packet
   loss, delay, and misordering.  Hybrid proactive/reactive FEC-based
   repairing improve protocol performance in some multicast scenarios.
   A sender-only repair approach often makes additional engineering
   sense in asymmetric networks.  NORM's unicast feedback capability may
   be suitable for use in asymmetric networks or in networks where only
   unidirectional multicast routing/delivery service exists.  Asymmetric
   architectures supporting multicast delivery are likely to make up an
   important portion of the future Internet structure (e.g.,
   DBS/cable/PSTN hybrids) and efficient, reliable bulk data transfer
   will be an important capability for servicing large groups of
   subscribed receivers.

さらに、この枠組みのアプローチには、それを非対称の、そして、無線のインターネットワークアプリケーションでバルク転送に魅力的にするいくつかの設計上の特徴があります。 NORMは高いパケット損失、遅れ、およびmisorderingでネットワーク構造の如何にかかわらず環境で首尾よく作動できます。 ハイブリッド先を見越すか反応しているFECベースの修理はいくつかのマルチキャストシナリオにおけるプロトコル性能を向上させます。 送付者だけ修理アプローチは非対称のネットワークで追加工学意味にしばしばなります。 NORMのユニキャストフィードバック能力は非対称のネットワークか単方向のマルチキャストルーティング/デリバリ・サービスだけが存在するネットワークにおける使用に適しているかもしれません。 マルチキャスト配送を支持する非対称の構造は将来のインターネット構造(例えば、DBS/ケーブル/PSTNハイブリッド)の重要な部分を作りそうです、そして、効率的で、信頼できるバルク・データ転送は、申し込まれた受信機の大きいグループにサービスを提供するために重要な能力になるでしょう。

9.  Acknowledgments (and these are not Negative)

9. 承認(これらはNegativeではありません)

   The authors would like to thank Rick Jones, Vincent Roca, Rod Walsh,
   Toni Paila, Michael Luby, and Joerg Widmer for their valuable input
   and 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 input into this document.

作者はこのドキュメントの彼らの貴重な入力とコメントについてリック・ジョーンズ、ヴィンセント・ロカ、Rodウォルシュ、トニーPaila、マイケルLuby、およびヨルク・ウィトマーに感謝したがっています。 また、作者はこの仕様の開発における彼らのサポート、およびこのドキュメントへの彼女の早めの入力のためのサリー・フロイドについてRMTワーキンググループいす(ロジャー・カーモードとロレンツォVicisano)に感謝したがっています。

10.  References

10. 参照

10.1.  Normative References

10.1. 引用規格

   [1]  Kermode, R. and L. Vicisano, "Author Guidelines for Reliable
        Multicast Transport (RMT) Building Blocks and Protocol
        Instantiation documents", RFC 3269, April 2002.

[1] カーモード、R.、およびL.Vicisanoは「ドキュメントをBlocksとプロトコルInstantiationに造って、Reliable Multicast Transport(RMT)のためにGuidelinesを書きます」、RFC3269、2002年4月。

   [2]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

[2] ブラドナー、S.、「Indicate Requirement LevelsへのRFCsにおける使用のためのキーワード」、BCP14、RFC2119、1997年3月。

   [3]  Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC
        1112, August 1989.

[3] デアリング、S.、「IPマルチキャスティングのためのホスト拡大」、STD5、RFC1112、1989年8月。

Adamson, et al.               Experimental                     [Page 76]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [76ページ]実験的なRFC3940標準プロトコル2004年11月

   [4]  Adamson, B., Bormann, C., Handley, M., and J. Macker,
        "Negative-Acknowledgment (NACK)-Oriented Reliable Multicast
        (NORM) Building Blocks", RFC 3941, November 2004.

[4] アダムソン、B.、ボルマン、C.、ハンドレー、M.、およびJ.Macker、「否定応答の(ナック)指向の信頼できるマルチキャスト(標準)ブロック」、RFC3941(2004年11月)。

   [5]  Luby, M., Vicisano, L., Gemmell, J., Rizzo, L., Handley, M., and
        J. Crowcroft, "Forward Error Correction (FEC) Building Block",
        RFC 3452, December 2002.

[5]Luby、M.、Vicisano、L.、Gemmell、J.、リゾー、L.、ハンドレー、M.、およびJ.クロウクロフト、「前進型誤信号訂正(FEC)ブロック」、RFC3452(2002年12月)。

   [6]  Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
        Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.

[6]Narten、T.とH.Alvestrand、「RFCsにIANA問題部に書くためのガイドライン」BCP26、RFC2434(1998年10月)。

10.2.  Informative References

10.2. 有益な参照

   [7]  Handley, M. and V. Jacobson, "SDP: Session Description
        Protocol", RFC 2327, April 1998.

[7] ハンドレー、M.、およびV.ジェーコブソン、「SDP:」 「セッション記述プロトコル」、RFC2327、1998年4月。

   [8]  Handley, M., Perkins, C., and E. Whelan, "Session Announcement
        Protocol", RFC 2974, October 2000.

[8] ハンドレーとM.とパーキンス、C.とE.ウィーラン、「セッション発表プロトコル」、RFC2974、2000年10月。

   [9]  S. Pingali, D. Towsley, J. Kurose, "A Comparison of Sender-
        Initiated and Receiver-Initiated Reliable Multicast Protocols",
        In Proc. INFOCOM, San Francisco CA, October 1993.

[9] S.Pingali、D.Towsley、J.黒瀬、Procで「送付者の比較は、信頼できるマルチキャストプロトコルを開始して、受信機で開始しました」。 INFOCOM、サンフランシスコカリフォルニア1993年10月。

   [10] 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.

[10]Luby、M.、Vicisano、L.、Gemmell、J.、リゾー、L.、ハンドレー、M.、およびJ.クロウクロフト、「信頼できるマルチキャストにおける前進型誤信号訂正(FEC)の使用」、RFC3453(2002年12月)。

   [11] Macker, J. and B. Adamson, "The Multicast Dissemination Protocol
        (MDP) Toolkit", Proc. IEEE MILCOM 99, October 1999.

[11]MackerとJ.とB.アダムソン、「マルチキャスト普及のプロトコル(MDP)ツールキット」、Proc。 1999年10月のIEEE MILCOM99。

   [12] Nonnenmacher, J. and E. Biersack, "Optimal Multicast Feedback",
        Proc. IEEE INFOCOMM, p. 964, March/April 1998.

[12]NonnenmacherとJ.とE.Biersack、「最適のマルチキャストフィードバック」、Proc。 IEEE INFOCOMM、p。 964 1998年3月/4月。

   [13] J. Macker, B. Adamson, "Quantitative Prediction of Nack Oriented
        Reliable Multicast (NORM) Feedback", Proc. IEEE MILCOM 2002,
        October 2002.

[13] J.Macker、B.アダムソン、「ナックの量的な予測は信頼できるマルチキャスト(標準)フィードバックを適応した」Proc。 2002年10月のIEEE MILCOM2002。

   [14] H.W. Holbrook, "A Channel Model for Multicast", Ph.D.
        Dissertation, Stanford University, Department of Computer
        Science, Stanford, California, August 2001.

[14]H.W.ホルブルック、「マルチキャストのためのチャンネルモデル」、博士号Dissertation、スタンフォード大学、コンピュータサイエンス学部、スタンフォード、カリフォルニア、2001年8月。

   [15] D. Gossink, J. Macker, "Reliable Multicast and Integrated Parity
        Retransmission with Channel Estimation", IEEE GLOBECOMM 98',
        September 1998.

1998年9月の'[15] D.Gossink、J.Macker、「チャネル推定がある信頼できるマルチキャストの、そして、統合しているパリティRetransmission」IEEE GLOBECOMM98'。

   [16] Whetten, B., Vicisano, L., Kermode, R., Handley, M., Floyd, S.,
        and M. Luby, "Reliable Multicast Transport Building Blocks for
        One-to-Many Bulk-Data Transfer", RFC 3048, January 2001.

[16]Whetten、B.、Vicisano、L.、カーモード、R.、ハンドレー、M.、フロイド、S.、およびM.Luby、「多くへの1のための信頼できるマルチキャスト輸送ブロックバルク・データ転送」、RFC3048(2001年1月)。

Adamson, et al.               Experimental                     [Page 77]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [77ページ]実験的なRFC3940標準プロトコル2004年11月

   [17] Mankin, A., Romanow, A., Bradner, S., and V. Paxson, "IETF
        Criteria for Evaluating Reliable Multicast Transport and
        Application Protocols", RFC 2357, June 1998.

[17] マンキン、A.、Romanow、A.、ブラドナー、S.、およびV.パクソン、「信頼できるマルチキャスト輸送とアプリケーション・プロトコルを評価するIETF評価基準」、RFC2357(1998年6月)。

   [18] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson,
        "RTP:  A Transport Protocol for Real-Time Applications", STD 64,
        RFC 3550, July 2003.

[18]Schulzrinne、H.、Casner、S.、フレディリック、R.、およびV.ジェーコブソン、「RTP:」 「リアルタイムのアプリケーションのためのトランスポート・プロトコル」、STD64、RFC3550、2003年7月。

   [19] J. Widmer and M. Handley, "Extending Equation-Based Congestion
        Control to Multicast Applications", Proc ACM SIGCOMM 2001, San
        Diego, August 2001.

[19] J.ウィトマーとM.ハンドレー「方程式ベースの輻輳制御をマルチキャストアプリケーションに広げている」Proc ACM SIGCOMM2001、サンディエゴ2001年8月。

   [20] L. Rizzo, "pgmcc: A TCP-Friendly Single-Rate Multicast
        Congestion Control Scheme", Proc ACM SIGCOMM 2000, Stockholm,
        August 2000.

[20] L.リゾー、「以下をpgmccします」。 Proc ACM SIGCOMM2000、ストックホルム2000年8月の「TCPに優しい単一賃率マルチキャスト輻輳制御計画。」

   [21] J. Padhye, V. Firoiu, D. Towsley, and J. Kurose, "Modeling TCP
        Throughput: A Simple Model and its Empirical Validation", Proc
        ACM SIGCOMM 1998.

[21] J.Padhye、V.Firoiu、D.Towsley、およびJ.黒瀬、「モデルTCPスループット:」 「Simple ModelとそのEmpirical Validation」、Proc ACM SIGCOMM1998

   [22] Kent, S. and R. Atkinson, "Security Architecture for the
        Internet Protocol", RFC 2401, November 1998.

[22] ケントとS.とR.アトキンソン、「インターネットプロトコルのためのセキュリティー体系」、RFC2401、1998年11月。

Adamson, et al.               Experimental                     [Page 78]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [78ページ]実験的なRFC3940標準プロトコル2004年11月

11.  Authors' Addresses

11. 作者のアドレス

   Brian Adamson
   Naval Research Laboratory
   Washington, DC, USA, 20375

ブライアンアダムソン海軍研究試験所のワシントン(DC)(米国)20375

   EMail: adamson@itd.nrl.navy.mil

メール: adamson@itd.nrl.navy.mil

   Carsten Bormann
   Universitaet Bremen TZI
   Postfach 330440
   D-28334 Bremen, Germany

カルステンボルマンUniversitaetブレーメンTZI Postfach330440D-28334ブレーメン(ドイツ)

   EMail: cabo@tzi.org

メール: cabo@tzi.org

   Mark Handley
   Department of Computer Science
   University College London
   Gower Street
   London
   WC1E 6BT
   UK

マーク・ハンドレー・コンピュータサイエンス学部ユニバーシティ・カレッジロンドンガウアー・ストリートロンドンWC1E 6BTイギリス

   EMail: M.Handley@cs.ucl.ac.uk

メール: M.Handley@cs.ucl.ac.uk

   Joe Macker
   Naval Research Laboratory
   Washington, DC, USA, 20375

ジョーMacker海軍研究試験所のワシントン(DC)(米国)20375

   EMail: macker@itd.nrl.navy.mil

メール: macker@itd.nrl.navy.mil

Adamson, et al.               Experimental                     [Page 79]

RFC 3940                     NORM Protocol                 November 2004

アダムソン、他 [79ページ]実験的なRFC3940標準プロトコル2004年11月

Full Copyright Statement

完全な著作権宣言文

   Copyright (C) The Internet Society (2004).

Copyright(C)インターネット協会(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.

このドキュメントはBCP78に含まれた権利、ライセンス、および制限を受けることがあります、そして、そこに詳しく説明されるのを除いて、作者は彼らのすべての権利を保有します。

   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.

このドキュメントと「そのままで」という基礎と貢献者、その人が代表する組織で提供するか、または後援されて、インターネット協会とインターネット・エンジニアリング・タスク・フォースはすべての保証を放棄します、と急行ORが含意したということであり、他を含んでいて、ここに含まれて、情報の使用がここに侵害しないどんな保証も少しもまっすぐになるという情報か市場性か特定目的への適合性のどんな黙示的な保証。

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.

IETFはどんなIntellectual Property Rightsの正当性か範囲、実現に関係すると主張されるかもしれない他の権利、本書では説明された技術の使用またはそのような権利の下におけるどんなライセンスも利用可能であるかもしれない、または利用可能でないかもしれない範囲に関しても立場を全く取りません。 または、それはそれを表しません。どんなそのような権利も特定するためのどんな独立している努力もしました。 BCP78とBCP79でIETF Documentsの権利に関するIETFの手順に関する情報を見つけることができます。

   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.

IPR公開のコピーが利用可能に作られるべきライセンスの保証、または一般的な免許を取得するのが作られた試みの結果をIETF事務局といずれにもしたか、または http://www.ietf.org/ipr のIETFのオンラインIPR倉庫からこの仕様のimplementersかユーザによるそのような所有権の使用のために許可を得ることができます。

   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.

IETFはこの規格を実行するのに必要であるかもしれない技術をカバーするかもしれないどんな著作権もその注目していただくどんな利害関係者、特許、特許出願、または他の所有権も招待します。 ietf ipr@ietf.org のIETFに情報を記述してください。

Acknowledgement

承認

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

RFC Editor機能のための基金は現在、インターネット協会によって提供されます。

Adamson, et al.               Experimental                     [Page 80]

アダムソン、他 実験的[80ページ]

一覧

 RFC 1〜100  RFC 1401〜1500  RFC 2801〜2900  RFC 4201〜4300 
 RFC 101〜200  RFC 1501〜1600  RFC 2901〜3000  RFC 4301〜4400 
 RFC 201〜300  RFC 1601〜1700  RFC 3001〜3100  RFC 4401〜4500 
 RFC 301〜400  RFC 1701〜1800  RFC 3101〜3200  RFC 4501〜4600 
 RFC 401〜500  RFC 1801〜1900  RFC 3201〜3300  RFC 4601〜4700 
 RFC 501〜600  RFC 1901〜2000  RFC 3301〜3400  RFC 4701〜4800 
 RFC 601〜700  RFC 2001〜2100  RFC 3401〜3500  RFC 4801〜4900 
 RFC 701〜800  RFC 2101〜2200  RFC 3501〜3600  RFC 4901〜5000 
 RFC 801〜900  RFC 2201〜2300  RFC 3601〜3700  RFC 5001〜5100 
 RFC 901〜1000  RFC 2301〜2400  RFC 3701〜3800  RFC 5101〜5200 
 RFC 1001〜1100  RFC 2401〜2500  RFC 3801〜3900  RFC 5201〜5300 
 RFC 1101〜1200  RFC 2501〜2600  RFC 3901〜4000  RFC 5301〜5400 
 RFC 1201〜1300  RFC 2601〜2700  RFC 4001〜4100  RFC 5401〜5500 
 RFC 1301〜1400  RFC 2701〜2800  RFC 4101〜4200 

スポンサーリンク

PostgreSQLでERROR: duplicate key value violates unique constraint "hoge_pkey" DETAIL: Key (id)=(10) already exists.と出る場合

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る