การซิงโครไนซ์นาฬิกาในเครือข่ายที่มีความล่าช้าไม่สมมาตร


38

สมมติว่าคอมพิวเตอร์มีนาฬิกาที่แม่นยำซึ่งไม่ได้กำหนดค่าเริ่มต้น นั่นคือเวลาบนนาฬิกาของคอมพิวเตอร์คือเวลาจริงบวกบางส่วนคงที่ คอมพิวเตอร์มีการเชื่อมต่อเครือข่ายและเราต้องการที่จะใช้การเชื่อมต่อที่เพื่อตรวจสอบอย่างต่อเนื่องชดเชยBB

วิธีการง่ายๆคือคอมพิวเตอร์ส่งแบบสอบถามไปยังเซิร์ฟเวอร์เวลาสังเกตเวลาท้องถิ่นC_1 เซิร์ฟเวอร์เวลาที่ได้รับแบบสอบถามในเวลาและส่งข้อความตอบกลับที่มีกลับไปยังลูกค้าซึ่งได้รับมันในเวลาที่C_2 แล้วเช่นC_1B+C1T B + C 2 B + C 1T B + C 2 T - C 2B T - C 1TTB+C2B+C1TB+C2T-C2BT-C1

หากเวลาที่ส่งผ่านเครือข่ายและเวลาการประมวลผลเซิร์ฟเวอร์สมมาตรแล้ว{2} เท่าที่ฉันรู้แล้วNTPซึ่งเป็นโปรโตคอลการซิงโครไนซ์เวลาที่ใช้ใน wild จะทำงานกับสมมติฐานนี้B=T-C1+C22

จะปรับปรุงความแม่นยำได้อย่างไรถ้าความล่าช้าไม่สมมาตร มีวิธีวัดความไม่สมดุลนี้ในโครงสร้างพื้นฐานอินเทอร์เน็ตทั่วไปหรือไม่?


2
มีความเกี่ยวข้องกับสิทธิบัตรแต่ผู้ที่ต้องการอ่านที่ ...
ราฟาเอล

@ ราฟาเอลขอบคุณ เป็นมิตรมากขึ้นการเชื่อมโยงของ Google เพื่อเราสิทธิบัตร 7602873 , การเชื่อมโยงอย่างเป็นทางการ USPTO
Gilles 'หยุดความชั่วร้าย'

ความคิดแรก: อาจเป็นไปไม่ได้กับ 2 เอนทิตี ใช้คู่nหน่วยงานการประสานที่ดีขึ้นมีแนวโน้มที่เป็นไปได้ จากนั้นนาฬิกาสามารถใช้ในการวัดเวลาหนึ่งเที่ยว n(n2)n
rgrig

คุณสามารถอธิบายแอปพลิเคชัน / บริบทหรือนี่เป็นคำถามเชิงทฤษฎีได้หรือไม่?
vzn

1
คำถามที่เกี่ยวข้องได้คำตอบที่สวย
ราฟาเอล

คำตอบ:


10

ไม่สามารถวัดความไม่สมดุล

ไม่คุณไม่สามารถวัดความไม่สมดุลได้ พิจารณาไดอะแกรมการสื่อสารสองรายการนี้อันแรกที่มีออฟเซ็ตนาฬิกาเชิงลบและความล่าช้าเท่ากันและครั้งที่สองที่ไม่มีออฟเซ็ตนาฬิกาและความล่าช้าแบบอสมมาตรทั้งหมด (แต่เวลาเดินทางรอบเดียวกัน)

แผนภาพการสื่อสาร

สิ่งสำคัญที่ควรสังเกตคือจากมุมมองของทั้งพีซีและเซิร์ฟเวอร์การโต้ตอบทั้งสองนั้นเหมือนกันทุกประการ พวกเขาได้รับข้อความในเวลาเดียวกัน พวกเขาส่งข้อความในเวลาเดียวกัน

