diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2201.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2201.txt')
-rw-r--r-- | doc/rfc/rfc2201.txt | 843 |
1 files changed, 843 insertions, 0 deletions
diff --git a/doc/rfc/rfc2201.txt b/doc/rfc/rfc2201.txt new file mode 100644 index 0000000..215716d --- /dev/null +++ b/doc/rfc/rfc2201.txt @@ -0,0 +1,843 @@ + + + + + + +Network Working Group A. Ballardie +Request for Comments: 2201 Consultant +Category: Experimental September 1997 + + + Core Based Trees (CBT) Multicast Routing Architecture + +Status of this Memo + + This memo defines an Experimental Protocol for the Internet + community. This memo does not specify an Internet standard of any + kind. Discussion and suggestions for improvement are requested. + Distribution of this memo is unlimited. + +Abstract + + CBT is a multicast routing architecture that builds a single delivery + tree per group which is shared by all of the group's senders and + receivers. Most multicast algorithms build one multicast tree per + sender (subnetwork), the tree being rooted at the sender's + subnetwork. The primary advantage of the shared tree approach is + that it typically offers more favourable scaling characteristics than + all other multicast algorithms. + + The CBT protocol [1] is a network layer multicast routing protocol + that builds and maintains a shared delivery tree for a multicast + group. The sending and receiving of multicast data by hosts on a + subnetwork conforms to the traditional IP multicast service model + [2]. + + CBT is progressing through the IDMR working group of the IETF. The + CBT protocol is described in an accompanying document [1]. For this, + and all IDMR-related documents, see http://www.cs.ucl.ac.uk/ietf/idmr + +TABLE OF CONTENTS + + 1. Background................................................... 2 + 2. Introduction................................................. 2 + 3. Source Based Tree Algorithms................................. 3 + 3.1 Distance-Vector Multicast Algorithm...................... 4 + 3.2 Link State Multicast Algorithm........................... 5 + 3.3 The Motivation for Shared Trees.......................... 5 + 4. CBT - The New Architecture................................... 7 + 4.1 Design Requirements...................................... 7 + 4.2 Components & Functions................................... 8 + 4.2.1 CBT Control Message Retransmission Strategy........ 10 + 4.2.2 Non-Member Sending................................. 11 + 5. Interoperability with Other Multicast Routing Protocols ..... 11 + + + +Ballardie Experimental [Page 1] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + 6. Core Router Discovery........................................ 11 + 6.1 Bootstrap Mechanism Overview............................. 12 + 7. Summary ..................................................... 13 + 8. Security Considerations...................................... 13 + Acknowledgements ............................................... 14 + References ..................................................... 14 + Author Information.............................................. 15 + +1. Background + + Shared trees were first described by Wall in his investigation into + low-delay approaches to broadcast and selective broadcast [3]. Wall + concluded that delay will not be minimal, as with shortest-path + trees, but the delay can be kept within bounds that may be + acceptable. Back then, the benefits and uses of multicast were not + fully understood, and it wasn't until much later that the IP + multicast address space was defined (class D space [4]). Deering's + work [2] in the late 1980's was pioneering in that he defined the IP + multicast service model, and invented algorithms which allow hosts to + arbitrarily join and leave a multicast group. All of Deering's + multicast algorithms build source-rooted delivery trees, with one + delivery tree per sender subnetwork. These algorithms are documented + in [2]. + + After several years practical experience with multicast, we see a + diversity of multicast applications and correspondingly, a wide + variety of multicast application requirements. For example, + distributed interactive simulation (DIS) applications have strict + requirements in terms of join latency, group membership dynamics, + group sender populations, far exceeding the requirements of many + other multicast applications. + + The multicast-capable part of the Internet, the MBONE, continues to + expand rapidly. The obvious popularity and growth of multicast means + that the scaling aspects of wide-area multicasting cannot be + overlooked; some predictions talk of thousands of groups being + present at any one time in the Internet. + + We evaluate scalability in terms of network state maintenance, + bandwidth efficiency, and protocol overhead. Other factors that can + affect these parameters include sender set size, and wide-area + distribution of group members. + +2. Introduction + + Multicasting on the local subnetwork does not require either the + presence of a multicast router or the implementation of a multicast + routing algorithm; on most shared media (e.g. Ethernet), a host, + + + +Ballardie Experimental [Page 2] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + which need not necessarily be a group member, simply sends a + multicast data packet, which is received by any member hosts + connected to the same medium. + + For multicasts to extend beyond the scope of the local subnetwork, + the subnet must have a multicast-capable router attached, which + itself is attached (possibly "virtually") to another multicast- + capable router, and so on. The collection of these (virtually) + connected multicast routers forms the Internet's MBONE. + + All multicast routing protocols make use of IGMP [5], a protocol that + operates between hosts and multicast router(s) belonging to the same + subnetwork. IGMP enables the subnet's multicast router(s) to monitor + group membership presence on its directly attached links, so that if + multicast data arrives, it knows over which of its links to send a + copy of the packet. + + In our description of the MBONE so far, we have assumed that all + multicast routers on the MBONE are running the same multicast routing + protocol. In reality, this is not the case; the MBONE is a collection + of autonomously administered multicast regions, each region defined + by one or more multicast-capable border routers. Each region + independently chooses to run whichever multicast routing protocol + best suits its needs, and the regions interconnect via the "backbone + region", which currently runs the Distance Vector Multicast Routing + Protocol (DVMRP) [6]. Therefore, it follows that a region's border + router(s) must interoperate with DVMRP. + + Different algorithms use different techniques for establishing a + distribution tree. If we classify these algorithms into source-based + tree algorithms and shared tree algorithms, we'll see that the + different classes have considerably different scaling + characteristics, and the characteristics of the resulting trees + differ too, for example, average delay. Let's look at source-based + tree algorithms first. + +3. Source-Based Tree Algorithms + + The strategy we'll use for motivating (CBT) shared tree multicast is + based, in part, in explaining the characteristics of source-based + tree multicast, in particular its scalability. + + Most source-based tree multicast algorithms are often referred to as + "dense-mode" algorithms; they assume that the receiver population + densely populates the domain of operation, and therefore the + accompanying overhead (in terms of state, bandwidth usage, and/or + processing costs) is justified. Whilst this might be the case in a + local environment, wide-area group membership tends to be sparsely + + + +Ballardie Experimental [Page 3] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + distributed throughout the Internet. There may be "pockets" of + denseness, but if one views the global picture, wide-area groups tend + to be sparsely distributed. + + Source-based multicast trees are either built by a distance-vector + style algorithm, which may be implemented separately from the unicast + routing algorithm (as is the case with DVMRP), or the multicast tree + may be built using the information present in the underlying unicast + routing table (as is the case with PIM-DM [7]). The other algorithm + used for building source-based trees is the link-state algorithm (a + protocol instance being M-OSPF [8]). + +3.1. Distance-Vector Multicast Algorithm + + The distance-vector multicast algorithm builds a multicast delivery + tree using a variant of the Reverse-Path Forwarding technique [9]. + The technique basically is as follows: when a multicast router + receives a multicast data packet, if the packet arrives on the + interface used to reach the source of the packet, the packet is + forwarded over all outgoing interfaces, except leaf subnets with no + members attached. A "leaf" subnet is one which no router would use + to reach the souce of a multicast packet. If the data packet does not + arrive over the link that would be used to reach the source, the + packet is discarded. + + This constitutes a "broadcast & prune" approach to multicast tree + construction; when a data packet reaches a leaf router, if that + router has no membership registered on any of its directly attached + subnetworks, the router sends a prune message one hop back towards + the source. The receiving router then checks its leaf subnets for + group membership, and checks whether it has received a prune from all + of its downstream routers (downstream with respect to the source). + If so, the router itself can send a prune upstream over the interface + leading to the source. + + The sender and receiver of a prune message must cache the <source, + group> pair being reported, for a "lifetime" which is at the + granularity of minutes. Unless a router's prune information is + refreshed by the receipt of a new prune for <source, group> before + its "lifetime" expires, that information is removed, allowing data to + flow over the branch again. State that expires in this way is + referred to as "soft state". + + Interestingly, routers that do not lead to group members are incurred + the state overhead incurred by prune messages. For wide-area + multicasting, which potentially has to support many thousands of + active groups, each of which may be sparsely distributed, this + technique clearly does not scale. + + + +Ballardie Experimental [Page 4] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + +3.2. Link-State Multicast Algorithm + + Routers implementing a link state algorithm periodically collect + reachability information to their directly attached neighbours, then + flood this throughout the routing domain in so-called link state + update packets. Deering extended the link state algorithm for + multicasting by having a router additionally detect group membership + changes on its incident links before flooding this information in + link state packets. + + Each router then, has a complete, up-to-date image of a domain's + topology and group membership. On receiving a multicast data packet, + each router uses its membership and topology information to calculate + a shortest-path tree rooted at the sender subnetwork. Provided the + calculating router falls within the computed tree, it forwards the + data packet over the interfaces defined by its calculation. Hence, + multicast data packets only ever traverse routers leading to members, + either directly attached, or further downstream. That is, the + delivery tree is a true multicast tree right from the start. + + However, the flooding (reliable broadcasting) of group membership + information is the predominant factor preventing the link state + multicast algorithm being applicable over the wide-area. The other + limiting factor is the processing cost of the Dijkstra calculation to + compute the shortest-path tree for each active source. + +3.3. The Motivation for Shared Trees + + The algorithms described in the previous sections clearly motivate + the need for a multicast algorithm(s) that is more scalable. CBT was + designed primarily to address the topic of scalability; a shared tree + architecture offers an improvement in scalability over source tree + architectures by a factor of the number of active sources (where + source is usually a subnetwork aggregate). Source trees scale O(S * + G), since a distinct delivery tree is built per active source. Shared + trees eliminate the source (S) scaling factor; all sources use the + same shared tree, and hence a shared tree scales O(G). The + implication of this is that applications with many active senders, + such as distributed interactive simulation applications, and + distributed video-gaming (where most receivers are also senders), + have a significantly lesser impact on underlying multicast routing if + shared trees are used. + + + + + + + + + +Ballardie Experimental [Page 5] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + In the "back of the envelope" table below we compare the amount of + state required by CBT and DVMRP for different group sizes with + different numbers of active sources: + + |--------------|---------------------------------------------------| + | Number of | | | | + | groups | 10 | 100 | 1000 | + ==================================================================== + | Group size | | | | + | (# members) | 20 | 40 | 60 | + -------------------------------------------------------------------| + | No. of srcs | | | | | | | | | | + | per group |10% | 50% |100% |10% | 50% |100% |10% | 50% | 100% | + -------------------------------------------------------------------- + | No. of DVMRP | | | | | | | | | | + | router | | | | | | | | | | + | entries | 20 | 100 | 200 |400 | 2K | 4K | 6K | 30K | 60K | + -------------------------------------------------------------------- + | No. of CBT | | | | + | router | | | | + | entries | 10 | 100 | 1000 | + |------------------------------------------------------------------| + + Figure 1: Comparison of DVMRP and CBT Router State + + Shared trees also incur significant bandwidth and state savings + compared with source trees; firstly, the tree only spans a group's + receivers (including links/routers leading to receivers) -- there is + no cost to routers/links in other parts of the network. Secondly, + routers between a non-member sender and the delivery tree are not + incurred any cost pertaining to multicast, and indeed, these routers + need not even be multicast-capable -- packets from non-member senders + are encapsulated and unicast to a core on the tree. + + + + + + + + + + + + + + + + + + +Ballardie Experimental [Page 6] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + The figure below illustrates a core based tree. + + b b b-----b + \ | | + \ | | + b---b b------b + / \ / KEY.... + / \/ + b X---b-----b X = Core + / \ b = on-tree router + / \ + / \ + b b------b + / \ | + / \ | + b b b + + Figure 2: CBT Tree + +4. CBT - The New Architecture + +4.1. Design Requirements + + The CBT shared tree design was geared towards several design + objectives: + + o scalability - the CBT designers decided not to sacrifice CBT's + O(G) scaling characteric to optimize delay using SPTs, as does + PIM. This was an important design decision, and one, we think, + was taken with foresight; once multicasting becomes ubiquitous, + router state maintenance will be a predominant scaling factor. + It is possible in some circumstances to improve/optimize the + delay of shared trees by other means. For example, a broadcast- + type lecture with a single sender (or limited set of + infrequently changing senders) could have its core placed in the + locality of the sender, allowing the CBT to emulate a shortest- + path tree (SPT) whilst still maintaining its O(G) scaling + characteristic. More generally, because CBT does not incur + source-specific state, it is particularly suited to many sender + applications. + + o robustness - source-based tree algorithms are clearly robust; a + sender simply sends its data, and intervening routers "conspire" + to get the data where it needs to, creating state along the way. + This is the so-called "data driven" approach -- there is no + set-up protocol involved. + + + + + +Ballardie Experimental [Page 7] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + It is not as easy to achieve the same degree of robustness in + shared tree algorithms; a shared tree's core router maintains + connectivity between all group members, and is thus a single + point of failure. Protocol mechanisms must be present that + ensure a core failure is detected quickly, and the tree + reconnected quickly using a replacement core router. + + o simplicity - the CBT protocol is relatively simple compared to + most other multicast routing protocols. This simplicity can lead + to enhanced performance compared to other protocols. + + o interoperability - from a multicast perspective, the Internet is + a collection of heterogeneous multicast regions. The protocol + interconnecting these multicast regions is currently DVMRP [6]; + any regions not running DVMRP connect to the DVMRP "backbone" as + stub regions. CBT has well-defined interoperability mechanisms + with DVMRP [15]. + +4.2. CBT Components & Functions + + The CBT protocol is designed to build and maintain a shared multicast + distribution tree that spans only those networks and links leading to + interested receivers. + + To achieve this, a host first expresses its interest in joining a + group by multicasting an IGMP host membership report [5] across its + attached link. On receiving this report, a local CBT aware router + invokes the tree joining process (unless it has already) by + generating a JOIN_REQUEST message, which is sent to the next hop on + the path towards the group's core router (how the local router + discovers which core to join is discussed in section 6). This join + message must be explicitly acknowledged (JOIN_ACK) either by the core + router itself, or by another router that is on the unicast path + between the sending router and the core, which itself has already + successfully joined the tree. + + The join message sets up transient join state in the routers it + traverses, and this state consists of <group, incoming interface, + outgoing interface>. "Incoming interface" and "outgoing interface" + may be "previous hop" and "next hop", respectively, if the + corresponding links do not support multicast transmission. "Previous + hop" is taken from the incoming control packet's IP source address, + and "next hop" is gleaned from the routing table - the next hop to + the specified core address. This transient state eventually times out + unless it is "confirmed" with a join acknowledgement (JOIN_ACK) from + upstream. The JOIN_ACK traverses the reverse path of the + corresponding join message, which is possible due to the presence of + the transient join state. Once the acknowledgement reaches the + + + +Ballardie Experimental [Page 8] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + router that originated the join message, the new receiver can receive + traffic sent to the group. + + Loops cannot be created in a CBT tree because a) there is only one + active core per group, and b) tree building/maintenance scenarios + which may lead to the creation of tree loops are avoided. For + example, if a router's upstream neighbour becomes unreachable, the + router immediately "flushes" all of its downstream branches, allowing + them to individually rejoin if necessary. Transient unicast loops do + not pose a threat because a new join message that loops back on + itself will never get acknowledged, and thus eventually times out. + + The state created in routers by the sending or receiving of a + JOIN_ACK is bi-directional - data can flow either way along a tree + "branch", and the state is group specific - it consists of the group + address and a list of local interfaces over which join messages for + the group have previously been acknowledged. There is no concept of + "incoming" or "outgoing" interfaces, though it is necessary to be + able to distinguish the upstream interface from any downstream + interfaces. In CBT, these interfaces are known as the "parent" and + "child" interfaces, respectively. + + With regards to the information contained in the multicast forwarding + cache, on link types not supporting native multicast transmission an + on-tree router must store the address of a parent and any children. + On links supporting multicast however, parent and any child + information is represented with local interface addresses (or similar + identifying information, such as an interface "index") over which the + parent or child is reachable. + + When a multicast data packet arrives at a router, the router uses the + group address as an index into the multicast forwarding cache. A copy + of the incoming multicast data packet is forwarded over each + interface (or to each address) listed in the entry except the + incoming interface. + + Each router that comprises a CBT multicast tree, except the core + router, is responsible for maintaining its upstream link, provided it + has interested downstream receivers, i.e. the child interface list is + not NULL. A child interface is one over which a member host is + directly attached, or one over which a downstream on-tree router is + attached. This "tree maintenance" is achieved by each downstream + router periodically sending a "keepalive" message (ECHO_REQUEST) to + its upstream neighbour, i.e. its parent router on the tree. One + keepalive message is sent to represent entries with the same parent, + thereby improving scalability on links which are shared by many + groups. On multicast capable links, a keepalive is multicast to the + "all-cbt-routers" group (IANA assigned as 224.0.0.15); this has a + + + +Ballardie Experimental [Page 9] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + suppressing effect on any other router for which the link is its + parent link. If a parent link does not support multicast + transmission, keepalives are unicast. + + The receipt of a keepalive message over a valid child interface + immediately prompts a response (ECHO_REPLY), which is either unicast + or multicast, as appropriate. + + The ECHO_REQUEST does not contain any group information; the + ECHO_REPLY does, but only periodically. To maintain consistent + information between parent and child, the parent periodically + reports, in a ECHO_REPLY, all groups for which it has state, over + each of its child interfaces for those groups. This group-carrying + echo reply is not prompted explicitly by the receipt of an echo + request message. A child is notified of the time to expect the next + echo reply message containing group information in an echo reply + prompted by a child's echo request. The frequency of parent group + reporting is at the granularity of minutes. + + It cannot be assumed all of the routers on a multi-access link have a + uniform view of unicast routing; this is particularly the case when a + multi-access link spans two or more unicast routing domains. This + could lead to multiple upstream tree branches being formed (an error + condition) unless steps are taken to ensure all routers on the link + agree which is the upstream router for a particular group. CBT + routers attached to a multi-access link participate in an explicit + election mechanism that elects a single router, the designated router + (DR), as the link's upstream router for all groups. Since the DR + might not be the link's best next-hop for a particular core router, + this may result in join messages being re-directed back across a + multi-access link. If this happens, the re-directed join message is + unicast across the link by the DR to the best next-hop, thereby + preventing a looping scenario. This re-direction only ever applies + to join messages. Whilst this is suboptimal for join messages, which + are generated infrequently, multicast data never traverses a link + more than once (either natively, or encapsulated). + + In all but the exception case described above, all CBT control + messages are multicast over multicast supporting links to the "all- + cbt-routers" group, with IP TTL 1. When a CBT control message is sent + over a non-multicast supporting link, it is explicitly addressed to + the appropriate next hop. + +4.2.1. CBT Control Message Retransmission Strategy + + Certain CBT control messages illicit a response of some sort. Lack of + response may be due to an upstream router crashing, or the loss of + the original message, or its response. To detect these events, CBT + + + +Ballardie Experimental [Page 10] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + retransmits those control messages for which it expects a response, + if that response is not forthcoming within the retransmission- + interval, which varies depending on the type of message involved. + There is an upper bound (typically 3) on the number of + retransmissions of the original message before an exception condition + is raised. + + For example, the exception procedure for lack of response to an + ECHO_REQUEST is to send a QUIT_NOTIFICATION upstream and a FLUSH_TREE + message downstream for the group. If this is router has group members + attached, it restarts the joining process to the group's core. + +4.2.2. Non-Member Sending + + If a non-member sender's local router is already on-tree for the + group being sent to, the subnet's upstream router simply forwards the + data packet over all outgoing interfaces corresponding to that + group's forwarding cache entry. This is in contrast to PIM-SM [18] + which must encapsulate data from a non-member sender, irrespective of + whether the local router has joined the tree. This is due to PIM's + uni-directional state. + + If the sender's subnet is not attached to the group tree, the local + DR must encapsulate the data packet and unicast it to the group's + core router, where it is decapsulated and disseminated over all tree + interfaces, as specified by the core's forwarding cache entry for the + group. The data packet encapsulation method is IP-in-IP [14]. + + Routers in between a non-member sender and the group's core need not + know anything about the multicast group, and indeed may even be + multicast-unaware. This makes CBT particulary attractive for + applications with non-member senders. + +5. Interoperability with Other Multicast Routing Protocols + + See "interoperability" in section 4.1. + + The interoperability mechanisms for interfacing CBT with DVMRP are + defined in [15]. + +6. Core Router Discovery + + Core router discovery is by far the most controversial and difficult + aspect of shared tree multicast architectures, particularly in the + context of inter-domain multicast routing (IDMR). There have been + many proposals over the past three years or so, including advertising + core addresses in a multicast session directory like "sdr" [11], + manual placement, and the HPIM [12] approach of strictly dividing up + + + +Ballardie Experimental [Page 11] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + the multicast address space into many "hierarchical scopes" and using + explicit advertising of core routers between scope levels. + + There are currently two options for CBTv2 [1] core discovery; the + "bootstrap" mechamism, and manual placement. The bootstrap mechanisms + (as currently specified with the PIM sparse mode protocol [18]) is + applicable only to intra-domain core discovery, and allows for a + "plug & play" type operation with minimal configuration. The + disadvantage of the bootstrap mechanism is that it is much more + difficult to affect the shape, and thus optimality, of the resulting + distribution tree. Also, it must be implemented by all CBT routers + within a domain. + + Manual configuration of leaf routers with <core, group> mappings is + the other option (note: leaf routers only); this imposes a degree of + administrative burden - the mapping for a particular group must be + coordinated across all leaf routers to ensure consistency. Hence, + this method does not scale particularly well. However, it is likely + that "better" trees will result from this method, and it is also the + only available option for inter-domain core discovery currently + available. + + +6.1. Bootstrap Mechanism Overview + + It is unlikely at this stage that the bootstrap mechanism will be + appended to a well-known network layer protocol, such as IGMP [5] or + ICMP [13], though this would facilitate its ubiquitous (intra-domain) + deployment. Therefore, each multicast routing protocol requiring the + bootstrap mechanism must implement it as part of the multicast + routing protocol itself. + + A summary of the operation of the bootstrap mechanism follows. It is + assumed that all routers within the domain implement the "bootstrap" + protocol, or at least forward bootstrap protocol messages. + + A subset of the domain's routers are configured to be CBT candidate + core routers. Each candidate core router periodically (default every + 60 secs) advertises itself to the domain's Bootstrap Router (BSR), + using "Core Advertisement" messages. The BSR is itself elected + dynamically from all (or participating) routers in the domain. The + domain's elected BSR collects "Core Advertisement" messages from + candidate core routers and periodically advertises a candidate core + set (CC-set) to each other router in the domain, using traditional + hopby-hop unicast forwarding. The BSR uses "Bootstrap Messages" to + advertise the CC-set. Together, "Core Advertisements" and "Bootstrap + Messages" comprise the "bootstrap" protocol. + + + + +Ballardie Experimental [Page 12] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + When a router receives an IGMP host membership report from one of its + directly attached hosts, the local router uses a hash function on the + reported group address, the result of which is used as an index into + the CC-set. This is how local routers discover which core to use for + a particular group. + + Note the hash function is specifically tailored such that a small + number of consecutive groups always hash to the same core. + Furthermore, bootstrap messages can carry a "group mask", potentially + limiting a CC-set to a particular range of groups. This can help + reduce traffic concentration at the core. + + If a BSR detects a particular core as being unreachable (it has not + announced its availability within some period), it deletes the + relevant core from the CC-set sent in its next bootstrap message. + This is how a local router discovers a group's core is unreachable; + the router must re-hash for each affected group and join the new core + after removing the old state. The removal of the "old" state follows + the sending of a QUIT_NOTIFICATION upstream, and a FLUSH_TREE message + downstream. + +7. Summary + + This document presents an architecture for intra- and inter-domain + multicast routing. We motivated this architecture by describing how + an inter-domain multicast routing algorithm must scale to large + numbers of groups present in the internetwork, and discussed why most + other existing algorithms are less suited to inter-domain multicast + routing. We followed by describing the features and components of + the architecture, illustrating its simplicity and scalability. + +8. Security Considerations + + Security considerations are not addressed in this memo. + + Whilst multicast security is a topic of ongoing research, multicast + applications (users) nevertheless have the ability to take advantage + of security services such as encryption or/and authentication + provided such services are supported by the applications. + + RFCs 1949 and 2093/2094 discuss different ways of distributing + multicast key material, which can result in the provision of network + layer access control to a multicast distribution tree. + + [19] offers a synopsis of multicast security threats and proposes + some possible counter measures. + + + + + +Ballardie Experimental [Page 13] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + Beyond these, little published work exists on the topic of multicast + security. + +Acknowledgements + + Special thanks goes to Paul Francis, NTT Japan, for the original + brainstorming sessions that brought about this work. + + Clay Shields' work on OCBT [17] identified various failure scenarios + with a multi-core architecture, resulting in the specification of a + single core architecture. + + Others that have contributed to the progress of CBT include Ken + Carlberg, Eric Crawley, Jon Crowcroft, Mark Handley, Ahmed Helmy, + Nitin Jain, Alan O'Neill, Steven Ostrowsksi, Radia Perlman, Scott + Reeve, Benny Rodrig, Martin Tatham, Dave Thaler, Sue Thompson, Paul + White, and other participants of the IETF IDMR working group. + + Thanks also to 3Com Corporation and British Telecom Plc for funding + this work. + +References + + [1] Ballardie, A., "Core Based Trees (CBT version 2) Multicast + Routing: Protocol Specification", RFC 2189, September 1997. + + [2] Multicast Routing in a Datagram Internetwork; S. Deering, PhD + Thesis, 1991; ftp://gregorio.stanford.edu/vmtp/sd-thesis.ps. + + [3] Mechanisms for Broadcast and Selective Broadcast; D. Wall; PhD + thesis, Stanford University, June 1980. Technical Report #90. + + [4] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700, + October 1994. + + [5] Internet Group Management Protocol, version 2 (IGMPv2); W. + Fenner; Work In Progress. + + [6] Distance Vector Multicast Routing Protocol (DVMRP); T. Pusateri; + Work In Progress. + + [7] Protocol Independent Multicast (PIM) Dense Mode Specification; D. + Estrin et al; ftp://netweb.usc.edu/pim, Work In Progress. + + [8] Moy, J., "Multicast Extensions to OSPF", RFC 1584, March 1994. + + [9] Reverse path forwarding of broadcast packets; Y.K. Dalal and + R.M. Metcalfe; Communications of the ACM, 21(12):1040--1048, 1978. + + + +Ballardie Experimental [Page 14] + +RFC 2201 CBT Multicast Routing Architecture September 1997 + + + [10] Some Issues for an Inter-Domain Multicast Routing Protocol; D. + Meyer; Work In Progress. + + [11] SDP: Session Description Protocol; M. Handley and V. Jacobson; + Work In Progress. + + [12] Hierarchical Protocol Independent Multicast; M. Handley, J. + Crowcroft, I. Wakeman. Available from: + http://www.cs.ucl.ac.uk/staff/M.Handley/hpim.ps and + ftp://cs.ucl.ac.uk/darpa/IDMR/hpim.ps Work done 1995. + + [13] Postel, J., "Internet Control Message Protocol (ICMP)", STD 5, + RFC 792, September 1981. + + [14] Perkins, C., "IP Encapsulation within IP", RFC 2003, October + 1996. + + [15] CBT - Dense Mode Multicast Interoperability; A. Ballardie; Work + In Progress. + + [16] Performance and Resource Cost Comparisons of Multicast Routing + Algorithms for Distributed Interactive Simulation Applications; T. + Billhartz, J. Bibb Cain, E. Farrey-Goudreau, and D. Feig. Available + from: http://www.epm.ornl.gov/~sgb/pubs.html; July 1995. + + [17] The Ordered Core Based Tree Protocol; C. Shields and J.J. + Garcia- Luna-Aceves; In Proceedings of IEEE Infocom'97, Kobe, Japan, + April 1997; http://www.cse.ucsc.edu/research/ccrg/publications/info- + comm97ocbt.ps.gz + + [18] Estrin, D., et. al., "Protocol Independent Multicast-Sparse Mode + (PIM-SM): Protocol Specification", RFC 2117, June 1997. + + [19] Multicast-Specific Security Threats and Counter-Measures; A. + Ballardie and J. Crowcroft; In Proceedings "Symposium on Network and + Distributed System Security", February 1995, pp.2-16. + +Author Information + + Tony Ballardie, + Research Consultant + + EMail: ABallardie@acm.org + + + + + + + + +Ballardie Experimental [Page 15] + |