Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Implementations  





2 Usage  





3 Value  





4 Origins  





5 Limitations  





6 See also  





7 References  





8 Further reading  





9 External links  














traceroute






العربية
Български
Català
Čeština
Deutsch
Español
Euskara
فارسی
Français

Bahasa Indonesia
Italiano
עברית
Latviešu
Lombard
Magyar
Македонски

Nederlands

Norsk bokmål
Polski
Português
Română
Русский
Српски / srpski
Suomi
Svenska
Türkçe
Українська
Tiếng Vit

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


traceroute
Original author(s)Van Jacobson
Initial release1987; 37 years ago (1987)
PlatformUnix-like systems
TypeCommand
tracert
Developer(s)Microsoft, ReactOS Contributors
PlatformWindows, ReactOS
TypeCommand
LicenseMicrosoft Windows: Proprietary commercial software
ReactOS: GNU General Public License

Incomputing, traceroute and tracert are diagnostic command-line interface commands for displaying possible routes (paths) and transit delays of packets across an Internet Protocol (IP) network.

The command reports the round-trip times of the packets received from each successive host (remote node) along the route to a destination. The sum of the mean times in each hop is a measure of the total time spent to establish the connection. The command aborts if all (usually three) sent packets are lost more than twice.

Ping, on the other hand, only computes the final round-trip times from the destination point.

For Internet Protocol Version 6 (IPv6), the tool sometimes has the name traceroute6[1] and tracert6.[2]

Implementations

[edit]

A command is available in many modern operating systems, generally named tracerouteinUnix-like systems such as FreeBSD, macOS, and Linux and named tracertinWindows and ReactOS.

The functionality was available graphically in macOS, but has been deprecated since the release of macOS Big Sur.[3]

Windows NT-based operating systems also provide PathPing, which combines the functionality of ping with that of tracert.

The ReactOS version was developed by Ged Murphy and is licensed under the GPL.[4]

OnUnix-like operating systems, traceroute sends, by default, a sequence of User Datagram Protocol (UDP) packets, with destination port numbers ranging from 33434 to 33534; the implementations of traceroute shipped with Linux,[5] FreeBSD,[6] NetBSD,[7] OpenBSD,[8] DragonFly BSD,[9] and macOS include an option to use ICMP Echo Request packets (-I), or any arbitrary protocol (-P) such as UDP, TCP using TCP SYN packets, or ICMP.[10]

On Windows, tracert sends ICMP Echo Request packets, rather than the UDP packets traceroute sends by default.[11]

The time-to-live (TTL) value, also known as hop limit, is used in determining the intermediate routers being traversed towards the destination. Traceroute sends packets with TTL values that gradually increase from packet to packet, starting with TTL value of one. Routers decrement TTL values of packets by one when routing and discard packets whose TTL value has reached zero, returning the ICMP error message ICMP Time Exceeded.[10] For the first set of packets, the first router receives the packet, decrements the TTL value and drops the packet because it then has TTL value zero. The router sends an ICMP Time Exceeded message back to the source. The next set of packets are given a TTL value of two, so the first router forwards the packets, but the second router drops them and replies with ICMP Time Exceeded. Proceeding in this way, traceroute uses the returned ICMP Time Exceeded messages to build a list of routers that packets traverse, until the destination is reached and returns an ICMP Destination Unreachable message if UDP packets are being used or an ICMP Echo Reply message if ICMP Echo messages are being used.[10]

The timestamp values returned for each router along the path are the delay (latency) values, typically measured in milliseconds for each packet.

The sender expects a reply within a configured number of seconds. If a packet is not acknowledged within the expected interval, an asterisk is displayed.

The Internet Protocol does not require packets to take the same route towards a particular destination, thus hosts listed might be hosts that other packets have traversed. If the host at hop #N does not reply, the hop is skipped in the output.

If a network has a firewall and operates both Windows and Unix-like systems, more than one protocol must be enabled inbound through the firewall for traceroute to work and receive replies.

Some traceroute implementations use TCP packets, such as tcptraceroute and layer four traceroute (lft). PathPing is a utility introduced with Windows NT that combines ping and traceroute functionality. MTR is an enhanced version of ICMP traceroute available for Unix-like and Windows systems. The various implementations of traceroute all rely on ICMP Time Exceeded (type 11) packets being sent to the source.

On Linux, tracepath is a utility similar to traceroute, with the primary difference of not requiring superuser privileges.[12]

Cisco's implementation of traceroute also uses a sequence of UDP datagrams, each with incrementing TTL values, to an invalid port number at the remote host; by default, UDP port 33434 is used. An extended version of this command (known as the extended traceroute command) can change the destination port number used by the UDP probe messages.[13]

Usage

[edit]
Router addresses can be superimposed upon maps of their physical locations. This example shows a request from New Zealand to an IP address in Massachusetts which takes a route that passes through Europe.

Most implementations include options to specify the number of queries to send per hop, time to wait for a response, the hop limit and port to use. Invoking traceroute with no options displays the list of available options

