Annotation of embedaddon/mtr/FORMATS, revision 1.1
1.1 ! misho 1:
! 2: The "split" format is for a separating the gui from the main program.
! 3: The main program can be installed setuid, and you don't want to link a
! 4: gui-library with a setuid program.
! 5:
! 6:
! 7: The split format is:
! 8:
! 9: <pos> <host> <loss%> <rcvd pckts> <sent pckts> <best> <avg> <worst>
! 10:
! 11:
! 12: The "raw" format is:
! 13:
! 14: hostline|pingline|dnsline|timestampline
! 15:
! 16: hostline:
! 17: h <pos> <host IP>
! 18:
! 19: pingline:
! 20: p <pos> <pingtime (ms)>
! 21:
! 22: dnsline:
! 23: d <pos> <hostname>
! 24:
! 25: timestampline:
! 26: t <pos> <pingtime> <timestamp>
! 27:
! 28:
! 29: Timestampline is not yet implemented. Need to find out how to do
! 30: ICMP timestamping first. :-)
! 31:
! 32:
! 33: Someone suggested to put the following text here. As to context: Some
! 34: people are wondering why mtr sometimes reports hosts beyond the
! 35: destination host.
! 36:
! 37:
! 38: The FINAL host will occasionally be mentioned at position n, n+1, n+2
! 39: etc.
! 40:
! 41: You know traceroute, right? It sends a packet, waits for the reply to
! 42: come back and when it comes back, it sends the next packet.
! 43:
! 44: If say hosts 5-8 do not send "time exceeded" packets, you'll wait a
! 45: 4*3 = twelve seconds extra before you get any results on hosts 9 and
! 46: further. MTR doesn't work like that.
! 47:
! 48: In theory we could send out a probe for host 1-40 all at once. But
! 49: this would pose an unnecessary burden on the network. So what we do,
! 50: is we send out probes for a max of 5 hosts beyond where we've seen a
! 51: reply. So in the example above, we'd see a reply from router at
! 52: position 4, then we'd send out 5-9 (and because the max-host is now at
! 53: 9, we'll send them out at 1s/9 = 111ms intervals). When the reply from
! 54: host 9 comes back, we'll start probing for host 10-15 (at about 60ms
! 55: intervals). But suppose the network delay upto host 9 is already 200ms
! 56: and suppose our destination host is at position 11. Then by the time
! 57: the packet from host 11 comes back, we'll already have sent probe
! 58: packets for position 12, 13, and 14! Those will come back as
! 59: "destination reached" and be reported by the "raw" mode.
! 60:
! 61: Curses mode will stop showing hosts with position numbers beyond the
! 62: first reply of the destination host. It could gather the information
! 63: about replies to packets sent as probes FURTHER than it actually is
! 64: into the line displayed at its true position, but it doesn't (yet).
! 65:
! 66: In fact the above example is almost completely true:
! 67:
! 68: % mtr -r -n -c 2 152.179.99.218 | tail -5
! 69: 13.|-- 144.232.18.238 0.0% 2 94.8 95.4 94.8 96.0 0.8
! 70: 14.|-- 152.63.16.182 0.0% 2 95.1 95.5 95.1 95.8 0.5
! 71: 15.|-- 152.63.64.106 0.0% 2 163.9 163.9 163.9 164.0 0.1
! 72: 16.|-- 152.63.50.89 50.0% 2 163.7 163.7 163.7 163.7 0.0
! 73: 17.|-- 152.179.99.218 50.0% 2 168.2 168.2 168.2 168.2 0.0
! 74: % mtr -l -c 2 152.179.99.218 | grep -v "^[dp]" |tail -7
! 75: h 10 144.232.1.41
! 76: h 11 144.232.4.96
! 77: h 16 152.179.99.218
! 78: h 17 152.179.99.218
! 79: h 18 152.179.99.218
! 80: h 12 144.232.18.238
! 81: h 13 152.63.16.182
! 82:
! 83: As you can see we get the reply from the destination host at position
! 84: 16 AFTER we've sent probes for position 17 and 18. When those come
! 85: back, they are reported. That's what raw mode does. It reports the raw
! 86: information.
! 87:
! 88: If you write a backend for the raw mode, it's up to you to
! 89: filter/display the results.
! 90:
! 91: h 10 144.232.1.41
! 92: h 11 144.232.4.96
! 93: h 12 144.232.18.238
! 94: h 13 152.63.16.182
! 95: h 14 152.63.64.106
! 96: h 15 152.63.50.89
! 97: h 16 152.179.99.218
! 98: h 17 152.179.99.218
! 99: h 18 152.179.99.218
! 100:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>