rfc1301.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,474 行 · 第 1/5 页

TXT
1,474
字号






Network Working Group                                       S. Armstrong
Request for Comments: 1301                                         Xerox
                                                               A. Freier
                                                                   Apple
                                                             K. Marzullo
                                                                 Cornell
                                                           February 1992


                      Multicast Transport Protocol

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard.  Distribution of this memo is
   unlimited.

Summary

   This memo describes a protocol for reliable transport that utilizes
   the multicast capability of applicable lower layer networking
   architectures.  The transport definition permits an arbitrary number
   of transport providers to perform realtime collaborations without
   requiring networking clients (aka, applications) to possess detailed
   knowledge of the population or geographical dispersion of the
   participating members.  It is not network architectural specific, but
   does implicitly require some form of multicasting (or broadcasting)
   at the data link level, as well as some means of communicating that
   capability up through the layers to the transport.

   Keywords: reliable transport, multicast, broadcast, collaboration,
   networking.

Table of Contents

           1. Introduction                                     2
           2. Protocol description                             3
           2.1 Definition of terms                             3
           2.2 Packet format                                   6
           2.2.1. Protocol version                             7
           2.2.2. Packet type and modifier                     7
           2.2.3. Subchannel                                   9
           2.2.4. Source connection identifier                 9
           2.2.5. Destination connection identifier           10
           2.2.6. Message acceptance                          10
           2.2.7. Heartbeat                                   12
           2.2.8. Window                                      12
           2.2.9. Retention                                   12



Armstrong, Freier & Marzullo                                    [Page 1]

RFC 1301              Multicast Transport Protocol         February 1992


           2.3 Transport addresses                            12
           2.3.1. Unknown transport address                   12
           2.3.2. Web's multicast address                     13
           2.3.3. Member addresses                            13
           3. Protocol behavior                               13
           3.1. Establishing a transport                      13
           3.1.1. Join request                                14
           3.1.2. Join confirm/deny                           16
           3.2 Maintaining data consistency                   17
           3.2.1. Transmit tokens                             17
           3.2.2. Data transmission                           20
           3.2.3. Empty packets                               23
           3.2.4. Missed data                                 26
           3.2.5. Retrying operations                         26
           3.2.6. Retransmission                              27
           3.2.7. Duplicate suppression                       29
           3.2.8. Banishment                                  29
           3.3 Terminating the transport                      29
           3.3.1. Voluntary quits                             30
           3.3.2. Master quit                                 30
           3.3.3. Banishment                                  30
           3.4 Transport parameters                           30
           3.4.1. Quality of service                          30
           3.4.2. Selecting parameter values                  31
           3.4.3. Caching member information                  33
           A. Appendix: MTP as an Internet Protocol transport 34
           A.1 Internet Protocol multicast addressing         34
           A.2 Encapsulation                                  35
           A.3 Fields of the bridge protocol                  35
           A.4 Relationship to other Internet Transports      36
           References                                         36
           Footnotes                                          37
           Security Considerations                            37
           Authors' Addresses                                 38

1.      Introduction

   This document describes a flow controlled, atomic multicasting
   transport protocol (MTP).  The purpose of this document is to present
   sufficient information to implement the protocol.

   The MTP design has been influenced by the large body of the
   networking and distributed systems literature and technology that has
   been introduced during the last decade and a half.  Representative
   sources include [Xer81], [BSTM79] and [Pos81] for transport design,
   and [Bog83] and [DIX82] for general concepts of broadcast and
   multicast.  [CLZ87] influenced MTP's retransmission mechanisms, and
   [Fre84] influenced the transport timings. MTP over IP uses mechanisms



Armstrong, Freier & Marzullo                                    [Page 2]

RFC 1301              Multicast Transport Protocol         February 1992


   described in [Dee89].  MTP's ordering and agreement protocols were
   influenced by work done in [CM87], [JB89] and [Cri88].  Finally, a
   description of MTP's philosophy and its motivation can be found in
   [AFM91].

