Asimetrik gecikmeli bir şebekede saat senkronizasyonu


38

Bilgisayarın başlatılmayan kesin bir saati olduğunu varsayalım. Yani, bilgisayarın saatindeki zaman gerçek zaman artı bazı sabit sapmalardır. Bilgisayarın bir ağ bağlantısı var ve sabitini belirlemek için bu bağlantıyı kullanmak istiyoruz .B

Basit yöntem, bilgisayarın yerel saat olduğunu dikkate alarak bir zaman sunucusuna bir sorgu göndermesidir . Zaman sunucusu sorguyu zamanında alır ve müşteriye geri içeren bir yanıt gönderir , bu da zamanında alır . Sonra , yani .B+C1TTB+C2B+C1TB+C2T-C2BT-C1

Ağ iletim süresi ve sunucu işlem süresi simetrik ise, . Bildiğim kadarıyla, NTP , vahşi doğada kullanılan zaman senkronizasyon protokolü, bu varsayım üzerinde çalışır.B=T-C1+C22

Gecikmeler simetrik değilse, hassasiyet nasıl geliştirilebilir? Bu asimetriyi tipik bir İnternet altyapısında ölçmenin bir yolu var mı?


2
İlgili bir patent var ancak bunları okumak isteyenler ...
Raphael


İlk düşünceler: 2 varlık ile muhtemelen imkansız. n varlık (n2)çiftini kullanarak daha iyi bir senkronizasyon mümkündür. Ardından saatler bir seferlik süreleri ölçmek için kullanılabilir. n
rgrig

Uygulamayı / bağlamı netleştirebilir misiniz yoksa bu temelde teorik bir soru mu?
vzn

Yanıtlar:


10

Asimetriyi ölçememek

Hayır, asimetriyi ölçemezsiniz. Bu iki iletişim şemasını göz önünde bulundurun, bunlardan ilki negatif saat kayması ve eşit gecikmeler, ikincisi saat kayması olmadan ve tamamen asimetrik gecikmeler (ancak aynı gidiş-dönüş süresi).

iletişim diyagramı

Dikkat edilmesi gereken en önemli şey, hem PC hem de sunucu açısından iki etkileşimin tamamen aynı olmasıdır. Aynı zamanda mesaj alırlar. Aynı anda mesaj gönderirler.

PC zaman çizelgesini 'kaparak' ve 'kaydırarak' göndererek / gönderme noktalarını ilgili zaman çizelgelerine göre sabit tutarak daha fazla vaka oluşturabilirsiniz. Sebep olduğunuz asimetriler, saat ofseti ile tamamen olumsuzlanır. Aslında, mesajların geri dönüşünü tek bir yoldan bile yapabilirsiniz (gidiş dönüş süresi hala aynı olduğu sürece) ve sunucu / istemci STILL'in söyleyemediği bir şey!

Bu nedenle gecikme asimetrilerini ölçmek mümkün değildir. Gecikmelerin pozitif olduğu ve gidiş dönüş süresinin toplamından başka bir bilginiz olmadığı en kötü durumda, saat senkronizasyonunun doğruluğu gidiş dönüş süresi ile sınırlıdır.

Orta seviye altyapı yardımcı olabilir mi?

Ara altyapının yardımcı olup olamayacağı, durumun teorik modelinize büyük ölçüde bağlı olacaktır.

Asimetri sabitse ve ara altyapı, siz ve sunucu arasındaki iletişim yolundaki yönlendiriciler ise, o zaman hayır. Her bir yönlendirici saatini bitişik yönlendiriciyle senkronize etse bile, hatalar, sunucuyla yönlendiriciler arasındaki iletişim yoluyla senkronize ettiğiniz gibi aynı olacaktır.

Gerçek dünyada, mimari nedenlerden dolayı biraz simetrik olan gecikmelere, kuyruk gecikmelerinden (vb.) Kaynaklanan asimetriyi azaltmak için tekrarlanan senkronizasyonlara ve diğer asimetri türlerini azaltmak için çoklu iletişim yollarına güvenebilirsiniz.

Modelinizin varsayımlarını aralarında bir yere koyarsanız (çünkü model alanını keşfetmek elbette ilginçtir), sonucun da aralarında da olması gerektiğini umuyorum.


