2012-11-11 8 views
6

Traceroute ist eine Anwendung zum Verfolgen des Pfads von A nach B. (A ist Ihr Standort und B ist der Server, den Sie verfolgen möchten). In Windows können Sie tracert eingeben. Der Hauptalgorithmus lautet:Traceroute: Kann es einen Pfad von A nach B korrekt verfolgen?

send UDP with TTL = 1 
Server A1 received, and return ICMP packet to A because TTL is expired. 
--> know first machine between. For example A1. 

send UDP with TTL = 2 
Server A1 received, and send this UDP to server A2. 
Server A2 received, and return ICMP packet to A because TTL is expired 
--> know second machine between. In this example is A2. 

Do it until to B. we can track down: A -> A1 -> A2 -> ... ->B 

Funktioniert dieser Algorithmus korrekt? Zu einem anderen Zeitpunkt kann ein Zwischenserver eine Nachricht an einen anderen Server senden. Zum Beispiel wird die UDP-Nachricht zum ersten Mal an A1 gesendet, aber zu einem späteren Zeitpunkt kann sie an einen anderen Server, beispielsweise B1, senden. Die Trace-Route wird also nicht ordnungsgemäß funktionieren.

Habe ich etwas falsch verstanden?

+3

Ich habe dies gewählt, weil es eine sehr interessante Frage ist! Ich möchte die Antwort von Experten auch wissen! – James

Antwort

2

Aus der Manpage:

trace verfolgt die Pakete von einem IP-Netzwerk

So zu einem bestimmten Host auf ihren Weg nehmen, wenn Sie versuchen, zu finden der möglich Wege, die Ihr Paket nehmen kann, finden Sie einen Freund in traceroute.

Jetzt, da Routing-Tabellen nicht jede Minute ändern, werden die Pakete, die Sie senden, höchstwahrscheinlich den gleichen Pfad wie von Traceroute verfolgt.

Ein weiterer wichtiger Punkt, der nicht verpasst werden kann, ist die Aufzeichnung Route Option in der IP-v4-Header. Sobald Sie angeben, dass Sie diese Option verwenden möchten, fügt jeder Router im Pfad seine IP-Adresse zu den Optionen in der Kopfzeile hinzu. Sie können mehr darüber lesen here. Der Haken dabei ist, dass das Ziel von den Zwischenhops und nicht von der Quelle erfährt.

Ich sehe, dass Sie die Rolle der ICMP Echo Request und Antwort Nachrichten in der Beschreibung von Traceroute verpasst. Wenn dies nicht beabsichtigt war, nehmen Sie eine look.

aktualisieren: Sie können, indem Sie eine ping -R

ping -R Schaltet Streckenaufzeichnung für die Echo-Request-Pakete, und Anzeige der Route Puffer auf zurückgegeben Pakete den Rekord-Route-Option in Aktion sehen (ignoriert von vielen Routern).

2

Der Algorithmus funktioniert ordnungsgemäß. In der Tat kann sich das Routing aufgrund von Überlegungen zu verschiedenen Servern auf dem Weg ändern, wie z. B. die Serverlast oder die Verfügbarkeit. Angenommen, Sie möchten eine Nachricht von A nach B senden. Wenn die Route nicht änderbar ist, was passiert, wenn ein Server auf der Route nicht verfügbar ist? Wenn das Routing nicht dynamisch angepasst werden konnte, führte dies dazu, dass die Nachricht in diesem Beispiel nicht an das Ziel gesendet werden konnte. Hier ist ein anderes Beispiel: Nehmen wir an, Sie haben einen Server, der tagsüber für umfangreiche Berechnungen verwendet wird, aber während der Nacht nicht aktiv ist. Es ist möglich, dass der Verkehr nur während der Nacht durchgelassen wird, daher muss jedes Routing, das verwendet wird, am Tag geändert werden.

Zum Abschluss können wir definitiv sagen, dass ohne das dynamische Routing das Internet in seiner jetzigen Form nicht existieren konnte.

Zusatz:

Tracert sendet Nachricht von A nach B. Es zeigt Hopfen auf dem Weg. Diese Sprünge bilden eine gültige Route von A nach B zum Zeitpunkt der Ausführung. Es gibt keine Garantie, dass die Verbindung zwischen zwei benachbarten Punkten entlang des Weges gültig ist, nachdem der Sprung abgeschlossen wurde. Das einzige, was garantiert ist, ist, dass es für jeden Hop eine Verbindung zwischen seinen 2 Endpunkten gab, als die von tracert gesendete Nachricht dorthin ging.

+0

Ich glaube, du verstehst meine Frage falsch. Meine Frage ist, weil die Route veränderbar ist, also können wir nicht genau die Route von A nach B durch diesen Algorithmus wissen? – hqt

+0

Ich habe meine Antwort hinzugefügt – SomeWittyUsername