Doug Vitale Tech Blog

MTR and WinMTR

MTR (My traceroute; originally Matt’s traceroute) is a free and open source Linux utility that combines the functionality of both traceroute and ping, and as such is a more sophisticated tool (go here to brush up on your knowledge of these two commands). Not only does MTR reveal each hop between your host and a destination (as traceroute does), but it also sends a sequence of ICMP ECHO requests to each hop to determine the quality of the link (like ping). Simultaneously it displays running statistics about each hop. MTR supports both IPv4 and IPv6.

The simple command syntax for MTR is mtr [options] [target]. The range of options for MTR is described below.

Jump to:

MTR command options

Description

mtr -a [IP_address] or --address [IP_address] Binds outgoing packets’ sockets to a specific source interface so that all packets will be sent through it.
mtr -c [count] or --report-cycles [count] Sets the number of pings sent to the destination and intermediary hosts. Each cycle lasts one second.
mtr -e or --mpls Displays information from ICMP extensions for MPLS (RFC 4950) that are encoded in the response packets.
mtr -g or --gtk Launches MTR within a GTK+-based X11 window interface (pictured below).
mtr -h or --help Displays the MTR command line options.
mtr -i [seconds] or --interval [seconds] Specifies the number of seconds to wait between ICMP ECHO requests (default value is one second).
mtr -l or --raw Configures MTR to use the raw format for output, which is better suited for archival or parsing.
mtr -n or --no-dns Configures MTR to display IP addresses and not attempt to resolve host names.
mtr -o [fields] [order] or --order [fields] [order] Specifies the fields and their order when loading MTR (for example, mtr -o LSD NBAW)
mtr -p or --split Configures MTR to display output in a format that is suitable for a split-user interface.
mtr -r or --report Enables MTR’s report mode in which MTR will run for the number of cycles specified by -c, display its query output, and then exit.
mtr -s [bytes] [packet_size] or --psize [bytes] [packet_size] Sets the packet size used for probing.
mtr -t or --curses Configures MTR to use the curses-based terminal interface.
mtr -u Uses UDP datagrams instead of ICMP ECHO.
mtr -v or --version Displays the installed version of MTR.
mtr -w or --report-wide Enables MTR’s wide report mode in which host names are not shortened.
mtr -4 Configures MTR to use IPv4 only.
mtr -6 Configures MTR to use IPv6 only.

.
It should be noted that the MTR man page states: “Some modern routers give a lower priority to ICMP ECHO packets than to other network traffic. Consequently, the reliability of these routers reported by MTR will be significantly lower than the actual reliability of these routers.”

Below you will see an example of MTR running in a Linux shell prompt.

MTR query for kernel.org

MTR v0.82 query for kernel.org

Sample MTR command

mtr -r -c50 kernel.org >> kernel.org-mtr.txt
Runs MTR 50 times on target kernel.org and outputs the results in a text file.

.

The MTR graphical user interface (GUI) is depicted below.

MTR GTK+ interface

The MTR v0.82 GTK+ interface

MTR command output appears in the MTR GUI as shown here.

MTR GUI

The MTR v0.82 GUI displaying results for target kernel.org


WinMTR

The Windows version of MTR is WinMTR and is developed by Appnor. Like MTR, WinMTR is free and open source. You can copy the WinMTR.exe file to \%SystemRoot%\Windows\System32\ so that it’s accessible in your default command line environment. The command line options for WinMTR.exe are described below. Note that when you issue a WinMTR command in a command prompt, the WinMTR interface will launch and start a scan using the parameters you specified. In other words, while you can launch WinMTR from the command line, it will not run in that environment like MTR does in Linux.

WinMTR command options

Description

WinMTR.exe -h or --help Displays the help message.
WinMTR.exe -i [value] or --interval [value] Sets the interval between pings.
WinMTR.exe -m [value] or --maxLRU [value] Sets the max hosts in the LRU list.
WinMTR.exe -n or --numeric Configures WinMTR to display IP addresses and not attempt to resolve host names.
WinMTR.exe -s [value] or --size [value] Sets the size of ping packets.

.
Here’s what the WinMTR interface looks like.

WinMTR main interface

The WinMTR v0.92 main interface

Within the WinMTR interface you can configure the ping size, maximum hops, and ping interval.

WinMTR options

WinMTR v0.92 options

WinMTR query results are displayed like so.

WinMTR query results

WinMTR v0.92 query results


Recommended reading

If you found the content of this article helpful and want to expand your knowledge further, please consider buying a relevant book or two using the links below. Thanks!

Network Warrior on Amazon Network Warrior The Practice of System and Network Administration on Amazon System and Network Administration

Network Administrator Street Smarts: A Real World Guide to CompTIA Network+ Skills on Amazon Network Admin Street Smarts TCP/IP Network Administration on Amazon TCP/IP Network Administration

Written by Doug Vitale

January 3, 2012 at 10:18 PM