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

📄 rfc2149.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 3 页
字号:

RFC 2149             Multicast Server Architectures             May 1997


   After the active MCS registers to support a layer 3 group, it uses
   MARSREQUEST and MARS-MULTI to obtain information about group
   membership from the MARS. These messages are also used during the
   revalidation phase (section 4.5) and when no outgoing VC exists for a
   received layer 3 packet (section 4.3).

   On registering to support a particular layer 3 group, the MCS MUST
   send a MARSREQUEST to the MARS. The mechanism to retrieve group
   membership and the format of MARSREQUEST and MARS-MULTI is described
   in section 5.1.1 and 5.1.2 of [GA96] respectively.  The MCS MUST use
   this mechanism for sending (and retransmitting) the MARSREQUEST and
   processing the returned MARSMULTI(/s).  The MARS-MULTI MUST be
   received correctly, and the MCS MUST use it to initialize its
   knowledge of group membership.

   On successful reception of a MARSMULTI, the MCS MUST attempt to open
   the outgoing point-to-multipoint VC using the mechanism described in
   section 5.1.3 of [GA96], if any group members exist.  The MCS however
   MUST start transmitting data on this VC after it has opened it
   successfully with at least one of the group members as a leaf, and
   after it has attempted to add all the group members at least once.

4.3 Usage of outgoing point-to-multipoint VC

   Cluster members which are sources for MCS-supported layer 3 groups
   send (encapsulated) layer 3 packets to the designated MCSs.  An MCS,
   on receiving them from cluster members, has to send them out over the
   specific point-to-multipoint VC for that layer 3 group.  This VC is
   setup as described in the previous section.  However, it is possible
   that no group members currently exist, thus causing no VC to be
   setup.  So an MCS may have no outgoing VC to forward received layer 3
   packets on, in which case it MUST initiate the MARSREQUEST and MARS-
   MULTI sequence described in the previous section.  This new MARSMULTI
   could contain new members, whose MARSSJOINs may have been not
   received by the MCS (and the loss not detected due to absence of
   traffic on the ServerControlVC).

   If an MCS learns that there are no group members (MARSNAK received
   from MARS), it MUST delay sending out a new MARSREQUEST for that
   group for a period no less than 5 seconds and no more than 10
   seconds.

   Layer 3 packets received from cluster members, while no outgoing
   point-to-multipoint VC exists for that group, MUST be silently
   dropped after following the guidelines in the previous paragraphs.
   This might result in some layer 3 packets being lost until the VC is
   setup.




Talpade & Ammar              Informational                      [Page 7]

RFC 2149             Multicast Server Architectures             May 1997


   Each outgoing point-to-multipoint VC has a revalidate flag associated
   with it.  This flag MUST be checked whenever a layer 3 packet is sent
   out on that VC. No action is taken if it is not set.  If it is set,
   the packet is sent out, the revalidation procedure (section 4.5.3)
   MUST be initiated for this group, and the flag MUST be reset.

   In case of error on a point-to-multipoint VC, the MCS MUST initiate
   revalidation procedures for that VC as described in section 4.5.3.
   Once a point-to-multipoint VC has been setup for a particular layer 3
   group, the MCS MUST hold the VC open and mark it as the outgoing path
   for any subsequent layer 3 packets being sent for that group address.
   A point-to-multipoint VC MUST NOT have an activity timer associated
   with it.  It is to remain up at all times, unless the MCS explicitly
   stops supporting that layer 3 group, or no more leaves exist on the
   VC which causes it to be shut down.  The VC is kept up inspite of
   non-existent traffic to reduce the delay suffered by MCS supported
   groups.  If the VC were to be shut down on absence of traffic, the VC
   reestablishment procedure (needed when new traffic for the layer 3
   group appears) would further increase the initial delay, which can be
   potentially higher than the VC mesh approach anyway as two VCs need
   to be setup in the MCS case (one from source to MCS, second from MCS
   to group) as opposed to only one (from source to group) in the VC
   Mesh approach.  This approach of keeping the VC from the MCS open
   even in the absense of traffic is experimental.  A decision either
   way can only be made after gaining experience (either through
   implementation or simulation) about the implications of keeping the
   VC open.

   If the MCS supports multiple layer 3 groups, it MUST follow the
   procedure outlined in the four previous subsections for each group
   that it is an active MCS. Each incoming data AALSDU MUST be examined
   for determining its recipient group, before being forwarded onto the
   appropriate outgoing point-to-multipoint VC.

