Genel konseptler
TTL (Yaşam Süresi), IP (İnternet Protokolü) başlığında bulunan ve ağdaki bir veri paketinin ömrünü sınırlamak için kullanılan bir alandır. TTL, bir paketin atılmadan önce yapabileceği maksimum atlama sayısı olarak tanımlanır.
Bir yönlendirici üzerinden her paket gönderildiğinde, yönlendirici IP başlığındaki TTL değerini bir azaltır. TTL değeri sıfıra ulaştığında paket atılır ve göndericiye ICMP (İnternet Kontrol Mesajı Protokolü) “Süre Aşıldı” hata mesajı gönderilir. ICMP hata mesajı, paketin atıldığı yönlendirici ve paketin gidiş-dönüş süresi hakkında bilgi içerecektir.
TTL'nin ana işlevi, paketlerin ağda süresiz olarak dolaşmasını önlemektir. Bir paketin TTL'si çok yüksekse ağda süresiz olarak dolaşmaya devam edebilir, bu da ağ tıkanıklığına ve performans sorunlarına neden olabilir.
TTL işleminin pratik örneği
A ana bilgisayarının B ana bilgisayarına bir veri paketi göndermek istediğini ve A ile B arasındaki yolda birkaç ara yönlendiricinin bulunduğunu varsayalım. Ana Bilgisayar A, paketin IP başlığında şuna eşit olan bir başlangıç TTL değeri belirler: Verilen atlama sayısı dikkate alındığında paketin ana bilgisayar B'ye ulaşmadan önce geçmesi beklenir.
Paket rotadaki ilk yönlendiriciye ulaştığında yönlendirici, paketin IP başlığındaki TTL değerini okur ve onu bir azaltır. TTL değeri sıfıra ulaşırsa, yönlendirici paketi atar ve A ana bilgisayarına bir ICMP "Süre Aşıldı" hata mesajı gönderir. TTL değeri sıfırdan büyükse, yönlendirici paketi ağ yolundaki bir sonraki yönlendiriciye iletir.
Bu işlem, paket host B'ye ulaşana veya TTL değeri sıfıra ulaşana kadar devam eder. Paket B ana bilgisayarına ulaşırsa, B ana bilgisayarı A ana bilgisayarına bir onay döndürür. TTL değeri sıfıra ulaşırsa paket atılır ve A ana bilgisayarına bir ICMP "Süre Aşıldı" hata mesajı gönderilir.
Linux'taki komut örneği
Linux sistemlerinde TTL değerini ayarlama komutu: ttl
. Örneğin Linux üzerindeki bir hosttan IP adresi olan hosta TTL değeri 64 olan bir paket göndermek için 192.168.1.2
, aşağıdaki komutu kullanabilirsiniz:
ping -c 1 -t 64 192.168.1.2
Bu komutta, -c 1
tek bir paketin gönderileceğini belirtir ve -t 64
TTL değerinin 64 olacağını belirtir. Komut ping
belirtilen IP adresine bir ICMP (İnternet Kontrol Mesajı Protokolü) paketi gönderir ve uzak ana bilgisayardan yanıt bekler.
Uzak ana bilgisayar yanıt verirse buna benzer bir mesaj görüntülenecektir:
64 bytes from 192.168.1.2: icmp_seq=1 ttl=63 time=1.23 ms
Bu mesajda, ttl=63
uzak ana bilgisayara ulaşmadan önce rotadaki ilk yönlendiricide TTL değerinin bir azaltıldığını gösterir.
TTL değeri çok düşükse örneğin 1 olarak ayarlanırsa paket uzak ana bilgisayara ulaşamayabilir. Bunun yerine kaynak ana bilgisayara “Süre Aşıldı” mesajı gönderilecektir.
Kısacası, komut ping
Linux'ta belirli bir TTL değerine sahip paketleri göndermek ve bir paketin ağ üzerindeki yolundaki atlama sayısını izlemek için kullanılabilir. Bu, ağ sorun giderme ve performans optimizasyonu için yararlı olabilir.
TTL Windows'ta kullanılabilir mi?
Evet, Windows sistemlerde de TTL değerini ayarlayabilirsiniz. Windows'ta TTL değerini ayarlamak için kullanılan komut: ping
. Linux'ta olduğu gibi, komut ping
uzak bir ana bilgisayara paket göndermek için kullanılır ve seçeneği kullanarak TTL değerini ayarlayabilirsiniz. -i
.
Örneğin Windows üzerindeki bir hosttan IP adresi olan hosta TTL değeri 64 olan bir paket göndermek için 192.168.1.2
, aşağıdaki komutu kullanabilirsiniz:
ping 192.168.1.2 -i 64
Bu komutta, -i 64
TTL değerinin 64 olacağını belirtir. Uzak ana bilgisayar yanıt verirse buna benzer bir mesaj görüntülenecektir:
Reply from 192.168.1.2: bytes=32 time=1ms TTL=63
Bu mesajda, TTL=63
uzak ana bilgisayara ulaşmadan önce rotadaki ilk yönlendiricide TTL değerinin bir azaltıldığını gösterir.
Kısacası, komut ping
Windows'ta ayrıca belirli bir TTL değerine sahip paketler göndermek ve bir paketin ağ üzerindeki yolundaki atlama sayısını izlemek için de kullanılabilir. Bu, ağ sorun giderme ve performans optimizasyonu için yararlı olabilir.