NTP'ye Giriş

NTP Temel Kavramlar

NTP'ye Giriş - Ağ Zaman Protokolü

Network Time Protocol (NTP), bir ağ üzerindeki bilgisayar saatlerini senkronize etmek için kullanılan standart bir İnternet Protokolü (IP)'dür.

Tarihçe

NTP, 1985 yılında Delaware Üniversitesi'nde, internet üzerindeki bilgisayarların zamanlarını senkronize etme ihtiyacının artması nedeniyle geliştirilmiştir. NTP, en eski internet protokollerinden biri olmasına rağmen, günümüzde halen veri ağlarında bilgisayarların senkronizasyonu için standart yöntem olarak kabul edilmektedir.

Sürekli geliştirilen NTP’nin yıllar içinde birçok sürümü yayınlanmıştır. En yaygın kullanılan sürümler 3 ve 4’tür. En yeni sürüm olan NTPv4, önceki sürümle tamamen uyumludur. Gelişimi ve yaygın kullanımı nedeniyle uzun yıllar daha kullanılmaya devam edecektir.

Senkronize Ağ Saatlerinin Önemi

Dağıtılmış bilgisayar sistemleri, süreçlerin doğru sırayla yürütülmesi ve olayların doğru şekilde kaydedilmesi için koordineli saatlere ihtiyaç duyar. Zaman, bağımsız sistemlerin süreçlerini koordine edebilmesi için tek referanstır.

Bazı yasal düzenlemeler, belirli uygulamalar için bilgisayar sistemlerinin doğru bir şekilde senkronize edilmesini zorunlu kılar. Örneğin, finansal ticaret sistemlerinde iş saatlerinin çok hassas bir şekilde senkronize edilmesi yasal bir gerekliliktir. Bu nedenle modern bilgisayar sistemlerinde zaman koordinasyonu, operasyonel ve hukuki açıdan büyük önem taşır.

Desteklenen Platformlar

NTP başlangıçta Linux ve UNIX benzeri sistemler için geliştirilmiştir. Standart NTP dağıtımı, Linux ana bilgisayarında derlenmek üzere kaynak kod olarak indirilebilir. Kaynak kodu, NTP proje web sitesinde mevcuttur.

NTP, Windows, Linux ve macOS dahil olmak üzere çoğu platformda uygulanmaktadır. Birçok Linux işletim sistemi, NTP’nin önceden derlenmiş sürümlerini içerir ve çoğu sistemde varsayılan olarak yüklenmiştir. Son yıllarda, standart dağıtım Windows işletim sistemlerine de taşınmıştır.

NTP Nasıl Çalışır?

NTP, çeşitli şekillerde çalışabilir. En yaygın yapılandırma, istemci-sunucu modunda çalışmasıdır. Bu modda, istemci bir zaman isteği paketi gönderir ve sunucu, zaman damgası içeren bir paket ile yanıt verir. Her pakette, paket gönderme, alma ve iletim zaman damgaları bulunur, böylece ağ yayılma gecikmeleri hesaplanabilir. Bu yöntem, istemcinin sunucunun saatine mümkün olduğunca yakın bir şekilde senkronize olmasını sağlar.

Tüm NTP zaman damgası paketleri, UTC saatini kullanır. UTC, dünya genelinde kabul edilen bir zaman standardıdır ve GMT’ye (Greenwich Mean Time) yakındır. UTC dünya çapında değişmez ve her yerde aynıdır. NTP, bilgisayar saatlerini UTC’ye ayarlar; yerel saat dilimi farkları ve yaz saati uygulamaları işletim sistemi tarafından yönetilir.

NTP Hiyerarşisi ve Stratum Seviyeleri

NTP, hiyerarşik bir mimari uygular. Bu hiyerarşideki her seviye, stratum olarak adlandırılır. En üst seviyede, GPS veya radyo zaman alıcıları gibi donanım referans saatleri bulunur (Stratum 0). Stratum 1 NTP sunucuları, doğrudan bir donanım saatine bağlıdır ve en hassas zamanı sağlar.

Hiyerarşideki her stratum seviyesi, bir üst seviyedeki stratum ile senkronize olur. Stratum seviyesi, istemcinin zaman kaynağına olan uzaklığını gösterir. Kaynağa olan mesafe arttıkça, saatin doğruluğu azalır.

Donanım Referans Saatleri

Kesin ve güvenilir zaman sağlamak için hassas bir zaman kaynağı gereklidir. Bu zaman kaynaklarına donanım referans saatleri denir. Çoğu donanım referans saati, GPS, GLONASS ve Galileo gibi Küresel Navigasyon Uydu Sistemlerinden (GNSS) zaman alır.

Bazı ülkeler, MSF (İngiltere), DCF (Almanya) ve WWVB (ABD) gibi radyo zaman sinyalleri de yayınlamaktadır. Ancak GNSS alıcıları, en yüksek doğruluk seviyelerini sağlar. Uydu navigasyon sistemlerinin yaygın kullanımı nedeniyle GNSS alıcılarının maliyeti son yıllarda önemli ölçüde düşmüştür.