4.3.1 Group member dropping off a point-to-multipoint VC

   AN ERRL-DROP may be received during the lifetime of a point-to-
   multipoint VC indicating that a leaf node has terminated its
   participation at the ATM level.  The ATM endpoint associated with the
   ERRL-DROP MUST be removed from the locally held set associated with
   the VC. The revalidate flag on the VC MUST be set after a random
   interval of 1 through 10 seconds.

   If an ERRL-RELEASE is received for a VC, then the entire set is
   cleared and the VC considered to be completely shutdown.  A new VC
   for this layer 3 group will be established only on reception of new
   traffic for the group (as described in section 4.3).




Talpade & Ammar              Informational                      [Page 8]

RFC 2149             Multicast Server Architectures             May 1997


4.4 Processing of MARSSJOIN and MARS-SLEAVE

   The MARS transmits equivalent MARSSJOIN/MARS-SLEAVE on the
   ServerControlVC when it receives MARSJOIN/MARS-LEAVE from cluster
   members.  The MCSs keep track of group membership updates through
   these messages.  The format of these messages are identical to
   MARSJOIN and MARS-LEAVE, which are described in section 5.2.1 of
   [GA96].  It is sufficient to note here that these messages carry the
   ATM address of the node joining/leaving the group(/s), the group(/s)
   being joined or left, and a Server Sequence Number from MARS.

   When a MARSSJOIN is seen which refers to (or encompasses) a layer 3
   group (or groups) supported by the MCS, the following action MUST be
   taken.  The new member's ATM address is extracted from the MARSSJOIN.
   An L-MULTIADD is issued for the new member for each of those referred
   groups which have an outgoing point-to-multipoint VC. An LMULTI-RQ is
   issued for the new member for each of those refered groups which have
   no outgoing VCs.

   When a MARSSLEAVE is seen that refers to (or encompasses) a layer 3
   group (or groups) supported by the MCS, the following action MUST be
   taken.  The leaving member's ATM address is extracted.  An LMULTI-
   DROP is issued for the member for each of the refered groups which
   have an outgoing point-to-multipoint VC.

   There is a possibility of the above requests (LMULTI-RQ or LMULTIADD
   or LMULTI-DROP) failing.  The UNI 3.0/3.1 failure cause must be
   returned in the ERRL-RQFAILED signal from the local signaling entity
   to the AAL User.  If the failure cause is not 49 (Quality of Service
   unavailable), 51 (user cell rate not available - UNI 3.0), 37 (user
   cell rate not available - UNI 3.1), or 41 (Temporary failure), the
   endpoint's ATM address is dropped from the locally held view of the
   group by the MCS. Otherwise, the request MUST be re-attempted with
   increasing delay (initial value between 5 to 10 seconds, with delay
   value doubling after each attempt) until it either succeeds or the
   multipoint VC is released or a MARSSLEAVE is received for that group
   member.  If the VC is open, traffic on the VC MUST continue during
   these attempts.

   MARSSJOIN and MARS-SLEAVE are processed differently if multiple MCSs
   share the members of the same layer 3 group (section 5.4).  MARSSJOIN
   and MARSSLEAVE that do not refer to (or encompass) supported groups
   MUST be used to track the Server Sequence Number (section 4.5.1), but
   are otherwise ignored.







Talpade & Ammar              Informational                      [Page 9]

RFC 2149             Multicast Server Architectures             May 1997


4.5 Revalidation Procedures

   The MCS has to initiate revalidation procedures in case of certain
   failures or errors.

4.5.1 Server Sequence Number

   The MCS needs to track the Server Sequence Number (SSN) in the
   messages received on the ServerControlVC from the MARS. It is carried
   in the mar$msn of all messages (except MARSNAK) sent by the MARS to
   MCSs.  A jump in SSN implies that the MCS missed the previous
   message(/s) sent by the MARS. The MCS then sets the revalidate flag
   on all outgoing point-to-multipoint VCs after a random delay of
   between 1 and 10 seconds, to avoid all MCSs inundating the MARS
   simultaneously in case of a more general failure.

   The only exception to the rule is if a sequence number is detected
   during the establishment of a new group's VC (i.e.  a MARSMULTI was
   correctly received, but its mar$msn indicated that some previous MARS
   traffic had been missed on ClusterControlVC). In this case every open
   VC, EXCEPT the one just being established, MUST have its revalidate
   flag set at some random interval between 1 and 10 seconds from the
   time the jump in SSN was detected.  (The VC being established is
   considered already validated in this case).

   Each MCS keeps its own 32 bit MCS Sequence Number (MSN) to track the
   SSN.  Whenever a message is received that carries a mar$msn field,
   the following processing is performed:

        Seq.diff = mar$msn - MSN

        mar$msn -> MSN

        (.... process MARS message ....)

        if ((Seq.diff != 1) && (Seq.diff != 0))
              then (.... revalidate group membership information ....)

   The mar$msn value in an individual MARSMULTI is not used to update
   the MSN until all parts of the MARSMULTI (if > 1) have arrived.  (If
   the mar$msn changes during reception of a MARSMULTI series, the
   MARS-MULTI is discarded as described in section 5.1.1 of [GA96]).

   The MCS sets its MSN to zero on startup.  It gets the current value
   of SSN when it receives the copy of the registration MARSMSERV back
   from the MARS.





