Sunucularımda ve diğer makinelerde saatin her zaman kaydığını, bu yüzden doğru kalması için senkronize olması gerektiğini fark ettim.
NTP sunucusu saatler nasıl kaymaz ve her zaman doğru kalır?
Sunucularımda ve diğer makinelerde saatin her zaman kaydığını, bu yüzden doğru kalması için senkronize olması gerektiğini fark ettim.
NTP sunucusu saatler nasıl kaymaz ve her zaman doğru kalır?
Yanıtlar:
NTP sunucuları hassas zaman tutma için son derece hassas saatlere güveniyor. Merkezi NTP sunucuları için ortak bir zaman kaynağı, atom saatleri veya GPS alıcılarıdır (GPS uydularının üzerinde atomik saatler bulunduğunu unutmayın). Bu saatler oldukça kesin bir zaman referansı sağladıkları için doğru olarak tanımlanmıştır. GPS ya da atomik saatler hakkında sihirli bir şey yok, tam olarak saati size söylemelerini sağlıyor; Atomik saatlerin nasıl çalıştığından dolayı, sadece bir kez saatin kaç olduğu söylendikten sonra doğru zamanı söylemeye devam etmeleri ( ikincisi atomik etkiler açısından tanımlandığından ). Aslında, GPS zamanının UTC'den farklı olduğunu görmeye değer olduğumuzu belirtmekte fayda var . Bu atomik saatler sırayla senkronize edilir.Uluslararası Atom Saati veya TAI sadece zamanın geçişini değil, aynı zamanda zamanı da doğru bir şekilde anlatmak için .
İnternet gibi bir ağa bağlı bir sistemde kesin bir zamana sahip olduğunuzda, güvenilir olmayan bir ağ üzerinden ana bilgisayarlar arasında kesin zamanların aktarılmasını sağlayan protokol mühendisliği meselesidir. Bu bağlamda, bir tabaka 2 (veya gerçek zaman kaynağından daha uzakta olan), NTP sunucusu, masaüstü sisteminizden bir dizi NTP sunucusu ile senkronize edilmesinden farklı değildir.
Birkaç kesin zamana sahip olduğunuzda (NTP sunucularından veya başka bir yerden edindiğiniz gibi) ve yerel saatinizin ilerleme oranını (ki bu kolayca belirlenebilir) bilirseniz, yerel saatinizin kayma hızını "doğru olduğuna inanılan" değerine göre hesaplayabilirsiniz. " zaman geçiti. Kilitlendikten sonra, yerel gerçek zamanlı saatin kendisi çok yanlış olsa bile, değerleri doğru zaman geçidine çok yakın bir şekilde raporlamak için yerel saati sürekli ayarlamak için kullanılabilir; Yerel saatiniz çok düzensiz olmadığı sürece , bu, yukarı akış zaman kaynağınız herhangi bir nedenle kullanılamıyor olsa bile, bir süre doğru zamanın korunmasına izin vermelidir. Bazı NTP istemcisi uygulamaları (muhtemelen çoğu ntpd
daemon veya sistem hizmeti uygulamaları) bunu yapar ve diğerleri (ntpd'nin arkadaşı gibi)ntpdate
bu sadece saati bir kez ayarlar). Bu genellikle bir sürüklenme dosyası olarak adlandırılır, çünkü sürekli olarak saat kayması ölçüsünü saklar, ancak kesin olarak konuşursak, diskte belirli bir dosya olarak depolanması gerekmez.
NTP'de, stratum 0, tanım olarak kesin bir zaman kaynağıdır. Stratum 1, zaman kaynağı olarak bir stratum 0 zaman kaynağı kullanan bir sistemdir (ve böylece stratum 0 zaman kaynağından biraz daha az doğrudur). Stratum 2 tekrar stratum 1'den biraz daha az doğrudur çünkü zamanını stratum 1 kaynağına karşı senkronize eder. Ve bunun gibi. Uygulamada, bu doğruluk kaybı o kadar küçüktür ki, en uç vakalar dışında hepsinde tamamen ihmal edilebilir düzeydedir.
Ağ zaman işleyişinde bir sunucunun zaman kaynağını nasıl elde ettiğini gösteren şartnameye Stratum Seviyesi denir. Seviye ne kadar düşük olursa, o sunucunun kullanım süresi o kadar iyi olur.
Stratum seviye 0 cihazları doğrudan ağa bağlı değil. Bunlar gerçek zaman tutma cihazının kendisidir ve gerçek zamanı elde etmek için bir bilgisayara bağlanmalıdır. Bu bilgisayar daha sonra Stratum seviye 1 NTP sunucusu olur.
Bir Stratum seviye 1'e bağlanan bir bilgisayar da bir zaman sunucusu haline gelebilir, ancak o zaman bir katman seviyesi 2 olur. Bilgisayarlar zaman sunucularına bağlandıkça, katman seviyeniz ne kadar düşük olursa, zaman ayırmanız o kadar doğru olur.
Stratum seviye 0 cihazları TAI'da yer alan atomik saatleri içerir (uluslararası atomik zaman)veya buna senkronize edilmişse ve böyle bir saat tarafından gönderilen zaman sinyali alıcılarını içerir. En yaygın olarak bunlar, GPS PPS sinyalini içeren uygun bir arayüze sahip GPS zaman tutma alıcılarıdır. GPS, birkaç uyduda iyi bir kilitlendiğinde, saniyede bir darbe gönderir ve bu darbenin ön kenarı, o saniyenin gerçek başlangıcının nanosaniye cinsindendir. GPS alıcısının özelliklerine bağlı olarak, PPS sinyali az çok doğru olabilir. Bunun sebebi, her GPS uydusunun bir atomik saate sahip olmasıdır. GPS alıcısı kendi konumunu ve dinlediği GPS uydularının yerini bulduktan sonra, RF yayılımını düzeltebilir ve size GPS alıcısında tam bir atom saatinin olduğu kadar hassas bir zaman verebilir.
Böylece Stratum seviye 1 sunucuları atomik saatlere, GPS alıcılarına ve NTP sunucuları bunlara bağlanır. Bir stratum seviye 2 veya 3 sunucusuna sık ayarlamalar yapmak bile bağlandığında, bilgisayarınızın nanosaniye cinsinden ölçülen zamanlama doğruluğunu sağlar. Ancak daha iyi zamanlamaya ihtiyacınız varsa, birinci seviye bir sunucuya bağlanın veya uygun bir zaman tutma GPS alıcısı satın alın ve birinci seviye bir kaynak olun.
Tüm saatler bir dereceye kadar kaymaktadır, bu zamanlama sinyalinin kaynağına ve ne kadar iyi izlendiğine bağlıdır. Bir bilgisayarda, bu günlerde bu HPET'dir, ancak bilgisayar aşırı yüklendiğinde kaç tane kenenin geçtiğini izleyebilir.
Makinenizin konuştuğu NTP sunucuları da muhtemelen zaman kaybediyor, ancak zamanlarını daha iyi bir kaynağa sürüklüyorlar.
Sonuçta, daha iyi kaynaklar atomik saatler gibi oldukça hassas saatlerdir. NTP'yi bir makine ağı olarak düşünebilirsiniz, her biri zamana dayanan bir çok kaynağa sahip olacak ve daha doğru olduğu düşünülen şeye kendi zamanını çarpıtacaktır.
Bu, katmanını bildiren bir kaynak tarafından yönetilir. Bir atom veya GPS saati stratum 0'dır ve saatin ne olduğuna dair otoritedir. Bundan her katman bir sonraki katmandır - katman 1 ve zaman kaynaklarını kontrol etmek için, aynı düzeyde akranlarla birlikte bir dizi katman 0 kaynağını kontrol eder.
Muhtemelen bir tabaka 2 veya 3 zaman kaynağı ile konuşuyorsunuz.
Diğerlerinin yazdıkları doğru: Bir Stratum 1 sunucusu zamanını Stratum 0 cihazından alıyor. Hangi zaman aralıklarında oluyor bilmiyorum, ama orada oldukça doğru olduklarını düşünüyorum.
N> 1 olan bir Stratum n sunucusu, zamanını bir Stratum n-1 sunucusundan NTP üzerinden alır. Bu düzenli aralıklarla senkronize anlamına gelir. NTP servisini başlattıktan sonra senkronizasyon oldukça kısa aralıklarla gerçekleşir ve zamanla aralık artmaya başlar. Sonunda, aralık 1024 s, yaklaşık 17 dakika kadardır.
Ele alınmamış olan, o zaman arasında neler olduğu sorusudur? Drift dosyası adı verilen bir tesis var . NTP'nin yerel saat ile referans saat arasındaki herhangi bir kaymayı izlemesine yardımcı olur. Yerel saatin frekansı daha sonra tespit edilen sapmaya göre ayarlanır, böylelikle sunucu anketleri arasındaki zaman da doğru olur.
Diğer NTP uygulamaları başka tesisleri kullanabilir, ancak bir şey yaygındır: Saatin frekansını ayarlama ihtiyacı ve yeteneği.