XO.PL / IT na Wesoło
PL / EN
IT na Wesoło

Informatyka po ludzku. Bez magii, bez marketingowej waty. Za to z przykładami.

Tematy wyjaśnione prosto, ale bez przekręcania techniki.

Spis tematów

Strona główna
Sieci komputeroweRoutingAdresy IPDHCPNATTCP i UDPDNSTTLTraceroutePing, jitter i stratyDoS i DDoSQoSMTU i MSSVPNHTTP i HTTPSCertyfikaty SSL/TLSBGP
Systemy operacyjneProcesyJądro systemuSystem plików
Bezpieczeństwo ITPhishingHasła i MFAFirewall
Sprzęt komputerowyProcesorPamięć RAMHDD i SSDRAID
OprogramowanieAktualizacjeBłędy w programachOpen source
ProgramowanieZmiennePętleDebugowanie
Dane i ich ochronaBazy danychSzyfrowanie danychOdzyskiwanie danychBackup
Internet i WWWPrzeglądarka i serwerCookiesCache
O serwisie XO.PLPolityka prywatnościPrawa autorskie i licencja
Sieci komputerowe

TTL, czyli dlaczego pakiet nie może krążyć po autostradzie bez końca

Wyobraź sobie, że wyjeżdżasz samochodem na Autostradę Pakietów. Masz adres docelowy, pełny bak i nawigację, która z przekonaniem oznajmia: „Za trzysta metrów skręć w prawo”. Skręcasz. Po chwili słyszysz dokładnie to samo. I jeszcze raz.

Po czwartym skręcie rozpoznajesz stację benzynową, przy której kupiłeś hot doga pięć minut temu. Po piątym widzisz tę samą reklamę kredytu. Po szóstym zaczynasz podejrzewać, że nawigacja pracuje dla właściciela stacji benzynowej.

W zwykłym świecie można tak jeździć, dopóki nie zabraknie paliwa, cierpliwości albo pieniędzy. W Internecie byłby to poważny problem: pakiet mógłby krążyć między routerami, niepotrzebnie zajmując łącza i zasoby sieci.

Dlatego ktoś rozsądny powiedział: „Dobra, panowie. Każdemu samochodowi dajemy ograniczoną liczbę przejazdów. Jak wykorzysta wszystkie, kończy wycieczkę”. I tak dochodzimy do TTL.

Karnet na przejazdy

TTL to skrót od Time To Live, czyli dosłownie „czas życia”. Nazwa sugeruje stoper odmierzający sekundy. W praktyce współczesnego IPv4 TTL jest przede wszystkim licznikiem przeskoków przez routery. Każdy router, który ma przekazać pakiet dalej, zmniejsza wartość o jeden.

Wyobraźmy sobie samochód z karnetem TTL = 5.

Na pierwszym routerze: „Pięć? Kasujemy jeden. Zostają cztery”. Na drugim: „Cztery? Zostają trzy”. Na trzecim: „Trzy? Zostają dwa”. Na czwartym: „Dwa? Zostaje jeden”. Na piątym: „Jeden? Przykro mi. Dalej pan nie jedzie”.

— Ale ja przecież mam adres!
— Gratuluję. Może pan sobie go oprawić w ramkę.

🤣 Router odrzuca pakiet, jeżeli zmniejszenie TTL podczas przekazywania go dalej wyczerpuje licznik. Nie zgaduje, czy cel jest już blisko. Nie przedłuża karnetu. Nie dzwoni do administratora z prośbą o jednorazową przepustkę.

Ważne: TTL zmniejszają routery przekazujące pakiet, a nie każdy przełącznik Ethernet czy punkt dostępowy Wi-Fi. I jeśli pakiet dociera do urządzenia docelowego, nie musi pokonywać kolejnego routera — limit dotyczy dalszego przekazywania.

Kto wydaje karnety?

Początkowy TTL ustala zwykle system operacyjny nadawcy. Często spotkasz wartości 64, 128 albo 255. Nie są to obowiązkowe wartości dla wszystkich urządzeń, tylko popularne ustawienia.

Routery po drodze nie rozdają nowych karnetów: otrzymują pakiet i zmniejszają jego licznik. Samochód nie może więc zatrzymać się przy bramce i oświadczyć:

— Zostało mi siedem przejazdów, ale poproszę kolejne sześćdziesiąt cztery.
— A dokument kto wydał?
— Windows.
— To proszę do Windowsa.

Gdy dwa routery są zgodne, że winny jest ten drugi

