previous next

Chapter 2: Overview

Designed to securely re-serve streaming media, Helix Universal Proxy delivers an impressive array of media to the broadest range of media players. This chapter introduces you to Helix Universal Proxy concepts and features.

Understanding Helix Universal Proxy

Helix Universal Proxy is software you install on a network or ISP gateway that gathers and handles client requests for media streamed from Helix Universal Server. Helix Universal Proxy reduces network traffic by eliminating redundant requests for streaming media.

The proxy provides four main benefits:

Media Types

Helix Universal Proxy can proxy every media type that the origin Helix Universal Server can serve. Helix Universal Server streams on-demand clips and broadcasts live events in more media formats than any other media server. Depending on its license type, Helix Universal Server can serve the file formats listed below. Although not exhaustive, the following list represents the major media formats available with Helix Universal Server and Helix Universal Proxy, which can deliver additional formats through plug-ins created by third-party developers.

RealNetworks: RealAudio (.rm), RealVideo (.rm), RealPix (.rp), RealText (.rt), RealMedia Variable-Bit Rate (.rmvb)
Macromedia: Flash 4 (.swf)
Microsoft: Windows Media (.asf, .wma, .wmv)
Apple: QuickTime (.mov)
Other: MPEG 1, MPEG 4 (.mpg, .mpeg), MP3 (.mp3), AU (.au), AIFF (.aif, .ief), WAV (.wav), SMIL (.smi, .smil)
Image Formats GIF (.gif), JPEG (.jpg, jpeg), PNG (.png)

Working with Helix Universal Server, Helix Universal Proxy can deliver the same media formats on any platform, including Windows and many UNIX variants. This allows you to stream any supported format using the operating system of your choice. Helix Universal Proxys running on different operating systems are completely interoperable, allowing you to place multiple proxies and servers in a heterogeneous network environment.

The specific versions of media formats and media players supported by Helix Universal Server and Helix Universal Proxy are subject to change. Check http://www.realnetworks.com/resources for the latest information.

How Helix Universal Proxy Delivers Media

The first step in the process happens when clients, such as RealOne Player or Windows Media Player request streamed media files through Helix Universal Proxy.

Helix Universal Proxy forwards the requests on behalf of clients to the Helix Universal Server where the requested streamed media files are stored (called the "origin Helix Universal Server").

Helix Universal Server verifies the file's existence, and that the clients are authorized through IP addresses or content authentication. If the server denies the request, it does not stream the requested file; Helix Universal Proxy complies with the denial. Clients receive an applicable error message.

This initial transaction, in which Helix Universal Server examines and authorizes individual client requests, is called an "accounting connection", as shown in the following diagram.

Establishing the Accounting Connection with Helix Universal Proxy and Helix Universal Server

Establishing the Accounting Connection with Helix Universal Proxy and Helix Universal Server

Depending on the nature of the streaming media, Helix Universal Proxy uses different features to deliver the content to the client.

Live Stream Delivery

If the stream is live, Helix Universal Proxy replicates the live stream for each client requesting the stream. The origin Helix Universal Server sends only a single stream to Helix Universal Proxy.

Helix Universal Proxy Replicating Live Content

Helix Universal Proxy Replicating Live Content

If the live stream is not available for replicating, Helix Universal Proxy makes a separate data request to the Helix Universal Server for each client. This is known as the pass-through feature, as shown in "Pass-through Mode (for Live and On-Demand Streams)".

On-Demand Content Delivery

If the stream is on-demand, Helix Universal Proxy first tries to fill the request from the media cache.

If the content is not yet stored in the cache, Helix Universal Proxy will pull the content from the origin Helix Universal Server, simultaneously serving the client and filling the cache.

Helix Universal Proxy Streaming On-Demand Content from the Cache

Helix Universal Proxy Streaming On-Demand Content from the Cache

If the stream is on-demand, and the clip is not cachable, Helix Universal Proxy delivers media by the pass-through feature. The proxy passes a data stream for each client that requested it, as shown in the following diagram.

Helix Universal Proxy Streaming On-Demand Content (No Media Cache in Use)

Helix Universal Proxy Streaming On-Demand Content (No Media Cache in Use)

A media cache file lowers network traffic by reducing the number of connections to the origin of the requested material, and improves quality by distributing the streaming content closer to the user. Clients receive improved quality of service because media streams travel a shorter distance from the cache to clients, reducing the possibility of network congestion, latency or packet loss.

Helix Universal Proxy Features

Helix Universal Proxy has three different ways of sending clips to clients. Helix Universal Proxy automatically chooses the most efficient feature possible, based on the type of content requested and the network configuration. The three methods are:

In addition, you can configure pull splitting to transmit to clients using multicast. Regardless of the feature in use, Helix Universal Proxy always opens an accounting connection between the client and the origin Helix Universal Server.

Pass-through

This is Helix Universal Proxy's simplest method of operation. In addition to the usual accounting connection opened between the client and the origin Helix Universal Server, Helix Universal Proxy creates a data connection for each client. No bandwidth conservation is realized.

Pass-through Mode (for Live and On-Demand Streams)

Pass-through Mode (for Live and On-Demand Streams)

Pull Splitting

Pull splitting conserves bandwidth for live material by replicating a single live stream from an origin Helix Universal Server. The first time a client requests a particular stream, Helix Universal Proxy contacts the origin server on the client's behalf and then sends the stream to the client. The second client to request the same live stream will receive it directly from Helix Universal Proxy, and Helix Universal Proxy will not have to obtain another stream from the origin Helix Universal Server.

The advantage to the client is that the material is delivered from a nearby Helix Universal Proxy. As long as the quality of reception for the single split channel between Helix Universal Proxy and the origin Helix Universal Server is sustained, clients will receive a high-quality live stream as well.

Additionally, Helix Universal Proxy can deliver a live, pull-split stream using multicast, if available on the network.

Pull Splitting Mode (for Live Streams)

Pull Splitting Mode (for Live Streams)

Cache

Cache software stores on-demand content from origin Helix Universal Servers. Since cached files are securely stored and cannot be accessed directly, Helix Universal Proxy interfaces with the cache to redistribute the stored media to clients.

When caching is enabled, the media cache acquires and stores media files requested by the first client. When a second client makes a request for a stream, Helix Universal Proxy checks with the cache to see if a stored version is already present. To ensure that the stored version is the most up-to-date version available, Helix Universal Proxy checks with the origin Helix Universal Server to see if a newer version exists. After determining that the stored copy is the latest version, Helix Universal Proxy streams the stored copy to the second client, and to subsequent clients that request the same material.

On-demand material streamed by RealSystem Server 7.0 or later can be cached. Otherwise, they are delivered by the pass-through feature. Live material is handled in the most efficient mode suitable—pull splitting or pass- through.

Filling the Media Cache with On-Demand Clips

Filling the Media Cache with On-Demand Clips

Serving On-Demand Clips from the Cache

Serving On-Demand Clips from the Cache

Should the media in the cache become impaired in some way, the stream halts and clients receive an error message. If the accounting connection between the client and the origin Helix Universal Server is interrupted, Helix Universal Proxy terminates the stream, and the client receives an error message.

If an origin Helix Universal Server has been configured to prevent caching, Helix Universal Proxy will use the pass-through feature to deliver content to clients, without caching the media. When Helix Universal Server is installed, all its streams are cachable by default. Since Helix Universal Servers can save on bandwidth costs if caching is allowed, operators are encouraged to leave all content cachable.

Requirements for Each Helix Universal Proxy Feature

The following table outlines the configuration requirements for each aspect of Helix Universal Proxy operation. In addition, Helix Universal Proxy can be configured to use multicasting (where available) for those live clips delivered in pull splitting mode. For more information, see Chapter 8, "Multicasting".

Requirements for Each Feature
Feature Special Helix Universal Proxy Configuration Your Network Requirements
(assumes Helix Universal Proxy is running)
Origin Helix Universal Server Requirements
Pass-through None. None. Broadcasting live and/or on-demand content.
Pull splitting None. Helix Universal Proxy is configured to do pull splitting by default. Network allows UDP transport between Helix Universal Proxy and Helix Universal Server. If UDP is unavailable, Helix Universal Proxy automatically attempts TCP. Broadcasting live content.
Configured to allow pull splitting, with default values. (Default configuration of Helix Universal Server.)
Caching None. Helix Universal Proxy is configured to cache by default. None. Has on-demand content, and is configured to accept requests from caches. (Default configuration of Helix Universal Server.)
Multicasting(back-channel) Configured to use multicast address range. Helix Universal Proxy uses pull splitting to deliver clips. Clients and routers are multicast-enabled. Broadcasting live content.

Additional Features

Helix Universal Proxy contains additional features that make it easy to configure, administer, and maintain.

Helix Administrator

Helix Administrator is a secure HTML-based interface for customizing Helix Universal Proxy features. You can access the Administrator with a Java-enabled browser anywhere on your network. The latest version of your Web browser is recommended for browsing Helix Administrator. Refer to "Using Helix Administrator" for more information. Additionally, see Chapter 4, "Proxy Setup" for instructions on customizing Helix Universal Proxy.

Tip: In this guide, "Helix Administrator" with an uppercase "A" refers to this HTML-based tool, whereas "RealNetworks administrator" with a lowercase "a" refers to the person who configures and runs Helix Universal Proxy.

Changes you make using Helix Administrator are stored in the Helix Universal Proxy configuration file. This text file is based on XML (Extensible Markup Language) that you can edit directly. Because the structure of this file is complex, Helix Administrator is the recommended tool for making changes. Appendix A discusses the configuration file.

Limiting Network Traffic

To limit the amount of bandwidth used by Helix Universal Proxy, several features allow you to restrict the number of requests or amount of bandwidth it uses. Clients that attempt to contact Helix Universal Servers after Helix Universal Proxy's limits have been reached, receive an error message.

For More Information: See Chapter 9, "Bandwidth Management".

Proxy Routing

For organizations that use strict rules to regulate network traffic, proxy routing allows you to further control streaming media traffic. With this feature, you can configure Helix Universal Proxy to direct its clients' requests to yet another Helix Universal Proxy, thereby conserving bandwidth across the WAN.

For More Information: See Chapter 7, "Proxy Routing and Redundant Proxies".

Monitoring Helix Universal Proxy in Real Time

Helix Administrator includes a Monitor which dynamically displays the status of your Helix Universal Proxy.

For More Information: Refer to Chapter 12, "Proxy Monitor".

Tracking Helix Universal Proxy Activity

Helix Universal Proxy records information in the access log about all clips it has served. Errors are noted in the error log. You can also design your own custom logs based on proxy activity.

Access logs are similar in format to Helix Universal Server logs, but include additional information about the address of the origin Helix Universal Server and the Helix Universal Proxy operational mode (pull splitting, caching, and so on). Helix Universal Proxy error logs use the same format as Helix Universal Server error logs. Content and format of custom logs depend on your instructions to Helix Universal Proxy.

Log files on the origin Helix Universal Server show that a Helix Universal Proxy is in use in addition to client data.

For More Information: Access and error log information is described in depth in Chapter 13, "Access and Error Logs". Refer to Chapter 14, "Custom Logging" to learn how to implement that feature.

Working with Clients

In order for Helix Universal Proxy to fill requests for media, you will need to arrange for clients (such as RealOne Player and Windows Media Player) to send their requests to Helix Universal Proxy.

There are two ways you can do this:

