Le parallélisme est une raison majeure de variation de la vitesse de ces outils. Un autre facteur contributif est le temps pendant lequel ils attendent une réponse avant que le saut soit considéré comme ne répondant pas. Si le DNS inversé est effectué, vous devez également attendre cela. La commande plain traceroute devient beaucoup plus rapide si vous désactivez le DNS inversé.
Une autre différence importante, que je n'ai pas vue mentionnée, est la façon dont les deux outils rendent la sortie. Traceroute produit la sortie dans l'ordre descendant. Mtr rend la sortie d'une manière différente, où mtr peut revenir en arrière et mettre à jour la sortie sur les lignes précédentes.
Cela signifie que mtr peut afficher la sortie dès qu'elle est disponible, car si des réponses ultérieures rendent cette sortie imprécise, mtr peut revenir en arrière et la mettre à jour. Étant donné que traceroute ne peut pas revenir en arrière et mettre à jour la sortie, il doit attendre jusqu'à ce qu'il ait finalement décidé ce qu'il affichera.
Par exemple, si le saut numéro 2 ne répond pas (ce qui est un symptôme que j'ai vu sur plusieurs FAI), traceroute affichera le saut numéro 1 puis attendra un moment avant d'afficher le saut numéro 2 et 3. Même si la réponse du numéro de saut 3 est arrivé, il n'est pas affiché car traceroute attend toujours la réponse du saut numéro 2. Mtr n'a pas cette restriction et peut afficher la réponse du saut numéro 3 et revenir en arrière pour afficher la réponse du saut numéro 2, si il arrive plus tard.
Trop de parallélisme peut rendre la sortie imprécise. Dans certains scénarios, le nombre de paquets pour lesquels vous pouvez obtenir des réponses est limité. L'envoi de plus de paquets dans ces cas n'accélérera pas le processus, mais cela entraînera plus de paquets perdus, car vous obtenez le même nombre de réponses avec plus de paquets envoyés.
Un exemple de ceci est lorsqu'un saut sur la route ne répond pas aux requêtes ARP. Habituellement, le premier paquet déclenche une demande ARP, et si plus de paquets arrivent avant l'expiration de la demande ARP, seul le dernier de ces paquets sera mis en mémoire tampon et recevra une réponse.
Une autre différence réside dans le nombre de sauts sans réponse qui seront affichés avant que l'outil cesse d'afficher plus de sauts. J'ai vu la commande traceroute continuer pendant autant de sauts que demandé (30 par défaut), tandis que la commande mtr s'arrêtait dès qu'elle avait passé cinq sauts sans réponse.