Bu bir cevabı olmalıdır Sorunuzun . Burada altta yatan altyapıdan yardım alabileceğimiz daha somut bir ortam soruyorum.
Gilles 'SO- kötülük olmayı bırak'

Senin için daha fazla içerik ekledim.
Craig Gidney

bu bana yanlış geliyor gibi görünüyor ve PC gönderme ve alma zamanlarının aynı olmasına rağmen (iki durumda üst zaman çizelgesi olayları çakışıyor), sunucu zamanlarının farklı olduğunu (iki durumda alt satırda) ve bu nedenle NTP istemcisi tarafından hesaplanan formül iki durumda farklıdır. bu, her durumda için NTP değerlerini etiketleyerek daha iyi anlaşılabilir (burada sunucu zamanında kaydedilen ve müşteriye geri gönderilir). olduğu gibi, NTP zaman protokolü gerçektent 2 , t 3 ( t 1 - t 0 ) ( t 3 - t 2 )t1,t2,t3,t4t2,t3(t1-t0)(t3-t2)
vzn 21.01

@ Vzn Her iki örnekte de sunucu t mesajlarına göre aynıdır. Sunucunun sola doğru hareket ettiği zaman çizelgesi, başlangıçtaki saat kaymasının farklı olduğunu gösterir. İlk saat kayması ve gecikme asimetrisinin etkileri eşdeğerdir, bu yüzden her ikisini de ters yönlerde ayarlamak sonuç davranışının eşdeğer olmasını sağlar.
Craig Gidney

ileride, müşteri / sunucu saatlerinin en azından gidiş-dönüş zamanının dışında ne zaman senkronize edilmediğini söyleyebilir polycos vd ref I fazla bilgi nerede aşağıda alıntı ölçmek NTP belirsizlik daha büyük farklı "tek yönlü gecikmeleri" (NTP Sunucuları olmak yani için gidiş-dönüş süresinden daha az gibi görünüyor ~ 10 ms)
vzn

2

Eşzamanlı olduğu bilinen bir zaman sunucuları ağı, ve bir istemci makine düşünün .Pθ={bir,B,C}P

Let makineden uçuş tek yönlü zaman makinesi için olasılığı ile, bu . X Y T X YT Y XTXYXYTXYTYX

Letmakine ve arasındaki asimetrinin ölçüsü olun .X YΔXY=|TXY-TYX|XY

Şimdi, iki senkronize makine arasındaki asimetrinin, senkronize makinelerin aynı anda birbirlerine tek yönlü bir mesaj göndermeyi kabul etmesiyle ölçülebileceğini düşünün. Varış zamanlarındaki fark, bu makineler arasındaki , yani:Δ

ΔbirB=|TbirB-TBbir|

ΔBC=|TBC-TCB|

ΔCbir=|TCbir-TbirC|

ölçülebilir.

Şimdi devrelerin uçuş zamanını düşünün:

C A BPbirBP , ,CbirB

C B APBbirP , .CBbir

CbirB=TPbir+TbirB+TBP

CBbir=TPB+TBbir+TbirP

Her iki devreyi aynı anda başlatmak için istemci makineyi düşünün ve varış zamanlarındaki farkı ölçün, :xPx

x=CbirB-CBbir=ΔPbir+ΔbirB+ΔBP

Hem hem de daha önce bahsedilen ölçümlerle bilinir, bu nedenle bilinmeyenleri sol tarafa :Δ A BxΔbirB

x-ΔbirB=ΔPbir+ΔBP

Benzer şekilde, ve için gösterilebilir:{ C B C , C C B }{CbirC,CCbir}{CBC,CCB}

y-ΔBC=ΔPB+ΔCP

z-ΔCbir=ΔPC+ΔbirP

Dikkatli bir şekilde , olduğunu not ederiz . Sol taraf ölçümlerden bilinen değerleri içerir, sağ taraf 3 denklemde 3 bilinmeyen içerir.ΔXYΔYX

Aynı anda çözme,

ΔbirP=r+s-t2

ΔBP=r-s+t2

ΔCP=t-r+s2

nerede,

r=x-ΔbirB

s=y-ΔBC

t=z-ΔCbir


Bu, cevabımın ve diğerlerinin sahip olduğu sorunu nasıl aşındırıyor ?
Raphael

