One document matched: draft-ooms-cl-multicast-01.txt
Differences from draft-ooms-cl-multicast-00.txt
October, 1999
Expires April, 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
number of members per multicast session, not in the number of
sessions. CLM will not replace the traditional multicast model. CLM
Ooms, et al. Expires April 2000 [Page 1]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
offers an alternative for mp2mp communication in the cases that
traditional multicast becomes problematic.
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 critique on 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. Cloning
6. Caching
7. Address list encoding
8. IP Protocol extensions
8.1. IPv4
8.2. IPv6
9. Security Considerations
10. 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
IRC Internet Relay Chat
mp2mp multipoint-to-multipoint
PIM-SM Protocol Independent Multicast Sparse Mode
RUN Receiver Update Notification
SM Simple Multicast
1. Introduction
Ooms, et al. Expires April 2000 [Page 2]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
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.
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 in the
access network, while state&signaling/session and processing/packet
encounter limitations in the core of the network.
Traditional multicast can move a little bit along the line A-B by
Ooms, et al. Expires April 2000 [Page 3]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
switching between source and shared trees. However, this flexibility
is very limited. Thus state&signaling/session is, amongst others
(see section 2) a problem for the traditional multicast model in the
backbone.
Also pure CLM encounters limitations in the core of the network
(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 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 local
loop 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 local network
conditions makes CLM an excellent multicast forwarding mechanism in
the heterogeneous internetworks, as we currently know them.
2. The critique on the traditional multicast model
The characteristics of the traditional IP multicast model are
Ooms, et al. Expires April 2000 [Page 4]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
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 disadvantages:
- Multicast address allocation: The creator of a multicast group must
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 drawbacks:
- Connection state scalability: The multicast routing protocols
exchange messages that create state for each multicast 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, yielding huge multicast forwarding tables that have to be
maintained in the backbone. The name Connectionless Multicast refers
to the elimination of this connection state.
- Source advertisement mechanism scalability: 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.
Multicast address allocation, destination unawareness and scalability
issues are delaying widescale deployment of multicast, leading to a
Ooms, et al. Expires April 2000 [Page 5]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
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. Furthermore, state
can be avoided in parts of the network by creating tunnels. Note
however that these tunnels are point-to-point and if e.g. a link has
n tunnels for a certain group it will still carry n times the same
data.
- In Express [HOLB], a multicast channel is identified by source and
multicast addresses. Thus address allocation is not required and
since there is no core, there is no core advertisement either.
Creating a multicast session with multiple changing sources is
implemented by using a session manager and a set of multicast
channels. Note that each on-tree node still keeps state for each
source of the multicast session.
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 address in traditional
IP multicast).
In each router the next hop for each destination is determined and
for every distinct next hop a new header is constructed. This header
only contains the destinations for which that next hop is on the
shortest path to these destinations. When there is only one
destination left the CLM packet turns 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
Ooms, et al. Expires April 2000 [Page 6]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
becomes problematic.
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) Easy transition phase. The destination address field of the IPv4
header will carry one of the addresses of the list of receivers.
This enables a gradual introduction of CLM in the network. If a
router does not understand CLM, it forwards the CLM packet as a
normal unicast packet. The downstream CLM-upgraded routers will then
take care of the branching of the tree. The minimal condition to
make CLM work in the current Internet is that the designated router
(= first router connected to host) of all the destinations
participating in a CLM session are CLM-upgraded. When at least these
routers are CLM-upgraded correct packet delivery is assured.
4) No symmetrical paths required. Traditional multicast routing
protocols assume (for optimal functioning) symmetrical paths, i.e.
the shortest path from A to B is the same as the shortest path from B
to A. This is a false assumption in the current Internet and it is
expected that this statement will become even more false when traffic
engineering and more policy routing is introduced in the Internet.
5) 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.
6) 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.
7) Heterogeneous receivers. Besides the list of destinations, the
Ooms, et al. Expires April 2000 [Page 7]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
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.
8) Policy routing via BGP. No need for a specific multicast policy
routing protocol (extension).
9) Unicast traffic engineering can be applied, no need for multicast
traffic engineering.
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 the 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. By using a simple caching mechanism (see section
6) in these non-branching points, the classical forwarding method can
be used and therefore the same performance achieved.
b) Among the non-branching points, a lot of them will contain only
one destination. In these cases normal unicast forwarding is
applied.
c) 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).
d) The forwarding in the branching points can also be enhanced by a
caching mechanism (section 6).
e) 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).
3) Multi-access networks. Since e.g. Ethernet does not support CLM,
this multi-access network will carry duplicate packets, one for each
next hop.
Ooms, et al. Expires April 2000 [Page 8]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
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. video conferences.
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 a 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 a multicast forwarding.
- Session Initiation Protocol (SIP) [HAND]. 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.
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
Ooms, et al. Expires April 2000 [Page 9]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
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 2). 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 2
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
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.
Ooms, et al. Expires April 2000 [Page 10]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
| 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)
SM/CLM | / |exit router | network (CLM)
MRDP/CLM | / | RP | network (CLM)
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. 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 local loop).
6. Caching
The increased forwarding complexity is the main problem of 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. If the source supports caching it
will put a non-zero number in the cache field of the IP option or in
the CLM 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 will 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
Ooms, et al. Expires April 2000 [Page 11]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
the cache entry still relies on a 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.
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
outgoing IP option or CLM header (or list of destinations).
2) Only (S, RUN) which have one next-hop (still multiple
destinations) are cached. These packets do not have to change their
IP option or CLM header, so the latter information should not be kept
in the cache.
Both ways of applying a cache can be used in parallel.
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 3. 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
compound address A{BC{D,E},FGH}.
Ooms, et al. Expires April 2000 [Page 12]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
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 3
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 10 (9 in the option and 1 in
the destination field of the IP header) destination addresses can be
included. If the number of receivers is larger than 10 multiple
packets can be sent. Although for a different purpose, [AGUI] and
[GRAF] already proposed an IPv4 option to carry multiple
destinations. We propose the new IP option depicted in Figure 4.
Ooms, et al. Expires April 2000 [Page 13]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 0 0| TYPE | LENGTH |D| ENC | RUN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Encoded) List of DS Bytes and Addresses |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4
TYPE = number for this IPv4 option
LENGTH = total length of the option in bytes
D = if this bit is set the packet will contain a (encoded) DS-byte
for each destination.
ENC (3 bits) = encoding method used on the list of DS bytes and
destination addresses. Following encoding methods are defined:
0 = no encoding
1 = hierarchical address list encoding (see section 7)
RUN (12 bits) = Receiver Update Notification (see section 6). If the
sender does not support the caching mechanism, it has to set RUN to
zero.
Figure 5. shows the 'List of DS Bytes and Addresses' in case the D-
bit is set and ENC = 0. Remember that the first destination and DS
byte are placed in the normal IP header.
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 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| destination address N |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DS byte 2 | DS byte 3 | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | DS byte N | padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5
The 'List of DS Bytes and Addresses' encoding in case the D-bit is
Ooms, et al. Expires April 2000 [Page 14]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
cleared and ENC = 1 is explained in Appendix A.3.
Instead of using the IP option field one could add an extra header
between the network and the transport layer. This header is depicted
in Figure 6. The IP header will carry the protocol number PROTO_CLM.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|VERSION|UNUSED | PROT ID | LENGTH |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CHECKSUM |D| ENC | RUN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Encoded) List of DS Bytes and Addresses |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6
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
wrongly. One approach could be to provide a checksum per
destination.
The other fields were described earlier.
8.2. 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 lot of
delay and can delay other packets as well if no preemptive scheduler
is used.
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
Ooms, et al. Expires April 2000 [Page 15]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
addresses. Moreover if CLM is used as an interdomain multicast
mechanism only the locator part of the address needs to be
considered.
9. Security Considerations
Since a packet contains every destination, it is much more easy to
restrict multicast sessions to certain receivers. It also allows
ISPs to check, when a packet enters their network, how much resources
this packet packet will consume in their network.
In the end-to-end mode it is also easy to restrict the number of
senders or to restrict/monitor the bandwidth of a sender.
10. Acknowledgements
The authors would like to thank Emmanuel Desmet, Hans De Neve and
Miroslav Vrana for the fruitful discussions and/or their thorough
revision of this document.
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:
<compound_address> ::= prefix "{" <suffix_list> "}"
<prefix> ::= [<address_fragment>]
<suffix_list> ::= [<suffix_list> ","] <suffix>
<suffix> ::= <compound_address> | <address_fragment>
<address_fragment> ::= [<address_fragment>] <symbol>
<symbol> ::= [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.
Ooms, et al. Expires April 2000 [Page 16]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
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) {
len=LEN(meta); /* number of non-meta symbols that
* follow */
for (i=0; i<len; i++) { /* parse len symbols as
* address_fragment */
getch(symbol); /* read next symbol from the compound
* address */
if (!skip) {
lookup(symbol, &index); /* search in the routing table, using
* symbol, starting from index, storing
* the resulting location back in index
*/
if (IS_LEAF(index)) { /* the next-hop is determined */
forward(index); /* forward packet to this nexthop */
skip=stack_pointer; /* skip to end of this suffix */
}
}
}
getch(meta); /* get next meta symbol */
if (IS_OPEN_BRACKET(meta))
push(index); /* push index on the stack */
if (skip==stack_pointer)
skip=0; /* we've skipped the list_element */
if (IS_CLOSE_BRACKET(meta))
pop(index); /* pop index from the stack */
if (IS_COMMA(meta) && skip)
Ooms, et al. Expires April 2000 [Page 17]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
index=stack_pointer; /* take the index on top of the stack */
}
A.3. Compound address encoding example
Below is a possible encoding scheme for a compound address which
limits the amount of overhead.
CLM header:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|VERSION|UNUSED | PROT ID | LENGTH |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CHECKSUM |D|ENC=1| RUN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NUM META | meta symbols ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| meta symbols + padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| address_fragments, not byte aligned |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
NUM META = number of meta symbols
Meta symbol:
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|X|sym| length |
+-+-+-+-+-+-+-+-+
X = unused
sym = meta symbol
00 = open bracket
01 = close bracket
10 = comma
11 = close bracket followed by comma
length = number of bits of the address_fragment (symbol) following this
meta symbol.
Ooms, et al. Expires April 2000 [Page 18]
Internet Draft draft-ooms-cl-multicast-01.txt October 1999
References
[AGUI] L. Aguilar, "Datagram Routing for Internet Multicasting",
Sigcomm84, March 1984.
[DEER] S. Deering, "Multicast Routing in a datagram internetwork", PhD
thesis, December 1991.
[FARI] D. Farinacci, "Multicast Source Discovery Protocol", draft-
farinacci-msdp-00.txt, June 1998.
[GRAF] C. Graff, "IPv4 Option for Sender Directed Multi-Destination
Delivery", RFC1770, March 1995.
[HAND] M. Handley, H. Schulzrinne, E. Schooler, J, Rosenberg, "SIP:
Session Initiation Protocol", RFC2543, March 1999.
[HOLB] H. Holbrook, "Express Multicast: Making Multicast Economically
Viable".
[OIKA] J. Oikarinen, D. Reed, "Internet Relay Chat Protocol", RFC1459,
May 1993.
[PERL] R. Perlman, "Simple Multicast: A design for Simple, Low-overhead
Multicast", draft-perlman-simple-multicast-02.txt, February
1999.
Authors Addresses
Dirk Ooms
Alcatel Corporate Research Center
Fr. Wellesplein 1, 2018 Antwerpen, Belgium.
Phone : 32-3-240-4732
Fax : 32-3-240-9932
E-mail: Dirk.Ooms@alcatel.be
Wim Livens
Alcatel Corporate Research Center
Fr. Wellesplein 1, 2018 Antwerpen, Belgium.
Phone : 32-3-240-7570
E-mail: Wim.Livens@alcatel.be
Ooms, et al. Expires April 2000 [Page 19]
| PAFTECH AB 2003-2026 | 2026-04-24 07:50:47 |