El paralelismo es una razón importante para la variación en la velocidad de estas herramientas. Otro factor que contribuye es cuánto tiempo esperan una respuesta antes de que se considere que el salto no responde. Si se realiza DNS inverso, también debe esperar eso. El comando simple traceroute se vuelve mucho más rápido si deshabilita el DNS inverso.
Otra diferencia importante, que no vi mencionada, es cómo las dos herramientas representan la salida. Traceroute produce la salida en orden de arriba hacia abajo. Mtr representa la salida de una manera diferente, donde mtr puede retroceder y actualizar la salida en líneas anteriores.
Esto significa que mtr puede mostrar la salida tan pronto como esté disponible, porque si las respuestas posteriores hacen que la salida no sea precisa, mtr puede regresar y actualizarla. Como traceroute no puede retroceder y actualizar la salida, tiene que esperar hasta que finalmente haya decidido lo que mostrará.
Por ejemplo, si el número de salto 2 no responde (que es un síntoma que he visto en varios ISP), traceroute mostrará el número de salto 1 y luego esperará un momento antes de mostrar los números de salto 2 y 3. A pesar de que la respuesta del número de salto 3 ha llegado, no se muestra porque traceroute todavía está esperando la respuesta del número de salto 2. Mtr no tiene esa restricción y puede mostrar la respuesta del número de salto 3 y aún volver para mostrar la respuesta del número de salto 2, si llega más tarde
Demasiado paralelismo puede hacer que la salida se vuelva inexacta. En algunos escenarios, hay límites para la cantidad de paquetes para los que puede obtener respuestas. Enviar más paquetes en esos casos no acelerará el proceso, sin embargo, causará más paquetes perdidos, ya que obtendrá el mismo número de respuestas con más paquetes enviados.
Un ejemplo de esto es cuando un salto en la ruta no responde a las solicitudes ARP. Por lo general, el primer paquete activará una solicitud ARP, y si llegan más paquetes antes de que se agote el tiempo de la solicitud ARP, solo el último de esos paquetes se almacenará en el búfer y obtendrá una respuesta.
Otra diferencia está en cuántos saltos sin respuestas se mostrarán antes de que la herramienta deje de mostrar más saltos. He visto que el comando traceroute continúa durante tantos saltos como se solicitó (30 por defecto), mientras que el comando mtr se detendría tan pronto como hubiera pasado cinco saltos sin respuestas.