home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_j_p / draft-ietf-mboned-intro-multicast-00.txt < prev    next >
Text File  |  1997-01-07  |  150KB  |  3,479 lines

  1. INTERNET-DRAFT                                                C. Semeria
  2.                                                                T. Maufer
  3. Category: Informational                                 3Com Corporation
  4.                                                             January 1997
  5.  
  6.  
  7.  
  8.                Introduction to IP Multicast Routing
  9.  
  10.             <draft-ietf-mboned-intro-multicast-00.txt>
  11.  
  12.  
  13. Status of this Memo
  14.  
  15. This document is an Internet Draft.  Internet Drafts are working
  16. documents of the Internet Engineering Task Force (IETF), its Areas, and
  17. its Working Groups.  Note that other groups may also distribute working
  18. documents as Internet Drafts.
  19.  
  20. Internet Drafts are draft documents valid for a maximum of six months.
  21. Internet Drafts may be updated, replaced, or obsoleted by other
  22. documents at any time.  It is not appropriate to use Internet Drafts as
  23. reference material or to cite them other than as a "working draft" or
  24. "work in progress."
  25.  
  26. To learn the current status of any Internet-Draft, please check the
  27. "1id-abstracts.txt" listing contained in the internet-drafts Shadow
  28. Directories on:
  29.  
  30.          ftp.is.co.za            (Africa)
  31.          nic.nordu.net           (Europe)
  32.          ds.internic.net  (US East Coast)
  33.          ftp.isi.edu      (US West Coast)
  34.          munnari.oz.au      (Pacific Rim)
  35.  
  36.  
  37. FOREWORD
  38.  
  39. This document is introductory in nature.  We have not attempted to
  40. describe every detail of each protocol, rather to give a concise
  41. overview in all cases, with enough specifics to allow a reader to grasp
  42. the essential details and operation of protocols related to multicast
  43. IP.  Every effort has been made to ensure the accurate representation of
  44. any cited works, especially any works-in-pro- gress.  For the complete
  45. details, we refer you to the relevant specification(s).
  46.  
  47. If internet-drafts are cited in this document, it is only because they
  48. are the only sources of certain technical information at the time of
  49. this writing.  We expect that many of the internet-drafts which we have
  50. cited will eventually become RFCs.  See the shadow directories on the
  51. previous page for the status of any of these drafts, their follow-on
  52. drafts, or possibly the resulting RFCs.
  53.  
  54.  
  55.  
  56.  
  57. Semeria & Maufer                                                [Page 1]
  58. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  59.  
  60.  
  61. ABSTRACT
  62.  
  63. The first part of this paper describes the benefits of multicasting,
  64. the MBone, Class D addressing, and the operation of the Internet Group
  65. Management Protocol (IGMP).  The second section explores a number of
  66. different techniques that may potentially be employed by multicast
  67. routing protocols:
  68.  
  69.     o  Flooding
  70.     o  Spanning Trees
  71.     o  Reverse Path Broadcasting (RPB)
  72.     o  Truncated Reverse Path Broadcasting (TRPB) 
  73.     o  Reverse Path Multicasting (RPM)
  74.     o  "Shared-Tree" Techniques
  75.  
  76. The third part contains the main body of the paper.  It describes how
  77. the previous techniques are implemented in multicast routing protocols
  78. available today (or under development).
  79.  
  80.     o  Distance Vector Multicast Routing Protocol (DVMRP)
  81.     o  Multicast Extensions to OSPF (MOSPF)
  82.     o  Protocol-Independent Multicast (PIM)
  83.     o  Core-Based Trees (CBT)
  84.  
  85.  
  86.                           Table of Contents
  87. Section
  88.  
  89. 1  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  INTRODUCTION
  90. 1.1  . . . . . . . . . . . . . . . . . . . . . . . . .  Multicast Groups
  91. 1.2  . . . . . . . . . . . . . . . . . . . . . Group Membership Protocol
  92. 1.3  . . . . . . . . . . . . . . . . . . . . Multicast Routing Protocols
  93. 1.3.1  . . . . . . . . . . .  Multicast Routing vs. Multicast Forwarding
  94. 2  . . . . . . . .  MULTICAST SUPPORT FOR EMERGING INTERNET APPLICATIONS
  95. 2.1  . . . . . . . . . . . . . . . . . . . . . . . Reducing Network Load
  96. 2.2  . . . . . . . . . . . . . . . . . . . . . . . .  Resource Discovery
  97. 2.3  . . . . . . . . . . . . . . .  Support for Datacasting Applications
  98. 3  . . . . . . . . . . . . . . THE INTERNET'S MULTICAST BACKBONE (MBone)
  99. 4  . . . . . . . . . . . . . . . . . . . . .  . . . MULTICAST ADDRESSING
  100. 4.1  . . . . . . . . . . . . . . . . . . . . . .  . .  Class D Addresses
  101. 4.2  . . . . . . .  Mapping a Class D Address to an IEEE-802 MAC Address
  102. 4.3  . . . . . . . . .  Transmission and Delivery of Multicast Datagrams
  103. 5  . . . . . . . . . . . . . . INTERNET GROUP MANAGEMENT PROTOCOL (IGMP)
  104. 5.1  . . . . . . . . . . . . . . . . . . . . . . . . . .  IGMP Version 1
  105. 5.2  . . . . . . . . . . . . . . . . . . . . . . . . . .  IGMP Version 2
  106. 5.3  . . . . . . . . . . . . . . . . . . . . . . . . . .  IGMP Version 3
  107. 6  . . . . . . . . . . . . . . . . . . . MULTICAST FORWARDING TECHNIQUES
  108. 6.1  . . . . . . . . . . . . . . . . . . . . . "Simpleminded" Techniques
  109. 6.1.1  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Flooding
  110. 6.1.2  . . . . . . . . . . . . . . . . . . . . . . . . . . Spanning Tree
  111. 6.2  . . . . . . . . . . . . . . . . . . .  Source-Based Tree Techniques
  112. 6.2.1  . . . . . . . . . . . . . . . . . Reverse Path Broadcasting (RPB)
  113.  
  114. Semeria & Maufer                                                [Page 2]
  115. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  116.  
  117.  
  118. 6.2.1.1  . . . . . . . . . . . . .  Reverse Path Broadcasting: Operation
  119. 6.2.1.2. . . . . . . . . . . . . . . . . . RPB: Benefits and Limitations
  120. 6.2.2  . . . . . . . . . . .  Truncated Reverse Path Broadcasting (TRPB)
  121. 6.2.3  . . . . . . . . . . . . . . . . . Reverse Path Multicasting (RPM)
  122. 6.2.3.1  . . . . . . . . . . . . . . . . . . . . . . . . . . . Operation
  123. 6.2.3.2  . . . . . . . . . . . . . . . . . . . . . . . . . . Limitations
  124. 6.3  . . . . . . . . . . . . . . . . . . . . . .  Shared Tree Techniques
  125. 6.3.1  . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operation
  126. 6.3.2  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Benefits
  127. 6.3.3  . . . . . . . . . . . . . . . . . . . . . . . . . . . Limitations
  128. 7  . . . . . . . . .  SOURCE-BASED TREE ("DENSE MODE") ROUTING PROTOCOLS
  129. 7.1  . . . . . . . .  Distance Vector Multicast Routing Protocol (DVMRP)
  130. 7.1.1  . . . . . . . . . . . . . . . . .  Physical and Tunnel Interfaces
  131. 7.1.2  . . . . . . . . . . . . . . . . . . . . . . . . . Basic Operation
  132. 7.1.3  . . . . . . . . . . . . . . . . . . . . .  DVMRP Router Functions
  133. 7.1.4  . . . . . . . . . . . . . . . . . . . . . . . DVMRP Routing Table
  134. 7.1.5  . . . . . . . . . . . . . . . . . . . . .  DVMRP Forwarding Table
  135. 7.1.6  . . . . . . . . . . . . . . . . . Hierarchical DVMRP (DVMRP v4.0)
  136. 7.1.6.1  . . . . . . . . . .  Benefits of Hierarchical Multicast Routing
  137. 7.1.6.2  . . . . . . . . . . . . . . . . . . . Hierarchical Architecture
  138. 7.2  . . . . . . . . . . . . . . .  Multicast Extensions to OSPF (MOSPF)
  139. 7.2.1  . . . . . . . . . . . . . . . . . . Intra-Area Routing with MOSPF
  140. 7.2.1.1  . . . . . . . . . . . . . . . . . . . . .  Local Group Database
  141. 7.2.1.2  . . . . . . . . . . . . . . . . . Datagram's Shortest Path Tree
  142. 7.2.1.3  . . . . . . . . . . . . . . . . . . . . . . .  Forwarding Cache
  143. 7.2.2  . . . . . . . . . . . . . . . . . . Mixing MOSPF and OSPF Routers
  144. 7.2.3  . . . . . . . . . . . . . . . . . . Inter-Area Routing with MOSPF
  145. 7.2.3.1  . . . . . . . . . . . . . . . . Inter-Area Multicast Forwarders
  146. 7.2.3.2  . . . . . . . . . . .  Inter-Area Datagram's Shortest Path Tree
  147. 7.2.4  . . . . . . . . . Inter-Autonomous System Multicasting with MOSPF
  148. 7.3  . . . . . . . . . . . . . . .  Protocol-Independent Multicast (PIM)
  149. 7.3.1  . . . . . . . . . . . . . . . . . . . . PIM - Dense Mode (PIM-DM)
  150. 8  . . . . . . . . . . . . SHARED TREE ("SPARSE MODE") ROUTING PROTOCOLS
  151. 8.1  . . . . . . . Protocol-Independent Multicast - Sparse Mode (PIM-SM)
  152. 8.1.1  . . . . . . . . . . . . . .  Directly Attached Host Joins a Group
  153. 8.1.2  . . . . . . . . . . . . Directly Attached Source Sends to a Group
  154. 8.1.3  . . . . . . .  Shared Tree (RP-Tree) or Shortest Path Tree (SPT)?
  155. 8.1.4  . . . . . . . . . . . . . . . . . . . . . . .   Unresolved Issues
  156. 8.2  . . . . . . . . . . . . . . . . . . . . . .  Core-Based Trees (CBT)
  157. 8.2.1  . . . . . . . . . . . . . . . . . . Joining a Group's Shared Tree
  158. 8.2.2  . . . . . . . . . . . . . . . . . . . Primary and Secondary Cores
  159. 8.2.3  . . . . . . . . . . . . . . . . . . . . .  Data Packet Forwarding
  160. 8.2.4  . . . . . . . . . . . . . . . . . . . . . . .  Non-Member Sending
  161. 8.2.5  . . . . . . . . . . . . . . . . . . Emulating Shortest-Path Trees
  162. 8.2.6  . . . . . . . . . . . . . . . . .  CBT Multicast Interoperability
  163. 9   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REFERENCES
  164. 9.1 . . . . . . . . . . . . . . . . . . . . Requests for Comments (RFCs)
  165. 9.2 . . . . . . . . . . . . . . . . . . . . . . . . . .  Internet Drafts
  166. 9.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Textbooks
  167. 9.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Other
  168. 10  . . . . . . . . . . . . . . . . . . . . . .  SECURITY CONSIDERATIONS
  169. 11  . . . . . . . . . . . . . . . . . . . . . . . . . AUTHORS' ADDRESSES
  170.  
  171. Semeria & Maufer                                                [Page 3]
  172. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  173.  
  174.  
  175. 1. Introduction
  176.  
  177. There are three fundamental types of IPv4 addresses:  unicast,
  178. broadcast, and multicast.  A unicast address is used to transmit a
  179. packet to a single destination.  A broadcast address is used to send a
  180. datagram to an entire subnetwork.  A multicast address is designed to
  181. enable the delivery of datagrams to a set of hosts that have been
  182. configured as members of a multicast group across various
  183. subnetworks.
  184.  
  185. Multicasting is not connection-oriented.  A multicast datagram is
  186. delivered to destination group members with the same "best-effort"
  187. reliability as a standard unicast IP datagram.  This means that
  188. multicast datagrams are not guaranteed to reach all members of a group,
  189. nor to arrive in the same order in which they were transmitted.
  190.  
  191. The only difference between a multicast IP packet and a unicast IP
  192. packet is the presence of a 'group address' in the Destination Address
  193. field of the IP header.  Instead of a Class A, B, or C IP destination
  194. address, multicasting employs a Class D address format, which ranges
  195. from 224.0.0.0 to 239.255.255.255.
  196.  
  197. 1.1 Multicast Groups
  198.  
  199. Individual hosts are free to join or leave a multicast group at any
  200. time.  There are no restrictions on the physical location or the number
  201. of members in a multicast group.  A host may be a member of more than
  202. one multicast group at any given time and does not have to belong to a
  203. group to send packets to members of a group.
  204.  
  205. 1.2 Group Membership Protocol
  206.  
  207. A group membership protocol is employed by routers to learn about the
  208. presence of group members on their directly attached subnetworks.  When
  209. a host joins a multicast group, it transmits a group membership protocol
  210. message for the group(s) that it wishes to receive, and sets its IP
  211. process and network interface card to receive frames addressed to the
  212. multicast group.  This receiver-initiated join process has excellent
  213. scaling properties since, as the multicast group increases in size, it
  214. becomes ever more likely that a new group member will be able to locate
  215. a nearby branch of the multicast delivery tree.
  216.  
  217.  
  218.  
  219.  
  220.  
  221. [This space was intentionally left blank.]
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228. Semeria & Maufer                                                [Page 4]
  229. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  230.  
  231.  
  232. ========================================================================
  233.                     _    _    _    _ 
  234.                    |_|  |_|  |_|  |_|
  235.                    '-'  '-'  '-'  '-'
  236.                     |    |    |    | 
  237.                   <- - - - - - - - - ->
  238.                            |
  239.                            |
  240.                            v
  241.                         Router 
  242.                            ^
  243.                         /     \
  244.  _  ^                 +         +              ^  _ 
  245. |_|-|               /            \             |-|_|
  246. '_' |             +                +           | '_'
  247.  _  |          v                     v         |  _ 
  248. |_|-|- - >|Router| <- + - + - + -> |Router|<- -|-|_|
  249. '_' |                                          | '_'
  250.  _  |                                          |  _ 
  251. |_|-|                                          |-|_|
  252. '_' |                                          | '_'
  253.     v                                          v
  254.  
  255.  
  256. LEGEND
  257.  
  258. <- - - -> Group Membership Protocol
  259. <-+-+-+-> Multicast Routing Protocol
  260.  
  261. Figure 1: Multicast IP Delivery Service
  262. =======================================================================
  263.  
  264.  
  265. 1.3 Multicast Routing Protocols
  266.  
  267. Multicast routers execute a multicast routing protocol to define
  268. delivery paths that enable the forwarding of multicast datagrams
  269. across an internetwork.
  270.  
  271. 1.3.1  Multicast Routing vs. Multicast Forwarding
  272.  
  273. Multicast routing protocols supply the necessary data to enable the
  274. forwarding of multicast packets.  In the case of unicast routing,
  275. protocols are used to build a forwarding table (commonly called a
  276. routing table).  Unicast destinations are entered in the routing table,
  277. and associated with a metric and a next-hop router toward the
  278. destination.  Multicast routing protocols are usually unicast routing
  279. protocols that facilitate the determination of routes toward a source,
  280. not a destination.  Multicast routing protocols are also used to build
  281. a forwarding table.
  282.  
  283.  
  284.  
  285. Semeria & Maufer                                                [Page 5]
  286. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  287.  
  288.  
  289. The key difference between unicast forwarding and multicast forwarding
  290. is that multicast packets must be forwarded away from a source. If a
  291. packet ever goes back toward the source, a forwarding loop could be
  292. formed, possibly leading to a multicast "storm."
  293.  
  294. A common misconception is that multicast routing protocols pass around
  295. information about groups, represented by class D addresses. In fact, as
  296. long as a router can determine what direction the source is (relative to
  297. itself) and where all the downstream receivers are, then it can build
  298. a forwarding table.  The forwarding table tells the router that for a
  299. certain source sending to a certain group (or in other words, for a
  300. certain (source, group) pair), the packets must all arrive on a certain
  301. interface and be copied to certain "downstream" interface(s).
  302.  
  303.  
  304. 2. MULTICAST SUPPORT FOR EMERGING INTERNET APPLICATIONS
  305.  
  306. Today, the majority of Internet applications rely on point-to-point
  307. transmission.  The utilization of point-to-multipoint transmission has
  308. traditionally been limited to local area network applications.  Over the
  309. past few years the Internet has seen a rise in the number of new
  310. applications that rely on multicast transmission.  Multicast IP
  311. conserves bandwidth by forcing the network to do packet replication only
  312. when necessary, and offers an attractive alternative to unicast
  313. transmission for the delivery of network ticker tapes, live stock
  314. quotes, multiparty videoconferencing, and shared whiteboard applications
  315. (among others). It is important to note that the applications for IP
  316. Multicast are not solely limited to the Internet.  Multicast IP can also
  317. play an important role in large commercial internetworks.
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329. [This space was intentionally left blank.]
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342. Semeria & Maufer                                                [Page 6]
  343. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  344.  
  345.  
  346. 2.1 Reducing Network Load
  347.  
  348. Assume that a stock ticker application is required to transmit packets
  349. to 100 stations within an organization's network.  Unicast transmission
  350. to this set of stations will require the periodic transmission of 100
  351. packets where many packets may in fact be traversing the same link(s).
  352. Multicast transmission is the ideal solution for this type of
  353. application since it requires only a single packet stream to be
  354. transmitted by the source which is replicated at forks in the multicast
  355. delivery tree.
  356.  
  357. Broadcast transmission is not an effective solution for this type of
  358. application since it affects the CPU performance of each and every
  359. station that sees the packet.  Besides, it wastes bandwidth.
  360.  
  361. 2.2 Resource Discovery
  362.  
  363. Some applications implement multicast group addresses instead of
  364. broadcasts to transmit packets to group members residing on the same
  365. network. However, there is no reason to limit the extent of a multicast
  366. transmission to a single LAN.  The time-to-live (TTL) field in the IP
  367. header can be used to limit the range (or "scope") of a multicast
  368. transmission.
  369.  
  370. 2.3 Support for Datacasting Applications
  371.  
  372. Since 1992, the IETF has conducted a series of "audiocast" experiments
  373. in which live audio and video were multicast from the IETF meeting site
  374. to destinations around the world.  In this case, "datacasting" takes
  375. compressed audio and video signals from the source station and transmits
  376. them as a sequence of UDP packets to a group address.  Multicast
  377. delivery today is not limited to audio and video.  Stock quote systems
  378. are one example of a (connectionless) data-oriented multicast
  379. application.  Someday reliable multicast transport protocols may
  380. facilitate efficient inter-computer communication.  Reliable multicast
  381. transport protocols are currently an active area of research and
  382. development.
  383.  
  384.  
  385. 3. THE INTERNET'S MULTICAST BACKBONE (MBone)
  386.  
  387. The Internet Multicast Backbone (MBone) is an interconnected set of
  388. subnetworks and routers that support the delivery of IP multicast
  389. traffic.  The goal of the MBone is to construct a semipermanent IP
  390. multicast testbed to enable the deployment of multicast applications
  391. without waiting for the ubiquitous deployment of multicast-capable
  392. routers in the Internet.
  393.  
  394. The MBone has grown from 40 subnets in four different countries in 1992,
  395. to more than 2800 subnets in over 25 countries by April 1996.  With new
  396. multicast applications and multicast-based services appearing, it seems
  397.  
  398.  
  399. Semeria & Maufer                                                [Page 7]
  400. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  401.  
  402.  
  403. likely that the use of multicast technology in the Internet will keep
  404. growing at an ever-increasing rate.
  405.  
  406. The MBone is a virtual network that is layered on top of sections of the
  407. physical Internet.  It is composed of islands of multicast routing
  408. capability connected to other islands by virtual point-to-point links
  409. called "tunnels."  The tunnels allow multicast traffic to pass through
  410. the non-multicast-capable parts of the Internet.  Tunneled IP multicast
  411. packets are encapsulated as IP-over-IP (i.e., the protocol number is set
  412. to 4) so they look like normal unicast packets to intervening routers.
  413. The encapsulation is added on entry to a tunnel and stripped off on exit
  414. from a tunnel.  This set of multicast routers, their directly-connected
  415. subnetworks, and the interconnecting tunnels comprise the MBone.
  416.  
  417.  
  418. ========================================================================
  419.  
  420.  
  421.                       +++++++ 
  422.                    / |Island | \
  423.                  /T/ |   A   | \T\
  424.                 /U/  +++++++++   \U\
  425.               /N/        |         \N\
  426.             /N/          |           \N\
  427.           /E/            |             \E\
  428.         /L/              |               \L\
  429.  ++++++++            +++++++++           ++++++++ 
  430. | Island |           | Island| ---------| Island |
  431. |    B   |           |   C   |   Tunnel |   D    |
  432. ++++++++++           +++++++++ --------- ++++++++ 
  433.        \ \               |
  434.          \T\             |
  435.            \U\           |
  436.             \N\          |
  437.               \N\    +++++++++ 
  438.                 \E\  |Island | 
  439.                   \L\|   E   | 
  440.                     \+++++++++ 
  441.  
  442.  
  443. Figure 2: Internet Multicast Backbone (MBone)
  444.  
  445. ========================================================================
  446.  
  447.  
  448. Since the MBone and the Internet have different topologies, multicast
  449. routers execute a separate routing protocol to decide how to forward
  450. multicast packets.  The majority of the MBone routers currently use the
  451. Distance Vector Multicast Routing Protocol (DVMRP), although some
  452. portions of the MBone execute either Multicast OSPF (MOSPF) or the
  453. Protocol-Independent Multicast (PIM) routing protocols.  The operation
  454. of each of these protocols is discussed later in this paper.
  455.  
  456. Semeria & Maufer                                                [Page 8]
  457. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  458.  
  459.  
  460. As multicast routing software features become more widely available on
  461. the routers of the Internet, providers may gradually decide to use
  462. "native" multicast as an alternative to using lots of tunnels.
  463.  
  464. The MBone carries audio and video multicasts of Internet Engineering
  465. Task Force (IETF) meetings, NASA Space Shuttle Missions, US House and
  466. Senate sessions, and live satellite weather photos.  The session
  467. directory (SDR) tool provides users with a listing of the active
  468. multicast sessions on the MBone and allows them to create and/or join
  469. a session.
  470.  
  471.  
  472. 4. MULTICAST ADDRESSING
  473.  
  474. A multicast address is assigned to a set of receivers defining a
  475. multicast group.  Senders use the multicast address as the destination
  476. IP address of a packet that is to be transmitted to all group members.
  477.  
  478. 4.1 Class D Addresses
  479.  
  480. An IP multicast group is identified by a Class D address.  Class D
  481. addresses have their high-order four bits set to "1110" followed by 
  482. a 28-bit multicast group ID.  Expressed in standard "dotted-decimal"
  483. notation, multicast group addresses range from 224.0.0.0 to
  484. 239.255.255.255 (shorthand:  224.0.0.0/4).
  485.  
  486. Figure 3 shows the format of a 32-bit Class D address.
  487.  
  488. ========================================================================
  489.  
  490.  
  491.       0 1 2 3                                                      31
  492.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  493.      |1|1|1|0|                   Multicast Group ID                  |
  494.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  495.              |------------------------28 bits------------------------|
  496.  
  497.  
  498. Figure 3: Class D Multicast Address Format
  499. ========================================================================
  500.  
  501. The Internet Assigned Numbers Authority (IANA) maintains a list of
  502. registered IP multicast groups.  The base address 224.0.0.0 is reserved
  503. and cannot be assigned to any group.  The block of multicast addresses
  504. ranging from 224.0.0.1 to 224.0.0.255 is reserved for permanent
  505. assignment to various uses, including routing protocols and other
  506. protocols that require a well-known permanent address.  Multicast
  507. routers should not forward any multicast datagram with destination
  508. addresses in this range, (regardless of the packet's TTL).
  509.  
  510.  
  511.  
  512.  
  513. Semeria & Maufer                                                [Page 9]
  514. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  515.  
  516.  
  517. Some of the well-known groups include:
  518.  
  519.     "all systems on this subnet"       224.0.0.1
  520.     "all routers on this subnet"       224.0.0.2
  521.     "all DVMRP routers"                224.0.0.4
  522.     "all OSPF routers"                 224.0.0.5
  523.     "all OSPF designated routers"      224.0.0.6
  524.     "all RIP2 routers"                 224.0.0.9
  525.     "all PIM routers"                  224.0.0.13
  526.  
  527. The remaining groups ranging from 224.0.1.0 to 239.255.255.255 are
  528. assigned to various multicast applications or remain unassigned.  From
  529. this range, the addresses from 239.0.0.0 to 239.255.255.255 are being
  530. reserved for site-local "administratively scoped" applications, not
  531. Internet-wide applications.
  532.  
  533. The complete list may be found in the Assigned Numbers RFC (RFC 1700 or
  534. its successor) or at the IANA Web Site:
  535.  
  536. <URL:http://www.isi.edu/div7/iana/assignments.html>
  537.  
  538. 4.2 Mapping a Class D Address to an IEEE-802 MAC Address
  539.  
  540. The IANA has been allocated a reserved portion of the IEEE-802 MAC-layer
  541. multicast address space.  All of the addresses in IANA's reserved block
  542. begin with 01-00-5E (hex).  A simple procedure was developed to map
  543. Class D addresses to this reserved address block.  This allows IP
  544. multicasting to easily take advantage of the hardware-level multicasting
  545. supported by network interface cards.
  546.  
  547. For example, the mapping between a Class D IP address and an IEEE-802
  548. (e.g., Ethernet) multicast address is obtained by placing the low-order
  549. 23 bits of the Class D address into the low-order 23 bits of IANA's
  550. reserved address block.
  551.  
  552. Figure 4 illustrates how the multicast group address 224.10.8.5
  553. (E0-0A-08-05) is mapped into an IEEE-802 multicast address.
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570. Semeria & Maufer                                               [Page 10]
  571. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  572.  
  573.  
  574. ========================================================================
  575.  
  576.    Class D Address: 224.10.8.5 (E0-0A-08-05)
  577.  
  578.                                 |    E      0   |   0
  579.                   Class-D IP    |_______ _______|__ _ _ _
  580.                      Address    |-+-+-+-+-+-+-+-|-+ - - -
  581.                                 |1 1 1 0 0 0 0 0|0
  582.                                 |-+-+-+-+-+-+-+-|-+ - - -
  583.                                 ...................
  584. IEEE-802                           ....not.........
  585. MAC-Layer                            ..............
  586. Multicast                              ....mapped..
  587. Address                                 ...........
  588. |-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+ - - -
  589. |0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0|0 1 0 1 1 1 1 0|0
  590. |-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+ - - -
  591. |_______ _______|_______ _______|_______ _______|_______
  592. |   0       1   |   0       0   |   5       E   |   0
  593.  
  594.  
  595.  
  596.     [Address mapping below continued from half above]
  597.  
  598.          |   0       A   |   0       8   |   0      5    |
  599.          |_______ _______|_______ _______|_______ _______|    Class-D IP
  600.  - - - +-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|    Address
  601.          |  0 0 0 1 0 1 0|0 0 0 0 1 0 0 0|0 0 0 0 0 1 0 1|
  602.  - - - +-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|
  603.             \____________           ____________________/
  604.                          \___   ___/
  605.                              \ /
  606.                               |
  607.                    23 low-order bits mapped 
  608.                               |
  609.                               v
  610.  
  611.  - - - +-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|    IEEE-802
  612.          |  0 0 0 1 0 1 0|0 0 0 0 1 0 0 0|0 0 0 0 0 1 0 1|    MAC-Layer
  613.  - - - +-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|    Multicast
  614.          |_______ _______|_______ _______|_______ _______|    Address
  615.          |   0       A   |   0       8   |   0       5   |
  616.  
  617.  
  618. Figure 4: Mapping between Class D and IEEE-802 Multicast Addresses
  619. ========================================================================
  620.  
  621.  
  622. The mapping in Figure 4 places the low-order 23 bits of the IP multicast
  623. group ID into the low order 23 bits of the IEEE-802 multicast address. 
  624. Note that the mapping may place up to 32 different IP groups into the
  625.  
  626.  
  627. Semeria & Maufer                                               [Page 11]
  628. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  629.  
  630.  
  631. same IEEE-802 address because the upper 5 bits of the IP multicast
  632. group ID are not used. For example, the multicast addresses
  633. 224.138.8.5 (E0-8A-08-05) and 225.10.8.5 (E1-0A-08-05) would also be
  634. mapped to the same IEEE-802 multicast address (01-00-5E-0A-08-05) used
  635. in this example.
  636.  
  637. 4.3 Transmission and Delivery of Multicast Datagrams
  638.  
  639. When the sender and receivers are members of the same (LAN) subnetwork,
  640. the transmission and reception of multicast frames is a straightforward
  641. process.  The source station simply addresses the IP packet to the
  642. multicast group, the network interface card maps the Class D address to
  643. the corresponding IEEE-802 multicast address, and the frame is sent.
  644. Receivers that wish to capture the frame notify their MAC and IP layers
  645. that they want to receive datagrams addressed to the group.
  646.  
  647. Things become somewhat more complex when the sender is attached to one
  648. subnetwork and receivers reside on different subnetworks. In this case,
  649. the routers must implement a multicast routing protocol that permits the
  650. construction of multicast delivery trees and supports multicast packet
  651. forwarding.  In addition, each router needs to implement a group
  652. membership protocol that allows it to learn about the existence of group
  653. members on its directly attached subnetworks.
  654.  
  655.  
  656. 5. INTERNET GROUP MANAGEMENT PROTOCOL (IGMP)
  657.  
  658. The Internet Group Management Protocol (IGMP) runs between hosts and
  659. their immediately-neighboring multicast routers.  The mechanisms of the
  660. protocol allow a host to inform its local router that it wishes to
  661. receive transmissions addressed to a specific multicast group.  Also,
  662. routers periodically query the LAN to determine if known group members
  663. are still active.  If there is more than one router on the LAN
  664. performing IP multicasting, one of the routers is elected "querier" and
  665. assumes the responsibility of querying the LAN for group members.
  666.  
  667. Based on the group membership information learned from the IGMP, a
  668. router is able to determine which (if any) multicast traffic needs to be
  669. forwarded to each of its "leaf" subnetworks.  Multicast routers use this
  670. information, in conjunction with a multicast routing protocol, to
  671. support IP multicasting across the Internet.
  672.  
  673. 5.1 IGMP Version 1
  674.  
  675. IGMP Version 1 was specified in RFC-1112.  According to the
  676. specification, multicast routers periodically transmit Host Membership
  677. Query messages to determine which host groups have members on their
  678. directlyattached networks.  Query messages are addressed to the
  679. all-hosts group (224.0.0.1) and have an IP TTL = 1.  This means that
  680. Query messages sourced from a router are transmitted onto the
  681.  
  682.  
  683.  
  684. Semeria & Maufer                                               [Page 12]
  685. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  686.  
  687.  
  688. directly-attached subnetwork but are not forwarded by any other
  689. multicast routers.
  690.  
  691.  
  692. ========================================================================
  693.  
  694.  
  695.      Group 1                                   _____________________
  696.        ____            ____                   |  multicast          |
  697.       |    |          |    |                  |            router   |
  698.       |_H2_|          |_H4_|                  |_____________________|
  699.        ----            ----                      +-----+  |
  700.          |               |                 <-----|Query|  |
  701.          |               |                       +-----+  |
  702.          |               |                                |
  703. |---+----+-------+-------+--------+-----------------------+----|
  704.     |            |                |
  705.     |            |                |
  706.   ____         ____              ____
  707.  |    |       |    |            |    |
  708.  |_H1_|       |_H3_|            |_H5_|
  709.   ----         ----              ---- 
  710.  Group 2      Group 1           Group 1
  711.               Group 2
  712.  
  713.  
  714.  
  715. Figure 5: Internet Group Management Protocol-Query Message
  716. ========================================================================
  717.  
  718.  
  719. When a host receives an IGMP Query message, it responds with a Host
  720. Membership Report for each group to which it belongs, sent to each group
  721. to which it belongs.  (This is an important point: While IGMP Queries
  722. are sent to the "all hosts on this subnet" class D address (224.0.0.1),
  723. IGMP Reports are sent to the group(s) to which the host(s) belong.
  724. Reports have a TTL of 1, and thus are not forwarded beyond the local
  725. subnetwork.)
  726.  
  727. In order to avoid a flurry of Reports, each host starts a randomly-
  728. chosen Report delay timer for each of its group memberships.  If, during
  729. the delay period, another Report is heard for the same group, each other
  730. host in that group resets its timer to a new random value. This
  731. procedure spreads Reports out over a period of time and minimizes Report
  732. traffic for each group that has at least one member on a given
  733. subnetwork.
  734.  
  735. It should be noted that multicast routers do not need to be directly
  736. addressed since their interfaces are required to promiscuously receive
  737. all multicast IP traffic.  Also, a router does not need to maintain a
  738. detailed list of which hosts belong to each multicast group; the router
  739.  
  740.  
  741. Semeria & Maufer                                               [Page 13]
  742. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  743.  
  744.  
  745. only needs to know that at least one group member is present on a given
  746. network interface.
  747.  
  748. Multicast routers periodically transmit Queries to update their
  749. knowledge of the group members present on each network interface. If the
  750. router does not receive a Report from any members of a particular group
  751. after a number of Queries, the router assumes that group members are no
  752. longer present on an interface.  Assuming this is a leaf subnet, this
  753. interface is removed from the delivery tree for this (source, group)
  754. pair.  Multicasts will continue to be sent on this interface if the
  755. router can tell (via multicast routing protocols) that there are
  756. additional group members further downstream reachable via this
  757. interface.
  758.  
  759. When a host first joins a group, it immediately transmits an IGMP Report
  760. for the group rather than waiting for a router's IGMP Query.  This
  761. reduces the "join latency" for the first host to join a given group on
  762. a particular subnetwork.
  763.  
  764. 5.2 IGMP Version 2
  765.  
  766. IGMP Version 2 was distributed as part of the IP Multicasting (Version
  767. 3.3 through Version 3.8) code package.  Initially, there was no detailed
  768. specification for IGMP Version 2 other than this source code.  However,
  769. the complete specification has recently been published in <draft-ietf-
  770. idmr-igmp-v2-05.txt> which will update the informal specification
  771. contained in Appendix I of RFC-1112.  IGMP Version 2 enhances and 
  772. extends IGMP Version 1 while maintaining backward compatibility with 
  773. Version 1 hosts.
  774.  
  775. IGMP Version 2 defines a procedure for the election of the multicast
  776. querier for each LAN.  In IGMP Version 2, the router with the lowest IP
  777. address on the LAN is elected the multicast querier.  In IGMP Version 1,
  778. the querier election was determined by the multicast routing protocol.
  779. This could lead to potential problems because each multicast routing
  780. protocol might use unique methods for determining the multicast querier.
  781.  
  782. IGMP Version 2 defines a new type of Query message:  the Group-Specific
  783. Query.  Group-Specific Query messages allow a router to transmit a Query
  784. to a specific multicast group rather than all groups residing on a
  785. directly attached subnetwork.
  786.  
  787. Finally, IGMP Version 2 defines a Leave Group message to lower IGMP's
  788. "leave latency."  When the last host to respond to a Query with a Report
  789. wishes to leave that specific group, the host transmits a Leave Group
  790. message to the all-routers group (224.0.0.2) with the group field set to
  791. the group to be left.  In response to a Leave Group message, the router
  792. begins the transmission of Group-Specific Query messages on the inter-
  793. face that received the Leave Group message.  If there are no Reports in
  794. response to the Group-Specific Query messages, then if this is a leaf
  795.  
  796.  
  797.  
  798. Semeria & Maufer                                               [Page 14]
  799. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  800.  
  801.  
  802. subnet, this interface is removed from the delivery tree for this
  803. (source, group) pair (as was the case of IGMP version 1).  Again,
  804. multicasts will continue to be sent on this interface if the router can
  805. tell (via multicast routing protocols) that there are additional group
  806. members further downstream reachable via this interface.
  807.  
  808. 5.3 IGMP Version 3
  809.  
  810. IGMP Version 3 is a preliminary draft specification published in
  811. <draft-cain-igmp-00.txt>.  IGMP Version 3 introduces support for Group-
  812. Source Report messages so that a host can elect to receive traffic from
  813. specific sources of a multicast group.  An Inclusion Group-Source Report
  814. message allows a host to specify the IP addresses of the specific
  815. sources it wants to receive.  An Exclusion Group-Source Report message
  816. allows a host to explicitly identify the sources that it does not want
  817. to receive.  With IGMP Version 1 and Version 2, if a host wants to
  818. receive any traffic for a group, the traffic from all sources for the
  819. group must be forwarded onto the host's subnetwork.
  820.  
  821. IGMP Version 3 will help conserve bandwidth by allowing a host to select
  822. the specific sources from which it wants to receive traffic.  Also,
  823. multicast routing protocols will be able to make use this information to
  824. conserve bandwidth when constructing the branches of their multicast
  825. delivery trees.
  826.  
  827. Finally, support for Leave Group messages first introduced in IGMP
  828. Version 2 has been enhanced to support Group-Source Leave messages.
  829. This feature allows a host to leave an entire group or to specify the
  830. specific IP address(es) of the (source, group) pair(s) that it wishes to
  831. leave.
  832.  
  833.  
  834. 6. MULTICAST FORWARDING TECHNIQUES
  835.  
  836. IGMP provides the final step in a multicast packet delivery service
  837. since it is only concerned with the forwarding of multicast traffic from
  838. a router to group members on its directly-attached subnetworks.  IGMP is
  839. not concerned with the delivery of multicast packets between neighboring
  840. routers or across an internetwork.
  841.  
  842. To provide an internetwork delivery service, it is necessary to define
  843. multicast routing protocols.  A multicast routing protocol is
  844. responsible for the construction of multicast delivery trees and
  845. enabling multicast packet forwarding.  This section explores a number of
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855. Semeria & Maufer                                               [Page 15]
  856. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  857.  
  858.  
  859. different techniques that may potentially be employed by multicast
  860. routing protocols:
  861.  
  862.     o "Simpleminded" Techniques
  863.        - Flooding
  864.        - Spanning Trees
  865.  
  866.     o  Source-Based Tree (SBT) Techniques
  867.        - Reverse Path Broadcasting (RPB)
  868.        - Truncated Reverse Path Broadcasting (TRPB)
  869.        - Reverse Path Multicasting (RPM)
  870.  
  871.     o "Shared-Tree" Techniques
  872.  
  873. Later sections will describe how these algorithms are implemented in the
  874. most prevalent multicast routing protocols in the Internet today  (e.g.,
  875. Distance Vector Multicast Routing Protocol (DVMRP), Multicast extensions
  876. to OSPF (MOSPF), Protocol-Independent Multicast (PIM), and Core-Based
  877. Trees (CBT).
  878.  
  879. 6.1 "Simpleminded" Techniques
  880.  
  881. Flooding and Spanning Trees are two algorithms that can be used to build
  882. primitive multicast routing protocols.  The techniques are primitive due
  883. to the fact that they tend to waste bandwidth or require a large amount
  884. of computational resources within the multicast routers involved.  Also,
  885. protocols built on these techniques may work for small networks with few
  886. senders, groups, and routers, but do not scale well to larger numbers of
  887. senders, groups, or routers.  Also, the ability to handle arbitrary
  888. topologies may not be present or may only be present in limited ways.
  889.  
  890. 6.1.1 Flooding
  891.  
  892. The simplest technique for delivering multicast datagrams to all routers
  893. in an internetwork is to implement a flooding algorithm. The flooding
  894. procedure begins when a router receives a packet that is addressed to a
  895. multicast group.  The router employs a protocol mechanism to determine
  896. whether or not it has seen this particular packet before.  If it is the
  897. first reception of the packet, the packet is forwarded on all
  898. interfaces--except the one on which it arrived--guaranteeing that the
  899. multicast packet reaches all routers in the internetwork.  If the router
  900. has seen the packet before, then the packet is discarded.
  901.  
  902. A flooding algorithm is very simple to implement since a router does not
  903. have to maintain a routing table and only needs to keep track of the
  904. most recently seen packets.  However, flooding does not scale for
  905. Internet-wide applications since it generates a large number of
  906. duplicate packets and uses all available paths across the internetwork
  907. instead of just a limited number.  Also, the flooding algorithm makes
  908. inefficient use of router memory resources since each router is required
  909. to maintain a distinct table entry for each recently seen packet.
  910.  
  911.  
  912. Semeria & Maufer                                               [Page 16]
  913. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  914.  
  915.  
  916. 6.1.2 Spanning Tree
  917.  
  918. A more effective solution than flooding would be to select a subset of
  919. the internetwork topology which forms a spanning tree.  The spanning
  920. tree defines a structure in which only one active path connects any two
  921. routers of the internetwork.  Figure 6 shows an internetwork and a
  922. spanning tree rooted at router RR.
  923.  
  924. Once the spanning tree has been built, a multicast router simply
  925. forwards each multicast packet to all interfaces that are part of the
  926. spanning tree except the one on which the packet originally arrived.
  927. Forwarding along the branches of a spanning tree guarantees that the
  928. multicast packet will not loop and that it will eventually reach all
  929. routers in the internetwork.
  930.  
  931. A spanning tree solution is powerful and would be relatively easy to
  932. implement since there is a great deal of experience with spanning tree
  933. protocols in the Internet community.  However, a spanning tree solution
  934. can centralize traffic on a small number of links, and may not provide
  935. the most efficient path between the source subnetwork and group members.
  936. Also, it is computationally difficult to compute a spanning tree in
  937. large, complex topologies.
  938.  
  939.  
  940. 6.2 Source-Based Tree Techniques
  941.  
  942. The following techniques all generate a source-based tree by various
  943. means.  The techniques differ in the efficiency of the tree building
  944. process, and the bandwidth and router resources (i.e., state tables)
  945. used to build a source-based tree.
  946.  
  947. 6.2.1 Reverse Path Broadcasting (RPB)
  948.  
  949. A more efficient solution than building a single spanning tree for the
  950. entire internetwork would be to build a group-specific spanning tree for
  951. each potential source [subnetwork].  These spanning trees would result
  952. in source-based delivery trees emanating from the subnetwork directly
  953. connected to the source station.  Since there are many potential sources
  954. for a group, a different delivery tree is constructed emanating from
  955. each active source.
  956.  
  957. 6.2.1.1 Reverse Path Broadcasting: Operation
  958.  
  959. The fundamental algorithm to construct these source-based trees is
  960. referred to as Reverse Path Broadcasting (RPB).  The RPB algorithm is
  961. actually quite simple.  For each (source, group) pair, if a packet
  962. arrives on a link that the local router believes to be on the shortest
  963. path back toward the packet's source, then the router forwards the
  964. packet on all interfaces except the incoming interface.  If the packet
  965. does not arrive on the interface that is on the shortest path back
  966.  
  967.  
  968.  
  969. Semeria & Maufer                                               [Page 17]
  970. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  971.  
  972.  
  973. ========================================================================
  974.  
  975. A Sample Internetwork
  976.  
  977.                      #----------------#
  978.                    / |\              / \
  979.                   |  | \           /    \
  980.                   |  |   \       /       \
  981.                   |  |    \    /          \
  982.                   |  |      \ /            \
  983.                   |  |       #------#       \
  984.                   |  |      /       | \      \
  985.                   |  |     /        |  \      \
  986.                   |   \   /         |   \-------#
  987.                   |    \ /          |     -----/|
  988.                   |     #-----------#----/      | 
  989.                   |    /|\---    --/|    \      |
  990.                   |   / |    \  /    \    \     |
  991.                   |  /   \    /\     |     \   /
  992.                   | /      \ /   \   |      \ /
  993.                   #---------#--   \  |   ----#
  994.                                \   \ |  / 
  995.                                 \--- #-/
  996.  
  997. A Spanning Tree for this Sample Internetwork
  998.  
  999.                      #                #
  1000.                       \              /
  1001.                        \           / 
  1002.                          \       /
  1003.                           \    / 
  1004.                             \ / 
  1005.                              #------RR
  1006.                                     | \ 
  1007.                                     |  \ 
  1008.                                     |   \-------#
  1009.                                     |
  1010.                         #-----------#----
  1011.                        /|           |    \ 
  1012.                       / |            \    \
  1013.                      /   \           |     \ 
  1014.                     /      \         |      \
  1015.                    #        #        |       # 
  1016.                                      |
  1017.                                      #
  1018. LEGEND
  1019.  
  1020. #   Router
  1021. RR  Root Router
  1022.  
  1023. Figure 6: Spanning Tree
  1024. ========================================================================
  1025.  
  1026. Semeria & Maufer                                               [Page 18]
  1027. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1028.  
  1029.  
  1030. toward the source, then the packet is discarded.  The interface over
  1031. which the router expects to receive multicast packets from a particular
  1032. source is referred to as the "parent" link.  The outbound links over
  1033. which the router forwards the multicast packet are called "child" links
  1034. for this group.
  1035.  
  1036. This basic algorithm can be enhanced to reduce unnecessary packet
  1037. duplication.  If the local router making the forwarding decision can
  1038. determine whether a neighboring router on a child link is "downstream,"
  1039. then the packet is multicast toward the neighbor. (A "downstream"
  1040. neighbor is a neighboring router which considers the local router to be
  1041. on the shortest path back toward a given source.) Otherwise, the packet
  1042. is not forwarded on the potential child link since the local router
  1043. knows that the neighboring router will just discard the packet (since it
  1044. will arrive on a non-parent link for the (source, group) pair, relative
  1045. to that downstream router).
  1046.  
  1047.  
  1048. ========================================================================
  1049.  
  1050.  
  1051.                  Source
  1052.                     .   ^
  1053.                     .   |    shortest path back to the
  1054.                     .   |     source for THIS router
  1055.                     .   |
  1056.                "parent link"
  1057.                     _
  1058.             ______|!2|_____
  1059.            |               |
  1060. --"child -|!1|           |!3| - "child --
  1061.     link"  |    ROUTER     |      link" 
  1062.            |_______________|
  1063.  
  1064.  
  1065. Figure 7: Reverse Path Broadcasting - Forwarding Algorithm
  1066. ========================================================================
  1067.  
  1068.  
  1069. The information to make this "downstream" decision is relatively easy to
  1070. derive from a link-state routing protocol since each router maintains a
  1071. topological database for the entire routing domain.  If a distance-
  1072. vector routing protocol is employed, a neighbor can either advertise its
  1073. previous hop for the (source, group) pair as part of its routing update
  1074. messages or "poison reverse" the route toward a source if it is not on
  1075. the distribution tree for that source.  Either of these techniques
  1076. allows an upstream router to determine if a downstream neighboring
  1077. router is on an active branch of the delivery tree for a certain source
  1078. sending to a certain group.
  1079.  
  1080.  
  1081.  
  1082.  
  1083. Semeria & Maufer                                               [Page 19]
  1084. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1085.  
  1086.  
  1087. Please refer to Figure 8 for a discussion describing the basic operation
  1088. of the enhanced RPB algorithm.
  1089.  
  1090.  
  1091. ======================================================================
  1092.  
  1093.  Source Station------>O
  1094.                     A #
  1095.                      +|+
  1096.                     + | +
  1097.                    +  O  +
  1098.                   +       +
  1099.                  1         2
  1100.                 +           +
  1101.                +             +
  1102.               +               +
  1103.           B  +                 +  C
  1104.           O-#- - - - -3- - - - -#-O
  1105.            +|+                 -|+
  1106.           + | +               - | +
  1107.          +  O  +             -  O  +
  1108.         +       +           -       +
  1109.        +         +         -         +
  1110.       4           5       6           7
  1111.      +             +     -             +
  1112.     +               + E -               +
  1113.    +                 + -                 +
  1114. D #- - - - -8- - - - -#- - - - -9- - - - -# F
  1115.   |                   |                   |
  1116.   O                   O                   O
  1117.  
  1118.  
  1119. LEGEND
  1120.  
  1121. O   Leaf
  1122. + + Shortest-path
  1123. - - Branch
  1124. #   Router
  1125.  
  1126.  
  1127. Figure 8: Reverse Path Broadcasting - Example
  1128. =======================================================================
  1129.  
  1130.  
  1131. Note that the source station (S) is attached to a leaf subnetwork
  1132. directly connected to Router A.  For this example, we will look at the
  1133. RPB algorithm from Router B's perspective. Router B receives the
  1134. multicast packet from Router A on link 1.  Since Router B considers link
  1135. 1 to be the parent link for the (source, group) pair, it forwards the
  1136. packet on link 4, link 5, and the local leaf subnetworks if they contain
  1137. group members.  Router B does not forward the packet on link 3 because
  1138.  
  1139.  
  1140. Semeria & Maufer                                               [Page 20]
  1141. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1142.  
  1143.  
  1144. it knows from routing protocol exchanges that Router C considers link 2
  1145. as its parent link for the (source, group) pair.  Router B knows that if
  1146. it were to forward the packet on link 3, it would be discarded by Router
  1147. C since the packet would not be arriving on Router C's parent link for
  1148. this (source, group) pair.
  1149.  
  1150. 6.2.1.2 RPB: Benefits and Limitations
  1151.  
  1152. The key benefit to reverse path broadcasting is that it is reasonably
  1153. efficient and easy to implement.  It does not require that the router
  1154. know about the entire spanning tree, nor does it require a special
  1155. mechanism to stop the forwarding process (as flooding does).  In
  1156. addition, it guarantees efficient delivery since multicast packets
  1157. always follow the "shortest" path from the source station to the
  1158. destination group.  Finally, the packets are distributed over multiple
  1159. links, resulting in better network utilization since a different tree is
  1160. computed for each (source, group) pair.
  1161.  
  1162. One of the major limitations of the RPB algorithm is that it does not
  1163. take into account multicast group membership when building the delivery
  1164. tree for a (source, group) pair.  As a result, datagrams may be
  1165. unnecessarily forwarded to subnetworks that have no members in the
  1166. destination group.
  1167.  
  1168. 6.2.2 Truncated Reverse Path Broadcasting (TRPB)
  1169.  
  1170. Truncated Reverse Path Broadcasting (TRPB) was developed to overcome the
  1171. limitations of Reverse Path Broadcasting.  With the help of IGMP,
  1172. multicast routers determine the group memberships on each leaf
  1173. subnetwork and avoid forwarding datagrams onto a leaf subnetwork if it
  1174. does not contain at least one member of the destination group.  Thus,
  1175. the delivery tree is "truncated" by the router if a leaf subnetwork has
  1176. no group members.
  1177.  
  1178. Figure 9 illustrates the operation of TRPB algorithm.  In this example
  1179. the router receives a multicast packet on its parent link for the
  1180. (Source, G1) pair.  The router forwards the datagram on interface 1
  1181. since that interface has at least one member of G1. The router does not
  1182. forward the datagram to interface 3 since this interface has no members
  1183. in the destination group.  The datagram is forwarded on interface 4 if
  1184. and only if a downstream router considers this subnetwork to be part of
  1185. its "parent link" for the (Source, G1) pair.
  1186.  
  1187. TRPB removes some limitations of RPB but it solves only part of the
  1188. problem.  It eliminates unnecessary traffic on leaf subnetworks but it
  1189. does not consider group memberships when building the branches of the
  1190. delivery tree.
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197. Semeria & Maufer                                               [Page 21]
  1198. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1199.  
  1200.  
  1201. ======================================================================
  1202.  
  1203.                       Source
  1204.                           .   |
  1205.                           .   |
  1206.                           .   |     (Source, G1)
  1207.                           .   v
  1208.                           |
  1209.                      "parent link"
  1210.                           |
  1211.         "child link"     ___
  1212.     G1            _______|2|_____
  1213.      \           |               |
  1214.    G3\\ _____   ___    ROUTER   ___      ______ / G2
  1215.       \| hub |--|1|             |3|-----|switch|/
  1216.       /|_____|  ^--     ___     -- ^    |______|\
  1217.       /        ^ |______|4|_____|   ^          \ 
  1218.     G1       ^         ^---            ^         G3
  1219.             ^        ^   |              ^ 
  1220.         Forward->->-^ "child link"  Truncate
  1221.                          |
  1222.  
  1223. Figure 9: Truncated Reverse Path Broadcasting - (TRPB)
  1224. ======================================================================
  1225.  
  1226.  
  1227.  
  1228. 6.2.3 Reverse Path Multicasting (RPM)
  1229.  
  1230. Reverse Path Multicasting (RPM) is an enhancement to Reverse Path
  1231. Broadcasting and Truncated Reverse Path Broadcasting.
  1232.  
  1233. RPM creates a delivery tree that spans only:
  1234.  
  1235.     o  Subnetworks with group members, and 
  1236.  
  1237.     o  Routers and subnetworks along the shortest 
  1238.        path to subnetworks with group members.
  1239.  
  1240. RPM allows the source-based "shortest-path" tree to be pruned so that
  1241. datagrams are only forwarded along branches that lead to active members
  1242. of the destination group.
  1243.  
  1244. 6.2.3.1 Operation
  1245.  
  1246. When a multicast router receives a packet for a (source, group) pair,
  1247. the first packet is forwarded following the TRPB algorithm across all
  1248. routers in the internetwork.  Routers on the edge of the network (which
  1249. have only leaf subnetworks) are called leaf routers.  The TRPB algorithm
  1250. guarantees that each leaf router will receive at least the first
  1251. multicast packet.  If there is a group member on one of its leaf
  1252.  
  1253.  
  1254. Semeria & Maufer                                               [Page 22]
  1255. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1256.  
  1257.  
  1258. subnetworks, a leaf router forwards the packet based on this IGMP Report
  1259. (or a statically-defined local group on an interface).
  1260.  
  1261.  
  1262. ========================================================================
  1263.  
  1264.                    Source
  1265.                       . |
  1266.                       . | (Source, G)
  1267.                       . |
  1268.                       | v
  1269.                       | 
  1270.                     o-#-G
  1271.                       |**********
  1272.                     ^ |         *
  1273.                     , |         *
  1274.                     ^ |         *  o
  1275.                     , |         * /
  1276.                     o-#-o       #***********
  1277.                     ^ |\      ^ |\         *
  1278.                     ^ | o     ^ | G        *
  1279.                     , |       , |          *
  1280.                     ^ |       ^ |          *
  1281.                     , |       , |          *
  1282.                       #         #          # 
  1283.                      /|\       /|\        /|\ 
  1284.                     o o o     o o o      G o G
  1285. LEGEND
  1286.  
  1287.  #    Router
  1288.  o    Leaf without group member
  1289.  G    Leaf with group member
  1290. ***   Active Branch
  1291. ---   Pruned Branch
  1292. ,>,   Prune Message (direction of flow -->
  1293.  
  1294. Figure 10: Reverse Path Multicasting  (RPM)
  1295. ========================================================================
  1296.  
  1297.  
  1298. If none of the subnetworks connected to the leaf router contain group
  1299. members, the leaf router may transmit a "prune" message on its parent
  1300. link, informing the upstream router that it should not forward packets
  1301. for this particular (source, group) pair on the child interface on which
  1302. it received the prune message.  Prune messages are sent just one hop
  1303. back toward the source.
  1304.  
  1305. An upstream router receiving a prune message is required to store the
  1306. prune information in memory.  If the upstream router has no recipients
  1307. on local leaf subnetworks and has received prune messages on each of the
  1308. child interfaces for this (source, group) pair, then the upstream router
  1309.  
  1310.  
  1311. Semeria & Maufer                                               [Page 23]
  1312. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1313.  
  1314.  
  1315. does not need to receive additional packets for the (source, group)
  1316. pair.  This implies that the upstream router can also generate a prune
  1317. message of its own, one hop further back toward the source.  This
  1318. cascade of prune messages results in an active multicast delivery tree,
  1319. consisting exclusively of "live" branches (i.e., branches that lead to
  1320. active receivers).
  1321.  
  1322. Since both the group membership and internetwork topology can change
  1323. dynamically , the pruned state of the multicast delivery tree must be
  1324. refreshed periodically.  At regular intervals, the prune information
  1325. expires from the memory of all routers and the next packet for the
  1326. (source, group) pair is forwarded toward all downstream routers.  This
  1327. results in a new burst of prune messages allowing the multicast
  1328. forwarding tree to adapt to the ever-changing multicast delivery
  1329. requirements of the internetwork.
  1330.  
  1331. 6.2.3.2 Limitations
  1332.  
  1333. Despite the improvements offered by the RPM algorithm, there are still
  1334. several scaling issues that need to be addressed when attempting to
  1335. develop an Internet-wide delivery service.  The first limitation is that
  1336. multicast packets must be periodically flooded across every router in
  1337. the internetwork, onto every leaf subnetwork.  This flooding is wasteful
  1338. of bandwidth (until the updated prune state is constructed).
  1339.  
  1340. This "flood and prune" paradigm is very powerful, but it wastes
  1341. bandwidth and does not scale well, especially if there are receivers at
  1342. the edge of the delivery tree which are connected via low-speed
  1343. technologies (e.g., ISDN or modem).  Also, note that every router
  1344. participating in the RPM algorithm must either have a forwarding table
  1345. entry for a (source, group) pair, or have prune state information for
  1346. that (source, group) pair.
  1347.  
  1348. It is clearly wasteful (especially as the number of active sources and
  1349. groups increase) to place such a burden on routers that are not on every
  1350. (or perhaps any) active delivery tree.  Shared tree techniques are an
  1351. attempt to address these scaling issues, which become quite acute when
  1352. most groups' senders and receivers are sparsely distributed across the
  1353. internetwork.
  1354.  
  1355. 6.3 Shared Tree Techniques
  1356.  
  1357. The most recent additions to the set of multicast forwarding techniques
  1358. are based on a shared delivery tree.  Unlike shortest-path tree
  1359. algorithms which build a source-based tree for each (source, group)
  1360. pair, shared tree algorithms construct a single delivery tree that is
  1361. shared by all members of a group.  The shared tree approach is quite
  1362. similar to the spanning tree algorithm except it allows the definition
  1363. of a different shared tree for each group.  Stations that wish to
  1364. receive traffic for a multicast group are required to explicitly join
  1365.  
  1366.  
  1367.  
  1368. Semeria & Maufer                                               [Page 24]
  1369. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1370.  
  1371.  
  1372. the shared delivery tree.  Multicast traffic for each group is sent and
  1373. received over the same delivery tree, regardless of the source.
  1374.  
  1375. 6.3.1 Operation
  1376.  
  1377. A shared tree may involve a single router, or set of routers, which
  1378. comprise the "core" of a multicast delivery tree.  Figure 11 illustrates
  1379. how a single multicast delivery tree is shared by all sources and
  1380. receivers for a multicast group.
  1381.  
  1382.  
  1383. ========================================================================
  1384.  
  1385.  
  1386.                Source        Source        Source
  1387.                   |             |             |
  1388.                   |             |             |
  1389.                   v             v             v
  1390.  
  1391.                  [#] * * * * * [#] * * * * * [#]
  1392.                                 *
  1393.                   ^             *             ^
  1394.                   |             *             |
  1395.              join |             *             | join
  1396.                   |            [#]            |
  1397.                  [x]                         [x]
  1398.                   :                           :
  1399.                 member                      member
  1400.                  host                        host
  1401.  
  1402.  
  1403. LEGEND
  1404.  
  1405. [#]  Shared Tree Core Routers
  1406. * *  Shared Tree Backbone
  1407. [x]  Member-hosts' directly-attached routers
  1408.  
  1409. Figure 11: Shared Multicast Delivery Tree
  1410.  
  1411. ========================================================================
  1412.  
  1413.  
  1414. The directly attached router for each station wishing to belong to a
  1415. particular multicast group is required to send a "join" message toward
  1416. the shared tree of the particular multicast group.  The directly
  1417. attached router only needs to know the address of one of the group's
  1418. core routers in order to transmit a join request (via unicast).  The
  1419. join request is processed by all intermediate routers, each of which
  1420. identifies the interface on which the join was received as belonging to
  1421. the group's delivery tree.  The intermediate routers continue to forward
  1422. the join message toward the core, marking local downstream interfaces
  1423.  
  1424.  
  1425. Semeria & Maufer                                               [Page 25]
  1426. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1427.  
  1428.  
  1429. until the request reaches a core router (or a router that is already on
  1430. the active delivery tree).  This procedure allows each member-host's
  1431. directly-attached router to define a branch providing the shortest path
  1432. between itself and a core router which is part of the group's shared
  1433. delivery tree.
  1434.  
  1435. Similar to other multicast forwarding algorithms, shared tree algorithms
  1436. do not require that the source of a multicast packet be a member of a
  1437. destination group.  Packets sourced by a non-group member are simply
  1438. unicast toward the core until they reach the first router that is a
  1439. member of the group's delivery tree.  When the unicast packet reaches a
  1440. member of the delivery tree, the packet is multicast to all outgoing
  1441. interfaces that are part of the tree except the incoming link.  This
  1442. guarantees that traffic follows the shortest path from source station to
  1443. the shared tree. It also ensures that multicast packets are forwarded to
  1444. all routers on the core tree which in turn forward the traffic to all
  1445. receivers that have joined the shared tree.
  1446.  
  1447. 6.3.2 Benefits
  1448.  
  1449. In terms of scalability, shared tree techniques have several advantages
  1450. over source-based trees.  Shared tree algorithms make efficient use of
  1451. router resources since they only require a router to maintain state
  1452. information for each group, not for each (source, group) pair. (Remember
  1453. that source-based tree techniques required all routers in an
  1454. internetwork to either be a) on the delivery tree for a given (source,
  1455. group) pair, or b) have prune state for that (source, group) pair:  So
  1456. the entire internetwork must participate in the source-based tree
  1457. protocol.)  This improves the scalability of applications with many
  1458. active senders since the number of source stations is no longer a
  1459. scaling issue.  Also, shared tree algorithms conserve network bandwidth
  1460. since they do not require that multicast packets be periodically flooded
  1461. across all multicast routers in the internetwork onto every leaf
  1462. subnetwork.  This can offer significant bandwidth savings, especially
  1463. across low-bandwidth WAN links, and when receivers sparsely populate the
  1464. domain of operation.  Finally, since receivers are required to
  1465. explicitly join the shared delivery tree, data only ever flows over
  1466. those links that lead to active receivers.
  1467.  
  1468. 6.3.3 Limitations
  1469.  
  1470. Despite these benefits, there are still several limitations to protocols
  1471. that are based on a shared tree algorithm.  Shared trees may result in
  1472. traffic concentration and bottlenecks near core routers since traffic
  1473. from all sources traverses the same set of links as it approaches the
  1474. core.  In addition, a single shared delivery tree may create suboptimal
  1475. routes (a shortest path between the source and the shared tree, a
  1476. suboptimal path across the shared tree, a shortest path between the
  1477. egress core router and the receiver's directly attached router)
  1478. resulting in increased delay which may be a critical issue for some
  1479. multimedia applications.  (Simulations indicate that latency over a
  1480.  
  1481.  
  1482. Semeria & Maufer                                               [Page 26]
  1483. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1484.  
  1485.  
  1486. shared tree may be approximately 10% larger than source-based trees in
  1487. many cases, but by the same token, this may be negligible for many
  1488. applications.)  Finally, new algorithms need to be developed to support
  1489. all aspects of core management which include core router selection and
  1490. (potentially) dynamic placement strategies.
  1491.  
  1492.  
  1493. 7. SOURCE-BASED TREE ("DENSE MODE") ROUTING PROTOCOLS
  1494.  
  1495. An established set of multicast routing protocols define a source-based
  1496. delivery tree which provides the shortest path between the source and
  1497. each receiver.
  1498.  
  1499. These routing protocols include:
  1500.  
  1501. o  Distance Vector Multicast Routing Protocol (DVMRP), 
  1502.  
  1503. o  Multicast Extensions to Open Shortest Path First (MOSPF), 
  1504.  
  1505. o  Protocol Independent Multicast - Dense Mode (PIM-DM).
  1506.  
  1507. Each of these routing protocols is designed to operate in an environment
  1508. where group members are relatively densely populated and internetwork
  1509. bandwidth is plentiful.  Their underlying designs assume that the amount
  1510. of protocol overhead (in terms of the amount of state that must be
  1511. maintained by each router, the number of router CPU cycles required, and
  1512. the amount of bandwidth consumed by protocol operation) is appropriate
  1513. since receivers densely populate the area of operation.
  1514.  
  1515. 7.1. Distance Vector Multicast Routing Protocol (DVMRP)
  1516.  
  1517. The Distance Vector Multicast Routing Protocol (DVMRP) is a
  1518. distance-vector routing protocol designed to support the forwarding of
  1519. multicast datagrams through an internetwork.  DVMRP constructs
  1520. source-based multicast delivery trees using variants of the Reverse Path
  1521. Broadcasting (RPB) algorithm.  Originally, the entire MBone ran DVMRP. 
  1522. Today, over half of the MBone routers still run some version of DVMRP.
  1523.  
  1524. DVMRP was first defined in RFC-1075.  The original specification was
  1525. derived from the Routing Information Protocol (RIP) and employed the
  1526. Truncated Reverse Path Broadcasting (TRPB) technique. The major
  1527. difference between RIP and DVMRP is that RIP was concerned with
  1528. calculating the next-hop to a destination, while DVMRP is concerned with
  1529. computing the previous-hop back to a source.  It is important to note
  1530. that the latest mrouted version 3.8 and vendor implementations have
  1531. extended DVMRP to employ the Reverse Path Multicasting (RPM) algorithm. 
  1532. This means that the latest implementations of DVMRP are quite different
  1533. from the original RFC specification in many regards.  There is an active
  1534. effort within the IETF Inter-Domain Multicast Routing (IDMR) working
  1535. group to specify DVMRP version 3 in a standard form (as opposed to the
  1536. current spec, which is written in C).
  1537.  
  1538.  
  1539. Semeria & Maufer                                               [Page 27]
  1540. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1541.  
  1542.  
  1543. The current DVMRP v3 Internet-Draft is:
  1544.  
  1545.     <draft-ietf-idmr-dvmrp-v3-03.txt>, or 
  1546.     <draft-ietf-idmr-dvmrp-v3-03.ps>
  1547.  
  1548. 7.1.1 Physical and Tunnel Interfaces
  1549.  
  1550. The ports of a DVMRP router may be either a physical interface to a
  1551. directly-attached subnetwork or a tunnel interface to another multicast
  1552. island.  All interfaces are configured with a metric that specifies the
  1553. cost for the given port and a TTL threshold that limits the scope of a
  1554. multicast transmission.  In addition, each tunnel interface must be
  1555. explicitly configured with two additional parameters:  the IP address of
  1556. the local router's interface and the IP address of the remote router's
  1557. interface.
  1558.  
  1559.  
  1560. ========================================================================
  1561.  
  1562.    TTL                                Scope
  1563. Threshold
  1564. ________________________________________________________________________
  1565.     0                                Restricted to the same host
  1566.     1                                Restricted to the same subnetwork 
  1567.    15                                Restricted to the same site 
  1568.    63                                Restricted to the same region 
  1569.   127                                Worldwide 
  1570.   191                                Worldwide; limited bandwidth
  1571.   255                                Unrestricted in scope 
  1572.  
  1573.  
  1574. Table 1:   TTL Scope Control Values
  1575. ========================================================================
  1576.  
  1577.  
  1578. A multicast router will only forward a multicast datagram across an
  1579. interface if the TTL field in the IP header is greater than the TTL
  1580. threshold assigned to the interface.  Table 1 lists the conven- tional
  1581. TTL values that are used to restrict the scope of an IP multicast.  For
  1582. example, a multicast datagram with a TTL of less than 16 is restricted
  1583. to the same site and should not be forwarded across an interface to
  1584. other sites in the same region.
  1585.  
  1586. TTL-based scoping is not always useful, so the IETF MBoneD working group
  1587. is considering the definition and usage of a range of multi- cast
  1588. addresses for "administrative" scoping.  In other words, such addresses
  1589. would be usable within a certain administrative scope, a corporate
  1590. network, for instance, but would not be forwarded across the global
  1591. MBone.  At the moment, the range from 239.0.0.0 through 239.255.255.255
  1592. is being reserved for administratively scoped applications, but the
  1593. structure and usage of this block has yet to be completely formalized.
  1594.  
  1595.  
  1596. Semeria & Maufer                                               [Page 28]
  1597. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1598.  
  1599.  
  1600. 7.1.2 Basic Operation
  1601.  
  1602. DVMRP implements the Reverse Path Multicasting (RPM) algorithm.
  1603. According to RPM, the first datagram for any (source, group) pair is
  1604. forwarded across the entire internetwork (providing the packet's TTL and
  1605. router interface thresholds permit this).  The initial datagram is
  1606. delivered to all leaf routers which transmit prune messages back toward
  1607. the source if there are no group members on their directly attached leaf
  1608. subnetworks.  The prune messages result in the removal of branches from
  1609. the tree that do not lead to group members, thus creating a source-based
  1610. shortest path tree with all leaves having group members. After a period
  1611. of time, the pruned branches grow back and the next datagram for the
  1612. (source, group) pair is forwarded across the entire internetwork
  1613. resulting in a new set of prune messages.
  1614.  
  1615. DVMRP also implements a mechanism to quickly "graft" back a previously
  1616. pruned branch of a group's delivery tree.  If a router that previously
  1617. sent a prune message for a (source, group) pair discovers new group
  1618. members on a leaf network, it sends a graft message to the group's
  1619. previous-hop router.  When an upstream router receives a graft message,
  1620. it cancels out the previously-received prune message.  Graft messages
  1621. will cascade back toward the source (until reaching the nearest "live"
  1622. branch point on the delivery tree), thus allowing previously pruned
  1623. branches to be quickly restored as part of the active delivery tree.
  1624.  
  1625. 7.1.3 DVMRP Router Functions
  1626.  
  1627. When there is more than one DVMRP router on a subnetwork, the Dominant
  1628. Router is responsible for the periodic transmission of IGMP Host
  1629. Membership Query messages.  Upon initialization, a DVMRP router
  1630. considers itself to be the Dominant Router for the subnetwork until it
  1631. receives a Host Membership Query message from a neighbor router with a
  1632. lower IP address.  Figure 12 illustrates how the router with the lowest
  1633. IP address functions as the Dominant Router for the subnetwork.
  1634.  
  1635. In order to avoid duplicate multicast datagrams when there is more than
  1636. one DVMRP router on a subnetwork, one router is elected the Dominant
  1637. Router for the particular source subnetwork (see fig. 12).  In  Figure
  1638. 13, Router C is downstream and may potentially receive datagrams from
  1639. the source subnetwork from Router A or Router B.  If Router A's metric
  1640. to the source subnetwork is less than Router B's metric, then Router A
  1641. is dominant over Router B for this source.
  1642.  
  1643. This means that Router A will forward traffic from the source sub-
  1644. network and Router B will discard traffic from that source subnet- work.
  1645.  However, if Router A's metric is equal to Router B's metric, then
  1646. router with the lower IP address on its downstream interface (child
  1647. link) becomes the Dominant Router for this source.  Note that on a
  1648. subnetwork with multiple routers forwarding to groups with multiple
  1649. sources, different routers may be dominant for each source.
  1650.  
  1651.  
  1652.  
  1653. Semeria & Maufer                                               [Page 29]
  1654. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1655.  
  1656.  
  1657. ========================================================================
  1658.  
  1659.  
  1660.         _____________                               _____________
  1661.        | Router A    |                             | Router B    |
  1662.        |             |                             |      DR     |
  1663.         -------------                               -------------
  1664.    128.2.3.4  |                                  <-Query  |  128.2.1.1
  1665.               |                                           |
  1666.  ---------------------------------------------------------------------
  1667.                                        | 
  1668.                           128.2.3.1    | 
  1669.                                  _____________
  1670.                                 | Router C    |
  1671.                                 |             |
  1672.                                  ------------- 
  1673.  
  1674.  
  1675. Figure 12. DVMRP Dominant Router Election
  1676. ========================================================================
  1677.  
  1678. ========================================================================
  1679.  
  1680.  
  1681.                                    To
  1682.               .-<-<-<-<-<-<-Source Subnetwork->->->->->->->->--.
  1683.               v                                                v
  1684.               |                                                |
  1685.           parent link                                      parent link
  1686.               |                                                |
  1687.         _____________                                    _____________
  1688.        | Router A    |                                  | Router B    |
  1689.        |             |                                  |             |
  1690.         -------------                                    -------------
  1691.               |                                                |
  1692.          child link                                       child link
  1693.               |                                                |
  1694.  ---------------------------------------------------------------------
  1695.                                        | 
  1696.                                   parent link
  1697.                                        | 
  1698.                                  _____________ 
  1699.                                 | Router C    |
  1700.                                 |             |
  1701.                                  ------------- 
  1702.                                        | 
  1703.                                   child link
  1704.                                        | 
  1705.  
  1706. Figure 13. DVMRP Dominant Router in a Redundant Topology
  1707. ========================================================================
  1708.  
  1709.  
  1710. Semeria & Maufer                                               [Page 30]
  1711. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1712.  
  1713.  
  1714. 7.1.4 DVMRP Routing Table
  1715.  
  1716. The DVMRP process periodically exchanges routing table updates with its
  1717. DVMRP neighbors.  These updates are logically independent of those
  1718. generated by any unicast Interior Gateway Protocol.
  1719.  
  1720. Since the DVMRP was developed to route multicast and not unicast
  1721. traffic, a router will probably run multiple routing processes in
  1722. practice:  One to support the forwarding of unicast traffic and another
  1723. to support the forwarding of multicast traffic. (This can be convenient:
  1724. A router can be configured to only route multicast IP, with no unicast
  1725. IP routing.  This may be a useful capability in firewalled
  1726. environments.)
  1727.  
  1728. Consider Figure 13:  There are two types of routers in this figure:
  1729. dominant and subordinate; assume in this example that Router B is
  1730. dominant, Router A is subordinate, and Router C is part of the
  1731. downstream distribution tree.  In general, which routers are dominant
  1732. or subordinate may be different for each source!  A subordinate router
  1733. is one that is NOT on the shortest path tree back toward a source.  The
  1734. dominant router can tell this because the subordinate router will
  1735. 'poison-reverse' the route for this source in its routing updates which
  1736. are sent on the common LAN (i.e., Router A sets the metric for this
  1737. source to 'infinity').  The dominant router keeps track of subordinate
  1738. routers on a per-source basis...it never needs or expects to receive a
  1739. prune message from a subordinate router.  Only routers that are truly on
  1740. the downstream distribution tree will ever need to send prunes to the
  1741. dominant router.  If a dominant router on a LAN has received either a
  1742. poison-reversed route for a source, or prunes for all groups emanating
  1743. from that source subnetwork, then it may itself send a prune upstream
  1744. toward the source (assuming also that IGMP has told it that there are no
  1745. local receivers for any group from this source).
  1746.  
  1747. A sample routing table for a DVMRP router is shown in Figure 14. Unlike
  1748.  
  1749.  
  1750. ========================================================================
  1751.  
  1752. Source      Subnet     From           Metric   Status   TTL
  1753.  Prefix      Mask       Gateway
  1754.  
  1755.  
  1756. 128.1.0.0  255.255.0.0  128.7.5.2       3        Up     200
  1757. 128.2.0.0  255.255.0.0  128.7.5.2       5        Up     150
  1758. 128.3.0.0  255.255.0.0  128.6.3.1       2        Up     150
  1759. 128.3.0.0  255.255.0.0  128.6.3.1       4        Up     200
  1760.  
  1761.  
  1762. Figure 14: DVMRP Routing Table
  1763. ========================================================================
  1764.  
  1765.  
  1766.  
  1767. Semeria & Maufer                                               [Page 31]
  1768. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1769.  
  1770.  
  1771. the table that would be created by a unicast routing protocol such as
  1772. the RIP, OSPF, or the BGP, the DVMRP routing table contains Source
  1773. Prefixes and From-Gateways instead of Destination Prefixes and Next-Hop
  1774. Gateways.
  1775.  
  1776. The routing table represents the shortest path (source-based) spanning
  1777. tree to every possible source prefix in the internetwork--the Reverse
  1778. Path Broadcasting (RPB) tree.  The DVMRP routing table does not
  1779. represent group membership or received prune messages.
  1780.  
  1781. The key elements in DVMRP routing table include the following items:
  1782.  
  1783. Source Prefix          A subnetwork which is a potential or actual
  1784.                        source of multicast datagrams.
  1785.  
  1786. Subnet Mask            The subnet mask associated with the Source
  1787.                        Prefix.  Note that the DVMRP provides the subnet
  1788.                        mask for each source subnetwork (in other words,
  1789.                        the DVMRP is classless).
  1790.  
  1791. From-Gateway           The previous-hop router leading back toward a
  1792.                        particular Source Prefix.
  1793.  
  1794. TTL                    The time-to-live is used for table management
  1795.                        and indicates the number of seconds before an
  1796.                        entry is removed from the routing table.  This
  1797.                        TTL has nothing at all to do with the TTL used
  1798.                        in TTL-based scoping.
  1799.  
  1800. 7.1.5 DVMRP Forwarding Table
  1801.  
  1802. Since the DVMRP routing table is not aware of group membership, the
  1803. DVMRP process builds a forwarding table based on a combination of the
  1804. information contained in the multicast routing table, known groups, and
  1805. received prune messages.  The forwarding table represents the local
  1806. router's understanding of the shortest path source-based delivery tree
  1807. for each (source, group) pair--the Reverse Path Multicasting (RPM) tree.
  1808.  
  1809.  
  1810. ========================================================================
  1811.  
  1812. Source      Multicast     TTL   InPort   OutPorts
  1813.  Prefix      Group 
  1814.  
  1815.  128.1.0.0  224.1.1.1     200    1 Pr      2p3p
  1816.             224.2.2.2     100    1         2p3
  1817.             224.3.3.3     250    1         2
  1818.  128.2.0.0  224.1.1.1     150    2         2p3
  1819.  
  1820. Figure 15: DVMRP Forwarding Table
  1821. ========================================================================
  1822.  
  1823.  
  1824. Semeria & Maufer                                               [Page 32]
  1825. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1826.  
  1827.  
  1828. The forwarding table for a sample DVMRP router is shown in Figure 15.
  1829. The elements in this display include the following items:
  1830.  
  1831. Source Prefix           The subnetwork sending multicast datagrams
  1832.                         to the specified groups (one group per row).
  1833.  
  1834. Multicast Group         The Class D IP address to which multicast
  1835.                         datagrams are addressed.  Note that a given
  1836.                         Source Prefix may contain sources for several
  1837.                         Multicast Groups.
  1838.  
  1839. InPort                  The parent port for the (source, group) pair.
  1840.                         A 'Pr' in this column indicates that a prune
  1841.                         message has been sent to the upstream router
  1842.                         (the From-Gateway for this Source Prefix in
  1843.                         the DVMRP routing table).
  1844.  
  1845. OutPorts                The child ports over which multicast datagrams
  1846.                         for this (source, group) pair are forwarded.
  1847.                         A 'p' in this column indicates that the router
  1848.                         has received a prune message(s) from a (all)
  1849.                         downstream router(s) on this port.
  1850.  
  1851. 7.1.6 Hierarchical DVMRP (DVMRP v4.0)
  1852.  
  1853. The rapid growth of the MBone is placing ever-increasing demands on its
  1854. routers.  Essentially, today's MBone is deployed as a single, "flat"
  1855. routing domain where each router is required to maintain detailed
  1856. routing information to every possible subnetwork on the MBone.  As the
  1857. number of subnetworks continues to increase, the size of the routing
  1858. tables and of the periodic update messages will continue to grow.  If
  1859. nothing is done about these issues, the processing and memory
  1860. capabilities of the MBone routers will eventually be depleted and
  1861. routing on the MBone will be degraded, or fail.
  1862.  
  1863. To overcome these potential scaling issues, a hierarchical version of
  1864. the DVMRP is under development.  In hierarchical routing, the MBone
  1865. would be divided into a number of individual routing domains.  Each
  1866. routing domain executes its own instance of an "intra-domain" multicast
  1867. routing protocol.  Another protocol, or another instance of the same
  1868. protocol, would be used for routing between the individual domains.
  1869.  
  1870. 7.1.6.1 Benefits of Hierarchical Multicast Routing
  1871.  
  1872. Hierarchical routing reduces the demand for router resources because
  1873. each router only needs to know the explicit details about routing
  1874. packets to destinations within its own domain, but needs to know little
  1875. or nothing about the detailed topological structure of any of the other
  1876. domains.  The protocol running between the domains is envisioned to
  1877. maintain information about the interconnection of the domains, but not
  1878. about the internal topology of each domain.
  1879.  
  1880.  
  1881. Semeria & Maufer                                               [Page 33]
  1882. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1883.  
  1884.  
  1885. ========================================================================
  1886.                                                       _________
  1887.                       ________       _________       /         \
  1888.                      /        \     /         \     | Region D  |
  1889.      ___________     |Region B|-L2-|           |-L2-\___________/
  1890.     /           \-L2-\________/    |           |      ___________
  1891.    |             |     |    |      |           |     /           \
  1892.    | Region A    |    L2   L2      | Region C  |-L2-| Region E    |
  1893.    |             |     |    |      |           |    |             |
  1894.     \___________/     ________     |           |    \_____________/
  1895.                      /        \-L2-|           | 
  1896.                      |Region F|    \___________/
  1897.                      \________/
  1898.  
  1899.  
  1900. Figure 16. Hierarchical DVMRP
  1901. ========================================================================
  1902.  
  1903.  
  1904. In addition to reducing the amount of routing information, there are
  1905. several other benefits to be gained from the development and deployment
  1906. of a hierarchical version of the DVMRP:
  1907.  
  1908.     o  Different multicast routing protocols may be deployed
  1909.        in each region of the MBone.  This permits the testing
  1910.        and deployment of new protocols on a domain-by-domain
  1911.        basis.
  1912.  
  1913.     o  The effects of an individual link or router failures
  1914.        are limited to only those routers operating within a
  1915.        single domain. Likewise, the effects of any change to
  1916.        the topological interconnection of regions is limited
  1917.        to only inter-domain routers.  These enhancements are
  1918.        especially important when deploying a distance-vector
  1919.        routing protocol which can result in relatively long
  1920.        convergence times.
  1921.  
  1922.     o  The count-to-infinity problem associated with distance-
  1923.        vector routing protocols places limitations on the
  1924.        maximum diameter of the MBone topology.  Hierarchical
  1925.        routing limits these diameter constraints to a single
  1926.        domain, instead of to the entire MBone.
  1927.  
  1928. 7.1.6.2 Hierarchical Architecture
  1929.  
  1930. Hierarchical DVMRP proposes the creation of non-intersecting regions
  1931. where each region has a unique Region-ID.  The routers internal to a
  1932. region execute any multicast routing protocols such as DVMRP, MOSPF,
  1933. PIM, or CBT as a "Level 1" (L1) protocol.  Each region is required to
  1934. have at least one "boundary router" which is responsible for providing
  1935.  
  1936.  
  1937.  
  1938. Semeria & Maufer                                               [Page 34]
  1939. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1940.  
  1941.  
  1942. inter-regional connectivity.  The boundary routers execute DVMRP as a
  1943. "Level 2" (L2) protocol to forward traffic between regions.
  1944.  
  1945. The L2 routers exchange routing information in the form of Region-IDs
  1946. instead of the individual subnetwork prefixes contained within each
  1947. region.  With DVMRP as the L2 protocol, the inter-regional multicast
  1948. delivery tree is constructed based on the (region_ID, group) pair rather
  1949. than the usual (source, group) pair.
  1950.  
  1951. When a multicast packet originates within a region, it is forwarded
  1952. according to the L1 protocol to all subnetworks containing group
  1953. members.  In addition, the datagram is forwarded to each of the boundary
  1954. routers (L2) configured for the source region.  The L2 routers tag the
  1955. packet with the Region-Id and place it inside an encapsulation header
  1956. for delivery to other regions.  When the packet arrives at a remote
  1957. region, the encapsulation header is removed before delivery to group
  1958. members by the L1 routers.
  1959.  
  1960.  
  1961. 7.2. Multicast Extensions to OSPF (MOSPF)
  1962.  
  1963. Version 2 of the Open Shortest Path First (OSPF) routing protocol is
  1964. defined in RFC-1583.  It is an Interior Gateway Protocol (IGP)
  1965. specifically designed to distribute unicast topology information among
  1966. routers belonging to a single Autonomous System.  OSPF is based on
  1967. link-state algorithms which permit rapid route calculation with a
  1968. minimum of routing protocol traffic.  In addition to efficient route
  1969. calculation, OSPF is an open standard that supports hierarchical
  1970. routing, load balancing, and the import of external routing information.
  1971.  
  1972. The Multicast Extensions to OSPF (MOSPF) are defined in RFC-1584.  MOSPF
  1973. routers maintain a current image of the network topology through the
  1974. unicast OSPF link-state routing protocol.  MOSPF enhances the OSPF
  1975. protocol by providing the ability to route multicast IP traffic.  The
  1976. multicast extensions to OSPF are built on top of OSPF Version 2 so that
  1977. a multicast routing capability can be incrementally introduced into an
  1978. OSPF Version 2 routing domain.  The enhancements that have been added
  1979. are backwards-compatible so that routers running MOSPF will interoperate
  1980. with non-multicast OSPF routers when forwarding unicast IP data traffic.
  1981. Note that MOSPF, unlike DVMRP, does not provide support for tunnels.
  1982.  
  1983. 7.2.1 Intra-Area Routing with MOSPF
  1984.  
  1985. Intra-Area Routing describes the basic routing algorithm employed by
  1986. MOSPF.  This elementary algorithm runs inside a single OSPF area and
  1987. supports multicast forwarding when a source and all destination group
  1988. members reside in the same OSPF area, or when the entire OSPF Autonomous
  1989. System is a single area.  The following discussion assumes that the
  1990. reader is familiar with the basic operation of the OSPF routing
  1991. protocol.
  1992.  
  1993.  
  1994.  
  1995. Semeria & Maufer                                               [Page 35]
  1996. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  1997.  
  1998.  
  1999. 7.2.1.1 Local Group Database
  2000.  
  2001. Similar to the DVMRP, MOSPF routers use the Internet Group Management
  2002. Protocol (IGMP) to monitor multicast group membership on directly-
  2003. attached subnetworks.  MOSPF routers are required to implement a "local
  2004. group database" which maintains a list of directly attached groups and
  2005. determines the local router's responsibility for delivering multicast
  2006. datagrams to these groups.
  2007.  
  2008. On any given subnetwork, the transmission of IGMP Host Membership
  2009. Queries is performed solely by the Designated Router (DR).  Also, the
  2010. responsibility of listening to IGMP Host Membership Reports is performed
  2011. only by the Designated Router (DR) and the Backup Designated Router
  2012. (BDR).  This means that in a mixed environment containing both MOSPF and
  2013. OSPF routers, an MOSPF router must be elected the DR for the subnetwork
  2014. if IGMP Queries are to be generated.  This can be achieved by simply
  2015. assigning all non-MOSPF routers a RouterPriority of 0 to prevent them
  2016. from becoming the DR or BDR, thus allowing an MOSPF router to become the
  2017. DR for the subnetwork.
  2018.  
  2019. The DR is responsible for communicating group membership information to
  2020. all other routers in the OSPF area by flooding Group-Membership LSAs.
  2021. The DR originates a separate Group-Membership LSA for each multicast
  2022. group having one or more entries in the DR's local group database.
  2023. Similar to Router-LSAs and Network-LSAs, Group-Membership LSAs are
  2024. flooded throughout a single area only.  This ensures that all remotely-
  2025. originated multicast datagrams are forwarded to the specified subnetwork
  2026. for distribution to local group members.
  2027.  
  2028. 7.2.1.2 Datagram's Shortest Path Tree
  2029.  
  2030. The datagram's shortest path tree describes the path taken by a
  2031. multicast datagram as it travels through the internetwork from the
  2032. source subnetwork to each of the individual group members.  The shortest
  2033. path tree for each (source, group) pair is built "on demand" when a
  2034. router receives the first multicast datagram for a particular (source,
  2035. group) pair.
  2036.  
  2037. When the initial datagram arrives, the source subnetwork is located in
  2038. the MOSPF link state database.  The MOSPF link state database is simply
  2039. the standard OSPF link state database with the addition of Group-
  2040. Membership LSAs.  Based on the Router- and Network-LSAs in the
  2041. MOSPF link state database, a source-based shortest-path tree is
  2042. constructed using Dijkstra's algorithm.  After the tree is built, Group-
  2043. Membership LSAs are used to prune those branches that do not lead to
  2044. subnetworks containing members of this group.  The output of these
  2045. algorithms is a pruned source-based tree rooted at the datagram's
  2046. source.
  2047.  
  2048. To forward multicast datagrams to downstream members of a group, each
  2049. router must determine its position in the datagram's shortest path
  2050.  
  2051.  
  2052. Semeria & Maufer                                               [Page 36]
  2053. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2054.  
  2055.  
  2056. tree.  Assume that Figure 17 illustrates the shortest path tree
  2057. for a particular (source, group) pair.  Router E's upstream node is
  2058.  
  2059.  
  2060. ========================================================================
  2061.  
  2062.  
  2063.                       S
  2064.                       |
  2065.                       |
  2066.                    A  #
  2067.                      / \
  2068.                     /   \
  2069.                    1     2
  2070.                   /       \
  2071.                B #         # C
  2072.                 / \         \
  2073.                /   \         \
  2074.               3     4         5
  2075.              /       \         \
  2076.           D #         # E       # F
  2077.                      / \         \
  2078.                     /   \         \
  2079.                    6     7         8
  2080.                   /       \         \
  2081.                G #         # H       # I
  2082.  
  2083.  
  2084. LEGEND
  2085.  
  2086.  #   Router 
  2087.  
  2088.  
  2089. Figure 17. Shortest Path Tree for a (S, G) pair
  2090. ========================================================================
  2091.  
  2092.  
  2093. Router B and there are two downstream interfaces:  one connecting to
  2094. Subnetwork 6 and another connecting to Subnetwork 7.
  2095.  
  2096. Note the following properties of the basic MOSPF routing algorithm:
  2097.  
  2098.     o  For a given multicast datagram, all routers within an OSPF
  2099.        area calculate the same source-based shortest path delivery
  2100.        tree.  Tie-breakers have been defined to guarantee that if
  2101.        several equal-cost paths exist, all routers agree on a single
  2102.        path through the area.  Unlike unicast OSPF, MOSPF does not
  2103.        support the concept of equal-cost multipath routing.
  2104.  
  2105.     o  Synchronized link state databases containing Group-Membership
  2106.        LSAs allow an MOSPF router to effectively perform the Reverse
  2107.  
  2108.  
  2109. Semeria & Maufer                                               [Page 37]
  2110. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2111.  
  2112.  
  2113.        Path Multicasting (RPM) computation "in memory."   Unlike the
  2114.        DVMRP, this means that the first datagram of a new transmis-
  2115.        sion does not have to be flooded to all routers in an area.
  2116.  
  2117.     o  The "on demand" construction of the source-based delivery tree
  2118.        has the benefit of spreading calculations over time, resulting
  2119.        in a lesser impact for participating routers.  Of course, this
  2120.        may strain the CPU(s) in a router if many (source, group) pairs
  2121.        appear at about the same time, or if there are a lot of events
  2122.        which force the router to flush and rebuild its forwarding cache.
  2123.        In a stable topology with long-lived multicast sessions, these
  2124.        effects should be minimal.
  2125.  
  2126. 7.2.1.3 Forwarding Cache
  2127.  
  2128. Each MOSPF router makes its forwarding decision based on the contents of
  2129. its forwarding cache.  The forwarding cache is built from the source-
  2130. based shortest-path tree for each (source, group) pair and the router's
  2131. local group database.  After the router discovers its position in the
  2132. shortest path tree, a forwarding cache entry is created containing the
  2133. (source, group) pair, the upstream interface, and the downstream
  2134. interface(s). At this point, all resources associated with the creation
  2135. of the tree are deleted.  From this point on, the forwarding cache entry
  2136. is used to quickly forward all subsequent datagrams from this source to
  2137. this group.
  2138.  
  2139. Figure 18 displays the forwarding cache for an example MOSPF router.
  2140. The elements in the display include the following items:
  2141.  
  2142. Dest. Group            The destination group address to which matching
  2143.                        datagrams are forwarded.
  2144.  
  2145. Source                 The datagram's source host address.  Each (Dest.
  2146.                        Group, Source) pair uniquely identifies a
  2147.                        separate forwarding cache entry.
  2148.  
  2149.  
  2150. ========================================================================
  2151.  
  2152.  
  2153. Dest. Group     Source       Upstream     Downstream   TTL
  2154.  
  2155. 224.1.1.1       128.1.0.2      11          12   13      5
  2156. 224.1.1.1       128.4.1.2      11          12   13      2
  2157. 224.1.1.1       128.5.2.2      11          12   13      3
  2158. 224.2.2.2       128.2.0.3      12          11           7
  2159.  
  2160.  
  2161. Figure 18: MOSPF Forwarding Cache
  2162. ========================================================================
  2163.  
  2164.  
  2165.  
  2166. Semeria & Maufer                                               [Page 38]
  2167. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2168.  
  2169.  
  2170. Upstream               The interface from which a matching datagram
  2171.                        must be received
  2172.  
  2173. Downstream             The interface(s) over which a matching datagram
  2174.                        will be forwarded to reach known Destination
  2175.                        group members
  2176.  
  2177. TTL                    The minimum number of hops a datagram will
  2178.                        travel to reach the multicast group members.
  2179.                        This allows the router to discard datagrams
  2180.                        that do not have a high enough TTL to reach a
  2181.                        certain group member.
  2182.  
  2183. The information in the forwarding cache is not aged or periodically
  2184. refreshed.  It is maintained as long as there are system resources
  2185. available (e.g., memory) or until the next topology change.  In general,
  2186. the contents of the forwarding cache will change when:
  2187.  
  2188.     o  The topology of the OSPF internetwork changes, forcing all of
  2189.        the shortest path trees to be recalculated.  (Once the cache
  2190.        has been flushed, entries are not rebuilt until another packet
  2191.        for one of the previous (Dest. Group, Source) pairs is
  2192.        received.)
  2193.  
  2194.     o  There is a change in the Group-Membership LSAs indicating that
  2195.        the distribution of individual group members has changed.
  2196.  
  2197. 7.2.2 Mixing MOSPF and OSPF Routers
  2198.  
  2199. MOSPF routers can be combined with non-multicast OSPF routers. This
  2200. permits the gradual deployment of MOSPF and allows experimentation with
  2201. multicast routing on a limited scale.  When MOSPF and non-MOSPF routers
  2202. are mixed within an Autonomous System, all routers will interoperate in
  2203. the forwarding of unicast datagrams.
  2204.  
  2205. It is important to note that an MOSPF router is required to eliminate
  2206. all non-multicast OSPF routers when it builds its source-based shortest-
  2207. path delivery tree.  An MOSPF router can easily determine the multicast
  2208. capability of any other router based on the setting of the multicast-
  2209. capable bit (MC-bit) in the Options field of each router's link state
  2210. advertisements.  The omission of non-multicast routers can create a
  2211. number of potential problems when forwarding multicast traffic:
  2212.  
  2213.     o  The Designated Router for a multi-access network must be an
  2214.        MOSPF router.  If a non-multicast OSPF router is elected the
  2215.        DR, the subnetwork will not be selected to forward multicast
  2216.        datagrams since a non-multicast DR cannot generate Group-
  2217.        Membership LSAs for its subnetwork (because it is not running
  2218.        IGMP, so it won't hear IGMP Host Membership Reports).  To use
  2219.        MOSPF, it is a good idea to ensure that at least two of the
  2220.        MOSPF routers on each LAN have higher router_priority values
  2221.  
  2222.  
  2223. Semeria & Maufer                                               [Page 39]
  2224. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2225.  
  2226.  
  2227.        than any non-MOSPF routers.  A possible strategy would be to
  2228.        configure any non-MOSPF routers with a router_priority of
  2229.        zero, so that they cannot become (B)DR.
  2230.  
  2231.     o  Multicast datagrams may be forwarded along suboptimal routes
  2232.        since the shortest path between two points may require traversal
  2233.        of a non-multicast OSPF router.
  2234.  
  2235.     o  Even though there is unicast connectivity to a destination,
  2236.        there may not be multicast connectivity.  For example, the
  2237.        network may partition with respect to multicast connectivity
  2238.        since the only path between two points could require traversal
  2239.        of a non-multicast-capable OSPF router.
  2240.  
  2241.     o  The forwarding of multicast and unicast datagrams between 
  2242.        two points may follow entirely different paths through the
  2243.        internetwork.  This may make some routing problems a bit more
  2244.        challenging to debug.
  2245.  
  2246. 7.2.3 Inter-Area Routing with MOSPF
  2247.  
  2248. Inter-area routing involves the case where a datagram's source and some
  2249. of its destination group members reside in different OSPF areas.  It
  2250. should be noted that the forwarding of multicast datagrams continues to
  2251. be determined by the contents of the forwarding cache which is still
  2252. built from the local group database and the datagram source-based trees.
  2253. The major differences are related to the way that group membership
  2254. information is propagated and the way that the inter-area source-based
  2255. tree is constructed.
  2256.  
  2257. 7.2.3.1 Inter-Area Multicast Forwarders
  2258.  
  2259. In MOSPF, a subset of an area's Area Border Routers (ABRs) function as
  2260. "inter-area multicast forwarders."  An inter-area multicast forwarder is
  2261. responsible for the forwarding of group membership information and
  2262. multicast datagrams between areas. Configuration parameters determine
  2263. whether or not a particular ABR also functions as an inter-area
  2264. multicast forwarder.
  2265.  
  2266. Inter-area multicast forwarders summarize their attached areas' group
  2267. membership information to the backbone by originating new Group-
  2268. Membership LSAs into the backbone area.  It is important to note that
  2269. the summarization of group membership in MOSPF is asymmetric.  This
  2270. means that group membership information from non-backbone areas is
  2271. flooded into the backbone.  However, group membership from the backbone
  2272. or from other non-backbone areas is not flooded into any non-backbone
  2273. area(s).
  2274.  
  2275. To permit the forwarding of multicast traffic between areas, MOSPF
  2276. introduces the concept of a "wild-card multicast receiver." A wild-card
  2277. multicast receiver is a router that receives all multicast traffic
  2278.  
  2279.  
  2280. Semeria & Maufer                                               [Page 40]
  2281. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2282.  
  2283.  
  2284. generated in an area, regardless of the multicast group membership.  In
  2285. non-backbone areas, all inter-area multicast forwarders operate as
  2286. wild-card multicast receivers.  This guarantees that all multicast
  2287. traffic originating in a non-backbone area is delivered to its inter-
  2288. area multicast forwarder, and then if necessary into the backbone area.
  2289.  
  2290.  
  2291. ========================================================================
  2292.  
  2293.  
  2294.                  -------------------------
  2295.                 /      Backbone Area      \
  2296.                 |                         |
  2297.                 |      ^           ^      |
  2298.                 |   ___|___     ___|___   |
  2299.                 \__|       |___|       |__/
  2300.                    |---*---|   |---*---|
  2301.                        |           |
  2302.                     _______     _______
  2303.                    /       \   /       \
  2304.                    | Area  |   | Area  |
  2305.                    |   1   |   |   2   |
  2306.                    |-------|   |-------|
  2307.  
  2308.  
  2309. LEGEND
  2310.  
  2311.    ^
  2312.    |    Group Membership LSAs
  2313.  _____
  2314. |_____| Area Border Router and
  2315.         Inter-Area Multicast Forwarder
  2316.  
  2317. *       Wild-Card Multicast
  2318.         Receiver Interface
  2319.  
  2320.  
  2321. Figure 19. Inter-Area Routing Architecture
  2322. ========================================================================
  2323.  
  2324.  
  2325. Since the backbone has group membership knowledge for all areas, the
  2326. datagram can then be forwarded to group members residing in the
  2327. backbone and other non-backbone areas.  The backbone area does not
  2328. require wild-card multicast receivers because the routers in the
  2329. backbone area have complete knowledge of group membership information
  2330. for the entire OSPF system.
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337. Semeria & Maufer                                               [Page 41]
  2338. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2339.  
  2340.  
  2341. 7.2.3.2 Inter-Area Datagram Shortest-Path Tree
  2342.  
  2343. In the case of inter-area multicast routing, it is often impossible to
  2344. build a complete datagram shortest-path delivery tree.  Incomplete trees
  2345. are created because detailed topological and group membership
  2346. information for each OSPF area is not distributed between OSPF areas. 
  2347. To overcome these limitations, topological estimates are made through
  2348. the use of wild-card receivers and OSPF Summary-Links LSAs.
  2349.  
  2350. There are two cases that need to be considered when constructing an
  2351. inter-area shortest-path delivery tree.  The first involves the
  2352. condition when the source subnetwork is located in the same area as the
  2353. router performing the calculation.  The second situation occurs when the
  2354.  
  2355.  
  2356. ========================================================================
  2357.  
  2358.  
  2359.                  ----------------------------------
  2360.                 |              S                   |
  2361.                 |              |     Area 1        |
  2362.                 |              |                   |
  2363.                 |              #                   |
  2364.                 |             / \                  |
  2365.                 |            /   \                 |
  2366.                 |           /     \                |
  2367.                 |          /       \               |
  2368.                 |       O-#         #-O            |
  2369.                 |        / \         \             |
  2370.                 |       /   \         \            |
  2371.                 |      /     \         \           |
  2372.                 |     /       \         \          |
  2373.                 |  O-#         #         #-O       |
  2374.                 |             / \         \        |
  2375.                 |            /   \         \       |
  2376.                 |           /     \         \      |
  2377.                 |          /       \         \     |
  2378.                 |       O-#         #-O       ---  |
  2379.                  ----------------------------| ? |-
  2380.                                               ---
  2381.                                                To
  2382.                                             Backbone
  2383. LEGEND
  2384.  
  2385. S   Source Subnetwork
  2386. O   Subnet Containing Group Members
  2387. #   Intra-Area MOSPF Router
  2388. ?   WildCard Multicast Receiver
  2389.  
  2390. Figure 20. Datagram Shortest Path Tree (Source in Same Area)
  2391. ========================================================================
  2392.  
  2393.  
  2394. Semeria & Maufer                                               [Page 42]
  2395. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2396.  
  2397.  
  2398. source subnetwork is located in a different area than the router
  2399. performing the calculation.
  2400.  
  2401. If the source of a multicast datagram resides in the same area as the
  2402. router performing the calculation, the pruning process must be careful
  2403. to ensure that branches leading to other areas are not removed from the
  2404. tree.  Only those branches having no group members nor wild-card
  2405. multicast receivers are pruned.  Branches containing wild-card multicast
  2406. receivers must be retained since the local routers do not know if there
  2407. are group members residing in other areas.
  2408.  
  2409.  
  2410. ========================================================================
  2411.  
  2412.                                S
  2413.                                |
  2414.                                #
  2415.                                |
  2416.                        Summary-Links LSA
  2417.                                |
  2418.                               ---
  2419.                  ------------| ? |-----------------
  2420.                 |             ---    Area 1        |
  2421.                 |              |                   |
  2422.                 |              #                   |
  2423.                 |             / \                  |
  2424.                 |            /   \                 |
  2425.                 |           /     \                |
  2426.                 |          /       \               |
  2427.                 |       O-#         #-O            |
  2428.                 |        / \         \             |
  2429.                 |       /   \         \            |
  2430.                 |      /     \         \           |
  2431.                 |     /       \         \          |
  2432.                 |  O-#         #         #-O       |
  2433.                 |             / \         \        |
  2434.                 |            /   \         \       |
  2435.                 |           /     \         \      |
  2436.                 |          /       \         \     |
  2437.                 |       O-#         #-O       #-O  |
  2438.                  ---------------------------------- 
  2439.  
  2440. LEGEND
  2441.  
  2442. S   Source Subnetwork
  2443. O   Subnet Containing Group Members
  2444. #   Inter-Area MOSPF Router
  2445. ?   Intra-Area Multicast Forwarder
  2446.  
  2447. Figure 21. Shortest Path Tree (Source in Different Area)
  2448. ========================================================================
  2449.  
  2450.  
  2451. Semeria & Maufer                                               [Page 43]
  2452. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2453.  
  2454.  
  2455. If the source of a multicast datagram resides in a different area than
  2456. the router performing the calculation, the details describing the local
  2457. topology surrounding the source station are not known.  However, this
  2458. information can be estimated using information provided by Summary-Links
  2459. LSAs for the source subnetwork.  In this case, the base of the tree
  2460. begins with branches directly connecting the source subnetwork to each
  2461. of the local area's inter-area multicast forwarders.  The inter-area
  2462. multicast forwarders must be included in the tree since any multicast
  2463. datagrams originating outside the local area will enter the area via an
  2464. inter-area multicast forwarder.
  2465.  
  2466. Since each inter-area multicast forwarder is also an ABR, it must
  2467. maintain a separate link state database for each attached area. This
  2468. means that each inter-area multicast forwarder is required to calculate
  2469. a separate forwarding tree for each of its attached areas.  After the
  2470. individual trees are calculated, they are merged into a single
  2471. forwarding cache entry for the (source, group) pair and then the
  2472. individual trees are discarded.
  2473.  
  2474. 7.2.4 Inter-Autonomous System Multicasting with MOSPF
  2475.  
  2476. Inter-Autonomous System multicasting involves the situation where a
  2477. datagram's source and at least some of its destination group members
  2478. reside in different OSPF Autonomous Systems.  It should be emphasized
  2479. that in OSPF terminology "inter-AS" communication also refers to
  2480. connectivity between an OSPF domain and another routing domain which
  2481. could be within the same Autonomous System from the perspective of an
  2482. Exterior Gateway Protocol.
  2483.  
  2484. To facilitate inter-AS multicast routing, selected Autonomous System
  2485. Boundary Routers (ASBRs) are configured as "inter-AS multicast
  2486. forwarders."  MOSPF makes the assumption that each inter-AS multicast
  2487. forwarder executes an inter-AS multicast routing protocol (e.g., DVMRP)
  2488. which forwards multicast datagrams in a reverse path forwarding (RPF)
  2489. manner.  Each inter-AS multicast forwarder functions as a wild-card
  2490. multicast receiver in each of its attached areas.  This guarantees that
  2491. each inter-AS multicast forwarder remains on all pruned shortest-path
  2492. trees and receives all multicast datagrams, regardless of the multicast
  2493. group membership.
  2494.  
  2495. Three cases need to be considered when describing the construction of an
  2496. inter-AS shortest-path delivery tree.  The first occurs when the source
  2497. subnetwork is located in the same area as the router performing the
  2498. calculation.  For the second case, the source subnetwork resides in a
  2499. different area than the router performing the calculation.  The final
  2500. case occurs when the source subnetwork is located in a different AS 
  2501. than the router performing the calculation.
  2502.  
  2503. The first two cases are similar to the inter-area examples described in
  2504. the previous section.  The only enhancement is that inter-AS multicast
  2505. forwarders must also be included on the pruned shortest path delivery
  2506.  
  2507.  
  2508. Semeria & Maufer                                               [Page 44]
  2509. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2510.  
  2511.  
  2512. tree.  Branches containing inter-AS multicast forwarders must be
  2513. retained since the local routers do not know if there are group members
  2514. residing in other Autonomous Systems.  When a multicast datagram arrives
  2515. at an inter-AS multicast forwarder, it is the responsibility of the ASBR
  2516. to determine whether the datagram should be forwarded outside of the
  2517. local Autonomous System.
  2518.  
  2519. Figure 22 illustrates a sample inter-AS shortest path delivery tree when
  2520. the source subnetwork resides in the same area as the router performing
  2521. the calculation.
  2522.  
  2523.  
  2524. ========================================================================
  2525.  
  2526.  
  2527.                  -----------------------------------
  2528.                 |              S     Area 1         |
  2529.                 |              |                    |
  2530.                 |              #                    |
  2531.                 |             / \                   |
  2532.                 |            /   \                  |
  2533.                 |           /     \                 |
  2534.                 |          /       \                |
  2535.                 |       O-#         #-O             |
  2536.                 |        / \         \              |
  2537.                 |       /   \         \             |
  2538.                 |      /     \         \            |
  2539.                 |     /       \         \           |
  2540.                 |  O-#         #         #-O        |
  2541.                 |             / \         \         |
  2542.                 |            /   \         \        |
  2543.                 |           /     \         \       |
  2544.                 |          /       \         \      |
  2545.                 |         /         #-O       \     |
  2546.                 |       ---                    ---  |
  2547.                  ------| & |------------------| ? |-
  2548.                         ---                    ---
  2549.                  To other Autonomous      To Backbone
  2550.                      Systems
  2551.  
  2552. LEGEND
  2553.  
  2554. S   Source Subnetwork
  2555. O   Subnet Containing Group Members
  2556. #   Intra-Area MOSPF Router
  2557. ?   Inter-Area Multicast Forwarder
  2558. &   Inter-AS Multicast Forwarder
  2559.  
  2560.  
  2561. Figure 22. Inter-AS Datagram Shortest Path Tree (Source in Same Area)
  2562. ========================================================================
  2563.  
  2564.  
  2565. Semeria & Maufer                                               [Page 45]
  2566. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2567.  
  2568.  
  2569. If the source of a multicast datagram resides in a different Autonomous
  2570. System than the router performing the calculation, the details
  2571. describing the local topology surrounding the source station are not
  2572. known.   However, this information can be estimated using the multicast-
  2573. capable AS-External Links describing the source subnetwork.  In this
  2574. case, the base of the tree begins with branches directly connecting the
  2575. source subnetwork to each of the local area's inter-AS multicast
  2576. forwarders.
  2577.  
  2578.  
  2579. ========================================================================
  2580.  
  2581.                                S
  2582.                                |
  2583.                                :
  2584.                                |
  2585.                        AS-External links
  2586.                                |
  2587.                               ---
  2588.                  ------------| & |-----------------
  2589.                 |             ---                  |
  2590.                 |             / \                  |
  2591.                 |            /   \     Area 1      |
  2592.                 |           /     \                |
  2593.                 |          /       \               |
  2594.                 |       O-#         #-O            |
  2595.                 |        / \         \             |
  2596.                 |       /   \         \            |
  2597.                 |      /     \         \           |
  2598.                 |     /       \         \          |
  2599.                 |  O-#         #         #-O       |
  2600.                 |             / \         \        |
  2601.                 |            /   \         \       |
  2602.                 |           /     \         \      |
  2603.                 |          /       \         \     |
  2604.                 |         /         #-O       #-O  |
  2605.                 |       ---                        |
  2606.                  ------| ? |----------------------- 
  2607.                         --- 
  2608.                         To
  2609.                      Backbone
  2610. LEGEND
  2611.  
  2612. S   Source Subnetwork
  2613. O   Subnet Containing Group Members
  2614. #   Intra-Area MOSPF Router
  2615. ?   Inter-Area Multicast Forwarder
  2616. &   Inter-AS Multicast Forwarder
  2617.  
  2618. Figure 23. Inter-AS Datagram Shortest Path Tree (Source in Different AS)
  2619. ========================================================================
  2620.  
  2621.  
  2622. Semeria & Maufer                                               [Page 46]
  2623. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2624.  
  2625.  
  2626. Figure 23 shows a sample inter-AS shortest-path delivery tree when the
  2627. inter-AS multicast forwarder resides in the same area as the router
  2628. performing the calculation.  If the inter-AS multicast forwarder is
  2629. located in a different area than the router performing the calculation,
  2630. the topology surrounding the source is approximated by combining the
  2631. Summary-ASBR Link with the multicast capable AS-External Link.
  2632.  
  2633. As a final point, it is important to note that AS External Links are not
  2634. imported into Stub areas.  If the source is located outside of the stub
  2635. area, the topology surrounding the source is estimated by the Default
  2636. Summary Links originated by the stub area's intra-area multicast
  2637. forwarder rather than the AS-External Links.
  2638.  
  2639.  
  2640. 7.3 Protocol-Independent Multicast (PIM)
  2641.  
  2642. The Protocol Independent Multicast (PIM) routing protocol is currently
  2643. under development by the Inter-Domain Multicast Routing (IDMR) working
  2644. group of the IETF.  The objective of the IDMR working group is to
  2645. develop one--or possibly more than one--standards-track multicast
  2646. routing protocol(s) that can provide scaleable inter-domain multicast
  2647. routing across the Internet.
  2648.  
  2649. PIM receives its name because it is not dependent on the mechanisms
  2650. provided by any particular unicast routing protocol.  However, any
  2651. implementation supporting PIM requires the presence of a unicast routing
  2652. protocol to provide routing table information and to adapt to topology
  2653. changes.
  2654.  
  2655. PIM makes a clear distinction between a multicast routing protocol that
  2656. is designed for dense environments and one that is designed for sparse
  2657. environments.  Dense-mode refers to a protocol that is designed to
  2658. operate in an environment where group members are relatively densely
  2659. packed and bandwidth is plentiful.  Sparse-mode refers to a protocol
  2660. that is optimized for environments where group members are distributed
  2661. across many regions of the Internet and bandwidth is not necessarily
  2662. widely available.  It is important to note that sparse-mode does not
  2663. imply that the group has a few members, just that they are widely
  2664. dispersed across the Internet.
  2665.  
  2666. The designers of PIM argue that DVMRP and MOSPF were developed for
  2667. environments where group members are densely distributed. They emphasize
  2668. that when group members and senders are sparsely distributed across a
  2669. wide area, DVMRP and MOSPF do not provide the most efficient multicast
  2670. delivery service.  DVMRP periodically sends multicast packets over
  2671. many links that do not lead to group members, while MOSPF can send group
  2672. membership information over links that do not lead to senders or
  2673. receivers.
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679. Semeria & Maufer                                               [Page 47]
  2680. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2681.  
  2682.  
  2683. 7.3.1 PIM-Dense Mode (PIM-DM)
  2684.  
  2685. While the PIM architecture was driven by the need to provide scaleable
  2686. sparse-mode delivery trees, PIM also defines a new dense-mode protocol
  2687. instead of relying on existing dense-mode protocols such as DVMRP and
  2688. MOSPF.  It is envisioned that PIM-DM would be deployed in resource rich
  2689. environments, such as a campus LAN where group membership is relatively
  2690. dense and bandwidth is likely to be readily available.  PIM-DM's control
  2691. messages are similar to PIM-SM's by design.
  2692.  
  2693. PIM - Dense Mode (PIM-DM) is similar to DVMRP in that it employs the
  2694. Reverse Path Multicasting (RPM) algorithm.  However, there are several
  2695. important differences between PIM-DM and DVMRP:
  2696.  
  2697.     o  To find routes back to sources, PIM-DM relies on the presence
  2698.        of an existing unicast routing table.  PIM-DM is independent of
  2699.        the mechanisms of any specific unicast routing protocol.  In
  2700.        contrast, DVMRP contains an integrated routing protocol that
  2701.        makes use of its own RIP-like exchanges to build its own unicast
  2702.        routing table (so a router may orient itself with respect to
  2703.        active source(s).  MOSPF augments the information in the OSPF
  2704.        link state database, thus MOSPF must run in conjunction with
  2705.        OSPF.
  2706.  
  2707.     o  Unlike the DVMRP which calculates a set of child interfaces for
  2708.        each (source, group) pair, PIM-DM simply forwards multicast
  2709.        traffic on all downstream interfaces until explicit prune
  2710.        messages are received.  PIM-DM is willing to accept packet
  2711.        duplication to eliminate routing protocol dependencies and
  2712.        to avoid the overhead inherent in determining the parent/child
  2713.        relationships.
  2714.  
  2715. For those cases where group members suddenly appear on a pruned branch
  2716. of the delivery tree, PIM-DM, like DVMRP, employs graft messages to
  2717. re-attach the previously pruned branch to the delivery tree.
  2718.  
  2719.  
  2720. 8.  SHARED TREE ("SPARSE MODE") ROUTING PROTOCOLS
  2721.  
  2722. The most recent additions to the set of multicast routing proto- cols
  2723. are based on a shared delivery tree.
  2724.  
  2725. These emerging routing protocols include:
  2726.  
  2727.     o  Protocol Independent Multicast - Sparse Mode (PIM-SM), and 
  2728.  
  2729.     o  Core-Based Trees (CBT).
  2730.  
  2731. Each of these routing protocols is designed to operate efficiently
  2732. over a wide area network where bandwidth is scarce and group members may
  2733.  
  2734.  
  2735.  
  2736. Semeria & Maufer                                               [Page 48]
  2737. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2738.  
  2739.  
  2740. be sparsely distributed.  Their ultimate goal is to provide scaleable
  2741. interdomain multicast routing across the Internet.
  2742.  
  2743.  
  2744. 8.1  Protocol-Independent Multicast - Sparse Mode (PIM-SM)
  2745.  
  2746. As described previously, PIM also defines a "dense-mode" or source-based
  2747. tree variant.  The two protocols are quite unique, and other than
  2748. control messages, they have very little else in common.  Because PIM
  2749. integrates control message processing and data packet forwarding among
  2750. PIM-Sparse and -Dense Modes, a single PIM router can run different modes
  2751. for different groups, as desired.
  2752.  
  2753. PIM-Sparse Mode (PIM-SM) is being developed to provide a multicast
  2754. routing protocol that provides efficient communication between members
  2755. of sparsely distributed groups--the type of groups that are likely to
  2756. be common in wide-area internetworks. PIM's designers observe that
  2757. several hosts wishing to participate in a multicast conference do not
  2758. justify flooding the entire internetwork periodically with the group's
  2759. multicast traffic.
  2760.  
  2761. Noting today's existing MBone scaling problems, and extrapolating to a
  2762. future of ubiquitous multicast (overlaid with perhaps thousands of
  2763. small, widely dispersed groups), it is not hard to imagine that existing
  2764. multicast routing protocols will experience scaling problems.  To
  2765. eliminate these potential scaling issues, PIM-SM is designed to limit
  2766. multicast traffic so that only those routers interested in receiving
  2767. traffic for a particular group "see" it.
  2768.  
  2769. PIM-SM differs from existing dense-mode protocols in two key ways:
  2770.  
  2771.     o  Routers with adjacent or downstream members are required to
  2772.        explicitly join a sparse mode delivery tree by transmitting
  2773.        join messages.  If a router does not join the pre-defined
  2774.        delivery tree, it will not receive multicast traffic addressed
  2775.        to the group.
  2776.  
  2777.        In contrast, dense-mode protocols assume downstream group
  2778.        membership and forward multicast traffic on downstream links
  2779.        until explicit prune messages are received.  Thus, the default
  2780.        forwarding action of dense-mode routing protocols is to forward
  2781.        all traffic, while the default action of a sparse-mode protocol
  2782.        is to block traffic unless it has been explicitly requested.
  2783.  
  2784.     o  PIM-SM evolved from the Core-Based Trees (CBT) approach in that
  2785.        it employs the concept of a "core" (or rendezvous point (RP) in
  2786.        PIM-SM terminology) where receivers "meet" sources.  The creator
  2787.        of each multicast group selects a primary RP and a small set of
  2788.        alternative RPs, known as the RP-set.  For each group, there is
  2789.        only a single active RP (which is uniquely determined by a hash
  2790.        function).
  2791.  
  2792.  
  2793. Semeria & Maufer                                               [Page 49]
  2794. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2795.  
  2796.  
  2797. ========================================================================
  2798.  
  2799.                     S1                                      S2
  2800.                    ___|___                                 ___|___
  2801.                         |                                   |
  2802.                         |                                   |
  2803.                         #                                   #
  2804.                          \                                 /
  2805.                           \            Primary            /
  2806.                            \_____________RP______________/
  2807.                                         /|\
  2808.                       ________________// | \\_______________
  2809.                      /         _______/  |  \______         \
  2810.                      #         #         #         #         #
  2811.                   ___|___   ___|___   ___|___   ___|___   ___|___
  2812.                         |     |   |        |     |            |
  2813.                         R     R   R        R     R            R
  2814. LEGEND
  2815.  
  2816.    #   PIM Router
  2817.    R   Multicast Receiver 
  2818.  
  2819.  
  2820. Figure 24 Primary Rendezvous Point
  2821. ========================================================================
  2822.  
  2823.  
  2824. When joining a group, each receiver uses IGMP to notify its directly-
  2825. attached router, which in turn joins the multicast delivery tree by
  2826. sending an explicit PIM-Join message hop-by-hop toward the group's
  2827. primary RP.  A source uses the RP to announce its presence, and act as
  2828. a conduit to members that have joined the group.  This model requires
  2829. sparse-mode routers to maintain a bit of state (i.e., the RP-set for
  2830. each defined sparse-mode group) prior to the arrival of data. In
  2831. contrast, dense mode protocols are data-driven, since they do not store
  2832. any state for a group until the arrival of the first data packet.
  2833.  
  2834. 8.1.1 Directly Attached Host Joins a Group
  2835.  
  2836. When there is more than one PIM router connected to a multi-access LAN,
  2837. the router with the highest IP address is selected to function as the
  2838. Designated Router (DR) for the LAN.  The DR may or may not be
  2839. responsible for the transmission of IGMP Host Membership Query messages,
  2840. but does send Join/Prune messages toward the RP, and maintains the
  2841. status of the active RP for local senders to multicast groups.
  2842.  
  2843. When the DR receives an IGMP Report message for a new group, the DR
  2844. determines if the group is RP-based or not by examining the group
  2845. address.  If the address indicates a SM group (by virtue of the group-
  2846. specific state that even inactive groups have stored in all PIM
  2847. routers), the DR performs a deterministic hash function over the
  2848.  
  2849.  
  2850. Semeria & Maufer                                               [Page 50]
  2851. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2852.  
  2853.  
  2854. ========================================================================
  2855.  
  2856.  
  2857.                                 Source (S)
  2858.                                 _|____ 
  2859.                                    |
  2860.                                    |
  2861.                                    #
  2862.                                   / \
  2863.                                  /   \
  2864.                                 /     \
  2865.                                #       #
  2866.                               /         \
  2867.              Designated      /           \
  2868.  Host      | Router         /             \  Rendezvous Point
  2869.       -----|- # - - - - - -#- - - - - - - -RP   for group G
  2870. (receiver) |  ----Join-->  ----Join-->
  2871.            |
  2872.  
  2873. LEGEND
  2874.  
  2875.    #   PIM Router                 RP  Rendezvous Point 
  2876.  
  2877. Figure 25: Host Joins a Multicast Group
  2878. ========================================================================
  2879.  
  2880.  
  2881. group's RP-set to uniquely determine the primary RP for the group.
  2882. (Otherwise, this is a dense-mode group and dense-mode forwarding rules
  2883. apply.)
  2884.  
  2885. After performing the lookup, the DR creates a multicast forwarding cache
  2886. entry for the (*, group) pair and transmits a unicast PIM-Join message
  2887. toward the primary RP for this specific group.  The (*, group) notation
  2888. indicates an (any source, group) pair.  The intermediate routers forward
  2889. the unicast PIM-Join message, creating a forwarding cache entry for the
  2890. (*, group) pair only if such a forwarding entry does not yet exist.
  2891. Intermediate routers must create a forwarding cache entry so that they
  2892. will be able to forward future traffic downstream toward the DR which
  2893. originated the PIM-Join message.
  2894.  
  2895. 8.1.2 Directly Attached Source Sends to a Group
  2896.  
  2897. When a source first transmits a multicast packet to a group, its DR
  2898. forwards the datagram to the primary RP for subsequent distribution
  2899. along the group's delivery tree.  The DR encapsulates the initial
  2900. multicast packets in a PIM-SM-Register packet and unicasts them toward
  2901. the primary RP for the group.  The PIM-SM-Register packet informs the
  2902. RP of a new source which causes the active RP to transmit PIM-Join
  2903. messages back toward the source's DR.  The routers between the RP and
  2904. the source's DR use the re- ceived PIM-Join messages (from the RP) to
  2905.  
  2906.  
  2907. Semeria & Maufer                                               [Page 51]
  2908. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2909.  
  2910.  
  2911. create forwarding state for the new (source, group) pair.  Now all
  2912. routers from the active RP for this sparse-mode group to the source's DR
  2913. will be able to forward future unencapsulated multicast packets from
  2914. this source subnetwork to the RP.  Until the (source, group) state has
  2915. been created in all the routers between the RP and source's DR, the DR
  2916. must continue to send the source's multicast IP packets to the RP as
  2917. unicast packets encapsulated within unicast PIM-Register packets.  The
  2918. DR may stop forwarding multicast packets encapsulated in this manner
  2919. once it has received a PIM-Register-Stop message from the active RP for
  2920. this group.  The RP may send PIM-Register-Stop messages if there are no
  2921. downstream receivers for a group, or if the RP has successfully joined
  2922. the (source, group) tree (which originates at the source's DR).
  2923.  
  2924.  
  2925. ========================================================================
  2926.  
  2927.                                 Source (S)
  2928.                                 _|____ 
  2929.                                    |
  2930.                                    |
  2931.                                    #
  2932.                                   / \
  2933.                                  /  ^\
  2934.                                 /    .\
  2935.                                #      ^#
  2936.                               /        .\
  2937.              Designated      /          ^\
  2938.  Host      | Router         /            .\ v             |       Host
  2939.       -----|-#- - - - - - -#- - - - - - - -RP- - - # - - -|-----
  2940. (receiver) |  <~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~>   | (receiver)
  2941.  
  2942. LEGEND
  2943.  
  2944.    #   PIM Router
  2945.    RP  Rendezvous Point 
  2946.        PIM-Register 
  2947. < . <  PIM-Join 
  2948. ~ ~ ~  Resend to group members 
  2949.  
  2950. Figure 26: Source sends to a Multicast Group 
  2951. ========================================================================
  2952.  
  2953.  
  2954. 8.1.3 Shared Tree (RP-Tree) or Shortest Path Tree (SPT)?
  2955.  
  2956. The RP-tree provides connectivity for group members but does not
  2957. optimize the delivery path through the internetwork.  PIM-SM allows
  2958. receivers to either continue to receive multicast traffic over the
  2959. shared RP-tree or over a source-based shortest-path tree that a receiver
  2960. subsequently creates.  The shortest-path tree allows a group member to
  2961. reduce the delay between itself and a particular source.
  2962.  
  2963.  
  2964. Semeria & Maufer                                               [Page 52]
  2965. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  2966.  
  2967.  
  2968. A PIM router with local receivers has the option of switching to the
  2969. source's shortest-path tree (i.e., source-based tree) once it starts
  2970. receiving data packets from the source.  The change- over may be
  2971. triggered if the data rate from the source exceeds a predefined
  2972. threshold.  The local receiver's DR does this by sending a Join
  2973. message toward the active source.  After the source-based SPT is
  2974. active, protocol mechanisms allow a Prune message for the same source
  2975. to be transmitted to the active RP, thus removing this router from the
  2976. shared RP-tree.  Alternatively, the DR may be configured to continue
  2977. using the shared RP-tree and never switch over to the source-based SPT,
  2978. or a router could perhaps use a different administrative metric to
  2979. decide if and when to switch to a source-based tree.
  2980.  
  2981.  
  2982. ========================================================================
  2983.  
  2984.                                 Source (S)
  2985.                                 _|____ 
  2986.                                    |
  2987.                                   %|
  2988.                                  % #
  2989.                                 % / \*
  2990.                                % /   \*
  2991.                               % /     \*
  2992.           Designated         % #       #*
  2993.            Router           % /         \*
  2994.                            % /           \*
  2995.  Host      |  <-% % % % % % /             \v
  2996.       -----|-#- - - - - - -#- - - - - - - -RP
  2997. (receiver) |  <* * * * * * * * * * * * * * *
  2998.            |
  2999.  
  3000.  
  3001. LEGEND
  3002.  
  3003.   #   PIM Router
  3004.   RP  Rendezvous Point
  3005. * *   RP Tree
  3006. % %   SPT Tree
  3007.  
  3008. Figure 27: Shared RP-Tree and Shortest Path Tree (SPT)
  3009. ========================================================================
  3010.  
  3011.  
  3012. 8.1.4 Unresolved Issues
  3013.  
  3014. It is important to note that PIM is an Internet draft.  This means that
  3015. it is still early in its development cycle and clearly a "work in
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021. Semeria & Maufer                                               [Page 53]
  3022. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  3023.  
  3024.  
  3025. progress."  There are several important issues that require further
  3026. research, engineering, and/or experimentation:
  3027.  
  3028.     o  PIM-SM requires routers to maintain a non-trivial 
  3029.        amount of state information to describe sources 
  3030.        and groups.
  3031.  
  3032.     o  Some multicast routers will be required to have
  3033.        both PIM interfaces and non-PIM interfaces.  The
  3034.        interaction and sharing of multicast routing
  3035.        information between PIM and other multicast
  3036.        routing protocols is still being defined.
  3037.  
  3038. Due to these reasons, especially the need to get operational experience
  3039. with the protocol, when PIM is finally published as an RFC, it will not
  3040. immediately be placed on the standards-track; rather it will be
  3041. classified as experimental.  After sufficient operational experience
  3042. has been obtained, presumably a slightly altered specification will be
  3043. defined that incorporates lessons learned during the experimentation
  3044. phase, and that new specification will then be placed on the standards
  3045. track.
  3046.  
  3047.  
  3048. 8.2 Core-Based Trees (CBT)
  3049.  
  3050. Core Based Trees is another multicast architecture that is based on a
  3051. shared delivery tree.  It is specifically intended to address the
  3052. important issue of scalability when supporting multicast applications
  3053. across the public Internet.  CBT is also designed to enable
  3054. interoperability between distinct "clouds" on the Internet, each
  3055. executing a different multicast routing protocol.
  3056.  
  3057. Similar to PIM, CBT is protocol-independent.  CBT employs the
  3058. information contained in the unicast routing table to build its shared
  3059. delivery tree.  It does not care how the unicast routing table is
  3060. derived, only that a unicast routing table is present. This feature
  3061. allows CBT to be deployed without requiring the presence of any specific
  3062. unicast routing protocol.
  3063.  
  3064. 8.2.1 Joining a Group's Shared Tree
  3065.  
  3066. When a multi-access network has more than one CBT router, one of the
  3067. routers is elected the designated router (DR) for the subnetwork.  The
  3068. DR is responsible for transmitting IGMP Queries and for initiating the
  3069. construction of a branch that links directly-attached group members to
  3070. the shared distribution tree for the group. The router on the subnetwork
  3071. with the lowest IP address is elected the IGMP Querier and also serves
  3072. as the CBT DR.
  3073.  
  3074. When the DR receives an IGMP Host Membership Report for a new group, it
  3075. transmits a CBT Join-Request to the next-hop router on the unicast path
  3076.  
  3077.  
  3078. Semeria & Maufer                                               [Page 54]
  3079. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  3080.  
  3081.  
  3082. to the "target core" for the multicast group. The identification of the
  3083. "target core" is based on static configuration.
  3084.  
  3085. The Join-Request is processed by all intermediate CBT routers, each of
  3086. which identifies the interface on which the Join-Request was received as
  3087. part of this group's delivery tree.  The intermediate routers continue
  3088. to forward the Join-Request toward the target core and to mark local
  3089. interfaces until the request reaches either 1) a core router, or 2) a
  3090. router that is already on the distribution tree for this group.
  3091.  
  3092. In either case, this router stops forwarding the Join-Request and
  3093. responds with a Join-Ack which follows the path back to the DR which
  3094. initiated the Join-Request.  The Join-Ack fixes the state in each of the
  3095. intermediate routers causing the interfaces to become part of the
  3096. distribution tree for the multicast group.  The newly constructed branch
  3097. is made up of non-core (i.e., "on-tree") routers providing the shortest
  3098. path between a member's directly attached DR and a core.
  3099.  
  3100. Once a branch is created, each child router monitors the status of its
  3101. parent router with a keepalive mechanism.  A child router periodically
  3102. unicasts a CBT-Echo-Request to its parent router which is then required
  3103. to respond with a unicast CBT-Echo-Reply message.
  3104.  
  3105.  
  3106. ========================================================================
  3107.  
  3108.  
  3109.                                             #- - - -#- - - - -#
  3110.                                                     |          \
  3111.                                                     |           #
  3112.                                                     |
  3113.                                                     # - - - - #
  3114.       member  |                                     |
  3115.        host --|                                     |
  3116.               |     --Join-->  --Join-->  --Join--> |
  3117.               |- [DR] - - - [:] - - - -[:] - - - - [@]
  3118.               |     <--ACK--   <--ACK--   <--ACK--
  3119.               |
  3120.  
  3121.  
  3122.      LEGEND
  3123.  
  3124.         [DR]  CBT Designated Router
  3125.          [:]  CBT Router
  3126.          [@]  Target Core Router
  3127.           #   CBT Router that is already on the shared tree
  3128.  
  3129.  
  3130. Figure 28: CBT Tree Joining Process
  3131. ========================================================================
  3132.  
  3133.  
  3134.  
  3135. Semeria & Maufer                                               [Page 55]
  3136. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  3137.  
  3138.  
  3139. It is only necessary to implement a single "keepalive" mechanism on each
  3140. link regardless of the number of multicast groups that are sharing the
  3141. link.  If for any reason the link between the child and parent should
  3142. fail, the child is responsible for re-attaching itself and its
  3143. downstream children to the shared delivery tree.
  3144.  
  3145. 8.2.2 Primary and Secondary Cores
  3146.  
  3147. Instead of a single active "core" or "rendezvous point," CBT may have
  3148. multiple active cores to increase robustness.  The initiator of a
  3149. multicast group elects one of these routers as the Primary Core, while
  3150. all other cores are classified as Secondary Cores. The Primary Core must
  3151. be uniquely identified for the entire multi- cast group.
  3152.  
  3153. Whenever a group member joins to a secondary core, the secondary core
  3154. router ACKs the Join-Request and then joins toward the Primary Core.
  3155. Since each Join-Request contains the identity of the Primary Core for
  3156. the group, the secondary core can easily determine the identity of the
  3157. Primary Core for the group.  This simple process allows the CBT tree
  3158. to become fully connected as individual members join the multicast
  3159. group.
  3160.  
  3161.  
  3162. ========================================================================
  3163.  
  3164.  
  3165.                   +----> [PC] <-----------+
  3166.                   |       ^               |
  3167.              Join |       | Join          | Join
  3168.                   |       |               |
  3169.                   |       |               |
  3170.          [SC]    [SC]    [SC]    [SC]    [SC] <-----+
  3171.                   ^       ^               ^         |
  3172.                   |       |               |         |
  3173.              Join |       | Join     Join |    Join |
  3174.                   |       |               |         |
  3175.                   |       |               |         |
  3176.                  [x]     [x]             [x]       [x]
  3177.                   :       :               :         :
  3178.                 member  member          member    member
  3179.                  host    host            host      host
  3180.  
  3181.  
  3182.      LEGEND
  3183.  
  3184.      [PC]  Primary Core Router
  3185.      [SC]  Secondary Core Router
  3186.       [x]  Member-hosts' directly-attached routers
  3187.  
  3188. Figure 29: Primary and Secondary Core Routers
  3189. ========================================================================
  3190.  
  3191.  
  3192. Semeria & Maufer                                               [Page 56]
  3193. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  3194.  
  3195.  
  3196. 8.2.3 Data Packet Forwarding
  3197.  
  3198. After a Join-Ack is received by an intermediate router, it creates a CBT
  3199. forwarding information base (FIB) entry listing all interfaces that
  3200. are part of the specified group's delivery tree.  When a CBT router
  3201. receives a packet addressed to the multicast group, it simply forwards
  3202. the packet over all outgoing interfaces as specified by the FIB entry
  3203. for the group.
  3204.  
  3205. A CBT router may forward a multicast data packet in either "CBT Mode" or
  3206. "Native Mode."
  3207.  
  3208.     o  CBT Mode is designed for operation in heterogeneous
  3209.        environments that may include non-multicast capable
  3210.        routers or mrouters that do not implement (or are not
  3211.        configured for) CBT.  Under these conditions, CBT Mode
  3212.        is used to encapsulate the data packet in a CBT header
  3213.        and "tunnel" it between CBT-capable routers (or islands).
  3214.  
  3215.     o  Native Mode is designed for operation in a homogeneous
  3216.        environment where all routers implement the CBT routing
  3217.        protocol and no specialized encapsulation is required.
  3218.  
  3219. 8.2.4 Non-Member Sending
  3220.  
  3221. Similar to other multicast routing protocols, CBT does not require that
  3222. the source of a multicast packet be a member of the multicast group.
  3223. However, for a multicast data packet to reach the core tree for the
  3224. group, at least one CBT-capable router must be present on the non-member
  3225. source station's subnetwork.  The local CBT-capable router employs CBT
  3226. Mode encapsulation and unicasts the data packet toward a core for the
  3227. multicast group.  When the encapsulated packet encounters an on-tree
  3228. router (or the target core), the packet is forwarded as required by the
  3229. CBT specification.
  3230.  
  3231. 8.2.5 Emulating Shortest-Path Trees
  3232.  
  3233. The most common criticism of shared tree protocols is that they offer
  3234. sub-optimal routes and that they create high levels of traffic
  3235. concentration at the core routers.  One recent proposal in CBT
  3236. technology is a mechanism to dynamically reconfigure the core-based tree
  3237. so that it becomes rooted at the source station's local CBT router. In
  3238. effect, the CBT becomes a source-based tree but still remains a CBT (one
  3239. with a core that now happens to be adjacent to the source).  If
  3240. successfully tested and demonstrated, this technique could allow CBT to
  3241. emulate a shortest-path tree, providing more-optimal routes and reducing
  3242. traffic concentration among the cores.  These new mechanisms are being
  3243. designed with an eye toward preserving CBT's simplicity and scalability,
  3244. while addressing key perceived weaknesses of the CBT protocol.  Note
  3245. that PIM-SM also has a similar technique whereby a source-based delivery
  3246. tree can be selected by certain receivers.
  3247.  
  3248.  
  3249. Semeria & Maufer                                               [Page 57]
  3250. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  3251.  
  3252.  
  3253. For this mechanism, every CBT router is responsible for monitoring the
  3254. transmission rate and duration of each source station on a directly
  3255. attached subnetwork.  If a pre-defined threshold is exceeded, the local
  3256. CBT router may initiate steps to transition the CBT tree so that the
  3257. group's receivers become joined to a "core" that is local to the source
  3258. station's subnetwork.  This is accomplished by having the local router
  3259. encapsulate traffic in CBT Mode and place its own IP address in the
  3260. "first-hop router" field.  All routers on the CBT tree examine the
  3261. "first-hop router" field in every CBT Mode data packet.  If this field
  3262. contains a non-NULL value, each router transmits a Join-Request toward
  3263. the address specified in the "first-hop router" field.  It is important
  3264. to note that on the publication date of this "Introduction to IP
  3265. Multicast Routing" RFC, these proposed mechanisms to support dynamic
  3266. source-migration of cores have not yet been tested, simulated, or
  3267. demonstrated.
  3268.  
  3269. 8.2.6 CBT Multicast Interoperability
  3270.  
  3271. Multicast interoperability is being defined in several stages. Stage 1
  3272. is concerned with the attachment of non-DVMRP stub domains to a DVMRP
  3273. backbone (e.g., the MBone).  Work is currently underway in the IDMR
  3274. working group to describe the attachment of stub-CBT and stub-PIM
  3275. domains to a DVMRP backbone.  The next stage will focus on developing
  3276. methods of connecting non-DVMRP transit domains to a DVMRP backbone.
  3277.  
  3278.  
  3279. ========================================================================
  3280.  
  3281.  
  3282.          /---------------\        /---------------\
  3283.          |               |        |                |
  3284.          |               |        |                |
  3285.          |    DVMRP      |--[BR]--|  CBT Domain    |
  3286.          |   Backbone    |        |                |
  3287.          |               |        |                |
  3288.          \---------------/        \---------------/
  3289.  
  3290.  
  3291.      Figure 30: Domain Border Routers (BRs)
  3292. ========================================================================
  3293.  
  3294.  
  3295. CBT interoperability will be achieved through the deployment of domain
  3296. border routers (BRs) which enable the forwarding of multicast traffic
  3297. between the CBT and DVMRP domains.  The BR implements DVMRP and CBT on
  3298. different interfaces and is responsible for forwarding data across the
  3299. domain boundary.
  3300.  
  3301. The BR is also responsible for exporting selected routes out of the CBT
  3302. domain into the DVMRP domain.  While the CBT domain never needs to
  3303. import routes, the DVMRP backbone needs to import routes to sources of
  3304.  
  3305.  
  3306. Semeria & Maufer                                               [Page 58]
  3307. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  3308.  
  3309.  
  3310. traffic from within the CBT domain.  The routes must be imported so that
  3311. DVMRP can perform the RPF check (which is required for construction of
  3312. its forwarding table).
  3313.  
  3314.  
  3315. 9. REFERENCES
  3316.  
  3317. 9.1 Requests for Comments (RFCs)
  3318.  
  3319.     1075   "Distance Vector Multicast Routing Protocol," D. Waitzman,
  3320.             C. Partridge, and S. Deering, November 1988.
  3321.  
  3322.     1112   "Host Extensions for IP Multicasting," Steve Deering,
  3323.             August 1989.
  3324.  
  3325.     1583   "OSPF Version 2," John Moy, March 1994.
  3326.  
  3327.     1584   "Multicast Extensions to OSPF," John Moy, March 1994.
  3328.  
  3329.     1585   "MOSPF: Analysis and Experience," John Moy, March 1994.
  3330.  
  3331.     1700    "Assigned Numbers," J. Reynolds and J. Postel, October
  3332.              1994. (STD 2)
  3333.  
  3334.     1800    "Internet Official Protocol Standards," Jon Postel,
  3335.              Editor, July 1995.
  3336.  
  3337.     1812    "Requirements for IP version 4 Routers," Fred Baker,
  3338.              Editor, June 1995
  3339.  
  3340. 9.2 Internet Drafts
  3341.  
  3342.    "Core Based Trees (CBT) Multicast: Architectural Overview," 
  3343.     <draft-ietf-idmr-cbt-arch-03.txt>, A. J. Ballardie, September 19, 
  3344.     1996.
  3345.  
  3346.    "Core Based Trees (CBT) Multicast: Protocol Specification," <draft-
  3347.     ietf-idmr-cbt-spec-06.txt>, A. J. Ballardie, November 21, 1995.
  3348.  
  3349.    "Hierarchical Distance Vector Multicast Routing for the MBone,"
  3350.     Ajit Thyagarajan and Steve Deering, July 1995.
  3351.  
  3352.    "Internet Group Management Protocol, Version 2," <draft-ietf-
  3353.     idmr-igmp-v2-05.txt>, William Fenner, October 25, 1996.
  3354.  
  3355.    "Internet Group Management Protocol, Version 3," <draft-cain-
  3356.     igmp-00.txt>, Brad Cain, Ajit Thyagarajan, and Steve Deering, 
  3357.     Expires March 8, 1996.
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363. Semeria & Maufer                                               [Page 59]
  3364. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  3365.  
  3366.  
  3367.    "Protocol Independent Multicast (PIM): Motivation and Architecture,"
  3368.     <draft-ietf-idmr-pim-arch-04.ps>, S. Deering, D. Estrin,
  3369.     D. Farinacci, V. Jacobson, C. Liu, and L. Wei, September 11, 1996.
  3370.  
  3371.    "Protocol Independent Multicast (PIM), Dense Mode Protocol
  3372.     Specification," <draft-ietf-idmr-pim-dm-spec-04.ps>, D. Estrin,
  3373.     D. Farinacci, V. Jacobson, C. Liu, L. Wei, P. Sharma, and
  3374.     A. Helmy, September 16, 1996.
  3375.  
  3376.    "Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol
  3377.     Specification," <draft-ietf-idmr-pim-sm-spec-09.ps>, S. Deering,
  3378.     D. Estrin, D. Farinacci, V. Jacobson, C. Liu, L. Wei, P. Sharma,
  3379.     and A Helmy, September 19, 1996.
  3380.  
  3381. 9.3 Textbooks
  3382.  
  3383.     Comer, Douglas E. Internetworking with TCP/IP Volume 1 Principles,
  3384.     Protocols, and Architecture Second Edition, Prentice Hall, Inc.
  3385.     Englewood Cliffs, New Jersey, 1991
  3386.  
  3387.     Huitema, Christian. Routing in the Internet, Prentice Hall, Inc.
  3388.     Englewood Cliffs, New Jersey, 1995
  3389.  
  3390.     Stevens, W. Richard. TCP/IP Illustrated: Volume 1 The Protocols,
  3391.     Addison Wesley Publishing Company, Reading MA, 1994
  3392.  
  3393.     Wright, Gary and W. Richard Stevens. TCP/IP Illustrated: Volume 2
  3394.     The Implementation, Addison Wesley Publishing Company, Reading MA,
  3395.     1995
  3396.  
  3397. 9.4 Other
  3398.  
  3399.     Deering, Steven E. "Multicast Routing in a Datagram
  3400.     Internetwork," Ph.D. Thesis, Stanford University, December 1991.
  3401.  
  3402.     Ballardie, Anthony J. "A New Approach to Multicast Communication
  3403.     in a Datagram Internetwork," Ph.D. Thesis, University of London,
  3404.     May 1995.
  3405.  
  3406.  
  3407. 10. SECURITY CONSIDERATIONS
  3408.  
  3409. Security issues are not discussed in this memo.
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420. Semeria & Maufer                                               [Page 60]
  3421. INTERNET-DRAFT    Introduction to IP Multicast Routing      January 1997
  3422.  
  3423.  
  3424. 11. AUTHORS' ADDRESSES
  3425.  
  3426.     Chuck Semeria
  3427.       3Com Corporation
  3428.       5400 Bayfront Plaza
  3429.       P.O. Box 58145
  3430.       Santa Clara, CA 95052-8145
  3431.  
  3432.       Phone:  +1 408 764-7201
  3433.       Email:  <Chuck_Semeria@3Com.com>
  3434.  
  3435.  
  3436.     Tom Maufer
  3437.       3Com Corporation
  3438.       5400 Bayfront Plaza
  3439.       P.O. Box 58145
  3440.       Santa Clara, CA 95052-8145
  3441.  
  3442.       Phone:  +1 408 764-8814
  3443.       Email:  <maufer@3Com.com>
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477. Semeria & Maufer                                               [Page 61]
  3478.  
  3479.