Wie reichen 8 Bit für die TTL in einem IP-Header aus?

18

Die TTL (Time to Live) ist ein 8-Bit-Feld im IPv4-Header. Es kann einen beliebigen Wert von 0 bis 255 annehmen. Wenn dies bedeutet, dass das Paket auf dem Weg zu seinem Ziel maximal 255 Hops (Router) aufnehmen kann, wird das Paket verworfen.

Wie kann ich Pakete über Kontinente senden?

reddi hari
quelle
14
Der gleiche Grund, warum die meisten tracerouteWerkzeuge nach nur 30 Hops aufgeben - der "Durchmesser des Internets" ist bei weitem nicht so groß, wie Sie denken.
Grawity
4
Stellen Sie sich das so vor, als würden Sie Ihre Daten in die Flugzeuge stecken, um zu reisen. Für den lokalen Hopfen chartern Sie ein Kleinflugzeug. Für große internationale Sprünge steigen Sie in die nächste 777 oder A380 und machen einen großen Sprung. Anstelle eines internationalen Fluges fliegt Data jedoch mit einer der folgenden Angaben von Europa in die USA (oder anderswo): en.wikipedia.org/wiki/Transatlantic_communications_cable
Baldrickk
2
Die Theorie der "sechs Trennungsgrade" könnte Sie auch interessieren.
Pam
1
Ich möchte Sie ernsthaft ermutigen, Pams Vorschlag zu prüfen. Es stellt sich heraus, dass in natürlich vorkommenden Systemen (ungeplanten Systemen) wie Freunden, dem Internet hinzugefügten Knoten, Unternehmen, die Geschäfte abwickeln usw. die Mehrheit der Verbindungen nicht viele Sprünge erfordert. Für menschliche Interaktionen überschreitet diese Zahl selten 6. Nehmen Sie zum Beispiel oracleofbacon.org, das die Verbindung des Schauspielers Kevin Bacon mit anderen Schauspielern berechnet. Die Entfernung zwischen Bacon und dem Telugu-Schauspieler Ravi Teja beträgt nur 3 Filme. Die malaiische Schauspielerin Saloma aus den 60ern hat auch nur 3 Filme zwischen ihr und Kevin Bacon
slebetman
Hat dir eine Antwort geholfen? In diesem Fall sollten Sie die Antwort akzeptieren, damit die Frage nicht für immer auftaucht und nach einer Antwort sucht. Alternativ können Sie auch Ihre eigene Antwort eingeben und annehmen.
Ron Maupin

Antworten:

27

Selbst wenn Pakete über Kontinente gesendet werden, ist eine TTL von 255 mehr als ausreichend - es sind einfach nicht mehr Router beteiligt.

Ein schneller Test (aus Deutschland) zeigt 17 Hopfen in die USA und 18 nach Japan. Normalerweise kommt man nicht über 30 oder so. Dies liegt an der hierarchischen Struktur des Internets - Sie erreichen das Backbone Ihres Internetdienstanbieters mit nur 2 bis 5 Hops, weitere 2 bis 3 Hops bringen Sie zum nächsten Anbieter usw.

Beachten Sie, dass TTL nur Layer-3-Hops zählt. Die viel häufiger verwendeten Layer-2-Sprünge zwischen Switches haben keine Auswirkungen auf die TTL - ein solches Konzept gibt es in Ethernet oder ähnlichen Protokollen nicht.

Durch das Einkapseln eines Pakets für den Tunneltransport wird die TTL im Tunnel "eingefroren" - unabhängig davon, wie viele Sprünge das äußere Paket benötigt (es hat eine eigene TTL), zählt der gesamte Tunnel nur als ein oder zwei Sprünge für das innere Paket.

Zac67
quelle
9

Eine kleine Ergänzung zu den anderen Antworten soll vollständiger sein: Obwohl viele Router anscheinend Pakete mit einer TTL von 255 senden (für die Pakete, die sie selbst produzieren, und nicht für die, die sie weiterleiten!), Senden die meisten Betriebssysteme Pakete mit viel niedrigere anfängliche TTL-Werte:

  • Windows verwendet 128 (seit Windows NT 4),
  • MacOS X und Linux verwenden beide 64

Einige Systeme, die zum Senden niedrigerer Werte verwendet wurden (z. B. Windows 95 hatte eine Standard-TTL von 32), diese Werte wurden erhöht, um Probleme mit möglicherweise längeren Routen zu vermeiden ... aber diese Systeme waren damals definitiv in der Lage, fast jeden Host im Internet zu erreichen. Und - obwohl ich keinen Beweis dafür habe - würde ich sagen, dass die erforderliche Anzahl von Hops seitdem gesunken ist, weil immer mehr Fernfasern für den Verkehr installiert sind.

Vergessen Sie auch nicht, dass die Anzahl der Sprünge und die geografische Entfernung nicht miteinander korrelieren . Ozeane werden in der Regel mit einem Sprung durchquert (optische Repeater entlang von U-Boot-Fasern berühren die Pakete nicht, nur Router verringern die TTL). Habe gerade eine Traceroute von der Schweiz nach Neuseeland gemacht: Hop Nr. 7 ist weniger als 50 km von meinem Standort entfernt, Nr. 9 befindet sich in Kalifornien und Nr. 10 befindet sich in Neuseeland Auf einer Route erreicht der Rest zumeist eine internationale Fluggesellschaft und gelangt von dort zum Ziel.

Ale
quelle
8

8 Bit ist mehr als genug. Aufgrund des ISP-Peerings können Sie das Ziel erreichen, indem Sie weniger als 5 oder 6 ISPs durchqueren. Aufgrund der Backbone-Netzwerkarchitektur wird das Paket nur über maximal 3 oder 4 Router in einem ISP übertragen.

Wenn Sie die TTL für nicht weitergeleitete Ziele erhöhen, wird das Paket im Netzwerk weitergeleitet, bis die TTL 0 wird - was unnötig Bandbreite beansprucht.

abdul_razak
quelle
Ist es bei nicht weitergeleiteten Zielen nicht üblich, eine Ablehnungsroute zu installieren, um dies zu verhindern?
Grawity
7
Das Problem sind keine nicht gerouteten Ziele, sondern Ziele, bei denen aufgrund von Fehlkonfigurationen oder vorübergehenden Effekten eine Routing-Schleife auftritt.
Peter Green
3

Ein Hinweis aus der History-Abteilung: Die Einheiten der TTL sind Sekunden , wobei sich das zulässige Zeitbudget für jeden Router-Hop um eine Sekunde verringert.

Aus dem Internetprotokoll RFC 791:

Die Zeit wird in Einheiten von Sekunden gemessen. Da jedoch jedes Modul, das ein Datagramm verarbeitet, die TTL um mindestens eins verringern muss, auch wenn es das Datagramm in weniger als einer Sekunde verarbeitet, muss die TTL nur als Obergrenze für das Datagramm betrachtet werden Zeit ein Datagramm existieren kann. Es ist beabsichtigt, nicht zustellbare Datagramme zu verwerfen und die maximale Lebensdauer des Datagramms zu begrenzen.

Multisekunden-Pakete waren keine Seltenheit: Ein minimal zulässiges IP-Datagramm von 68 Oktetten benötigt über 2 Sekunden bei 300 Baud. Trotzdem habe ich noch nie einen Router gesehen, der bei Mehrsekunden-Paketen um mehr als 1 abgenommen hat.

Die Welt ist heutzutage schneller.

Jonathanjo
quelle