W jaki sposób 8 bitów wystarcza na TTL w nagłówku IP?


18

TTL (Time to Live) to 8-bitowe pole w nagłówku IPv4. Może przyjmować dowolną wartość od 0 do 255. Jeśli to oznacza, że ​​pakiet może zabrać maksymalnie 255 przeskoków (routerów) w drodze do miejsca docelowego, pakiet zostanie odrzucony.

Jak mogę wysyłać pakiety przez kontynenty?


14
Ten sam powód, dla którego większość traceroutenarzędzi poddaje się po zaledwie 30 przeskokach - „średnica Internetu” nie jest tak duża, jak myślisz.
user1686

4
Pomyśl o tym jak o umieszczeniu danych w samolotach w podróży. Na lokalny chmiel wynajmujesz lekki samolot. W przypadku dużych międzynarodowych chmielów wsiadasz do najbliższego 777 lub A380 i robisz duży skok. Zamiast międzynarodowego lotu, Data podróżuje z Europy do USA (lub gdzie indziej) na jednym z tych: en.wikipedia.org/wiki/Transatlantic_communications_cable
Baldrickk

2
Teoria „sześciu stopni separacji” może Cię również zainteresować.
Pam

1
Gorąco zachęcam do rozważenia sugestii Pam. Okazuje się, że w systemach występujących naturalnie (systemach nieplanowanych), takich jak ludzie zaprzyjaźniający się, węzły dodawane do Internetu, firmy prowadzące interesy itp., Że większość połączeń nie wymaga wielu przeskoków. Dla interakcji międzyludzkich, których liczba rzadko przekracza 6. Weźmy na przykład oracleofbacon.org, który oblicza połączenie aktora Kevina Bacona z innymi aktorami. Odległość między boczkiem i telugu aktorem Ravi Teja to tylko 3 filmy.
Maloma,

Czy jakaś odpowiedź ci pomogła? Jeśli tak, powinieneś zaakceptować odpowiedź, aby pytanie nie wyskakiwało wiecznie, szukając odpowiedzi. Alternatywnie możesz podać i zaakceptować własną odpowiedź.
Ron Maupin

Odpowiedzi:


27

Nawet podczas wysyłania pakietów przez kontynenty TTL wynoszące 255 to więcej niż wystarcza - po prostu nie ma więcej routerów.

Przeprowadzenie szybkiego testu (z Niemiec) pokazuje 17 chmielu do USA i 18 do Japonii. Zwykle nie dostajesz powyżej 30 lub więcej. Wynika to z hierarchicznej struktury Internetu - uderzyłeś w kręgosłup swojego dostawcy usług internetowych zaledwie 2-5 przeskokami, kolejne 2-3 przeskoki prowadzą do następnego dostawcy itp.

Pamiętaj, że TTL liczy tylko chmiel warstwy 3. O wiele częściej używane przeskoki warstwy 2 między przełącznikami nie mają wpływu na TTL - nie ma takiej koncepcji w Ethernet ani podobnych protokołach.

Dodatkowo, kapsułkowanie pakietu do transportu tunelowego „zamraża” TTL podczas przebywania w tunelu - niezależnie od liczby przeskoków pakietu zewnętrznego (ma swój własny TTL), cały tunel liczy się tylko jako jeden lub dwa przeskoki dla pakietu wewnętrznego.


9

Mały dodatek do innych odpowiedzi, aby być bardziej kompletnym: chociaż wiele routerów wydaje pakiety z TTL wynoszącym 255 (dla pakietów, które same produkują, a nie te, które przesyłają dalej!), Większość systemów operacyjnych wysyła pakiety z dużą ilością niższe początkowe wartości TTL:

  • Windows używa 128 (od Windows NT 4),
  • MacOS X i Linux używają 64

Niektóre systemy używane do wysyłania niższych wartości (np. Windows 95 miał domyślnie TTL 32), wartości te zostały podniesione, aby zapobiec problemom z prawdopodobnie dłuższymi trasami ... ale te systemy były w stanie wtedy dotrzeć do prawie dowolnego hosta w Internecie. I - choć nie mam na to żadnego dowodu - powiedziałbym, że od tamtej pory wymagana liczba chmielów spadła, ponieważ coraz więcej włókien na duże odległości jest instalowanych do transportu.

Nie zapominaj również, że liczba przeskoków i odległość geograficzna nie korelują . Oceany są na ogół skrzyżowane z jednym przeskokiem (repeatery optyczne wzdłuż włókien łodzi podwodnej nie dotykają pakietów, tylko routery zmniejszają TTL). Właśnie zrobiłem traceroute ze Szwajcarii do Nowej Zelandii: chmiel nr 7 znajduje się w odległości mniejszej niż 50 km od miejsca, w którym jestem, numer 9 znajduje się w Kalifornii, a numer 10 znajduje się w Nowej Zelandii ... część tranzytu międzykontynentalnego to na ogół tylko kilka chmielu na trasie reszta w większości dociera do międzynarodowego przewoźnika i dociera z niego do celu.


8

8 bitów to więcej niż wystarczająco. z powodu komunikacji równorzędnej przez dostawcę usług internetowych można dotrzeć do miejsca docelowego, podróżując przez mniej niż 5 lub 6 dostawców usług internetowych, a ze względu na architekturę sieci szkieletowej pakiet będzie przesyłany tylko przez maksymalnie 3 lub 4 routery w jednym dostawcy usług internetowych.

jeśli zwiększysz TTL, w przypadku nie trasowanych miejsc docelowych pakiet będzie podróżował w sieci, aż TTL osiągnie wartość 0, co niepotrzebnie zużywa przepustowość.


Czy w przypadku nieutranszowanych miejsc docelowych powszechną praktyką jest instalowanie trasy odrzucania, aby temu zapobiec?
user1686

7
Problemem nie są niezrejestrowane miejsca docelowe, problemem są miejsca docelowe, w których z powodu błędnej konfiguracji lub przejściowych efektów występuje pętla routingu.
Peter Green

3

Uwaga od działu historii: jednostki TTL to sekundy , przy dozwolonym budżecie czasu zmniejszanym o sekundę na każde przeskok routera.

Z protokołu internetowego RFC 791:

Czas jest mierzony w jednostkach sekund, ale ponieważ każdy moduł przetwarzający datagram musi zmniejszyć TTL o co najmniej jeden, nawet jeśli przetworzy datagram w mniej niż sekundę, TTL należy traktować jedynie jako górną granicę czas, kiedy datagram może istnieć. Chodzi o to, aby spowodować odrzucenie datagramów niedostarczalnych i ograniczenie maksymalnego czasu życia datagramów.

Pakiety wielosekundowe nie były niczym niezwykłym: minimalny dozwolony datagram IP wynoszący 68 oktetów zajmuje ponad 2 sekundy przy 300 bodach. Niemniej jednak nigdy nie widziałem routera, który zmniejszyłby się o więcej niż 1 dla pakietów wielosekundowych.

Świat jest dziś szybszy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.