Terminus Expanse
ProgrammeBlogTarifsConnexion
Retour aux notes
guidesnetworking8 août 2026

Comment lire un traceroute, pour de vrai

Terminus Expanse

Ce que fait traceroute, en une phrase

Traceroute trouve chaque routeur entre vous et une destination en envoyant des paquets délibérément conçus pour expirer un saut plus tôt à chaque fois, et en lisant le message d'erreur que chaque routeur renvoie quand ça arrive. C'est toute l'astuce. Ce n'est pas un protocole spécial que l'internet aurait pour "montre-moi le chemin" — c'est un détournement astucieux d'une fonctionnalité qui existe déjà pour une raison totalement différente.

Le mécanisme, sans raccourci

Chaque paquet IP transporte un champ appelé TTL — time to live — qui part d'un certain nombre (souvent 64) et est décrémenté d'exactement un à chaque routeur qu'il traverse. Quand un routeur fait passer le TTL d'un paquet à zéro, il ne transmet pas le paquet : il le jette et renvoie un message ICMP "Time Exceeded" à l'expéditeur, disant en substance "ce paquet a expiré ici, chez moi".

Traceroute exploite ça délibérément. Il envoie un paquet vers la destination avec un TTL réglé à 1. Le tout premier routeur du chemin le décrémente à zéro, le jette, et renvoie ce message Time Exceeded — ce qui révèle l'adresse du premier routeur. Traceroute envoie ensuite un deuxième paquet avec un TTL réglé à 2. Il survit au premier routeur, est décrémenté à zéro au deuxième, et ce routeur-là répond. Traceroute continue d'incrémenter le TTL de un et de renvoyer des paquets jusqu'à ce qu'un paquet atteigne enfin la vraie destination, qui répond normalement au lieu d'envoyer un Time Exceeded — c'est comme ça que traceroute sait qu'il faut s'arrêter.

Chaque ligne de sortie de traceroute dit en réalité "voici qui a répondu quand un paquet est mort exactement à ce nombre de sauts", dans l'ordre où ces sauts se produisent.

Lire une vraie ligne de sortie

Une ligne typique ressemble à ça :

``` 4 203.0.113.1 (203.0.113.1) 12.481 ms 11.892 ms 12.103 ms ```

Le chiffre en tête est le numéro de saut — à combien de routeurs de distance on se trouve. Puis l'adresse du routeur qui a répondu à ce saut. Puis trois chiffres en millisecondes, parce que traceroute envoie par défaut trois paquets sonde séparés par saut, et chacun peut emprunter un chemin légèrement différent ou rencontrer un peu plus ou moins de congestion — on obtient donc trois temps d'aller-retour indépendants plutôt qu'un seul. Trois chiffres proches et similaires, c'est un saut normal et sain. Trois chiffres très différents entre eux indique souvent un routeur sous charge ou un lien avec une vraie gigue.

Ce que * * * signifie vraiment — et ce que ça ne signifie généralement pas

C'est la ligne qui perturbe le plus les gens :

``` 7 * * * ```

Chaque astérisque signifie qu'un paquet sonde n'a reçu aucune réponse dans le délai imparti. Ça ne signifie pas forcément que ce saut, ou le chemin au-delà, est cassé. Très souvent, ça veut dire que le routeur à ce saut est configuré — délibérément, par choix de sécurité ou de gestion de charge — pour ne jamais envoyer de réponses ICMP Time Exceeded, ou pour les déprioriser tellement en dessous du trafic réel qu'elles expirent. Les paquets, eux, passent généralement très bien par ce routeur ; il choisit simplement de ne pas s'identifier. Si tous les sauts après une ligne * * * atteignent quand même la destination et obtiennent une réponse normale, le chemin fonctionne — ce routeur-là se tait, c'est tout. Un vrai problème ressemble à autre chose : * * * à chaque saut à partir d'un certain point, jusqu'à la fin, sans aucune réponse finale.

Pourquoi le dernier vrai chiffre compte plus qu'un saut isolé

La chose la plus utile à regarder dans un traceroute n'est pas un saut individuel — c'est là où la latence fait un bond. Si le saut 6 affiche 14ms et que le saut 7 affiche soudain 180ms, et que tous les sauts suivants restent autour de 180ms aussi, vous avez trouvé approximativement où dans le réseau le délai est introduit, même si vous ne contrôlez pas ce routeur et ne pouvez pas le corriger directement. C'est une information vraiment utile quand on essaie de savoir si une connexion lente vient de son réseau, de son FAI, ou de bien plus loin — et c'est pour ça que les ingénieurs réseau utilisent constamment traceroute plutôt que de simplement pinguer la destination finale, ce qui ne donne que le temps total d'aller-retour sans aucune visibilité sur où le temps a réellement été perdu en chemin.

Une réserve à connaître avant de trop faire confiance à un résultat

Le chemin que montre traceroute est le chemin au moment où vous l'avez lancé. L'internet contourne les pannes et la charge en permanence, donc relancer traceroute cinq minutes plus tard vers la même destination peut légitimement montrer un ensemble de routeurs différent — ce n'est pas un bug de traceroute, c'est le réseau qui fait exactement ce pour quoi il est conçu. Traceroute est une photo instantanée, pas une garantie, et ça vaut la peine de s'en souvenir avant de traiter un seul run comme la réponse définitive à "qu'est-ce qu'il y a entre moi et ce serveur".

Ce billet parle de