Networked Settings

RealServer provides support for UDP-based splitting. Splitting allows servers to transmit live data sent from other RealServers. The servers receiving data from another server are referred to as splitters. Splitting can increase flexibility and efficiency in delivering content to users.


Splitting Streams between RealServers

With RealServer, the server providing live content to be split (sent to other servers) can establish a connection port for splitters to request the live streams. Splitters contact the server on this port and establish a UDP data stream.

Configuring Splitting

In addition to offering recorded media files or live broadcasts sent directly from RealAudio and RealVideo Encoders, RealServer can now offer live media sent from another RealServer. This gives you greater efficiency and flexibility in delivering live broadcasts to users.

For example, a concert from Milan can be broadcast over the Internet to RealServers in New York City and Tokyo. Users in those cities connect to the RealServer closest to them, thereby getting better media quality and performance.

The ability to split media streams is an optional feature controlled by the license you purchase from RealNetworks. If you would like to add this capability to your network, contact your RealNetworks reseller or RealNetworks.

To split a media stream, you need:

  • One RealServer supplying the media stream.
  • Another RealServer licensed for splitting.
  • All streams from the live server are broadcast to the splitter. If two servers are sending to the same server and they have a stream with the same name, the first one will be the only one split.

    The following configuration file settings are required for splitting:

  • SplitterSourceList
  • SplitterAnnouncePort
  • SplitterControlList
  •  

    Setting the SplitterBufferDelay configuration parameter on the splitter is important for preventing dropouts in the media stream. The recommended value is 20 seconds; a minimum of at least 10 seconds should usually be used.

    Required Splitter Setting

    Setting

    Description

    SplitterSourceList The Live Servers that this splitter should contact and split all live streams from.

     

    Required Source Server Settings

    Setting

    Description

    SplitterAnnouncePort Defines the server port that a splitter will contact to request the splitting of its live streams.
    SplitterControlList Defines the valid servers that can connect and obtain split streams from this server. Any servers that contact on the SplitterAnnouncePort and are not in this list are ignored.

     

    The following settings should not be changed unless you need to tune or optimize the splitting system.

    Splitter Tuning Settings

    Setting

    Description

    SplitterBufferDelay

    [number of seconds]

    Amount of data the Splitter will buffer before releasing the stream to players.

    SplitterTimeout

    [number of seconds]

    The number of seconds for the splitter to wait after a stream has been stopped or interrupted. Alter only to shut down streams more quickly or streams are stopping when they shouldn't.
    SplitterSourceProbeInterval How often the splitter requests details about live streams from a source server. This may need to be adjusted if Timeout values are changed.

    Source Server Tuning Settings

    Setting

    Description

    SplitterResendBuffer Depth of the buffer used for UDP resends in the Splitter protocol. Increase if you are getting consistent loss on all players from a split stream.
    SplitterSourceTimeout Time before source Server stops sending data to a splitter when the splitter is not responding.
    SplitterMaxResendPPS Maximum packets per second that a splitter source will output in response to a negative acknowledgement from a splitter.

    Controlling Splitter Access to a Server

    You can specify the splitters that are allowed to access a RealServer. If you do not limit the splitters, any splitter can access your server.

    The SplitterControlList configuration setting lists the addresses of splitters that are allowed to access your Server.

    If you specify a SplitterControlList configuration setting, only splitters from the specified addresses can access your Server. If you do not specify a SplitterControlList value, any splitter is accepted.

    SplitterSourceList

    Specifies the Live Servers that this splitter should contact and split all live streams from.

    To use this setting, you must purchase splitting as part of your RealServer.
    Default value none
    Range of values Any number of pairs of any valid IP address or valid domain name and any valid port

    Syntax

    SplitterSourceList [{host, port}]

    Example

    SplitterSourceList [{172.16.2.54,5780} {norton.prognet.com, 5781}]

    SplitterAnnouncePort

    Defines the server port that a splitter will contact to request the splitting of it's live streams.

    To use this setting, you must purchase splitting as part of your RealServer.
    Default value 0
    Range of values Valid UDP port

    Syntax

    SplitterAnnouncePort <port#>

    Example

    SplitterAnnouncePort 8090

    SplitterControlList

    List of splitter domain names that are allowed to access RealServer. To use this setting, you must purchase splitting as part of your RealServer license.
    Default value (none)
    Range of values

    Valid IP addresses or domain addresses of the splitter computers allowed to access RealServer.

    <netmask> specifies wildcards

    Syntax

    SplitterControlList [{<address>, <net mask>},...]

    where:

    The bits in the IP address that correspond with the zeros in the net mask are treated as wildcards.

    Example

    SplitterControlList [{121.23.101.0, 255.255.255.0}]

    This example accepts all IP addresses from 121.23.101.0 to 121.23.101.255. If the net mask is 255.255.255.128, all IP addresses from 121.23.101.0 to 121.23.101.127 are accepted.

    The net mask 255.255.255.255 accepts only the single IP address specified.

    To allow any player to connect, do not include a SplitterControlList setting in your configuration file. To prevent any player from connecting, specify:

    SplitterControlList [{0.0.0.0, 255.255.255.255}]

     

    SplitterBufferDelay

    Amount of media, in seconds, to store in the TCP buffer for splitting. Buffering helps reduce packets loses (dropouts) over a splitter connection.

    The recommended value is 20 seconds; a minimum of at least 10 seconds should usually be used. This parameter is set on the RealServer acting as a splitter for another Server.

    To use this setting, you must purchase splitting as part of your RealServer license.
    Default value 0
    Range of values positive integers

    Syntax

    SplitterBufferDelay <seconds>

    Example

    SplitterBufferDelay 20

    SplitterTimeout

    Defines the number of seconds the splitter will wait after a stream has been stopped or interrupted before shutting down. Alter only to shut down streams quicker or if streams are stopping when they shouldn't.

    To use this setting, you must have purchased splitting as part of your RealServer license.
    Default value 20
    Range of values 0-32767

    Syntax

    SplitterTimeout <seconds>

    Example

    SplitterTimeout 40

    SplitterSourceProbeInterval

    Determines how often the splitter requests details about live streams from a server. This may require altering if the Timeout values are changed.

    To use this setting, you must purchase splitting as part of your RealServer.
    Default value 10
    Range of values 0-32767 seconds

    Syntax

    SplitterSourceProbeInterval <seconds>

    Example

    SplitterSourceProbeInterval 20

    SplitterResendBuffer

    Defines the depth of the buffer used for UDP resends in the Splitter protocol. Increase if you are getting consistent loss on all players from a split stream.

    To use this setting, you must have purchased splitting as part of your RealServer license.
    Default value 20
    Range of values 0-32767 seconds

    Syntax

    SplitterResendBuffer <seconds>

    Example

    SplitterResendBuffer 30

    SplitterSourceTimeout

    Defines length of time, in seconds, for the source Server to stop sending data to a splitter when the splitter is not responding.

    To use this setting, you must have purchased splitting as part of your RealServer license.
    Default value 40
    Range of values 0-32767

    Syntax

    SplitterSourceTimeout <seconds>

    Example

    SplitterSourceTimeout 60

    SplitterMaxResendPPS

    Maximum packets per second (PPS) that a splitter source will output in response to a negative acknowledgement from a splitter.
    Default value 500
    Range of values 250 - 5000

    Syntax

    SplitterMaxResendPPS <pps>

    Example

    SplitterMaxResendPPS 500


    Configuring for Multiple User Accounts

    You can divide the stream capacity of your server among multiple accounts. For example, an Internet Service Provider (ISP) can buy a RealServer and allocate media streams to individuals, companies, or organizations who use their service to host Web sites on the Internet.

    Allocation is an optional feature controlled by the license you purchase from RealNetworks.

    You can create individual accounts and specify the number of streams allocated to each, or you can use a naming convention to allocate the same number of streams to a large number of accounts.

    UserList entries cannot be added to or deleted from the Java Performance Monitor or System Manager; the UserList entry only supports changes to existing entries. For example, you can change the maximum or minimum number of connections a particular account is authorized.

    Creating Individual Accounts

    To divide your media stream capacity between specified individual accounts, you need to specify the users, the location of the users' files, and the minimum and maximum number of streams each user is guaranteed.

    UserList

    Default value none
    Range of values 0-32767

    Syntax

    UserList [ {<user>, <path>, <min>, <max>}, ...]

    where:
    <user>

    The name of the user. The key that the URL passes to RealServer to allow selection of a particular account entry. Name does not have to be a user directory and can be a string up to 1024 characters. In the URL, name is preceded by a tilde (~). For example:

    pnm://audio.real.com/~fred/test.ra

    Selects the account entry defined for the user fred and then plays the media file test.ra from the fred private RealAudio path directory.

    <path> Relative path for the directory of user files. Creates a separate path for media files in each account, allowing the owner of the account to alter the files in his or her directory without having access to any other users' files.
    <min> The minimum number of streams allocated to the account. These streams are no longer available to any general RealServer requests. If min is 0, no streams are reserved for that account.
    <max> Maximum number of streams allocated to the account. This number can be from 0 to the total number of streams available on RealServer.

    Example

    UserList [{ElectroMotors, /usr/electro/ra, 2, 5}, {CityWeld, /usr/cityweld/ra, 1, 3}]

    This example allocates eight streams between two businesses posting Web sites on your service.

    If more than the available streams are allocated to individual account entries, RealServer logs an error and provides access to the minimum streams for those entries in UserList before the limit is exceeded. All account entries after the limit is exceeded are not allocated streams.

    Warning: If you are using Authentication to control access to secured content, note that when using account hosting, the absolute paths specified in the UserList configuration setting must not reside in the directory specified by the BasePath setting; if any directory specified in UserList does reside in the BasePath directory, media files in that UserList directory will not be secure.

    Creating Accounts Using a Naming Convention

    If you need to create a large number of accounts, and allocate the same number of streams to each, you can use a naming convention instead of listing each account individually. This function is typically used by Internet Service Providers who make RealServer available to a large number of customers.

    The ability to create accounts using a naming convention is an optional feature controlled by the license you purchase from RealNetworks. If you would like to add this capability to your Server, contact your RealNetworks reseller or RealNetworks.

    You can define a naming convention for most accounts, and still create individual accounts with different numbers of streams.

    You can use one or both of the following naming conventions to allocate large numbers of accounts.

     

    Naming Convention One

    All accounts using this naming convention have a URL with the following format:

    pnm://server.com/~account/directory/file.ra

    All URL requests that begin with the same value for account are counted against that account's stream allocation.

    The files for this account must be located in the /directory/ directory relative to the path specified in the following UserList entry.

    The following special UserList entry specifies the number of streams allocated to each account that uses this naming convention:

    { ~*, <path>, <min>, <max> }

    In either of these cases, on UNIX you can use the special tilde character (~) as the <path> entry and the server will use the account to look up the password entry for this user and use their home directory to locate the content.

     

    Naming Convention Two

    All accounts using this naming convention have a URL with the following format:

    pnm://server.com/dir1/dir2/dir3/dir4/file.ra

    All URL requests that begin with the same value for the specified number of directory levels are counted against that account's stream allocation. If the directory level is set to 3, then /dir1/dir2/dir3/ becomes the unique account identifier.

    The files for this account must be located in the /dir1/dir2/dir3 directory relative to the path specified in the following UserList entry.

    The following special UserList entry specifies the number of streams allocated to each account that uses this naming convention:

    { *n, <path>, <min>, <max> }

    where n is the number of directory levels that make up the unique account.

    If you use the *n naming convention, you must use it for all files on that RealServer. URLs relative to the BasePath directory do not work.

    Setting

    Description

    UserDir Path to be appended to the path defined for the account entries defined in the UserList setting.
    UserList List of accounts that are allocated media streams for private use.

    UserDir

    Path to be appended to the path defined for the account entries defined in the UserList setting. To use this setting, you must have hosting as part of your RealServer license.
    Default value (none)
    Range of values Absolute path name

    Syntax

    UserDir <string>

    If no UserDir is specified then RealServer looks for media files in the path specified in the UserList entry.

    Example

    UserDir content

    In this example, RealServer looks for media files in the subdirectory content of the directory specified in the UserList entry.

    UserList

    List of accounts that are allocated media streams for private use. To use this setting, you must have hosting as part of your RealServer license. This setting is used to create RealServer Hosting.
    Default value (none)
    Range of values see example

    Syntax

    UserList [ {<Accnt>, <privateRApath>, <minStreams>, <maxStreams>}, ...]

    There can be as many entries in this list as required. For more information on hosting, see Creating Individual Accounts.

    Two special values (~* and *n) for <Accnt> enable you to define accounts using naming conventions. You can have a large number of accounts without having to list them individually. For more information, see Creating Accounts Using a Naming Convention.

    Example

    UserList
    [{~*, /usr/persacct/, 1, 2},
    {ElectroMotors, /usr/electro/ra, 2, 5},
    {CityWeld, /usr/cityweld/ra, 0, 3}]

    © 1997 RealNetworks, Inc.