คุณสามารถสร้างกรณีเพิ่มเติมได้โดย 'คว้า' ไทม์ไลน์ของพีซีและ 'เลื่อน' มันโดยจับจุดรับ / ส่งข้อความที่คงที่เทียบกับไทม์ไลน์ของตน ความไม่สมดุลของสาเหตุที่คุณทำนั้นตรงข้ามกับเวลาของนาฬิกา ในความเป็นจริงคุณสามารถทำให้ข้อความย้อนกลับไปได้ในคราวเดียว (ตราบใดที่เวลาไปกลับยังคงเหมือนเดิม) และเซิร์ฟเวอร์ / ไคลเอ็นต์ยังไม่สามารถบอกได้!

ดังนั้นจึงเป็นไปไม่ได้ที่จะวัดความไม่สมดุลของความล่าช้า ในกรณีที่เลวร้ายที่สุดที่คุณไม่มีข้อมูลอื่นนอกจากเวลาแฝงทางเดียวนั้นเป็นบวกและรวมกับเวลาไปกลับความแม่นยำของการซิงโครไนซ์นาฬิกาจะถูก จำกัด ไว้ที่เวลาไปกลับ

โครงสร้างพื้นฐานระดับกลางสามารถช่วยได้หรือไม่

ไม่ว่าโครงสร้างพื้นฐานระดับกลางจะช่วยได้หรือไม่นั้นขึ้นอยู่กับแบบจำลองเชิงทฤษฎีของสถานการณ์

หากความไม่สมมาตรคงที่และโครงสร้างพื้นฐานระดับกลางเป็นเราเตอร์บนเส้นทางการสื่อสารระหว่างคุณและเซิร์ฟเวอร์ดังนั้นไม่ แม้ว่าเราเตอร์แต่ละตัวจะซิงโครไนซ์นาฬิกาของพวกเขากับเราเตอร์ที่อยู่ติดกันข้อผิดพลาดจะรวมกันในลักษณะเดียวกับที่คุณซิงโครไนซ์กับเซิร์ฟเวอร์ผ่านการสื่อสารข้ามเราเตอร์

ในโลกแห่งความเป็นจริงคุณสามารถพึ่งพาความล่าช้าได้ค่อนข้างสมมาตรด้วยเหตุผลทางสถาปัตยกรรมการซิงโครไนซ์ซ้ำเพื่อลดความไม่สมดุลเนื่องจากการรอคิว (ฯลฯ ) และเส้นทางการสื่อสารหลายเส้นทางเพื่อลดความไม่สมดุลอื่น ๆ

หากคุณตั้งสมมติฐานของแบบจำลองไว้ที่ใดที่หนึ่ง (เพราะน่าสนใจในการสำรวจพื้นที่จำลอง) ฉันคาดว่าผลลัพธ์ควรอยู่ในตำแหน่งเดียวกัน


นี้ควรจะเป็นคำตอบให้กับคำถามของคุณ ที่นี่ฉันถามเกี่ยวกับการตั้งค่าที่เป็นรูปธรรมมากขึ้นซึ่งเราอาจได้รับความช่วยเหลือจากโครงสร้างพื้นฐาน
Gilles 'หยุดความชั่วร้าย'

ฉันเพิ่มเนื้อหาเพิ่มเติมให้คุณ
Craig Gidney

เรื่องนี้ดูเหมือนว่าฉันจะผิด & มันสามารถเห็นได้โดยสังเกตว่าในขณะที่พีซีส่งและรับเวลาเหมือนกัน (เหตุการณ์บนไทม์ไลน์ด้านบนเกิดขึ้นพร้อมกันในสองกรณี) เวลาเซิร์ฟเวอร์จะแตกต่างกัน (บรรทัดล่างในสองกรณี) & ดังนั้นสูตรที่คำนวณโดยไคลเอนต์ NTP จะแตกต่างกันในสองกรณี สิ่งนี้สามารถเข้าใจได้ดีขึ้นโดยการติดฉลากค่า NTP สำหรับในแต่ละกรณี (โดยที่เป็นค่าที่บันทึกในเวลาเซิร์ฟเวอร์และส่งกลับไปยังลูกค้า) เช่นเดียวกับคำตอบของฉันโปรโตคอลเวลา NTP สามารถวัดและปรับได้สำหรับt 2 , t 3 ( t 1 - t 0 ) ( t 3 - t 2 )t1,t2,t3,t4t2,t3(เสื้อ1-เสื้อ0)(เสื้อ3-เสื้อ2)
vzn