Talpade & Ammar              Informational                     [Page 10]

RFC 2149             Multicast Server Architectures             May 1997


4.5.2 Reconnecting to the MARS

   The MCSs are assumed to have been configured with the ATM address of
   at least one MARS at startup.  MCSs MAY choose to maintain a table of
   ATM addresses, each address representing alternative MARS which will
   be contacted in case of failure of the previous one.  This table is
   assumed to be ordered in descending order of preference.

   An MCS will decide that it has problems communicating with a MARS if:

      * It fails to establish a point-to-point VC with the MARS.

      * MARSREQUEST generates no response (no MARSMULTI or MARS-NAK
      returned).

      * ServerControlVC fails.

      * MARSMSERV or MARSUNSERV do not result in their respective copies
      being
        received.

   (reconnection as in section 5.4 in [GA96], with MCS-specific actions
   used where needed).

4.5.3 Revalidating a point-to-multipoint VC

   The revalidation flag associated with a point-to-multipoint VC is
   checked when a layer 3 packet is to be sent out on the VC.
   Revalidation procedures MUST be initiated for a point-to-multipoint
   VC that has its revalidate flag set when a layer 3 packet is being
   sent out on it.  Thus more active groups get revalidated faster than
   less active ones.  The revalidation process MUST NOT result in
   disruption of normal traffic on the VC being revalidated.

   The revalidation procedure is as follows.  The MCS reissues a
   MARSREQUEST for the VC being revalidated.  The returned set of
   members is compared with the locally held set; LMULTI-ADDs MUST be
   issued for new members, and LMULTI-DROPs MUST be issued for non-
   existent ones.  The revalidate flag MUST be reset for the VC.

5 Multiple MCSs for a layer 3 group

   Having a single MCS for a layer 3 group can cause it to become a
   single point of failure and a bottleneck for groups with large
   numbers of active senders.  It is thus desirable to introduce a level
   of fault tolerance by having multiple MCS per group.  Support for
   load sharing is not introduced in this document as to reduce the
   complexity of the protocol.



Talpade & Ammar              Informational                     [Page 11]

RFC 2149             Multicast Server Architectures             May 1997


5.1 Outline

   The protocol described in this document offers fault tolerance by
   using multiple MCSs for the same group.  This is achieved by having a
   standby MCS take over from a failed MCS which had been supporting the
   group.  The MCS currently supporting a group is refered to as the
   active MCS, while the one or more standby MCSs are refered to as
   inactive MCSs.  There is only one active MCS existing at any given
   instant for an MCS-supported group.  The protocol makes use of the
   HELLO messages as described in [LA96].

   To reduce the complexity of the protocol, the following operational
   guidelines need to be followed.  These guidelines need to be enforced
   by out-of-band means which are not specified in this document and can
   be implementation dependent.

      * The set of (one or more) MCSs ("mcslist") that support a
        particular IP Multicast group is predetermined and fixed.  This
        set MUST be known to each MCS in the set at startup, and the
        ordering of MCSs in the set is the same for all MCSs in the set.
        An implementation of this would be to maintain the set of ATM
        addresses of the MCSs in a file, an identical copy of which is
        kept at each MCS in the set.

      * All MCSs in "mcslist" have to be started up together, with the
        first MCS in "mcslist" being the last to be started.

      * A failed MCS cannot be started up again.

5.2 Discussion of Multiple MCSs in operation

   An MCS on startup determines its position in the "mcslist".  If the
   MCS is not the first in "mcslist", it does not register for
   supporting the group with the MARS. If the MCS is first in the set,
   it does register to support the group.
















Talpade & Ammar              Informational                     [Page 12]

RFC 2149             Multicast Server Architectures             May 1997

⌨️ 快捷键说明

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