home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc2201 < prev    next >
Text File  |  1997-09-25  |  38KB  |  844 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                       A. Ballardie
  8. Request for Comments: 2201                                    Consultant
  9. Category: Experimental                                    September 1997
  10.  
  11.  
  12.          Core Based Trees (CBT) Multicast Routing Architecture
  13.  
  14. Status of this Memo
  15.  
  16.    This memo defines an Experimental Protocol for the Internet
  17.    community.  This memo does not specify an Internet standard of any
  18.    kind.  Discussion and suggestions for improvement are requested.
  19.    Distribution of this memo is unlimited.
  20.  
  21. Abstract
  22.  
  23.    CBT is a multicast routing architecture that builds a single delivery
  24.    tree per group which is shared by all of the group's senders and
  25.    receivers.  Most multicast algorithms build one multicast tree per
  26.    sender (subnetwork), the tree being rooted at the sender's
  27.    subnetwork.  The primary advantage of the shared tree approach is
  28.    that it typically offers more favourable scaling characteristics than
  29.    all other multicast algorithms.
  30.  
  31.    The CBT protocol [1] is a network layer multicast routing protocol
  32.    that builds and maintains a shared delivery tree for a multicast
  33.    group.  The sending and receiving of multicast data by hosts on a
  34.    subnetwork conforms to the traditional IP multicast service model
  35.    [2].
  36.  
  37.    CBT is progressing through the IDMR working group of the IETF.  The
  38.    CBT protocol is described in an accompanying document [1]. For this,
  39.    and all IDMR-related documents, see http://www.cs.ucl.ac.uk/ietf/idmr
  40.  
  41. TABLE OF CONTENTS
  42.  
  43.    1. Background...................................................  2
  44.    2. Introduction.................................................  2
  45.    3. Source Based Tree Algorithms.................................  3
  46.       3.1 Distance-Vector Multicast Algorithm......................  4
  47.       3.2 Link State Multicast Algorithm...........................  5
  48.       3.3 The Motivation for Shared Trees..........................  5
  49.    4. CBT - The New Architecture...................................  7
  50.       4.1 Design Requirements......................................  7
  51.       4.2 Components & Functions...................................  8
  52.           4.2.1 CBT Control Message Retransmission Strategy........ 10
  53.           4.2.2 Non-Member Sending................................. 11
  54.    5. Interoperability with Other Multicast Routing Protocols ..... 11
  55.  
  56.  
  57.  
  58. Ballardie                     Experimental                      [Page 1]
  59.  
  60. RFC 2201           CBT Multicast Routing Architecture     September 1997
  61.  
  62.  
  63.    6. Core Router Discovery........................................ 11
  64.       6.1 Bootstrap Mechanism Overview............................. 12
  65.    7. Summary ..................................................... 13
  66.    8. Security Considerations...................................... 13
  67.    Acknowledgements ............................................... 14
  68.    References ..................................................... 14
  69.    Author Information.............................................. 15
  70.  
  71. 1.  Background
  72.  
  73.    Shared trees were first described by Wall in his investigation into
  74.    low-delay approaches to broadcast and selective broadcast [3]. Wall
  75.    concluded that delay will not be minimal, as with shortest-path
  76.    trees, but the delay can be kept within bounds that may be
  77.    acceptable.  Back then, the benefits and uses of multicast were not
  78.    fully understood, and it wasn't until much later that the IP
  79.    multicast address space was defined (class D space [4]). Deering's
  80.    work [2] in the late 1980's was pioneering in that he defined the IP
  81.    multicast service model, and invented algorithms which allow hosts to
  82.    arbitrarily join and leave a multicast group. All of Deering's
  83.    multicast algorithms build source-rooted delivery trees, with one
  84.    delivery tree per sender subnetwork. These algorithms are documented
  85.    in [2].
  86.  
  87.    After several years practical experience with multicast, we see a
  88.    diversity of multicast applications and correspondingly, a wide
  89.    variety of multicast application requirements.  For example,
  90.    distributed interactive simulation (DIS) applications have strict
  91.    requirements in terms of join latency, group membership dynamics,
  92.    group sender populations, far exceeding the requirements of many
  93.    other multicast applications.
  94.  
  95.    The multicast-capable part of the Internet, the MBONE, continues to
  96.    expand rapidly.  The obvious popularity and growth of multicast means
  97.    that the scaling aspects of wide-area multicasting cannot be
  98.    overlooked; some predictions talk of thousands of groups being
  99.    present at any one time in the Internet.
  100.  
  101.    We evaluate scalability in terms of network state maintenance,
  102.    bandwidth efficiency, and protocol overhead. Other factors that can
  103.    affect these parameters include sender set size, and wide-area
  104.    distribution of group members.
  105.  
  106. 2.  Introduction
  107.  
  108.    Multicasting on the local subnetwork does not require either the
  109.    presence of a multicast router or the implementation of a multicast
  110.    routing algorithm; on most shared media (e.g. Ethernet), a host,
  111.  
  112.  
  113.  
  114. Ballardie                     Experimental                      [Page 2]
  115.  
  116. RFC 2201           CBT Multicast Routing Architecture     September 1997
  117.  
  118.  
  119.    which need not necessarily be a group member, simply sends a
  120.    multicast data packet, which is received by any member hosts
  121.    connected to the same medium.
  122.  
  123.    For multicasts to extend beyond the scope of the local subnetwork,
  124.    the subnet must have a multicast-capable router attached, which
  125.    itself is attached (possibly "virtually") to another multicast-
  126.    capable router, and so on. The collection of these (virtually)
  127.    connected multicast routers forms the Internet's MBONE.
  128.  
  129.    All multicast routing protocols make use of IGMP [5], a protocol that
  130.    operates between hosts and multicast router(s) belonging to the same
  131.    subnetwork. IGMP enables the subnet's multicast router(s) to monitor
  132.    group membership presence on its directly attached links, so that if
  133.    multicast data arrives, it knows over which of its links to send a
  134.    copy of the packet.
  135.  
  136.    In our description of the MBONE so far, we have assumed that all
  137.    multicast routers on the MBONE are running the same multicast routing
  138.    protocol. In reality, this is not the case; the MBONE is a collection
  139.    of autonomously administered multicast regions, each region defined
  140.    by one or more multicast-capable border routers. Each region
  141.    independently chooses to run whichever multicast routing protocol
  142.    best suits its needs, and the regions interconnect via the "backbone
  143.    region", which currently runs the Distance Vector Multicast Routing
  144.    Protocol (DVMRP) [6]. Therefore, it follows that a region's border
  145.    router(s) must interoperate with DVMRP.
  146.  
  147.    Different algorithms use different techniques for establishing a
  148.    distribution tree. If we classify these algorithms into source-based
  149.    tree algorithms and shared tree algorithms, we'll see that the
  150.    different classes have considerably different scaling
  151.    characteristics, and the characteristics of the resulting trees
  152.    differ too, for example, average delay. Let's look at source-based
  153.    tree algorithms first.
  154.  
  155. 3.  Source-Based Tree Algorithms
  156.  
  157.    The strategy we'll use for motivating (CBT) shared tree multicast is
  158.    based, in part, in explaining the characteristics of source-based
  159.    tree multicast, in particular its scalability.
  160.  
  161.    Most source-based tree multicast algorithms are often referred to as
  162.    "dense-mode" algorithms; they assume that the receiver population
  163.    densely populates the domain of operation, and therefore the
  164.    accompanying overhead (in terms of state, bandwidth usage, and/or
  165.    processing costs) is justified.  Whilst this might be the case in a
  166.    local environment, wide-area group membership tends to be sparsely
  167.  
  168.  
  169.  
  170. Ballardie                     Experimental                      [Page 3]
  171.  
  172. RFC 2201           CBT Multicast Routing Architecture     September 1997
  173.  
  174.  
  175.    distributed throughout the Internet.  There may be "pockets" of
  176.    denseness, but if one views the global picture, wide-area groups tend
  177.    to be sparsely distributed.
  178.  
  179.    Source-based multicast trees are either built by a distance-vector
  180.    style algorithm, which may be implemented separately from the unicast
  181.    routing algorithm (as is the case with DVMRP), or the multicast tree
  182.    may be built using the information present in the underlying unicast
  183.    routing table (as is the case with PIM-DM [7]). The other algorithm
  184.    used for building source-based trees is the link-state algorithm (a
  185.    protocol instance being M-OSPF [8]).
  186.  
  187. 3.1.  Distance-Vector Multicast Algorithm
  188.  
  189.    The distance-vector multicast algorithm builds a multicast delivery
  190.    tree using a variant of the Reverse-Path Forwarding technique [9].
  191.    The technique basically is as follows: when a multicast router
  192.    receives a multicast data packet, if the packet arrives on the
  193.    interface used to reach the source of the packet, the packet is
  194.    forwarded over all outgoing interfaces, except leaf subnets with no
  195.    members attached.  A "leaf" subnet is one which no router would use
  196.    to reach the souce of a multicast packet. If the data packet does not
  197.    arrive over the link that would be used to reach the source, the
  198.    packet is discarded.
  199.  
  200.    This constitutes a "broadcast & prune" approach to multicast tree
  201.    construction; when a data packet reaches a leaf router, if that
  202.    router has no membership registered on any of its directly attached
  203.    subnetworks, the router sends a prune message one hop back towards
  204.    the source. The receiving router then checks its leaf subnets for
  205.    group membership, and checks whether it has received a prune from all
  206.    of its downstream routers (downstream with respect to the source).
  207.    If so, the router itself can send a prune upstream over the interface
  208.    leading to the source.
  209.  
  210.    The sender and receiver of a prune message must cache the <source,
  211.    group> pair being reported, for a "lifetime" which is at the
  212.    granularity of minutes. Unless a router's prune information is
  213.    refreshed by the receipt of a new prune for <source, group> before
  214.    its "lifetime" expires, that information is removed, allowing data to
  215.    flow over the branch again. State that expires in this way is
  216.    referred to as "soft state".
  217.  
  218.    Interestingly, routers that do not lead to group members are incurred
  219.    the state overhead incurred by prune messages. For wide-area
  220.    multicasting, which potentially has to support many thousands of
  221.    active groups, each of which may be sparsely distributed, this
  222.    technique clearly does not scale.
  223.  
  224.  
  225.  
  226. Ballardie                     Experimental                      [Page 4]
  227.  
  228. RFC 2201           CBT Multicast Routing Architecture     September 1997
  229.  
  230.  
  231. 3.2.  Link-State Multicast Algorithm
  232.  
  233.    Routers implementing a link state algorithm periodically collect
  234.    reachability information to their directly attached neighbours, then
  235.    flood this throughout the routing domain in so-called link state
  236.    update packets. Deering extended the link state algorithm for
  237.    multicasting by having a router additionally detect group membership
  238.    changes on its incident links before flooding this information in
  239.    link state packets.
  240.  
  241.    Each router then, has a complete, up-to-date image of a domain's
  242.    topology and group membership. On receiving a multicast data packet,
  243.    each router uses its membership and topology information to calculate
  244.    a shortest-path tree rooted at the sender subnetwork. Provided the
  245.    calculating router falls within the computed tree, it forwards the
  246.    data packet over the interfaces defined by its calculation. Hence,
  247.    multicast data packets only ever traverse routers leading to members,
  248.    either directly attached, or further downstream. That is, the
  249.    delivery tree is a true multicast tree right from the start.
  250.  
  251.    However, the flooding (reliable broadcasting) of group membership
  252.    information is the predominant factor preventing the link state
  253.    multicast algorithm being applicable over the wide-area.  The other
  254.    limiting factor is the processing cost of the Dijkstra calculation to
  255.    compute the shortest-path tree for each active source.
  256.  
  257. 3.3.  The Motivation for Shared Trees
  258.  
  259.    The algorithms described in the previous sections clearly motivate
  260.    the need for a multicast algorithm(s) that is more scalable. CBT was
  261.    designed primarily to address the topic of scalability; a shared tree
  262.    architecture offers an improvement in scalability over source tree
  263.    architectures by a factor of the number of active sources (where
  264.    source is usually a subnetwork aggregate).  Source trees scale O(S *
  265.    G), since a distinct delivery tree is built per active source. Shared
  266.    trees eliminate the source (S) scaling factor; all sources use the
  267.    same shared tree, and hence a shared tree scales O(G).  The
  268.    implication of this is that applications with many active senders,
  269.    such as distributed interactive simulation applications, and
  270.    distributed video-gaming (where most receivers are also senders),
  271.    have a significantly lesser impact on underlying multicast routing if
  272.    shared trees are used.
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Ballardie                     Experimental                      [Page 5]
  283.  
  284. RFC 2201           CBT Multicast Routing Architecture     September 1997
  285.  
  286.  
  287.    In the "back of the envelope" table below we compare the amount of
  288.    state required by CBT and DVMRP for different group sizes with
  289.    different numbers of active sources:
  290.  
  291.   |--------------|---------------------------------------------------|
  292.   |  Number of   |                |                |                 |
  293.   |    groups    |        10      |       100      |        1000     |
  294.   ====================================================================
  295.   |  Group size  |                |                |                 |
  296.   | (# members)  |        20      |       40       |         60      |
  297.   -------------------------------------------------------------------|
  298.   | No. of srcs  |    |     |     |    |     |     |    |     |      |
  299.   |  per group   |10% | 50% |100% |10% | 50% |100% |10% | 50% | 100% |
  300.   --------------------------------------------------------------------
  301.   | No. of DVMRP |    |     |     |    |     |     |    |     |      |
  302.   |    router    |    |     |     |    |     |     |    |     |      |
  303.   |   entries    | 20 | 100 | 200 |400 | 2K  | 4K  | 6K | 30K | 60K  |
  304.   --------------------------------------------------------------------
  305.   | No. of CBT   |                |                |                 |
  306.   |  router      |                |                |                 |
  307.   |  entries     |       10       |       100      |       1000      |
  308.   |------------------------------------------------------------------|
  309.  
  310.            Figure 1: Comparison of DVMRP and CBT Router State
  311.  
  312.    Shared trees also incur significant bandwidth and state savings
  313.    compared with source trees; firstly, the tree only spans a group's
  314.    receivers (including links/routers leading to receivers) -- there is
  315.    no cost to routers/links in other parts of the network. Secondly,
  316.    routers between a non-member sender and the delivery tree are not
  317.    incurred any cost pertaining to multicast, and indeed, these routers
  318.    need not even be multicast-capable -- packets from non-member senders
  319.    are encapsulated and unicast to a core on the tree.
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Ballardie                     Experimental                      [Page 6]
  339.  
  340. RFC 2201           CBT Multicast Routing Architecture     September 1997
  341.  
  342.  
  343.    The figure below illustrates a core based tree.
  344.  
  345.            b      b     b-----b
  346.             \     |     |
  347.              \    |     |
  348.               b---b     b------b
  349.              /     \  /                   KEY....
  350.             /       \/
  351.            b         X---b-----b          X = Core
  352.                     / \                   b = on-tree router
  353.                    /   \
  354.                   /     \
  355.                   b      b------b
  356.                  / \     |
  357.                 /   \    |
  358.                b     b   b
  359.  
  360.                            Figure 2: CBT Tree
  361.  
  362. 4.  CBT - The New Architecture
  363.  
  364. 4.1.  Design Requirements
  365.  
  366.    The CBT shared tree design was geared towards several design
  367.    objectives:
  368.  
  369.    o    scalability - the CBT designers decided not to sacrifice CBT's
  370.         O(G) scaling characteric to optimize delay using SPTs, as does
  371.         PIM.  This was an important design decision, and one, we think,
  372.         was taken with foresight; once multicasting becomes ubiquitous,
  373.         router state maintenance will be a predominant scaling factor.
  374.         It is possible in some circumstances to improve/optimize the
  375.         delay of shared trees by other means. For example, a broadcast-
  376.         type lecture with a single sender (or limited set of
  377.         infrequently changing senders) could have its core placed in the
  378.         locality of the sender, allowing the CBT to emulate a shortest-
  379.         path tree (SPT) whilst still maintaining its O(G) scaling
  380.         characteristic. More generally, because CBT does not incur
  381.         source-specific state, it is particularly suited to many sender
  382.         applications.
  383.  
  384.    o    robustness - source-based tree algorithms are clearly robust; a
  385.         sender simply sends its data, and intervening routers "conspire"
  386.         to get the data where it needs to, creating state along the way.
  387.         This is the so-called "data driven" approach -- there is no
  388.         set-up protocol involved.
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Ballardie                     Experimental                      [Page 7]
  395.  
  396. RFC 2201           CBT Multicast Routing Architecture     September 1997
  397.  
  398.  
  399.         It is not as easy to achieve the same degree of robustness in
  400.         shared tree algorithms; a shared tree's core router maintains
  401.         connectivity between all group members, and is thus a single
  402.         point of failure.  Protocol mechanisms must be present that
  403.         ensure a core failure is detected quickly, and the tree
  404.         reconnected quickly using a replacement core router.
  405.  
  406.    o    simplicity - the CBT protocol is relatively simple compared to
  407.         most other multicast routing protocols. This simplicity can lead
  408.         to enhanced performance compared to other protocols.
  409.  
  410.    o    interoperability - from a multicast perspective, the Internet is
  411.         a collection of heterogeneous multicast regions. The protocol
  412.         interconnecting these multicast regions is currently DVMRP [6];
  413.         any regions not running DVMRP connect to the DVMRP "backbone" as
  414.         stub regions.  CBT has well-defined interoperability mechanisms
  415.         with DVMRP [15].
  416.  
  417. 4.2.  CBT Components & Functions
  418.  
  419.    The CBT protocol is designed to build and maintain a shared multicast
  420.    distribution tree that spans only those networks and links leading to
  421.    interested receivers.
  422.  
  423.    To achieve this, a host first expresses its interest in joining a
  424.    group by multicasting an IGMP host membership report [5] across its
  425.    attached link. On receiving this report, a local CBT aware router
  426.    invokes the tree joining process (unless it has already) by
  427.    generating a JOIN_REQUEST message, which is sent to the next hop on
  428.    the path towards the group's core router (how the local router
  429.    discovers which core to join is discussed in section 6). This join
  430.    message must be explicitly acknowledged (JOIN_ACK) either by the core
  431.    router itself, or by another router that is on the unicast path
  432.    between the sending router and the core, which itself has already
  433.    successfully joined the tree.
  434.  
  435.    The join message sets up transient join state in the routers it
  436.    traverses, and this state consists of <group, incoming interface,
  437.    outgoing interface>. "Incoming interface" and "outgoing interface"
  438.    may be "previous hop" and "next hop", respectively, if the
  439.    corresponding links do not support multicast transmission. "Previous
  440.    hop" is taken from the incoming control packet's IP source address,
  441.    and "next hop" is gleaned from the routing table - the next hop to
  442.    the specified core address. This transient state eventually times out
  443.    unless it is "confirmed" with a join acknowledgement (JOIN_ACK) from
  444.    upstream. The JOIN_ACK traverses the reverse path of the
  445.    corresponding join message, which is possible due to the presence of
  446.    the transient join state.  Once the acknowledgement reaches the
  447.  
  448.  
  449.  
  450. Ballardie                     Experimental                      [Page 8]
  451.  
  452. RFC 2201           CBT Multicast Routing Architecture     September 1997
  453.  
  454.  
  455.    router that originated the join message, the new receiver can receive
  456.    traffic sent to the group.
  457.  
  458.    Loops cannot be created in a CBT tree because a) there is only one
  459.    active core per group, and b) tree building/maintenance scenarios
  460.    which may lead to the creation of tree loops are avoided.  For
  461.    example, if a router's upstream neighbour becomes unreachable, the
  462.    router immediately "flushes" all of its downstream branches, allowing
  463.    them to individually rejoin if necessary.  Transient unicast loops do
  464.    not pose a threat because a new join message that loops back on
  465.    itself will never get acknowledged, and thus eventually times out.
  466.  
  467.    The state created in routers by the sending or receiving of a
  468.    JOIN_ACK is bi-directional - data can flow either way along a tree
  469.    "branch", and the state is group specific - it consists of the group
  470.    address and a list of local interfaces over which join messages for
  471.    the group have previously been acknowledged. There is no concept of
  472.    "incoming" or "outgoing" interfaces, though it is necessary to be
  473.    able to distinguish the upstream interface from any downstream
  474.    interfaces. In CBT, these interfaces are known as the "parent" and
  475.    "child" interfaces, respectively.
  476.  
  477.    With regards to the information contained in the multicast forwarding
  478.    cache, on link types not supporting native multicast transmission an
  479.    on-tree router must store the address of a parent and any children.
  480.    On links supporting multicast however, parent and any child
  481.    information is represented with local interface addresses (or similar
  482.    identifying information, such as an interface "index") over which the
  483.    parent or child is reachable.
  484.  
  485.    When a multicast data packet arrives at a router, the router uses the
  486.    group address as an index into the multicast forwarding cache. A copy
  487.    of the incoming multicast data packet is forwarded over each
  488.    interface (or to each address) listed in the entry except the
  489.    incoming interface.
  490.  
  491.    Each router that comprises a CBT multicast tree, except the core
  492.    router, is responsible for maintaining its upstream link, provided it
  493.    has interested downstream receivers, i.e. the child interface list is
  494.    not NULL. A child interface is one over which a member host is
  495.    directly attached, or one over which a downstream on-tree router is
  496.    attached.  This "tree maintenance" is achieved by each downstream
  497.    router periodically sending a "keepalive" message (ECHO_REQUEST) to
  498.    its upstream neighbour, i.e. its parent router on the tree. One
  499.    keepalive message is sent to represent entries with the same parent,
  500.    thereby improving scalability on links which are shared by many
  501.    groups.  On multicast capable links, a keepalive is multicast to the
  502.    "all-cbt-routers" group (IANA assigned as 224.0.0.15); this has a
  503.  
  504.  
  505.  
  506. Ballardie                     Experimental                      [Page 9]
  507.  
  508. RFC 2201           CBT Multicast Routing Architecture     September 1997
  509.  
  510.  
  511.    suppressing effect on any other router for which the link is its
  512.    parent link.  If a parent link does not support multicast
  513.    transmission, keepalives are unicast.
  514.  
  515.    The receipt of a keepalive message over a valid child interface
  516.    immediately prompts a response (ECHO_REPLY), which is either unicast
  517.    or multicast, as appropriate.
  518.  
  519.    The ECHO_REQUEST does not contain any group information; the
  520.    ECHO_REPLY does, but only periodically. To maintain consistent
  521.    information between parent and child, the parent periodically
  522.    reports, in a ECHO_REPLY, all groups for which it has state, over
  523.    each of its child interfaces for those groups. This group-carrying
  524.    echo reply is not prompted explicitly by the receipt of an echo
  525.    request message.  A child is notified of the time to expect the next
  526.    echo reply message containing group information in an echo reply
  527.    prompted by a child's echo request. The frequency of parent group
  528.    reporting is at the granularity of minutes.
  529.  
  530.    It cannot be assumed all of the routers on a multi-access link have a
  531.    uniform view of unicast routing; this is particularly the case when a
  532.    multi-access link spans two or more unicast routing domains. This
  533.    could lead to multiple upstream tree branches being formed (an error
  534.    condition) unless steps are taken to ensure all routers on the link
  535.    agree which is the upstream router for a particular group. CBT
  536.    routers attached to a multi-access link participate in an explicit
  537.    election mechanism that elects a single router, the designated router
  538.    (DR), as the link's upstream router for all groups. Since the DR
  539.    might not be the link's best next-hop for a particular core router,
  540.    this may result in join messages being re-directed back across a
  541.    multi-access link. If this happens, the re-directed join message is
  542.    unicast across the link by the DR to the best next-hop, thereby
  543.    preventing a looping scenario.  This re-direction only ever applies
  544.    to join messages.  Whilst this is suboptimal for join messages, which
  545.    are generated infrequently, multicast data never traverses a link
  546.    more than once (either natively, or encapsulated).
  547.  
  548.    In all but the exception case described above, all CBT control
  549.    messages are multicast over multicast supporting links to the "all-
  550.    cbt-routers" group, with IP TTL 1. When a CBT control message is sent
  551.    over a non-multicast supporting link, it is explicitly addressed to
  552.    the appropriate next hop.
  553.  
  554. 4.2.1.  CBT Control Message Retransmission Strategy
  555.  
  556.    Certain CBT control messages illicit a response of some sort. Lack of
  557.    response may be due to an upstream router crashing, or the loss of
  558.    the original message, or its response. To detect these events, CBT
  559.  
  560.  
  561.  
  562. Ballardie                     Experimental                     [Page 10]
  563.  
  564. RFC 2201           CBT Multicast Routing Architecture     September 1997
  565.  
  566.  
  567.    retransmits those control messages for which it expects a response,
  568.    if that response is not forthcoming within the retransmission-
  569.    interval, which varies depending on the type of message involved.
  570.    There is an upper bound (typically 3) on the number of
  571.    retransmissions of the original message before an exception condition
  572.    is raised.
  573.  
  574.    For example, the exception procedure for lack of response to an
  575.    ECHO_REQUEST is to send a QUIT_NOTIFICATION upstream and a FLUSH_TREE
  576.    message downstream for the group. If this is router has group members
  577.    attached, it restarts the joining process to the group's core.
  578.  
  579. 4.2.2.  Non-Member Sending
  580.  
  581.    If a non-member sender's local router is already on-tree for the
  582.    group being sent to, the subnet's upstream router simply forwards the
  583.    data packet over all outgoing interfaces corresponding to that
  584.    group's forwarding cache entry. This is in contrast to PIM-SM [18]
  585.    which must encapsulate data from a non-member sender, irrespective of
  586.    whether the local router has joined the tree. This is due to PIM's
  587.    uni-directional state.
  588.  
  589.    If the sender's subnet is not attached to the group tree, the local
  590.    DR must encapsulate the data packet and unicast it to the group's
  591.    core router, where it is decapsulated and disseminated over all tree
  592.    interfaces, as specified by the core's forwarding cache entry for the
  593.    group. The data packet encapsulation method is IP-in-IP [14].
  594.  
  595.    Routers in between a non-member sender and the group's core need not
  596.    know anything about the multicast group, and indeed may even be
  597.    multicast-unaware. This makes CBT particulary attractive for
  598.    applications with non-member senders.
  599.  
  600. 5.  Interoperability with Other Multicast Routing Protocols
  601.  
  602.    See "interoperability" in section 4.1.
  603.  
  604.    The interoperability mechanisms for interfacing CBT with DVMRP are
  605.    defined in [15].
  606.  
  607. 6.  Core Router Discovery
  608.  
  609.    Core router discovery is by far the most controversial and difficult
  610.    aspect of shared tree multicast architectures, particularly in the
  611.    context of inter-domain multicast routing (IDMR).  There have been
  612.    many proposals over the past three years or so, including advertising
  613.    core addresses in a multicast session directory like "sdr" [11],
  614.    manual placement, and the HPIM [12] approach of strictly dividing up
  615.  
  616.  
  617.  
  618. Ballardie                     Experimental                     [Page 11]
  619.  
  620. RFC 2201           CBT Multicast Routing Architecture     September 1997
  621.  
  622.  
  623.    the multicast address space into many "hierarchical scopes" and using
  624.    explicit advertising of core routers between scope levels.
  625.  
  626.    There are currently two options for CBTv2 [1] core discovery; the
  627.    "bootstrap" mechamism, and manual placement. The bootstrap mechanisms
  628.    (as currently specified with the PIM sparse mode protocol [18]) is
  629.    applicable only to intra-domain core discovery, and allows for a
  630.    "plug & play" type operation with minimal configuration. The
  631.    disadvantage of the bootstrap mechanism is that it is much more
  632.    difficult to affect the shape, and thus optimality, of the resulting
  633.    distribution tree. Also, it must be implemented by all CBT routers
  634.    within a domain.
  635.  
  636.    Manual configuration of leaf routers with <core, group> mappings is
  637.    the other option (note: leaf routers only); this imposes a degree of
  638.    administrative burden - the mapping for a particular group must be
  639.    coordinated across all leaf routers to ensure consistency. Hence,
  640.    this method does not scale particularly well. However, it is likely
  641.    that "better" trees will result from this method, and it is also the
  642.    only available option for inter-domain core discovery currently
  643.    available.
  644.  
  645.  
  646. 6.1.  Bootstrap Mechanism Overview
  647.  
  648.    It is unlikely at this stage that the bootstrap mechanism will be
  649.    appended to a well-known network layer protocol, such as IGMP [5] or
  650.    ICMP [13], though this would facilitate its ubiquitous (intra-domain)
  651.    deployment.  Therefore, each multicast routing protocol requiring the
  652.    bootstrap mechanism must implement it as part of the multicast
  653.    routing protocol itself.
  654.  
  655.    A summary of the operation of the bootstrap mechanism follows. It is
  656.    assumed that all routers within the domain implement the "bootstrap"
  657.    protocol, or at least forward bootstrap protocol messages.
  658.  
  659.    A subset of the domain's routers are configured to be CBT candidate
  660.    core routers. Each candidate core router periodically (default every
  661.    60 secs) advertises itself to the domain's Bootstrap Router (BSR),
  662.    using  "Core Advertisement" messages.  The BSR is itself elected
  663.    dynamically from all (or participating) routers in the domain.  The
  664.    domain's elected BSR collects "Core Advertisement" messages from
  665.    candidate core routers and periodically advertises a candidate core
  666.    set (CC-set) to each other router in the domain, using traditional
  667.    hopby-hop unicast forwarding. The BSR uses "Bootstrap Messages" to
  668.    advertise the CC-set. Together, "Core Advertisements" and "Bootstrap
  669.    Messages" comprise the "bootstrap" protocol.
  670.  
  671.  
  672.  
  673.  
  674. Ballardie                     Experimental                     [Page 12]
  675.  
  676. RFC 2201           CBT Multicast Routing Architecture     September 1997
  677.  
  678.  
  679.    When a router receives an IGMP host membership report from one of its
  680.    directly attached hosts, the local router uses a hash function on the
  681.    reported group address, the result of which is used as an index into
  682.    the CC-set. This is how local routers discover which core to use for
  683.    a particular group.
  684.  
  685.    Note the hash function is specifically tailored such that a small
  686.    number of consecutive groups always hash to the same core.
  687.    Furthermore, bootstrap messages can carry a "group mask", potentially
  688.    limiting a CC-set to a particular range of groups. This can help
  689.    reduce traffic concentration at the core.
  690.  
  691.    If a BSR detects a particular core as being unreachable (it has not
  692.    announced its availability within some period), it deletes the
  693.    relevant core from the CC-set sent in its next bootstrap message.
  694.    This is how a local router discovers a group's core is unreachable;
  695.    the router must re-hash for each affected group and join the new core
  696.    after removing the old state. The removal of the "old" state follows
  697.    the sending of a QUIT_NOTIFICATION upstream, and a FLUSH_TREE message
  698.    downstream.
  699.  
  700. 7.  Summary
  701.  
  702.    This document presents an architecture for intra- and inter-domain
  703.    multicast routing.  We motivated this architecture by describing how
  704.    an inter-domain multicast routing algorithm must scale to large
  705.    numbers of groups present in the internetwork, and discussed why most
  706.    other existing algorithms are less suited to inter-domain multicast
  707.    routing.  We followed by describing the features and components of
  708.    the architecture, illustrating its simplicity and scalability.
  709.  
  710. 8.  Security Considerations
  711.  
  712.    Security considerations are not addressed in this memo.
  713.  
  714.    Whilst multicast security is a topic of ongoing research, multicast
  715.    applications (users) nevertheless have the ability to take advantage
  716.    of security services such as encryption or/and authentication
  717.    provided such services are supported by the applications.
  718.  
  719.    RFCs 1949 and 2093/2094 discuss different ways of distributing
  720.    multicast key material, which can result in the provision of network
  721.    layer access control to a multicast distribution tree.
  722.  
  723.    [19] offers a synopsis of multicast security threats and proposes
  724.    some possible counter measures.
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Ballardie                     Experimental                     [Page 13]
  731.  
  732. RFC 2201           CBT Multicast Routing Architecture     September 1997
  733.  
  734.  
  735.    Beyond these, little published work exists on the topic of multicast
  736.    security.
  737.  
  738. Acknowledgements
  739.  
  740.    Special thanks goes to Paul Francis, NTT Japan, for the original
  741.    brainstorming sessions that brought about this work.
  742.  
  743.    Clay Shields' work on OCBT [17] identified various failure scenarios
  744.    with a multi-core architecture, resulting in the specification of a
  745.    single core architecture.
  746.  
  747.    Others that have contributed to the progress of CBT include Ken
  748.    Carlberg, Eric Crawley, Jon Crowcroft, Mark Handley, Ahmed Helmy,
  749.    Nitin Jain, Alan O'Neill, Steven Ostrowsksi, Radia Perlman, Scott
  750.    Reeve, Benny Rodrig, Martin Tatham, Dave Thaler, Sue Thompson, Paul
  751.    White, and other participants of the IETF IDMR working group.
  752.  
  753.    Thanks also to 3Com Corporation and British Telecom Plc for funding
  754.    this work.
  755.  
  756. References
  757.  
  758.    [1] Ballardie, A., "Core Based Trees (CBT version 2) Multicast
  759.    Routing: Protocol Specification", RFC 2189, September 1997.
  760.  
  761.    [2] Multicast Routing in a Datagram Internetwork; S. Deering, PhD
  762.    Thesis, 1991; ftp://gregorio.stanford.edu/vmtp/sd-thesis.ps.
  763.  
  764.    [3] Mechanisms for Broadcast and Selective Broadcast; D. Wall; PhD
  765.    thesis, Stanford University, June 1980. Technical Report #90.
  766.  
  767.    [4] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700,
  768.    October 1994.
  769.  
  770.    [5] Internet Group Management Protocol, version 2 (IGMPv2); W.
  771.    Fenner; Work In Progress.
  772.  
  773.    [6] Distance Vector Multicast Routing Protocol (DVMRP); T. Pusateri;
  774.    Work In Progress.
  775.  
  776.    [7] Protocol Independent Multicast (PIM) Dense Mode Specification; D.
  777.    Estrin et al; ftp://netweb.usc.edu/pim, Work In Progress.
  778.  
  779.    [8] Moy, J., "Multicast Extensions to OSPF", RFC 1584, March 1994.
  780.  
  781.    [9] Reverse path forwarding of  broadcast packets; Y.K. Dalal and
  782.    R.M.  Metcalfe; Communications of the ACM, 21(12):1040--1048, 1978.
  783.  
  784.  
  785.  
  786. Ballardie                     Experimental                     [Page 14]
  787.  
  788. RFC 2201           CBT Multicast Routing Architecture     September 1997
  789.  
  790.  
  791.    [10] Some Issues for an Inter-Domain Multicast Routing Protocol; D.
  792.    Meyer;  Work In Progress.
  793.  
  794.    [11] SDP: Session Description Protocol; M. Handley and V. Jacobson;
  795.    Work In Progress.
  796.  
  797.    [12] Hierarchical Protocol Independent Multicast; M. Handley, J.
  798.    Crowcroft, I. Wakeman.  Available from:
  799.    http://www.cs.ucl.ac.uk/staff/M.Handley/hpim.ps  and
  800.    ftp://cs.ucl.ac.uk/darpa/IDMR/hpim.ps   Work done 1995.
  801.  
  802.    [13] Postel, J., "Internet Control Message Protocol (ICMP)", STD 5,
  803.    RFC 792, September 1981.
  804.  
  805.    [14] Perkins, C., "IP Encapsulation within IP", RFC 2003, October
  806.    1996.
  807.  
  808.    [15] CBT - Dense Mode Multicast Interoperability; A. Ballardie; Work
  809.    In Progress.
  810.  
  811.    [16] Performance and Resource Cost Comparisons of Multicast Routing
  812.    Algorithms for Distributed Interactive Simulation Applications; T.
  813.    Billhartz, J. Bibb Cain, E.  Farrey-Goudreau, and D. Feig. Available
  814.    from: http://www.epm.ornl.gov/~sgb/pubs.html; July 1995.
  815.  
  816.    [17] The Ordered Core Based Tree Protocol; C. Shields and J.J.
  817.    Garcia- Luna-Aceves; In Proceedings of IEEE Infocom'97, Kobe, Japan,
  818.    April 1997; http://www.cse.ucsc.edu/research/ccrg/publications/info-
  819.    comm97ocbt.ps.gz
  820.  
  821.    [18] Estrin, D., et. al., "Protocol Independent Multicast-Sparse Mode
  822.    (PIM-SM): Protocol Specification", RFC 2117, June 1997.
  823.  
  824.    [19] Multicast-Specific Security Threats and Counter-Measures; A.
  825.    Ballardie and J. Crowcroft; In Proceedings "Symposium on Network and
  826.    Distributed System Security", February 1995, pp.2-16.
  827.  
  828. Author Information
  829.  
  830.    Tony Ballardie,
  831.    Research Consultant
  832.  
  833.    EMail: ABallardie@acm.org
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Ballardie                     Experimental                     [Page 15]
  843.  
  844.