@vzn เวลาเซิร์ฟเวอร์ที่มีข้อความแสดงความเคารพเหมือนกันทั้งสองตัวอย่าง ไทม์ไลน์ของเซิร์ฟเวอร์ที่ย้ายไปทางซ้ายหมายถึงการเลื่อนเวลาเริ่มต้นของนาฬิกาแตกต่างกัน ผลกระทบของการเลื่อนนาฬิกาเริ่มต้นและความไม่สมดุลของเวลาแฝงเกิดขึ้นที่เท่ากันดังนั้นการปรับทั้งสองอย่างในทิศทางตรงกันข้ามทำให้พฤติกรรมที่เกิดขึ้นนั้นเท่าเทียมกัน
Craig Gidney

การศึกษาเพิ่มเติมลูกค้า / เซิร์ฟเวอร์สามารถบอกได้ว่านาฬิกาของพวกเขาอยู่ไกลจากการซิงค์อย่างน้อยนอกเวลาเดินทางไปกลับ ข้อมูลเพิ่มเติมใน polycos และคณะอ้างอิงด้านล่างซึ่งพวกเขาวัด "latencies แฝงทิศทาง" ที่แตกต่างกันมากกว่าความไม่แน่นอนของ NTP (ซึ่งดูเหมือนจะน้อยกว่าเวลาไปกลับไปยังเซิร์ฟเวอร์ NTP - ~ 10ms)
vzn

2

พิจารณาเครือข่ายเซิร์ฟเวอร์เวลาที่รู้จักกันเป็นซิงโครที่และเครื่องไคลเอนต์PPθ={A,B,C}P

ให้เป็นครั้งวิธีหนึ่งของเที่ยวบินจากเครื่องไปยังเครื่องมีความเป็นไปได้ที่{} X Y T X YT Y XTXYXYTXYTYX

ให้จะเป็นตัวชี้วัดของความไม่สมดุลระหว่างเครื่องและYX YΔXY=|TXYTYX|XY

ตอนนี้ให้พิจารณาว่าความไม่สมดุลระหว่างเครื่องซิงโครนัสสองเครื่องสามารถวัดได้โดยให้เครื่องซิงโครนัสตกลงที่จะส่งข้อความทางเดียวให้กันในเวลาเดียวกัน ความแตกต่างในเวลาที่มาถึงคือระหว่างเครื่องเหล่านั้นคือ:Δ

ΔAB=|TABTBA|

ΔBC=|TBCTCB|

ΔCA=|TCATAC|

สามารถวัดได้

พิจารณาเวลาของการบินของวงจร:

, แสดงโดย C B ,PABPCAB

, แสดงโดย C BPBAPCBA

CAB=TPA+TAB+TBP

CBA=TPB+TBA+TAP

พิจารณาเครื่องไคลเอนต์เพื่อเริ่มต้นวงจรทั้งสองพร้อมกันและวัดความแตกต่างในเวลาที่มาถึงx :Px

x=CAB-CBA=ΔPA+ΔAB+ΔBP

ทั้งและΔ A Bเป็นที่รู้จักจากการวัดที่กล่าวถึงก่อนหน้านี้ดังนั้นการย้ายสิ่งแปลกปลอมไปทางด้านซ้ายมือxΔAB

x-ΔAB=ΔPA+ΔBP

ในทำนองเดียวกันสำหรับและ{ C B C , C C B }ก็สามารถที่จะแสดงให้เห็นว่า:{CAC,CCA}{CBC,CCB}

