Γενικές έννοιες
Το TTL (Time To Live) είναι ένα πεδίο στην κεφαλίδα IP (Internet Protocol) που χρησιμοποιείται για τον περιορισμό της διάρκειας ζωής ενός πακέτου δεδομένων σε ένα δίκτυο. Το TTL ορίζεται ως ο μέγιστος αριθμός αναπηδήσεων που μπορεί να κάνει ένα πακέτο πριν απορριφθεί.
Κάθε φορά που αποστέλλεται ένα πακέτο μέσω ενός δρομολογητή, ο δρομολογητής μειώνει την τιμή TTL στην κεφαλίδα IP κατά ένα. Εάν η τιμή TTL φτάσει στο μηδέν, το πακέτο απορρίπτεται και αποστέλλεται στον αποστολέα ένα μήνυμα σφάλματος ICMP (Internet Control Message Protocol) "Time Exceeded". Το μήνυμα σφάλματος ICMP θα περιλαμβάνει πληροφορίες σχετικά με το δρομολογητή όπου απορρίφθηκε το πακέτο και τον χρόνο μετ' επιστροφής του πακέτου.
Η κύρια λειτουργία του TTL είναι να εμποδίζει τα πακέτα να κυκλοφορούν επ' αόριστον σε ένα δίκτυο. Εάν ένα πακέτο έχει πολύ υψηλό TTL, θα μπορούσε να συνεχίσει να κυκλοφορεί στο δίκτυο για αόριστο χρονικό διάστημα, γεγονός που θα μπορούσε να προκαλέσει συμφόρηση δικτύου και προβλήματα απόδοσης.
Πρακτικό παράδειγμα λειτουργίας TTL
Ας υποθέσουμε ότι ένας κεντρικός υπολογιστής Α θέλει να στείλει ένα πακέτο δεδομένων σε έναν κεντρικό υπολογιστή Β και υπάρχουν αρκετοί ενδιάμεσοι δρομολογητές στη διαδρομή μεταξύ Α και Β. Ο κεντρικός υπολογιστής Α ορίζει μια αρχική τιμή TTL στην κεφαλίδα IP του πακέτου, η οποία είναι ίση με δεδομένου του αριθμού αναπηδήσεων που αναμένεται να διασχίσει το πακέτο πριν φτάσει στον κεντρικό υπολογιστή Β.
Όταν το πακέτο φτάσει στον πρώτο δρομολογητή στη διαδρομή, ο δρομολογητής διαβάζει την τιμή TTL στην κεφαλίδα IP του πακέτου και τη μειώνει κατά ένα. Εάν η τιμή TTL φτάσει στο μηδέν, ο δρομολογητής απορρίπτει το πακέτο και στέλνει ένα μήνυμα σφάλματος ICMP "Time Exceeded" στον κεντρικό υπολογιστή A. Εάν η τιμή TTL είναι μεγαλύτερη από μηδέν, ο δρομολογητής προωθεί το πακέτο στον επόμενο δρομολογητή στο δίκτυο.
Αυτή η διαδικασία συνεχίζεται έως ότου το πακέτο φτάσει στον κεντρικό υπολογιστή Β ή έως ότου η τιμή TTL φτάσει στο μηδέν. Εάν το πακέτο φτάσει στον κεντρικό υπολογιστή Β, ο κεντρικός υπολογιστής Β επιστρέφει μια επιβεβαίωση στον κεντρικό υπολογιστή Α. Εάν η τιμή TTL φτάσει στο μηδέν, το πακέτο απορρίπτεται και αποστέλλεται ένα μήνυμα σφάλματος ICMP "Time Exceeded" στον κεντρικό υπολογιστή Α.
Παράδειγμα της εντολής στο Linux
Σε συστήματα Linux, η εντολή προσαρμογής της τιμής TTL είναι ttl
. Για παράδειγμα, για να στείλετε ένα πακέτο με τιμή TTL 64 από έναν κεντρικό υπολογιστή στο Linux στον κεντρικό υπολογιστή με διεύθυνση IP 192.168.1.2
, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:
ping -c 1 -t 64 192.168.1.2
Σε αυτήν την εντολή, -c 1
καθορίζει ότι θα σταλεί ένα μόνο πακέτο και -t 64
καθορίζει ότι η τιμή TTL θα είναι 64. Η εντολή ping
στέλνει ένα πακέτο ICMP (Internet Control Message Protocol) στην καθορισμένη διεύθυνση IP και περιμένει μια απάντηση από τον απομακρυσμένο κεντρικό υπολογιστή.
Εάν ο απομακρυσμένος κεντρικός υπολογιστής απαντήσει, θα εμφανιστεί ένα παρόμοιο μήνυμα:
64 bytes from 192.168.1.2: icmp_seq=1 ttl=63 time=1.23 ms
Σε αυτό το μήνυμα, ttl=63
υποδεικνύει ότι η τιμή TTL μειώθηκε κατά ένα στον πρώτο δρομολογητή στη διαδρομή πριν φτάσει στον απομακρυσμένο κεντρικό υπολογιστή.
Εάν η τιμή TTL είναι πολύ χαμηλή, για παράδειγμα, εάν έχει οριστεί σε 1, το πακέτο ενδέχεται να μην φτάσει στον απομακρυσμένο κεντρικό υπολογιστή. Αντίθετα, θα σταλεί ένα μήνυμα "Υπέρβαση χρόνου" στον κεντρικό υπολογιστή προέλευσης.
Εν ολίγοις, η εντολή ping
στο Linux μπορεί να χρησιμοποιηθεί για την αποστολή πακέτων με καθορισμένη τιμή TTL και την παρακολούθηση του αριθμού των αναπηδήσεων στη διαδρομή ενός πακέτου σε ένα δίκτυο. Αυτό μπορεί να είναι χρήσιμο για την αντιμετώπιση προβλημάτων δικτύου και τη βελτιστοποίηση της απόδοσης.
Μπορεί το TTL να χρησιμοποιηθεί σε Windows;
Ναι, μπορείτε επίσης να προσαρμόσετε την τιμή TTL σε συστήματα Windows. Η εντολή που χρησιμοποιείται στα Windows για την προσαρμογή της τιμής TTL είναι ping
. Όπως και στο Linux, η εντολή ping
χρησιμοποιείται για την αποστολή πακέτων σε έναν απομακρυσμένο κεντρικό υπολογιστή και μπορείτε να προσαρμόσετε την τιμή TTL χρησιμοποιώντας την επιλογή -i
.
Για παράδειγμα, για να στείλετε ένα πακέτο με τιμή TTL 64 από έναν κεντρικό υπολογιστή στα Windows στον κεντρικό υπολογιστή με διεύθυνση IP 192.168.1.2
, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:
ping 192.168.1.2 -i 64
Σε αυτήν την εντολή, -i 64
καθορίζει ότι η τιμή TTL θα είναι 64. Εάν ο απομακρυσμένος κεντρικός υπολογιστής αποκριθεί, θα εμφανιστεί ένα παρόμοιο μήνυμα:
Reply from 192.168.1.2: bytes=32 time=1ms TTL=63
Σε αυτό το μήνυμα, TTL=63
υποδεικνύει ότι η τιμή TTL μειώθηκε κατά ένα στον πρώτο δρομολογητή στη διαδρομή πριν φτάσει στον απομακρυσμένο κεντρικό υπολογιστή.
Εν ολίγοις, η εντολή ping
στα Windows μπορεί επίσης να χρησιμοποιηθεί για την αποστολή πακέτων με καθορισμένη τιμή TTL και την παρακολούθηση του αριθμού μεταπήδησης στη διαδρομή ενός πακέτου σε ένα δίκτυο. Αυτό μπορεί να είναι χρήσιμο για την αντιμετώπιση προβλημάτων δικτύου και τη βελτιστοποίηση της απόδοσης.