Concepts généraux
Le TTL (Time To Live) est un champ de l'en-tête IP (Internet Protocol) utilisé pour limiter la durée de vie d'un paquet de données sur un réseau. Le TTL est défini comme le nombre maximum de sauts qu'un paquet peut effectuer avant d'être rejeté.
Chaque fois qu'un paquet est envoyé via un routeur, celui-ci décrémente de un la valeur TTL dans l'en-tête IP. Si la valeur TTL atteint zéro, le paquet est rejeté et un message d'erreur ICMP (Internet Control Message Protocol) « Time Exceeded » est envoyé à l'expéditeur. Le message d'erreur ICMP comprendra des informations sur le routeur sur lequel le paquet a été rejeté et le temps d'aller-retour du paquet.
La fonction principale du TTL est d'empêcher les paquets de circuler indéfiniment sur un réseau. Si un paquet a une durée de vie très élevée, il pourrait continuer à circuler sur le réseau pendant une durée indéfinie, ce qui pourrait entraîner une congestion du réseau et des problèmes de performances.
Exemple pratique de fonctionnement TTL
Supposons qu'un hôte A souhaite envoyer un paquet de données à un hôte B et qu'il existe plusieurs routeurs intermédiaires sur le chemin entre A et B. L'hôte A définit une valeur TTL initiale dans l'en-tête IP du paquet, qui est égale à un nombre donné de sauts que le paquet est censé parcourir avant d'atteindre l'hôte B.
Lorsque le paquet arrive au premier routeur sur la route, le routeur lit la valeur TTL dans l'en-tête IP du paquet et la décrémente de un. Si la valeur TTL atteint zéro, le routeur rejette le paquet et envoie un message d'erreur ICMP « Time Exceeded » à l'hôte A. Si la valeur TTL est supérieure à zéro, le routeur transmet le paquet au routeur suivant de la route.
Ce processus se poursuit jusqu'à ce que le paquet atteigne l'hôte B ou jusqu'à ce que la valeur TTL atteigne zéro. Si le paquet arrive à l'hôte B, l'hôte B renvoie un accusé de réception à l'hôte A. Si la valeur TTL atteint zéro, le paquet est rejeté et un message d'erreur ICMP « Time Exceeded » est envoyé à l'hôte A.
Exemple de commande sous Linux
Sur les systèmes Linux, la commande pour ajuster la valeur TTL est ttl
. Par exemple, pour envoyer un paquet avec une valeur TTL de 64 depuis un hôte sous Linux vers l'hôte avec l'adresse IP 192.168.1.2
, vous pouvez utiliser la commande suivante :
ping -c 1 -t 64 192.168.1.2
Dans cette commande, -c 1
précise qu'un seul paquet sera envoyé et -t 64
spécifie que la valeur TTL sera 64. La commande ping
envoie un paquet ICMP (Internet Control Message Protocol) à l'adresse IP spécifiée et attend une réponse de l'hôte distant.
Si l'hôte distant répond, un message similaire à celui-ci s'affichera :
64 bytes from 192.168.1.2: icmp_seq=1 ttl=63 time=1.23 ms
Dans ce message, ttl=63
indique que la valeur TTL a été réduite de un au niveau du premier routeur de la route avant d'atteindre l'hôte distant.
Si la valeur TTL est trop faible, par exemple si elle est définie sur 1, le paquet risque de ne pas atteindre l'hôte distant. Au lieu de cela, un message « Temps dépassé » sera envoyé à l'hôte source.
Bref, la commande ping
sous Linux, il peut être utilisé pour envoyer des paquets avec une valeur TTL spécifiée et suivre le nombre de sauts dans le chemin d'un paquet sur un réseau. Cela peut être utile pour le dépannage du réseau et l'optimisation des performances.
TTL peut-il être utilisé sous Windows ?
Oui, vous pouvez également ajuster la valeur TTL sur les systèmes Windows. La commande utilisée sous Windows pour ajuster la valeur TTL est ping
. Comme sous Linux, la commande ping
est utilisé pour envoyer des paquets à un hôte distant et vous pouvez ajuster la valeur TTL à l'aide de l'option -i
.
Par exemple, pour envoyer un paquet avec une valeur TTL de 64 depuis un hôte sous Windows vers l'hôte avec l'adresse IP 192.168.1.2
, vous pouvez utiliser la commande suivante :
ping 192.168.1.2 -i 64
Dans cette commande, -i 64
spécifie que la valeur TTL sera de 64. Si l'hôte distant répond, un message similaire à celui-ci s'affichera :
Reply from 192.168.1.2: bytes=32 time=1ms TTL=63
Dans ce message, TTL=63
indique que la valeur TTL a été réduite de un au niveau du premier routeur de la route avant d'atteindre l'hôte distant.
Bref, la commande ping
sous Windows, il peut également être utilisé pour envoyer des paquets avec une valeur TTL spécifiée et suivre le nombre de sauts dans le chemin d'un paquet sur un réseau. Cela peut être utile pour le dépannage du réseau et l'optimisation des performances.