STANNIX Community


Manual: mtr-packet

MTR-PACKET(8)					    System Administration				       MTR-PACKET(8)

NAME
       mtr-packet - send and receive network probes

DESCRIPTION
       mtr-packet is a tool for sending network probes to measure network connectivity and performance.	 Many network probes
       can  be	sent  simultaneously by a single process instance of mtr-packet and additional probes can be generated by an
       instance of mtr-packet which already has network probes in flight.  It is intended to be used by programs  which	 in‐
       voke it with Unix pipes attached to its standard input and output streams.

       mtr-packet  reads  command  requests  from  stdin,  each	 separated by a newline character, and responds with command
       replies to stdout, also each separated by a newline character.  The syntactic structure of requests and	replies	 are
       the same.  The following format is used:

	      TOKEN COMMAND [ARGUMENT-NAME ARGUMENT-VALUE ...]

       TOKEN  is  a unique integer value.  The same value will be used as the TOKEN for the response.  This is necessary for
       associating replies with requests, as commands may be completed in a different order than they  are  requested.	 The
       invoker of mtr-packet should always use the TOKEN value to determine which command request has completed.

       COMMAND	is  a  string identifying the command request type.  A common command is send-probe, which will transmit one
       network probe.

       ARGUMENT-NAME strings and ARGUMENT-VALUE strings always come in pairs.  It is a syntactic error to provide  an  ARGU‐
       MENT-NAME without a corresponding ARGUMENT-VALUE.  Valid ARGUMENT-NAME strings depend on the COMMAND being used.

REQUESTS
       send-probe
	      Send  a  network probe to a particular IP address.  Either an ip-4 or ip-6 argument must be provided.  A valid
	      send-probe command will reply with reply, no-reply, or ttl-expired.

	      The following arguments may be used:

	      ip-4 IP-ADDRESS

		     The Internet Protocol version 4 address to probe.

	      ip-6 IP-ADDRESS

		     The Internet Protocol version 6 address to probe.

	      protocol PROTOCOL

		     The protocol to use for the network probe.	 icmp, sctp, tcp, and udp may be used.	The default protocol
		     is icmp.

	      port PORT-NUMBER

		     The destination port to use for sctp, tcp, or udp probes.

	      local-ip-4 IP-ADDRESS

		     The local Internet Protocol version 4 address to use when sending probes.

	      local-ip-6 IP-ADDRESS

		     The local Internet Protocol version 6 address to use when sending probes.

	      local-port PORT-NUMBER

		     For udp probes, the local port number from which to send probes.

	      timeout TIMEOUT-SECONDS

		     The number of seconds to wait for a response to the probe before discarding the probe as lost, and gen‐
		     erating a no-reply command reply.

	      ttl TIME-TO-LIVE

		     The time-to-live value for the Internet Protocol packet header used in constructing  the  probe.	This
		     value  determines	the  number of network hops through which the probe will travel before a response is
		     generated by an intermediate network host.

	      size PACKET-SIZE

		     The size of the packet used to send the probe, in bytes, including the  Internet  Protocol	 header	 and
		     transport protocol header.

	      bit-pattern PATTERN-VALUE

		     The  packet payload is filled with bytes of the value specified.  Valid pattern values are in the range
		     0 through 255.

	      tos TYPE-OF-SERVICE

		     In the case of IPv4, the "type of service" field in the IP header is set to this value.  In the case of
		     IPv6, the "traffic class" field is set.

	      mark ROUTING-MARK

		     The packet mark value to be used by mark-based routing.  (Available only on Linux.)

       check-support
	      Check for support for a particular feature in this version of mtr-packet and in this particular operating	 en‐
	      vironment.  check-support will reply with feature-supported.  A feature argument is required.

	      feature FEATURE-NAME

		     The name of a feature requested.

	      Some  features  which  can be checked are send-probe, ip-4, ip-6, icmp, sctp, tcp, udp, and mark.	 The feature
	      version can be checked to retrieve the version of mtr-packet.

