# traceroute

`traceroute` komutu, packet’lerin nasıl route edildiğini görmek için kullanılır. TTL değerleri artırılarak (1’den başlayarak) packet göndererek çalışır. İlk router packet’i alır ve TTL değerini bir azaltarak packet’i düşürür. Router bize bir ICMP **Time Exceeded** mesajı geri gönderir. Sonra bir sonraki packet’in TTL’i 2 olur, böylece ilk router’ı geçer, ancak ikinci router’a geldiğinde TTL 0’dır ve başka bir ICMP **Time Exceeded** mesajı geri döner. `traceroute`, bu şekilde packet gönderip düşürerek packet’lerin geçtiği router’ların bir listesini oluşturur; nihayet hedefe ulaşıp bir ICMP **Echo Reply** mesajı aldığında işlem tamamlanır.

Küçük bir `traceroute` çıktısı:

```bash
$ traceroute google.com
traceroute to google.com (216.58.216.174), 30 hops max, 60 byte packets
 1  192.168.4.254 (192.168.4.254)  0.028 ms  0.009 ms  0.008 ms
 2  100.64.1.113 (100.64.1.113)    1.227 ms  1.226 ms  0.920 ms
 3  100.64.0.20 (100.64.0.20)      1.501 ms  1.556 ms  0.855 ms
```

Her satır, benimle hedefim arasındaki bir router veya makinedir. Hedefin adını ve IP adresini gösterir; son üç sütun ise packet’in o router’a gidiş-dönüş süresine (round-trip time) karşılık gelir. Varsayılan olarak route üzerindeki her noktaya üç packet gönderilir.
