rtpmon - A Third Party RTCP Monitor

     rtpmon [ -C conferenceName ] [ -d display ] [ -t threshold ]
     [ -u script ] [ -X resource=value ] addr/port

     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-

     -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-

     -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.

     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

     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.

     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.

     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''.

     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

     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.

     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

     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.

     David  Bacher  (  and  Andrew  Swan

     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