NTP - Bagaimana server NTP begitu akurat

52

Saya perhatikan bahwa di server saya dan mesin lain jam selalu melayang sehingga harus disinkronkan agar tetap akurat.

Bagaimana jam server NTP tidak melayang dan selalu tetap benar?

Jason
sumber
3
Saya, misalnya, akan secara khusus tertarik pada ringkasan tentang bagaimana protokol NTP memungkinkan dua komputer untuk menyinkronkan waktu mereka melalui jaringan yang tidak dapat diandalkan ...
Xavier Nodet
@XavierNodet Meskipun saya yakin Anda akan melakukannya, bukan itu pertanyaan yang ditanyakan. Saya sarankan Anda mengajukan pertanyaan sendiri (dengan asumsi belum ditanyakan; pastikan untuk mencari dulu). Pertanyaan ini menanyakan bagaimana jam server NTP tidak dapat melayang, sementara jam perangkat keras kontemporer melayang.
CVn
@XavierNodet Sama di sini. Saya suka belajar tentang bagaimana dan mengapa segala sesuatunya berjalan sebagaimana mestinya! :)
Jason

Jawaban:

58

Server NTP mengandalkan jam yang sangat akurat untuk ketepatan waktu. Sumber waktu yang umum untuk server NTP pusat adalah jam atom, atau penerima GPS (ingat bahwa satelit GPS memiliki jam atom di dalamnya). Jam-jam ini didefinisikan sebagai akurat karena mereka memberikan referensi waktu yang sangat tepat. Tidak ada yang ajaib tentang GPS atau jam atom yang membuat mereka memberi tahu Anda jam berapa sekarang; karena bagaimana jam atom bekerja, mereka sangat pandai, setelah pernah diberi tahu jam berapa sekarang, terus memberi tahu waktu yang akurat (karena jam kedua didefinisikan berdasarkan efek atom ). Bahkan, perlu dicatat bahwa waktu GPS berbeda dari UTC yang lebih sering kita lihat. Jam atom ini pada gilirannya disinkronkanWaktu Atom Internasional atau TAI untuk tidak hanya akurat memberitahu berlalunya waktu tetapi juga pada waktu.

Setelah Anda memiliki waktu yang tepat pada satu sistem yang terhubung ke jaringan seperti Internet, ini adalah masalah teknik protokol yang memungkinkan transfer waktu yang tepat antara penghuni melalui jaringan yang tidak dapat diandalkan. Dalam hal ini, strata 2 (atau lebih jauh dari sumber waktu aktual) server NTP tidak berbeda dari sistem desktop Anda yang disinkronkan dengan satu set server NTP.

Pada saat Anda memiliki beberapa waktu yang akurat (seperti yang diperoleh dari server NTP atau di tempat lain) dan mengetahui tingkat kemajuan jam lokal Anda (yang mudah untuk ditentukan), Anda dapat menghitung laju pergeseran jam lokal Anda relatif terhadap "diyakini akurat " lorong Waktu. Setelah dikunci, nilai ini kemudian dapat digunakan untuk terus menyesuaikan jam lokal untuk membuatnya melaporkan nilai yang sangat dekat dengan perjalanan waktu yang akurat, bahkan jika jam real-time lokal itu sendiri sangat tidak akurat; selama jam lokal Anda tidak terlalu tidak menentu, ini akan memungkinkan menjaga waktu yang akurat untuk beberapa waktu bahkan jika sumber waktu hulu Anda menjadi tidak tersedia karena alasan apa pun. Beberapa implementasi klien NTP (mungkin sebagian besar ntpddaemon atau implementasi layanan sistem) melakukan ini, dan yang lainnya (seperti pendamping ntpdntpdateyang hanya mengatur jam sekali) jangan. Ini biasanya disebut sebagai file drift karena menyimpan ukuran clock drift secara persisten, tetapi sebenarnya tidak harus disimpan sebagai file spesifik pada disk.

Dalam NTP, strata 0 menurut definisi merupakan sumber waktu yang akurat. Stratum 1 adalah sistem yang menggunakan sumber waktu stratum 0 sebagai sumber waktunya (dan karenanya sedikit kurang akurat daripada sumber waktu stratum 0). Stratum 2 lagi sedikit kurang akurat daripada stratum 1 karena sedang menyinkronkan waktunya terhadap sumber stratum 1. Dan seterusnya. Dalam praktiknya, kehilangan keakuratan ini sangat kecil sehingga benar-benar dapat diabaikan dalam semua kasus kecuali yang paling ekstrim.