Y-ΔBC=ΔPB+ΔCP

Z-ΔCA=ΔPC+ΔAP

การตรวจสอบอย่างรอบคอบเราทราบว่า X ด้านซ้ายมีค่าที่ทราบจากการวัดทางด้านขวาประกอบด้วย 3 unknowns ใน 3 สมการΔXYΔYX

การแก้ปัญหาพร้อมกัน

ΔAP=R+s-เสื้อ2

ΔBP=R-s+เสื้อ2

ΔCP=เสื้อ-R+s2

ที่ไหน

R=x-ΔAB

s=Y-ΔBC

เสื้อ=Z-ΔCA


สิ่งนี้จะหลีกเลี่ยงปัญหาที่คำตอบของฉันและคนอื่น ๆ มีได้อย่างไร
กราฟิลส์

สำหรับคนเราใช้เวลา 3 ครั้งไม่ใช่หนึ่ง และมันต้องการบางอย่างเช่น 12 ข้อความที่จะส่ง - 6 เพื่อค้นหาความไม่สมดุลระหว่างไทม์เซิร์ฟเวอร์และ 6 เพื่อค้นหาความไม่สมดุลระหว่างไคลเอนต์และเซิร์ฟเวอร์ ไม่ใช่พื้นที่โซลูชัน 1 มิติเนื่องจากการประกอบอยู่ระหว่างเซิร์ฟเวอร์ 3 เครื่องและไม่ใช่เซิร์ฟเวอร์เดียว และไม่คิดว่าเวลาจะถอยหลังได้
Bingo

มันต้องอาศัยเซิร์ฟเวอร์เวลาที่ซิงโครไนซ์อย่างสมบูรณ์ที่สุด 3 ตัวซึ่งการซิงโครไนซ์นั้นจะเป็นแบบฝึกหัดสำหรับผู้อ่าน ^^
บิงโก

@ ราฟาเอล l คิด l เข้าใจความคิดเห็นของคุณตอนนี้ การเลื่อนเวลาไม่ทำงานเนื่องจากมีข้อ จำกัด มากกว่า เช่น. เวลาขยับWRT Pไม่เพียง แต่ส่งผลกระทบต่อเวลาระหว่างและPแต่ยัง circuts P C P , P B P , P B P , P C P , ความแตกต่างของการที่จะถูกวัดและปัจจัยลงใน การคำนวณ บางทีฉันยังคงผิด ไม่แน่ใจ: PAPAPPACP,PABP,PBAP,PCAP
Bingo

0

หากคุณควบคุมเฉพาะจุดสิ้นสุด คุณทำไม่ได้ ดูคำตอบของ Craig

แม้ว่าคุณจะเพิ่มเครื่องจักรมากขึ้นและชุดคอมพิวเตอร์ที่ซับซ้อนมากขึ้นเช่นเดียวกับคำตอบของ Bingo คุณสามารถลดการใช้เครื่องจักรที่ทำให้เครื่องซิงโครไนซ์เข้าถึงผู้อื่นได้ทันที (ล่าช้า = 0)TXY

ขอให้สังเกตว่าถ้าคุณทำคุณจะได้รับΔ P = Δ B P = Δ C P = 0TAB=TBC=TCA=0ΔAP=ΔBP=ΔCP=0

แล้วมีอะไรผิดปกติ? x=CAB-CBA=ΔPA+ΔAB+ΔBP

ไม่ใช่ Δ P A = T P A - T A PΔPA=|TPA-TAP|ΔPA=TPA-TAP

และถ้าคุณใช้สองแล้วคุณไม่สามารถใช้สมมติฐาน (และถ้าคุณไม่ได้ใช้นี้สมการสุดท้ายของคุณยกเลิกแต่ละอื่น ๆ )ΔXYΔYX

ดังนั้นคุณจะทำอย่างไร ส่งนาฬิกาที่ดีจริงๆผ่านทางไปรษณีย์ ;)

