INTERNET DRAFT D. Ooms Alcatel W. Livens Colt Telecom O. Paridaens ULB April, 2000 Expires October, 2000 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 traditional 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 Ooms, et al. Expires October 2000 [Page 1] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 number of members per multicast session, not in the number of sessions. CLM will not replace the traditional multicast model. CLM offers an alternative for mp2mp communication in the cases that traditional multicast becomes expensive. The pros and cons of CLM are described and suggestions are made to alleviate the disadvantages. Furthermore different modes of operation are described: an end-to-end mode in close conjunction with SIP (Session Initiation Protocol [HAND]), as well as an interworking mode with PIM-SM and Simple Multicast. Both IPv4 and IPv6 are considered. Table of Contents 1. Introduction 2. The cost of the traditional multicast model 3. Description 4. Working modes 4.1 CLM as an end-to-end multicast routing solution 4.2. CLM as an interdomain multicast routing protocol 4.2.1. Simple Multicast 4.2.2. PIM-SM 4.3. Summary 5. Premature Cloning 6. Caching 6.1. Principle 6.2. Caching and Unicast Reroutes 6.2.1. Intra-node 6.2.2. Inter-node 7. Address list encoding 8. IP Protocol extensions 8.1. IPv4 8.2. IPv4 Alternative 8.3. IPv6 9. Gradual Deployment 10. Security Considerations 11. Acknowledgements A Hierarchical Address List Encoding A.1. Compound addresses A.2. Processing of a compound address A.3. Compound address encoding example Table of Abbreviations CLM ConnectionLess Multicast HALE Hierarchical Address List Encoding Ooms, et al. Expires October 2000 [Page 2] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 IRC Internet Relay Chat mp2mp multipoint-to-multipoint PIM-SM Protocol Independent Multicast Sparse Mode RUN Receiver Update Notification SM Simple Multicast Changes - added picture of 'cost of multicast' (2) - small changes to advantages section (3) - small changes to disadvantages section (3) - RUN moved from option to destination address field (6.1) - added section on caching and unicast reroutes (6.2) - new option format: introduction of bitmap, P-bit, A-bit and U-bit (8.1) - added seperate section on gradual deployment (9) - added paragraph on IPsec compatibility (10) 1. Introduction The main goal of multicast is to avoid duplicate information flowing over the same link. By using traditional multicast instead of unicast, bandwidth consumption decreases while the state and signalling per session increases. Apart from these two dimensions, we identify a third one: the header processing per packet. This three dimensional space is depicted in Figure 1. Ooms, et al. Expires October 2000 [Page 3] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 state&signaling per session in router ^ | | .... B | .... . | .... . | .... . | .... . +------------------..---> processing . / .... C per packet . / ..... in router . / ..... . / ..... ./ ..... /A.... / / link bandwidth Figure 1 A first method to deliver identical information from a source to n destinations is to unicast the information n times (A in Figure 1). A second method, the traditional multicast model (B in Figure 1) sends the information only once to a multicast address. In the third alternative (CLM), which is the subject of this draft, the information is sent only once, but the packet contains a list of destinations (point C). For a detailed description of CLM we refer to section 3. The three points A, B and C define a plane (indicated with dots in Figure 1): a plane of conservation of misery. All three approaches have disadvantages. The link bandwidth is a scarce resource, especially in access networks. State&signaling/session encounters limitations when the number of sessions becomes large and an increased processing/packet is cumbersome for high link speeds. Traditional multicast can move a little bit along the line A-B by switching between source and shared trees. However, this flexibility is very limited. Thus state&signaling/session is, amongst others (see section 2) a cost for the traditional multicast model. Also pure CLM encounters limitations (processing/packet), but the nice and differentiating feature of CLM is that it gives the router the choice to make its own tradeoffs. CLM has three mechanisms built Ooms, et al. Expires October 2000 [Page 4] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 in (caching, premature cloning and optimized address list encoding) that allows the router to move in this plane of conservation of misery, according to its own needs, which could be e.g. its location in the network. Caching allows a router to move from C to B, while premature cloning allows a shift from C to A. It is often argumented that it is not worthwhile to use multicast for mp2mp communication with a limited number of members, and use unicast instead. This is definitely untrue as following example illustrates: assume n residential users set up a video conference. For e.g. xDSL, GPRS or cable modem access technologies a host has no problem receiving n-1 basic 100kb/s video flows, but the host is not able to send its own video data n-1 times at this rate. Because of the limited and often asymmetric access capacity, some type of multicast is mandatory. In CLM, a host sends a packet with the addresses of the other n-1 members. The first router beyond the access link can probably process the packets in pure CLM mode since the link speed is relatively small here. Further in the network, where link speeds increase, routers can decide to maintain a cache entry for this session. Once arrived in a backbone network, where bandwidth is plentiful, the CLM packets could be prematurely cloned into multiple unicast packets to avoid the heavy header processing in the core routers. A simple but important application of CLM lies in bridging the access link for mp2mp communication. The host sends the CLM packet with the list of unicast addresses and the first router prematurely clones the CLM packet to multiple normal unicast packets. We believe that the flexibility of CLM to adapt to specific network conditions makes CLM an excellent multicast forwarding mechanism in the heterogeneous internetworks, as we currently know them. 2. The cost of the traditional multicast model The characteristics of the traditional IP multicast model are determined by its two components: the Host Group model [DEER] and a Multicast Routing Protocol. Both components add to the difference in nature between unicast and multicast. In the Host Group model, a group of hosts is identified by a multicast group address, which is used both for subscriptions and forwarding. This model has two main costs: - Multicast address allocation: The creator of a multicast group must Ooms, et al. Expires October 2000 [Page 5] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 allocate a multicast address which is unique in its scope (scope will often be global). This issue is being addressed by the Malloc working group, which is proposing a set of Multicast Address Allocation Servers (MAAS) and three protocols (MASC, AAP, MADCAP). - Destination unawareness: When a multicast packet arrives in a router, the router can determine the next hops for the packet, but knows nothing about the ultimate destinations of the packet, nor about how many times the packet will be duplicated later on in the network. This complicates the security, accounting and policy functions. In addition to the Host Group model, a routing algorithm is required to maintain the member state and the delivery tree. This can be done using a (truncated) broadcast algorithm or a multicast algorithm [DEER]. Since the former consumes too much bandwidth by unnecessarily forwarding packets to some routers, only the multicast algorithms are considered. These multicast routing protocols have the following costs: - Connection state: The multicast routing protocols exchange messages that create state for each multicast group or (source, group) in all the routers that are part of the point-to-multipoint tree. This can be viewed as a kind of signaling that creates multicast connection state, possibly yielding huge multicast forwarding tables. The name Connectionless Multicast refers to the elimination of this connection state. - Source advertisement mechanism: Multicast routing protocols provide a mechanism by which members get 'connected' to the sources for a certain group without knowing the sources themselves. In sparse-mode protocols (CBT, PIM-SM), this is achieved by having a core node, which needs to be advertised in the complete domain. On the other hand, in dense-mode protocols (PIM-DM, DVMRP) this is achieved by a "flood and prune" mechanism. Both approaches raise additional scalability issues. The cost of multicast address allocation, destination unawareness and the above scalability issues lead to a search for other multicast schemes. Recently, several 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. - In Express [HOLB], a multicast channel is identified by source and multicast addresses. Thus address allocation is not required and Ooms, et al. Expires October 2000 [Page 6] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 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. - In Source-Specific Multicast [HOLB2] a host joins a specific source. This approach avoids multicast address allocation as well as the need for an interdomain routing protocol. Note that all three approaches still create state&signaling per multicast session in each on-tree node. Figure 2 depicts the above costs as a function of the number of members in the group. All the costs have a hyperbolic behavior. cost of the current multicast model per member ^ | costly| OK | <-----|-----> | . | | .. | | ..|.. | | ......... | | ........ +---------------------------> | number of members v alternative=clm Figure 2 The current multicast model becomes expensive for its members if the groups are small. Small groups are typical for conferencing, gaming and collaborative applications. This is a class of applications for which CLM wants to offer an alternative. 3. 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 group address in traditional IP multicast). In each router the next hop for each destination is determined based Ooms, et al. Expires October 2000 [Page 7] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 on the unicast routing table. In this way for every distinct next hop the new list of destinations is determined. When there is only one destination left the CLM packet could turn into a normal unicast packet, which can be unicasted 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 sessions). For sessions with a large number of members (broadcast applications), CLM can be used as an interdomain multicast routing mechanism between a limited number of domains which run either PIM-SM or Simple Multicast. So, CLM will not replace the traditional multicast model, but offers an alternative for mp2mp communication where traditional multicast becomes expensive. 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 need for multicast routing protocols (nor intra- nor interdomain). CLM completely relies on the unicast routing table. 4) No core node, so no single point of failure. 5) No symmetrical paths required. Traditional multicast routing protocols create non-shortest-path trees if the paths are not symmetrical (symmetrical = the shortest path from A to B is the same as the shortest path from B to A). It is expected that more and more paths in the Internet will be asymmetrical due to traffic engineering and more policy routing, thus deviating more and more from optimal network usage. 4) Automatic reaction to unicast reroutes. CLM will react immediately to unicast route changes. In traditional multicast routing protocols a communication between the unicast and the multicast routing protocol needs to be established. In many implementations this is on a polling basis, yielding a slower reaction to e.g. link failures. Ooms, et al. Expires October 2000 [Page 8] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 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 class, CLM incorporates the possibility of having receivers with different service requirements within one multicast session. 7) CLM packets can make use of traffic engineered unicast paths. 8) More simple implementation of reliable protocols on top of CLM, because CLM can easily address a subset of the original list of destinations to do a retransmission. 9) Easy transition phase (section 9). However, CLM has a number of disadvantages as well: 1) Overhead. Each packet contains all remaining destinations, but the total amount of data is still much less than for unicast (payload is only sent once). A method to compress the list of destination addresses might be useful (section 7). 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. Only in a branching point new headers need to be constructed. b) The header construction is a very simple operation: overwriting a 1-byte bitmap. c) Among the non-branching points, a lot of them will contain only one destination. In these cases normal unicast forwarding can be applied. Ooms, et al. Expires October 2000 [Page 9] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 d) By using a hierarchical encoding of the list of destinations in combination with the aggregation in the forwarding tables the forwarding can be accelerated (section 7). e) When the packet enters a region of the network where link bandwidth is not an issue anymore, the packet can be prematurely cloned. This avoids more complex processing downstream (section 5). f) The forwarding can also be enhanced by a caching mechanism (section 6). This caching allows the same forwarding behavior as current multicast. 3) Multi-access networks. Currently Ethernet does not support CLM. This means that one has to send a packet for each next-hop in a multi-access network. 4) CLM only works with a limited number of receivers. 4. Working modes The preceding sections mainly focused on the data plane, this section will focus on the control plane of CLM. CLM is mainly applicable to super-sparse multicast sessions. Besides this, we also describe how CLM can be used as an interdomain multicast routing protocol, connecting e.g. Simple Multicast or PIM-SM domains. 4.1 CLM as an end-to-end multicast routing solution If CLM is used end-to-end, it is especially useful for super-sparse sessions, e.g. conferencing, multi-party gaming, etc... In the current Internet three approaches to establish multipoint-to- multipoint sessions can be identified: - Internet Relay Chat (IRC) [OIKA]. In this approach a set of servers keeps track of the created channels and the members of these channels. The servers are also responsible for emulating the mp2mp data delivery, which relies on unicast forwarding. - Current IP Multicast Group Establishment (IGMP, Multicast Protocol, Multicast Address Allocation). In this approach the creation of the group, mainly the multicast address allocation, is the responsibility of a set of servers, while the member state is distributed over the network. The data delivery is distributed over the network and relies on multicast forwarding. - Session Initiation Protocol (SIP) [HAND]. A host takes the Ooms, et al. Expires October 2000 [Page 10] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 initiative to set up a session. With the assistance of a SIP server a session is created. The session state is kept in the hosts. Data delivery can be achieved by several mechanisms: meshed unicast, bridged or multicast. Note that for the establishment of multicast delivery, a multicast protocol and communication with Multicast Address Allocation Servers (MAAS) are still required. Both CLM and SIP address super-sparse mp2mp sessions. It turns out that CLM (a very flexible data plane mechanism) can be easily integrated with SIP (a very flexible control plane protocol). When an application decides to use CLM forwarding it does not affect its interface to the SIP agent: it can use the same SIP messages as it would use when it opted for meshed unicast forwarding. 4.2. CLM as an interdomain multicast routing protocol 4.2.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 in these parts of the network, i.e. parallel tunnels for the same group can exist on a specific link (Figure 3). 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 3 If the backbone routers are CLM routers the duplicate traffic can be avoided without building multicast state. The interworking is easy 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, thereby creating a point-to-multipoint tunnel. 4.2.2. PIM-SM Ooms, et al. Expires October 2000 [Page 11] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 With MSDP [FARI] the Rendezvous Points (RPs) of different PIM-SM domains discover which RPs have sources for a certain group in their domain. Similarly, 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. 4.3. Summary The working modes of CLM and other mp2mp communication mechanisms are summarized in Table 1. | control plane | data plane + -----------+-------------+--------------- | session | member | forwarding | creation | state | ----------+------------+-------------+--------------- IRC | servers | servers | servers (UC) multicast | servers | network | network (MC) SIP/CLM |host/server | hosts | network (CLM/UC) SM/CLM | / |exit router | network (CLM/UC) MRDP/CLM | / | RP | network (CLM/UC) Table 1 5. Premature Cloning A router can decide to prematurely clone a CLM packet, i.e. duplicate a CLM packet before its actual branching point and reduce it to a normal unicast packet. This early cloning facilitates a less complex forwarding in all downstream routers. An operator's border router can e.g. prematurely clone the CLM packets that would normally branch in the operator's domain. Or an edge router can prematurely clone CLM packets to multiple unicast packets (when CLM was only used to bridge the access link). The transformation of a CLM packet to a normal unicast packet (Premature Cloning or a CLM packet with only one destination left) requires a recalculation of the transport layer checksum (UDP and TCP checksums are calculated over the pseudo header which includes the destination address field). Note that this does not require a complete recalculation of the checksum, only a delta calculation: Ooms, et al. Expires October 2000 [Page 12] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 Checksum' = ~ (~Checksum + ~daH + ~daL + daH'+ daL') In which "'" indicates the new values, "da" the destaination address and "H" and "L" respectively the higher and lower 16 bit. 6. Caching The increased forwarding complexity is the main challenge for CLM: packet headers have to be processed 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. 6.1. Principle If the source supports caching it will put a number in the destination address field of the IP header: 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 can create a new cache entry. Unused cache entries will time out. A possible optimization is that the source increments the RUN value by 1 if the list of receivers changes. In that way the router can immediately remove the entry (S, RUN) and replace it by an (S, RUN+1) entry. When the RUN value reaches its maximum value the clearing of the cache entry still relies on the expiration of a timer. Note that a source can send to multiple sessions. In this case the source has to partition its RUN space amongst these sessions. It could be beneficial to split the 32-bit RUN number in two parts: one session identifier and one real Receiver Update Notification). Maintaining a cache may seem contradictory to the main characteristic of CLM (avoid state in the router), but it is important to note that each router can independently decide to create a cache or not. The router itself can make the tradeoff between memory and processing time. There are two ways of keeping a cache: 1) Each (S, RUN) entry has a list of next hops with the associated list of destinations. Note that this list of destinations can be a simple bitmap. When a bitmap is used it is required that the sender Ooms, et al. Expires October 2000 [Page 13] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 always lists the addresses in the same order. It could be useful to have a standardized order for this (e.g. always in increasing order). 2) Only (S, RUN) which have one next-hop (still multiple destinations) are cached. These packets do not have to change their list of destinations, so the latter information should not be kept in the cache. Both ways of applying a cache can be used in parallel. In a previous version of CLM, RUN was located in the IP option. It was moved to the destination address field to avoid UDP checksum recalculation and to allow to apply IPsec to CLM packets. For RUN a subrange of the multicast address space could be reserved. If the sender does not support the caching mechanism, it has to set RUN to a reserved value NO_SENDER_CACHE_SUPPORT (e.g. 233.0.0.0=0xe9000000). 6.2. Caching and Unicast Reroutes When a unicast route changes the CLM caches need to be updated because they still forward according to the old unicast topology. This adaptation requires two components: 1) Intra-node: Communication between the unicast routing and the CLM cache in the node where the unicast route changes. 2) Inter-node: A downstream signaling to notify the downstream caches of a unicast route change. 6.2.1. Intra-node The cache can adapt to the route change by one of following mechanisms: - Flush the complete CLM cache when a unicast reroute occurs. - Loop through the complete CLM cache to check which CLM cache entries are affected by the unicast reroute. This mechanism is computational intensive. - Each unicast route entry keeps a list of pointers to associated CLM cache entries. This mechanism consumes extra memory. - For every CLM packet one could do a route look-up for one destination. In this way the cache is updated every N packets (assume N destinations). The advantage is that the load is Ooms, et al. Expires October 2000 [Page 14] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 distributed in time, the cost being that some receivers will loose some packets. 6.2.2. Inter-node Three mechanisms can be thought of: - One could increment the RUN value on the outgoing interfaces for which the list of destinations has changed. This has the disadvantage that one needs to store a RUN per outgoing interface and do a transport layer checksum recalculation in nodes where the RUN changes. - One could send a number of packets with a special RUN value (UPDATE_DOWNSTREAM_CACHE) on the outgoing interfaces for which the list of destinations has changed. Downstream routers receiving a packet with this RUN value have to update their CLM cache. The disadvantage is that one does know how many packets to send to be sure the downstream caches are updated. When the RUN is split in two parts (see above) the updating can be limited to the affected session. - A more elegant way is to quickly compare the bitmap in the packet with the bitmaps in the CLM cache. If the bitmap in the packet equals the ORed bitmaps of the outgoing interfaces of the CLM cache nothing must be done. If a bit has changed following actions have to be performed: 1->0 (destination less): clear the bit in the bitmap of the outgoing interface 0->1 (additional destination): do a unicast route look-up 7. Address list encoding In this section the Hierarchical Address List Encoding method (HALE) is described which possibly allows to reduce the packet overhead or to increase the forwarding capacity. Given a list of IP addresses, the method iteratively separates the common prefixes of the list of IP addresses. To illustrate HALE, consider the multicast tree in Figure 4. The source S1 wants to deliver the same information to destinations D1 (ABCD), D2 (ABCE) and D3 (AFGH). For simplicity we will assume in this example that the separation of common bits is only executed on byte boundaries. The addresses of D1 and D2 have ABC in common, so it can be written as the compound address ABC{D,E}. The address of D3 and the compound address ABC{D,E} have A in common, yielding a new Ooms, et al. Expires October 2000 [Page 15] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 compound address A{BC{D,E},FGH}. D1 / /ABCD A{BC{D,E},FGH} ABC{D,E} / ABCE S1-------------------R1------------R2----------D2 \ \AFGH \ AFGH R3---------------D3 ABCD | > ABC{D,E} | ABCE | | > A{BC{D,E},FGH} AFGH | Figure 4 HALE, combined with the aggregation in the routing tables, allows to save on lookup cycles. More details on HALE and how the forwarding benefits from this encoding can be found in Appendix A. 8. IP Protocol extensions 8.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 destination addresses can be included. Since this is the real maximum (in the abscence of other options or other information per destination) we will limit the number of destinations to 8 to allow the bitmap to fit in 1 byte. If the number of receivers is larger than 8 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 5. Ooms, et al. Expires October 2000 [Page 16] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 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 |A|U|RES|P|D|ENC| BITMAP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (Encoded) List of Ports, DS Bytes and Addresses | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0 1 2 3 Figure 5 TYPE = number for this IPv4 option LENGTH = total length of the option in bytes A = anonymity bit: if this bit is set the destination addresses for which the bit in the bitmap is zero have to be overwritten by zero (receiver shouldn't know all other receivers). U = unicast transformation bit: if this bit is set a router is allowed to reduce the CLM packet to a unicast packet when there is only one destination left. RES = Reserved. P = port bit: if this bit is set the packet will contain a (encoded) port for each destination. D = DSCP bit: if this bit is set the packet will contain a (encoded) DS-byte for each destination. ENC (2 bits) = encoding method used on the list of ports, DS bytes and destination addresses. Following encoding methods are defined: (P,D,ENC) (0,0,00) = no encoding: flat list of destination addresses (0,0,01) = hierarchical address list encoding (Appendix A.3) (0,1,00) = no encoding and DSCP per destination (Figure 6) BITMAP = every destination has a corresponding bit in the bitmap to indicate whether the destination is still valid on this branch. The least significant bit corresponds to the first destination. Figure 6. shows the 'List of Ports, DS Bytes and Addresses' in case (P,D,ENC) = (0,1,00). Ooms, et al. Expires October 2000 [Page 17] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DS byte 1 | DS byte 2 | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | DS byte N | padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 6 8.2. IPv4 Alternative 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 7. 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 |A|U|RES|P|D|ENC| RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BITMAP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (Encoded) List of Ports, DS Bytes and Addresses | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 7 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 6) one can not allow that packets are permanently forwarded Ooms, et al. Expires October 2000 [Page 18] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 wrongly. One approach could be to provide a checksum per destination. The other fields were described earlier. 8.3. IPv6 Since IPv6 allows more flexibility in adding options (e.g. 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 larger delay. For IPv6 the overhead will be larger since the addresses are longer. Note however that IPv6 probably allows an encoding with better 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. 9. Gradual Deployment At least two schemes for gradual introduction of CLM can be thougth of: 1) CLM-capable routers can be interconnected by tunnels (MBone approach). 2) a router could discover which neighbours are not CLM-capable and will prematurely clone CLM packets directed to these neighbours. A mechanism (protocol/protocol extension) to discover CLM capability of a neighbour is ffs. Note: Following rules apply to routers that do not understand CLM packets: - A router that does not know the CLM option: packets with unrecognized options must be passed through unchanged ([BAKE]). - A router will not send ICMP errors for packets with a multicast address in the destination address field ([BAKE]). 10. 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 Ooms, et al. Expires October 2000 [Page 19] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 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. IPsec can be applied to CLM packets in order to provide various security services. We hereby suggest a (non exhaustive) list of possible scenarios for applying IPsec (ie. AH or ESP) to CLM packets. If the list of destinations resides in the IPv4 option, one can provide source authentication and end-to-end packet integrity by applying AH in transport mode and defining the IPv4 option as a mutable field ([KENT]). Obviously, the drawback is that an attacker could maliciously modify the values in the IPv4 option (eg. destination addresses, bit fields, bit map, ...). Considering that only the bitmap field is subject to modifications in the IPv4 option, one could extend the integrity protection onto the other fields by splitting the IPv4 option into two separate options : one for the bitmap and one for the other fields. The bitmap option is then defined as a mutable field while the second option is defined as non-mutable. The other fields can then be protected with IPsec. Data confidentiality could also be provided with the use of IPsec ESP, which can be combined with AH to protect the packet header as discussed above. Note that CLM packets on which IPsec has been applied cannot be transformed into unicast packets (hence their 'U' bit must be cleared by the sender). If the list of destinations is protected by IPsec, anonymity cannot be provided either (hence the 'A' bit must be cleared by the sender). In order to make use of IPsec, an SA must be agreed upon between the participants using some automatic method such as IKE or manual configuration. In its current state, IKE cannot be used to set up such a single SA between multiple parties, hence manual configuration would be required. 11. Acknowledgements The authors would like to thank Olivier Paridaens, Emmanuel Desmet, Hans De Neve and Miroslav Vrana for the fruitful discussions and/or their thorough revision of this document. Some of the changes in this version of the draft were inspired by fruitful discussions with Yuji Imai and Rick Boivie. Ooms, et al. Expires October 2000 [Page 20] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 A Hierarchical Address List Encoding (HALE) A.1. Compound addresses A list of addresses can be compressed into a compound address by writing common prefixes only once, followed by a list of their suffixes. We used following syntax to represent compound addresses: ::= prefix "{" "}" ::= [] ::= [ ","] ::= | ::= [] ::= [A-Z] in our example, one bit in practice (can also be a nibble or octet) Let's take the following list of addresses as an example: ABCD, ABCE, AFGH The addresses all have a common prefix A, so we can write A once followed by the list of suffixes BCD, BCE and FGH. i.e. A { BCD, BCE, FGH } Two of these suffixes share a common prefix BC, so we obtain: A { BC { D, E }, FGH } A.2. Processing of a compound address Following pseudo code parses a compound address and issues a minimum amount of lookup() calls to a routing table engine. We assume the lookup takes a symbol (e.g. one bit) as argument and returns a pointer to it's internal (e.g. tree) structure which can be passed to a next lookup. The parser maintains a stack of such indices. We assume that a meta symbol also denotes the number of non-meta symbols that follow (see encoding in A.3.). index=routing_table_root; /* routing table entry point */ skip=0; /* flag used to skip over irrelevant * parts of the compound address */ getch(meta); /* get first meta symbol. Only the * length is used */ while(1) { Ooms, et al. Expires October 2000 [Page 21] Internet Draft draft-ooms-cl-multicast-02.txt April 2000 len=LEN(meta); /* number of non-meta symbols that * follow */ for (i=0; i