2.      Protocol description

   MTP is a transport in that it is a client of the network layer (as
   defined by the OSI networking model) [1].  MTP provides reliable
   delivery of client data between one or more communicating processes,
   as well as a predefined principal process. The collection of
   processes is called a web.

   In addition to transporting data reliably and efficiently, MTP
   provides the synchronization necessary for web members to agree on
   the order of receipt of all messages and can agree on the delivery of
   the message even in the face of partitions.  This ordering and
   agreement protocol uses serialized tokens granted by the master to
   producers.

   The processes may have any one of three levels of capability. One
   member must be the master. The master instantiates and controls the
   behavior of the web, including its membership and performance. Non
   master members may be either producer/consumers or pure consumers.
   The former class of member is permitted to transmit user data to the
   entire membership (and expected to logically hear itself), while the
   latter is prohibited from transmitting user data.

   MTP is a negative acknowledgement protocol, exploiting the highly
   reliable delivery of the local area and wide area network
   technologies of today. Successful delivery of data is accepted by
   consuming stations silently rather than having the successful
   delivery noted to the producing process, thus reducing the amount of
   reverse traffic required to maintain synchronization.

2.1     Definition of terms

   The following terms are used throughout this document. They are
   defined here to eliminate ambiguity.

   consumer    A consumer is a transport that is capable only of
               receiving user data. It may transmit control packets,
               such as negative acknowledgements, but may never transmit
               any requests for the transmit token or any form of data
               or empty messages.

   heartbeat   A heartbeat is an interval of time, nominally measured in
               milliseconds. It is a key parameter in the transport's



Armstrong, Freier & Marzullo                                    [Page 3]

RFC 1301              Multicast Transport Protocol         February 1992


               state and can be adapted to the requirements of the
               transport's client to provide the desired quality of
               service.

   master      The master is the principal member of the web. The master
               capability is a superset of a producer member.  The
               master is mainly responsible for giving out transmit
               tokens to members who wish to send data, and overseeing
               the web's membership and operational parameters.

   member      A web member is any process that has been permitted to
               join the web (by the master) as well as the master
               itself.

   membership  Every member is classified as to its intentions for
   class       joining the web. Membership classes are defined to be
               consumer, producer and master. Each successive class is a
               formal superset of the previous.

   message     An MTP message is a concatenation of the user data
               portions of a series of data packets with the last packet
               in the series carrying an end of message indication. A
               message may contain any number of bytes of user data,
               including zero.

   NSAP        The network service access point. This is the network
               address, or the node address of the machine, where a
               service is available.

   producer    Producer is a class of membership that is a formal
               superset of a consumer. A producer is permitted (and
               expected) to transmit client data as well as consume data
               transmitted by other producers.

   retention   Retention is one of the three fundamental parameters that
               make up the transport's state (along with heartbeat and
               window). Retention is a number of heartbeats, and though
               applied in several different circumstances, is primarily
               used as the number of heartbeats a producing client must
               maintain buffered data should it need to be
               retransmitted.

   token       In order to transmit, a producer must first be in
               possesion of a token. Tokens are granted only by the
               master and include the message sequence number.
               Consequently, they are fundamental in the operation of
               the ordering and agreement protocol used by MTP.




Armstrong, Freier & Marzullo                                    [Page 4]

RFC 1301              Multicast Transport Protocol         February 1992


   TSAP        The transport service access point. This is the address
               that uniquely defines particular instantiation of a
               service. TSAPs are formed by logically concatenating the
               node's NSAP with a transport identifier (and perhaps a
               packet/protocol type).

   user data   User data is the client information carried in MTP data
               packets and treated as uninterpreted octets by the
               transport. The end of message and subchannel indicators
               are also be treated as user data.

   web         A collection of processes collaborating on the solution
               of a single problem.

   window      The window is one of the fundamental elements of the
               transport's state that can be controlled to affect the
               quality of service being provided to the client. It
               represents the number of user data carrying packets that
               may be multicast into the web during a heartbeat by a
               single member.































Armstrong, Freier & Marzullo                                    [Page 5]

RFC 1301              Multicast Transport Protocol         February 1992


2.2     Packet format

   An MTP packet consists of a transport protocol header followed by a
   variable amount of data. The protocol header, shown in Figure 1, is
   part of every packet. The remainder of the packet is either user data
   (packet type = data) or additional transport specific information.
   The fields in the header are statically defined as n-bit wide
   quantities. There are no undefined fields or fields that may at any
   time have undefined values.  Reserved fields, if they exist, must

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?