Tolong jelaskan mengenai Prinsip kerja dari Network Time Protocol

NTP bekerja dengan menggunakan algoritma Marzullo dengan menggunakan referensi skala waktu UTC. Sebuah jaringan NTP biasanya mendapatkan perhitungan waktunya dari sumber waktu yang tepercaya 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 biasa berubah secara dramatis bergantung kepada kondisi dan keadaan jaringan yang akan digunakannya.

NTP menggunakan sistem hierarki dalam bekerja dan melakukan sinkronisasinya. Sistem hierarki 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 hierarki berjalan. Batas atas untuk strata adalah 15; stratum 16 digunakan untuk menunjukkan bahwa suatu perangkat tidak tersinkronisasi.

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 2/32 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 2 32, implementasinya dibuat sedemikian rupa sehingga waktu NTP tidak akan terganggu dengan programprogram penyesuai waktu lainnya. Lagi pula fasilitas NTP pada perangkat-perangkat komputer juga paling lama digunakan selama beberapa decade saja, jadi jika berjalan dengan baik maka aplikasi NTP tidak akan mengalami masalah berarti.