Package com.sun.multicast.reliable.transport.tram

An implementation of the Tree-Based Reliable Multicast (TRAM) protocol.

See:
          Description

Interface Summary
TRAMSimulator The TRAMSimulator interface enables use of simulators to test the TRAM protocol.
 

Class Summary
MROLE Constants to define the role played by a member(or a node) in TRAM multicast repair tree.
PerfMon  
TMODE Constants to define the various modes of TRAM Transport.
TRAM_INFO This public class is used to hold TRAM version number (VERSION), and default configuration file name (CONFIGFILE).
TRAMPacketSocket The TRAMPacketSocket implements RMPacketSocket Interface.
TRAMStats TRAMStats defines the TRAM Statistics block.
TRAMStreamSocket The TRAMStreamSocket implements RMStreamSocket Interface.
TRAMTransportProfile A TransportProfile for TRAM (Tree-based Reliable Multicast Protocol).
TRAMVector  
 

Package com.sun.multicast.reliable.transport.tram Description

An implementation of the Tree-Based Reliable Multicast (TRAM) protocol.


The Tree-Based Reliable Multicast Transport Protocol (TRAM) is a reliable multicast protocol designed to support bulk data transfer with a single sender and multiple receivers. TRAM uses dynamic trees to implement local error recovery to scale to a very large number of receivers without imposing a serious burden on the sender. It also includes congestion control and other techniques necessary to operate efficiently and fairly with other protocols across the wide variety of link and client characteristics that make up the Internet. A simulator interface is provided to enable TRAM to plug into network simulators for test purposes. This TRAM implementation provides extensive logging support.


Logging support in TRAM


TRAM supports extensive logging for debugging purposes. A class enabling dynamic control of logging on a running TRAM node is included in the TRAM package.

The ChangeTRAMLoggingOption class dynamically enables logging in TRAM nodes by sending a multicast control packet. The multicast control packet is sent to the same multicast address and port pair on which the TRAM session is currently active. The class supports the following options:

The different levels of logging supported can be viewed by clicking here.

Changing the TRAM logging option is a two step operation. The first step involves creating the configuration file. Here the details of the multicast session, TTL, target nodes, and logging functions and levels are specified in a configuration file. The second step is to run the class.

The ChangeTRAMLoggingOption class can be invoked from the command line by issuing the following command.

% java com.sun.multicast.reliable.transport.tram.ChangeTRAMLoggingOption configFileName

The argument configFileName is the name of the file that contains the details of the logging option message that is to be sent. A sample file is described here .


Different functions and levels of logging supported in TRAM

TRAM logging supports two categories of logging. The first is the Level category and the other is the Function category. The Level category is applicable to all the modules within TRAM. The Function category is applicable to the specific modules within TRAM. Fatal error conditions (not listed below) cannot be masked and are always enabled. The different levels in each of the above two categories are listed below.
  1. Level Category
    • LOG_NONE
      This option causes logging to be turned off except for fatal errors.
    • LOG_VERBOSE
      Choosing this option will result in logging every possible message in TRAM. This option is usually only used during TRAM development.
    • LOG_DIAGNOSTICS Choosing this option will result in logging important events in the code path, important usual and unusual events as well as non-fatal error events.
    • LOG_INFO This logging option is informational. Choosing this option will result in logging the very important milestones and events. This is generally the recommended mode.

  2. Function Category
    • LOG_CONGESTION Choosing this option will result in logging all events related to TRAM congestion control.
    • LOG_CONTROL_MESSAGES Choosing this option will result in logging TRAM control message events.
    • LOG_DATA_MESSAGES Choosing this option will result in logging TRAM data message events.
    • LOG_SESSION Choosing this option will result in logging TRAM messages that session related.
    • LOG_SECURITY Choosing this option will result in logging TRAM messages that are related to security.
    • LOG_DATACACHE Choosing this option will result in logging TRAM messages that are related to the TRAM data cache.

      Note that enabling logging for a specific function results in the equivalent of verbose logging for that function.

ConfigFileName template

# This file is a template to list the various options that are
# available to dynamically enable TRAM logging.
# The basic syntax is
#
#    Option keyword = required Value
#
# The following are the two ways by which multiple values on the right
# hand can be specified. Currently only MEMBER_ADDRESS and LOG_OPTION
# are the only options that support specification of multiple right
# hand side values. The two ways of listing multiple right hand side
# values are described below:
# 
#   1. Multiple member addresses are ',' separated as shown below.
#      White spaces are ignored.
#
#          129.148.75.98 , 129.148.75.97,129.148.75.96
#
#   2. Choosing multiple logging options are '|' (OR'd) as shown below.
#      White spaces are ignored.
#
#	 LOG_SECURITY |LOG_CONGESTION| LOG_DATA_MESSAGES
#
# The following is the list of various Option Keywords that 
# are currently recognized:
#
#        MULTICAST_ADDRESS     : Multicast address of the session.
#
#	 SOURCE_ADDRESS	       : Address of the node sending multicast 
#                                session data 
#                 
# 	 SESSION_ID            : Session id of the multicast session	
#
# 	 PORT                  : Port number on which the multicast data is 
#                                being sent.
#
# 	 TTL                   : The TTL scope to which the message should be 
#                                sent. default 1
#
#	 LOG_OPTION            : Required logging option. Look below for option
#                                definitions. The default option (if not listed)
#                                is LOG_NONE.
#
#	 MEMBER_ADDRESS        : List of node's addresses that need to turn on 
#                                logging.  If no address is listed, all members
#                                of the session will turn on logging.
#
#
# The following lists the various LOG_OPTIONs that are currently supported.
#
#                                   LOG_NONE
#                                   LOG_VERBOSE
#                                   LOG_DIAGNOSTICS
#                                   LOG_INFO
#
#                                   LOG_CONGESTION
#                                   LOG_CONTROL_MESSAGES
#                                   LOG_DATA_MESSAGES 
#                                   LOG_SESSION
#                                   LOG_SECURITY
#                                   LOG_DATACACHE
#
#
#  The following is a sample configuration. Any option keyword not listed
#  will result in the use of the DEFAULT values.
#  DEFAULT Values are
#
#    TTL = 1
#    PORT = 4567
#
#  The use of '#' at the beginning of a line indicates a comment line.
MULTICAST_ADDRESS = 224.10.10.20
PORT = 4567
TTL = 10
LOG_OPTION = LOG_CONGESTION | LOG_CONTROL_MESSAGES 
MEMBER_ADDRESS = 129.148.75.95,129.148.75.107, 129.148.75.125
#
#
#



JavaTM Reliable MulticastTM Service version 1.1
Copyright (c) 2001, Sun Microsystems Laboratories, All rights reserved.