Bir tanesi için 3 tane zamanlama porsiyonu kullanıyorum. Ve gönderilecek 12 mesaj gibi bir şeye ihtiyaç vardır - zaman sunucuları arasındaki asimetriyi bulmak için 6 ve istemci ile sunucular arasındaki asimetriyi bulmak için 6. 1 boyutlu bir çözüm alanı değil çünkü arada bir 3 sunucu arasında değil. Ve zamanın geriye gidebileceğini varsaymıyor.
Bingo

Senkronizasyonu okuyucu için bir alıştırma olarak bırakılan mükemmel şekilde senkronize edilmiş 3 zaman sunucusuna dayanmaktadır. ^^
Bingo

@Raphael Sanırım şimdi yorumunuzu anlıyorum. Zaman kayması işe yaramıyor çünkü daha kısıtlı. Örneğin. Zaman kayması rp sadece ve arasındaki süreyi değil, aynı zamanda farkları hesaplanıp ölçüldüğü , . Belki hala yanılıyorum? Emin değilim: PP A P P A C P , P A B P , P B A P , P C A PbirPbirPPbirCP,PbirBP,PBbirP,PCbirP
Bingo

0

Sadece bitiş noktalarını kontrol ederseniz. Yapamazsın Craig'in cevabını görün.

Bingo'nun cevabında olduğu gibi, daha fazla makine ve daha karmaşık bir bilgisayar grubu eklemiş olsanız bile, sadece senkronize olanları diğerlerine anında erişebilecek makinelere indirgeyebilirsiniz (gecikme = 0).TXY

Uyarı bunu yaparsanız o elde edersiniz .Δ A P = Δ B P = Δ C P = 0TAB=TBC=TCA=0ΔbirP=ΔBP=ΔCP=0

Yani ne yanlış? x=CbirB-CBbir=ΔPbir+ΔbirB+ΔBP

Δ P A = T P A - T A PΔPbir=|TPbir-TbirP|,ΔPbir=TPbir-TbirP

Ve kullanırsanız, o zaman varsayımını kullanamazsınız (ve bunu kullanmazsanız, son denklemleriniz birbirini iptal eder).ΔXYΔYX

Ne yapabilirsin? Posta yoluyla gerçekten iyi bir saat gönderin. ;)

Veya, aralarındaki tüm düğümleri kontrol ediyorsanız, her bir paketi işlemenin zamanını kontrol edebilir ve aynı fiziksel ortamı her iki yönde de kullanıyorlarsa, simetrik olması gereken her ardışık çift arasındaki gecikmeyi hesaplayabilirsiniz.

Genel göreliliği hesaba katmanız gerekebilir ve eşzamanlılığın var olmadığını unutmayın.


“Genel göreliliği hesaba katmanız gerekebilir” Hayır, istemiyorum. Ben sadece tüm saatler sabit bir çerçevede olduğunda işe yarayan bir çözüm için gayet iyiyim. Dağıtık bir sistemde görelilik vardır, ancak bu fiziki değil ağ gecikmesinden kaynaklanmaktadır. Matematiği tamamen farklı.
Gilles 'SO- kötülük yapmayı bırak'

-1

NTP gerçekte "ofseti" hesaplamak için 4 zaman ölçümünü kullanıyor . bunlar, paketin istemciden sunucuya tekrar istemciye gidişinde "zaman noktaları" dır ancak zaman ötelemeleri olarak kabul edilebilir. zaman ofsetinin istemci ve sunucu arasında kapalı olabileceği, ancak her ikisinin de yerel geçen zaman ofsetlerini doğru olarak sayabileceği varsayılmıştır.t0,t1,t2,t3

dönüş paketini aldıktan sonra müşteri 4 değerin hepsine sahiptir ve gerçek ofseti hesaplar. Göreceli ofset, müşteri ve sunucu arasında hesaplandığında, "mutlak zaman" ofseti senkronize edilebilir, yani müşteri, yerel zaman ofseti, yani "delta" ile ölçülen sunucuları kesin ofsetini kesin olarak tahmin edebilir.

t 1 t 2 t 3t0 = süre [ofset] istemcide gönderildi = time [offset] recd sunucuda = time [offset] sunucuda gönderildi = time [offset] recd müşteri de
t1
t2
t3

gerçek formül:θ=(t1-t0)+(t2-t3)2

Bu formülün istemciden sunucusuna kadar sunucudan istemciye aynı olmadığı (daha kısa veya daha uzun) .t 3 - t 2t1-t0t3-t2

