NTP

Network Time Protocol (NTP) adalah protokol untuk keperluan penyelaras jam antara sistem komputer. NTP sudah digunakan sejak tahun 1985, menjadikan NTP salah satu protokol Internet tertua yang digunakan sampai sekarang.

Di lingkungan Windows, servis untuk NTP baru mulai disediakan di Windows XP. Sebelumnya, pengguna komputer yang peduli jam komputer yang akurat (sebenarnya lebih praktis lagi ada beberapa komputer yang perlu disetel jamnya pada saat dihidupkan) memasang utilitas penyelaras jam komputer, misalnya untuk Microsoft Windows 95. Penggunaan Internet masih terbatas pada saat itu, layanan sederhana ini lebih sering dianggap belum penting. Jam komputer yang melenceng sampai orde jam atau puluhan menit bukan dianggap gangguan. Beberapa pemakai komputer membiarkan tanggal sistem salah, baru menyadari jika ada aplikasi yang gagal dipasang karena menuntut jam yang realistis. Kondisi ini berlangsung lama –sepertinya terkait juga budaya di Indonesia secara umum dalam memandang waktu– dan menjadi perhatian setelah kedatangan ponsel cerdas (smartphone).

Sistem operasi ponsel cerdas yang populer sekarang, iOS dan Android, menyediakan pengaturan otomatis untuk waktu dengan mengambil referensi pada server NTP. Faktor lain: pengetahuan bahwa waktu yang akurat untuk keperluan sehari-hari dapat diperoleh dari satelit GPS –sedangkan perangkat GPS sudah populer sejak awal abad ke-21, menjadikan patokan waktu yang lebih baik keperluan yang lazim saat ini. Praktis, mayoritas ponsel yang terhubung dengan Internet saat ini sekaligus menjadi penunjuk waktu yang lebih akurat dibanding aneka jam di sekitar kita.

Keperluan NTP sehari-hari

Karena ada jaminan NTP andal untuk keperluan komputer dan relatif mudah digunakan, saya menjadi terobsesi untuk menjadikan jam perangkat akurat hingga satuan detik. Kurang afdal rasanya jika kecocokan jam perangkat hanya pada satuan menit; jadi sekalian sampai orde detik. Beberapa manfaat perangkat dalam kondisi tersinkronisasi dengan benar yang saya rasakan:

  1. Pengelolaan log. Dalam jaringan yang terdiri dari berbagai perangkat, pemeriksaan kejadian yang melibatkan beberapa perangkat perlu waktu yang disepakati bersama. Walaupun terdapat atribut lain dalam transaksi, misalnya identitas perangkat, waktu kejadian yang cermat membantu mengurangi jumlah entri log yang perlu diperiksa.

  2. Sinkronisasi data antarperangkat. Dua kejadian lepas yang ingin dihubungkan paling praktis menggunakan waktu sebagai penghubung. Contoh yang sering saya perlukan: menghubungkan foto digital dari kamera dan data koordinat dari perangkat GPS. Dengan waktu yang sinkron pada dua perangkat, metadata foto dapat ditambahi informasi koordinat dari hasil pencatatan perangkat GPS.

Untuk sistem yang kritis terhadap waktu, penggunaan NTP tidak dapat ditawar lagi. Integritas data dapat berantakan akibat ditangani dengan referensi waktu yang tidak akurat; dalam kondisi ekstrem, sistem dapat lumpuh karena faktor ketidaksinkronan waktu, salah satunya dikenal dengan istilah leap second. Untuk keperluan saya pada umumnya, perbedaan kurang dari sepuluh detik belum sampai menyebabkan masalah.

Penyediaan layanan NTP

Layanan NTP disediakan secara hirarki dalam istilah stratum (jamak: strata). Stratum 0 berupa perangkat waktu berpresisi sangat tinggi, misalnya jam atom, dilanjutkan dengan stratum 1 berupa komputer yang terhubung dengan perangkat waktu di stratum 0. Hal ini dilanjutkan pada stratum 2 dst. hingga batas ke-15, dengan stratum-16 digunakan sebagai indikasi piranti yang tak-disinkronkan. Untuk kepraktisan, disediakan 0.pool.ntp.org dan 1.pool.ntp.org untuk server-utama dan server-sekunder yang dijadikan rujukan. Tersedia pula referensi per negara menggunakan kode negara, misal 0.id.pool.ntp.org dan 1.id.pool.ntp.org untuk Indonesia. Layanan NTP publik juga disediakan oleh beberapa lembaga, komersial atau non-komersial, semisal 0.ubuntu.pool.ntp.org yang disediakan Ubuntu atau ntp.metrologi.lipi.go.id yang disediakan LIPI.

Akses ke layanan NTP

Untuk keperluan sinkronisasi dengan layanan NTP, komputer yang akan disinkronkan harus dapat mengakses server NTP sebagai penyedia layanan. Setidaknya ada tiga pendekatan dalam hal ini:

  1. Membuka akses ke pangkalan (port) layanan NTP. Di dalam aturan yang disusun di dinding api (firewall’s rules), akses ke pangkalan dibuka, komputer-komputer yang ada di dalam jaringan dibebaskan menggunakan rujukan layanan NTP manapun di luar. Biasanya hal ini diatur sistem operasi masing-masing.

  2. Disediakan layanan NTP sendiri untuk keperluan semua komputer di dalam jaringan lokal. Layanan ini disinkronisasi dengan layanan di luar dan referensi NTP semua komputer di dalam jaringan diarahkan ke layanan sendiri ini. Keuntungan cara ini: adanya pendelegasian layanan NTP cukup dilakukan di komputer di jaringan lokal.

  3. Pengembangan dari layanan pada poin 2: semua akses ke layanan NTP dibelokkan (redirected) ke layanan NTP lokal. Dengan demikian, semua komputer tanpa kecuali akan menggunakan layanan NTP lokal.

Untuk keperluan jaringan lokal yang memiliki banyak komputer di dalamnya, poin ketiga penting dipertimbangkan. Dari sisi keamanan juga seharusnya lebih aman, karena pangkalan yang dibuka keluar dibatasi.