sebuah CVn
sumber
1
Dengan hormat "strata tinggi" tidak berarti angka strata rendah ini harus dihapus dari jawaban. S2 lebih tinggi dari S1. Untuk bukti, lihat penjelasan oleh Prof. Mills (alias Prof NTP) "Subnet NTP beroperasi dengan hierarki level, di mana setiap level diberi nomor yang disebut strata. Stratum 1 (primer) server pada level terendah disinkronkan secara langsung ke layanan waktu nasional ... Server Stratum 2 (sekunder) di tingkat yang lebih tinggi berikutnya disinkronkan ke server strata 1 dan seterusnya. " eecis.udel.edu/~mills/ntp/html/warp.html
dfc
2
Lebih baik tetapi saya tidak berpikir bahwa strata 0 adalah "menurut definisi sumber waktu yang akurat." Stratum 0 berarti itu adalah semacam jam referensi. Hanya karena ini adalah jam S0 tidak berarti itu berfungsi dengan baik. Tingkat stratum adalah tentang jarak dari jam referensi tidak menjamin keakuratan.
dfc
@ pdf Saya menghargai masukan karena memungkinkan saya untuk membuat jawaban lebih baik. Yang mengatakan, saya tidak setuju dengan pernyataan Anda bahwa S0 tidak berarti itu akurat. Mungkin itu dalam arti yang sangat ketat, tetapi jika waktu yang diberikan oleh jam S0 tidak akurat, jam itu tidak berguna dalam praktiknya sebagai sumber S0. Ergo, jam S0 akurat. Atau dengan kata lain, jika Anda memiliki satu set host yang terisolasi, salah satunya terhubung ke sumber waktu S0 dan semua yang lain disinkronkan dengan itu, waktu yang diberikan oleh sumber S0 adalah waktu yang tepat sejauh yang terkait dengan host tersebut. Tidak perlu khawatir tentang TAI kalau begitu.
CVn
10

Dalam ketepatan waktu jaringan, spesifikasi yang memberi tahu Anda bagaimana server mendapatkan sumber waktunya disebut Tingkat Stratum. Semakin rendah level, semakin baik waktu menjaga server itu.

Perangkat level 0 stratum tidak terhubung langsung ke jaringan. Mereka adalah perangkat pencatat waktu yang sebenarnya itu sendiri, dan harus terhubung ke komputer untuk mendapatkan waktu yang sebenarnya. Komputer ini kemudian menjadi server NTP Stratum level 1.

Komputer yang tersambung ke stratum level 1 juga dapat menjadi server waktu, tetapi kemudian akan menjadi stratum level 2. Saat komputer terhubung ke server waktu, semakin rendah level stratum Anda, semakin akurat waktu Anda.

Perangkat level 0 Stratum termasuk jam atom yang mengambil bagian dalam TAI (waktu atom internasional)atau disinkronkan dengan itu, dan penerima sinyal waktu dikirim oleh jam tersebut. Paling umum mereka adalah penerima ketepatan waktu GPS dengan antarmuka yang sesuai yang mencakup sinyal GPS PPS. Sinyal PPS, ketika GPS memiliki kunci yang baik pada beberapa satelit, mengirimkan satu pulsa per detik, dan ujung terdepan dari pulsa itu berada dalam nanodetik dari awal sebenarnya detik itu. Bergantung pada spesifikasi penerima GPS, sinyal PPS mungkin lebih atau kurang akurat. Ini karena setiap satelit GPS memiliki jam atom. Setelah penerima GPS menemukan posisinya sendiri dan lokasi satelit GPS yang didengarnya, ia dapat mengoreksi propagasi RF dan memberi Anda waktu yang hampir seakurat memiliki jam atom tepat di penerima GPS.

Jadi server level 1 Stratum terhubung ke jam atom, atau penerima GPS, dan server NTP terhubung ke mereka. Bahkan menghubungkan ke server level 2 atau 3 dengan penyesuaian yang sering akan memberikan komputer Anda akurasi waktu yang diukur dalam nanodetik. Tetapi jika Anda membutuhkan pengaturan waktu yang lebih baik, sambungkan ke server level satu strata, atau beli penerima GPS ketepatan waktu yang sesuai dan jadilah sumber level strata satu sendiri.

