NAME rtpmon - A Third Party RTCP Monitor SYNOPSIS rtpmon [ -C conferenceName ] [ -d display ] [ -t threshold ] [ -u script ] [ -X resource=value ] addr/port DESCRIPTION Rtpmon is a third-party RTCP monitor. It can be used to monitor the control information exchanged between applica- tions that implement RTP, the Real-Time Transport Protocol. Feedback from receivers, including the loss rate and jitter, are displayed in a table that can be sorted in various ways to help isolate and diagnose multicast distribution prob- lems. OPTIONS -C Use conferenceName as the title for the main rtpmon window. If the -C flag is ommitted, the destination address and port are used as the window title. -d Connect to the X server indicated by the display argu- ment. -t Make threshold the default threshold for loss rate in the main display window as described below. -u Source script, in addition to the compiled-in script, to build the user interface. This is only useful dur- ing development. -X Override the X resource Rtpmon.resource with value. OPERATION Upon startup, rtpmon starts listening for RTCP packets sent to the RTP session on the multicast address addr and the appropriate RTPv2 control port corresponding to port. (that is, if port is odd, it is used and if port is even, port + 1 is used). The main window is a table with current senders listed across the top and listeners along the left side. Each row in the table displays that listener's statistics about its reception from each sender. The default display shows loss rate measured over the last 4 RTCP packets received from the listener. Other statistics can be displayed as described below. Clicking on a name (either a sender or a listener) will bring up a window that includes the latest contents of all RTCP SDES packets seen from that source as well as their RTP synchronization source id, IP address, and the time of their most recent control packet. Clicking on a statistic in the main display will bring up a window with stripcharts that display the recent history of all the statistics available. Three statistics are currently displayed. Packet Loss is calculated by comparing the number of dropped packets to the number of expected packets over the last 4 RTCP packets from a listener. Fil- tered Packet Loss is computed with a Moving Weighted Average over the ``fraction lost'' field of all RTCP packets from a listener. Delay Jitter is computed with a Moving Weighted Average over the ``interarrival jitter'' field of all RTCP packets from a listener. If mtrace(8) is installed, the stripchart window will have a button at the bottom that will run mtrace from the sender to the listener via the multicast group used for the session. The button labeled ``Menu'' at the bottom of the main window brings up a new menu window. The statistic displayed in the main window can be selected from this dialog. Various other parameters (as described below) can also be changed from the menu window. THRESHOLDS In a large conference, there may be many listeners with very low loss rates and jitter. To keep the display from getting too cluttered and to focus on interesting statistics, it is possible to display only those listeners for which the loss rate (or another statistic) is above some threshold. The default threshold comes from the Rtpmon.threshold X resource or the -t command line switch. The threshold associated with each display parameter can also be changed from the menu window. To keep the display reasonably stable, if a listener is displayed in the main window and their loss rate then falls below the threshold, they are not immediately removed from the display. The button labled ``Clean'' on the main window will remove those listeners that have loss rates below the treshold. Pressing the `c' key in the main window does the same thing. The display can be cleaned periodically by clicking the ``Autoclean'' button in the menu and selecting the interval (in seconds) at which the display should be automatically cleaned. Autoclean can be turned on by default by setting the X resource Rtpmon.autoclean to 1 (the default is 0 which turns autoclean off). The default autoclean interval can be set by the X resource Rtpmon.autocleanInterval. SORTING The main display can be sorted by any of several keys. The key to be used can be chosen from the ``Sorting'' section of the menu. Maximum Loss sorts the rows by the maximum loss seen in all columns. Average Loss sorts the rows by the loss rate averaged over all columns. IP Address sorts the rows by the IP address from which RTCP packets are received. IP addresses can be used for crude topographical grouping. A single column can be chosen by selecting Sender and then choosing a particular sender. By default, the display is not continuously re-sorted. It can be explicitly sorted by pressing the ``Sort'' button on the main window or pressing the `s' key. The display can be sorted periodically using the ``Autosort'' button in the menu which is analogous to ``Autoclean''. X RESOURCES The following are the names and default values of X resources used by rtpmon. Any of these resources can be overridden by the -X command switch, which may be used mul- tiple times on the command line. For example, "- Xautosort=1" overrides Rtpmon.autosort with 1. Rtpmon.threshold (1) the default threshold for loss rate in the main display window Rtpmon.autoclean (0) turns on or off autocleaning. Rtpmon.autocleanInterval (5) interval (in seconds) at which the display should be cleaned if autocleaning is on Rtpmon.autosort (0) turns on or off autosorting Rtpmon.autosortInterval (5) interval (in seconds) at which the display should be sorted if autosorting is on Rtpmon.refreshInterval (.5) interval (in seconds) at which values in the main display should be refreshed Rtpmon.sessbw (64.) the estimated data bandwidth for the session; used to estimate the frequency with which RTCP packets should be expected. SEE ALSO vic(1), vat(1), mtrace(8), Schulzrinne, Casner, Frederick, Jacobson, ``RTP: A Transport Protocol for Real-Time Applications'', Internet Request For Comments 1889, available via anonymous ftp at ftp://ds.internic.net/rfc/rfc1889.txt. ACKNOWLEDGMENTS The original design for rtpmon was suggested by Van Jacob- son. The software architecture was inspired by, and bits of code have been borrowed from, vic and vat written by Van Jacobson and Steve McCanne. Bill Fenner has also provided many useful comments, suggestions, and bug fixes. AUTHORS David Bacher (drbacher@cs.berkeley.edu) and Andrew Swan (aswan@cs.berkeley.edu) BUGS This is an alpha release of rtpmon so there are likely to be many bugs. A conference with multiple simultaneous senders is not handled very well right now. Older MBone software may not conform to the RTP specification, leading to odd reports for packet loss and jitter from receivers using those programs. Please report any other bugs to rtpmon@bmrc.berkeley.edu