idnits 2.17.1 draft-ietf-idmr-pim-dm-spec-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-20) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity. ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 12 longer pages, the longest (page 2) being 60 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Abstract section. ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** There are 200 instances of weird spacing in the document. Is it really formatted ragged-right, rather than justified? ** There are 4 instances of too long lines in the document, the longest one being 2 characters in excess of 72. == There are 3 instances of lines with multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 17 has weird spacing: '... Drafts are ...' == Line 18 has weird spacing: '...cuments of t...' == Line 19 has weird spacing: '...ups may also ...' == Line 23 has weird spacing: '... Drafts may ...' == Line 24 has weird spacing: '...iate to use ...' == (195 more instances...) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (January 17, 1996) is 10321 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? 'Deering95' on line 526 looks like a reference -- Missing reference section? 'Deering91' on line 519 looks like a reference -- Missing reference section? 'DVMRP' on line 523 looks like a reference -- Missing reference section? 'RFC1112' on line 534 looks like a reference -- Missing reference section? 'Deering94b' on line 530 looks like a reference Summary: 12 errors (**), 0 flaws (~~), 9 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group Deborah Estrin (USC) 2 Internet Draft Dino Farinacci (CISCO) 3 Van Jacobson (LBL) 4 Chinggung Liu (USC) 5 Liming Wei (USC) 6 Puneet 7 Sharma (USC) 8 Ahmed Helmy (USC) 10 draft-ietf-idmr-pim-dm-spec-03.txt January 17, 1996 12 Protocol Independent Multicast-Dense Mode (PIM-DM): Protocol 13 Specification 15 Status of This Memo 17 This document is an Internet Draft. Internet Drafts are working 18 documents of the Internet Engineering Task Force (IETF), its Areas, 19 and its Working Groups. (Note that other groups may also distribute 20 working documents as Internet Drafts). 22 Internet Drafts are draft documents valid for a maximum of six 23 months. Internet Drafts may be updated, replaced, or obsoleted by 24 other documents at any time. It is not appropriate to use Internet 25 Drafts as reference material or to cite them other than as a 26 ``working'' draft'' or ``work in progress.'' 28 Please check the I-D abstract listing contained in each Internet 29 Draft directory to learn the current status of this or any other 30 Internet Draft. 32 1 Introduction 34 This specification defines a multicast routing algorithm for 35 multicast groups that are densely distributed across an internet. The 36 protocol is unicast routing protocol independent. It is based on the 37 PIM sparse-mode [Deering95] and employs the same packet formats. This 38 protocol is called dense-mode PIM. The design is based largely on 39 foundational work by Deering [Deering91]. 41 2 PIM-DM Protocol Overview 43 Dense-mode PIM uses Reverse Path Multicasting (RPM). RPM is a 44 technique in which a multicast datagram is forwarded if the receiving 45 interface is one used to forward unicast datagrams to the source of 46 the datagram. The multicast datagram is then forwarded out all other 47 interfaces. Dense-mode PIM builds source-based acyclic trees. 49 Dense-mode PIM is data driven, whereby it is assumed that all 50 downstream systems want to receive multicast datagrams. For densely 51 populated groups this is optimal. If some areas of the network do not 52 have group members, dense-mode PIM will prune branches of the 53 source-based tree. When group members leave the group, branches will 54 also be pruned. 56 Unlike DVMRP [DVMRP] packets are forwarded on all outgoing interfaces 57 (except the incoming) until pruning and truncation occurs. DVMRP 58 makes use of parent-child data to reduce the number of outgoing 59 interfaces used before pruning. In both protocols, once truncation 60 occurs pruning state is maintained and packets are only forwarded 61 onto outgoing interfaces that in fact reach downstream members. 63 We chose to accept additional overhead in favor of reduced dependency 64 on the unicast routing protocol, and reduced overall protocol 65 complexity. 67 Dense-mode PIM differs from sparse-mode PIM in two essential points: 68 1) there are no periodic joins transmitted, only explicit triggered 69 grafts/prunes, and 2) there is no Rendezvous Point (RP). 71 3 Background 73 Reverse Path Broadcasting (RPB) is different from RPF because 74 duplicate packets are avoided in the RPB that are sent in RPF. In 75 general, the number of duplicates sent on a link can be as high as 76 the number of routers directly connected to that link. 78 Reverse Path Multicasting (RPM) is different from RPF or RPB because 79 pruning information is propagated upstream. Leaf routers must know 80 that they are leaf routers so that in response to no IGMP reports for 81 a group, those leaf routers know to initiate the prune process. 83 In DVMRP there are routing protocol dependencies for a) building a 84 parent-child database so that duplicate packets can be eliminated, b) 85 eliminating duplicate packets on multi-access LANs, and c) sending 86 "split horizon with poison reverse" information to detect that a 87 router is not a leaf router (if a router does not receive any poison 88 reverse messages from other routers on a multi-access LAN then that 89 router acts as a leaf router for that LAN and knows to prune if there 90 are not IGMP reports on that LAN for a group G). 92 Dense-mode PIM will accept some duplicate packets in order to avoid 93 being routing protocol dependent and avoid building a child parent 94 database. 96 We introduce a simple prune mechanism for reducing duplicates on 97 multi-access LANs. We introduce a simple graft mechanism to reduce 98 join latency on previously pruned branches of a source-based 99 multicast tree. 101 We introduce an alternative leaf-router detection mechanism that does 102 not rely on a specific unicast routing protocol mechanism such as 103 split horizon with poison reverse. 105 These mechanisms are described below. 107 4 Protocol Description 109 4.1 Leaf network detection 111 In DVMRP poison reverse information tells a router that other routers 112 on the shared LAN use the LAN as their incoming interface. As a 113 result, even if the DR for that LAN does not hear any IGMP Reports 114 for a group, the DR will know to continue to forward multicast data 115 packets to that group, and NOT to send a prune message to its 116 upstream neighbor. 118 Since dense-mode PIM does not rely on any unicast routing protocol 119 mechanisms, this problem is solved by using prune messages sent 120 upstream on a LAN. If a downstream router on a LAN determines that it 121 has no more downstream members for a group, then it can multicast a 122 prune message on the LAN. 124 A leaf router detects that there are no members downstream when it is 125 the only router on a network and there are no IGMP Host-Report 126 messages received from hosts. It determines there are no other 127 routers by not receiving PIM Router-Query messages. 129 When a prune message is sent on an upstream LAN, it is data link 130 multicast and IP addressed to the all routers group address 131 224.0.0.2. The router to process the prune will be indicated by 132 inserting its address in the "Address" field of the message. The 133 address is obtained by an RPF lookup from the unicast routing table. 134 When the prune message is sent, the expected upstream router will 135 schedule a deletion request of the LAN from its outgoing interfaces 136 for the (S,G) entry from the prune list. The suggested delay time 137 before deletion should be greater than 3 seconds. 139 Note the special case for equal-cost paths. When an upstream router 140 is chosen by an RPF lookup there may be equal-cost paths to reach the 141 source. The higher IP addressed system is always chosen. If the 142 unicast routing protocol does not store all available equal-cost 143 paths in the routing table, the "Address" field may contain the 144 address of the wrong upstream router. To avoid this situation, the 145 "Address" field may optionally be set to 0.0.0.0 which means that all 146 upstream routers (the ones that have the LAN as an outgoing interface 147 for the (S,G) entry) may process the packet. 149 Other routers on the LAN will hear the prune message and respond with 150 a join if they still expect multicast datagrams from the expected 151 upstream router. The PIM-Join message is data link multicast and IP 152 addressed to the all routers group address 224.0.0.2. The router to 153 process the join will be indicated by inserting its address in the 154 "Address" field of the message. The address is determined by an RPF 155 lookup from the unicast routing table. When the expected router 156 receives the join message, it will cancel the deletion request. 158 Routers will randomly generate a join message delay timer. If a join 159 is heard from another router before a router sends its own, it will 160 cancel sending its own join. This will reduce traffic on the LAN. The 161 suggested join delay timer should be from 1 to 3 seconds. 163 If the expected upstream router does not receive any PIM-Join 164 messages before the schedule time for the deletion request expires, 165 it deletes the outgoing LAN interface from the (S,G) multicast 166 forwarding entry. 168 If an (S,G) entry contains an empty outgoing interface list, a prune 169 is sent upstream. Prune information is flushed periodically. This (or 170 a loss of state) causes the packets to be sent in RPF mode again 171 which in turn triggers prune messages. 173 4.2 New members joining an existing group 175 If a router is directly connected to a host that wants to become a 176 member of a group, the router may optionally, send a PIM-Graft 177 message towards known sources. This allows join latency to be reduced 178 below that indicated by the relatively large timeout value suggested 179 for prune information. 181 If a receiving router has state for group G, it adds the interface on 182 which the IGMP Report or PIM-Graft was received for all known (S,G). 183 If the (S,G) entry was a negative cache entry, the router sends a 184 PIM-Graft message upstream towards S. 186 If routers have no group state, they do nothing since dense-mode PIM 187 will deliver a multicast datagram to all interfaces when creating 188 state for a group. 190 Any routers receiving the PIM-Graft message, uses the received 191 interface as an incoming interface for any (S,G) entry, will not add 192 the interface to the outgoing interface list. 194 The PIM-Graft message is the only PIM message that uses a positive 195 acknowledgment strategy. Senders of PIM-Graft messages unicast them 196 to their upstream RPF neighbors. The neighbor processes each (S,G) 197 and immediately acknowledges each (S,G) in a PIM-GraftAck message. 198 This is relatively easy, since the receiver simply changes the IGMP 199 code from Graft to Graft-Ack and unicasts the original packet back to 200 the source. The sender periodically retransmits the PIM-Graft message 201 for any (S,G) that has not been acknowledged. Note that the sender 202 need not keep a retransmission list for each neighbor since PIM- 203 Grafts are only sent to the RPF neighbor. Only the (S,G) entry needs 204 to be tagged for retransmission. 206 4.3 Protocol Scenario 208 A multicast datagram is sent by a source host. If a receiving router 209 has no forwarding cache state for the source sending to group G, it 210 creates an (S,G) entry. The incoming interface for (S,G) is 211 determined by doing an RPF lookup in the unicast routing table. The 212 (S,G) outgoing interface list contains dense-mode configured 213 interfaces that have PIM routers present or host members for group G. 215 A PIM-Prune message is triggered when an (S,G) entry is built with an 216 empty outgoing interface list. This type of entry is called a 217 negative cache entry. This can occur when a leaf router has no local 218 members for group G or a prune message was received from a downstream 219 router which causes the outgoing interface list to become NULL. PIM- 220 Prune messages are never sent on LANs in response to a received 221 multicast packet that is associated with a negative cache entry. 223 PIM-Prune messages received on a point to point link are not delayed 224 before processing as they are in the LAN procedure. If the prune is 225 received on an interface that is in the outgoing interface list, it 226 is deleted immediately. Otherwise the prune is ignored. 228 When a multicast datagram is received on the incorrect LAN interface 229 (i.e. not the RPF interface) the packet is silently discarded. If it 230 is received on an incorrect point-to-point interface, Prunes may be 231 sent in a rate-limited fashion. Prunes may also be rate-limited on 232 point-to-point interfaces when a multicast datagram is received for a 233 negative cache entry. 235 4.4 Designated Router election 237 The dense-mode PIM designated router (DR) election uses the same 238 procedure as in sparse-mode PIM. A DR is necessary for each multi- 239 access LAN so a single router sends IGMP Host-Query messages to 240 solicit host group membership. 242 Each PIM router connected to a multi-access LAN should transmit PIM 243 Router-Query messages every 30 seconds onto the LAN to support DR 244 election. The highest addressed router becomes the DR. The discovered 245 PIM routers should be timed out after 90 seconds. If the DR goes 246 down, a new DR is elected. 248 DR election is only necessary on multi-access networks. It is not 249 required that PIM Query messages be sent on point-to-point links. 251 4.5 Parallel paths to a source 253 Two or more routers may receive the same multicast datagram that was 254 replicated upstream. In particular, if two routers have equal cost 255 paths to a source and are connected on a common multi-access network, 256 duplicate datagrams will travel downstream onto the LAN. Dense-mode 257 PIM will detect such a situation and will not let it persist. 259 If a router receives a multicast datagram on a multi-access LAN from 260 a source whose corresponding (S,G) outgoing interface list includes 261 the received interface, the packet must be a duplicate. In this case 262 a single forwarder must be elected. Using PIM Assert messages 263 addressed to 224.0.0.2 on the LAN, upstream routers can decide which 264 one becomes the forwarder. Downstream routers listen to the Asserts 265 so they know which one was elected (i.e. typically this is the same 266 as the downstream router's RPF neighbor but there are circumstances 267 when using different unicast protocols where this might not be the 268 case). 270 The upstream router elected is the one that has the shortest distance 271 to the source. Therefore, when a packet is received on an outgoing 272 interface a router will send an Assert packet on the LAN indicating 273 what metric it uses to reach the source of the data packet. The 274 router with the smallest numerical metric will become the forwarder. 275 All other upstream routers will delete the interface from their 276 outgoing interface list. The downstream routers also do the 277 comparison in case the forwarder is different than the RPF neighbor. 278 This is important so downstream routers send subsequent Prunes or 279 Grafts to the correct neighbor. 281 Associated with the metric is a metric preference value. This is 282 provided to deal with the case where the upstream routers may run 283 different unicast routing protocols. The numerically smaller metric 284 preference is always preferred. The metric preference should be 285 treated as the high-order part of an Assert metric comparison. 286 Therefore, a metric value can be compared with another metric value 287 provided both metric preferences are the same. A metric preference 288 can be assigned per unicast routing protocol and needs to be 289 consistent for all routers on the LAN. 291 The following Assert rules are provided: 293 Multicast packet received on outgoing interface: 295 1 Do unicast routing table lookup on source IP address from 296 data packet. 298 2 Send Assert on interface for source IP address from data 299 packet, include metric preference of routing protocol and 300 metric from routing table lookup. 302 3 If route is not found, Use metric preference of 0x7fffffff 303 and metric 0xffffffff. 305 Asserts received on outgoing interface: 307 1 Compare metric received in Assert with the one you would 308 have advertised in an Assert. If the value in the Assert is 309 less than your value, prune the interface. If the value is 310 the same, compare IP addresses, if your address is less 311 than the Assert sender, prune the interface. 313 2 If you have won the election and there are directly 314 connected members on the LAN, keep the interface in your 315 outgoing interface list. You are the forwarder for the LAN. 317 3 If you have won the election but there are no directly 318 connected members on the LAN, schedule to prune the 319 interface. The LAN might be a stub LAN with no members (and 320 no downstream routers). If no subsequent Joins are 321 received, delete the interface from the outgoing interface 322 list. Otherwise keep the interface in your outgoing 323 interface. You are the forwarder for the LAN. 325 Asserts received on incoming interface: 327 1 Downstream routers will select the upstream router with the 328 smallest metric as their RPF neighbor. If two metrics are 329 the same, the highest IP address is chosen to break the 330 tie. 332 2 If the downstream routers have downstream members, they 333 must schedule a join to inform the upstream router packets 334 should be forwarded on the LAN. This will cause the 335 upstream forwarder to cancel its delayed pruning of the 336 interface. 338 4.6 Timing out multicast forwarding entries 340 Each (S,G) entry has timers associated with it. During this time 341 source-based tree state is kept in the network. 343 There should be multiple timers set. One for the multicast 344 routing entry itself and one for each interface in the outgoing 345 interface list. The outgoing interface stays active in the list 346 as long as there is multicast traffic for the entry or there is 347 an explicit Graft received on the interface. If neither occurs 348 the interface will be deleted from the list after 3 minutes, by 349 default. 351 Once all interfaces in the outgoing interface list are not 352 active, a timer should be set for the (S,G) entry. During this 353 time the entry is known as a negative state entry at which a 354 prune is triggered. Once the (S,G) entry times out, it can be 355 recreated when the next multicast packet or join arrives. 357 4.7 Source address aggregation and Pruning 359 An (S,G) entry in the multicast routing table will contain a 360 source address to be as specific as necessary depending where 361 the router is in relation to a source. Close to the source, this 362 will typically be a subnet number. Far from the source, it may 363 be a network number or a supernet route. Prunes sent may be 364 rather ineffective if the source being pruned is not specific 365 enough. 367 For example, initially a multicast datagram may be flooded 368 throughout an Autonomous System (AS). Within the AS, there is 369 complete subnet information in the unicast routing tables of all 370 routers. Once the datagram exits the AS, it is likely there are 371 routers that don't have subnet information. If these routers 372 send Prunes for aggregate sources, routers close to the source 373 will not know where to reach the source since they have more 374 specific information than what was provided in the Prune 375 message. This results in traffic being sent further on a branch 376 of the multicast tree than necessary. 378 The problem is fixed by sending source host specific prunes. 379 However, to maintain proper scaling of routing information, each 380 router along the path performs longest match lookups for the 381 source specified in the Prune message. Therefore, they keep the 382 level of aggregation that best suits thier position to the 383 source in the topology. 385 A source host specific Prune is encoded by copying the 386 instigating source IP address from the multicast datagram into 387 the PIM message using a mask length of 32. 389 5 Packet Formats 391 RFC-1112, see [RFC1112], specifies two types of IGMP packets for 392 hosts and routers to convey multicast group membership and 393 reachability information. An IGMP Host-Query packet is 394 transmitted periodically by routers to ask hosts to report which 395 multicast groups they are members of. An IGMP Host- Report 396 packet is transmitted by hosts in response to received queries 397 advertising group membership. 399 This section introduces new types of IGMP packets that are used 400 by PIM-SM routers. All PIM-SM control mesages are encoded in 401 IGMP messages. 403 The fixed header packet format is: 405 0 1 2 3 406 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 407 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 408 |Version| Type | Code | Checksum | 409 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 410 | Address | 411 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 413 Version 414 This memo specifies version 1 of IGMP. 416 Type There are nine types of IGMP messages: 418 1 = Host Membership Query 419 2 = Host Membership Report 420 3 = Router DVMRP Messages 421 4 = Router PIM Messages 422 5 = Cisco Trace Messages 423 6 = New Host Membership Report 424 7 = Host Membership Leave 425 14 = Mtrace Response 426 15 = Mtrace Request 428 Code Codes for specific message types. Used only by DVMRP and 429 PIM. PIM codes are: 431 0 = Router-Query 432 1 = Register 433 2 = Register-Ack 434 3 = Join/Prune 435 4 = RP-Reachability 436 5 = Assert 437 6 = Graft 438 7 = Graft-Ack 439 8 = RP-Advertisement 440 9 = Ping 442 Checksum 443 The checksum is the 16-bit one's complement of the one's 444 complement sum of the entire IGMP message. For computing 445 the checksum, the checksum field is zeroed. 447 Address 448 PIM Version field when IGMP type is PIM. 450 0 1 2 3 451 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 452 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 453 |PIM Ver| Reserved | 454 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 456 PIM Ver 457 PIM Version number is 2. 459 Reserved 460 Transmitted as zero, ignored on receipt. 462 { For all the packet format details, refer to the PIM sparse- 463 mode specification.} 464 5.1 PIM-Query Message 466 It is sent periodically by PIM routers on all interfaces. 468 5.2 PIM-SM-Register Message 470 Used in sparse-mode. Refer to PIM sparse-mode specification. 472 5.3 PIM-SM-Register-Ack Message 474 Used in sparse-mode. Refer to PIM sparse-mode specification. 476 5.4 Join/Prune Message 478 It is sent by routers towards upstream sources. A join creates 479 forwarding state and a prune destroys forwarding state. Joins 480 are sent to build source specific trees. Prunes are sent to 481 prune source trees when members leave groups as well as sources 482 that do not use the shared tree. 484 5.5 PIM-SM-RP-Reachability Message 486 Used in sparse-mode. Refer to PIM sparse-mode specification. 488 5.6 PIM-Assert Message 490 The PIM-Assert message is sent when a multicast data packet is 491 received on an outgoing interface corresponding to the (S,G) or 492 (*,G) associated with the source. 494 5.7 PIM-Graft Message 496 This message is sent by a downstream router to a neighboring 497 upstream router to reinstate a previously pruned branch of a 498 source tree. This is done for dense-mode groups only. The format 499 is the same as a Join/Prune message. 501 5.8 PIM-Graft-Ack Message 503 Sent in response to a received Graft message. The Graft-Ack is 504 only sent if the interface in which the Graft was received is 505 not the incoming interface for the respective (S,G). This is 506 done for dense-mode groups only. The format is the same as 507 Join/Prune message. 509 5.9 PIM-SM-PING and PING-Response Message 511 Used in sparse-mode. Refer to PIM sparse-mode specification. 513 5.10 RP-Advertisement 515 Used in sparse-mode. Refer to PIM sparse-mode specification. 517 6 References 519 [Deering91] S.E. Deering. Multicast Routing in a Datagram 520 Internetwork. PhD thesis, Electrical Engineering Dept., Stanford 521 University, December 1991. 523 [DVMRP] RFC 1075, Distance Vector Multicast Routing Protocol. 524 Waitzman, D., Partridge, C., Deering, S.E, November 1988 526 [Deering95] Protocol Independent Multicast Sparse-Mode (PIM-SM): 527 Protocol Specification. S. Deering, D. Estrin, D. Farinacci, V. 528 Jacobson, G. Liu, L. Wei, P. Sharma, A. Helmy, September 1995 530 [Deering94b] An Architecture for Wide-Area Multicast Routing, S. 531 Deering, D. Estrin, D. Farinacci, V. Jacobson, G. Liu,L. Wei, 532 USC Technical Report, available from authors, Feburary 1994. 534 [RFC1112] Host Extensions for IP Multicasting, Network Working 535 Group, RFC 1112, S. Deering, August 1989 537 References