Pages

Minggu, 07 Juni 2009

NTP : Penjaga Waktu Internet



Petunjuk waktu juga merupakan aspek penting di dalam dunia komunikasi Internet yang tak kasat mata ini. Untuk itu, ada sebuah mekanisme yang menjaganya yang bernama NTP. Jika Anda berpikir bahwa dunia Internet tidak mengenal perhitungan waktu, maka pikiran Anda itu adalah salah besar. Dunia Internet dan jaringan komputer juga mengenal dan membutuhkan peranan dari petunjuk waktu. Petunjuk waktu tersebut kemudian digunakan dalam banyak aplikasi penting yang membutuhkan parameter waktu sebagai salah satu faktor kerjanya. Misalnya pencatatan waktu sesi bicara seseorang yang menggunakan VoIP, atau pencatatan waktu penggunaan aplikasi Internet banking yang tidak bisa sembarangan, atau pencatatan waktu seseorang melakukan koneksi Internet dan melakukan transaksi e-mail, dan banyak lagi. Perhitungan waktu yang akurat menjadi hal mutlak dalam aplikasi-aplikasi ini jika ingin berjalan dengan baik. Maka itu, dunia Internet dan komputer juga memerlukan petunjuk waktu yang sangat akurat untuk mendukung semua itu. Dunia Internet dan komputer membutuhkan sebuah sistem yang baik dalam menjaga keakuratan waktunya. Selain itu, dunia ini juga membutuhkan mekanisme penyebaran perhitungan waktu yang baik sehingga keakuratan waktu dapat menyebar sampai ke seluruh dunia. Atas dasar kebutuhan tersebutlah dibuat sebuah protokol yang sangat hebat dalam urusan penjagaan waktu. Protokol ini bernama NTP.


Apakah NTP Itu?
Network Time Protocol atau lebih sering disebut dengan istilah NTP merupakan sebuah mekanisme atau protokol yang digunakan untuk melakukan sinkronisasi terhadap penunjuk waktu dalam sebuah sistem komputer dan jaringan. Proses sinkronisasi ini dilakukan di dalam jalur komunikasi data yang biasanya menggunakan protokol komunikasi TCP/IP. Sehingga proses ini sendiri dapat dilihat sebagai proses komunikasi data biasa yang hanya melakukan pertukaran paket-paket data saja. NTP menggunakan port komunikasi UDP nomor 123. Protokol ini memang didesain untuk dapat bekerja dengan baik meskipun media komunikasinya bervariasi, mulai dari yang waktu latensinya tinggi hingga yang rendah, mulai dari media kabel sampai dengan media udara. Protokol ini memungkinkan perangkat-perangkat komputer Anda untuk tetap dapat melakukan sinkronisasi waktu dengan sangat tepat dalam berbagai media tersebut. Biasanya dalam sebuah jaringan, beberapa node dilengkapi dengan fasilitas NTP dengan tujuan untuk membentuk sebuah subnet sinkronisasi. Node-node tersebut kemudian akan saling berkomunikasi dan ber sinkronisasi menyamakan waktu yang direkam mereka. Meskipun ada beberapa node yang akan menjadi master (primary server), protokol NTP tidak membutuhkan mekanisme pemilihan tersebut.

Bagaimana Sejarah NTP?
Perlu Anda ketahui, NTP merupakan sebuah aplikasi yang berbasiskan Internet protocol yang paling lama, paling tua dan paling terdistribusi yang berjalan dalam Internet tanpa berhenti sedikitpun. Sejak ditemukannya pada tahun 1984 hingga saat ini, NTP tetap berjalan di dalam dunia maya Internet untuk menjaga waktunya agar tetap sesuai dengan standar waktu dunia nyata. NTP kali pertama ditemukan oleh seseorang bernama Dave Mills yang berasal dari Universitas Delaware. Sampai saat ini, ia masih melakukan maintenance terhadap server-server NTP yang ada di dunia dengan dibantu oleh beberapa sukarelawan dari seluruh belahan dunia. NTP sampai saat ini sudah tercipta sebanyak empat versi. NTP versi 0 atau cikal-bakal NTP protokol berawal pada tahun 1985 yang hanya bekerja pada operating system bernama Fuzzball dan UNIX. Versi percobaan ini akhirnya di dokumentasikan menjadi NTP versi 1 tiga tahun kemudian dalam RFC-1059. Kemudian pada tahun 1989 muncullah versi 2 dari NTP yang di dalamnya terdapat cukup banyak fasilitas baru seperti NTP Control Message Protocol yang ditujukan untuk mengatur server NTP dan Cryptographic authentication. Pada tahun 1992, versi 3 NTP muncul ke dunia Internet dengan konsep-konsep baru terhadap penanganan error dan analisisnya untuk membuat perhitungan waktu lebih akurat. Namun, versi ini tidak bertahan lama karena setelah dilakukan evaluasi dan revisi yang teliti, dalam tahun yang sama juga, para peneliti merasa membutuhkan sebuah nomor versi baru untuk revisinya tersebut. Maka, jadilah NTP versi 4 yang lebih baik dan lebih banyak fasilitasnya daripada versi 3 nya. Salah satu fasilitasnya adalah adanya versi tambahan yang dibuat sangat ringan yang diberi nama SNTP.

