Signification du houblon (mesure TTL)

10

Lorsque j'utilise la commande ping, j'obtiens les résultats suivants (Windows):

C:\>ping example.microsoft.com
Pinging example.microsoft.com [192.168.239.132] with 32 bytes of data:
Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
...

Dans la documentation de ces utilitaires, TTL est mesuré en sauts . Selon la spécification ICMP RFC 792 :

Temps de vivre. Temps de vivre en quelques secondes ; comme ce champ est décrémenté sur chaque machine dans laquelle le datagramme est traité, la valeur dans ce champ doit être au moins aussi grande que le nombre de passerelles que ce datagramme traversera.

Ainsi, chaque hôte diminue TTL d'au moins 1 seconde . Rien n'a été dit sur le houblon . Alors pourquoi utiliser du houblon? Pourquoi ne pas utiliser, disons ms , si les hôtes traitent les datagrammes trop rapidement? Et pourquoi la spécification ne dit rien sur le houblon ?

Kyrylo M
la source
Bonne question. Si je me souviens bien, ils ont remplacé TTL par des sauts en IPv6, mais je ne suis pas sûr.
AndrejaKo
1
@AndrejaKo, oui, ils l'ont fait. Mais officiellement uniquement en IPv6.
Kyrylo M

Réponses:

7

TTL est conçu pour arrêter les paquets (et consommer des ressources) pour toujours s'il y a une boucle de routage.

À l'origine, les routeurs pouvaient prendre plus d'une seconde pour traiter un paquet.

Lorsque les routeurs sont devenus beaucoup plus rapides et ont commencé à traiter les paquets en moins d'une seconde, il serait stupide pour eux de réduire le TTL de zéro, car cela n'arrêterait pas les boucles.

Donc, au lieu de cela, il décrémente le TTL d'une seconde.

Cette modification a été documentée dans la section 5.3.1 de la RFC 1716 .

Le champ Time-to-Live (TTL) de l'en-tête IP est défini comme un temporisateur limitant la durée de vie d'un datagramme. Il s'agit d'un champ de 8 bits et les unités sont des secondes. Chaque routeur (ou autre module) qui gère un paquet DOIT décrémenter le TTL d'au moins un, même si le temps écoulé était bien inférieur à une seconde. Comme c'est très souvent le cas, le TTL est effectivement une limite de nombre de sauts sur la distance à laquelle un datagramme peut se propager sur Internet.

Lorsqu'un routeur transfère un paquet, il DOIT réduire le TTL d'au moins un. S'il détient un paquet pendant plus d'une seconde, il PEUT décrémenter le TTL d'un pour chaque seconde.

Voir également:

Wikipédia - Il est temps de vivre :

Le champ TTL est défini par l'expéditeur du datagramme et réduit par chaque hôte sur l'itinéraire vers sa destination.

Maxi-pedia - Time to Live (TTL)

Chaque routeur traversé par le paquet doit soustraire au moins un compte du champ TTL.

Mikel
la source
Je ne vois rien sur les sauts et pourquoi ils ont utilisé au lieu de secondes ou ms.
Kyrylo M
1
J'ai ajouté un lien vers RFC 1716. C'est là que cela est spécifié.
Mikel