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:

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:

  1. 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.
  2. 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.
  3. 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.
  4. One or more routers, which must be multicast-enabled, then route the multicast packets to the subnet on which RealPlayer is located.
  5. 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):

  1. 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.
  2. 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.
  3. 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:

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. 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.
  2. 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:

  1. On the View menu, click Preferences.
  2. Click Transport.
  3. Click Use specified transports.
  4. Click Specify transports.
  5. Verify that Attempt to use Multicast for live content is selected.
  6. Click OK.

© 1997 RealNetworks, Inc.