2017-03-19 6 views
0

Traceroute est une application pour tracer le chemin de A à B. (A est votre emplacement et B est le serveur que vous voulez tracer).Traceroute: le chemin est-il le même pour tous les paquets de sonde envoyés?

L'algorithme de base est la suivante:

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 

J'ai un doute qui me rend sceptique quant à savoir si cet algorithme fonctionne correctement. Comme les tables de routage sont fréquemment mises à jour, pendant un traceroute, disons pour TTL = 3, le paquet de sonde suit le chemin A1-> A2-> A3-> A4. Maintenant, lorsque nous envoyons un paquet de sonde avec TTL = 4, est-il garanti de passer à travers A1, A2, A3 et A4, puis sur A5?

Si non? Est-ce que la sortie finale représente un chemin valide?

Espérons que quelqu'un puisse faire la lumière sur ce problème. Merci beaucoup d'avance!

Répondre

0

Maintenant, lorsque nous envoyons un paquet de sonde avec TTL = 4, est-il assuré de passer par A1, A2, A3, A4 et A5, puis sur?

Non, ce n'est pas garanti, mais c'est probablement le cas dans la plupart des cas réels. Dans les cas où le TTL = 4 paquets ne se déplace pas sur le même chemin que les paquets précédents, vous finiriez avec un résultat qui ne reflète pas exactement la topologie du réseau réel:

enter image description here

Cependant, vous pouvez réduire ce risque en utilisant Paris Traceroute, qui est une implémentation de traceroute qui manipule divers champs d'en-tête IP & IP (whitepaper) pour augmenter les chances que tous les paquets empruntent le même chemin.

+0

Merci pour cette information, vraiment utile. J'avais une question de suivi. À quelle fréquence les routeurs mettent-ils à jour leurs tables de transfert? Y a-t-il une norme? Ou une réponse probable? Fondamentalement, je voulais analyser combien de fois mes données traceroute seraient erronées car cela déterminerait si je devrais faire pivoter mon implémentation vers paris-traceroute, car cela ajoute de la complexité et je ne suis pas sûr que cela puisse être fait sur Android. Merci encore. –

+0

Modifie les tables de transfert non parce que les routeurs décident soudainement de les modifier mais en raison de changements dans le réseau. De tels changements se produisent de temps en temps, en particulier * entre * différents réseaux. Cependant, ces types d'anomalies sont beaucoup plus susceptibles de se produire en raison des équilibreurs de charge et non des changements de réseau. Je vous suggère de jeter un coup d'œil sur le livre blanc de paris traceroute, même en un coup d'œil. La mise en œuvre de paris traceroute n'est pas si difficile en pratique si la précision est importante. – Malt