rfc2730.txt

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

TXT
1,476
字号
   port number provided by the client in the message that caused the
   server to send its message.

   The next few sections describe the MADCAP message format and message
   types. A full list of MADCAP options is provided in section 3.

2.1. Message Format

   Figure 1 gives the format of a MADCAP message and Table 1 describes
   each of the fields in the MADCAP message. The numbers in parentheses
   indicate the size of each field in octets. The names for the fields
   given in the figure will be used throughout this document to refer to
   the fields in MADCAP messages.

   All multi-octet quantities are in network byte-order.

   Any message whose UDP data is too short to hold this format (at least
   12 bytes) MUST be ignored.























Hanna, et al.               Standards Track                     [Page 6]

RFC 2730                         MADCAP                    December 1999


                +-+-+-+-+-+-+-+-+
                |  version (1)  |
                +---------------+
                |  msgtype (1)  |
                +---------------+
                |  addrfamily   |
                |     (2)       |
                +---------------+
                |               |
                |    xid (4)    |
                |               |
                |               |
                +---------------+
                |               |
                |   options     |
                |  (variable)   |
                |      ...      |
                +---------------+

        Figure 1:  Format of a MADCAP message


  FIELD      OCTETS       DESCRIPTION
  -----      ------       -----------

  version       1  Protocol version number (zero for this specification)
  msgtype       1  Message type (DISCOVER, GETINFO, etc.)
  addrfamily    2  Address family (IPv4, IPv6, etc.)
  xid           4  Transaction ID
  options     var  Options field

          Table 1:  Description of fields in a MADCAP message

2.1.1. The version field

   The version field must always be zero for this version of the
   protocol.  Any messages that include other values in this field MUST
   be ignored.

2.1.2. The msgtype field

   The msgtype field defines the "type" of the MADCAP message.

   For more information about this field, see section 2.2.







Hanna, et al.               Standards Track                     [Page 7]

RFC 2730                         MADCAP                    December 1999


2.1.3. The addrfamily field

   The addrfamily field defines the default address family (such as IPv4
   or IPv6) for this MADCAP message, using the address family numbers
   defined in by the IANA (including those defined in [10]). Unless
   otherwise specified, all addresses included in the message will be
   from this family.

2.1.4. The xid field

   The xid field is a transaction identifier. This number MUST be chosen
   by the client so that the combination of xid, msgtype, and Lease
   Identifier is unique across all MADCAP messages received by a MADCAP
   server over a period of [XID-REUSE-INTERVAL] (10 minutes).

   The xid field is used by the client and server to associate messages
   and responses between a client and a server. Before a client sends a
   message, it chooses a number to use as an xid. The technique used to
   choose an xid is implementation-dependent, but whatever technique is
   used MUST make it unlikely that the same combination of xid, msgtype,
   and Lease Identifier will be used for two different messages within
   [XID-REUSE-INTERVAL] (even across multiple clients which do not
   communicate among themselves).  This allows enough time for the
   message to be dropped from all server response caches (as described
   in the next few paragraphs) and for any network delays to be
   accomodated.

   The RECOMMENDED technique for choosing an xid is to choose a random
   four octet number as the first xid in a session and increment this
   value each time a new xid is needed.  The random number chosen need
   not be cryptographically random. The random number may be chosen via
   any suitable technique, such as the one described in section A.6 of
   RFC 1889 [14].

   When a server responds to a client message, it MUST use the same xid
   value in the response that the client used in the request. This
   allows the client to associate responses with the message that they
   are responding to.

   When retransmitting messages (as described in section 2.3), the
   client MUST retransmit them without changing them, thereby using the
   same xid and and Lease Identifier.

   If a server receives a message with the same xid, msgtype, and Lease
   Identifier as one received within [RESPONSE-CACHE-INTERVAL], it MUST
   treat this message as a retransmission of the previously received one
   and retransmit the response, if any. After [RESPONSE-CACHE-INTERVAL],
   the server may forget about the previously received message and treat



Hanna, et al.               Standards Track                     [Page 8]

RFC 2730                         MADCAP                    December 1999


   any retransmissions of this message as if they were new messages. Of
   course, a server need not cache a message if it ends up ignoring that
   message. However, performance gains may be achieved by doing so.

   This avoids retransmissions causing multiple allocations, since
   requests are not idempotent.  An appropriate value for [RESPONSE-
   CACHE-INTERVAL] would be sixty seconds, but it may have any value
   from zero seconds to 300 seconds (five minutes) and may be adjusted
   dynamically according to resource constraints on the server.
   However, using a value less than sixty seconds is NOT RECOMMENDED
   because this is the normal client retransmission period.

