📄 rfc2149.txt
字号:
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 + -