Il parallelismo è una delle ragioni principali della variazione della velocità di questi strumenti. Un altro fattore che contribuisce è il tempo di attesa per una risposta prima che l'hop sia considerato non rispondere. Se viene eseguito DNS inverso, è necessario attendere anche quello. Il semplice comando traceroute diventa molto più veloce se si disabilita il DNS inverso.
Un'altra differenza importante, che non ho visto menzionato, è come i due strumenti rendono l'output. Traceroute produce l'output in ordine dall'alto verso il basso. Mtr esegue il rendering dell'output in un modo diverso, in cui mtr può tornare indietro e aggiornare l'output sulle righe precedenti.
Ciò significa che mtr può visualizzare l'output non appena è disponibile, poiché se le risposte successive rendono tale output non accurato, mtr può tornare indietro e aggiornarlo. Dal momento che traceroute non può tornare indietro e aggiornare l'output, deve attendere fino a quando non ha deciso che cosa verrà visualizzato.
Ad esempio se l'hop numero 2 non risponde (che è un sintomo che ho visto su più ISP), traceroute visualizzerà l'hop numero 1 e quindi attenderà qualche istante prima di visualizzare l'hop numero 2 e 3. Anche se la risposta dal numero hop 3 è arrivato, non viene visualizzato perché traceroute sta ancora aspettando la risposta dal numero di hop 2. Mtr non ha questa limitazione e può visualizzare la risposta dal numero di hop 3 e tornare indietro per visualizzare la risposta dal numero di hop 2, se arriva più tardi.
Troppo parallelismo può rendere inaccurato l'output. In alcuni scenari ci sono limiti al numero di pacchetti per i quali è possibile ottenere risposte. L'invio di più pacchetti in questi casi non accelererà il processo, ma causerà più pacchetti persi, poiché si ottiene lo stesso numero di risposte con più pacchetti inviati.
Un esempio di ciò è quando un hop sulla rotta non risponde alle richieste ARP. Di solito il primo pacchetto attiverà una richiesta ARP e, se arrivano più pacchetti prima del timeout della richiesta ARP, solo l'ultimo di tali pacchetti verrà bufferizzato e riceverà una risposta.
Un'altra differenza è in quanti hop senza risposte verranno visualizzati prima che lo strumento smetta di visualizzare più hop. Ho visto il comando traceroute continuare per tutti gli hop richiesti (30 per impostazione predefinita), mentre il comando mtr si fermerebbe non appena avesse superato cinque hop senza risposta.