Multicasting Live
Content
Multicasting is a way of sending a live broadcast as a single data stream
to only those clients who request the data. Multicasting contrasts with
two other modes of transmission:
- Unicasting, which sends a separate, point-to-point data stream to each
client that requests it.
- Broadcasting, which sends a single data stream to all clients on a
subnet, regardless of whether a client has requested the data. (Note that
broadcasting in this sense is not the same as broadcasting a live event
from RealServer. Broadcasting a live event means transmitting the event
live-it does not indicate the mode of transmission.)
Multicasting consumes much less bandwidth than either unicasting or broadcasting.
Multicasting sends only a single data stream (rather than many copies of
the data stream) to only those clients who request the data (rather than
all clients on a subnet).
Multicast delivery over the Internet is made possible to a limited degree
by the Internet Multicast Backbone (Mbone), which is a virtual network consisting
of those portions of the Internet that are multicast-enabled. For the most
part, however, multicasting is used over intranets.
Multicast Transmission
A server transmitting a live media event using multicast sends UDP multicast
datagrams to a single IP address. This multicast address represents a particular
transmit session rather than a specific client's address. A multicast address
is also called a host group address since, in effect, it also represents
a group of clients (hosts) that have requested to receive the broadcast.
Multicast addresses can range from 224.0.0.0 to 239.255.255.255.
Multicast datagrams are sent using the same IP operations as UDP unicast
datagrams. In essence, a multicast broadcast is a unicast broadcast sent
to a multicast address.
Each multicast packet contains a time-to-live (TTL) field in its IP header.
The TTL field limits the scope of the broadcast by limiting the number of
times that the packet can be forwarded by a router. The TTL setting is often
used to limit the scope of a broadcast to a particular intranet.
RealServer Transmission
to RealPlayer Reception
Multicast reception is much more complicated than multicast transmission.
The following description focuses on how RealPlayer and RealServer interact
to establish a multicast connection:
- When a user requests to receive RealAudio or RealVideo media, RealPlayer
opens a TCP/IP connection to RealServer. RealPlayer indicates that it is
multicast-enabled.
- If the media is a live broadcast stream, RealServer sends back a message
over the TCP/IP connection that notifies RealPlayer of the multicast address
and the multicast port. If RealServer is not already sending multicast
packets to the multicast address, it scans the address range specified
in MulticastAddressRange
setting for the first available address. RealServer sends the live broadcast
to the first available multicast address that it finds within the range.
- RealPlayer creates two UDP connections. On one connection, it sends
an Internet Group Management Protocol (IGMP) query that indicates to its
nearest router that it wants to join the multicast host group at the multicast
address and port specified by RealServer.
- One or more routers, which must be multicast-enabled, then route the
multicast packets to the subnet on which RealPlayer is located.
- The computer on which RealPlayer is running starts filtering the network
for packets sent to the multicast address and passes these packets to RealPlayer.
RealPlayer Reception
By default, RealPlayer is configured for various fall-back connection
options if a multicast connection cannot be established with RealServer
(see Configuring RealPlayer for Multicast Reception):
- If, after sending out an IGMP query, RealPlayer does not receive any
multicast packets after a specified number of seconds, it breaks the TCP/IP
connection with RealServer.
- RealPlayer then re-establishes a new TCP/IP connection with RealServer.
This time, however, RealPlayer indicates that it will not receive multicast
broadcasts and expects to receive UDP unicast packets.
- If RealPlayer does not receive a UDP unicast packet after a specified
number of seconds, it again breaks the TCP/IP connection with RealServer
and re-establishes a new TCP/IP connection with RealServer. This time,
RealPlayer indicates that it wants to receive the media over the TCP/IP
connection, which is a more secure (in terms of packet loss) but slower
connection.
Multicast Requirements
To support multicasting, both the sending and receiving nodes, as well
as the routers between the sending and receiving nodes, must be multicast-enabled.
Details of these requirements are beyond the scope of this chapter. This
chapter describes only what is required to enable RealServer and RealPlayer
for multicast broadcasting and multicast reception, respectively.
Multicast delivery of RealAudio or RealVideo files requires:
- Multicast-enabled client computers running RealAudio Player 3.0 or
RealPlayer. The TCP/IP protocol stack on the client computer must support
multicast reception. The network adapter and driver on the client computer
must be able to filter for data link layer addresses mapped from network-layer
multicast addresses.
- A correctly configured RealServer running on a computer that is correctly
configured for multicast support. The TCP/IP protocol stack on the computer
must support multicast transmission.
- Any routers on the client network must be multicast enabled.
Combining Splitting and Multicasting
To reach large audiences across the Internet, use splitters to send data
across the Internet, and then use multicast delivery within each target
intranet.
How to Multicast
Information on the configuration settings mentioned below can be found
in Configuring and Maintaining RealServer.
To Enable Multicast Delivery:
- Verify with your network administrator that the routers in your network
are multicast-enabled and that the computer running RealServer is correctly
configured for multicast support.
- Specify the range of multicast destination addresses (host group addresses)
available to RealServer, using the MulticastAddressRange
configuration setting. The network administrator should know which
multicast addresses are available on the intranet. Be sure to include enough
addresses in the range to accommodate your multicast broadcasting needs.
- Specify the addresses of client computers or networks that are allowed
to connect to multicast broadcasts from RealServer. Use the MulticastControlList configuration setting
to do this. Clients whose addresses are not included in the MulticastControlList
can connect to RealServer only in broadcast mode.
- Specify how far multicast packets can travel in your network. Use the
MulticastTTL configuration
setting to do this. The default value of 16 keeps multicast packets within
a typical internal network at a site.
To Specify Optional Multicast Settings:
- If you want to limit clients and networks specified in MulticastControlList to multicast connections
only, set the MulticastDeliveryOnly
configuration setting to
True
. This is an optional setting
that can help reduce bandwidth usage on an intranet. A client whose address
is not in the MulticastControlList can still make unicast connections
to RealServer.
- If you want to specify a TCP/IP port for multicasting that is different
than the default port (7070), set the MulticastPort
configuration setting. You should not need to change this setting unless
you are having problems.
Configuring RealPlayer
for Multicast Reception
For a client to receive a multicast broadcast, it must request and be
granted membership in the host group to which the multicast broadcast is
being sent. By default, RealPlayer is enabled to request multicast transmission
of live broadcasts.
To check whether a RealPlayer is enabled for multicasts:
- On the View menu, click Preferences.
- Click Transport.
- Click Use specified transports.
- Click Specify transports.
- Verify that Attempt to use Multicast for live content is selected.
- Click OK.
© 1997 RealNetworks, Inc.