For Linux, man traceroute presents more details, including the displayed error flags.

For example:

$ traceroute -w 3 -q 1 -m 16 example.com
traceroute to example.com (93.184.216.34), 16 hops max, 52 byte packets
 1  192.x.x.x (192.x.x.x)  5.152 ms
 2  10.x.x.x (10.x.x.x)  12.767 ms
 3  172.x.x.x (172.x.x.x)  11.638 ms
 4  172.x.x.x (172.x.x.x)  13.193 ms
 5  xxx.x.x.x.cox.net (68.x.x.x)  20.624 ms
 6  xxx.xxx.xxx.edgecastcdn.net (192.x.x.x)  56.205 ms
 7  xxx.xxx.xxx.edgecastcdn.net (192.x.x.x)  24.573 ms
 8  *
 9  *
10  93.x.x.x (93.x.x.x)  22.810 ms
11  93.x.x.x (93.x.x.x)  20.235 ms

In the example above, selected options are to wait for three seconds (instead of five), send out only one query to each hop (instead of three), limit the maximum number of hops to 16 before giving up (instead of 30), with example.com as the final host. On line 8 and 9 (TTLs 8 and 9) it shows asterisks where the router did not respond within the timeout.

Value

[edit]

Traceroute can help identify incorrect routing table definitions or firewalls that may be blocking ICMP traffic, or high port UDP in Unix ping, to a site.[clarify] A correct traceroute response does not guarantee connectivity for applications as a firewall may permit ICMP packets but not permit packets of other protocols.

Traceroute is used by penetration testers to gather information about network infrastructure and IP address ranges around a given host.

Traceroute can be used to optimize data download. If there are multiple mirrors available for the same resource, each mirror can be traced to find the fastest.

Origins

[edit]

The traceroute manual page states that the original traceroute program was written by Van Jacobson in 1987 from a suggestion by Steve Deering, and that Guy Almes and Matt Mathis also had the idea concurrent with Deering.[14] The author of the ping program, Mike Muuss, states on his website that traceroute was written using kernel ICMP support that he had earlier coded to enable raw ICMP sockets when he first wrote the ping program.[15]

Limitations

[edit]

Traceroute has multiple limitations.[16] Traceroute does not discover paths at the router level, but at the interface level. Another limitation appears when routers do not respond to probes or when routers have a limit for ICMP responses.[17] In the presence of traffic load balancing, traceroute may indicate a path that does not actually exist; to minimize this problem there is a traceroute modification called Paris-traceroute,[18] which maintains the flow identifier of the probes to avoid load balancing.

See also

[edit]

References

[edit]
  1. ^ "Traceroute6(8) - Linux man page".
  • ^ "Tracert6(8): IPv6 traceroute tool - Linux man page".
  • ^ Rossingol, Joe (23 June 2020). "Network Utility Deprecated in macOS Big Sur". MacRumors.
  • ^ tracert.cpponGitHub
  • ^ traceroute(8) – Linux Programmer's Manual – Administration and Privileged Commands
  • ^ traceroute(8) – FreeBSD System Manager's Manual
  • ^ traceroute(8) – NetBSD System Manager's Manual
  • ^ traceroute(8) – OpenBSD System Manager's Manual
  • ^ traceroute(8) – DragonFly BSD System Maintenance and Operation Commands Manual
  • ^ a b c Comer, Douglas (2004). Computer Network and Internets with Internet Applications. Pearson Education, Inc. pp. 360–362. ISBN 978-0131433519.
  • ^ "Tracert". Microsoft Docs. 3 February 2023. Retrieved July 29, 2023.
  • ^ "tracepath(8) – Linux man page". linux.die.net. Retrieved 2015-06-21.
  • ^ "Understanding the Ping and Traceroute Commands". Cisco IOS Software Releases 12.1 Mainline. cisco.com. 2006-11-29. Retrieved 2013-12-08.
  • ^ "traceroute6.c source code". 2022-10-04. Retrieved 2023-09-17.
  • ^ "The Story of the PING Program".
  • ^ Ray Belleville (March 3, 2017). "Limitations of Traceroute Explained".
  • ^ Marchetta, P.; Montieri, A.; Persico, V.; Pescapé, A.; Cunha, Í; Katz-Bassett, E. (June 2016). How and how much traceroute confuses our understanding of network paths. 2016 IEEE International Symposium on Local and Metropolitan Area Networks (LANMAN). pp. 1–7. doi:10.1109/lanman.2016.7548847. ISBN 978-1-4673-9882-4. S2CID 4643833.
  • ^ "Paris Traceroute". paris-traceroute.net. Retrieved 2017-06-10.
  • Further reading

    [edit]
    [edit]
    Retrieved from "https://en.wikipedia.org/w/index.php?title=Traceroute&oldid=1224203181"

    Categories: 
    Windows commands
    Network analyzers
    Free network management software
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    All Wikipedia articles needing clarification
    Wikipedia articles needing clarification from November 2020
     



    This page was last edited on 16 May 2024, at 21:34 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki