xref: /aosp_15_r20/external/iputils/doc/tracepath.sgml (revision bd1f8aeb6080fa6544ec30aeca3eb4da100f359f)
1*bd1f8aebSAndroid Build Coastguard Worker<refentry id="tracepath">
2*bd1f8aebSAndroid Build Coastguard Worker
3*bd1f8aebSAndroid Build Coastguard Worker<refmeta>
4*bd1f8aebSAndroid Build Coastguard Worker<refentrytitle>tracepath</refentrytitle>
5*bd1f8aebSAndroid Build Coastguard Worker<manvolnum>8</manvolnum>
6*bd1f8aebSAndroid Build Coastguard Worker<refmiscinfo>iputils-&snapshot;</refmiscinfo>
7*bd1f8aebSAndroid Build Coastguard Worker</refmeta>
8*bd1f8aebSAndroid Build Coastguard Worker
9*bd1f8aebSAndroid Build Coastguard Worker<refnamediv>
10*bd1f8aebSAndroid Build Coastguard Worker<refname>tracepath, tracepath6</refname>
11*bd1f8aebSAndroid Build Coastguard Worker<refpurpose>
12*bd1f8aebSAndroid Build Coastguard Workertraces path to a network host discovering MTU along this path</refpurpose>
13*bd1f8aebSAndroid Build Coastguard Worker</refnamediv>
14*bd1f8aebSAndroid Build Coastguard Worker
15*bd1f8aebSAndroid Build Coastguard Worker<refsynopsisdiv>
16*bd1f8aebSAndroid Build Coastguard Worker<cmdsynopsis>
17*bd1f8aebSAndroid Build Coastguard Worker<command>tracepath</command>
18*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-n</arg>
19*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-b</arg>
20*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-l <replaceable/pktlen/</arg>
21*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-m <replaceable/max_hops/</arg>
22*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-p <replaceable/port/</arg>
23*bd1f8aebSAndroid Build Coastguard Worker<arg choice="req"><replaceable/destination/</arg>
24*bd1f8aebSAndroid Build Coastguard Worker</cmdsynopsis>
25*bd1f8aebSAndroid Build Coastguard Worker</refsynopsisdiv>
26*bd1f8aebSAndroid Build Coastguard Worker
27*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>DESCRIPTION</title>
28*bd1f8aebSAndroid Build Coastguard Worker<para>
29*bd1f8aebSAndroid Build Coastguard WorkerIt traces path to <replaceable/destination/ discovering MTU along this path.
30*bd1f8aebSAndroid Build Coastguard WorkerIt uses UDP port <replaceable/port/ or some random port.
31*bd1f8aebSAndroid Build Coastguard WorkerIt is similar to <command/traceroute/, only does not require superuser
32*bd1f8aebSAndroid Build Coastguard Workerprivileges and has no fancy options.
33*bd1f8aebSAndroid Build Coastguard Worker</para>
34*bd1f8aebSAndroid Build Coastguard Worker
35*bd1f8aebSAndroid Build Coastguard Worker<para>
36*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath6/ is good replacement for <command/traceroute6/
37*bd1f8aebSAndroid Build Coastguard Workerand classic example of application of Linux error queues.
38*bd1f8aebSAndroid Build Coastguard WorkerThe situation with IPv4 is worse, because commercial
39*bd1f8aebSAndroid Build Coastguard WorkerIP routers do not return enough information in ICMP error messages.
40*bd1f8aebSAndroid Build Coastguard WorkerProbably, it will change, when they will be updated.
41*bd1f8aebSAndroid Build Coastguard WorkerFor now it uses Van Jacobson's trick, sweeping a range
42*bd1f8aebSAndroid Build Coastguard Workerof UDP ports to maintain trace history.
43*bd1f8aebSAndroid Build Coastguard Worker</para>
44*bd1f8aebSAndroid Build Coastguard Worker</refsect1>
45*bd1f8aebSAndroid Build Coastguard Worker
46*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>OPTIONS</title>
47*bd1f8aebSAndroid Build Coastguard Worker<variablelist>
48*bd1f8aebSAndroid Build Coastguard Worker
49*bd1f8aebSAndroid Build Coastguard Worker <varlistentry>
50*bd1f8aebSAndroid Build Coastguard Worker  <term><option/-n/</term>
51*bd1f8aebSAndroid Build Coastguard Worker  <listitem><para>
52*bd1f8aebSAndroid Build Coastguard WorkerPrint primarily IP addresses numerically.
53*bd1f8aebSAndroid Build Coastguard Worker  </para></listitem>
54*bd1f8aebSAndroid Build Coastguard Worker </varlistentry>
55*bd1f8aebSAndroid Build Coastguard Worker
56*bd1f8aebSAndroid Build Coastguard Worker <varlistentry>
57*bd1f8aebSAndroid Build Coastguard Worker  <term><option/-b/</term>
58*bd1f8aebSAndroid Build Coastguard Worker  <listitem><para>
59*bd1f8aebSAndroid Build Coastguard WorkerPrint both of host names and IP addresses.
60*bd1f8aebSAndroid Build Coastguard Worker  </para></listitem>
61*bd1f8aebSAndroid Build Coastguard Worker </varlistentry>
62*bd1f8aebSAndroid Build Coastguard Worker
63*bd1f8aebSAndroid Build Coastguard Worker <varlistentry>
64*bd1f8aebSAndroid Build Coastguard Worker  <term><option/-l/</term>
65*bd1f8aebSAndroid Build Coastguard Worker  <listitem><para>
66*bd1f8aebSAndroid Build Coastguard WorkerSets the initial packet length to <replaceable/pktlen/ instead of
67*bd1f8aebSAndroid Build Coastguard Worker65535 for <command/tracepath/ or 128000 for <command/tracepath6/.
68*bd1f8aebSAndroid Build Coastguard Worker  </para></listitem>
69*bd1f8aebSAndroid Build Coastguard Worker </varlistentry>
70*bd1f8aebSAndroid Build Coastguard Worker
71*bd1f8aebSAndroid Build Coastguard Worker <varlistentry>
72*bd1f8aebSAndroid Build Coastguard Worker  <term><option/-m</term>
73*bd1f8aebSAndroid Build Coastguard Worker  <listitem><para>
74*bd1f8aebSAndroid Build Coastguard WorkerSet maximum hops (or maximum TTLs) to <replaceable/max_hops/
75*bd1f8aebSAndroid Build Coastguard Workerinstead of 30.
76*bd1f8aebSAndroid Build Coastguard Worker  </para></listitem>
77*bd1f8aebSAndroid Build Coastguard Worker </varlistentry>
78*bd1f8aebSAndroid Build Coastguard Worker
79*bd1f8aebSAndroid Build Coastguard Worker <varlistentry>
80*bd1f8aebSAndroid Build Coastguard Worker  <term><option/-p/</term>
81*bd1f8aebSAndroid Build Coastguard Worker  <listitem><para>
82*bd1f8aebSAndroid Build Coastguard WorkerSets the initial destination port to use.
83*bd1f8aebSAndroid Build Coastguard Worker  </para></listitem>
84*bd1f8aebSAndroid Build Coastguard Worker </varlistentry>
85*bd1f8aebSAndroid Build Coastguard Worker</variablelist>
86*bd1f8aebSAndroid Build Coastguard Worker</refsect1>
87*bd1f8aebSAndroid Build Coastguard Worker
88*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>OUTPUT</title>
89*bd1f8aebSAndroid Build Coastguard Worker<para>
90*bd1f8aebSAndroid Build Coastguard Worker<literallayout>
91*bd1f8aebSAndroid Build Coastguard Workerroot@mops:~ # tracepath6 3ffe:2400:0:109::2
92*bd1f8aebSAndroid Build Coastguard Worker 1?: [LOCALHOST]                              pmtu 1500
93*bd1f8aebSAndroid Build Coastguard Worker 1:  dust.inr.ac.ru                   0.411ms
94*bd1f8aebSAndroid Build Coastguard Worker 2:  dust.inr.ac.ru        asymm  1   0.390ms pmtu 1480
95*bd1f8aebSAndroid Build Coastguard Worker 2:  3ffe:2400:0:109::2               463.514ms reached
96*bd1f8aebSAndroid Build Coastguard Worker     Resume: pmtu 1480 hops 2 back 2
97*bd1f8aebSAndroid Build Coastguard Worker</literallayout>
98*bd1f8aebSAndroid Build Coastguard Worker</para>
99*bd1f8aebSAndroid Build Coastguard Worker
100*bd1f8aebSAndroid Build Coastguard Worker<para>
101*bd1f8aebSAndroid Build Coastguard WorkerThe first column shows <literal/TTL/ of the probe, followed by colon.
102*bd1f8aebSAndroid Build Coastguard WorkerUsually value of <literal/TTL/ is obtained from reply from network,
103*bd1f8aebSAndroid Build Coastguard Workerbut sometimes reply does not contain necessary information and
104*bd1f8aebSAndroid Build Coastguard Workerwe have to guess it. In this case the number is followed by ?.
105*bd1f8aebSAndroid Build Coastguard Worker</para>
106*bd1f8aebSAndroid Build Coastguard Worker
107*bd1f8aebSAndroid Build Coastguard Worker<para>
108*bd1f8aebSAndroid Build Coastguard WorkerThe second column shows the network hop, which replied to the probe.
109*bd1f8aebSAndroid Build Coastguard WorkerIt is either address of router or word <literal/[LOCALHOST]/, if
110*bd1f8aebSAndroid Build Coastguard Workerthe probe was not sent to the network.
111*bd1f8aebSAndroid Build Coastguard Worker</para>
112*bd1f8aebSAndroid Build Coastguard Worker
113*bd1f8aebSAndroid Build Coastguard Worker<para>
114*bd1f8aebSAndroid Build Coastguard WorkerThe rest of line shows miscellaneous information about path to
115*bd1f8aebSAndroid Build Coastguard Workerthe correspinding network hop. As rule it contains value of RTT.
116*bd1f8aebSAndroid Build Coastguard WorkerAdditionally, it can show Path MTU, when it changes.
117*bd1f8aebSAndroid Build Coastguard WorkerIf the path is asymmetric
118*bd1f8aebSAndroid Build Coastguard Workeror the probe finishes before it reach prescribed hop, difference
119*bd1f8aebSAndroid Build Coastguard Workerbetween number of hops in forward and backward direction is shown
120*bd1f8aebSAndroid Build Coastguard Workerfollowing keyword <literal/async/. This information is not reliable.
121*bd1f8aebSAndroid Build Coastguard WorkerF.e. the third line shows asymmetry of 1, it is because the first probe
122*bd1f8aebSAndroid Build Coastguard Workerwith TTL of 2 was rejected at the first hop due to Path MTU Discovery.
123*bd1f8aebSAndroid Build Coastguard Worker</para>
124*bd1f8aebSAndroid Build Coastguard Worker
125*bd1f8aebSAndroid Build Coastguard Worker<para>
126*bd1f8aebSAndroid Build Coastguard WorkerThe last line summarizes information about all the path to the destination,
127*bd1f8aebSAndroid Build Coastguard Workerit shows detected Path MTU, amount of hops to the destination and our
128*bd1f8aebSAndroid Build Coastguard Workerguess about amount of hops from the destination to us, which can be
129*bd1f8aebSAndroid Build Coastguard Workerdifferent when the path is asymmetric.
130*bd1f8aebSAndroid Build Coastguard Worker</para>
131*bd1f8aebSAndroid Build Coastguard Worker
132*bd1f8aebSAndroid Build Coastguard Worker</refsect1>
133*bd1f8aebSAndroid Build Coastguard Worker
134*bd1f8aebSAndroid Build Coastguard Worker
135*bd1f8aebSAndroid Build Coastguard Worker
136*bd1f8aebSAndroid Build Coastguard Worker
137*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>SEE ALSO</title>
138*bd1f8aebSAndroid Build Coastguard Worker<para>
139*bd1f8aebSAndroid Build Coastguard Worker<citerefentry><refentrytitle/traceroute/<manvolnum/8/</citerefentry>,
140*bd1f8aebSAndroid Build Coastguard Worker<link linkend="traceroute6">
141*bd1f8aebSAndroid Build Coastguard Worker<citerefentry><refentrytitle/traceroute6/<manvolnum/8/</citerefentry></link>,
142*bd1f8aebSAndroid Build Coastguard Worker<link linkend="ping">
143*bd1f8aebSAndroid Build Coastguard Worker<citerefentry><refentrytitle/ping/<manvolnum/8/</citerefentry></link>.
144*bd1f8aebSAndroid Build Coastguard Worker</para>
145*bd1f8aebSAndroid Build Coastguard Worker</refsect1>
146*bd1f8aebSAndroid Build Coastguard Worker
147*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>AUTHOR</title>
148*bd1f8aebSAndroid Build Coastguard Worker<para>
149*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath/ was written by
150*bd1f8aebSAndroid Build Coastguard Worker<ulink url="mailto:[email protected]">Alexey Kuznetsov
151*bd1f8aebSAndroid Build Coastguard Worker&lt;[email protected]&gt;</ulink>.
152*bd1f8aebSAndroid Build Coastguard Worker</para>
153*bd1f8aebSAndroid Build Coastguard Worker</refsect1>
154*bd1f8aebSAndroid Build Coastguard Worker
155*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>SECURITY</title>
156*bd1f8aebSAndroid Build Coastguard Worker<para>
157*bd1f8aebSAndroid Build Coastguard WorkerNo security issues.
158*bd1f8aebSAndroid Build Coastguard Worker</para>
159*bd1f8aebSAndroid Build Coastguard Worker<para>
160*bd1f8aebSAndroid Build Coastguard WorkerThis lapidary deserves to be elaborated.
161*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath/ is not a privileged program, unlike
162*bd1f8aebSAndroid Build Coastguard Worker<command/traceroute/, <command/ping/ and other beasts of this kind.
163*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath/ may be executed by everyone who has some access
164*bd1f8aebSAndroid Build Coastguard Workerto network, enough to send UDP datagrams to investigated destination
165*bd1f8aebSAndroid Build Coastguard Workerusing given port.
166*bd1f8aebSAndroid Build Coastguard Worker</para>
167*bd1f8aebSAndroid Build Coastguard Worker</refsect1>
168*bd1f8aebSAndroid Build Coastguard Worker
169*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>AVAILABILITY</title>
170*bd1f8aebSAndroid Build Coastguard Worker<para>
171*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath/ is part of <filename/iputils/ package
172*bd1f8aebSAndroid Build Coastguard Workerand the latest versions are  available in source form at
173*bd1f8aebSAndroid Build Coastguard Worker<ulink url="http://www.skbuff.net/iputils/iputils-current.tar.bz2">
174*bd1f8aebSAndroid Build Coastguard Workerhttp://www.skbuff.net/iputils/iputils-current.tar.bz2</ulink>.
175*bd1f8aebSAndroid Build Coastguard Worker</para>
176*bd1f8aebSAndroid Build Coastguard Worker</refsect1>
177*bd1f8aebSAndroid Build Coastguard Worker
178*bd1f8aebSAndroid Build Coastguard Worker<![IGNORE[
179*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>COPYING</title>
180*bd1f8aebSAndroid Build Coastguard Worker<para>
181*bd1f8aebSAndroid Build Coastguard Worker<literallayout>
182*bd1f8aebSAndroid Build Coastguard WorkerThis documentation is free software; you can redistribute
183*bd1f8aebSAndroid Build Coastguard Workerit and/or modify it under the terms of the GNU General Public
184*bd1f8aebSAndroid Build Coastguard WorkerLicense Version 2.
185*bd1f8aebSAndroid Build Coastguard Worker
186*bd1f8aebSAndroid Build Coastguard WorkerThis program is distributed in the hope that it will be
187*bd1f8aebSAndroid Build Coastguard Workeruseful, but WITHOUT ANY WARRANTY; without even the implied
188*bd1f8aebSAndroid Build Coastguard Workerwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
189*bd1f8aebSAndroid Build Coastguard WorkerSee the GNU General Public License for more details.
190*bd1f8aebSAndroid Build Coastguard Worker
191*bd1f8aebSAndroid Build Coastguard WorkerFor more details see the file COPYING in the source
192*bd1f8aebSAndroid Build Coastguard Workerdistribution of Linux kernel of version 2.4.
193*bd1f8aebSAndroid Build Coastguard Worker</literallayout>
194*bd1f8aebSAndroid Build Coastguard Worker</para>
195*bd1f8aebSAndroid Build Coastguard Worker</refsect1>
196*bd1f8aebSAndroid Build Coastguard Worker]]>
197*bd1f8aebSAndroid Build Coastguard Worker
198*bd1f8aebSAndroid Build Coastguard Worker
199*bd1f8aebSAndroid Build Coastguard Worker
200*bd1f8aebSAndroid Build Coastguard Worker
201*bd1f8aebSAndroid Build Coastguard Worker</refentry>
202