Submitted to RAMA Working Group D. Ooms INTERNET DRAFT W. Livens Alcatel June, 1999 Expires December, 1999 Connectionless Multicast Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This draft proposes a new mechanism for multipoint-to-multipoint (mp2mp) communication in IP networks, namely Connectionless Multicast (CLM). Instead of a group address, a list of member addresses is encoded in the data packets. The current Host Group Model [DEER] for IP multicast requires a globally unique address for each session. To support this model, multicast routing protocols create state per group in the routers. Like any connection oriented protocol, it suffers from scalability problems in backbone networks where the number of groups to be maintained can be huge. CLM does not have this problem, and additionally has some other advantages. Its limitation lies in the number of members per multicast session. Ooms, et al. Expires December 1999 [Page 1] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 The pros and cons of CLM are described and some suggestions are made to alleviate the disadvantages. Furthermore different modes of operation are described: an end-to-end mode as well as an interworking mode with PIM-SM and Simple Multicast. Both IPv4 and IPv6 are considered. Table of Contents 1. Introduction 2. Description 3. Working modes 3.1. Simple Multicast 3.2. PIM-SM 3.3. End-to-end 4. IP Protocol extensions 4.1. IPv4 4.2. IPv6 5. Caching 6. Compression 7. Security Considerations 8. Acknowledgements Table of Abbreviations CLM ConnectionLess Multicast IRC Internet Relay Chat mp2mp multipoint-to-multipoint PIM-SM Protocol Independent Multicast Sparse Mode RUN Receiver Update Notification SM Simple Multicast 1. Introduction The current IP multicast model is based on the Host Group Model [DEER]. In this model a group of hosts is identified by a multicast address. This address is used both for subscription and forwarding purposes. Current multicast routing protocols which use this model suffer two major problems: - Multicast Address Allocation. The creator of a multicast group must allocate a global unique multicast address. This issue is Ooms, et al. Expires December 1999 [Page 2] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 addressed in the malloc working group: a set of Multicast Address Allocation Servers (MAAS) and three protocols (MASC, AAP, MADCAP) are proposed. - Scalability. Within the framework of the Host Group Model several multicast routing protocols are proposed. These multicast routing protocols have messages which create state for each multicast group in all the on-tree routers (or non-on-tree routers in case of dense mode). This can be viewed as signaling that creates multicast connection state ,yielding huge multicast forwarding tables in the backbone. Moreover for the sparse mode protocols (CBT, PIM-SM) the global core advertisement poses additional scalability issues, while the dense mode protocols (PIM-DM, DVMRP) suffer from the flood&prune nature. Recently, changes to the Host Group Model were proposed to address these drawbacks. Simple Multicast [PERL] uses the couple of core and multicast addresses as the group identifier. In this way core advertisement and multicast address allocation can be avoided. Furthermore, state can be avoided in parts of the network by creating tunnels. Note however that these tunnels are point-to-point and if e.g. a link has n tunnels for a certain group it will still carry n times the same data. In Express [HOLB], a multicast channel is identified by source and multicast addresses. Thus address allocation is not required and since there is no core, there is no core advertisement either. Creating a multicast session with multiple changing sources is implemented by using a session manager and a set of multicast channels. Note that each on-tree node still keeps state for each source of the multicast session. 2. Description In the Host Group Model the packet carries a multicast address as a logical identifier of all group members. In Connectionless Multicast (CLM) the packet carries all the IP addresses of the multicast session members (in the context of CLM the term 'multicast session' will be used instead of 'multicast group' to avoid the strong association of multicast group with multicast address in traditional IP multicast). In each router the next hop for each destination is determined and for every distinct next hop a new header is constructed. This header only contains the destinations for which that next hop is on the Ooms, et al. Expires December 1999 [Page 3] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 shortest path to these destinations. When there is only one destination left in the CLM packet, this destination will be put in the normal destination address field and the packet can be forwarded as a unicast packet along the remainder of the route. Although not restricted to this type of multicast session, the most beneficial application of CLM is for sessions with a limited number of members (super-sparse). For sessions with a large number of members, CLM can be used as an interdomain multicast routing mechanism between domains which run either PIM-SM or Simple Multicast. In practice, traditional multicast routing protocols impose limitations on the number of groups and the size of the network in which they are deployed. For CLM these limitations do not exist. CLM has the following advantages: 1) No multicast address allocation required. 2) Routers do not have to maintain state per session (or per source- session). 3) No symmetrical paths required. Current multicast routing protocols assume (for optimal functioning) symmetrical paths, i.e. the shortest path from A to B is the same as the shortest path from B to A. This is a false assumption in the current Internet and it is expected that this statement will become even more false when traffic engineering and more policy routing is introduced in the Internet. 4) Fast reaction to unicast reroutes. CLM will react immediately to unicast route changes. This is not the case for e.g. PIM-SM: if a link fails, the multicast routes will only be updated when a new periodic Join message is sent upstream, which can take several minutes. 5) Easy security and accounting. In contrast with the Host Group Model, in CLM all the sources know the members of the multicast session, which gives the sources the means to e.g. reject certain members or count the traffic going to certain members quite easily. Not only a source, but also a border router is able to determine how many times a packet will be duplicated in its domain. It becomes also more easy to restrict the number of senders or the bandwidth per sender. 6) Heterogeneous receivers. Besides the list of destinations, the packet can also contain a list of DiffServ bytes. While traditional multicast protocols have to create separate groups for each service Ooms, et al. Expires December 1999 [Page 4] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 class, CLM incorporates the possibility of having receivers with different service requirements within one multicast session. 7) Policy routing via BGP. No need for a specific multicast policy routing protocol (extension). Beside these advantages CLM has a number of disadvantages: 1) Overhead. Each packet contains all remaining destinations, but the total amount of data is still much less than for the unicast. A method to compress the list of destination addresses might be useful. 2) More complex header processing. Each destination in the packet needs a routing table lookup. So a CLM packet with n destinations requires the same number of routing table lookups as n unicast headers. Additionally, a different header has to be constructed per next hop. Remark however that: a) Since CLM will typically be used for super-sparse sessions, there will be a limited number of branching points, compared to non- branching points. By using a simple caching mechanism (see section 5) in these non-branching points, the classical forwarding method can be used and therefore the same performance achieved. b) Among the non-branching points, a lot of them will contain only one destination. In these cases normal unicast forwarding can be applied. c) The forwarding in the branching points can also be enhanced by a caching mechanism (section 5). d) By using compression on the list of destinations in combination with the aggregation in the forwarding tables the forwarding can be accelerated. 3) Multi-access networks. A multi-access network will carry duplicate packets, one for each next hop. Note however that the main application area for CLM is interdomain multicast. In this area point-to-point links outnumber the multi-access links. 3. Working modes As mentioned before CLM can be used for interdomain multicast routing or it can be used end-to-end for super-sparse sessions. For interdomain multicast routing, CLM interoperates nicely with Simple Multicast and PIM-SM. Ooms, et al. Expires December 1999 [Page 5] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 3.1. Simple Multicast Simple Multicast provides a tunnel mechanism. This tunnel is used either to cross non Simple Multicast domains or to limit the multicast forwarding state in parts of the network. When the tunnel is used for the latter purpose, the bandwidth saving of multicast is lost, i.e. parallel tunnels for the same group can exist on a specific link (Figure 1). Assume ERi are Simple Multicast Exit Routers and BRi are Backbone Routers in which one wants to avoid multicast forwarding state. S is a sender to the group and Ri are receivers. For this topology Simple Multicast will construct a first tunnel from ER1 to ER2 and a second tunnel from ER1 to ER3, yielding duplicate traffic on the link ER1-BR1. +--------BR2--------ER2------R1 | | S------ER1------BR1-------BR3--------ER3------R2 Figure 1 If the BRi are CLM routers the duplicate traffic can be avoided without building multicast state in the BRi. Since ER1 knows the endpoints of both tunnels it can send the multicast packet in CLM mode by putting ER2 and ER3 as destinations in the packet. 3.2. PIM-SM With MSDP [FARI] the Rendezvous Points (RPs) of PIM-SM discover which RPs have sources for a certain group in their domain. Based on the same principles a Multicast Receiver Distribution Protocol (MRDP) can be created. MRDP allows RPs to discover which RPs have receivers for a certain group in their domain. If MRDP is running and an RP has a source for a group, it can send the data in a CLM mode to the RPs which have receivers for this group. 3.3 End-to-end If CLM is used end-to-end, it is especially useful for super-sparse sessions, e.g. video conferences. In the current Internet two approaches to establish multipoint-to- multipoint communication can be identified: - IRC-like approach [OIKA]. In this approach a set of servers keeps Ooms, et al. Expires December 1999 [Page 6] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 track of the created channels and the members of these channels. The servers are also responsible for forwarding the channel data towards the members. The servers rely on a unicast routing protocol. - IP Multicast. In this approach the creation of the group, mainly the multicast address allocation, is the responsibility of a set of servers, while both the member state and the data forwarding is distributed over the network by running a multicast routing protocol. The end-to-end CLM mode combines aspects of both. The creation of the session and the member state will be handled by servers, while the data forwarding is distributed. The routing is relying completely on the unicast routing protocol. A set of servers will have a list of all created sessions with its senders and receivers. Senders and receivers have to announce themselves periodically to the server. If the periodic announcement stops this is interpreted as a sender or receiver leaving the multicast session. The server will send receiver-update messages to the senders when the list of receivers changes. If the receiver- update message is on top of a non-reliable transport protocol, periodic receiver-update messages can be added. 1) New receiver. If a receiver wants to join the multicast session it sends a first announcement to the server. Then the server will send receiver-update messages to all senders (or in CLM mode: one receiver-update message to the list of senders). It is easy to build in some policy rules here: the receiver is only added when it fulfills certain conditions. 2) New sender. A new sender announces itself to the server, which in return sends a receiver-update message with the list of current receivers to the new sender. The sender then starts sending its data to the list of these receivers. Once again it is easy in this phase to check who is sending and to allow only certain senders to receive the list of receivers. 3) Leaving receiver. A receiver that wants to leave a multicast session just stops sending announcements or sends an explicit unannounce message. 4) Leaving sender. A sender that decides to stop sending to the multicast session removes itself from the server by halting its announcement messages or by sending an explicit unannounce message. 4. IP Protocol extensions Ooms, et al. Expires December 1999 [Page 7] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 4.1. IPv4 In IPv4 two approaches can be followed to include the list of destination addresses. Either one adds a new IPv4 option or one adds an extra header between the network and the transport layer. Since the IPv4 option field is limited to 40 bytes (of which 4 bytes are used for the option type field) only 9 (or 10 if the destination field of the IP header is also used) destination addresses can be included. If the number of receivers is larger than 9 (or 10) multiple packets can be sent. Although for a different purpose, [AGUI] and [GRAF] already proposed an IPv4 option to carry multiple destinations. We propose the new IP option depicted in Figure 2. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1 0 0| TYPE | LENGTH |D| COMPR | UNUSED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (Compressed) List of DS Bytes and Addresses | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2 TYPE = number for this IPv4 option LENGTH = total length of the option in bytes D = if this bit is set the packet will contain a (compressed) DS-byte for each destination. COMPR = compression method used on the list of DS bytes and destination addresses. Following compression methods are defined: 0 = no compression Figure 3. shows the 'List of DS Bytes and Addresses' in case the D- bit is set and COMPR = 0. Ooms, et al. Expires December 1999 [Page 8] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DS byte 1 | destination address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |dst add 1 (cnt)| DS byte 2 | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3 Instead of using the IP option field one could add an extra header between the network and the transport layer. This header is depicted in Figure 4. The IP header will carry the protocol number PROTO_CLM. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |VERSION|UNUSED | PROT ID | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CHECKSUM |D| COMPR | UNUSED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (Compressed) List of DS Bytes and Addresses | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4 VERSION = CLM version number PROT ID = specifies the protocol on the transport layer LENGTH = length in bytes of the CLM header. CHECKSUM = it is not clear yet whether a checksum is needed (ffs). If only one bit is wrong it can still be useful to forward the packet to N-1 correct destinations and 1 incorrect destination. On the other hand when the header info is used to install a cache (see section 5) one can not allow that packets are permanently forwarded wrongly. One approach could be to provide a checksum per destination. D = if this bit is set the packet will contain a (compressed) DS-byte for each destination. COMPR = compression method used on the list of DS bytes and Ooms, et al. Expires December 1999 [Page 9] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 destination addresses. Following compression methods are defined: 0 = no compression 4.2. IPv6 Since IPv6 allows more flexibility in adding options (no limitation on the size), there is no limitation in terms of encoding on the number of destinations that can be put in a packet. However, since a packet can only be sent after all the destinations have been processed, packets with a lot of addresses will experience a lot of delay. For IPv6 the overhead will be larger since the addresses are longer. Note however that IPv6 probably allows stronger compression because of the geographical/provider distribution of addresses. Moreover if CLM is used as an interdomain multicast mechanism only the locator part of the address needs to be considered. 5. Caching The increased forwarding complexity is the main problem of CLM: packet headers have to be constructed at wirespeed. It was already mentioned that in major parts of the tree the normal unicast forwarding can be applied (from the moment there is only one destination address left in the packet). A method for further enhancing the forwarding is building a cache for the highest bandwidth sources. For this purpose the source will put a number (from the multicast address range) in the destination address: the Receiver Update Notification (RUN). Each time the set of destinations changes the source will indicate this to the downstream routers by changing the RUN. The cache will contain entries for (S, RUN). If the router receives a high bandwidth flow with a new (S, RUN) it will create a new cache entry. Unused cache entries will time out. There are two ways of keeping a cache: 1) Each (S, RUN) entry has a list of next hops with the associated outgoing IP option or CLM header (or list of destinations). 2) Only (S, RUN) which have one next-hop (still multiple destinations) are cached. These packets do not have to change their IP option or CLM header, so the latter information should not be kept in the cache. Both ways of applying a cache can be used in parallel. Ooms, et al. Expires December 1999 [Page 10] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 6. Compression Compression methods allow to reduce the packet overhead. If a common prefix compression method is applied this can beneficial for the forwarding as well. Compression methods are ffs. 7. Security Considerations Since a packet contains every destination, it is much more easy to restrict multicast sessions to certain receivers. It also allows ISPs to check, when a packet enters their network, how much resources this packet packet will consume in their network. In the end-to-end mode it is also easy to restrict the number of senders or to restrict/monitor the bandwidth of a sender. 8. Acknowledgements The authors would like to thank Emmanuel Desmet, Hans De Neve and Miroslav Vrana for the fruitful discussions and/or their thorough revision of this document. References [AGUI] L. Aguilar, "Datagram Routing for Internet Multicasting", Sigcomm84, March 1984. [DEER] S. Deering, "Multicast Routing in a datagram internetwork", PhD thesis, December 1991. [FARI] D. Farinacci, "Multicast Source Discovery Protocol", draft- farinacci-msdp-00.txt, June 1998. [GRAF] C. Graff, "IPv4 Option for Sender Directed Multi-Destination Delivery", RFC1770, March 1995. [HOLB] H. Holbrook, "Express Multicast: Making Multicast Economically Viable". [OIKA] J. Oikarinen, D. Reed, "Internet Relay Chat Protocol", RFC1459, May 1993. Ooms, et al. Expires December 1999 [Page 11] Internet Draft draft-ooms-cl-multicast-00.txt June 1999 [PERL] R. Perlman, "Simple Multicast: A design for Simple, Low-overhead Multicast", draft-perlman-simple-multicast-02.txt, February 1999. Authors Addresses Dirk Ooms Alcatel Corporate Research Center Fr. Wellesplein 1, 2018 Antwerpen, Belgium. Phone : 32-3-240-4732 Fax : 32-3-240-9932 E-mail: Dirk.Ooms@alcatel.be Wim Livens Alcatel Corporate Research Center Fr. Wellesplein 1, 2018 Antwerpen, Belgium. Phone : 32-3-240-7570 E-mail: Wim.Livens@alcatel.be Ooms, et al. Expires December 1999 [Page 12]