NTP Nasıl Yapılandırılır?

NTP, hizmet başladığında okunan bir yapılandırma dosyası ile yapılandırılır. Yapılandırma değişikliklerinin etkili olması için NTP hizmetinin yeniden başlatılması gerekir. Varsayılan yapılandırma dosyası konumu /etc/ntp.conf şeklindedir. Temel bir yapılandırma dosyası şu şekilde olabilir:

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
driftfile /var/lib/ntp/drift

Yukarıdaki yapılandırma dosyası, üç internet havuz NTP sunucusunu ve sistem saatinin frekans hatasını saklayacak bir drift dosyasını belirtmektedir.

NTP Ne Kadar Hassastır?

NTP, en hassas zamanı seçmek için gelişmiş algoritmalar kullanır. Ağ yayılma gecikmelerini hesaplayarak sunucuya mümkün olan en yüksek doğrulukla senkronizasyon sağlar.

NTP Güvenliği

NTP, şifrelenmiş anahtar doğrulama yöntemi ile güvenli hale getirilebilir. Sunucu ve istemci arasında tanımlanan ortak anahtarlar, NTP paketlerine eklenerek dijital imza görevi görür. MD5 gibi hash algoritmaları ile şifrelenen anahtarlar, yalnızca eşleşen anahtarlara sahip istemci ve sunucuların iletişim kurmasına izin verir.

Yerel Saat, Yaz Saati ve Zaman Dilimleri

Yerel saat, coğrafi konuma bağlı olarak zaman dilimi farkı ile belirlenir. Yaz saati uygulamaları, birçok ülkede ilkbaharda saatin bir saat ileri, sonbaharda ise bir saat geri alınmasına neden olur. Ancak NTP, yerel saat ile değil, UTC ile çalışır. İşletim sistemleri, yerel saat dilimi ve yaz saati farklarını uygular.

Bu sayede, NTP sunucusuna bağlanan herhangi bir bilgisayar, konumundan bağımsız olarak doğru UTC zamanına senkronize olabilir. 

NTP ve Artık Saniyeler

Uluslararası zaman standardı, dünya genelinde neredeyse tüm ülkelerde resmi zaman olarak kullanılan Eşgüdümlü Evrensel Zaman (UTC)'dır.

Her yıl belirli aralıklarla, 30 Haziran veya 31 Aralık tarihlerinde fazladan bir artık saniye eklenir.

UTC, çeşitli ülkelerin Ulusal Fizik Laboratuvarlarında bulunan atom saatlerinden türetilir ve uluslararası saniye tanımına dayanır. Ancak Dünya’nın kendi ekseni etrafında tam bir dönüşü, tam olarak 24 saat (86.400 saniye) sürmez. Bu nedenle UTC, yavaş yavaş Dünya’nın dönüşüne dayalı zaman standartlarından (güneş zamanı) sapmaya başlar. Ayrıca Dünya’nın dönüş hızı değişebilir; büyük depremler, Dünya’nın dönüşünü hızlandırarak günlerin çok hafif kısalmasına neden olabilir.

Bu sapmayı telafi etmek için belirli aralıklarla artık saniyeler eklenir. Pozitif bir artık saniye eklemek için, belirli bir günün 23:59:59 saniyesinden sonra fazladan bir saniye eklenerek gün süresi 86.401 saniyeye çıkarılır. Negatif artık saniye eklemek için ise 00:00:00’dan önce bir saniye çıkarılır.

Dünya’nın dönüş hızındaki dalgalanmalar nedeniyle pozitif artık saniyeler düzensiz aralıklarla eklenir. Negatif artık saniyeler ise neredeyse hiç kullanılmaz ve bugüne kadar hiçbir negatif artık saniye eklenmemiştir.

Artık saniyeler genellikle yılın ortasında, 30 Haziran’da veya yıl sonunda, 31 Aralık’ta eklenir.

Yerel Zaman, Yaz Saati Uygulaması ve Zaman Dilimleri

Yerel zaman, dünya genelinde konuma bağlı olarak belirlenen zaman dilimi farkına göre değişir. Bu fark, konumun boylamına göre belirlenir.

Eşgüdümlü Evrensel Zaman (UTC), NTP tarafından istemcilere iletilir.

Birçok ülke yaz aylarında yaz saati uygulaması yapar. Genellikle ilkbaharda saatler bir saat ileri alınır ve sonbaharda bir saat geri çekilir.

Ancak NTP, yerel zaman ile çalışmaz; yalnızca UTC kullanır. UTC, uluslararası olarak kabul edilen bir zaman standardıdır ve yerel zaman dilimleri veya yaz saati uygulamalarına göre ayarlanmaz. Dünya genelinde her konum için aynıdır.

NTP, saatleri yerel zaman dilimine göre ayarlamaz ve yaz saati değişikliklerini dikkate almaz.

