summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5058.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc5058.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc5058.txt')
-rw-r--r--doc/rfc/rfc5058.txt1963
1 files changed, 1963 insertions, 0 deletions
diff --git a/doc/rfc/rfc5058.txt b/doc/rfc/rfc5058.txt
new file mode 100644
index 0000000..6bf1595
--- /dev/null
+++ b/doc/rfc/rfc5058.txt
@@ -0,0 +1,1963 @@
+
+
+
+
+
+
+Network Working Group R. Boivie
+Request for Comments: 5058 N. Feldman
+Category: Experimental IBM
+ Y. Imai
+ WIDE / Fujitsu
+ W. Livens
+ ESCAUX
+ D. Ooms
+ OneSparrow
+ November 2007
+
+
+ Explicit Multicast (Xcast) Concepts and Options
+
+Status of This Memo
+
+ This memo defines an Experimental Protocol for the Internet
+ community. It does not specify an Internet standard of any kind.
+ Discussion and suggestions for improvement are requested.
+ Distribution of this memo is unlimited.
+
+IESG Note
+
+ This RFC is not a candidate for any level of Internet Standard. The
+ IETF disclaims any knowledge of the fitness of this RFC for any
+ purpose and in particular notes that the decision to publish is not
+ based on IETF review for such things as security, congestion control,
+ or inappropriate interaction with deployed protocols. The RFC Editor
+ has chosen to publish this document at its discretion. Readers of
+ this document should exercise caution in evaluating its value for
+ implementation and deployment. See RFC 3932 for more information.
+
+Abstract
+
+ While traditional IP multicast schemes (RFC 1112) are scalable for
+ very large multicast groups, they have scalability issues with a very
+ large number of distinct multicast groups. This document describes
+ Xcast (Explicit Multi-unicast), a new multicast scheme with
+ complementary scaling properties: Xcast supports a very large number
+ of small multicast sessions. Xcast achieves this by explicitly
+ encoding the list of destinations in the data packets, instead of
+ using a multicast group address.
+
+ This document discusses Xcast concepts and options in several areas;
+ it does not provide a complete technical specification.
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 1]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+Table of Contents
+
+ 1. Introduction ....................................................3
+ 2. Xcast Overview ..................................................4
+ 3. The Cost of the Traditional IP Multicast Schemes ................6
+ 4. Motivation ......................................................9
+ 5. Application ....................................................11
+ 6. Xcast Flexibility ..............................................12
+ 7. Xcast Control Plane Options ....................................13
+ 7.1. SIP Control Plane for Xcast ...............................14
+ 7.2. Receiver-Initiated Join for Xcast .........................14
+ 8. Optional Information ...........................................15
+ 8.1. List of Ports .............................................15
+ 8.2. List of DSCPs .............................................15
+ 8.3. Channel Identifier ........................................15
+ 9. Possible Xcast Packet Encoding .................................16
+ 9.1. General ...................................................16
+ 9.2. IPv4 ......................................................17
+ 9.2.1. IPv4 Header ........................................17
+ 9.2.2. Xcast4 Header ......................................17
+ 9.3. IPv6 ......................................................20
+ 9.3.1. IPv6 Header ........................................20
+ 9.3.2. Xcast6 Header ......................................20
+ 9.3.2.1. Routing Extension Header ..................21
+ 9.3.2.2. Destination Extension Header ..............21
+ 10. Impact on Upper-Layer Protocols ...............................22
+ 10.1. Checksum Calculation in Transport-Layer Headers ..........22
+ 10.2. IPsec ....................................................22
+ 11. Gradual Deployment ............................................23
+ 11.1. Tunneling ................................................23
+ 11.2. Premature X2U ............................................25
+ 11.3. Semi-Permeable Tunneling (IPv6 Only) .....................25
+ 11.4. Special Case: Deployment without Network Support .........26
+ 11.5. Using a Small Number of Xcast-Aware Routers to
+ Provide Xcast ............................................27
+ 12. (Socket) API ..................................................28
+ 13. Unresolved Issues .............................................28
+ 13.1. The Format of the "List of Addresses" ....................28
+ 13.2. The size of Channel Identifier ...........................28
+ 13.3. Incremental Deployment ...................................28
+ 13.4. DSCP usage ...............................................29
+ 13.5. Traversing a Firewall or NAT Products ....................29
+ 13.6. The Size of BITMAP .......................................29
+ 14. Security Considerations .......................................29
+ 15. IANA Considerations ...........................................30
+ 16. Informative References ........................................31
+ 17. Contributors ..................................................33
+
+
+
+
+Boivie, et al. Experimental [Page 2]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+1. Introduction
+
+ While traditional IP multicast schemes [1112] are scalable for very
+ large multicast groups, they have scalability issues with a very
+ large number of distinct multicast groups. This document describes
+ Xcast (Explicit Multi-unicast (Xcast)), a new multicast scheme with
+ complementary scaling properties: Xcast supports a very large number
+ of small multicast sessions. Xcast achieves this by explicitly
+ encoding the list of destinations in the data packets, instead of
+ using a multicast group address. This document discusses Xcast
+ concepts and options in several areas; it does not provide a complete
+ technical specification.
+
+ Multicast, the ability to efficiently send data to a group of
+ destinations, is becoming increasingly important for applications
+ such as IP telephony and video-conferencing.
+
+ Two kinds of multicast seem to be important: a broadcast-like
+ multicast that sends data to a very large number of destinations, and
+ a "narrowcast" multicast that sends data to a fairly small group
+ [BOIV]. An example of the first is the audio and video multicasting
+ of a presentation to all employees in a corporate intranet. An
+ example of the second is a videoconference involving three or four
+ parties. For reasons described below, it seems prudent to use
+ different mechanisms for these two cases. As the Reliable Multicast
+ Transport working group has stated: "it is believed that a 'one size
+ fits all' protocol will be unable to meet the requirements of all
+ applications" [RMT]. Note that the 1998 IAB Routing Workshop [2902]
+ came to the same conclusion: "For example, providing for many groups
+ of small conferences (a small number of widely dispersed people) with
+ global topological scope scales badly given the current multicast
+ model".
+
+ Today's multicast schemes can be used to minimize bandwidth
+ consumption. Explicit Multi-Unicast (Xcast) also can be used to
+ minimize bandwidth consumption for "small groups". But it has an
+ additional advantage as well. Xcast eliminates the per-session
+ signaling and per-session state information of traditional IP
+ multicast schemes and this allows Xcast to support very large numbers
+ of multicast sessions. This scalability is important since it
+ enables important classes of applications such as IP telephony,
+ videoconferencing, collaborative applications, networked games, etc.,
+ where there are typically very large numbers of small multicast
+ groups.
+
+ Interestingly, the idea for Xcast has been around for some time,
+ although this was not immediately known to the three groups that
+ independently re-invented it in the late 1990's. In fact the very
+
+
+
+Boivie, et al. Experimental [Page 3]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ first proposal of the multicast concept in the Internet community, by
+ Lorenzo Aguilar in his 1984 SIGCOMM paper [AGUI] proposed the use of
+ an explicit list of destinations discussed in more detail below. At
+ about the same time, David Cheriton and Stephen Deering developed
+ Host Group Multicast in 1985 [CHER].
+
+ The Internet community compared the two proposals and concluded that
+ a single mechanism was preferable to multiple mechanisms. Further,
+ since Aguilar's proposal seemed to have serious scaling problems, the
+ Host Group model was adopted.
+
+ However, for reasons described below, we believe it makes sense to
+ use different mechanisms for the two different kinds of multicast
+ discussed above. While Host Group multicast may have been sufficient
+ in the Internet of 1985, we believe that Xcast can be an important
+ complement to Host Group multicast in the Internet of the 21st
+ century.
+
+2. Xcast Overview
+
+ In this document, the following terminology will be used:
+
+ - Session: in Xcast, the term 'multicast session' will be used
+ instead of 'multicast group' to avoid the strong association of
+ multicast groups with multicast group addresses in traditional IP
+ multicast.
+
+ - Channel: in a session with multiple senders (e.g., a video
+ conference), the flow sourced by one sender will be called a
+ channel. So, a session can contain one or more channels.
+
+ In the Host Group Model, the packet carries a multicast address as a
+ logical identifier of all group members. In Xcast, the source node
+ keeps track of the destinations in the multicast channel that it
+ wants to send packets to.
+
+ The source encodes the list of destinations in the Xcast header, and
+ then sends the packet to a router. Each router along the way parses
+ the header, partitions the destinations based on each destination's
+ next hop, and forwards a packet with an appropriate Xcast header to
+ each of the next hops.
+
+ When there is only one destination left, the Xcast packet can be
+ converted into a normal unicast packet, which can be unicasted along
+ the remainder of the route. This is called X2U (Xcast to Unicast).
+
+ For example, suppose that A is trying to get packets distributed to
+ B, C, and D in Figure 1 below:
+
+
+
+Boivie, et al. Experimental [Page 4]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ R4 ---- B
+ /
+ /
+ A----- R1 ---- R2 ---- R3 R8 ---- C
+ \ /
+ \ /
+ R5 ---- R6 ---- R7
+ \
+ \
+ R9 ---- D
+
+ Figure 1
+
+ This is accomplished as follows: A sends an Xcast packet with the
+ list of destinations in its Xcast header to the first router, R1.
+
+ Since the Xcast header will be slightly different for IPv4 and IPv6
+ [2460], we won't reveal any details on the encoding of the Xcast
+ header in this section (see Section 9). So, ignoring the details,
+ the packet that A sends to R1 looks like this:
+
+ [ src = A | dest = B C D | payload ]
+
+ When R1 receives this packet, it needs to properly process the Xcast
+ header. The processing that a router does on receiving one of these
+ Xcast packets is as follows:
+
+ - Perform a route table lookup to determine the next hop for each of
+ the destinations listed in the packet.
+
+ - Partition the set of destinations based on their next hops.
+
+ - Replicate the packet so that there's one copy of the packet for
+ each of the next hops found in the previous steps.
+
+ - Modify the list of destinations in each of the copies so that the
+ list in the copy for a given next hop includes just the
+ destinations that ought to be routed through that next hop.
+
+ - Send the modified copies of the packet on to the next hops.
+
+ - Optimization: If there is only one destination for a particular
+ next hop, the packet can be sent as a standard unicast packet to
+ the destination (X2U).
+
+ So, in the example above, R1 will send a single packet on to R2 with
+ a destination list of < B C D >, and R2 will send a single packet to
+ R3 with the same destination list.
+
+
+
+Boivie, et al. Experimental [Page 5]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ When R3 receives the packet, it will, by the algorithm above, send
+ one copy of the packet to next hop R5 with an Xcast list of < C D >,
+ and one ordinary unicast packet addressed to < B > to R4. R4 will
+ receive a standard unicast packet and forward it on to < B >. R5
+ will forward the Xcast packet that it receives on to R6, which will
+ pass it on to R7. When the packet reaches R7, R7 will transmit
+ ordinary unicast packets addressed to < C > and < D >, respectively.
+ R8 and R9 will receive standard unicast packets, and forward the
+ packets on to < C > and < D >, respectively.
+
+ It's important that the Xcast packet that is sent to a given next hop
+ only includes destinations for which that next hop is the next hop
+ listed in the route table. If the list of destinations in the packet
+ sent to R4, for example, had also included C and D, R4 would send
+ duplicate packets.
+
+ Note that when routing topology changes, the routing for an Xcast
+ channel will automatically adapt to the new topology since the path
+ an Xcast packet takes to a given destination always follows the
+ ordinary, unicast routing for that destination.
+
+3. The Cost of the Traditional IP Multicast Schemes
+
+ Traditional IP multicast schemes [DEER, DEE2, FARI] were designed to
+ handle very large multicast groups. These work well if one is trying
+ to distribute broadcast-like channels all around the world but they
+ have scalability problems when there is a very large number of
+ groups.
+
+ 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 make multicast very
+ different from unicast.
+
+ 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 allocate a multicast address that 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 (Multicast
+ Address Set Claim (MASC), Address Allocation Protocol (AAP),
+ Multicast Address Dynamic Client Allocation Protocol (MADCAP)).
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 6]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ - 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 (source, multicast group) in
+ all the routers that are part of the point-to-multipoint tree.
+ This can be viewed as "per flow" signaling that creates
+ multicast connection state, possibly yielding huge multicast
+ forwarding tables. Some of these schemes even disseminate this
+ multicast routing information to places where it isn't
+ necessarily needed [1075]. Other schemes try to limit the
+ amount of multicast routing information that needs to be
+ disseminated, processed, and stored throughout the network.
+ These schemes (e.g., [2201]) use a "shared distribution tree"
+ that is shared by all the members of a multicast group and they
+ try to limit the distribution of multicast routing information
+ to just those nodes that "really need it". But these schemes
+ also have problems. Because of the shared tree, they use less
+ than optimal paths in routing packets to their destinations and
+ they tend to concentrate traffic in small portions of a network.
+ And these schemes still involve lots of "per flow" signaling and
+ "per flow" 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 [2201, DEE2], 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
+ [1075] this is achieved by a "flood and prune" mechanism. Both
+ approaches raise additional scalability issues.
+
+ - Inter-domain routing: Multicast routing protocols that rely on a
+ core node [2201, DEE2] additionally need an inter-domain
+ multicast routing protocol (e.g., [FARI]).
+
+
+
+
+Boivie, et al. Experimental [Page 7]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ The cost of multicast address allocation, destination unawareness and
+ the above scalability issues lead to a search for other multicast
+ schemes. Source-Specific Multicast (SSM) [4607] addresses some of
+ the above drawbacks: in SSM, a host joins a specific source, thus the
+ channel is identified by the couple (source address, multicast
+ address). This approach avoids multicast address allocation as well
+ as the need for an inter-domain routing protocol. The source
+ advertisement is taken out of the multicast routing protocol and is
+ moved to an out-of-band mechanism (e.g., web page).
+
+ Note that SSM still creates state and signaling per multicast channel
+ in each on-tree node. Figure 2 depicts the above costs as a function
+ of the number of members in the session or channel. All the costs
+ have a hyperbolic behavior.
+
+ cost of the traditional
+ IP multicast model
+ per member
+ ^
+ | costly| OK
+ | <-----|----->
+ | . |
+ | .. |
+ | ..|..
+ | | .........
+ | | ........
+ +--------------------------->
+ | number of members
+ v
+ alternative=Xcast
+
+ Figure 2
+
+ The traditional IP multicast model becomes expensive for its members
+ if the groups are small. Small groups are typical for conferencing,
+ gaming, and collaborative applications. These applications are well-
+ served by Xcast.
+
+ In practice, traditional IP multicast routing protocols impose
+ limitations on the number of groups and the size of the network in
+ which they are deployed. For Xcast, these limitations do not exist.
+
+
+
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 8]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+4. Motivation
+
+ Xcast takes advantage of one of the fundamental tenets of the
+ Internet "philosophy", namely, that one should move complexity to the
+ edges of the network and keep the middle of the network simple. This
+ is the principle that guided the design of IP and TCP and it's the
+ principle that has made the incredible growth of the Internet
+ possible. For example, one reason that the Internet has been able to
+ scale so well is that the routers in the core of the network deal
+ with large Classless Inter-Domain Routing (CIDR) blocks as opposed to
+ individual hosts or individual "connections". The routers in the
+ core don't need to keep track of the individual TCP connections that
+ are passing through them. Similarly, the IETF's Diffserv effort is
+ based on the idea that the routers shouldn't have to keep track of a
+ large number of individual Resource Reservation Protocol (RSVP) flows
+ that might be passing through them. It's the authors' belief that
+ the routers in the core shouldn't have to keep track of a large
+ number of individual multicast flows, either.
+
+ Compared to traditional IP multicast, Xcast has the following
+ advantages:
+
+ 1) Routers do not have to maintain state per session (or per channel)
+ [SOLA]. This makes Xcast very scalable in terms of the number of
+ sessions that can be supported since the nodes in the network do
+ not need to disseminate or store any multicast routing information
+ for these sessions.
+
+ 2) No multicast address allocation required.
+
+ 3) No need for multicast routing protocols (neither intra- nor
+ inter-domain). Xcast packets always take the "right" path as
+ determined by the ordinary unicast routing protocols.
+
+ 4) No core node, so no single point of failure. Unlike the shared
+ tree schemes, Xcast minimizes network latency and maximizes
+ network "efficiency".
+
+ 5) Symmetric paths are not required. Traditional IP multicast
+ routing protocols create non-shortest-path trees if paths are not
+ symmetric. (A path between two nodes A and B is symmetric if the
+ path is both the shortest path from A to B as well as the shortest
+ path from B to A.) It is expected that an increasing number of
+ paths in the Internet will be asymmetric in the future as a result
+ of traffic engineering and policy routing, and thus the
+ traditional IP multicast schemes will result in an increasing
+ amount of suboptimal routing.
+
+
+
+
+Boivie, et al. Experimental [Page 9]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ 6) Automatic reaction to unicast reroutes. Xcast will react
+ immediately to unicast route changes. In traditional IP 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. It may also take some time for
+ traditional IP multicast routing protocols to fix things up if
+ there is a large number of groups that need to be fixed.
+
+ 7) Easy security and accounting. In contrast with the Host Group
+ Model, in Xcast all the sources know the members of the multicast
+ channel, 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 also becomes easier to restrict the number of senders
+ or the bandwidth per sender.
+
+ 8) Heterogeneous receivers. Besides the list of destinations, the
+ packet could (optionally) also contain a list of Diffserv Code
+ Points (DSCPs). While traditional IP multicast protocols have to
+ create separate groups for each service class, Xcast incorporates
+ the possibility of having receivers with different service
+ requirements within one multicast channel.
+
+ 9) Xcast packets can make use of traffic-engineered unicast paths.
+
+ 10) Simple implementation of reliable protocols on top of Xcast,
+ because Xcast can easily address a subset of the original list of
+ destinations to do a retransmission.
+
+ 11) Flexibility (see Section 6).
+
+ 12) Easy transition mechanisms (see Section 11).
+
+ It should be noted that Xcast 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.
+
+ 2) More complex header processing. Each destination in the packet
+ needs a routing table lookup. So, an Xcast 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. Note however that:
+
+
+
+
+Boivie, et al. Experimental [Page 10]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ a) Since Xcast 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 do new headers
+ need to be constructed.
+
+ b) The header construction can be reduced to a very simple
+ operation: overwriting a 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.
+
+ 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 [OOMS].
+
+ e) When the packet enters a region of the network where link
+ bandwidth is not an issue anymore, the packet can be
+ transformed by a Premature X2U. Premature X2U (see Section
+ 11.2) occurs when a router decides to transform the Xcast
+ packet for one or more destinations into unicast packets. This
+ avoids more complex processing downstream.
+
+ f) Other mechanisms to reduce the processing have been described
+ in [IMAI] (tractable list) and [OOMS] (caching), but are not
+ (yet) part of the Xcast specification.
+
+ 3) Xcast only works with a limited number of receivers.
+
+5. Application
+
+ While Xcast is not suitable for multicast sessions with a large
+ number of members, such as the broadcast of an IETF meeting, it does
+ provide an important complement to existing multicast schemes in that
+ it can support very large numbers of small sessions. Thus, Xcast
+ enables important applications such as IP telephony,
+ videoconferencing, multi-player games, collaborative e-meetings, etc.
+ The number of these sessions will become huge.
+
+ Some may argue that it is not worthwhile to use multicast for
+ sessions with a limited number of members, and that it's preferable
+ to use unicast instead. But in certain cases, limited bandwidth in
+ the "last mile" makes it important to have some form of multicast, as
+ the following example illustrates. Assume n residential users set up
+ a video conference. Typically, access technologies are asymmetric
+ (e.g., xDSL, General Packet Radio Service (GPRS), or cable modem).
+ So, a host with xDSL has no problem receiving n-1 basic 100 kb/s
+
+
+
+
+Boivie, et al. Experimental [Page 11]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ video channels, 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.
+
+ A simple but important application of Xcast lies in bridging the
+ access link. The host sends the Xcast packet with the list of
+ unicast addresses and the first router performs a Premature X2U.
+
+ Since Xcast is not suitable for large groups, Xcast will not replace
+ the traditional IP multicast model, but it does offer an alternative
+ for multipoint-to-multipoint communications when there can be very
+ large numbers of small sessions.
+
+6. Xcast Flexibility
+
+ The main goal of multicast is to avoid duplicate information flowing
+ over the same link. By using traditional IP multicast instead of
+ unicast, bandwidth consumption decreases while the state and
+ signaling per session increases. Xcast has a cost of 0 in these two
+ dimensions, but it does introduce a third dimension corresponding to
+ the header processing per packet. This three-dimensional space is
+ depicted in Figure 3.
+
+ state&signaling
+ per session
+ in router
+ ^
+ |
+ |
+ ....
+ B | ....
+ . | ....
+ . | ....
+ . | ....
+ . +------------------..---> processing
+ . / .... C per packet
+ . / ..... in router
+ . / .....
+ . / .....
+ ./ .....
+ /A....
+ /
+ /
+ link bandwidth
+
+ Figure 3
+
+
+
+
+
+Boivie, et al. Experimental [Page 12]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ One method of delivering identical information from a source to n
+ destinations is to unicast the information n times (A in Figure 3).
+ A second method, the traditional IP multicast model (B in Figure 3),
+ sends the information only once to a multicast address. In Xcast,
+ the information is sent only once, but the packet contains a list of
+ destinations (point C).
+
+ The three points A, B, and C define a plane (indicated with dots in
+ Figure 3): 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.
+
+ One advantage of Xcast is that it allows a router to move within this
+ plane of conservation of misery based upon its location in a network.
+ For example, in the core of the network, a cache could be used to
+ move along the line from C to B without introducing any per-flow
+ signaling. Another possibility, as suggested above, is to use
+ premature X2U to move along the line from C to A in an access network
+ if there is an abundance of bandwidth in the backbone.
+
+7. Xcast Control Plane Options
+
+ Unlike traditional IP multicast schemes, Xcast does not specify a
+ "control plane". There is no Internet Group Management Protocol
+ (IGMP [3376]), and as mentioned above, there are no intra- or inter-
+ domain multicast routing protocols. With Xcast, the means by which
+ multicast sessions are defined is an application-level issue and
+ applications are not confined to the model in which hosts use IGMP to
+ join a multicast session. For example:
+
+ - Some applications might want to use an IGMP-like receiver-join
+ model.
+
+ - Other applications might want to use a model in which a user places
+ a call to the party or parties that he or she wants to talk to
+ (similar to the way that one puts together a conference call today
+ using the buttons on one's telephone).
+
+ - One might define a session based on the cells that are close to a
+ moving device in order to provide for a "smooth handoff" between
+ cells when the moving device crosses cell boundaries.
+
+ - In some applications, the members of the session might be specified
+ as arguments on a command line.
+
+
+
+
+
+Boivie, et al. Experimental [Page 13]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ - One might define an application that uses GPS to send video from a
+ bank robbery to the three police cars that are closest to the bank
+ being robbed.
+
+ Thus, the application developer is not limited to the receiver-
+ initiated joins of the IGMP model. There will be multiple ways in
+ which an Xcast sender determines the addresses of the members of the
+ channel.
+
+ For the purpose of establishing voice and multimedia conferences over
+ IP networks, several control planes have already been defined,
+ including SIP [3261] and H.323 [H323].
+
+7.1. SIP Control Plane for Xcast
+
+ In SIP, a host takes the 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.
+
+ In "meshed unicast" or "multi-unicasting", the application keeps
+ track of the participants' unicast addresses and sends a unicast to
+ each of those addresses. For reasons described in Section 3, multi-
+ unicasting (rather than multicast) is the prevalent solution in use
+ today. It's a simple matter to replace multi-unicast code with Xcast
+ code. All that the developer has to do is replace a loop that sends
+ a unicast to each of the participants by a single "xcast_send" that
+ sends the data to the participants. Thus it's easy to incorporate
+ Xcast into real conferencing applications.
+
+ Both Xcast and SIP address super-sparse multicast sessions. It turns
+ out that Xcast (a very flexible data plane mechanism) can be easily
+ integrated with SIP (a very flexible control plane protocol). When
+ an application decides to use Xcast forwarding it does not affect its
+ interface to the SIP agent: it can use the same SIP messages as it
+ would for multi-unicasting. SIP could be used with Xcast to support
+ the conferencing model mentioned above in which a caller places a
+ call to several parties.
+
+7.2. Receiver-Initiated Join for Xcast
+
+ In the previous section, it was discussed how to establish an Xcast
+ session among well known participants of a multi-party conference.
+ In some cases, it is useful for participants to be able to join a
+ session without being invited. For example, the chairman of a video
+
+
+
+Boivie, et al. Experimental [Page 14]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ chat may want to leave the door of their meeting open for newcomers.
+ The IGMP-like receiver-initiated join model mentioned above can be
+ implemented by introducing a server that hosts can talk to, to join a
+ conference.
+
+8. Optional Information
+
+8.1. List of Ports
+
+ Although an extension to SIP could be arranged such that all
+ participants in a session use the same transport (UDP) port number,
+ in the general case, it is possible for each participant to listen on
+ a different port number. To cover this case, the Xcast packet
+ optionally contains a list of port numbers.
+
+ If the list of port numbers is present, the destination port number
+ in the transport-layer header will be set to zero. On X2U, the
+ destination port number in the transport-layer header will be set to
+ the port number corresponding to the destination of the unicast
+ packet.
+
+8.2. List of DSCPs
+
+ The Xcast packet could (optionally) also contain a list of Diffserv
+ Code Points (DSCPs). While traditional IP multicast protocols have
+ to create separate groups for each service class, Xcast incorporates
+ the possibility of having receivers with different service
+ requirements within one channel.
+
+ The DSCP in the IP header will be set to the most demanding DSCP of
+ the list of DSCPs. This DSCP in the IP header will determine, e.g.,
+ the scheduler to use.
+
+ If two destinations, with the same next-hop, have 'non-mergeable'
+ DSCPs, two Xcast packets will be created. 'Non-mergeable' meaning
+ that one cannot say that one is more or less stringent than the
+ other.
+
+8.3. Channel Identifier
+
+ Optionally, a sender can decide to add an extra number in the Xcast
+ header: the Channel Identifier. If the source does not want to use
+ this option, it must set the Channel Identifier to zero. If the
+ Channel Identifier is non-zero, the pair (Source Address, Channel
+ Identifier) must uniquely identify the channel (note that this is
+ similar to the (S, G) pair in SSM). This document does not assign
+ any other semantics to the Channel Identifier besides the one above.
+
+
+
+
+Boivie, et al. Experimental [Page 15]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ This Channel Identifier could be useful for several purposes:
+
+ 1) A key to a caching table [OOMS].
+
+ 2) "Harmonization" when used with Host Group Multicast (to be
+ discussed in greater detail in another document).
+
+ 3) An identifier of the channel in error, flow control, etc.,
+ messages.
+
+ 4) It gives an extra demultiplexing possibility (beside the port-
+ number).
+
+ 5) ...
+
+ The size of the channel identifier and its semantics are TBD.
+
+9. Possible Xcast Packet Encoding
+
+9.1. General
+
+ The source address field of the IP header contains the address of the
+ Xcast sender. The destination address field carries the All-Xcast-
+ Routers address (to be assigned link-local multicast address); this
+ is to have a fixed value. Every Xcast router joins this multicast
+ group. The reasons for putting a fixed number in the destination
+ field are:
+
+ 1) The destination address field is part of the IP pseudo header and
+ the latter is covered by transport layer checksums (e.g., UDP
+ checksum). So, the fixed value avoids a (delta) recalculation of
+ the checksum.
+
+ 2) The IPsec Authentication Header (AH) [4302] covers the IP header
+ destination address, hence preventing any modification to that
+ field. Also, both AHs and Encapsulating Security Payloads (ESPs)
+ cover the whole UDP packet (via authentication and/or encryption).
+ The UDP checksum cannot therefore be updated if the IP header
+ destination address were to change.
+
+ 3) In Xcast for IPv6, the Routing Extension shall be used; this
+ header extension is only checked by a router if the packet is
+ destined to this router. This is achieved by making all Xcast
+ routers part of the All_Xcast_Routers group.
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 16]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ 4) Normally Xcast packets are only visible to Xcast routers.
+ However, if a non-Xcast router receives an Xcast packet by
+ accident (or by criminal intent), it will not send ICMP errors
+ since the Xcast packet carries a multicast address in the
+ destination address field [1812].
+
+ Note that some benefits only hold when the multicast address stays in
+ the destination field until it reaches the end-node (thus not
+ combinable with X2U).
+
+9.2. IPv4
+
+ [AGUI] and [1770] proposed (for a slightly different purpose) to
+ carry multiple destinations in the IPv4 option. But because of the
+ limited flexibility (limited size of the header), Xcast will follow
+ another approach. The list of destinations will be encoded in a
+ separate header. The Xcast header for IPv4 (in short, Xcast4) would
+ be carried between the IPv4 header and the transport-layer header.
+
+ [IPv4 header | Xcast4 | transport header | payload ]
+
+ Note also that since the Xcast header is added to the data portion of
+ the packet, if the sender wishes to avoid IP fragmentation, it must
+ take the size of the Xcast header into account.
+
+9.2.1. IPv4 Header
+
+ The Xcast4 header is carried on top of an IP header. The IP header
+ will carry the protocol number listed as usable for experimental
+ purposes in RFC 4727 [4727]. See also Section 15. The source
+ address field contains the address of the Xcast sender. The
+ destination address field carries the All_Xcast_Routers address.
+
+9.2.2. Xcast4 Header
+
+ The Xcast4 header is format depicted in Figure 4. It is composed of
+ two parts: a fixed part (first 12 octets) and two variable-length
+ parts that are specified by the fixed part.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 17]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ 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|A|X|D|P|R| NBR_OF_DEST | CHECKSUM |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | CHANNEL IDENTIFIER |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | PROT ID | LENGTH | RESV |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | List of Addresses and DSCPs |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | List of Port Numbers (optional) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 4
+
+ VERSION = Xcast version number. This document describes version 1.
+
+ A = Anonymity bit: if this bit is set, the destination addresses for
+ which the corresponding bit in the bitmap is zero must be overwritten
+ by zero.
+
+ X = Xcast bit: if this bit is set, a router must not reduce the Xcast
+ packet to unicast packet(s), i.e., the packet must stay an Xcast
+ packet end-to-end. This bit can be useful when IPsec [4301] is
+ applied. If this bit is cleared a router should apply X2U if there
+ is only one destination left in the Xcast packet. In some cases a
+ router could decide not to apply X2U to a packet with the Xcast bit
+ cleared, e.g., the router has no directly connected hosts and wants
+ to avoid the extra processing required by X2U.
+
+ D = DSCP bit: if this bit is set, the packet will contain a DS byte
+ for each destination.
+
+ P = Port bit: if this bit is set, the packet will contain a port
+ number for each destination.
+
+ NBR_OF_DEST = the number of original destinations.
+
+ CHECKSUM = A checksum on the Xcast header only. This is verified and
+ recomputed at each point that the Xcast header is processed. The
+ checksum field is the 16-bit one's complement of the one's complement
+ sum of all the bytes in the header. For purposes of computing the
+ checksum, the value of the checksum field is zero. It is not clear
+ yet whether a checksum is needed (for further study). If only one
+ destination is wrong it can still be useful to forward the packet to
+ N-1 correct destinations and 1 incorrect destination.
+
+
+
+
+Boivie, et al. Experimental [Page 18]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ CHANNEL IDENTIFIER = 4-octet Channel Identifier (see Section 8.3).
+ Since it is located within the first 8 bytes of the header, it will
+ be returned in ICMP messages.
+
+ PROT ID = specifies the protocol of the following header.
+
+ LENGTH = length of the Xcast header in 4-octet words. This field
+ puts an upper boundary to the number of destinations. This value is
+ also determined by the NBR_OF_DEST field and the D and P bits.
+
+ RESV = R = Reserved. It must be zero on transmission and must be
+ ignored on receipt.
+
+ The first variable part is the 'List of Addresses and DSCPs', the
+ second variable part is the 'List of Port Numbers'. Both are 4-octet
+ aligned. The second variable part is only present if the P-bit is
+ set.
+
+ Figure 5 gives an example of the variable part for the case that the
+ P-bit is set and the D-bit is cleared (in this example, N is odd):
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BITMAP |
+ ~ ~
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Destination 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ~ ... ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Destination N |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Port 1 | Port 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ~ ... ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Port N | padding |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 5
+
+
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 19]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ BITMAP = every destination has a corresponding bit in the bitmap to
+ indicate whether the destination is still valid on this branch of the
+ tree. The first bit corresponds to the first destination in the
+ list. This field is 4-octet aligned (e.g., for 49 destinations,
+ there will be a 64-bit bitmap). If Xcast is applied in combination
+ with IPsec, the bitmap -- since it can change en route -- has to be
+ moved to a new to-be-defined IPv4 option.
+
+ List of Destinations. Each address size is 4 octets.
+
+ List of Port Numbers. List of 2-octet destination port number(s),
+ where each port corresponds in placement to the preceding Destination
+ Address.
+
+9.3. IPv6
+
+ The Xcast6 header encoding is similar to IPv4, except that Xcast
+ information would be stored in IPv6 extension headers.
+
+ [IPv6 header | Xcast6 | transport header | payload ]
+
+9.3.1. IPv6 Header
+
+ The IPv6 header will carry the NextHeader value 'Routing Extension'.
+ The source address field contains the address of the Xcast sender.
+ The destination address field carries the All_Xcast_Routers address.
+
+9.3.2. Xcast6 Header
+
+ The Xcast6 header is also composed of a fixed part and two variable
+ parts. The fixed part and the first variable part are carried in a
+ Routing Extension. The second variable part is carried in a
+ Destination Extension.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 20]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+9.3.2.1. Routing Extension Header
+
+ The P-bit of Xcast4 is not present because it is implicit by the
+ presence or absence of the Destination Extension (Figure 6).
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Next Header | HdrExtLen |RouteType=Xcast| 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |VERSION|A|X|D| R | NBR_OF_DEST | CHECKSUM |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | CHANNEL IDENTIFIER |
+ ~ ~
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | List of Addresses and DSCPs |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 6
+
+ HdrExtLen = The header length is expressed in 8-octets; thus, a
+ maximum of 127 destinations can be listed (this is why NBR_OF_DEST is
+ 7 bits).
+
+ RouteType = Xcast (see Section 15)
+
+ The fourth octet is set to 0.
+
+ R = Reserved.
+
+ CHANNEL IDENTIFIER = 16-octet Channel Identifier (see Section 8.3).
+
+ The other fields are defined in Section 9.2.2.
+
+ The 'List of Addresses and DSCPs' is 8-octet aligned. The size of
+ the bitmap is determined by the number of destinations and is a
+ multiple of 64 bits.
+
+9.3.2.2. Destination Extension Header
+
+ Optionally, the Destination Extension (Figure 7) is present to
+ specify the list of Port Numbers. The destination header is only
+ evaluated by the destination node.
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 21]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Next Header | HdrExtLen |Opt Type=Ports | Opt Data Len |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | List of Port Numbers |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 7
+
+ For the Option Type for Ports, see Section 15. The first three bits
+ must be 010 to indicate that the packet must be discarded if the
+ option is unknown and that the option cannot be changed en-route.
+
+ The number of Ports must be equal to the number of destinations
+ specified in the Routing header.
+
+10. Impact on Upper-Layer Protocols
+
+ Some fields in the Xcast header(s) can be modified as the packet
+ travels along its delivery path. This has an impact on:
+
+10.1. Checksum Calculation in Transport-Layer Headers
+
+ In transport-layer headers, the target of the checksum calculation
+ includes the IP pseudo header, transport header, and payload (IPv6
+ header extensions are not a target).
+
+ The transformation of an Xcast packet to a normal unicast packet --
+ (premature) X2U -- replaces the multicast address in the IP header
+ destination field by the address of a final destination. If the
+ Xcast header contains a Port List, the port number in the transport
+ layer (which should be zero) also needs to be replaced by the port
+ number corresponding to the destination. This requires a
+ recalculation of these checksums. Note that this does not require a
+ complete recalculation of the checksum, only a delta calculation,
+ e.g., for IPv4:
+
+ Checksum' = ~ (~Checksum + ~daH + ~daL + daH' + daL' + ~dp + dp')
+
+ In which "'" indicates the new values, "da" the destination address,
+ "dp" the destination port, and "H" and "L" the higher and lower 16
+ bits, respectively.
+
+10.2. IPsec
+
+ This is described in [PARI].
+
+
+
+
+Boivie, et al. Experimental [Page 22]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+11. Gradual Deployment
+
+11.1. Tunneling
+
+ One way to deploy Xcast in a network that has routers that have no
+ knowledge of Xcast is to setup "tunnels" between Xcast peers (MBone
+ approach [MBONE]). This enables the creation of a virtual network
+ layered on top of an existing network [2003]. The Xcast routers
+ exchange and maintain Xcast routing information via any standard
+ unicast routing protocol (e.g., RIP, OSPF, IS-IS, BGP). The Xcast
+ routing table that is created is simply a standard unicast routing
+ table that contains the destinations that have Xcast connectivity,
+ along with their corresponding Xcast next hops. In this way, packets
+ may be forwarded hop-by-hop to other Xcast routers, or may be
+ "tunneled" through non- Xcast routers in the network.
+
+ For example, suppose that A is trying to get packets distributed to
+ B, C, and D in Figure 8 below, where "X" routers are Xcast-capable,
+ and "R" routers are not. Figure 9 shows the routing tables created
+ via the Xcast tunnels:
+
+ R4 ---- B
+ /
+ /
+ A ----- X1 ---- R2 ---- X3 R8 ---- C
+ \ /
+ \ /
+ R5 ---- R6 ---- X7
+ \
+ \
+ R9 ---- D
+
+ Figure 8
+
+ Router X1 establishes a tunnel to Xcast peer X3. Router X3
+ establishes a tunnel to Xcast peers X1 and X7. Router X7 establishes
+ a tunnel to Xcast peer X3.
+
+ X1 routing table: X3 routing table: X7 routing table:
+ Dest | NextHop Dest | NextHop Dest | NextHop
+ ------+---------- ------+--------- ------+---------
+ B | X3 A | X1 A | X3
+ C | X3 C | X7 B | X3
+ D | X3 D | X7
+
+ Figure 9
+
+
+
+
+
+Boivie, et al. Experimental [Page 23]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ The source A will send an Xcast packet to its default Xcast router,
+ X1, that includes the list of destinations for the packet. The
+ packet on the link between X1 and X3 is depicted in Figure 10:
+
+ +----------+
+ | payload |
+ +----------+
+ | UDP |
+ +----------+
+ | Xcast |
+ | B,C,D |
+ | prot=UDP |
+ +----------+
+ | inner IP |
+ | src=A |
+ |dst=All_X_|
+ |prot=Xcast|
+ +----------+
+ | outer IP |
+ | src=X1 |
+ | dst=X3 |
+ | prot=IP |
+ +----------+
+
+ Figure 10
+
+ When X3 receives this packet, it processes it as follows:
+
+ - Perform a route table lookup in the Xcast routing table to
+ determine the Xcast next hop for each of the destinations listed in
+ the packet.
+
+ - If no Xcast next hop is found, replicate the packet and send a
+ standard unicast to the destination.
+
+ - For those destinations for which an Xcast next hop is found,
+ partition the destinations based on their next hops.
+
+ - Replicate the packet so that there's one copy of the packet for
+ each of the Xcast next hops found in the previous steps.
+
+ - Modify the list of destinations in each of the copies so that the
+ list in the copy for a given next hop includes just the
+ destinations that ought to be routed through that next hop.
+
+ - Send the modified copies of the packet on to the next hops.
+
+
+
+
+
+Boivie, et al. Experimental [Page 24]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ - Optimization: If there is only one destination for a particular
+ Xcast next hop, send the packet as a standard unicast packet to the
+ destination, since there is no advantage to forwarding it as an
+ Xcast packet.
+
+ So, in the example above, X1 will send a single packet on to X3 with
+ a destination list of < B C D >. This packet will be received by R2
+ as a unicast packet with destination X3, and R2 will forward it on,
+ having no knowledge of Xcast. When X3 receives the packet, it will,
+ by the algorithm above, send one copy of the packet to destination
+ < B > as an ordinary unicast packet, and 1 copy of the packet to X7
+ with a destination list of < C D >. R4, R5, and R6 will behave as
+ standard routers with no knowledge of Xcast. When X7 receives the
+ packet, it will parse the packet and transmit ordinary unicast
+ packets addressed to < C > and < D >, respectively.
+
+ The updating of this route table, while simple in an intra-domain
+ environment, would be more complex in an inter-domain environment.
+ Thus, the use of tunneling in an inter-domain environment requires
+ further consideration.
+
+11.2. Premature X2U
+
+ If a router discovers that its downstream neighbor is not Xcast
+ capable, it can perform a Premature X2U, i.e., send a unicast packet
+ for each destination in the Xcast header that has this neighbor as a
+ next hop. Thus, duplication is done before the Xcast packet reached
+ its actual branching point.
+
+ A mechanism (protocol/protocol extension) to discover the Xcast
+ capability of a neighbor is for further study. Among others, one
+ could think of an extension to a routing protocol to advertise Xcast
+ capabilities, or one could send periodic 'Xcast pings' to its
+ neighbors (send an Xcast packet that contains its own address as a
+ destination and check whether the packet returns).
+
+11.3. Semi-Permeable Tunneling (IPv6 Only)
+
+ This is an optimization of tunneling in the sense that it does not
+ require (manual) configuration of tunnels. It is enabled by adding a
+ Hop-by-Hop Xcast6 header. An IPv6 packet can initiate/trigger
+ additional processing in the on-route routers by using the IPv6 Hop-
+ by-hop option.
+
+ The type of the Xcast6 Hop-by-hop option has a prefix '00' so that
+ routers that cannot recognize Xcast6 can treat the Xcast6 datagram as
+ a normal IPv6 datagram and forward it toward the destination in the
+ IPv6 header.
+
+
+
+Boivie, et al. Experimental [Page 25]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ Packets will be delivered to all members if at least all
+ participating hosts are upgraded.
+
+ When the source A sends an Xcast packet via semi-permeable tunneling
+ to destinations B, C, and D, it will create the packet of Figure 11.
+ One of the final destinations will be put in the destination address
+ field of the outer IP header.
+
+ +----------+
+ | payload |
+ +----------+
+ | UDP |
+ +----------+
+ | Xcast |
+ | |
+ +----------+
+ | inner IP |
+ | src=A |
+ |dst=All_X_|
+ |prot=Xcast|
+ +----------+
+ | Xcast |
+ |SP-tunnel |
+ |Hop-by-hop|
+ +----------+
+ | outer IP |
+ | src=A |
+ | dst=B |
+ | prot=IP |
+ +----------+
+
+ Figure 11
+
+ Semi-permeable tunneling is a special tunneling technology that
+ permits intermediate Xcast routers on a tunnel to check the
+ destinations and branch if destinations have a different next hop.
+
+ Note that with the introduction of an Xcast IPv4 option, this
+ technique could also be applied in IPv4 networks.
+
+11.4. Special Case: Deployment without Network Support
+
+ A special method of deploying Xcast is possible by upgrading only the
+ hosts. By applying tunneling (see Sections 11.1 and 11.3) with one
+ of the final destinations as a tunnel endpoint, the Xcast packet will
+ be delivered to all destinations when all the hosts are Xcast aware.
+ Both normal and semi-permeable tunneling can be used.
+
+
+
+
+Boivie, et al. Experimental [Page 26]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ If host B receives this packet, in the above example, it will notice
+ the other destinations in the Xcast header. B will create a new
+ Xcast packet and will send it to one of the remaining destinations.
+
+ In the case of Xcast6 and semi-permeable tunneling, Xcast routers can
+ be introduced in the network without the need of configuring tunnels.
+
+ The disadvantages of this method are:
+
+ - all hosts in the session need to be upgraded.
+
+ - non-optimal routing.
+
+ - anonymity issue: hosts can know the identity of other parties in
+ the session (which is not a big issue in conferencing, but maybe for
+ some other application).
+
+ - host has to perform network functions and needs an upstream link
+ which has the same bandwidth as its downstream link.
+
+11.5. Using a Small Number of Xcast-Aware Routers to Provide Xcast
+ in a Not-So-Small Network
+
+ In this approach, an Xcast packet uses a special 32-bit unicast
+ address in the destination field of the IP header. In the simplest
+ version of this scheme, there might be only a single Xcast-aware
+ router in a network. This Xcast-aware router looks like a "server"
+ to the other routers and it is configured so that its IP address (or
+ one of its IP addresses) corresponds to the "special" 32-bit address.
+ Thus, when Xcast clients send Xcast packets, the non-Xcast-aware
+ routers will route these packets to the Xcast-aware router and the
+ Xcast-aware router can "explode" (X2U) them into an appropriate set
+ of unicast packets. This allows clients anywhere in a network to use
+ Xcast to overcome the problem of limited bandwidth in the "first
+ mile" with a minimum number of Xcast-aware routers (i.e., 1).
+
+ Another possibility is to deploy a few of these Xcast-aware routers
+ at various points in the network and to configure each of these with
+ the special 32-bit address. This provides redundancy, eliminating
+ the single point of failure, and reduces the distance an Xcast packet
+ needs to travel to reach an Xcast-aware router, reducing network
+ latencies. In this case, the Xcast-aware routers appear to be a
+ single server that is "multihomed" (i.e., connected to the network at
+ more than one place) and the non-Xcast-aware routers will, via
+ ordinary unicast routing, deliver packets that are addressed to this
+ "multihomed virtual server" via the shortest available path.
+
+
+
+
+
+Boivie, et al. Experimental [Page 27]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ Note that this scheme of delivering packets to any host in a group is
+ also known as an "anycast" and is described in more detail in RFCs
+ [1546], [2526], and [3068]. Note too that RFC 1546 says:
+
+ The important observation is that multiple routes to an anycast
+ address appear to a router as multiple routes to a unicast
+ destination, and the router can use standard algorithms to
+ choose the best route.
+
+12. (Socket) API
+
+ In the most simple use of Xcast, the final destinations of an Xcast
+ packet receive an ordinary unicast UDP packet. This means that hosts
+ can receive an Xcast packet with a standard, unmodified TCP/IP stack.
+
+ Hosts can also transmit Xcast packets with a standard TCP/IP stack
+ with a small Xcast library that sends Xcast packets on a raw socket.
+ This has been used to implement Xcast-based applications on both Unix
+ and Windows platforms without any kernel changes.
+
+ Another possibility is to modify the sockets interface slightly. For
+ example, one might add an "xcast_sendto" function that works like
+ "sendto" but that uses a list of destination addresses in place of
+ the single address that "sendto" uses.
+
+13. Unresolved Issues
+
+ Additional work is needed in several areas.
+
+13.1. The Format of the "List of Addresses"
+
+ Additional details need to be specified. For example, in the IPv4
+ case, the format of the DSCPs option needs to be specified.
+
+13.2. The Size of Channel Identifier
+
+ The size of the channel identifiers in IPv4 and IPv6 are different in
+ this document. 32 bits might be sufficient for both IPv6 and IPv4.
+
+13.3. Incremental Deployment
+
+ Several possible methods of incremental deployment are discussed in
+ this document including tunneling, premature X2U, etc. Additional
+ work is needed to determine the best means of incremental deployment
+ for an intra-domain as well as an inter-domain deployment of Xcast.
+ If tunneling is used, additional details need to be specified (e.g.,
+ tunneling format, use of tunnels in the inter-domain case).
+
+
+
+
+Boivie, et al. Experimental [Page 28]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+13.4. DSCP Usage
+
+ DSCP usage needs some work. DSCPs may have to be rewritten as
+ packets cross inter-domain boundaries.
+
+13.5. Traversing a Firewall or NAT Products
+
+ The usage of a different, carried protocol type for IPv4 may cause
+ difficulty in traversing some firewall and NAT products.
+
+13.6. The Size of BITMAP
+
+ Given that this is designed for small groups, it might make sense to
+ simply mandate a fixed size for the bitmap.
+
+14. Security Considerations
+
+ The list of destinations in Xcast is provided by an application layer
+ that manages group membership as well as authorization if
+ authorization is desired.
+
+ Since a source has the list of destinations and can make changes to
+ the list, it has more control over where its packets go than in
+ traditional multicast and can prevent anonymous eavesdroppers from
+ joining a multicast session, for example.
+
+ Some forms of denial-of-service attack can use Xcast to increase
+ their "effect". A smurf attack, for example, sends an ICMP Echo
+ Request in which the source address in the packet is set to the
+ address of the target of the attack so that the target will receive
+ the ICMP echo reply. With Xcast, the ICMP Echo Request could be sent
+ to a list of destinations that could cause each member of the list to
+ send an Echo Reply to the target.
+
+ Measures have been taken in traditional multicast to avoid this kind
+ of attack. A router or host can be configured so that it will not
+ reply to ICMP requests addressed to a multicast address. The Reverse
+ Path Forwarding check in traditional multicast architectures also
+ helps limit these attacks. In Xcast, it can be difficult for a host
+ to recognize that an ICMP request has been addressed to multiple
+ destinations since the packet may be an ordinary unicast packet by
+ the time it reaches the host. On the other hand, a router can detect
+ Xcast packets that are used to send ICMP requests to multiple
+ destinations and can be configured to drop those packets. Note, too,
+ that since Xcast sends packets to a short list of destinations, the
+ problem of sending attack packets to multiple destination is less of
+
+
+
+
+
+Boivie, et al. Experimental [Page 29]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ a problem than in traditional multicast. Obviously, the use of IPsec
+ to provide confidentiality and/or authentication can further diminish
+ the risk of this type of attack.
+
+ The problem of secure group communications has been addressed by the
+ Multicast Security (MSEC) working group, which has defined an
+ architecture for securing IP-multicast-based group communications
+ [3740]. Many of the concepts discussed in the MSEC working group,
+ such as managing group membership, identifying and authenticating
+ group members, protecting the confidentiality and integrity of
+ multicast traffic, and managing and securely distributing and
+ refreshing keys, also apply to Xcast-based group communications. And
+ many of the same mechanisms seem to apply. One significant
+ difference between multicast and Xcast is the fact that the Xcast
+ header (or at least a bitmap in the Xcast header) needs to change as
+ an Xcast packet travels from a source to a destination. This affects
+ the use of IPsec and suggests that at least the Xcast header bitmap
+ must be in a "mutable" field. A complete solution for securing
+ Xcast-based group communications addressing all the issues listed
+ above will be the subject of additional work which will be discussed
+ in one or more additional documents. We expect that this effort will
+ build on the work that has already been done in the msec working
+ group.
+
+15. IANA Considerations
+
+ Experimentation with the Xcast protocol requires the use of protocol
+ numbers maintained by IANA. For example, to implement XCAST6,
+ implementations must agree on four protocol numbers:
+
+ (1) Multicast Address for All_Xcast_Routers
+ (2) Routing Type of IPv6 Routing Header
+ (3) Option Type of IPv6 Destination Option Header
+ (4) Option Type of IPv6 Hop-by-Hop Options Header
+
+ A protocol implementer may temporarily experiment with Xcast by using
+ the values set aside for experimental use in RFC [4727]. An
+ implementer must verify that no other experiment uses the same values
+ on the Xcast testbed at the same time.
+
+ A future revision of the Xcast specification published on the
+ standards track is required before IANA can assign permanent registry
+ entries for Xcast. Implementers should be aware that they will need
+ to modify their implementations when such permanent allocations are
+ made.
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 30]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+16. Informative References
+
+ [1546] Partridge, C., Mendez, T., and W. Milliken, "Host Anycasting
+ Service", RFC 1546, November 1993.
+
+ [2526] Johnson, D. and S. Deering, "Reserved IPv6 Subnet Anycast
+ Addresses", RFC 2526, March 1999.
+
+ [3068] Huitema, C., "An Anycast Prefix for 6to4 Relay Routers", RFC
+ 3068, June 2001.
+
+ [1112] Deering, S., "Host extensions for IP multicasting", STD 5,
+ RFC 1112, August 1989.
+
+ [1075] Waitzman, D., Partridge, C., and S. Deering, "Distance Vector
+ Multicast Routing Protocol", RFC 1075, November 1988.
+
+ [1770] Graff, C., "IPv4 Option for Sender Directed Multi-Destination
+ Delivery", RFC 1770, March 1995.
+
+ [1812] Baker, F., Ed., "Requirements for IP Version 4 Routers", RFC
+ 1812, June 1995.
+
+ [2003] Perkins, C., "IP Encapsulation within IP", RFC 2003, October
+ 1996.
+
+ [2201] Ballardie, A., "Core Based Trees (CBT) Multicast Routing
+ Architecture", RFC 2201, September 1997.
+
+ [2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
+ (IPv6) Specification", RFC 2460, December 1998.
+
+ [2902] Deering, S., Hares, S., Perkins, C., and R. Perlman,
+ "Overview of the 1998 IAB Routing Workshop", RFC 2902, August
+ 2000.
+
+ [3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
+ Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
+ Session Initiation Protocol", RFC 3261, June 2002.
+
+ [3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
+ Thyagarajan, "Internet Group Management Protocol, Version 3",
+ RFC 3376, October 2002.
+
+ [3740] Hardjono, T. and B. Weis, "The Multicast Group Security
+ Architecture", RFC 3740, March 2004.
+
+
+
+
+
+Boivie, et al. Experimental [Page 31]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ [4301] Kent, S. and K. Seo, "Security Architecture for the Internet
+ Protocol", RFC 4301, December 2005.
+
+ [4302] Kent, S., "IP Authentication Header", RFC 4302, December
+ 2005.
+
+ [4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for IP",
+ RFC 4607, August 2006.
+
+ [4727] Fenner, B., "Experimental Values In IPv4, IPv6, ICMPv4,
+ ICMPv6, UDP, and TCP Headers", RFC 4727, November 2006.
+
+ [AGUI] L. Aguilar, "Datagram Routing for Internet Multicasting",
+ SIGCOMM '84, March 1984.
+
+ [CHER] David R. Cheriton, Stephen E. Deering, "Host groups: a
+ multicast extension for datagram internetworks", Proceedings
+ of the ninth symposium on Data communications, p. 172-179,
+ September 1985, Whistler Moutain, British Columbia, Canada.
+
+ [BOIV] Boivie, R. and N. Feldman, "Small Group Multicast", Work in
+ Progress, February 2001.
+
+ [DEER] S. Deering, "Multicast Routing in a datagram internetwork",
+ PhD thesis, December 1991.
+
+ [DEE2] S. Deering, D. Estrin, D. Farinacci, V. Jacobson, C. Liu, and
+ L. Wei, "The Pim Architecture for Wide-area Multicast
+ Routing", ACM Transactions on Networks, April 1996.
+
+ [FARI] Farinacci, D., et al., "Multicast Source Discovery Protocol",
+ Work in Progress, June 1998.
+
+ [H323] ITU-T Recommendation H.323 (2000), Packet-Based Multimedia
+ Communications Systems.
+
+ [IMAI] Imai, Y., "Multiple Destination option on IPv6 (MDO6)", Work
+ in Progress, September 2000,
+
+ [MBONE] Casner, S., "Frequently Asked Questions (FAQ) on the
+ Multicast Backbone (MBONE)",
+ <ftp://ftp.isi.edu/mbone/faq.txt>.
+
+ [OOMS] Ooms, D., Livens, W., and O. Paridaens, "Connectionless
+ Multicast", Work in Progress, April 2000.
+
+ [PARI] Paridaens, O., Ooms, D., and B. Sales, "Security Framework
+ for Explicit Multicast", Work in Progress, June 2002.
+
+
+
+Boivie, et al. Experimental [Page 32]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+ [RMT] Reliable Multicast Transport Working Group web site,
+ <http://www.ietf.org/html.charters/rmt-charter.html>, June
+ 15, 1999.
+
+ [SOLA] M. Sola, M. Ohta, T. Maeno, "Scalability of Internet
+ Multicast Protocols", INET'98,
+ <http://www.isoc.org/inet98/proceedings/6d/6d_3.htm>.
+
+17. Contributors
+
+ Olivier Paridaens
+ Alcatel Network Strategy Group
+ Fr. Wellesplein 1, 2018
+ Antwerpen, Belgium
+ Phone: 32 3 2409320
+ EMail: Olivier.Paridaens@alcatel.be
+
+ Eiichi Muramoto
+ Matsushita Electric Industrial Co., Ltd.
+ 4-12-4 Higashi-shinagawa, Shinagawa-ku
+ Tokyo 140-8587, Japan
+ Phone: +81-3-6710-2031
+ EMail: muramoto@xcast.jp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 33]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+Authors' Addresses
+
+ Rick Boivie
+ IBM T. J. Watson Research Center
+ 19 Skyline Drive
+ Hawthorne, NY 10532
+ Phone: 914-784-3251
+ EMail: rhboivie@us.ibm.com
+
+ Nancy Feldman
+ IBM T. J. Watson Research Center
+ 19 Skyline Drive
+ Hawthorne, NY 10532
+ EMail: nkfeldman@yahoo.com
+
+ Yuji Imai
+ Fujitsu Laboratories Ltd.
+ 1-1, Kamikodanaka 4-Chome, Nakahara-ku
+ Kawasaki 211-8588, Japan
+ Phone: +81-44-754-2628
+ Fax : +81-44-754-2793
+ EMail: ug@xcast.jp
+
+ Wim Livens
+ ESCAUX
+ Krijtstraat 17, 2600
+ Berchem, Belgium
+ EMail: wim@livens.net
+
+ Dirk Ooms
+ OneSparrow
+ Belegstraat 13; 2018
+ Antwerp, Belgium
+ EMail: dirk@onesparrow.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 34]
+
+RFC 5058 Xcast Concepts and Options November 2007
+
+
+Full Copyright Statement
+
+ Copyright (C) The IETF Trust (2007).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78 and at www.rfc-editor.org/copyright.html, and
+ except as set forth therein, the authors retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
+ THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+ THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+
+
+
+
+
+
+
+
+
+
+
+Boivie, et al. Experimental [Page 35]
+