Adam Davis
sumber
4
Ada banyak, banyak orang mengubah komputer Raspberry PI menjadi server Stratum 1 NTP dengan tambahan penerima GPS murah. Anda dapat memiliki server Stratum level 1 lengkap di jaringan Anda dengan harga di bawah $ 80: google.com/search?q=raspberry+pi+ntp+gps+pps
Adam Davis
2
Jadi secara teori, sebuah smartphone dengan penerima GPS (hampir semuanya sekarang) bisa menjadi perangkat strata 0/1?
Bob
1
Jika ponsel menggunakan output pps dari penerima GPS, ya. Perhatikan bahwa ponsel CDMA juga harus menggunakan timing yang tepat, sehingga chipset CDMA juga bisa menjadi sumber level 0 strata untuk prosesor ponsel. Modul gps oem dan raspberry pi akan lebih murah.
Adam Davis
2
Raspberry Pi tidak membuat server NTP yang hebat, karena ia menggunakan adaptor jaringan yang agak rapuh dan berkualitas rendah (chip LAN9512).
duskwuff
1
@duskwuff Ya, tetapi ini lebih baik daripada banyak server level 2 Stratum melalui internet, dan dengan pengaturan NTP yang dikonfigurasi dengan benar pada server dan klien, jitter dan offset yang diperkenalkan oleh chip LAN berbasis USB berkualitas rendah dapat diatasi. Untuk biaya, sulit dikalahkan, tetapi belanjakan sedikit lebih banyak dan Anda dapat memperbaiki masalah kecil ini.
Adam Davis
3

Semua jam melayang sampai batas tertentu, itu tergantung pada sumber sinyal waktu dan seberapa baik dilacak. Dalam PC, ini adalah HPET hari ini, tetapi PC dapat kehilangan jejak berapa banyak kutu telah berlalu jika kelebihan beban.

Server NTP yang dibicarakan dengan mesin Anda kemungkinan besar akan kehilangan waktu juga, namun mereka mengalihkan waktu mereka kembali ke sumber yang lebih baik.

Pada akhirnya, sumber yang lebih baik adalah jam yang sangat akurat seperti jam atom. Anda dapat menganggap NTP sebagai jaringan mesin, masing-masing akan memiliki sejumlah sumber yang diandalkannya untuk waktu dan menyimpang waktunya sendiri untuk apa yang dianggap lebih akurat.

Ini diatur oleh sumber yang menyatakan strata-nya. Jam atom atau GPS adalah strata 0, dan otoritas tentang jam berapa. Setiap lapisan keluar dari itu adalah strata berikutnya - strata 1, dan akan memeriksa sejumlah sumber strata 0 bersama dengan rekan-rekan di tingkat yang sama, untuk kewarasan memeriksa sumber waktu.

Anda mungkin berbicara dengan sumber strata 2 atau 3 waktu.

Paul
sumber
1

Apa yang orang lain tulis adalah benar: server Stratum 1 mendapatkan waktunya dari perangkat Stratum 0. Saya tidak tahu di mana interval waktu itu terjadi, tetapi saya pikir mereka cukup akurat.

Server Stratum n dengan n> 1 mendapatkan waktunya melalui NTP dari server Stratum n-1. Itu berarti disinkronkan ke sana secara berkala. Setelah memulai layanan NTP, sinkronisasi terjadi dalam interval yang cukup singkat, dan seiring waktu, interval mulai meningkat. Akhirnya, intervalnya sebesar 1024 detik, sekitar 17 menit.

Yang belum ditanggapi adalah pertanyaan apa yang terjadi di sela waktu itu? Nah, ada fasilitas bernama drift file . Ini membantu NTP untuk memantau penyimpangan antara jam lokal dan jam referensi. Frekuensi jam lokal kemudian disesuaikan menurut penyimpangan yang terdeteksi, sehingga waktunya juga akurat di antara jajak pendapat server.

Implementasi NTP lain mungkin menggunakan fasilitas lain, tetapi satu hal yang umum: kebutuhan dan kemampuan untuk menyesuaikan frekuensi jam.

glglgl
sumber
Namun saya berpendapat bahwa file drift adalah detail implementasi dari implementasi perangkat lunak tertentu, dan tidak terkait dengan bagaimana jam perangkat keras server NTP dapat begitu akurat.
CVn