REPLIES
       reply  The destination host received the send-probe probe and replied.  Arguments of reply are:

	      ip-4 IP-ADDRESS

		     The Internet Protocol version 4 address of the host which replied to the probe.

	      ip-6 IP-ADDRESS

		     The Internet Protocol version 6 address of the host which replied to the probe.

	      round-trip-time TIME

		     The time which passed between the transmission of the probe and its response.  The time is provided  as
		     a integral number of microseconds elapsed.

       no-reply
	      No response to the probe request was received before the timeout expired.

       ttl-expired
	      The  time-to-live value of the transmitted probe expired before the probe arrived at its intended destination.
	      Arguments of ttl-expired are:

	      ip-4 IP-ADDRESS

		     The Internet Protocol version 4 address of the host at which the time-to-live value expired.

	      ip-6 IP-ADDRESS

		     The Internet Protocol version 6 address of the host at which the time-to-live value expired.

	      round-trip-time TIME

		     The time which passed between the transmission of the probe and its response.  The time is provided  as
		     a integral number of microseconds elapsed.

	      mpls MPLS-LABEL-LIST

		     A	list of Multiprotocol Label Switching values returned with the probe response.	If the mpls argument
		     is present, one or more MPLS labels will be represented by a comma separated list of values.  The	val‐
		     ues are provided in groups of four.  The first four values in the list correspond to the first MPLS la‐
		     bel,  the	next four values correspond to the second MPLS label, and so on.  The values are provided in
		     this order: label, traffic-class, bottom-of-stack, ttl.

       no-route
	      There was no route to the host used in a send-probe request.

       network-down
	      A probe could not be sent because the network is down.

       probes-exhausted
	      A probe could not be sent because there are already too many unresolved probes in flight.

       permission-denied
	      The operating system denied permission to send the probe with the specified options.

       invalid-argument
	      The command request contained arguments which are invalid.

       feature-support
	      A reply to provided to check-support indicating the availability of a particular feature.	 The  argument	pro‐
	      vided is:

	      support PRESENT

		     In	 most  cases, the PRESENT value will be either ok, indicating the feature is supported, or no, indi‐
		     cating no support for the feature.

		     In the case that version is the requested FEATURE-NAME, the version of mtr-packet is  provided  as	 the
		     PRESENT value.

EXAMPLES
       A controlling program may start mtr-packet as a child process and issue the following command on stdin:

	      42 send-probe ip-4 127.0.0.1

       This  will  send	 a network probe to the loopback interface.  When the probe completes, mtr-packet will provide a re‐
       sponse on stdout such as the following:

	      42 reply ip-4 127.0.0.1 round-trip-time 126

       This indicates that the loopback address replied to the probe, and the round-trip time of the probe was 126 microsec‐
       onds.

       In order to trace the route to a remote host, multiple send-probe commands, each with  a	 different  ttl	 value,	 are
       used.

	      11 send-probe ip-4 8.8.8.8 ttl 1
	      12 send-probe ip-4 8.8.8.8 ttl 2
	      13 send-probe ip-4 8.8.8.8 ttl 3
	      ...

       Each intermediate host would respond with a ttl-expired message, and the destination host would respond with a reply:

	      11 ttl-expired ip-4 192.168.254.254 round-trip-time 1634
	      12 ttl-expired ip-4 184.19.243.240 round-trip-time 7609
	      13 ttl-expired ip-4 172.76.20.169 round-trip-time 8643
	      14 ttl-expired ip-4 74.40.1.101 round-trip-time 9755
	      15 ttl-expired ip-4 74.40.5.126 round-trip-time 10695
	      17 ttl-expired ip-4 108.170.245.97 round-trip-time 14077
	      16 ttl-expired ip-4 74.40.26.131 round-trip-time 15253
	      18 ttl-expired ip-4 209.85.245.101 round-trip-time 17080
	      19 reply ip-4 8.8.8.8 round-trip-time 17039

       Note that the replies in this example are printed out of order.	(The reply to probe 17 arrives prior to the reply to
       probe 16.)  This is the reason that it is important to send commands with unique token values, and to use those token
       values to match replies with their originating commands.

LANGUAGE BINDINGS
       A  Python  3.x  package for sending asynchronous network probes using mtr-packet is available.  See https://pypi.org/
       project/mtrpacket/

CONTACT INFORMATION
       For the latest version, see the mtr web page at http://www.bitwizard.nl/mtr/

       For patches, bug reports, or feature requests, please open an issue on GitHub at: https://github.com/traviscross/mtr.

SEE ALSO
       mtr(8), icmp(7), tcp(7), udp(7), TCP/IP Illustrated (Stevens, ISBN 0201633469).

mtr-packet						    0.95					       MTR-PACKET(8)