ağlarda gecikme süresi, çoğunlukla gecikme ve bant genişliği olmak üzere iki ana faktörden kaynaklanmaktadır.

  • gecikme, yönlendiricilerin yeni [küçük] paketler göndermedeki kısa gecikmesidir ve her yönlendiricide kabaca farklı bir sabittir. traceroute yardımcı programı ile ölçülebilir .
  • bant genişliği, büyük miktarda veri grubunun gönderilebildiği hızdır, örneğin "yükleme zamanına karşı indirme süresi" ve ayrıca uzaktaki "bant genişliği ölçümü" web siteleri tarafından da ölçülebilir.

pek çok modern ev / iş internet bağlantısında yükleme hızı indirme hızlarından çok daha küçüktür ve bu gecikme süresi - farkı etkileyecektir ; gecikme süresi ise müşteriden sunucuya ve sunucudan sunucuya küçük veya biraz benzer olabilir. istemcisi.t 3 - t 2t1-t0t3-t2

NTP'de kullanılan ofseti hesaplamanın doğruluğunu arttırmak için temel bir algoritma (ve bir dereceye kadar rastgele ağ gecikmesi için düzeltilebilir), işlemi birkaç kez tekrarlamak ve "kama saçılım programının apeksini" kullanmaktır. Bu, NTP'deki bu PPT'nin 10. slaytındaki David Mills tarafından "saat filtresi algoritması" nda görülebilir . ayrıca bkz . Mills tarafından saat filtresi algoritması . (Genel kod birden fazla sunucuya izin vermek için yazılmış olmasına rağmen, tek bir sunucu ve istemci arasında hala kullanılabileceğini unutmayın.) Bu, NTP mimarisi ve algoritmalarında açıklanan "azaltma algoritmaları" nın bir parçasıdır .


1
Soru özellikle gecikmenin simetrik olmadığı durumla ilgilidir. Birden fazla önlem almak, asimetride sabit bileşen hakkında hiçbir şey söylemeyecektir.
Gilles 'SO- kötülük olmayı'

soru aslında "gecikme" kelimesini içermiyor. Gerçek NTP formüllerini içeren kelimeler yerine matematik formunda aklınızdaki durumu ortaya koymak istiyorsanız, kesinlikle yardımcı olacaktır. Formüller ve algoritmalar gerçekten çeşitli "gecikme" ve "asimetri" durumlarını ölçebilir / ele alabilir / kapsayabilir.
vzn

C 2C1 ve gecikme değerleridir (ben onları “gecikme” olarak adlandırdım, iki kelime bu bağlamda eşanlamlıdır). C2
Gilles 'SO- kötülükten vazgeç'

C1C2

t1,t2

-3

Keşke paketleri zamanında geri gönderebilseydik

görüntü tanımını buraya girin

B=Tf+Tb-Tf2-C1+C22

Varsayımlar:

(B+C2)-Tb=Tf-(B+C1)

Tf-(B+C2)=(B+C1)-Tb


1
Bu akıllı çözüm, “tipik bir İnternet altyapısı” varsayımıyla göz ardı edilir.
Gilles 'SO- kötülükten vazgeç'

1
@ Gilles biliyorum. : D
Pratik Deoghare

-4

İşte bana kesinlikle inandırıcı geliyor ve bu nedenle aptalca kesinlikle yanlış olabilir bir fikir.

Aşağıdaki senaryoyu inceleyin. Saatleri C 1 olan iki adet ve N 2 düğümümüz var.N-1N-2C1C2δ=C1-C2d12d21

Var ile timestamped bir mesaj göndermek T mN-1T1mN-2T2rC2D

T2r-T1m=d12+δT1r-T2m=d21-δD=d12+d21

δ

1] Varsayımların doğal ve gerekli olduğunu düşünüyorum. Bunlar, ilgili miktarları değişmez umuduyla haklı olabilir de bizim senkronizasyon girişimi süresince çok.


(d12+δ)+(d21-δ)-(d12+d21)=0

@Gilles Çok kötü. Muhtemelen herkesin görmesi için yanlışlığın bir örneğini bırakmalıyız?
Raphael

1
Yazdığım yanlış cevabı geri yükleyebilirim. Gilles tarafından yapılan yorumlar nedeniyle faydalı olabilir.
Ran G.,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.