2.1.5. The options field

   The options field consists of a list of tagged parameters that are
   called "options". All options consist of a two octet option code and
   a two octet option length, followed by the number of octets specified
   by the option length. In the case of some options, the length field
   is a constant but must still be specified.

   The option field MUST contain a sequence of options with the last one
   being the End option (option code 0). Any message whose options field
   does not conform to this syntax MUST be ignored.

   Any MADCAP client or server sending a MADCAP message MAY include any
   of the options listed in section 3, subject to the restrictions in
   Table 5 and elsewhere in this document. They MAY also include other
   MADCAP options that are defined in the future. A MADCAP client or
   server MUST NOT include more than one option with the same option
   type in one MADCAP message.

   All MADCAP clients and servers MUST recognize all options listed in
   this document and behave in accordance with this document when
   receiving and processing any of these options. Any unrecognized
   options MUST be ignored and the rest of the message processed as if
   the unknown options were not present. If a MADCAP server receives a
   message that does not conform to the requirements of this document
   (for instance, not including all required options), an Invalid
   Request error MUST be generated and processed in the manner described
   in section 2.6. If a MADCAP client receives a message that does not
   conform to the requirements of this document, it MUST ignore the
   message.

   The order of options within a message has no significance and any
   order MUST be supported in an equivalent manner, with the exception
   that the End option must occur once per message, as the last option
   in the option field.




Hanna, et al.               Standards Track                     [Page 9]

RFC 2730                         MADCAP                    December 1999


   New MADCAP option codes may only be defined by IETF Consensus, as
   described in section 5.

2.2. Message Types

   The msgtype field defines the "type" of a MADCAP message. Legal
   values for this field are:

           Value   Message Type
           -----   ------------
             1     DISCOVER
             2     OFFER
             3     REQUEST
             4     RENEW
             5     ACK
             6     NAK
             7     RELEASE
             8     GETINFO

      Table 2:  MADCAP message types

   Throughout this document, MADCAP messages will be referred to by the
   type of the message; e.g., a MADCAP message with a message type of 8
   will be referred to as an GETINFO message.

   Here are descriptions of the MADCAP message types.  Table 5, which
   appears at the beginning of section 3, summarizes which options are
   allowed with each message type.

   MADCAP clients and servers MUST handle all MADCAP message types
   defined in this document in a manner consistent with this document.

   If a MADCAP server receives a message whose message type it does not
   recognize, an Invalid Request error MUST be generated and processed
   in the manner described in section 2.6. If a MADCAP client receives a
   message whose message type it does not recognize, it MUST ignore the
   message.

   Note, however, that under some circumstances this document requires
   or suggests that clients or servers ignore messages with certain
   message types even though they may be recognized. For instance,
   clients that do not send DISCOVER messages SHOULD ignore OFFER
   messages.  Also, secure servers SHOULD ignore DISCOVER messages and
   all servers SHOULD ignore DISCOVER messages that they cannot satisfy.

   New MADCAP message types may only be defined by IETF Consensus, as
   described in section 5.




Hanna, et al.               Standards Track                    [Page 10]

RFC 2730                         MADCAP                    December 1999


2.2.1. GETINFO

   The GETINFO message is used by a MADCAP client that wants to acquire
   configuration parameters, especially a multicast scope list.  This
   message also allows a client to determine which servers are likely to
   be able to handle future requests.

   The MADCAP client sends out an GETINFO message. The message may be
   unicast to a particular MADCAP server or multicast to a MADCAP Server
   Multicast Address. For more details about the MADCAP Server Multicast
   Address, see section 2.10.

   If a server receives an GETINFO message and it can process the
   request successfully, it MUST unicast an ACK message to the client.
   All GETINFO messages MUST include an Option Request List option. The
   server SHOULD try to include the specified options in its response,
   but is not required to do so (especially if it does not recognize
   them).

   If a server receives an GETINFO message and it does not process the
   request successfully, it MUST generate and process an error in the
   manner described in section 2.6.

   If a client sends an GETINFO message and does not receive any ACK
   messages in response, it SHOULD resend its GETINFO message, as
   described in section 2.3.

⌨️ 快捷键说明

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