Bagaimana NTP Bekerja?
NTP bekerja dengan menggunakan algoritma Marzullo dengan menggunakan referensi skala waktu UTC. Sebuah jaringan NTP biasanya mendapatkan perhitungan waktunya dari sumber waktu yang terpercaya seperti misalnya radio clock atau atomic clock yang terhubung dengan sebuah time server. Kemudian jaringan NTP ini akan mendistribusikan perhitungan waktu akurat ini ke dalam jaringan lain. Sebuah NTP client akan melakukan sinkronisasi dengan NTP server dalam sebuah interval pooling yang biasanya berkisar antara 64 sampai 1024 detik. Namun, waktu sinkronisasi ini bisa berubah secara dramatis bergantung kepada kondisi dan keadaan jaringan yang akan digunakannya. NTP menggunakan sistem hirarki dalam bekerja dan melakukan sinkronisasinya. Sistem hirarki ini menggunakan istilah Clock stratum atau strata untuk menggambarkan tingkatan-tingkatannya. Di mana clock strata tingkat pertama merupakan perangkat komputer yang melakukan sinkronisasi dengan penghitung waktu eksternal seperti misalnya GPS clock, atomic clock atau radio clock yang sangat akurat. Perangkat berstatus stratum 2 merupakan perangkat yang dikirimi perhitungan waktu oleh stratum 1 secara langsung dengan menggunakan protokol NTP. Begitu seterusnya sistem hirarki berjalan. Sebuah perangkat NTP akan secara otomatis memilih perangkat dengan nilai stratum yang paling kecil untuk mendapatkan update pencatatan waktunya. Dengan demikian, maka tidak perlu melakukan mekanisme pemilihan rumit untuk mendapatkan tree dari NTP yang teratur dalam sebuah jaringan besar. Protokol NTP tetap bekerja dengan baik dalam melakukan sinkronisasi antara client dengan server-nya, meskipun melewati berbagai media. Tampaknya NTP tidak membeda-bedakan media cepat, media lambat, media padat, media kosong, dan sebagainya. Kehebatan NTP ini didapat dari sistem estimasinya yang hebat yang mengandalkan tiga buah variabel kunci yang didapat dari hubungan antara client dan servernya. Ketiga variabel tersebut adalah:

1. Network delay: Sebagai variabel yang didapat dari lamanya delay yang terjadi dalam media penghubungnya. Variabel ini merupakan kunci terpenting dalam mendapatkan sinkronisasi yang akurat.
2. Time packets exchange dispersion: Dispersi atau penyebaran terhadap paket-paket sinkronisasi waktu digunakan untuk mengukur kesalahan maksimum dari perhitungan waktu antara kedua node yang berkomunikasi.
3. Clock offset: Kerugian waktu ini merupakan variabel yang digunakan untuk melakukan koreksi terhadap pencatatan waktu yang ada di client. Koreksi inilah yang akan dibawa dalam sinkronisasi antarkedua perangkat.