İstemci bilgisayarların işletim sistemleri, zaman dilimi ve yaz saati farklarını uygulamaktan tamamen sorumludur.

Yerel zaman yerine UTC kullanarak, dünya üzerindeki herhangi bir istemci bilgisayar, bulunduğu konumdan bağımsız olarak bir NTP sunucusuyla doğru şekilde senkronize olabilir.

Artık Saniye Duyuruları

MSF, DCF77 ve WWVB gibi radyo zaman ve frekans yayınları sürekli olarak UTC zaman bilgisini iletir. Ancak her zaman damgası ile birlikte bir dizi bayrak (flag) da gönderilir. Bu bayraklardan biri genellikle bir artık saniyenin eklenmek üzere olup olmadığını göstermek için kullanılır.

Bir artık saniyenin eklenmesine bir saat kala, ilgili bayrak etkinleştirilerek yaklaşan değişiklik duyurulur. Benzer şekilde, çoğu GPS alıcısı da yaklaşan artık saniye ekleme işlemini bildiren bayraklar sağlar. Hem GPS hem de radyo alıcıları, artık saniyenin eklendiği gün saat 23:59:60 zaman damgasını iletir.

Ağ Zaman Protokolü (NTP), GPS veya radyo referans saatlerinden gelen artık saniye duyurularını alabilen algoritmalara sahiptir. NTP servisi, ağ üzerindeki istemcilere ve ana işletim sistemine yaklaşan artık saniye ekleme işlemini bildirir. Ayrıca, harici NTP zaman sunucularından gelen artık saniye duyuruları da alınarak işlenebilir.

İnternet Zaman Sunucuları

İnternette kullanılabilir birçok NTP sunucusu bulunmaktadır ve çoğu ücretsiz olarak erişime açıktır. NTP havuz projesi, çok büyük bir sanal sunucu kümesine internet erişimi sağlayan bir sistemdir. Bu sunucular, internet üzerinden hizmet veren gönüllüler tarafından yönetilmektedir. Çoğu ülkede mevcut olan bu proje, ağ gecikmesini azaltarak bilgisayar saatlerini senkronize etmenin düşük maliyetli bir yolunu sunar.

Ancak, internet zaman sunucularını kullanmanın bazı dezavantajları vardır. Öncelikle, internet üzerindeki bir zaman sunucusuna erişebilmek için herhangi bir güvenlik duvarında bir UDP portunun açık bırakılması gerekir. Bu durum güvenlik riskleri oluşturabilir. Ayrıca, ağ gecikmelerinden dolayı internet NTP sunucularından alınan zaman bilgisi daha az hassas olabilir. Bunun yanı sıra, internet NTP sunucuları hizmet garantisi sunmaz, bu da ağ senkronizasyonunun kritik olduğu durumlarda sorun yaratabilir.

Bu tür sorunların önüne geçmek için yerel bir NTP sunucusu kullanılabilir.

Yerel NTP Sunucuları

Donanım saatine, örneğin GPS'e doğrudan bağlı bir stratum 1 zaman sunucusu genellikle yerel NTP sunucusu olarak adlandırılır. Bu tür sunucuların internet zaman sunucularına göre çeşitli avantajları vardır. Yerel ağda bulundukları için internet erişimiyle ilgili güvenlik riskleri daha azdır. Ayrıca, ağ gecikmesi minimum seviyede olduğu için bilgisayarların zaman koordinasyonu daha hassas olabilir. İki veya daha fazla sunucu kurularak tam yedekli bir sistem oluşturulabilir ve bu da neredeyse kesintisiz hizmet sağlar.

Basit Ağ Zaman Protokolü (SNTP)

SNTP, NTP protokolünün basitleştirilmiş bir versiyonudur. Küçük bilgisayarlar, mikro denetleyiciler ve tam kapsamlı NTP'nin yüksek doğruluğunun gerekli olmadığı uygulamalar için geliştirilmiştir.

SNTP ve NTP, aynı veri paketi formatlarını kullanır. Bu nedenle, SNTP kullanan bir ağ cihazı, bir NTP sunucusuna sorunsuz bir şekilde senkronize olabilir.

Ancak SNTP, en doğru sunucuyu belirlemek için NTP'nin kullandığı karmaşık matematiksel hesaplamalara sahip değildir. Ayrıca, zaman değişimlerini kademeli olarak düzenleyen algoritmaları bulunmaz ve bunun yerine zamanı adım adım ayarlar. Bu nedenle, hassas zaman senkronizasyonunun kritik olmadığı uygulamalar için uygundur. Ancak, SNTP istemcilere hizmet vermek için kullanılmamalıdır; yalnızca NTP hiyerarşisinin en uç noktalarında kullanılmalıdır.

Alternatif Ağ Zaman Protokolü (NTP) Uygulamaları

NTP projesine ek olarak, çeşitli alternatif NTP uygulamaları da mevcuttur. Çoğu işletim sistemi, kendi NTP paketlerinden birini sunarak zaman senkronizasyonunu desteklemektedir.

 

WhatsApp İletişim