⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2149.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 3 页
字号:
Network Working Group                                         R. TalpadeRequest for Comments: 2149                                      M. AmmarCategory: Informational                  Georgia Institute of Technology                                                                May 1997     Multicast Server Architectures for MARS-based ATM multicastingStatus of this Memo   This memo provides information for the Internet community.  This memo   does not specify an Internet standard of any kind.  Distribution of   this memo is unlimited.Abstract   A mechanism to support the multicast needs of layer 3 protocols in   general, and IP in particular, over UNI 3.0/3.1 based ATM networks   has been described in RFC 2022.  Two basic approaches exist for the   intra-subnet (intra-cluster) multicasting of IP packets.  One makes   use of a mesh of point to multipoint VCs (the 'VC Mesh' approach),   while the other uses a shared point to multipoint tree rooted on a   Multicast Server (MCS). This memo provides details on the design and   implementation of an MCS, building on the core mechanisms defined in   RFC 2022.  It also provides a mechanism for using multiple MCSs per   group for providing fault tolerance.  This approach can be used with   RFC 2022 based MARS server and clients, without needing any change in   their functionality.1 Introduction   A solution to the problem of mapping layer 3 multicast service over   the connection-oriented ATM service provided by UNI 3.0/3.1, has been   presented in [GA96].  A Multicast Address Resolution Server (MARS) is   used to maintain a mapping of layer 3 group addresses to ATM   addresses in that architecture.  It can be considered to be an   extended analog of the ATM ARP Server introduced in RFC 1577   ([ML93]).  Hosts in the ATM network use the MARS to resolve layer 3   multicast addresses into corresponding lists of ATM addresses of   group members.  Hosts keep the MARS informed when they need to join   or leave a particular layer 3 group.   The MARS manages a "cluster" of ATM-attached endpoints.  A "cluster"   is defined as   "The set of ATM interfaces choosing to participate in direct ATM   connections to achieve multicasting of AALSDUs between themselves."Talpade & Ammar              Informational                      [Page 1]RFC 2149             Multicast Server Architectures             May 1997   In practice, a cluster is the set of endpoints that choose to use the   same MARS to register their memberships and receive their updates   from.   A sender in the cluster has two options for multicasting data to the   group members.  It can either get the list of ATM addresses   constituting the group from the MARS, set up a point-to-multipoint   virtual circuit (VC) with the group members as leaves, and then   proceed to send data out on it.  Alternatively, the source can make   use of a proxy Multicast Server (MCS).  The source transmits data to   such an MCS, which in turn uses a point-to-multipoint VC to get the   data to the group members.   The MCS approach has been briefly introduced in [GA96].  This memo   presents a detailed description of MCS architecture and proposes a   simple mechanism for supporting multiple MCSs for fault tolerance.   We assume an understanding of the IP multicasting over UNI 3.0/3.1   ATM network concepts described in [GA96], and access to it.  This   document is organized as follows.  Section 2 presents interactions   with the local UNI 3.0/3.1 signaling entity that are used later in   the document and have been originally described in [GA96].  Section 3   presents an MCS architecture, along with a description of its   interactions with the MARS. Section 4 describes the working of an   MCS. The possibility of using multiple MCSs for the same layer 3   group, and the mechanism needed to support such usage, is described   in section 5.  A comparison of the VC Mesh approach and the MCS   approach is presented in Appendix A.2 Interaction with the local UNI 3.0/3.1 signaling entity   The following generic signaling functions are presumed to be   available to local AAL Users:   LCALL-RQ - Establish a unicast VC to a specific endpoint.   LMULTI-RQ - Establish multicast VC to a specific endpoint.   LMULTI-ADD - Add new leaf node to previously established VC.   LMULTI-DROP - Remove specific leaf node from established VC.   LRELEASE - Release unicast VC, or all Leaves of a multicast VC.   The following indications are assumed to be available to AAL Users,   generated by by the local UNI 3.0/3.1 signaling entity:   LACK - Succesful completion of a local request.   LREMOTE-CALL - A new VC has been established to the AAL User.   ERRL-RQFAILED - A remote ATM endpoint rejected an LCALLRQ,                         LMULTIRQ, or L-MULTIADD.   ERRL-DROP - A remote ATM endpoint dropped off an existing VC.   ERRL-RELEASE - An existing VC was terminated.Talpade & Ammar              Informational                      [Page 2]RFC 2149             Multicast Server Architectures             May 19973 MCS Architecture   The MCS acts as a proxy server which multicasts data received from a   source to the group members in the cluster.  All multicast sources   transmitting to an MCS-based group send the data to the specified   MCS. The MCS then forwards the data over a point to multipoint VC   that it maintains to group members in the cluster.  Each multicast   source thus maintains a single point-to-multipoint VC to the   designated MCS for the group.  The designated MCS terminates one   point-to-multipoint VC from each cluster member that is multicasting   to the layer 3 group.  Each group member is the leaf of the point-   to-multipoint VC originating from the MCS.   A brief introduction to possible MCS architectures has been presented   in [GA96].  The main contribution of that document concerning the MCS   approach is the specification of the MARS interaction with the MCS.   The next section lists control messages exchanged by the MARS and   MCS.3.1 Control Messages exchanged by the MCS and the MARS   The following control messages are exchanged by the MARS and the MCS.   operation code                Control Message         1                       MARS_REQUEST         2                       MARS_MULTI         3                       MARS_MSERV         6                       MARS_NAK         7                       MARS_UNSERV         8                       MARS_SJOIN         9                       MARS_SLEAVE        12                       MARS_REDIRECT_MAP   MARSMSERV and MARS-UNSERV are identical in format to the MARSJOIN   message.  MARSSJOIN and MARS-SLEAVE are also identical in format to   MARSJOIN. As such, their formats and those of MARSREQUEST, MARS-   MULTI, MARSNAK and MARSREDIRECT-MAP are described in [GA96].  Their   usage is described in section 4.  All control messages are LLC/SNAP   encapsulated as described in section 4.2 of [GA96].  (The "mar$"   notation used in this document is borrowed from [GA96], and indicates   a specific field in the control message.)  Data messages are   reflected without any modification by the MCS.Talpade & Ammar              Informational                      [Page 3]RFC 2149             Multicast Server Architectures             May 19973.2 Association with a layer 3 group   The simplest MCS architecture involves taking incoming AALSDUs from   the multicast sources and sending them out over the point-to-   multipoint VC to the group members.  The MCS can service just one   layer 3 group using this design, as it has no way of distinguishing   between traffic destined for different groups.  So each layer 3 MCS-   supported group will have its own designated MCS.   However it is desirable in the interests of saving resources to   utilize the same MCS to support multiple groups.  This can be done by   adding minimal layer 3 specific processing into the MCS. The MCS can   now look inside the received AALSDUs and determine which layer 3   group they are destined for.  A single instance of such an MCS could   register its ATM address with the MARS for multiple layer 3 groups,   and manage multiple point-to-multipoint VCs, one for each group.   This capability is included in the MCS architecture, as is the   capability of having multiple MCSs per group (section 5).4 Working of MCS   An MCS MUST NOT share its ATM address with any other cluster member   (MARS or otherwise).  However, it may share the same physical ATM   interface (even with other MCSs or the MARS), provided that each   logical entity has a different ATM address.  This section describes   the working of MCS and its interactions with the MARS and other   cluster members.4.1 Usage of MARSMSERV and MARS-UNSERV4.1.1 Registration (and deregistration) with the MARS   The ATM address of the MARS MUST be known to the MCS by out-of-band   means at startup.  One possible approach for doing this is for the   network administrator to specify the MARS address at command line   while invoking the MCS. On startup, the MCS MUST open a point-to-   point control VC (MARSVC) with the MARS. All traffic from the MCS to   the MARS MUST be carried over the MARSVC. The MCS MUST register with   the MARS using the MARS-MSERV message on startup.  To register, a   MARSMSERV MUST be sent by the MCS to the MARS over the MARSVC. On   receiving this MARS-MSERV, the MARS adds the MCS to the   ServerControlVC. The ServerControlVC is maintained by the MARS with   all MCSs as leaves, and is used to disseminate general control   messages to all the MCSs.  The MCS MUST terminate this VC, and MUST   expect a copy of the MCS registration MARSMSERV on the MARS-VC from   the MARS.Talpade & Ammar              Informational                      [Page 4]RFC 2149             Multicast Server Architectures             May 1997   An MCS can deregister by sending a MARSUNSERV to the MARS. A copy of   this MARSUNSERV MUST be expected back from the MARS. The MCS will   then be dropped from the ServerControlVC.   No protocol specific group addresses are included in MCS registration   MARSMSERV and MARS-UNSERV. The mar$flags.register bit MUST be set,   the mar$cmi field MUST be set to zero, the mar$flags.sequence field   MUST be set to zero, the source ATM address MUST be included and a   null source protocol address MAY be specified in these MARSMSERV and   MARS-UNSERV. All other fields are set as described in section 5.2.1   of [GA96] (the MCS can be considered to be a cluster member while   reading that section).  It MUST keep retransmitting (section 4.1.3)   the MARSMSERV/MARS-UNSERV over the MARSVC until it receives a copy   back.   In case of failure to open the MARSVC, or error on it, the   reconnection procedure outlined in section 4.5.2 is to be followed.4.1.2 Registration (and deregistration) of layer 3 groups   The MCS can register with the MARS to support particular group(s).   To register groups X through Y, a MARSMSERV with a <min, max> pair of   <X, Y> MUST be sent to the MARS. The MCS MUST expect a copy of the   MARSMSERV back from the MARS. The retransmission strategy outlined in   section 4.1.3 is to be followed if no copy is received.   The MCS MUST similarly use MARSUNSERV if it wants to withdraw support   for a specific layer 3 group.  A copy of the group MARSUNSERV MUST be   received, failing which the retransmission strategy in section 4.1.3   is to be followed.   The mar$flags.register bit MUST be reset and the mar$flags.sequence   field MUST be set to zero in the group MARSMSERV and MARS-UNSERV. All   other fields are set as described in section 5.2.1 of [GA96] (the MCS   can be considered to be a cluster member when reading that section).4.1.3 Retransmission of MARSMSERV and MARS-UNSERV   Transient problems may cause loss of control messages.  The MCS needs   to retransmit MARSMSERV/MARS-UNSERV at regular intervals when it does   not receive a copy back from the MARS. This interval should be no   shorter than 5 seconds, and a default value of 10 seconds is   recommended.  A maximum of 5 retransmissions are permitted before a   failure is logged.  This MUST be considered a MARS failure, which   SHOULD result in the MARS reconnection mechanism described in section   4.5.2.Talpade & Ammar              Informational                      [Page 5]RFC 2149             Multicast Server Architectures             May 1997   A "copy" is defined as a received message with the following fields   matching the previously transmitted MARSMSERV/MARS-UNSERV:   -  mar$op   -  mar$flags.register   -  mar$pnum   -  Source ATM address   -  first <min, max> pair   In addition, a valid copy MUST have the following field values:   -  mar$flags.punched = 0   -  mar$flags.copy = 1   If either of the above is not true, the message MUST be dropped   without resetting of the MARSMSERV/MARS-UNSERV timer.  There MUST be   only one MARSMSERV or MARS-UNSERV outstanding at a time.4.1.4 Processing of MARSMSERV and MARS-UNSERV   The MARS transmits copies of group MARSMSERV and MARS-UNSERV on the   ServerControlVC. So they are also received by MCSs other than the   originating one.  This section discusses the processing of these   messages by the other MCSs.   If a MARSMSERV is seen that refers to a layer 3 group not supported   by the MCS, it MUST be used to track the Server Sequence Number   (section 4.5.1) and then silently dropped.   If a MARSMSERV is seen that refers to a layer 3 group supported by   the MCS, the MCS learns of the existence of another MCS supporting   the same group.  This possibility is incorporated (of multiple MCSs   per group) in this version of the MCS approach and is discussed in   section 5.4.2 Usage of MARSREQUEST and MARS-MULTI   As described in section 5.1, the MCS learns at startup whether it is   an active or inactive MCS. After successful registration with the   MARS, an MCS which has been designated as inactive for a particular   group MUST NOT register to support that group with the MARS. It   instead proceeds as in section 5.4.  The active MCS for a group also   has to do some special processing, which we describe in that section.   The rest of section 4 describes the working of a single active MCS,   with section 5 describing the active MCSs actions for supporting   multiple MCSs.Talpade & Ammar              Informational                      [Page 6]

⌨️ 快捷键说明

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