home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc2102 < prev    next >
Text File  |  1997-02-07  |  51KB  |  1,292 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                     R. Ramanathan
  8. Request for Comments: 2102                 BBN Systems and Technologies
  9. Category: Informational                                   February 1997
  10.  
  11.  
  12.   Multicast Support for Nimrod :  Requirements and Solution Approaches
  13.  
  14.  
  15. Status of this Memo
  16.  
  17.    This memo provides information for the Internet community.  This memo
  18.    does not specify an Internet standard of any kind.  Distribution of
  19.    this memo is unlimited.
  20.  
  21. Abstract
  22.  
  23.    Nimrod does not specify a particular solution for multicasting.
  24.    Rather, Nimrod may use any of a number of emerging multicast
  25.    techniques.  We identify the requirements that Nimrod has of a
  26.    solution for multicast support.  We compare existing approaches for
  27.    multicasting within an internetwork and discuss their advantages and
  28.    disadvantages.  Finally, as an example, we outline the mechanisms to
  29.    support multicast in Nimrod using the scheme currently being
  30.    developed within the IETF - namely, the Protocol Indpendent Multicast
  31.    (PIM) protocol.
  32.  
  33. Table of Contents
  34.  
  35.    1  Introduction.................................................  2
  36.    2  Multicast vs Unicast.........................................  3
  37.    3  Goals and Requirements.......................................  4
  38.    4  Approaches...................................................  6
  39.    5  A Multicasting Scheme based on PIM........................... 10
  40.       5.1 Overview ................................................ 10
  41.       5.2 Joining and Leaving a Tree .............................. 12
  42.           5.2.1 An Example ........................................ 15
  43.       5.3 Establishing a Shared Tree .............................. 16
  44.       5.4 Switching to a Source-Rooted Shortest Path Tree.......... 18
  45.       5.5 Miscellaneous Issues..................................... 20
  46.    6  Security Considerations...................................... 21
  47.    7  Summary...................................................... 21
  48.    8  References................................................... 22
  49.    9  Acknowledgements............................................. 23
  50.    10 Author's Address............................................. 23
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Ramanathan                   Informational                      [Page 1]
  59.  
  60. RFC 2102                Nimrod Multicast Support           February 1997
  61.  
  62.  
  63. 1  Introduction
  64.  
  65.    The nature of emerging applications such as videoconferencing, remote
  66.    classroom, etc.  makes the support for multicasting essential for any
  67.    future routing architecture.  Multicasting is performed by using a
  68.    multicast delivery tree whose leaves are the multicast destinations.
  69.  
  70.    Nimrod does not propose a solution for the multicasting problem.
  71.    There are two chief reasons for this.  First, multicasting is a non-
  72.    trivial problem whose requirements are still not well understood.
  73.    Second, a number of groups (for instance the IDMR working group of
  74.    the IETF) are studying the problem by itself and it is not our
  75.    intention to duplicate those efforts.
  76.  
  77.    This attitude towards multicasting is consistent with Nimrod's
  78.    general philosophy of flexibility, adaptability and incremental
  79.    change.
  80.  
  81.    While a multicasting solution per se is not part of the "core" Nimrod
  82.    architecture, Nimrod does require that the solution have certain
  83.    characteristics.  It is the purpose of this document to discuss some
  84.    of these requirements and evaluate approaches towards meeting them.
  85.  
  86.    This document is organized as follows.  In section 2 we discuss why
  87.    multicasting is treated a little differently than unicast despite the
  88.    fact that the former is essentially a generalization of the latter.
  89.    Following that, in section 4 we discuss current approaches toward
  90.    multicasting .  In section 5, we give an example of how Nimrod
  91.    multicasting may be done using PIM [DEF+94a].  For readers who do not
  92.    have the time to go through the entire document, a summary is given
  93.    at the end.
  94.  
  95.    This document uses many terms and concepts from the Nimrod
  96.    Architecture document [CCS96] and some terms and concepts (in section
  97.    5) from the Nimrod Functionality document [RS96].  Much of the
  98.    discussion assumes that you have read at least the Nimrod
  99.    Architecture document [CCS96].
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Ramanathan                   Informational                      [Page 2]
  115.  
  116. RFC 2102                Nimrod Multicast Support           February 1997
  117.  
  118.  
  119. 2  Multicast vs Unicast
  120.  
  121.    We begin by looking at the similarities and differences between
  122.    unicast routing and multicast routing.  Both unicast and multicast
  123.    routing require two phases - route generation and packet forwarding.
  124.    In the case of unicast routing, Nimrod specifies modes of packet
  125.    forwarding; route generation itself is not specified but left to the
  126.    particular routing agent.  For multicasting, Nimrod leaves both route
  127.    generation and packet forwarding mechanisms unspecified.  To explain
  128.    why, we first point out three aspects that make multicasting quite
  129.    different from unicasting :
  130.  
  131. o Groups and group dynamism.  In multicasting, the destinations are part
  132.   of a group, whose membership is dynamic.  This brings up the following
  133.   issues :
  134.  
  135.   -  An association between the multicast group and the EIDs and
  136.      locators of the members comprising that group.  This is especially
  137.      relevant in the case of sender initiated multicasting and policy
  138.      support.
  139.  
  140.   -  A mechanism to accommodate new group members in the delivery in
  141.      response to addition of members, and a mechanism to "prune" the
  142.      delivery in response to departures.
  143.  
  144. o State creation.  Most solutions to multicasting can essentially be
  145.   viewed as creating state in routers for multicast packet forwarding.
  146.   Based on who creates the state, multicasting solutions differ.  In
  147.   multicasting, we have several options for this - e.g., the sender, the
  148.   receivers or the intermediate routers.
  149.  
  150. o Route generation.  Even more so than in unicast routing, one can choose
  151.   from a rich spectrum of heuristics with different tradeoffs between a
  152.   number of parameters (such as cost and delay, algorithmic time
  153.   complexity and optimality etc.).  For instance, some heuristics produce
  154.   a low-cost tree with high end-to-end delay and some produce trees that
  155.   give the shortest path to each destination but with a higher cost.
  156.   Heuristics for multicasting are a significant research area today, and
  157.   we expect advances to result in sophisticated heuristics in the near
  158.   future.
  159.  
  160.    Noting that there are various possible combinations of route
  161.    generation, group dynamism handling and state creation for a solution
  162.    and that each solution conceivably has applications for which it is
  163.    the most suitable, we do not specify one particular approach to
  164.    multicasting in Nimrod.  Every implementation of Nimrod is free to
  165.    use its own multicasting technique, as long as it meets the goals and
  166.    requirements of Nimrod.  However, for interoperability, it is
  167.  
  168.  
  169.  
  170. Ramanathan                   Informational                      [Page 3]
  171.  
  172. RFC 2102                Nimrod Multicast Support           February 1997
  173.  
  174.  
  175.    necessary that certain things are agreed upon - for instance, the
  176.    structure of the forwarding information database that they create (we
  177.    discuss this in more detail in section 4).
  178.  
  179.    Thus, we do not discuss the details of any multicast solution here,
  180.    only its requirements in the context of Nimrod.  Specifically, we
  181.    structure the discussion in the remainder of this document on the
  182.    following two themes :
  183.  
  184.   o What are the goals that we want to meet in providing multicasting in
  185.     Nimrod, and what specific requirements do these goals imply for the
  186.     multicast solution?
  187.  
  188.   o What are some of the approaches to multicasting being discussed
  189.     currently, and how relevant are each of these approaches to Nimrod?
  190.  
  191. 3  Goals and Requirements
  192.  
  193.    The chief goals of Nimrod multicasting and their implications on
  194.    solution requirements are as follows:
  195.  
  196. 1. Scalability.  Nimrod multicasting must scale in terms of the size of
  197.    the internetwork, the number of groups supported and the number of
  198.    members per group.  It must also support group dynamism efficiently.
  199.    This has the following implications for the solution:
  200.  
  201.    o Routers not on the direct path to the multicast destinations should
  202.      not be involved in state management.  In a network with a large
  203.      number of routers, a solution that does involve such routers is
  204.      unlikely to scale.
  205.  
  206.    o It is likely that there will be a number of applications that have
  207.      a few members per group (e.g., medical imaging) and a number of
  208.      applications that have a large number of members per group (e.g.,
  209.      news distribution).  Nimrod multicasting should scale for both
  210.      these situations.  If no single mechanism adequately scales for
  211.      both sparse and dense group memberships simultaneously, a
  212.      combination of mechanisms should be considered.
  213.  
  214.    o In the face of group membership change, there must be a facility
  215.      for incremental addition or deletion of "branches" in the
  216.      multicast tree.  Reconstructing the tree from scratch is not likely
  217.      to scale.
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Ramanathan                   Informational                      [Page 4]
  227.  
  228. RFC 2102                Nimrod Multicast Support           February 1997
  229.  
  230.  
  231.    o It is likely that we will have some well-known groups (i.e., groups
  232.      which are more or less permanent in existence) and some ephemeral
  233.      groups.  The dynamics of group membership are likely to be
  234.      different for each class of groups, and the solution should take
  235.      that into account as appropriate.
  236.  
  237. 2. Policy support.  This includes both quality of service (QOS) as
  238.    well as access restrictions, although currently, demand is probably
  239.    higher for QOS. In particular, every path from a source to each
  240.    destination in the multicast group should satisfy the requested
  241.    quality of service and conform to the access restrictions.  The
  242.    implications for the multicasting solution are :
  243.  
  244.   o It is likely that many multicasting applications will be cost
  245.     conscious in addition to having strict quality of service bounds
  246.     (such as delay and jitter).  Balancing these will necessitate
  247.     dealing with some new parameters - e.g., the tree cost (sum of the
  248.     "cost" of each link), the tree delay (maximum, mean and variance
  249.     in end-to-end delay) etc.
  250.  
  251.   o In order to support policy-based routing, we need to know where the
  252.     destinations are (so that we can decide what route we can take to
  253.     them).  In such a case, a mechanism that provides an association
  254.     between a group id and a set of destination locators is probably
  255.     required.
  256.  
  257.   o Some policy constraints are likely to be destination specific.  For
  258.     instance, a domain might refuse transit service to traffic going to
  259.     certain destination domains.  This presents certain unique problems
  260.     - in particular, for a single group, multiple trees may need to be
  261.     built, each tree "servicing" disjoint partitions of the multicast
  262.     destinations.
  263.  
  264. 3. Resource sharing.  Multicasting typically goes hand in hand with large
  265.    traffic volume or applications with a high demand for resources.
  266.    These, in turn, imply efficient resource management and sharing if
  267.    possible.  Therefore, it is important that we place an emphasis on
  268.    interaction with resource reservation.  For instance, Nimrod must be
  269.    able to provide information on which tree resources are shareable and
  270.    which are not so that resource reservation may use it while allocating
  271.    resources to flows.
  272.  
  273. 4. Interoperability.  There are two issues in this context.  First, the
  274.    solution must be independent of mechanisms that provide the solution
  275.    with information it needs.  For instance, many multicast solutions
  276.    (e.g., PIM) make use of information supplied by unicast routing
  277.    protocols.  The multicast solution must not be dependent on which
  278.    unicast protocol is used.
  279.  
  280.  
  281.  
  282. Ramanathan                   Informational                      [Page 5]
  283.  
  284. RFC 2102                Nimrod Multicast Support           February 1997
  285.  
  286.  
  287.    Second, a multicast solution must interoperate with other multicast
  288.    solutions in the construction of a delivery tree.  This implies some
  289.    kind of "agreement" at some "level".  For instance, the agreement
  290.    could be that everybody use the same structure for storing forwarding
  291.    information in the routers.  Since the delivery tree is defined by the
  292.    nature of forwarding information in the routers and not by the
  293.    particular mechanism used to create that information, multiple
  294.    implementations can coexist.
  295.  
  296. 4  Approaches
  297.  
  298.    The approaches to multicasting currently in operation and those being
  299.    considered by the IETF include the following :
  300.  
  301. 1. Distance vector multicast routing protocol (DVMRP)[DC90].  This
  302.    approach is based upon distance-vector routing information distribution
  303.    and hop-by-hop forwarding.  It uses Reverse Path Forwarding (RPF)[DM78]
  304.    - a distributed algorithm for constructing an internetwork broadcast
  305.    tree.  DVMRP uses a modified RPF algorithm, essentially a truncated
  306.    broadcast tree, to build a reverse shortest path sender-based multicast
  307.    delivery tree.  A reverse shortest path from s to d is a path that uses
  308.    the same intermediate nodes as those in the shortest path from d to
  309.    s (If the paths are symmetric (i.e., cost the same) in either
  310.    direction, the reverse shortest path is same as the shortest path.)
  311.    An implementation of RPF exists in the current Internet in what
  312.    is commonly referred to as the MBONE. An improvement to this is in the
  313.    process of being deployed.  It incorporates "prune" messages to
  314.    truncate further the routers not on the path to the destinations and
  315.    "graft" messages to undo this truncation, if later necessary.
  316.  
  317.    The main advantage of this scheme is that it is simple.  The major
  318.    handicap is scalability.  Two issues have been raised in this
  319.    context[BFC93].  First, if S is the number of active sources and G
  320.    the number of groups, then the state overhead is O(GS) and might be
  321.    unacceptable when resources are limited.  Second, routers not on a
  322.    multicast tree are involved (in terms of sending/tracking prune and
  323.    graft messages) even though they might not be interested in the
  324.    particular source-group pair.  The performance of this scheme is
  325.    expected to be relatively poor for large networks with sparsely
  326.    distributed group membership.  Furthermore, no support for policies
  327.    or QOS is provided.
  328.  
  329. 2. Core Based Trees (CBT)[BFC93].  This scheme uses a single tree shared
  330.    by all sources per group.  This tree has a single router as the core
  331.    (with additional routers for robustness) from which branches emanate.
  332.    The chief distinguishing characteristic of CBT is that it is receiver
  333.    initiated, i.e., receivers wishing to join a multicast group find the
  334.    tree (or its core) and attach themselves to it, without any
  335.  
  336.  
  337.  
  338. Ramanathan                   Informational                      [Page 6]
  339.  
  340. RFC 2102                Nimrod Multicast Support           February 1997
  341.  
  342.  
  343.    participation from the sources.
  344.  
  345.    The chief motivation behind this scheme is the reduction of the state
  346.    overhead, to O(G), in comparison to DVMRP and PIM(described below).
  347.    Also, only routers in the path between the core and the potential
  348.    members are involved in the process.  Core-based tree formation and
  349.    packet flow are decoupled from underlying unicast routing.
  350.  
  351.    The main disadvantage is that packets no longer traverse the shortest
  352.    path from the source to their destinations.  The performance in
  353.    general depends on judicious placement of cores and coordination
  354.    between them.  Traffic concentration on links incident to the core is
  355.    another problem.  There is also a dependence on network entities (in
  356.    other administrative domains, for instance) for resource reservation
  357.    and policy routing.
  358.  
  359. 3. Protocol Independent Multicasting (PIM)[DEFJ93].  Yet another approach
  360.    based on the receiver initiated philosophy, this is designed to reap
  361.    the advantages of DVMRP and CBT. Using a "rendezvous point", a
  362.    concept similar to the core discussed above, it allows for the
  363.    simultaneous existence of shared and source-specific multicast trees.
  364.    In the steady state, data can be delivered over the reverse shortest
  365.    path from the sender to the receiver (for better end-to-end delay) or
  366.    over the shared tree.
  367.  
  368.    Using two modes of operation, sparse and dense, this provides
  369.    improved performance, both when the group membership in an
  370.    internetwork is sparse and when it is dense.  It is however, a
  371.    complex protocol.  A limitation of PIM is that the shortest paths are
  372.    based on the reverse metrics and therefore truly "shortest" only when
  373.    the links are symmetric.
  374.  
  375. 4. Multicast Open Shortest Path First (MOSPF)[Moy92].  Unlike the
  376.    abovementioned approaches, this is based on link-state routing
  377.    information distribution.  The packet forwarding mechanism is
  378.    hop-by-hop.  Since every router has complete topology information,
  379.    every router computes the shortest path multicast tree from any
  380.    source to any group using Dijkstra's algorithm.  If the router
  381.    doing the computation falls within the tree computed, it can
  382.    determine which links it must forward copies onto.
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Ramanathan                   Informational                      [Page 7]
  395.  
  396. RFC 2102                Nimrod Multicast Support           February 1997
  397.  
  398.  
  399.    MOSPF inherits advantages of OSPF and link-state distribution, namely
  400.    localized route computation (and easy verification of loop-freedom),
  401.    fast convergence to link-state changes etc. However, group membership
  402.    information is sent throughout the network, including links that are
  403.    not in the direct path to the multicast destinations.  Thus, like
  404.    DVMRP, this is most suitable for small internetworks, that is, as an
  405.    intra-domain routing mechanism.
  406.  
  407. 5. Inter-Domain Policy Routing (IDPR)[Ste].  This approach uses
  408.    link-state routing information distribution like MOSPF, but uses
  409.    source-specified packet forwarding.  Using the link-state
  410.    database, the source generates a policy multicast route to the
  411.    destinations.  Using this, the IDPR path-setup procedure sets up
  412.    state in intermediate entities for packet duplication and
  413.    forwarding. The state contains information about the next-hop
  414.    entities for the multicast flow.  When a data packet arrives,
  415.    it is forwarded to each next hop entity obtained from the state.
  416.  
  417.    Among the advantages of this approach are its ability to support
  418.    policy based multicast routing with ease and independence
  419.    (flexibility) in the choice of multicasting algorithm used at the
  420.    source.  IDPR also allows resource sharing over multiple multicast
  421.    trees.  The major disadvantage is that it makes it relatively more
  422.    difficult to handle group membership changes (additions and
  423.    deletions) since such changes must be first communicated to the
  424.    source of the tree which will then add branches appropriately.
  425.  
  426.    We now discuss the applicability of these approaches to Nimrod.
  427.    Common to all of the approaches described is the fact that we need to
  428.    set up state in the intermediate routers for multicast packet
  429.    forwarding.  The approaches differ mainly on who initiates the state
  430.    creation - the sender (e.g., IDPR, PIM), the receiver (e.g., CBT,
  431.    PIM) or the routers themselves create state without intitiation by
  432.    the sender or receivers (e.g., DVMRP, MOSPF).
  433.  
  434.    Nimrod should be able to accommodate both sender initiated as well as
  435.    receiver initiated state creation for multicasting.  In the remainder
  436.    of this section, we discuss the pros and cons of these approaches for
  437.    Nimrod.
  438.  
  439.    Nimrod uses link-state routing information distribution (topology
  440.    maps) and has four modes of packet forwarding - flow mode,
  441.    Connectivity Specification Chain (CSC) mode, Connectivity
  442.    Specification Sequence (CSS) mode and datagram mode [CCS96].
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Ramanathan                   Informational                      [Page 8]
  451.  
  452. RFC 2102                Nimrod Multicast Support           February 1997
  453.  
  454.  
  455.    An approach similar to that used in IDPR is viable for multicasting
  456.    using the flow mode.  The source can set up state in intermediate
  457.    routers which can then appropriately duplicate packets.  For the CSC,
  458.    BTES and datagram modes, an approach similar to the one used in MOSPF
  459.    is applicable.  In these situations, the advantages and disadvantages
  460.    of these approaches in the context of Nimrod is similar to the
  461.    advantages and disadvantages of IDPR and MOSPF respectively.
  462.  
  463.    Sender based trees can be set up using an approach similar to IDPR
  464.    and generalizing it to an "n" level hierarchy.  A significant
  465.    advantage of this approach is policy-based routing.  The source knows
  466.    about the policies of nodes that care to advertise them and can
  467.    choose a route the way it wants (i.e., not depend upon other entities
  468.    to choose the route, as in some schemes mentioned above).  Another
  469.    advantage is that each source can use the multicast route generation
  470.    algorithm and packet forwarding scheme that best suits it, instead of
  471.    being forced to use whatever is implemented elsewhere in the network.
  472.    Further, this approach allows for incrementally deploying new
  473.    multicast tree generation algorithms as research in that area
  474.    progresses.
  475.  
  476.    CBT-like methods may be used to set up receiver initiated trees.
  477.    Nimrod provides link-state maps for generating routes and a CBT-like
  478.    method is compatible with this.  For instance, a receiver wishing to
  479.    join a group may generate a (policy) route to the core for that group
  480.    using its link-state map and attach itself to the tree.
  481.  
  482.    A disadvantage of sender based methods in general seems to be the
  483.    support of group dynamism.  Specifically, if there is a change in the
  484.    membership of the group, the particular database which contains the
  485.    group-destination mapping must be updated.  In comparison, receiver
  486.    oriented approaches seem to be able to accommodate group dynamism
  487.    more naturally.
  488.  
  489.    Nimrod does not preclude the simultaneous existence of multiple
  490.    approaches to multicasting and the possibility of switching from one
  491.    to the other depending on the dynamics of group distributions.
  492.    Interoperability is an issue - that is, the question of whether or
  493.    not different implementations of Nimrod can participate in the same
  494.    tree.  However, as long as there is agreement in the structure of the
  495.    state created (i.e., the states can be interpreted uniformly for
  496.    packet forwarding), this should not be a problem.  For instance, a
  497.    receiver wishing to join a sender created tree might set up state on
  498.    a path between itself and a router on the tree with the sender itself
  499.    being unaware of it.  Packets entering the router would now be
  500.    additionally forwarded along this new "branch" to the new receiver.
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Ramanathan                   Informational                      [Page 9]
  507.  
  508. RFC 2102                Nimrod Multicast Support           February 1997
  509.  
  510.  
  511.    In conclusion, the architecture of Nimrod can accommodate diverse
  512.    approaches to multicasting.  Each approach has its disadvantages with
  513.    respect to the requirements mentioned in the previous section.  The
  514.    architecture does not demand that one particular solution be used,
  515.    and indeed, we expect that a combination of approaches will be
  516.    employed and engineered in a manner most appropriate to the
  517.    requirements of the particular application or subscriber.
  518.  
  519. 5  A Multicasting Scheme based on PIM
  520.  
  521.    The Inter-Domain Multicast Routing (IDMR) working group of the IETF
  522.    has developed a specification for a new multicast scheme, namely,
  523.    Protocol Independent Multicasting (PIM) for use in the Internet
  524.    [DEF+94a, DEF+94b].  In this section, we decribe how the schemes
  525.    mentioned therein may be implemented using the facilities provided by
  526.    Nimrod.
  527.  
  528.    We note that the path setup facility provided in Nimrod makes it very
  529.    conducive to PIM-style multicasting; despite the length of the
  530.    description given here, we assure the reader that it is quite simple
  531.    to implement PIM style multicasting in Nimrod.
  532.  
  533.    Before reading this section, we recommend that the reader acquire
  534.    some familiarity with PIM (see [DEF+94a, DEF+94b]).
  535.  
  536. 5.1  Overview
  537.  
  538.    The PIM architecture maintains the traditional IP multicast service
  539.    model of receiver-initiated membership and is independent of any
  540.    specific unicast routing protocol (hence the name).
  541.  
  542.    A significant aspect of PIM is that it provides mechanisms for
  543.    establishing two kinds of trees - a shared tree, which is intended
  544.    for low "cost" multicasting and a source-based tree, intended for low
  545.    delay multicasting.
  546.  
  547.    A shared tree is rooted at a rendezvous point (RP), which is
  548.    typically a prespecified router for the multicast group in question.
  549.    In order to establish a shared tree, a designated router (DR) for a
  550.    host wishing to join a group G initiates a flow setup from the RP for
  551.    G to the DR. A source S wishing to send to a group G initiates a flow
  552.    setup between S and the RP for group G. At the conclusion of these
  553.    flow setups, packets can be forwarded from S to H through the RP. For
  554.    details on the protocol used to implement this flow setup please
  555.    refer to [DEF+94b].
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Ramanathan                   Informational                     [Page 10]
  563.  
  564. RFC 2102                Nimrod Multicast Support           February 1997
  565.  
  566.  
  567.    After the shared tree has been setup, a recipient for group G has the
  568.    option of switching to a source-based shortest path tree.  In such a
  569.    tree, packets are delivered from the source to each recipient along
  570.    the shortest path.  To establish a source-based shortest path tree,
  571.    the DR for H looks at the source S of the packets it is receiving via
  572.    the shared tree and establishes a flow between S and the DR. The flow
  573.    is established along the shortest path from the DR to S (Thus,
  574.    strictly speaking, it is the reverse shortest path that is being
  575.    used.) Subsequently, packets can be forwarded from S to H using this
  576.    shortest path and thereby bypassing the RP. For details on the
  577.    protocol used to implement source-based trees in PIM please refer to
  578.    [DEF+94b].
  579.  
  580.    When a host wishes to leave a multicast group, its designated router
  581.    sends a prune message towards the source (for source-based trees) or
  582.    towards the RP (for shared trees).  For details on this and other
  583.    features of PIM please refer to [DEF+94b].
  584.  
  585.    In Nimrod, PIM is implemented as follows (we refer to PIM based
  586.    multicast as Nimpim).  In order to join a shared tree, an endpoint
  587.    (or an agent acting on behalf of the endpoint) wishing to join a
  588.    group G queries the association database for the EID and locator of
  589.    the RP for G (for well-known groups the association may be
  590.    configured).  It is required that such an association be maintained
  591.    for every multicast group G. The endpoint gets a route for the RP and
  592.    initiates a multicast flow setup to the RP (a multicast flow setup is
  593.    similar to an unicast flow setup described in [CCS96] except for one
  594.    feature - when a multicast flow setup request reaches a node that
  595.    already has that flow present, the request is not forwarded further.
  596.    The new flow gets "spliced" in as a new branch of the existing
  597.    multicast tree).  Similarly, the source establishes a flow to the RP.
  598.    The RP creates state to associate these two flows and now packets can
  599.    be forwarded to the endpoints from the source.  Note that each flow
  600.    setup may be "hierarchical" and involve many subflows.  All this,
  601.    however, is transparent to Nimpim.  For details on management of
  602.    hierarchical flows please refer to [CCS96].
  603.  
  604.    To create the source-based tree, the representative for a recipient
  605.    node N obtains the EID or locator of the source from the data packets
  606.    and initiates a multicast flow setup to the source.  The route agent
  607.    for the node N uses its map in order to calculate the shortest path
  608.    from the source to N. The flow request is sent along the reverse of
  609.    this path.  We note that the "shortness" of the path is constrained
  610.    by the amount of routing information available locally.  However,
  611.    since the map is available locally, one can find the actual shortest
  612.    path from the source to N and not use the shortest path from N to S.
  613.    Thus, with Nimrod one can actually surmount a shortcoming of PIM with
  614.    relative ease.
  615.  
  616.  
  617.  
  618. Ramanathan                   Informational                     [Page 11]
  619.  
  620. RFC 2102                Nimrod Multicast Support           February 1997
  621.  
  622.  
  623.    We now discuss some more details of Nimpim.  We start with a
  624.    description of multicast flow setup.  This is the "basic"
  625.    functionality required to implement multicasting.  Having this
  626.    "building-block" spelt out, we use this to specify the establishment
  627.    of the shared tree (in section 5.3) and the establishment of a
  628.    source-based tree (in section 5.4).
  629.  
  630.    We only discuss sparse-mode multicasting, as described in [DEF+94a]
  631.    here.  Further, to simplify the discussion, we assume a single
  632.    Rendezvous Point per group.  Finally, we "address" all entities in
  633.    terms of their EIDs alone for reasons of conciseness - the locators
  634.    could be used in conjuction to reduce the overhead of database
  635.    lookups.
  636.  
  637. 5.2  Joining and Leaving a Tree
  638.  
  639.    Nimpim uses two control packets in order to setup a flow - the Nimrod
  640.    Multicast Flow-Request packet (NMFReq) and the Nimrod Multicast
  641.    Flow-Reply packet (NMFRep).
  642.  
  643.    The NMFReq packet is a control packet identified by a prespecified
  644.    "payload type".  The protocol-specific part of this packet includes
  645.    the following fields (except for the Code field, these fields are
  646.    present in the Unicast Flow-Request packet too) :
  647.  
  648.    1. S-EID : The EID of the initiator of the flow.
  649.  
  650.    2. T-EID : The EID of the target of the flow.
  651.  
  652.    3. Flow-id :  A label denoting the flow.
  653.  
  654.    4. Direction :  The direction of the flow - whether from the initiator
  655.       to the target (FORW) or from the target to the initiator (REVERSE)
  656.       or both (BOTH).
  657.  
  658.    5. Code :  Denotes whether the packet is for joining a flow
  659.       (NMFReq-Join) for leaving a flow (NMFReq-Prune).
  660.  
  661.    6. Source Route :  A sequence of node locators through which the packet
  662.       must travel.
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Ramanathan                   Informational                     [Page 12]
  675.  
  676. RFC 2102                Nimrod Multicast Support           February 1997
  677.  
  678.  
  679.    The processing of the NMFReq by a forwarding agent at node N is
  680.    similar to that of the unicast flow request (see [CCS96]), except for
  681.    the fact that now we provide the ability for the new flow to "splice"
  682.    onto an existing delivery tree or "un-splice" from an existing
  683.    delivery tree.  Specifically,
  684.  
  685.    o If the Code is NMFReq-Join then the algorithm executed by the
  686.      forwarding agent for node N is shown in Figure 1.
  687.  
  688.    o If the Code is NMFReq-Prune then the algorithm is executed by the
  689.      forwarding agent at node N is shown in Figure 2.
  690.  
  691.    The NMFRep packet is used to accept or reject an NMFReq-Join or
  692.    NMFReq-Prune.  The packet format is the same as that for unicast flow
  693.    request.  However, an NMFRep packet is generated now by the first
  694.    node N that grafts the new flow to the existing tree.  This may be
  695.    different from the target of the NMFReq.
  696.  
  697.    It is required that a leaf router keep track of all hosts currently
  698.    joined to the group and send a prune message only if there is no host
  699.    in the local network for the group.
  700.  
  701.    The NMFReq - NMFRep exchanges constitute a procedure for joining a
  702.    multicast delivery tree (when the Code is Join) and for leaving a
  703.    multicast delivery tree (when the Code is Prune).  We term these
  704.    procedures Tree-Join and Tree-Leave respectively; we shall be using
  705.    these procedures as "building-blocks" in the construction of shared
  706.    trees (section 5.3) and of source-based trees (section 5.4).
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Ramanathan                   Informational                     [Page 13]
  731.  
  732. RFC 2102                Nimrod Multicast Support           February 1997
  733.  
  734.  
  735. begin
  736. if the flow-id F in NMFReq-Join is in flow-list then
  737.    if T-EID in NMFReq-Join = target in flow state for F then
  738.       if Direction in NMFReq-Join is REVERSE or BOTH then
  739.          Add the node preceding N in source route to child list for F
  740.       else
  741.          discard packet
  742.    else
  743.       discard packet
  744. else
  745.    begin
  746.      install state for F in N, i.e.,
  747.         assign parent(F) = node succeeding N in source route
  748.         assign child(F)  = node preceeding N in source route
  749.         assign target(F) = T-EID in NMFReq-Join
  750.      forward NMFReq-Join to parent(F)
  751.    end
  752. end.
  753.  
  754.  
  755.  
  756. Figure 1:  Algorithm executed by a forwarding agent for node N when
  757. when it receives an NMFReq-Join.
  758.  
  759.  
  760.  
  761. begin
  762.   if the flow-id F in NMFReq-Prune is in flow-list
  763.   then begin
  764.        delete previous hop in source route from child list for F, if exists
  765.        if child list for F is empty
  766.        then begin
  767.              delete the flow-id and state associated with it
  768.              forward to next hop in source route
  769.             end
  770.        else discard packet
  771.        end
  772.   else forward to next hop in source-route
  773. end.
  774.  
  775.  
  776.  
  777. Figure 2:  Algorithm executed by a forwarding agent for node N when it
  778. receives an NMFReq-Prune.
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Ramanathan                   Informational                     [Page 14]
  787.  
  788. RFC 2102                Nimrod Multicast Support           February 1997
  789.  
  790.  
  791. 5.2.1  An Example
  792.  
  793.    An example of how a tree is joined is given here with the help of
  794.    Figure 3.  In the figure, bold lines indicate an existing tree.
  795.    Representative R on behalf of host H joins the tree by sending an
  796.    NMFJoin-Req towards a target T. When used in the shared tree mode,
  797.    the target is the RP and when used in the source tree mode, it is the
  798.    source (root) of the multicast tree.  Suppose that a host H wants to
  799.    join the multicast tree.  The following steps are executed :
  800.  
  801. Step 1.  A representative R of H queries the route agent for a route
  802.     from T to R. It obtains the route T - C- B - A - R. It builds a
  803.     NMFJoin-Req packet with source route as R, A, B, C, T and flow
  804.     as F forwards it to A.
  805.  
  806. Step 2.  A looks for flow F in its installed flow database and
  807.     doesn't find it.  It installs state for F (makes R a child and
  808.     B a parent in the multicast tree) and sends the NMFJoin-Req packet
  809.     to B.
  810.  
  811. Step 3.  B looks for flow F in its installed flow database and finds it.
  812.     It adds B to its child list and constructs an NMFJoin-Rep packet and
  813.     sends it to A.
  814.  
  815. Step 4.  A forwards the packet to R and the tree joining is complete.
  816.     Branch B-A-R is now added to the tree.
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Ramanathan                   Informational                     [Page 15]
  843.  
  844. RFC 2102                Nimrod Multicast Support           February 1997
  845.  
  846.  
  847. 5.3  Establishing a Shared Tree
  848.  
  849.    There are two parts to establishing a shared tree - the receiver-to-
  850.    RP communication wherein the receiver joins the delivery tree rooted
  851.    at RP and the sender-to-RP communication wherein the RP joins the
  852.    delivery tree rooted at the sender.
  853.  
  854.  
  855.                                        T
  856.                                     +---+
  857.                                     |   |\
  858.                                     +---+  \
  859.                                       /      \
  860.                                      /         \
  861.                                   C /            \ X
  862.                                 +---+           +---+
  863.                                 |   |           |   |
  864.                                 +---+           +---+
  865.                                      \
  866.                                        \
  867.                                          \
  868.       R    join-req           join-req     \  B
  869.       +---+ - - - - ->  +---+ - - - - -> +---+
  870.       |   |<------------|   |<-----------|   |
  871.       +---+   join-rep  +---+   join-rep +---+
  872.         |                 A                 \
  873.         |                                     \
  874.         |                                       \     Y
  875.        ( )                                        +---+
  876.          H                                        |   |
  877.                                                   +---+
  878.  
  879. Figure 3:  Illustration for the example describing joining an existing
  880. multicast tree.
  881.  
  882.    Receiver-RP Communications:  When an endpoint wishes to join a
  883.    multicast group G, the endpoint representative obtains the Rendezvous
  884.    Point EID for G.  We assume that the association database contains
  885.    such a mapping.  For details on how the association database query is
  886.    implemented, please refer [CCS96].
  887.  
  888.    The representative also obtains the flow-id to be used for the flow.
  889.    The flow-id is constructed as the tuple (RP-EID, G) or an equivalent
  890.    thereof.  Note that the flow-id must be unique to the particular
  891.    multicast flow.  This is not the only method or perhaps even the best
  892.    method for obtaining a flow id.  Alternate methods for obtaining the
  893.    flow-id are discussed in section 5.5.
  894.  
  895.  
  896.  
  897.  
  898. Ramanathan                   Informational                     [Page 16]
  899.  
  900. RFC 2102                Nimrod Multicast Support           February 1997
  901.  
  902.  
  903.    The representative then initiates a Tree-Join procedure.
  904.  
  905.    The NMFReq packet fields are as follows:
  906.  
  907.      o S-EID : The EID of the endpoint wishing to join.
  908.  
  909.      o T-EID : The RP EID (obtained from the Association Database).
  910.  
  911.      o Flow-id : The flow-id for this group (obtained as mentioned
  912.        above).
  913.  
  914.      o Direction : REVERSE (from the RP to the receiving endpoint).
  915.  
  916.      o Code : Join.
  917.  
  918.      o Source Route : Reverse of the route obtained from the map agent
  919.        for a query "from RP-EID to Receiver-EID".
  920.  
  921.    At the first node already containing this Flow-id or the RP, an
  922.    NMFRep packet is generated.  The S-EID, T-EID, Direction and Flow-id
  923.    fields are copied from the NMFReq packet and the Code is set to
  924.    Join-Accept or Join-Refuse as the case may be.  The source route is
  925.    reversed from the NMFReq packet.
  926.  
  927.    Sender-RP Communications: When an endpoint wishes to send to a
  928.    multicast group G, the endpoint representative obtains the Rendezvous
  929.    Point EID for G.  We assume that the association database contains
  930.    such a mapping.  For details on how the association database query is
  931.    implemented, please refer [CCS96].
  932.  
  933.    The representative also obtains the flow-id to be used for the flow.
  934.    The flow-id is constructed as the tuple (Sender-EID, G) or an
  935.    equivalent thereof.  Note that the flow-id must be unique to the
  936.    particular multicast flow.  This is not the only method or perhaps
  937.    even the best method for obtaining a flow id.  Alternate methods for
  938.    obtaining the flow-id are discussed in section 5.5.
  939.  
  940.    The representative then sends a RP-Register Message to the RP. This
  941.    register message is equivalent to the PIM-Register described in
  942.    [DEF+94b].  The RP-Register message contains the group G and the
  943.    flow-id (obtained as discussed above) and the sender EID.
  944.  
  945.    The RP then initiates a Tree-Join with the Sender EID as the target.
  946.    The NMFReq fields are as follows :
  947.  
  948.      o S-EID : RP-EID.
  949.  
  950.      o T-EID : Sender EID (copied from RP-Register Message).
  951.  
  952.  
  953.  
  954. Ramanathan                   Informational                     [Page 17]
  955.  
  956. RFC 2102                Nimrod Multicast Support           February 1997
  957.  
  958.  
  959.      o Flow-id :  The flow-id field from RP-Register Message.
  960.  
  961.      o Code :  Join.
  962.  
  963.      o Direction :  REVERSE.
  964.  
  965.      o Source Route :  Reverse of the route obtained from map agent
  966.        query "from Sender-EID to RP-EID".
  967.  
  968.    The NMFRep fields are obvious.
  969.  
  970.    Shared Tree Data Forwarding: Packets sent from the source for group G
  971.    contain the Flow-id used by the sender(s) and receiver(s) for setting
  972.    up the delivery tree.  The packets from the sender are sent to the RP
  973.    where they are multicast, using the state created for the flow, into
  974.    the delivery tree rooted at the RP to all of the receivers that did a
  975.    Tree-Join.
  976.  
  977. 5.4  Switching to a Source-Rooted Shortest Path Tree
  978.  
  979.    There are two parts involved in switching to a Source-Rooted Shortest
  980.    Path Tree - the receiver-source communications wherein the receiver
  981.    joins a multicast delivery tree rooted at the source and the
  982.    receiver-RP communications wherein the receiver leaves the shared
  983.    tree.
  984.  
  985.    Receiver-Source Communications:  An endpoint E that is receiving
  986.    packets through the shared tree from source S has the option of
  987.    switching to a delivery tree rooted at the source such that packets
  988.    from S to E traverse the shortest path (using whatever metric).
  989.  
  990.    The endpoint representative of E obtains the flow-id to be used for
  991.    the flow.  The flow-id is constructed equivalently to the tuple
  992.    (Source-EID, G).  Note that the flow-id must be unique to the
  993.    particular multicast flow.  This is not the only method or perhaps
  994.    even the best method for obtaining a flow id.  Alternate methods for
  995.    obtaining the flow-id are discussed in section 5.5.
  996.  
  997.    The representative for E initiates a Tree-Join toward S with NMFReq
  998.    fields as follows:
  999.  
  1000.    o S-EID : EID of the Endpoint E.
  1001.  
  1002.    o T-EID : EID of the source.
  1003.  
  1004.    o Flow-id :  Flow id for the multicast (obtained as mentioned above).
  1005.  
  1006.    o Code :  Join.
  1007.  
  1008.  
  1009.  
  1010. Ramanathan                   Informational                     [Page 18]
  1011.  
  1012. RFC 2102                Nimrod Multicast Support           February 1997
  1013.  
  1014.  
  1015.    o Direction :  REVERSE.
  1016.  
  1017.    o Source Route : To obtain the route, the route agent is queried for
  1018.      a shortest path route (based on the chosen metric, typically, the
  1019.      delay) from the source to the endpoint.  We note that the quality
  1020.      of the route is constrained by the amount of routing information
  1021.      available, directly or indirectly, to the route agent.  The Source
  1022.      Route is the reverse of the route thus obtained.
  1023.  
  1024.    A comment on the difference between the shortest-path trees obtained
  1025.    using the RPF tree as in [DEF+94b, DC90] and the trees that are be
  1026.    obtained here.  When using the RPF scheme, the packets from the
  1027.    source S to the endpoint E follow a path that is the shortest path
  1028.    from E to S. This is the desired path if and only if the path is
  1029.    symmetric in either direction.  However, in the mechanism described
  1030.    here for Nimrod, the packets do follow the "actual" shortest path
  1031.    from S to E whether or not the path is symmetric.
  1032.  
  1033.    The NMFRep fields are obvious.
  1034.  
  1035.    Receiver-RP Communications: After the receiver has joined the
  1036.    source-rooted tree, it can optionally disassociate itself from the
  1037.    shared tree.  This is done by initiating a Tree-Leave procedure.
  1038.  
  1039.    The representative sends a NMFReq packet toward the RP with the
  1040.    fields as follows.
  1041.  
  1042.    o S-EID : The EID of the endpoint wishing to leave the shared tree.
  1043.  
  1044.    o T-EID : The RP-EID.
  1045.  
  1046.    o Flow-id :  The flow-id it used to join the shared tree.
  1047.  
  1048.    o Code :  Prune.
  1049.  
  1050.    o Direction :  REVERSE.
  1051.  
  1052.    o Source Route :  Obtained as for the Tree-Join.
  1053.  
  1054.    The prune packet is processed by the intermediate forwarding agents
  1055.    as mentioned in section 5.2.  When the receiver gets back the NMFRep
  1056.    packet, the receiver has left the shared tree.
  1057.  
  1058.    Source Tree Data Forwarding: Packets from the source contain the
  1059.    flow-id that was used to join the source tree for a given multicast
  1060.    group.  Forwarding agents simply use the state created by the Tree-
  1061.    Join procedure in order to duplicate and forward packets toward the
  1062.    receivers.
  1063.  
  1064.  
  1065.  
  1066. Ramanathan                   Informational                     [Page 19]
  1067.  
  1068. RFC 2102                Nimrod Multicast Support           February 1997
  1069.  
  1070.  
  1071. 5.5  Miscellaneous Issues
  1072.  
  1073.    Obtaining the Flow-Id: In the above scheme the flow-id for a
  1074.    particular multicast group G was obtained by combining the RP-EID and
  1075.    the group set-id (G-SID) (in case of shared tree) or by combining the
  1076.    Source-EID and the G-SID (in case of source-based tree).  A
  1077.    disadvantage of this approach is that the bit-length of EID/SID is
  1078.    potentially high (more than 64 bits) and thus the flow-id could be
  1079.    very long.  While there do exist bit-based data structures and search
  1080.    algorithms (such as Patricia Trees) that may be used for an efficient
  1081.    implementation, it is worth considering some other methods in lieu of
  1082.    using the EID/SID combination.  We describe some methods below :
  1083.  
  1084. 1. For shared trees, the flow-id for a particular group G may be stored
  1085.    and updated in the association database.  Since we have to use the
  1086.    association database anyway to obtain the RP-EID, these does not cause
  1087.    much additional burden.
  1088.  
  1089.    However, this cannot be used efficiently for source-based trees because
  1090.    we need a flow-id for each combination of Source and Group.
  1091.  
  1092. 2. The flow-id for shared trees could be done as above.  When the sender
  1093.    does an RP-Register, it could send the RP the flow-id that it wishes to
  1094.    be used by receivers when they switch to a source-based tree.  This
  1095.    could be included in the RP-Register message.  The RP could then
  1096.    multicast that flow-id to all receivers in a special packet.  When the
  1097.    receivers wish to switch, they use that flow-id.
  1098.  
  1099.    This needs the definition of the "special" packet.
  1100.  
  1101. 3. The flow-id is handed out only by the source (for source-based trees)
  1102.    or the RP (for shared trees).  The receivers use a "dummy" flow-id in
  1103.    the NMFReq when doing a Tree-Join.  The correct flow-id to be used is
  1104.    returned in the NMFRep message generated by the forwarding agent where
  1105.    the new branch meets the existing tree.  Forwarding agents in the path
  1106.    of the NMFRep packet update the state information by rewriting the
  1107.    dummy flow-id by the correct flow-id contained in the NMFRep packet.
  1108.  
  1109.    This requires the re-definition of the NMFRep packet.  Note that now
  1110.    there must be space for two flow-ids in the NMFRep packet - one for the
  1111.    "dummy" flow-id and the other for the "correct" flow-id that must
  1112.    replace the dummy flow-id.
  1113.  
  1114.    We claim that each of the above schemes achieves synchronization in
  1115.    the flow-id in various parts of the internetwork and that each flow-
  1116.    id is unique to the multicast delivery tree.  A formal proof of these
  1117.    claims is beyond the scope of this document.
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Ramanathan                   Informational                     [Page 20]
  1123.  
  1124. RFC 2102                Nimrod Multicast Support           February 1997
  1125.  
  1126.  
  1127.    Dense Mode Multicast:  The PIM architecture [DEF+94a] includes a
  1128.    multicast protocol when the group membership is densely distributed
  1129.    within the internetwork.  In this mode, no Rendezvous Points are used
  1130.    and a source rooted tree is formed based on Reverse Path Forwarding
  1131.    in a manner similar to that of DVMRP [DC90].
  1132.  
  1133.    We do not give details of how Nimrod can implement Dense Mode
  1134.    Multicast here.
  1135.  
  1136.    Multiple RPs:  Our discussion above has been based on the assumption
  1137.    that there is one RP per group.  PIM allows more than one RP per
  1138.    group.  We do not discuss multiple-RP PIM here.
  1139.  
  1140. 6  Security Considerations
  1141.  
  1142.    Security issues are not discussed in this memo.
  1143.  
  1144. 7  Summary
  1145.  
  1146. o Nimrod does not specify a particular multicast route generation
  1147.   algorithm or state creation procedure.  Nimrod can accommodate diverse
  1148.   multicast techniques and leaves the choice of the technique to the
  1149.   particular instantiation of Nimrod.
  1150.  
  1151. o A solution for multicasting within Nimrod should be capable of:
  1152.  
  1153.   -  Scaling to large networks, large numbers of multicast groups and
  1154.      large multicast groups.
  1155.  
  1156.   -  Supporting policy, including quality of service and access
  1157.      restrictions.
  1158.  
  1159.   -  Resource sharing.
  1160.  
  1161.   -  Interoperability with other solutions.
  1162.  
  1163. o Multicasting typically requires the setting up of state in intermediate
  1164.   routers for packet forwarding.  The state setup may be initiated by the
  1165.   sender (e.g., IDPR), by the receiver (e.g., CBT), by both (e.g., PIM)
  1166.   or by neither.  The architecture of Nimrod provides sufficient
  1167.   flexibility to accommodate any of these approaches.
  1168.  
  1169. o A receiver-initiated multicast protocol, PIM, is being designed by the
  1170.   IDMR working group of the IETF. The facilities provided by Nimrod make
  1171.   the use of PIM as a multicast protocol quite straightforward.
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Ramanathan                   Informational                     [Page 21]
  1179.  
  1180. RFC 2102                Nimrod Multicast Support           February 1997
  1181.  
  1182.  
  1183. 8  References
  1184.  
  1185. [BFC93]   A. J. Ballardie, P. F. Francis, and J. Crowcroft. Core based
  1186.           trees. In Proceedings of ACM SIGCOMM, 1993.
  1187.  
  1188. [CCS96]   Castineyra, I., Chiappa, N., and M. Steenstrup, "The Nimrod
  1189.           Routing Architecture", RFC 1992, August 1996.
  1190.  
  1191. [DC90]    S. Deering and D. Cheriton. Multicast routing in datagram
  1192.           internetworks and extended lans. ACM Transactions on Computer
  1193.           Systems, pages 85--111, May 1990.
  1194.  
  1195. [DEF+94a] Deering, S., Estrin, D., Farinacci, D., Jacobson, V., Liu,
  1196.           C., and L. Wei, "Protocol Independent Multicast (PIM) :
  1197.           Motivation and Architecture, Work in Progress.
  1198.  
  1199. [DEF+94b] Deering, S., Estrin, D., Farinacci, D., Jacobson, V., Liu,
  1200.           C., and L. Wei, "Protocol Independent Multicast (PIM) :
  1201.           Sparse Mode Protocol Specification, Work in Progress.
  1202.  
  1203. [DEFJ93]  Deering, S., Estrin, D., Farinacci, D., and V. Jacobson,
  1204.           "IGMP router extensions for routing to sparse multicast
  1205.           groups, Work in Progress.
  1206.  
  1207. [DM78]    Y. K. Dalal and R. M. Metcalfe. Reverse path forwarding of
  1208.           broadcast packets. Communications of the ACM, 21(12), pages
  1209.           1040--1048, 1978.
  1210.  
  1211. [Moy92]   Moy, J., "Multicast Extensions to OSPF, RFC 1584, March 1994.
  1212.  
  1213. [RS96]    Ramanathan, S., and M. Steenstrup, "Nimrod functional and
  1214.           protocol specifications, Work in Progress.
  1215.  
  1216. [Ste]     Steenstrup, M., "Inter-domain policy routing protocol
  1217.           specification:  Version 2", Work in Progress.
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Ramanathan                   Informational                     [Page 22]
  1235.  
  1236. RFC 2102                Nimrod Multicast Support           February 1997
  1237.  
  1238.  
  1239. 9  Acknowledgements
  1240.  
  1241.    We thank Isidro Castineyra (BBN), Charles Lynn (BBN), Martha
  1242.    Steenstrup (BBN) and other members of the Nimrod Working Group for
  1243.    their comments and suggestions on this memo.
  1244.  
  1245. 10  Author's Address
  1246.  
  1247.    Ram Ramanathan
  1248.    BBN Systems and Technologies
  1249.    10 Moulton Street
  1250.    Cambridge, MA 02138
  1251.  
  1252.    Phone:  (617) 873-2736
  1253.    EMail:  ramanath@bbn.com
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Ramanathan                   Informational                     [Page 23]
  1291.  
  1292.