IP Multicasting Issues
By Chris Koeritz
This document describes IP multicast and compares it
with directed IP broadcast. It is intended as a brief
introduction
rather than a technical explanation. For more information than is
available here, you might want to check out this
link: http://www.multicasttech.com/faq/.
Directed IP Broadcast
The diagram below shows the essential points of a
directed
broadcast. The sender transmits some data (denoted by the little
envelopes) out to the three subnets depicted. The data must
actually
be sent three times, one for each subnet. On the receiving
subnets,
every machine on the subnet will be sent the data, whether it wants it
or not.
IP Multicast
The diagram below shows the essential points of a
multicast.
The sender transmits some data out to a multicast address. The
data
only needs to be sent once, and the routers will take care of the
rest.
The middle subnet has no hosts registered for this data and so will not
see the data at all. On the other two subnets, only the hosts
that
have specifically registered for the data will see it; the other
machines
on the subnet will not. Note that the routers manage the delivery
list; the sender need not know who the recipients are (and it will not
know the recipients unless a higher level protocol is providing the
information).
An Assortment of Multicast Issues
Multicast Group Addresses
- IP multicast groups have a group address.
- This is similar to an IP address but in a restricted range of
224.0.0.0
through 239.255.255.255.
- These are called "Class D" addresses.
- The range from 224.0.0.0 through 224.0.0.255 are reserved for
multicast
routing information.
Address Allocation
- You can be officially assigned an IP multicast address by the
MBONE
(multicasting
backbone) group. This indicates that you are the only authorized
user of that particular address.
- Multicast addresses can also be dynamically assigned. A
registration
process will provide a randomly chosen IP multicast group
address.
This choice of address must be communicated to all programs that
require
the broadcasts, potentially during a login process at a server.
Multicast Properties
- IP multicast only supports sending packets of data, not arbitrary
length
messages.
- Multicast is also intrinsically unreliable.
- There are other higher level protocols that make multicast
reliable,
but
none have been chosen as standards yet. (For example, PGM:
Pragmatic
General Multicast.)
- IP multicast groups are called "open" because anyone can send
datagrams
to a group.
Multicast Scope
- The scope of a multicast send is governed by the Time To Live
(TTL)
information
in the data packet.
- TTL is a number that dictates how many router hops the packet is
allowed
to make.
- The classification scheme for TTLs is as follows:
- 0: restricted to same
host;
no
other machines can see the data.
- 1: restricted to same
subnet;
just 'this' subnet will see the data.
- 32: restricted to same site; as
dictated
by network topology and firewalls.
- 64: restricted to same region;
perhaps a
country boundary.
- 128: restricted to same continent.
Comparison With Standard TCP/IP
- Sending multicasts is easy. This is just a matter of
sending to
the
IP multicast address, and specifying a port number on that
address.
This is essentially the same as sending a regular UDP (user datagram
protocol)
packet.
- Receiving multicasts is not too hard either. One joins a
multicast
group by registering with the IP multicast address. The address
doesn't
correspond to a specific machine, but to a virtual group defined by the
IP address and the port number.
- Once one has joined a multicast group, a TCP/IP socket can be
opened.
Socket usage is the same as for any other kind of TCP/IP
communication.
Now we will receive any data that is sent to the multicast group at our
port number.
Comparison With Directed IP Broadcast
What are the drawbacks of using multicast?
- Multicast is a newer protocol and needs support from a multicast
enabled
router.
- Multicast transmissions devolve to a directed broadcast when
there are
no multicast routers, so even when customers use a multicast enabled
application,
they might actually be getting broadcasts on their lan.
- Customers with older routers can still be supported with our
existing
directed
broadcast mechanism
- Multicast is an unreliable protocol.
- There are no guarantees for delivery of transmissions.
- Reliable multicast exists in several higher level protocols,
but none
of
these are standard yet. These are also not supported by any
routers
yet, so they are implemented in software rather than hardware.
- However, directed broadcast is also unreliable. Software
can provide a
reliable broadcast by supporting a retransmission process.
- Multicast is wide open.
- With directed broadcasts, the network administrator can
configure our
system
however desired and know that traffic is not going off of the LAN/WAN.
- Multicast group membership is open to machines across the
internet and
anyone can listen to multicast traffic if they know the address.
- To enforce multicast security / visibility, one must either
control
access
at the software level (by restricting the "time to live" on multicast
packets,
which could still expose the traffic to unwanted listeners) or at the
hardware
level (by modifying the router's multicast properties).
Why is multicast a potentially superior choice for data distribution?
- With directed broadcast, one must know the recipients for the
data in
terms
of their subnets. In IP Multicast, one does not need to know the
recipients ahead of time.
- In a directed broadcast, every machine on an entire subnet sees
the
data.
With multicast, only the machines that have registered will see the
data.
The machines that are not included in a group will not see any traffic,
whereas in a directed broadcast, each machine must discard the packets
it was not interested in; thus multicast is less of a drain on
computing
resources.