Der Typ des gesendeten Pakets hängt von der Implementierung ab. Standardmäßig verwendet Windows tracert
ICMP und sowohl Mac OS X als auch Linux traceroute
verwenden UDP. Ich habe keine BSD- oder Solaris-Maschinen oder andere Betriebssysteme zur Hand, aber die Manpage für die Mac OS X-Version erwähnt, dass sie BSD 4.3 hat.
Die von mir angebotenen Mac- und Linux-Versionen bieten die Möglichkeit, eine Vielzahl verschiedener Protokolle zu wählen, einschließlich ICMP-, TCP-, UDP- und GRE-Paketen. Andere Protokolle können durch ihren Namen oder ihre Nummer angegeben werden, aber Traceroute weiß nichts darüber, wie andere Protokolle funktionieren. Es schickt sie einfach blindlings.
Sie können auch sowohl die Nutzlast als auch die Quell- und Zielports ändern, um Firewalls zu vermeiden oder festzustellen, welcher Router auf dem Pfad Pakete einer bestimmten Größe ablegt.
Alle Versionen von traceroute stützen sich auf ICMP- Antworten vom Typ 11 (Zeitüberschreitung) von jedem Hop entlang der Route. Wenn ICMP-Antworten vom Typ 11 von Ihrer Firewall blockiert werden, funktioniert Traceroute nicht. Diese Pakete sind eingehend und nicht ausgehend.
Der ICMP-Typ 30 ist speziell für Traceroute vorgesehen und wird als "Informationsanforderung" bezeichnet. Ich konnte nirgendwo finden, wo dies tatsächlich verwendet wird. Die man - Seite für den Mac OS X und Linux - Versionen , so dass -I
sendet ICMP Typ 8 (Echo - Request). Laut Wikipedia verwendet Windows tracert
auch ICMP-Echoanforderungen. ICMP Typ 30 oder Typ 8 sind ausgehende Pakete, nicht eingehend.
ICMP-Typ 0 (Echoantwort) wird möglicherweise als letztes Paket zurückgegeben, wenn die TTL genau der Anzahl der Sprünge entspricht. Traceroute wird wissen, dass es fertig ist, wenn es eines davon erhält. Dies ist ein eingehendes Paket.
TCP-SYN- Pakete verursachen entweder ein RST
Paket oder ein SYN ACK
Paket als Antwort, wenn sie ihr Ziel erreichen. Wenn Sie ein SYN ACK
Paket erhalten, ist es höflich, darauf zu achten, dass RST
auf dem Server keine halboffene Verbindung besteht.
Es ist möglich, ICMP-Typ-3-Code-4- Antworten anstelle von ICMP-Typ-11-Antworten zurückzugewinnen, wenn Sie ein großes Paket mit gesetztem Flag "Nicht fragmentieren" senden. Auf diese Weise können Sie jedoch wahrscheinlich nur den Hop mit der kleinsten MTU finden . Normalerweise erhalten Sie diese Antwort nur von einem Sprung entlang der Route. Nicht alle von ihnen.