The output of mtrace is in two sections. The first section is a short listing of the hops in the order they are queried, that is, in the reverse of the order from the source to the receiver. For each hop, a line is printed showing the hop number (counted negatively to indicate that this is the reverse path); the multicast routing protocol (DVMRP, MOSPF, PIM, etc.); the threshold required to forward data (to the previous hop in the listing as indicated by the up-arrow character); and the cumulative delay for the query to reach that hop (valid only if the clocks are synchronized). This first section ends with a line showing the round-trip time which measures the interval from when the query is issued until the response is received, both derived from the local system clock, and the total ttl required for a packet to travel along this path. A sample use and output might be:
oak.isi.edu 80# mtrace -l caraway.lcs.mit.edu 184.108.40.206
Mtrace from 220.127.116.11 to 18.104.22.168 via group 22.214.171.124
Querying full reverse path...
0 oak.isi.edu (126.96.36.199)
-1 cub.isi.edu (188.8.131.52) DVMRP thresh^ 1 3 ms
-2 la.dart.net (184.108.40.206) DVMRP thresh^ 1 14 ms
-3 dc.dart.net (220.127.116.11) DVMRP thresh^ 1 50 ms
-4 bbn.dart.net (18.104.22.168) DVMRP thresh^ 1 63 ms
-5 mit.dart.net (22.214.171.124) DVMRP thresh^ 1 71 ms
-6 caraway.lcs.mit.edu (126.96.36.199)
Round trip time 124 ms; total ttl of 6 required.
If a hop reports that it is using the default route to forward packets, the word [default] is printed after that hop. If the -v flag is supplied, the route being used to forward packets is printed in the form [18.26.0/24].
The second section provides a pictorial view of the path in the forward direction with data flow indicated by arrows pointing downward and the query path indicated by arrows pointing upward. For each hop, both the entry and exit addresses of the router are shown if different, along with the initial ttl required on the packet in order to be forwarded at this hop and the propagation delay across the hop assuming that the routers at both ends have synchronized clocks. The right half of this section is composed of two sets of statistics. The first column contains the average packet rate for all traffic at each hop. The remaining columns are the number of packets lost, the number of packets sent, the percentage lost, and the average packet rate at each hop. These statistics are calculated from differences between traces and from hop to hop as explained above. The first group shows the statistics for all traffic flowing out the interface at one hop and in the interface at the next hop. The second group shows the statistics only for traffic forwarded from the specified source to the specified group. The first group of statistics may be expanded to include loss rates using the -T option. However, these numbers can be extremely misleading and require detailed knowledge of the routers involved to be interpreted properly.
These statistics are shown on one or two lines for each hop. Without any options, this second section of the output is printed only once, approximately 10 seconds after the initial trace. One line is shown for each hop showing the statistics over that 10-second period. If the -l option is given, the second section is repeated every 10 seconds and two lines are shown for each hop. The first line shows the statistics for the last 10 seconds, and the second line shows the cumulative statistics over the period since the initial trace, which is 101 seconds in the example below. The second section of the output is omitted if the -s option is set or if no multicast group is specified.
Waiting to accumulate statistics... Results after 101 seconds:
Source Response Dest Overall Packet Statistics For Traffic From
188.8.131.52 184.108.40.206 Packet 220.127.116.11 To 18.104.22.168
| __/ rtt 125 msRateLost/Sent = Pct Rate
v / hop 65 ms ------- ---------------------
|^ttl 1 0 pps 0/2 = --% 0 pps
v|hop 8 ms 0 pps 0/18 = 0% 0 pps
|^ttl 2 0 pps 0/2 = --% 0 pps
v|hop 12 ms 0 pps 0/18 = 0% 0 pps
|^ttl 3 27 pps 0/2 = --% 0 pps
v|hop 34 ms26 pps 0/18 = 0% 0 pps
|^ttl 4 83 pps 0/2 = --% 0 pps
v|hop 11 ms79 pps 0/18 = 0% 0 pps
| \__ ttl 5 83 pps ?/2 0 pps
v \ hop -8 ms79 pps ?/18 0 pps
Because the packet counts may be changing as the trace query is propagating, there may be small errors (off by 1 or 2) in these statistics. However, those errors should not accumulate, so the cumulative statistics line should increase in accuracy as a new trace is run every 10 seconds. There are two sources of larger errors, both of which show up as negative losses:
If the input to a node is from a multi-access network with more than one other node attached, then the input count will be (close to) the sum of the output counts from all the attached nodes, but the output count from the previous hop on the traced path will be only part of that. Hence the output count minus the input count will be negative.
In release 3.3 of the DVMRP multicast forwarding software for SunOS and other systems, a multicast packet generated on a router will be counted as having come in an interface even though it did not. This creates the negative loss that can be seen in the example above.
Note that these negative losses may mask positive losses.
In the example, there is also one negative hop time. This simply indicates a lack of synchronization between the system clocks across that hop. This example also illustrates how the percentage loss is shown as two dashes when the number of packets sent is less than 10 because the percentage would not be statistically valid.
A second example shows a trace to a receiver that is not local; the query is sent to the last-hop router with the -g option. In this example, the trace of the full reverse path resulted in no response because there was a node running an old version of mrouted that did not implement the multicast traceroute function, so mtrace switched to hop-by-hop mode. The "Output pruned" error code indicates that traffic for group 22.214.171.124 would not be forwarded.
oak.isi.edu 108# mtrace -g 126.96.36.199 188.8.131.52 \
Mtrace from 184.108.40.206 to 220.127.116.11 via group 18.104.22.168
Querying full reverse path... * switching to hop-by-hop:
0 butter.lcs.mit.edu (22.214.171.124)
-1 jam.lcs.mit.edu (126.96.36.199) DVMRP thresh^ 1 33 ms Output pruned
-2 bbn.dart.net (188.8.131.52) DVMRP thresh^ 1 36 ms
-3 dc.dart.net (184.108.40.206) DVMRP thresh^ 1 44 ms
-4 darpa.dart.net (220.127.116.11) DVMRP thresh^ 16 47 ms
-5 * * * noc.hpc.org (18.104.22.168) [mrouted 2.2] didnt respond
Round trip time 95 ms
map-mbone(8), mrinfo(8), mrouted(8), traceroute(8)