Interaction with Helix Universal Server

This section describes what happens on the origin Helix Universal Server when Helix Universal Proxy forwards a client request.

For More Information: If you plan to manage both Helix Universal Proxy and Helix Universal Server, also refer to the section "Administering Both Helix Universal Proxy and Helix Universal Server".

Controlling Client Access

Each time it receives a request, Helix Universal Server determines whether it can allow a particular client to receive streams, based on the number of available streams and bandwidth. In addition, Helix Universal Server can be configured to require a user name and password for certain material. If the requested material requires a password, the user will be prompted for the password. In this case, Helix Universal Server does not begin streaming until it receives the correct password.

Only after Helix Universal Server has authorized the client's request will Helix Universal Server begin streaming. Restrictions imposed by the origin Helix Universal Server's administrator on client access are always honored by Helix Universal Proxy. The same is true when a cache is in use—Helix Universal Proxy waits for Helix Universal Server approval of each request before streaming it from the cache.

Denying Client Access

An origin Helix Universal Server may deny a request for the following reasons:

The client receives a message if it is denied access for any reason.

Tracking Activity

The origin Helix Universal Server can differentiate whether a request was made using Helix Universal Proxy or made directly by any client. Information about quality of service is logged in the access log, just as it is for any other type of connection. Information about quality of service comes from the accounting connection.

Cache Requests

Helix Universal Proxy only streams media from the cache after opening an accounting connection to the origin Helix Universal Server. If the accounting connection cannot be established, or if it is disrupted, proxy will not stream from the cache to the client.

Helix Universal Proxy cannot cache content which an origin Helix Universal Server administrator has configured as non-cacheable. Instead, it will use pass-through mode to deliver the material to the client.

When Helix Universal Proxy Will Not Conserve Bandwidth

Under the following circumstances, Helix Universal Proxy will be unable to conserve bandwidth:

In all cases, however, using Helix Universal Proxy on your network serves to collect all streaming media traffic at a single point, so that you can better monitor activity and maintain security.

Protocols, Transports, and Packet Formats

Helix Universal Proxy handles client requests and proxies Helix Universal Server streams by using the Real Time Streaming Protocol (RTSP), an Internet standard control protocol for streaming multimedia, and PNA, the RealNetworks legacy protocol. Additionally, Helix Universal Proxy can use MMS to stream Windows Media. Although Helix Universal Server can stream through HTTP, Helix Universal Proxy is not an HTTP protocol proxy and thus does not handle any streaming media requests made through HTTP between clients and an origin Helix Universal Server.

Helix Universal Proxy works with connecting clients such as RealOne Player and Windows Media Player to determine the best transport to use for a given stream: IP multicast (for live broadcasts), or UDP and TCP (for both live and on-demand content).

Data types streamed by Helix Universal Server and Helix Universal Proxy use two primary packet formats: RDT, a proprietary packet format native to RealNetworks, and RTP, an Internet standard data type packet format.

The following table outlines the protocols, transports, and packet formats supported by Helix Universal Proxy.

Supported Protocols and Data Packet Formats
Control Protocol Control Transport Data Packet Format Data Packet Transport Supported by Helix Universal Proxy?
RTSP TCP
TCP
RDT (RealNetworks)
RTP
IP multicast, UDP, TCP Yes
PNA (RealSystem Server 5.0 and earlier) TCP
TCP
RDT (RealNetworks)
RTP
UDP, TCP Yes
MMS TCP UDP, TCP Yes
HTTP (Streaming) TCP
No
HTTP (Cloaking) TCP RDT (RealNetworks), RTP TCP

For More Information: For details on the control transports and data packet transports allowed on each port, see Chapter 6, "Firewalls".


RealNetworks, Inc. © 2002 RealNetworks, Inc. All rights reserved.
For more information, visit RealNetworks
Click here if the Table of Contents frame is not visible at the left side of your screen.
previous next