Vispārīgi jēdzieni
TTL (Time To Live) ir lauks IP (interneta protokola) galvenē, ko izmanto, lai ierobežotu datu paketes kalpošanas laiku tīklā. TTL tiek definēts kā maksimālais apiņu skaits, ko pakete var veikt, pirms tā tiek izmesta.
Katru reizi, kad pakete tiek nosūtīta caur maršrutētāju, maršrutētājs samazina TTL vērtību IP galvenē par vienu. Ja TTL vērtība sasniedz nulli, pakete tiek izmesta un sūtītājam tiek nosūtīts ICMP (Internet Control Message Protocol) kļūdas ziņojums “Time Exceeded”. ICMP kļūdas ziņojumā tiks iekļauta informācija par maršrutētāju, kurā pakete tika izmesta, un paketes brauciena turp un atpakaļ laiku.
TTL galvenā funkcija ir novērst pakešu neierobežotu cirkulāciju tīklā. Ja paketei ir ļoti augsts TTL, tā var turpināt cirkulēt tīklā neierobežotu laiku, kas var izraisīt tīkla pārslodzes un veiktspējas problēmas.
Praktisks TTL darbības piemērs
Pieņemsim, ka resursdators A vēlas nosūtīt datu paketi resursdatoram B un ceļā starp A un B ir vairāki starpposma maršrutētāji. Resursdators A iestata sākotnējo TTL vērtību paketes IP galvenē, kas ir vienāda ar Paredzams, ka, ņemot vērā apiņu skaitu, pakete šķērsos, pirms tā sasniedz resursdatoru B.
Kad pakete nonāk pirmajā maršrutētājā maršrutā, maršrutētājs nolasa TTL vērtību paketes IP galvenē un samazina to par vienu. Ja TTL vērtība sasniedz nulli, maršrutētājs atmet paketi un nosūta ICMP kļūdas ziņojumu “Time Exceeded” resursdatoram A. Ja TTL vērtība ir lielāka par nulli, maršrutētājs pārsūta paketi nākamajam maršrutētājam.
Šis process turpinās, līdz pakete sasniedz resursdatoru B vai līdz TTL vērtība sasniedz nulli. Ja pakete nonāk resursdatorā B, resursdators B atgriež resursdatoram A apstiprinājumu. Ja TTL vērtība sasniedz nulli, pakete tiek atmesta un resursdatoram A tiek nosūtīts ICMP kļūdas ziņojums “Time Exceeded”.
Komandas piemērs operētājsistēmā Linux
Linux sistēmās komanda pielāgot TTL vērtību ir ttl
. Piemēram, lai nosūtītu paketi ar TTL vērtību 64 no resursdatora operētājsistēmā Linux uz resursdatoru ar IP adresi 192.168.1.2
, varat izmantot šādu komandu:
ping -c 1 -t 64 192.168.1.2
Šajā komandā -c 1
norāda, ka tiks nosūtīta viena pakete un -t 64
norāda, ka TTL vērtība būs 64. Komanda ping
nosūta ICMP (Internet Control Message Protocol) paketi uz norādīto IP adresi un gaida atbildi no attālā resursdatora.
Ja attālais resursdators atbild, tiks parādīts šim līdzīgs ziņojums:
64 bytes from 192.168.1.2: icmp_seq=1 ttl=63 time=1.23 ms
Šajā ziņojumā ttl=63
norāda, ka pirmajā maršrutētājā maršrutā pirms attālā saimniekdatora sasniegšanas TTL vērtība tika samazināta par vienu.
Ja TTL vērtība ir pārāk zema, piemēram, ja tā ir iestatīta uz 1, pakete var nesasniegt attālo resursdatoru. Tā vietā avota resursdatoram tiks nosūtīts ziņojums “Pārsniegts laiks”.
Īsāk sakot, komanda ping
operētājsistēmā Linux to var izmantot, lai nosūtītu paketes ar noteiktu TTL vērtību un izsekotu lēcienu skaitu paketes ceļā tīklā. Tas var būt noderīgi tīkla problēmu novēršanai un veiktspējas optimizēšanai.
Vai TTL var izmantot operētājsistēmā Windows?
Jā, varat arī pielāgot TTL vērtību Windows sistēmās. Sistēmā Windows izmantotā komanda, lai pielāgotu TTL vērtību, ir ping
. Tāpat kā Linux, komanda ping
tiek izmantots, lai nosūtītu paketes uz attālo resursdatoru, un jūs varat pielāgot TTL vērtību, izmantojot opciju -i
.
Piemēram, lai nosūtītu paketi ar TTL vērtību 64 no resursdatora operētājsistēmā Windows uz resursdatoru ar IP adresi 192.168.1.2
, varat izmantot šādu komandu:
ping 192.168.1.2 -i 64
Šajā komandā -i 64
norāda, ka TTL vērtība būs 64. Ja attālais resursdators atbild, tiks parādīts šim līdzīgs ziņojums:
Reply from 192.168.1.2: bytes=32 time=1ms TTL=63
Šajā ziņojumā TTL=63
norāda, ka pirmajā maršrutētājā maršrutā pirms attālā saimniekdatora sasniegšanas TTL vērtība tika samazināta par vienu.
Īsāk sakot, komanda ping
operētājsistēmā Windows to var izmantot arī, lai nosūtītu paketes ar noteiktu TTL vērtību un izsekotu lēcienu skaitu paketes ceļā tīklā. Tas var būt noderīgi tīkla problēmu novēršanai un veiktspējas optimizēšanai.