Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question sur la commande "traceroute"

Sujet résolu
    21 août 2015 à 20:12:16

    Bonjour,

    je suis en train de lire un article sur un site web et je vois ceci qui explique comment la commande "traceroute" fonctionne sur Linux :

    """"""(début quote)

    La commande s'appuie sur le « Time To Live » d'un paquet de données. Ce TTL dispose d'une valeur initiale, généralement entre 15 et 30 secondes, et est décrémenté à chaque passage de routeur. La décrémentation à chaque routeur est au moins d'une seconde, plus si le paquet reste en file d'attente dans le routeur plus d'une seconde. Dans un tel cas, le TTL est décrémenté à chaque seconde passée dans la file d'attente.

    Si le TTL devient nul, le paquet est considéré comme mort et est détruit par le routeur. L'émetteur du paquet reçoit un message ICMP Time-to-live exceeded pour le prévenir (une des raisons pour laquelle il ne faut pas filtrer tout le trafic ICMP sur un firewall).

    C'est cette propriété qui va servir à définir la route. La cible envoie un premier paquet avec un TTL de 1s. Ce paquet, en arrivant sur le premier routeur, va voir son TTL tomber à 0, donc va être détruit, et le routeur va en informer l'émetteur au moyen d'un message ICMP « TTL expiré ». L'opération est effectuée par défaut trois fois (les trois indices de temps indiqués dans la réponse), puis, un nouvel essai sera fait, avec cette fois-ci un TTL de 2 secondes. Normalement, le paquet doit passer le premier routeur et être détruit par le second. Ainsi de suite jusqu'à arriver à destination.

    Les paquets envoyés par la source peuvent être des paquets UDP ou ICMP. La commande “traceroute” de Linux envoie par défaut des paquets UDP, mais la directive “-I” force l'émission de paquets ICMP. Sous Windows, la commande “tracert” ne sait envoyer que des paquets ICMP. Notez que l'envoi de paquets UDP peut parfois poser des problèmes.

    """""(fin quote)

    J'ai l'impression que la personne mélange le protocole ICMP de type 8-0 (echo) et de type 13-14 Time Stamp message. Il parle de décrémentation de temps alors que je connais surtout la décrémentation du l'indice de l'ICMP echo.

    Perso, j'ai tjrs cru que on envoie un ICMP echo pour savoir le nom du premier hote, deuxieme, troisième, etc... jusqu'à la destination ET ENSUITE on envoie 3 ICMP Time Stamp au premier, deuxième, etc... pour savoir le temps.

    Voici le lien en question : http://irp.nain-t.net/doku.php/080routage:040_manips

    Merci d'avance

    EDIT :  Et ce n'est pas "traceroute" mes "tracert" sur Windows.

    -
    Edité par haine92 21 août 2015 à 20:42:45

    • Partager sur Facebook
    • Partager sur Twitter
      22 août 2015 à 17:39:48

      Wikipédia explique bien : https://fr.wikipedia.org/wiki/Traceroute

      Pour le TTL, wikipédia explique bien aussi, du coup : https://fr.wikipedia.org/wiki/Time_to_Live#Historique

      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        23 août 2015 à 10:47:10

        Deja lu.

        D'ailleurs, ça n'explique pas comment le TTL fait pour calculer le temps. En effet, si la valeur ne peut être qu'entre 1 et 255 secondes. Comment le paquet fait pour calculer le temps en ms si 0.5 n'existe pas ? Je suppose donc qu'un ICMP de type 13 est obligatoire (d'où ma question).

        Ensuite, si le TTL est fixé à 3 sec. Le paquet doit arriver à la troisième passerelle. Le TTL est 2 à la première, ensuite elle est 0 à la deuxième parce que le paquet a mis du temps (1 sec) pendant le trajet. Comment ça se passe ? Il y a une erreur je pense non ? Je suppose donc qu'un ICMP de type 8 dont la décrémentation se fait uniquement lors de la réception par une passerelle, est obligatoire (d'où ma question).

        • Partager sur Facebook
        • Partager sur Twitter
          23 août 2015 à 11:48:31

          haine92 a écrit:

          D'ailleurs, ça n'explique pas comment le TTL fait pour calculer le temps. En effet, si la valeur ne peut être qu'entre 1 et 255 secondes. Comment le paquet fait pour calculer le temps en ms si 0.5 n'existe pas ? Je suppose donc qu'un ICMP de type 13 est obligatoire (d'où ma question).

          Le TTL ne calcule pas le temps, il est décrémenté de 1 à chaque passage de routeur quel que soit le temps mis pour transiter.

          Le temps est calculé comme dans le cas d'un ping classique : c'est le temps entre l'envoi de la requête et l'arrivée de la réponse. L'ICMP type 13/14 n'est pas utilisé.

          haine92 a écrit:

          Ensuite, si le TTL est fixé à 3 sec. Le paquet doit arriver à la troisième passerelle. Le TTL est 2 à la première, ensuite elle est 0 à la deuxième parce que le paquet a mis du temps (1 sec) pendant le trajet. Comment ça se passe ? Il y a une erreur je pense non ? Je suppose donc qu'un ICMP de type 8 dont la décrémentation se fait uniquement lors de la réception par une passerelle, est obligatoire (d'où ma question).

          Le TTL est toujours décrémenté de 1 à chaque passage de routeur, le coup du nombre de secondes, c'est un truc historique, c'est plus valable depuis très longtemps.

          C'est pour ça que j'ai linké la partie Historique de l'article wikipédia sur le TTL ;)

          -
          Edité par LoupSolitaire 23 août 2015 à 11:49:44

          • Partager sur Facebook
          • Partager sur Twitter

          Blond, bouclé, toujours le sourire aux lèvres...

            23 août 2015 à 13:01:42

            OK. Ça explique tout. Merci bcp.

            • Partager sur Facebook
            • Partager sur Twitter

            Question sur la commande "traceroute"

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown