Rabu, 07 Agustus 2024

NTP (Network Time Protocol)

 

Network Time Protocol (NTP) adalah sebuah protokol yang digunakan untuk pengsinkronan waktu di dalam sebuah jaringan bisa pada jaringan LAN (Local Area Network) maupun pada jaringan internet dan untuk sinkronisasi jam-jam sistem komputer di atas paket-switching, variabel-latency jaringan data. Proses sinkronisasi ini dilakukan didalam jalur komunikasi data yang biasanya menggunakan protokol komunikasi TCP/IP. Sehingga proses ini sendiri dapat dilihat sebagai proses komunikasi data yang hanya melakukan pertukaran paket-paket data saja.

 

Sejarah

 NTP (Network Time Protocol) adalah protokol yang digunakan untuk sinkronisasi waktu di jaringan komputer, yang pertama kali dikembangkan oleh Dave Mills dari Universitas Delaware pada tahun 1984. Pada tahun 1979, teknologi sinkronisasi waktu awal dipamerkan dalam konferensi komputer di New York, dan di tahun 1981, teknologi ini didokumentasikan dalam IEN 173 dan kemudian dikembangkan menjadi protokol NTP.

Perkembangan Versi NTP:

  1. NTPv0 (1985): Versi awal yang diimplementasikan pada Unix dan Fuzzball, dengan akurasi sekitar 100 milidetik.
  2. NTPv1 (1988): Didefinisikan dalam RFC yang lebih lengkap dengan mode client-server dan peer-to-peer.
  3. NTPv2 (1989): Diperkenalkan manajemen protokol dan skema otentikasi kriptografi. Desain ini menyertakan algoritma Marzullo untuk mengatasi kritik pada arsitektur sebelumnya.
  4. NTPv3 (1992): Didefinisikan dalam RFC 1305, versi ini memperkenalkan mode broadcast dan penanganan error yang lebih akurat.
  5. NTPv4 (2010): Spesifikasi diusulkan dalam RFC 5905, menghadirkan peningkatan fitur dan algoritma yang lebih baik. Versi ini juga menambahkan SNTP (Simple Network Time Protocol) sebagai versi ringan dari NTP.

Selama perkembangannya, NTP terus disempurnakan, dan setelah Dave Mills pensiun, proyek ini dikelola sebagai open-source di bawah pimpinan Harlan Stenn.

 

 

Prinsip kerja NTP

 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.

 

 

 

Cara Kerja NTP

NTP (Network Time Protocol) bekerja dengan cara menyinkronkan waktu di berbagai perangkat dalam sebuah jaringan. Proses sinkronisasi ini melibatkan beberapa langkah:

  1. Klien dan Server:

    • Klien NTP: Perangkat yang ingin menyinkronkan waktunya (misalnya, komputer, server, perangkat jaringan).
    • Server NTP: Perangkat yang bertindak sebagai sumber waktu akurat, biasanya terhubung langsung dengan sumber waktu eksternal seperti jam atom atau GPS.
  2. Sinkronisasi Waktu:

    • Klien NTP secara berkala (biasanya setiap beberapa menit hingga beberapa jam) akan mengirimkan permintaan waktu ke server NTP.
    • Server NTP akan merespons dengan mengirimkan informasi waktu yang sangat akurat.
    • Klien NTP akan membandingkan waktu yang diterimanya dengan waktu lokalnya dan melakukan penyesuaian jika ada perbedaan.
  3. Hierarki Stratum:

    • Stratum adalah tingkat atau lapisan dalam hierarki NTP. Stratum menunjukkan jarak suatu perangkat dari sumber waktu eksternal.
    • Stratum 1: Perangkat yang paling akurat karena terhubung langsung dengan sumber waktu eksternal (jam atom, GPS).
    • Stratum 2: Perangkat yang tersinkronisasi dengan perangkat stratum 1.
    • Stratum 3, 4, dst: Perangkat yang tersinkronisasi dengan perangkat stratum yang lebih rendah.
    • Stratum 16: Menunjukkan perangkat yang tidak tersinkronisasi atau memiliki akurasi yang sangat rendah.
  4. Pemilihan Waktu:

    • NTP menggunakan algoritma yang canggih untuk memilih waktu yang paling akurat. Algoritma ini mempertimbangkan beberapa faktor, seperti:
      • Jarak: Perangkat yang lebih dekat dengan sumber waktu eksternal umumnya lebih akurat.
      • Delay jaringan: Keterlambatan dalam pengiriman paket data dapat mempengaruhi akurasi waktu.
      • Variasi waktu: Perbedaan waktu antara beberapa server NTP dapat digunakan untuk memperkirakan akurasi masing-masing server.
    • NTP akan menghindari perangkat dengan perbedaan waktu yang signifikan atau perangkat yang dianggap tidak stabil.

 

Contoh Penggunaan NTP:

  • Server web: Mencatat waktu akses pengguna dengan tepat.
  • Sistem keamanan jaringan: Merekam waktu serangan atau intrusi.
  • Sistem GPS: Menentukan posisi dengan akurat berdasarkan waktu sinyal yang diterima dari satelit.

 

 

 

Komponen Utama NTP

  1. Klien NTP (NTP Client):

    • Perangkat yang ingin menyinkronkan waktunya.
    • Secara berkala mengirimkan permintaan waktu (time request) ke server NTP.
    • Menerima respons waktu dari server dan melakukan penyesuaian waktu pada perangkatnya.
  2. Server NTP (NTP Server):

    • Perangkat yang bertindak sebagai sumber waktu akurat.
    • Terhubung langsung ke sumber waktu eksternal yang sangat presisi seperti jam atom atau sinyal GPS.
    • Menerima permintaan waktu dari klien dan memberikan respons waktu yang akurat.
    • Biasanya memiliki stratum yang lebih rendah dibandingkan klien (lebih dekat ke sumber waktu).
  3. Paket NTP:

    • Format data yang digunakan untuk komunikasi antara klien dan server NTP.
    • Mengandung informasi seperti:
      • Timestamp (cap waktu) saat paket dikirim dan diterima oleh klien dan server.
      • Identifikasi klien dan server.
      • Mode operasi (client, server, atau keduanya).
      • Informasi error atau peringatan.
  4. Algoritma:

    • NTP menggunakan algoritma yang kompleks untuk:
      • Memilih server NTP yang paling akurat.
      • Menghitung offset waktu (perbedaan antara waktu klien dan server).
      • Memperkirakan delay jaringan.
      • Menyesuaikan waktu klien.
      • Contoh algoritma yang umum digunakan adalah Marzullo's Algorithm.
  5. Hierarki Stratum:

    • Stratum adalah tingkat atau lapisan dalam hierarki NTP.
    • Menunjukkan jarak suatu perangkat dari sumber waktu eksternal.
    • Stratum 1: Perangkat yang langsung terhubung dengan sumber waktu eksternal.
    • Stratum 2: Perangkat yang tersinkronisasi dengan stratum 1, dan seterusnya.
    • Stratum 16: Menandakan perangkat tidak tersinkronisasi.

 

 

 

Fungsi Utama NTP

  • Sinkronisasi Waktu: Menjamin semua perangkat dalam jaringan memiliki waktu yang sama.
  • Akurasi Tinggi: Mencapai akurasi waktu yang sangat tinggi, terutama untuk perangkat dengan stratum yang rendah.
  • Keandalan: Sistem yang redundan dan algoritma yang kuat membuat NTP sangat andal.
  • Fleksibilitas: Dapat bekerja pada berbagai jenis jaringan dan sistem operasi.

Manfaat Penggunaan NTP

  • Logging dan Auditing: Mencatat waktu kejadian dengan akurat untuk keperluan analisis dan investigasi.
  • Sistem Keamanan: Membantu dalam autentikasi dan otorisasi pengguna.
  • Aplikasi Real-time: Menjamin sinkronisasi waktu untuk aplikasi yang sensitif terhadap waktu, seperti sistem perdagangan saham, jaringan telekomunikasi, dan sistem kontrol industri.

 

 

NTP menggunakan beberapa algoritma untuk memastikan sinkronisasi waktu yang akurat dan stabil di seluruh jaringan. Berikut adalah beberapa algoritma utama yang digunakan dalam NTP:

1. Algoritma Marzullo

  • Tujuan: Digunakan untuk menentukan waktu yang paling akurat dengan memilih sumber waktu terbaik dari beberapa referensi yang tersedia.
  • Cara Kerja:
    • Algoritma ini mengambil beberapa sampel waktu dari berbagai server.
    • Menggunakan teknik interval intersection untuk menemukan waktu yang memiliki tumpang tindih paling banyak antar referensi.
    • Sumber waktu yang memiliki interval yang tidak cocok (perbedaan signifikan) akan diabaikan.

2. Algoritma Pemilihan Jam (Clock Selection)

  • Tujuan: Memilih server terbaik berdasarkan respons dari beberapa server yang terhubung.
  • Cara Kerja:
    • NTP mengambil waktu dari berbagai server dan membandingkannya.
    • Menggunakan algoritma pemilihan untuk memastikan bahwa server dengan perbedaan waktu signifikan akan disaring dan diabaikan.
    • Menentukan sumber waktu yang paling dapat diandalkan untuk digunakan sebagai referensi sinkronisasi.

3. Algoritma Koreksi Jam (Clock Discipline)

  • Tujuan: Menyesuaikan jam internal komputer agar sinkron dengan waktu yang diterima dari NTP server.
  • Cara Kerja:
    • Algoritma ini memperhalus perubahan pada jam internal agar perubahan tidak terjadi secara mendadak atau "loncat."
    • Menggunakan teknik PLL (Phase-Locked Loop) dan FLL (Frequency-Locked Loop) untuk menyesuaikan fase dan frekuensi jam internal, sehingga perubahan jam menjadi bertahap dan stabil.

4. Timestamp Filtering Algorithm

  • Tujuan: Menghilangkan sampel waktu yang memiliki jitter atau penundaan yang signifikan.
  • Cara Kerja:
    • NTP mengumpulkan beberapa sampel waktu dari satu atau lebih server.
    • Menggunakan algoritma penyaring untuk memfilter sampel dengan delay tinggi atau variabilitas besar.
    • Hanya menggunakan sampel waktu yang stabil dan akurat untuk sinkronisasi.

5. Algoritma Konsensus dan Outlier Detection

  • Tujuan: Memastikan bahwa sumber waktu tidak memberikan data yang salah (misinformasi).
  • Cara Kerja:
    • Melibatkan beberapa server NTP dalam proses sinkronisasi waktu.
    • Algoritma deteksi outlier akan mengidentifikasi server yang memberikan waktu yang tidak sesuai dengan mayoritas dan menyingkirkannya dari proses sinkronisasi.
    • Menggunakan teknik voting dan konsensus untuk menentukan waktu yang paling akurat.

6. Algoritma Mitigasi Delay

  • Tujuan: Mengatasi masalah delay (penundaan) yang mungkin terjadi pada jaringan.
  • Cara Kerja:
    • Algoritma ini memperhitungkan delay dan offset dari pesan NTP yang dikirim antara klien dan server.
    • Menggunakan teknik round-trip delay calculation untuk memperkirakan dan mengurangi efek delay jaringan, sehingga waktu sinkronisasi menjadi lebih akurat.

 

Dengan kombinasi algoritma-algoritma ini, NTP mampu menjaga ketepatan waktu yang tinggi, baik di jaringan lokal maupun di internet. Algoritma-algoritma ini memastikan bahwa sistem tetap stabil, akurat, dan mampu mengatasi berbagai kondisi jaringan.

 

 

 

Keuntungan Menggunakan NTP