หรือถ้าคุณสามารถควบคุมโหนดทั้งหมดระหว่างพวกเขาคุณสามารถตรวจสอบเวลาในการประมวลผลแต่ละแพ็คเก็ตและคำนวณการหน่วงเวลาระหว่างคู่ที่ต่อเนื่องกันซึ่งควรจะสมมาตรหากพวกเขาใช้สื่อทางกายภาพเดียวกันทั้งสองวิธี

คุณอาจต้องคำนึงถึงทฤษฏีสัมพัทธภาพทั่วไปและจำไว้ว่าไม่มีความพร้อมกัน


“ คุณอาจต้องคำนึงถึงทฤษฏีสัมพัทธภาพทั่วไป” ไม่ฉันไม่ ฉันใช้ได้ดีกับโซลูชั่นที่ใช้งานได้เฉพาะเมื่อนาฬิกาทั้งหมดที่เกี่ยวข้องอยู่ในกรอบคงที่ มีสัมพัทธภาพในระบบกระจาย แต่มันมาจากเวลาแฝงของเครือข่ายไม่ใช่จากฟิสิกส์ คณิตศาสตร์มีความแตกต่างอย่างสิ้นเชิง
Gilles 'SO- หยุดความชั่วร้าย'

-1

NTPใช้การวัดแบบ 4 ครั้งเพื่อคำนวณ "offset" พวกเขาเป็น "จุดเวลา" ในการเดินทางไปกลับของแพ็กเก็ตจากไคลเอนต์ไปยังเซิร์ฟเวอร์กลับไปยังไคลเอนต์ แต่ถือได้ว่าเป็นการชดเชยเวลา มันสันนิษฐานว่าการชดเชยเวลาสามารถปิดระหว่างไคลเอนต์และเซิร์ฟเวอร์ แต่ทั้งคู่สามารถนับเวลาที่ผ่านไปในประเทศชดเชยอย่างถูกต้องt0,t1,t2,t3

ไคลเอ็นต์หลังจากได้รับแพ็กเก็ตคืนมีค่าทั้งหมด 4 ค่าและคำนวณออฟเซ็ตจริง เมื่อคำนวณออฟเซ็ตสัมพัทธ์ระหว่างไคลเอนต์และเซิร์ฟเวอร์ออฟเซ็ต "เวลาสัมบูรณ์" สามารถซิงโครไนซ์นั่นคือลูกค้าสามารถประเมินเซิร์ฟเวอร์ออฟเซ็ตที่วัดได้อย่างแม่นยำ wrt ออฟเซ็ตเวลาท้องถิ่นของมันคือ "เดลต้า"

= เวลา [ชดเชย] ส่งไปที่ลูกค้า t 1 = เวลา [ชดเชย] recd ที่เซิร์ฟเวอร์ t 2 = เวลา [ชดเชย] ส่งที่เซิร์ฟเวอร์ t 3 = เวลา [ชดเชย] recd ที่ลูกค้าt0
t1
t2
t3

สูตรจริงคือθ=(t1t0)+(t2t3)2

หมายเหตุสูตรนี้สามารถจัดการกับกรณีที่เวลาจากไคลเอนต์ไปยังเซิร์ฟเวอร์ไม่เหมือนกับจากเซิร์ฟเวอร์ไปยังไคลเอ็นต์t 3 - t 2 (สั้นหรือยาวกว่า)t1t0t3t2

บนเครือข่ายเวลาหน่วงเวลาเกิดจากปัจจัยหลักสองประการคือความหน่วงแฝงและแบนด์วิดท์เป็นหลัก

  • latency คือความล่าช้าเล็กน้อยในเราเตอร์เมื่อส่งแพ็กเก็ต [เล็ก] ใหม่และมีค่าคงที่แตกต่างกันอย่างคร่าวๆ สามารถวัดได้ด้วยยูทิลิตีtraceroute
  • แบนด์วิดท์คืออัตราที่ข้อมูลจำนวนมากสามารถส่งได้เช่น "อัพโหลดเทียบกับเวลาดาวน์โหลด" และยังสามารถวัดได้จากเว็บไซต์ "วัดแบนด์วิดท์" ระยะไกล

