Pozwól, że spróbuję odpowiedzieć na to pytanie, ponieważ jest to trochę bardziej skomplikowane, że może początkowo wyglądać.
Wygląda na to, że znasz już podstawowe działanie, traceroute
ale przede wszystkim tutaj jest bardzo małe podsumowanie:
traceroute
próbuje określić wszystkie pośrednie kroki od hosta do hosta docelowego lub po prostu odległość, tj. liczbę przeskoków, od hosta do hosta docelowego. Aby to zrobić, zaczyna wysyłać pakiety do hosta docelowego z „losowym” numerem portu docelowego i wartością TTL, która zaczyna się od 1 i stale rośnie.
Chodzi o to, że każdy router pomiędzy obniża TTL o 1. Zatem jeśli TTL osiągnie 0 (w rzeczywistości nigdy tak się nie dzieje, ponieważ router, który ma zamiar ją zmniejszyć do 0, powoduje błąd wcześniej), router zwróci ICMP „ Time-to-live przekroczony ” komunikat o błędzie, np pakiet numer 24 w pliku przechwytywania. To, co otrzymujesz, to fakt, że miejsce docelowe jest dalej i dlatego ciągle zwiększasz TTL.
Gdy pakiet ma czas TTL, który jest wystarczająco duży, aby dotrzeć do miejsca docelowego, pojawi się inny komunikat o błędzie ICMP: „ Miejsce docelowe nieosiągalne (nieosiągalny port) ”, np. Pakiet 208 w pliku przechwytywania. Z tego wynika, że ostatnio używany TTL jest rzeczywiście liczbą przeskoków między tobą a węzłem docelowym. Przyczyną tego błędu jest po prostu to, że wysyłasz wiadomość do „losowego” portu, którego węzeł docelowy (mam nadzieję) nie słucha.
Teraz przejdźmy do szczegółów pliku przechwytywania:
Ze strony podręcznika traceroute
możemy zobaczyć, że każdy TTL jest używany 3 razy (opcja „-q”), a domyślnym protokołem jest UDP (opcja „-P”). Analizując pierwsze 3 pakiety UDP, tj. Pakiety 8-9-10 , możemy rzeczywiście stwierdzić, że TTL wynosi 1 . Następne 3, tj. 11-12-13 , mają TTL 2 i tak dalej. Więc z perspektywy źródła wszystko wydaje się dobrze.
Następnie, po pewnym czasie zależnym od opóźnienia sieci, zaczynamy otrzymywać oczekiwane komunikaty o błędach. Widzimy zatem, że pakiety 24–25–26 to pakiety błędów „ Czas życia przekroczył ”, co oznacza, że miejsce docelowe jest dalej.
To powtarzanie prób i błędów trwa, aż w końcu pakiet 208 i dalej pojawiają się komunikaty o błędach „ Port Unreachable ”, co oznacza, że osiągnięto miejsce docelowe.
Licząc wysłane pakiety i odpowiedzi, możesz dowiedzieć się nawet ze śladu, który TTL faktycznie działał, ale jest to żmudne zadanie :)
Mam nadzieję, że to pomogło