1. Konsistensi Waktu

  • Log Aktivitas: Memastikan urutan waktu kejadian dalam log tercatat dengan benar, memudahkan analisis dan debugging.
  • Penjadwalan Tugas: Menjamin tugas-tugas terjadwal berjalan pada waktu yang tepat, meningkatkan efisiensi sistem.
  • Sinkronisasi Data: Memastikan data yang didistribusikan di berbagai perangkat memiliki cap waktu yang konsisten, mencegah konflik data.
  • Audit Trail: Memberikan bukti waktu yang akurat untuk keperluan audit dan forensik digital.

2. Akurasi

  • Pengukuran Kinerja: Memungkinkan pengukuran kinerja sistem dengan akurat, seperti waktu respons server, durasi proses, dan lain-lain.
  • Aplikasi Real-time: Sangat penting untuk aplikasi yang membutuhkan sinkronisasi waktu yang sangat presisi, seperti sistem perdagangan saham, jaringan telekomunikasi, dan sistem kontrol industri.
  • Koordinasi Global: Memungkinkan koordinasi aktivitas yang melibatkan banyak perangkat di berbagai lokasi geografis.

3. Efisiensi Jaringan

  • Hierarki Stratum: Desain hierarki memungkinkan sinkronisasi waktu yang efisien tanpa membebani sumber daya jaringan. Perangkat dengan stratum yang lebih tinggi dapat melayani banyak klien, mengurangi beban pada server utama.
  • Algoritma Cerdas: NTP menggunakan algoritma yang canggih untuk memilih server yang paling akurat dan meminimalkan lalu lintas jaringan.

Keuntungan Tambahan

  • Keamanan: NTP dapat digunakan untuk meningkatkan keamanan jaringan dengan memverifikasi identitas server waktu dan melindungi terhadap serangan spoofing waktu.
  • Ketersediaan: NTP dirancang untuk menjadi sangat tersedia, bahkan dalam kondisi jaringan yang tidak stabil.
  • Fleksibilitas: NTP dapat bekerja pada berbagai jenis jaringan dan sistem operasi.
  • Standarisasi: NTP adalah protokol standar yang diakui secara luas, sehingga mudah diimplementasikan dan diintegrasikan dengan sistem yang ada.

Contoh Penggunaan NTP dalam Dunia Nyata

  • Server Web: Memastikan log akses tercatat dengan waktu yang akurat untuk analisis lalu lintas dan pemecahan masalah.
  • Sistem Keamanan: Merekam waktu kejadian keamanan seperti percobaan login gagal atau deteksi intrusi.
  • Jaringan Telekomunikasi: Menjamin sinkronisasi waktu untuk berbagai layanan seperti VoIP dan sinkronisasi jaringan seluler.
  • Sistem Keuangan: Melacak transaksi dengan waktu yang tepat untuk keperluan audit dan regulasi.
  • Sistem GPS: Menentukan posisi dengan akurat berdasarkan waktu sinyal yang diterima dari satelit.

Kesimpulan

NTP adalah protokol yang sangat penting untuk menjaga sinkronisasi waktu dalam jaringan komputer. Keuntungan yang ditawarkan oleh NTP sangat luas, mulai dari meningkatkan efisiensi sistem hingga meningkatkan keamanan. Dengan menggunakan NTP, organisasi dapat memastikan bahwa data mereka akurat, konsisten, dan dapat diandalkan.

 

 

 

 

Referensi

https://learn.microsoft.com/id-id/windows-server/networking/windows-time-service/how-the-windows-time-service-works

https://id.eitca.org/cybersecurity/eitc-is-cnf-computer-networking-fundamentals/routing-eitc-is-cnf-computer-networking-fundamentals/time-in-networks/examination-review-time-in-networks/what-are-the-advantages-of-using-network-time-protocol-ntp-over-manually-configuring-time-settings-on-cisco-routers-and-switches/

https://www.idn.id/ntp-server-pada-ubuntu-20-04/#:~:text=Umumnya%20sumber%20waktu%20yang%20ada,yang%20terhubung%20dengan%20time%20server.

https://id.wikipedia.org/wiki/Network_Time_Protocol

 

 

0 komentar:

Posting Komentar