t1t0t3t2

อัลกอริทึมพื้นฐานในการปรับปรุงความแม่นยำของการคำนวณออฟเซ็ตที่ใช้ใน NTP (และสามารถแก้ไขได้ในระดับความหน่วงแฝงของเครือข่ายแบบสุ่ม) คือการทำซ้ำกระบวนการหลายครั้งและใช้ "ยอดของลิ่มกระจาย" สิ่งนี้สามารถเห็นได้จาก "อัลกอริธึมตัวกรองสัญญาณนาฬิกา" บนสไลด์ 10 ของPPTนี้บน NTPโดย David Mills ดูอัลกอริธึมตัวกรองสัญญาณนาฬิกาโดย Mills (หมายเหตุก็ยังสามารถได้รับการว่าจ้างระหว่างเซิร์ฟเวอร์เดียวและลูกค้าแม้ว่ารหัสทั่วไปจะถูกเขียนมาเพื่อช่วยให้เซิร์ฟเวอร์หลาย.) นี้เป็นส่วนหนึ่งของ "ขั้นตอนวิธีการบรรเทาผลกระทบ" ที่อธิบายไว้ในNTP สถาปัตยกรรมและขั้นตอนวิธี


1
คำถามนี้เกี่ยวกับกรณีที่เวลาแฝงไม่สมมาตร การวัดหลายครั้งจะไม่บอกอะไรคุณเกี่ยวกับส่วนประกอบคงที่ในความไม่สมดุล
Gilles 'หยุดความชั่วร้าย'

คำถามไม่ได้มีคำว่า "แฝงจริง" ถ้าคุณต้องการที่จะร่างสิ่งที่คุณมีอยู่ในใจในรูปแบบคณิตศาสตร์แทนคำที่ใช้สูตร NTP จริงมันจะช่วยได้อย่างแน่นอน สูตรและอัลกอริธึมสามารถวัด / จัดการ / ครอบคลุมกรณีต่างๆของ "latency" และ "asymmetry" ได้อย่างแน่นอน
vzn

C1C2

C1C2

เสื้อ1,เสื้อ2

-3

ถ้าเพียง แต่เราสามารถส่งแพ็กเก็ตย้อนเวลากลับไป

ป้อนคำอธิบายรูปภาพที่นี่

B=Tf+TbTf2C1+C22

สมมติฐาน:

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

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


1
โซลูชันที่ชาญฉลาดนี้ได้รับการควบคุมโดยสมมติฐานของ“ โครงสร้างพื้นฐานอินเทอร์เน็ตทั่วไป”
Gilles 'หยุดความชั่วร้าย'

1
@Gilles ฉันรู้ : D
Pratik Deoghare

-4

นี่คือความคิดที่ฟังดูน่าเชื่อถือสำหรับฉันและอาจผิดไปอย่างสิ้นเชิง

N1N2C1C2δ=C1C2d12d21

N1T1mN2T2rC2D

T2rT1m=d12+δT1rT2m=d21δD=d12+d21

δ

1] ฉันคิดว่าสมมติฐานเป็นไปตามธรรมชาติและจำเป็น พวกเขาสามารถได้รับการพิสูจน์ด้วยความหวังว่าปริมาณที่เกี่ยวข้องไม่เปลี่ยนแปลงมากเกินไปในช่วงระยะเวลาของการพยายามซิงโครไนซ์ของเรา


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

@Gilles แย่มาก เราน่าจะทิ้งตัวอย่างหนึ่งของการเข้าใจผิดให้ทุกคนได้เห็น?
Raphael

1
ฉันสามารถคืนคำตอบที่ผิดที่ฉันเขียน มันอาจจะมีประโยชน์เนื่องจากความคิดเห็นของ Gilles
Ran G.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.