NTP memiliki kemampuan untuk menghindari proses sinkronisasi dengan sebuah mesin yang dianggapnya tidak akan bisa akurat. Kemampuan tersebut didasari oleh dua parameter penentu. Pertama, perangkat NTP tidak akan melakukan sinkronisasi dengan sebuah mesin yang tidak melakukan sinkronisasi waktu dirinya sendiri dengan perangkat manapun. Bisa saja waktu yang dimilikinya tidak akurat, bukan? Parameter kedua, NTP akan melakukan proses komparasi terhadap beberapa perhitungan waktu dari beberapa server. Sebuah perangkat NTP yang memiliki pencatatan waktu yang paling berbeda dengan yang lainnya pasti akan dihindari oleh perangkat-perangkat lainnya, meskipun nilai stratumnya paling rendah daripada mesin yang lain. NTP versi 4 biasanya dapat menjaga ketepatan waktu hingga 10 millisecond 1/100 detik dalam media komunikasi publik atau Internet. Di dalam jaringan lokal yang kondisinya ideal, NTP dapat menjaga ketepatan perhitungannya hingga 20 microsecond atau 1/5000 detik. Timestamp atau pencatatan waktu yang digunakan oleh protokol NTP adalah sepanjang 64-bit yang terdiri dari 32-bit pertama untuk perhitungan detik, dan 32-bit berikutnya untuk perhitungan pecahan dari satuan detik. Dari spesifikasi ini, maka NTP akan memiliki skala waktu sebesar 232 detik atau sebesar 136 tahun dengan berdasarkan perhitungan menggunakan teori resolusi 2-32 detik (sekitar 0.233 nanosecond). Meskipun perhitungan waktu NTP akan kembali berulang ketika sudah mencapai 232, implementasinya dibuat sedemikian rupa sehingga waktu NTP tidak akan terganggu dengan program-program penyesuai waktu lainnya.

Lagi pula fasilitas NTP pada perangkat- perangkat komputer juga paling lama digunakan selama beberapa dekade saja, jadi jika berjalan dengan baik maka aplikasi NTP tidak akan mengalami masalah berarti. Protokol NTP dilengkapi juga dengan fitur tambahan yang mendukung mekanisme perhitungan leap second dalam perhitungan waktu dunia. Mekanisme perhitungan leap second adalah sebuah fitur dalam sistem perhitungan waktu dunia yang akan menambahkan satu detik di tahun-tahun tertentu agar perhitungan waktu tersebut dapat sinkron antara perhitungan berdasarkan astronomi dengan perhitungan waktu yang dijaga secara teknis. NTP memiliki fitur yang mendukung adanya kejadian ini. NTP versi 4 memiliki adik yang dapat bekerja dengan lebih sederhana dari padanya. Protokol tersebut diberi nama Simple Network Time Protocol (SNTP). SNTP menjadi lebih sederhana dibandingkan NTP karena protokol ini tidak memerlukan mekanisme untuk melakukan penyimpanan informasi dari proses komunikasinya dengan server- server lainnya. Perangkat yang dilengkapi dengan SNTP juga tidak bisa menjadi server waktu bagi perangkat lain, dengan kata lain SNTP hanyalah sebuah sistem klien dari NTP. Biasanya protokol SNTP ini banyak digunakan pada perangkat tambahan atau pada aplikasi-aplikasi yang tidak membutuhkan keakuratan waktu yang sangat tinggi.

Arsitektur Implementasi NTP
Dalam implementasinya dalam sebuah jaringan, protokol NTP juga harus didesain dengan arsitektur yang ideal agar dapat bekerja dengan baik. Struktur pendesainan fasilitas NTP di dalam jaringan terbagi atas tiga jenis, yaitu:

1. Flat peer structure

Fasilitas NTP dalam struktur Flat peer ini menempatkan semua router maupun server dalam jaringan yang ber-NTP berada dalam tingkat yang sama dan semuanya merupakan peer satu sama lain. Namun, tetap ada beberapa perangkat yang secara langsung juga terkoneksi dengan sumber waktu di luar jaringan tersebut. Struktur ini juga sering disebut dengan istilah NTP mesh. Proses konvergensi waktu ketika ada perangkat baru yang ditambahkan menjadi agak lama dengan dibuatnya konfigurasi NTP mesh ini.

2. Hierarchical structure

Dalam struktur hierarchical ini, konsep hirarki pada teknologi routing di-copy untuk digunakan pada desain struktur dari NTP. Dalam struktur ini, core router atau core server akan selalu memiliki hubungan dengan sumber waktu atau NTP server di luar jaringan Anda. Kemudian time server yang bertugas mendistribusikan waktu ke dalam LAN juga akan bersinkronisasi dengan perangkat core tersebut. Selanjutnya perangkat-perangkat lain di dalam LAN yang membutuhkan waktu akurat akan bersinkronisasi dengan perangkat time server di atasnya, begitulah seterusnya hingga membentuk sebuah pohon hirarki. Struktur hirarki seperti ini memangsangat disukai banyak pengguna karena struktur ini menyediakan konsistensi, stabilitas, dan skalabilitas untuk pengaturan waktu dalam jaringan Anda.

3. Star structure

Dalam arsitektur star structure ini, semua perangkat router dan komputer memiliki hubungan langsung dengan satu atau lebih time server di dalam core. Kemudian time server tersebut menjadi pusat dari jaringan NTP dan biasanya memiliki sumber waktu sendiri.

Mode Asosiasi Perangkat NTP
Dalam berhubungan atau berasosiasi, perangkat NTP juga memiliki banyak sekali model tergantung pada kondisi dan kebutuhannya. Masing-masing model memiliki kekurangan dan kelebihannya sendiri. Berikut ini adalah beberapa model tersebut:

Client server
Sesuai dengan namanya, hubungan antar perangkat NTP ini berjalan dalam gaya client/server mode. Sebuah server bisa disinkronisasikan oleh member-member dari server tersebut, namun member-member tersebut tidak bisa melakukan sinkronisasi terhadap server. Client/server beroperasi dengan menggunakan protokol Remote Procedure Call (RPC). Dalam mendapatkan waktu yang akurat, NTP client akan mengirimkan NTP message ke satu atau lebih server NTP. Kemudian server yang menerimanya akan melakukan modifikasi alamat IP dan nomor port, mengubah beberapa field dalam message tersebut, menghitung ulang checksum, dan mengirimkan kembali pesan tersebut ke si pengirim. Dengan pesan tersebut, client dapat mengetahui waktu yang sedang berjalan di dalam server termasuk area waktunya, kemudian client akan mengubahnya menjadi waktu lokal di mana perangkat tersebut berada dan segera memasangnya pada perhitungan waktu di perangkat tersebut.

Symmetric active/passive
Mode asosiasi symmetric active/passive ini dimaksudkan untuk membuat konfigurasi di mana beberapa gabungan dari peer time server dengan stratum rendah membentuk sebuah kelompok yang bertujuan sebagai back-up satu sama lain. Masing-masing peer ini memiliki sumber waktunya sendiri baik dari radio clock maupun dari time server dengan stratum yang lebih tinggi. Jika suatu saat sumber waktu untuk peer time server ini berhenti beroperasi, maka peer yang lain akan segera bertindak sebagai sumber waktu bagi time server yang kehilangan sumber waktunya dalam kelompok tersebut, begitu seterusnya. Dengan kata lain, semua time server akan bekerja dalam mode push-pull, di mana suatu saat time server yang pernah kehilangan sumber waktu tersebut juga akan memberikan dukungan pada server lainnya. Inilah yang disebut dengan asososiasi symmetric active. Anda juga bisa membuat sebuah peer menjadi symmetric passive dengan tidak memberikan kemampuan untuk menjadi back-up bagi time server lainnya.

Broadcast
Jika kebutuhan akan ketepatan waktu dan reliabilitas tidak terlalu penting, maka Anda dapat menggunakan asosiasi jenis ini untuk keperluan NTP Anda. Client dapat dikonfigurasi untuk menggunakan mode broadcast atau multicast. Server tidak harus dikonfigurasi untuk masing-masing client dan tidak perlu banyak konfigurasi dalam mode ini. Namun untuk dapat menerima broadcast, semua perangkat harus berada dalam segment IP yang sama, karena seperti Anda ketahui, traffic broadcast tidak bisa melewati perangkat router atau IP yang berbeda segment-nya.

Gunakan NTP untuk Aplikasi Real Time
Jika Anda sering bermain dengan aplikasi real time yang sangat berhubungan erat dengan perhitungan waktu seperti misalnya aplikasi perhitungan lamanya komunikasi VoIP, lamanya pengguna melakukan koneksi Internet, game online, dan banyak lagi, perangkat dengan kemampuan NTP patut Anda sediakan. Pasalnya, akurasi waktu tidak akan Anda dapatkan dengan cara yang lebih mudah selain menggunakan NTP. Untuk mendapatkan servis NTP, Anda tinggal menginstal servisnya pada server, atau jika Anda menggunakan perangkat jaringan seperti router yang memang sudah tersedia servis NTP di dalamnya, tinggal diaktifkan saja. Hal pertama yang harus Anda lakukan adalah melakukan sinkronisasi dengan perangkat NTP lainnya yang bernilai stratum rendah. Tujuannya adalah untuk mendapatkan keakuratan yang sangat tinggi. Usahakanlah membangun komunikasi dengan beberapa time server dunia, tujuannya adalah untuk melakukan antisipasi jika server tersebut down atau menjadi kacau perhitungan waktunya. Jika sudah terkonfigurasi sempurnya, dalam beberapa dekade Anda tidak takut lagi akan kehilangan perhitungan waktu yang akurat, tentunya jika perangkat Anda masih layak untuk digunakan. Sumber di sini


1 komentar:

Infopemula mengatakan...

Info yang berguna nih karena kebetulan saya juga belum tau :D
Makasih

Posting Komentar