Monday, June 13, 2011

Time To Live (TTL)

Time To Live (TTL)


image
Sesuai dengan namanya, TTL (waktu untuk hidup) adalah suatu nilai waktu yang disematkan dalam paket data yang dikirimkan melalui jaringan TCP/IP untuk menyatakan berapa lama paket tersebut bisa beredar/berjalan di dalam jaringan. Nilai tersebut akan memberitahukan kepada router apakah paket tersebut harus diteruskan ke router selajutnya (next hop router) atau di-discard.
Sebagai contoh, seperti yang kita mungkin pernah alami, ada waktunya ketika kita sedang menuju suatu tujuan yang sebetulnya biasa (misalnya kantor), tiba-tiba macet, lalu kita coba jalan lain, eh malah berputar-putar tidak keruan. Ketemu orang pertama buat nanya arah, kita ikuti. Pas ketemu orang kedua, kita tanya, kita ikuti arahnya, malah ketemu orang yang pertama kita tanya. Paket data pun seperti itu. Paket data yang kita kirimkan ke Google (misalnya) akan melewati beberapa perlatan jaringan (switches dan routers). Dengan kondisi tertentu, apakah itu ada bagian jaringan yang terputus, atau traffic-nya macet, sehingga dia akan mengalir melalui jalan lain… tapi.. eh… malah berputar-putar tanpa pernah sampai ke tujuannya. Istilahnya Routing Loop atau Switching Loop. Loop ini kalo dibiarkan begitu saja, akan menyebabkan network kita terbebani (Bandwidth untuk traffic lain berkurang).
Nah, dari sekian banyak solusi untuk mencegah terbebaninya network dengan routing/switching loop, maka paket itu suatu saat harus di-discard, dan pengirim data harus dikasih tahu apabila memang paket tersebut di-discard di tengah jalan. Cara router men-discard paket adalah dengan melihat nilai TTL-nya. Nilai TTL ini … by default … sudah ditentukan oleh system operasi mesin pengirim, besarnya 8 bit, disematkan di header paket, dan akan dikurangi satu apabila paket data mencapai suatu router lain (next hop router). Jika suatu router mendapatkan angka TTL = 0 (nol), maka router tersebut akan men-discard paket dan mengirimkan paket ICMP ke pengirim data (Request Time Out atau Unreachable).
Contoh Default TTL berdasarkan OS:
image
Kita biasa menggunakan perintah Ping dan TraceRoute untuk men-test keberadaan suatu mesin atau melacak bagaimana suatu rute menuju suatu mesin. Kedua perintah tersebut menggunakan/memperlihatkan nilai TTL.
Reply from 64.233.181.104: bytes=32 time=1653ms TTL=52
Teks di atas adalah hasil reply dari mesin saya ke google. TTL = 52. Artinya, pada saat mencapai mesin saya, nilai TTL nya tinggal 52. Kalau saya lakukan perintah standard tracert dengan 30 hops, hasilnya adalah 12 hops. Informasi yang bisa kita peroleh antara lain:
  • Karena TTL masih lebih besar dari hops, maka saya masih bisa berkomunikasi dengan google.
  • Total TTL adalah 64, 52+12. Saya bisa memperkirakan Google di hosting di OS apa.  :)
Jika diperlukan, default TTL ini bisa dirubah. Caranya, disesuaikan dengan OS masing-masing. Untuk di Microsoft OS, biasanya bisa disetting lewat registry. Atau, misalnya jika kita mendevelop suatu aplikasi yang bisa mengirimkan data ke suatu tujuan tertentu, tapi ingin memastikan bahwa data tersebut tidak beredar terlalu lama di jaringan, maka kita bisa membuat code untuk merubah registry sistem operasi untuk nilai TTL yang diinginkan.

No comments:

Post a Comment