Dalam komputasi, ***Traceroute*** (**Tracert**) adalah perintah untuk menunjukkan rute yang dilewati paket untuk mencapai tujuan. Ini dilakukan dengan mengirim pesan Internet Control Message Protocol (ICMP) Echo Request Ke tujuan dengan nilai Time to Live yang semakin meningkat. Rute yang ditampilkan adalah daftar interface router (yang paling dekat dengan host) yang terdapat pada jalur antara host dan tujuan. 

Untuk Protokol Internet versi 6 (IPv6) alatnya biasanya mempunyai nama **`traceroute6`** dan **`tracert6`**.

Implementasi
------------

Perintah `traceroute` tersedia di berbagai sistem operasi. Pada sistem Unix-like seperti FreeBSD, macOS, dan Linux ini tersedia sebagai alat baris perintah. Traceroute juga dapat diakses secara grafis di macOS dalam rangkaian *Network Utilities*; utilitas ini sudah tidak digunakan lagi sejak perilisan macOS Big Sur.

Di Windows, tracert mengirimkan paket ICMP Echo Request, daripada paket UDP yang dikirimkan traceroute secara default.

Nilai time-to-live (TTL), juga dikenal sebagai *hop limit*, digunakan dalam menentukan router perantara yang dilalui menuju tujuan. Traceroute mengirim paket dengan nilai TTL yang secara bertahap meningkat dari paket ke paket, dimulai dengan nilai TTL satu. Router mengurangi nilai TTL paket sebanyak satu saat melakukan routing dan membuang paket yang nilai TTLnya telah mencapai nol, mengembalikan pesan kesalahan ICMP Waktu ICMP Terlampaui.

 Di Linux, *tracepath* adalah sebuah utilitas yang sama dengan traceroute, dengan perbedaan utama tidak memerlukan hak *superuser*.

Penggunaan
----------

Alamat router dapat ditumpangkan pada peta lokasi fisiknya. Contoh ini menunjukkan permintaan dari Selandia Baru ke sebuah alamat IP di Massachusetts yang mengambil rute yang melewati Eropa.
Sebagian besar implementasi menyertakan setidaknya opsi untuk menentukan jumlah kueri yang akan dikirim per lompatan, waktu untuk menunggu respon, batas hop dan port yang akan digunakan. Memanggil traceroute tanpa opsi yang ditentukan akan menampilkan daftar opsi yang tersedia, sementara *man traceroute* menyajikan lebih detail, termasuk *flag* kesalahan yang ditampilkan. Sebuah contoh dari Linux:

```
$ 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

```
Pada contoh diatas, opsi yang dipilih adalah untuk menunggu selama tiga detik (bukan lima detik), mengirimkan hanya satu permintaan ke setiap lompatan (bukan tiga), membatasi jumlah lompatan maksimum menjadi 16 sebelum menyerah (bukan 30), dengan ''example.com'' sebagai host terakhir. Pada baris ke- 8 dan 9 (TTLs 8 dan 9) itu menunjukkan tanda bintang di mana router tidak merespons dalam batas waktu.

Traceroute juga digunakan oleh para penguji penetrasi untuk mengumpulkan informasi tentang infrastruktur jaringan dan alamat IP berkisar di sekitar host tertentu.

Asal mula
---------

Halaman manual traceroute menyatakan bahwa program traceroute asli ditulis oleh Van Jacobson pada 1987 dari sebuah saran oleh Steve Deering, dan bahwa Guy Almes dan Matt Mathis juga memiliki ide tersebut bersamaan dengan Deering. Pembuat dari program ping, Mike Muuss, menyatakan di situs webnya bahwa traceroute ditulis menggunakan dukungan kernel ICMP yang sebelumnya telah dia kode untuk mengaktifkan soket ICMP mentah ketika dia pertama kali menulis program ping.

Batasan
-------

Batasan Traceroute sudah diketahui dengan baik dan harus diperhitungkan saat menggunakan alat ini. Sebagai contoh, traceroute tidak menemukan jalur di tingkat router, tetapi di tingkat antarmuka. Batasan lainnya muncul saat router tidak merespons probe atau ketika router memiliki batas respons ICMP. Dengan adanya penyeimbangan beban lalu lintas, traceroute mungkin menunjukkan jalur yang sebenarnya tidak ada; untuk meminimalisir masalah ini ada modifikasi traceroute yang disebut Paris-traceroute, yang mempertahankan pengidentifikasi aliran probe untuk menghindari penyeimbangan beban.

Referensi
---------

1. ↑  "Traceroute6(8) - Linux man page".
2. ↑  "Tracert6(8): IPv6 traceroute tool - Linux man page".
3. ↑  Rossingol, Joe (23 June 2020). "Network Utility Deprecated in macOS Big Sur". *MacRumors* (dalam bahasa Inggris).
4. ↑  "Tracert". *Microsoft Docs*. 3 February 2023. Diakses tanggal July 29, 2023.
5. ↑  Comer, Douglas (2004). *Computer Network and Internets with Internet Applications*. Pearson Education, Inc. hlm. 360–362. ISBN 978-0131433519.
6. ↑  "tracepath(8) – Linux man page". *linux.die.net*. Diakses tanggal 2015-06-21.
7. ↑  "traceroute6.c source code". 2022-10-04. Diakses tanggal 2023-09-17.
8. ↑  The Story of the PING Program
9. ↑  Ray Belleville (March 3, 2017). "Limitations of Traceroute Explained".
10. ↑  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). hlm. 1–7. doi:10.1109/lanman.2016.7548847. ISBN 978-1-4673-9882-4.  Parameter `|s2cid=` yang tidak diketahui akan diabaikan (bantuan)
11. ↑  "Paris Traceroute". *paris-traceroute.net* (dalam bahasa Inggris). Diakses tanggal 2017-06-10.

Bacaan lanjutan
---------------

* Frisch, Æleen (2001). *Windows 2000 Commands Pocket Reference*. O'Reilly. ISBN 978-0-596-00148-3.
* Stanek, William R. (2008). *Windows Command-Line Administrator's Pocket Consultant, 2nd Edition*. Microsoft Press. ISBN 978-0735622623.
* Barrett, Daniel J. (2012). *Macintosh Terminal Pocket Guide: Take Command of Your Mac*. O'Reilly. ISBN 978-1449328986.

Pranala luar
------------


Wikibooks memiliki buku di:
*Guide to Windows Commands*

* RFC 1393: Traceroute menggunakan Opsi IP Internet RFC
* Bagaimana traceroute bekerja – InetDaemon
* Tracert –  Referensi baris perintah Windows XP