Network Time Protocol (NTP) merupakan protokol yang digunakan untuk melakukan sinkronisasi waktu pada sistem komputer dan jaringan. Proses sinkronisasi dilakukan di dalam jalur komunikasi data menggunakan protocol TCP/IP dan menggunakan port komunikasi User Datagram Protocol (UDP) 123.
Sedangkan NTP Server adalah sebuah server yang melakukan sinkronisasi waktu terhadap sumber waktu yang akurat dan mentransmisikan paket informasi waktu tersebut kepada komputer client.
Fungsi NTP
Sesuai dengan pengertian NTP, maka fungsi dari NTP adalah mengatur dan menyesuaikan (sinkronisasi) waktu antara komputer server dengan komputer client dalam jaringan.
Mengapa waktu harus di sinkronkan :
- Konsistensi waktu yang penting untuk beberapa aplikasi: Beberapa aplikasi, seperti protokol keamanan SSL/TLS, membutuhkan konsistensi waktu untuk memastikan keamanan transaksi. Jika waktu di perangkat berbeda, maka proses autentikasi dan enkripsi data dapat gagal.
- Mengurangi kesalahan logging: Waktu yang tidak sinkron dapat menyebabkan kesalahan dalam proses logging, yang dapat memengaruhi kemampuan untuk melakukan audit atau pemantauan keamanan.
- Sinkronisasi waktu yang penting dalam jaringan multi-perangkat: Jaringan dengan banyak perangkat, seperti data center atau cloud, memerlukan waktu yang sinkron agar proses sinkronisasi data dan transaksi yang terjadi antar perangkat dapat dilakukan secara efektif.
- Menghindari kerentanan keamanan: Beberapa serangan keamanan bergantung pada waktu yang tidak sinkron. Misalnya, serangan replay, di mana serangan tersebut merekam dan memainkan kembali data yang dikirim di masa lalu, dapat dicegah dengan waktu yang sinkron.
Dengan memanfaatkan NTP, waktu di seluruh jaringan dapat disinkronkan secara otomatis dan terus-menerus, sehingga mengurangi kemungkinan kesalahan dan kerentanan keamanan.
Cara Kerja NTP :
NTP bekerja dengan menggunaka algoritma Marzullo dengan referensi skala waktu UTC. Biasanya jaringan NTP mendapat perhitungan waktu dari sumber terpercaya seperti Radio Clock atau Atomic Clock yang terhubung dengan sebuah time server dan akan didistribusikan ke dalam jaringan lain.
Sebuah NTP Client akan melakukan sinkronisasi dengan NTP Server dalam sebuah interval pooling yang berkisar antara 64 sampai 1024 detik. Waktu sinkronisasi bergantung kepada kondisi dan keadaan jaringan yang akan digunakannya.