====== Oto jak działa traceroute ====== {{.:pasted:20250528-235749.png}} źródło ilustracji: [[https://commons.wikimedia.org/wiki/File:Traceroute.png | Wikimedia.org]] Kiedy wysyłasz pakiet do miejsca docelowego, często musi on przejść przez wiele routerów lub "przeskoków". Aby zapobiec nieskończonemu obiegowi pakietów w sieci z powodu pętli routingu (router A wskazuje na router B, który wskazuje na router A...), zawierają one pole Time-To-Live, które jest ustawiane na rozsądnie wysoką wartość, gdy pakiet jest tworzony, a każda maszyna, przez którą pakiet przechodzi, zmniejsza to pole o jeden. ====== ====== Gdy pole osiągnie zero, pakiet jest odrzucany. W ramach uprzejmości router, który odrzuca pakiet, ma możliwość wygenerowania nowego pakietu przy użyciu protokołu ICMP z podtypem "Przekroczono TTL" i odesłania go z powrotem do maszyny źródłowej, aby poinformować ją, że coś jest nie tak ze ścieżką sieciową. Ci sprytni ludzie w 1987 roku zdali sobie sprawę, że manipulując wartością TTL, można wybrać router, który wyśle tę wiadomość ICMP.
TTL Exceeded
TTL Exce...
Tracert 8.8.8.8
Tracert 8.8.8...
8.8.8.8
8.8.8.8
TTL=1
TTL=1
1.
1.
Tracert 8.8.8.8
Tracert 8.8.8...
8.8.8.8
8.8.8.8
TTL Exceeded
TTL Exce...
TTL=2
TTL=2
2.
2.
TTL=1
TTL=1
Tracert 8.8.8.8
Tracert 8.8.8...
8.8.8.8
8.8.8.8
TTL Exceeded
TTL Exce...
TTL=3
TTL=3
3.
3.
TTL=2
TTL=2
TTL=1
TTL=1
...
...
...
...
...
...
Wyślij pakiet z TTL ustawionym na 1. Pierwszy router, na który trafisz, zmniejszy go do zera. Pakiet jest teraz "martwy", więc porzuca go i wysyła z powrotem TTL Exceeded. Ta odpowiedź będzie pochodzić z adresu IP routera - gratulacje, masz teraz adres IP pierwszego przeskoku. Teraz wyślij kolejny pakiet z TTL ustawionym na 2. Pierwszy router zmniejszy go do 1 i przepuści, a drugi zmniejszy go do zera i porzuci. Teraz masz jego adres IP. Powtarzaj, zwiększając TTL za każdym razem, aż ostatni przeskok odpowie. Masz teraz kompletną ścieżkę. źródło: https://gekk.info/articles/traceroute.htm {{tag>}} ~~DISCUSSION~~