W artykule o routingu poznaliśmy tablice tras, według których routery kierują pakiety do kolejnych węzłów. Zazwyczaj działa to świetnie. Ale czasem konfiguracja staje się nieco… kreatywna.

Router A: „Do tej sieci? Proszę jechać przez B”.
Router B: „Do tej sieci? Oczywiście przez A”.
Router A: „B”.
Router B: „A”.
Router A: „B”.

Pakiet przejeżdża obok tej samej bramki.

— Panie, pan tu już był!
— Wiem. Ale tamten powiedział, żebym wrócił.
— To po co pan wrócił?
— Bo pan powiedział, żebym jechał do tamtego!
— Aha. Czyli wszystko zgodnie z procedurą.

To pętla routingu. TTL jej nie naprawia, nie zmienia błędnych tras i nie rozstrzyga, który administrator ma poprawić konfigurację. Zapewnia jednak, że ten sam pakiet nie będzie krążył bez końca.

Mandat od routera: ICMP Time Exceeded

Gdy TTL wyczerpie się po drodze, router może poinformować nadawcę komunikatem ICMP Time Exceeded. W IPv4 chodzi o ICMP typu 11, kod 0 — przekroczenie czasu życia podczas przekazywania.

Szanowny Panie,
informujemy, że przesyłka nie dotarła do celu z powodu wyczerpania dopuszczalnej liczby przejazdów. Ostatnio widziano ją na naszym węźle.
Z poważaniem,
Zarząd Dróg Pakietowych

Brak takiego zawiadomienia nie dowodzi jednak, że pakiet nie został odrzucony. Odpowiedzi ICMP bywają ograniczane albo filtrowane. Czyli samochód mógł zostać zatrzymany, tylko urzędnik nie wysłał pisma. Być może zabrakło papieru. Być może drukarka nie działa. Być może jest piątek.

A w IPv6? Kontroler dostał lepszą nazwę

IPv6 korzysta z bardzo podobnego mechanizmu, ale zamiast TTL ma Hop Limit — limit przeskoków. Każdy router przekazujący pakiet zmniejsza wartość o jeden, a gdy limit się wyczerpie, odrzuca pakiet. Może też zwrócić komunikat ICMPv6 Time Exceeded.

IPv4: „Skończył się pański czas życia”.
IPv6: „Wykorzystał pan wszystkie przeskoki”.
IPv4: „Brzmi poważniej”.
IPv6: „Ale moje przynajmniej mówi, o co chodzi”.

Administrator odkrywa sposób na zbieranie mandatów

Pewien administrator zauważa, że routery potrafią informować, gdzie skończył się limit pakietu. Wpada więc na pomysł: „A gdybym celowo wysyłał samochody z coraz krótszymi karnetami?”.

Najpierw wysyła próbę z TTL = 1. Zatrzymuje ją pierwszy router i może odpowiedzieć: „Tutaj!”. Potem TTL = 2 — odpowiada drugi router. Następnie TTL = 3, TTL = 4… Kolejne zawiadomienia pomagają odtworzyć trasę.

To podstawowa zasada traceroute. W praktyce narzędzie może używać różnych rodzajów pakietów, odpowiedzi czasem nie przychodzą, a kolejne próby nie muszą jechać identyczną trasą. Ale sam pomysł jest piękny: wysyłamy samochody po to, żeby zbierały mandaty.

Ktoś powie: „Marnotrawstwo”. Administrator odpowie: „Diagnostyka”.

Czy TTL jest zabezpieczeniem?

Tak, ale w bardzo konkretnym sensie. TTL i Hop Limit chronią przed nieograniczonym krążeniem pojedynczych pakietów. Nie są szyfrowaniem, uwierzytelnianiem ani firewallem. Nie naprawiają też samego problemu z trasami.

A mimo to są niezwykle użyteczne. W świecie rozbudowanych protokołów i dokumentacji grubszej niż instrukcja elektrowni czasem wystarczy liczba, którą każdy router zmniejsza o jeden.

Na koniec: szóste okrążenie ronda

Nasz kierowca nadal szuka zjazdu.

— Panie władzo! Ja tylko chciałem do Katowic!
— TTL zero. Koniec podróży.
— Ale mam GPS!
— Widzę. Dlatego spotykamy się już siódmy raz.
— To jak mam sprawdzić, gdzie źle skręciłem?
— To już, proszę pana, sprawa dla traceroute.

W następnym odcinku administrator wyśle na autostradę całą serię samochodów wyłącznie po to, by sprawdzić, na którym komisariacie wystawiają mandaty. Inspektorzy są zachwyceni. Kierowcy — niekoniecznie. 🤣

Strona główna XO.PL