Đồng bộ hóa đồng hồ trong một mạng với độ trễ không đối xứng


38

Giả sử một máy tính có đồng hồ chính xác không được khởi tạo. Đó là, thời gian trên đồng hồ của máy tính là thời gian thực cộng với một số bù không đổi. Máy tính có kết nối mạng và chúng tôi muốn sử dụng kết nối đó để xác định không đổi B.

Phương pháp đơn giản là máy tính gửi truy vấn đến máy chủ thời gian, lưu ý giờ địa phương B+C1 . Máy chủ thời gian nhận được truy vấn tại một thời điểm T và gửi trả lời có chứa T trở lại máy khách, nhận được truy vấn tại thời điểm B+C2 . Sau đó B+C1TB+C2 , tức là TC2BTC1 .

Nếu thời gian truyền mạng và thời gian xử lý máy chủ đối xứng thì B=TC1+C22 . Theo như tôi biết,NTP, giao thức đồng bộ hóa thời gian được sử dụng trong tự nhiên, hoạt động dựa trên giả định này.

Làm thế nào độ chính xác có thể được cải thiện nếu độ trễ không đối xứng? Có cách nào để đo lường sự bất cân xứng này trong một cơ sở hạ tầng Internet điển hình không?


2
Có một bằng sáng chế liên quan nhưng ai muốn đọc chúng ...
Raphael


Suy nghĩ đầu tiên: Có lẽ không thể với 2 thực thể. Sử dụng cặp thực thể có khả năng đồng bộ hóa tốt hơn. Sau đó, đồng hồ có thể được sử dụng để đo thời gian một chuyến. n(n2)n
rgrig

bạn có thể làm rõ ứng dụng / bối cảnh hay đây chủ yếu là một câu hỏi lý thuyết?
vzn

Câu trả lời:


10

Không có khả năng đo bất đối xứng

Không, bạn không thể đo sự bất cân xứng. Hãy xem xét hai sơ đồ truyền thông này, sơ đồ đầu tiên có bù đồng hồ âm và độ trễ bằng nhau và thứ hai không có bù đồng hồ và độ trễ hoàn toàn không đối xứng (nhưng cùng thời gian chuyến đi khứ hồi).

sơ đồ truyền thông

Điều quan trọng cần lưu ý là, từ quan điểm của cả PC và máy chủ, hai tương tác hoàn toàn giống nhau. Họ nhận được tin nhắn cùng một lúc. Họ gửi tin nhắn cùng một lúc.

Bạn có thể tạo nhiều trường hợp hơn bằng cách 'lấy' dòng thời gian của PC và 'trượt' nó, giữ các điểm gửi / nhận tin nhắn cố định liên quan đến các mốc thời gian tương ứng của chúng. Sự không đối xứng bạn gây ra bị phủ định chính xác bởi độ lệch của đồng hồ. Trên thực tế, bạn thậm chí có thể thực hiện các tin nhắn TRỞ LẠI TRONG THỜI GIAN một cách (miễn là thời gian khứ hồi vẫn như cũ) và máy chủ / máy khách VẪN không thể nói!

Do đó, không thể đo bất đối xứng độ trễ. Trong trường hợp xấu nhất, khi bạn không có thông tin nào khác ngoài độ trễ một chiều là dương và tính tổng thời gian của chuyến đi khứ hồi, độ chính xác của đồng bộ hóa đồng hồ bị giới hạn trong thời gian khứ hồi.

Cơ sở hạ tầng trung gian có thể giúp đỡ?

Việc cơ sở hạ tầng trung gian có thể giúp hay không sẽ phụ thuộc rất nhiều vào mô hình lý thuyết của bạn về tình huống.

Nếu sự bất đối xứng là không đổi và cơ sở hạ tầng trung gian là các bộ định tuyến trên đường liên lạc giữa bạn và máy chủ, thì không. Ngay cả khi mỗi bộ định tuyến đồng bộ hóa đồng hồ của chúng với bộ định tuyến liền kề, các lỗi sẽ kết hợp theo cách giống như khi bạn đã đồng bộ hóa với máy chủ thông qua giao tiếp qua các bộ định tuyến.

Trong thế giới thực, bạn có thể dựa vào độ trễ có phần đối xứng vì lý do kiến ​​trúc, đồng bộ hóa lặp đi lặp lại để giảm sự bất đối xứng do độ trễ hàng đợi (vv) và nhiều đường truyền thông để giảm các loại bất đối xứng khác.

Nếu bạn đặt giả định của mô hình của mình ở đâu đó ở giữa (vì thật thú vị khi khám phá không gian mô hình, dĩ nhiên) tôi hy vọng kết quả cũng sẽ ở đâu đó ở giữa.


Đây sẽ là một câu trả lời cho câu hỏi của bạn . Ở đây tôi đang hỏi về một thiết lập cụ thể hơn, nơi chúng tôi có thể nhận được sự giúp đỡ từ cơ sở hạ tầng bên dưới.
Gilles 'SO- ngừng trở thành ác quỷ'

Tôi đã thêm nhiều nội dung cho bạn.
Craig Gidney

Điều này có vẻ như là sai và tôi có thể nhận thấy bằng cách lưu ý rằng trong khi thời gian gửi và nhận của PC là như nhau (các sự kiện dòng thời gian trên trùng khớp trong hai trường hợp), thì thời gian máy chủ lại khác nhau (dòng dưới trong hai trường hợp) & do đó công thức được tính toán bởi máy khách NTP là khác nhau trong hai trường hợp. điều này có thể được hiểu rõ hơn bằng cách gắn nhãn các giá trị NTP cho trong mỗi trường hợp (trong đó là các giá trị được ghi lại trong thời gian máy chủ và được gửi lại cho máy khách). như trong câu trả lời của tôi, giao thức thời gian NTP thực sự có thể đo lường và điều chỉnh chot 2 , t 3 ( t 1 - t 0 ) ( t 3 - t 2 )t1,t2,t3,t4t2,t3(t1t0)(t3t2)
vzn

@vzn Thời gian máy chủ với các thông điệp tôn trọng là giống nhau trong cả hai ví dụ. Dòng thời gian của máy chủ di chuyển sang bên trái thể hiện độ trôi của đồng hồ bắt đầu là khác nhau. Tác động của độ lệch đồng hồ ban đầu và độ bất đối xứng độ trễ xảy ra là tương đương nhau, do đó điều chỉnh cả hai theo hướng ngược nhau cho phép hành vi kết quả là tương đương.
Craig Gidney

nghiên cứu thêm, khách hàng / máy chủ có thể biết khi nào đồng hồ của họ không đồng bộ hóa ít nhất là ngoài thời gian khứ hồi. Thông tin thêm trong polycos et al ref tôi trích dẫn bên dưới nơi họ đo lường "độ trễ đơn hướng" khác nhau lớn hơn độ không đảm bảo của NTP (dường như ít hơn thời gian khứ hồi tới các máy chủ NTP, tức là ~ 10ms)
vzn

2

Hãy xem xét một mạng lưới các máy chủ thời gian được biết đến là đồng bộ, , và một máy client P .θ={A,B,C}P

Hãy là một cách thời điểm chuyến bay từ máy X vào máy Y , với khả năng rằng T X YT Y X .TXYXYTXYTYX

Đặt là thước đo của sự bất đối xứng giữa máy XY .ΔXY=|TXYTYX|XY

Bây giờ, hãy xem xét rằng sự bất cân xứng giữa hai máy đồng bộ có thể được đo bằng cách các máy đồng bộ đồng ý gửi tin nhắn một chiều cho nhau cùng một lúc. Sự khác biệt về thời gian đến là giữa các máy đó, nghĩa là:Δ

ΔAB=|TABTBA|

ΔBC=|TBCTCB|

ΔCA=|TCATAC|

Có thể được đo đạc.

Bây giờ hãy xem xét thời gian bay của các mạch:

, ký hiệu là C A B ,PABPCAB

, ký hiệu là C B A .PBAPCBA

CAB=TPA+TAB+TBP

CBA=TPB+TBA+TAP

Hãy xem xét máy khách để khởi tạo đồng thời cả hai mạch này và đo sự khác biệt về thời gian đến, x :Px

x=CABCBA=ΔPA+ΔAB+ΔBP

Cả Δ A B đều được biết đến bằng các phép đo đã đề cập trước đó, do đó, di chuyển các ẩn số sang phía bên trái:xΔAB

xΔAB=ΔPA+ΔBP

Tương tự, với { C B C , C C B } , có thể chỉ ra rằng:{CAC,CCA}{CBC,CCB}

yΔBC=ΔPB+ΔCP

zΔCA=ΔPC+ΔAP

Kiểm tra một cách cẩn thận, chúng tôi lưu ý rằng . Các bên trái chứa các giá trị được biết từ các phép đo, các bên phải chứa 3 ẩn số trong 3 phương trình.ΔXYΔYX

Giải quyết đồng thời,

ΔAP=r+st2

ΔBP=rs+t2

ΔCP=tr+s2

Ở đâu,

r=xΔAB

s=yΔBC

t=zΔCA


Làm thế nào điều này phá vỡ vấn đề câu trả lời của tôi và những người khác có?
Raphael

Vâng, đối với một l tôi đang sử dụng 3 phục vụ thời gian, không phải một. Và nó yêu cầu một cái gì đó giống như 12 tin nhắn được gửi - 6 để tìm sự bất cân xứng giữa các máy chủ thời gian và 6 để tìm sự bất cân xứng giữa máy khách và máy chủ. Đây không phải là không gian giải pháp 1 chiều vì bao gồm giữa 3 máy chủ chứ không phải một. Và nó không cho rằng thời gian có thể đi lùi.
Chơi lô tô

Nó phụ thuộc rất nhiều vào 3 máy chủ thời gian được đồng bộ hóa hoàn hảo, việc đồng bộ hóa được để lại như một bài tập cho người đọc. ^^
Chơi lô tô

@Raphael tôi nghĩ tôi hiểu bình luận của bạn bây giờ. Dịch chuyển thời gian không hoạt động vì nó bị hạn chế hơn. ví dụ. dịch chuyển thời gian A wrt P không chỉ ảnh hưởng đến thời gian giữa AP mà còn cả các rạp xiếc P A C P , P A B P , P B A P , P C A P , sự khác biệt được đo lường và tính vào phép tính. Có lẽ tôi vẫn sai? Không chắc chắn: PAPAPPACP,PABP,PBAP,PCAP
Bingo

0

Nếu bạn chỉ kiểm soát các điểm cuối. Bạn không thể. Xem câu trả lời của Craig.

Ngay cả khi bạn thêm nhiều máy hơn và một bộ máy tính phức tạp hơn, như trong câu trả lời của Bingo, bạn có thể giảm xuống chỉ còn các máy làm cho máy được đồng bộ hóa có quyền truy cập tức thời vào các máy khác (trì hoãn = 0).TXY

Lưu ý rằng nếu bạn làm , bạn sẽ nhận được Δ A P = Δ B P = Δ C P = 0 .TAB=TBC=TCA=0ΔAP=ΔBP=ΔCP=0

Vì vậy những gì là sai? x=CABCBA=ΔPA+ΔAB+ΔBP

, Không Δ P Một = T P Một - T Một PΔPA=|TPATAP|ΔPA=TPATAP

Và nếu bạn sử dụng thứ hai, sau đó bạn có thể không sử dụng các giả định (và nếu bạn không sử dụng này, phương trình cuối cùng của bạn triệt tiêu lẫn nhau).ΔXYΔYX

Vậy, bạn có thể làm gì? Gửi một chiếc đồng hồ thực sự tốt thông qua thư. ;)

Hoặc, nếu bạn có quyền kiểm soát tất cả các nút giữa chúng, bạn có thể kiểm tra thời gian để xử lý từng gói và tính độ trễ giữa mỗi cặp liên tiếp, điều đó phải đối xứng, nếu chúng sử dụng cùng một phương tiện vật lý theo cả hai cách.

Bạn có thể cần tính đến thuyết tương đối rộng, và hãy nhớ rằng tính đồng thời không tồn tại.


Bạn có thể cần phải tính đến thuyết tương đối rộng. Không, tôi không. Tôi hoàn toàn ổn với giải pháp chỉ hoạt động nếu tất cả các đồng hồ liên quan nằm trong một khung cố định. Có tính tương đối trong một hệ thống phân tán, nhưng nó xuất phát từ độ trễ của mạng chứ không phải từ vật lý. Toán học của nó là hoàn toàn khác nhau.
Gilles 'SO- ngừng trở nên xấu xa'

-1

t0,t1,t2,t3

khách hàng sau khi nhận được gói trả về có tất cả 4 giá trị và tính toán bù thực tế. một khi độ lệch tương đối được tính giữa máy khách và máy chủ, độ lệch "thời gian tuyệt đối" có thể được đồng bộ hóa, tức là máy khách có thể ước tính chính xác độ lệch chính xác của máy chủ được đo bằng cách bù thời gian cục bộ của nó, tức là "delta".

t0
t1
t2
t3

θ=(t1t0)+(t2t3)2

t1t0t3t2

trên các mạng, thời gian trễ là do hai yếu tố chính, chủ yếu là độ trễ và băng thông.

  • độ trễ là độ trễ ngắn trong các bộ định tuyến khi gửi các gói [nhỏ] mới và gần như là một hằng số khác nhau ở mỗi bộ định tuyến. nó có thể được đo bằng tiện ích traceroute .
  • băng thông là tốc độ có thể gửi các dữ liệu lớn, ví dụ: "tải lên so với thời gian tải xuống" và cũng có thể được đo bằng các trang web "đo băng thông" từ xa.

t1t0t3t2

một thuật toán cơ bản để cải thiện độ chính xác của việc tính toán độ lệch được sử dụng trong NTP (và có thể sửa cho một mức độ trễ mạng ngẫu nhiên nào đó) là lặp lại quy trình nhiều lần và sử dụng "đỉnh của biểu đồ tán xạ nêm". điều này có thể được nhìn thấy trên "thuật toán bộ lọc đồng hồ" trên slide 10 của PPT này trên NTP của David Mills. xem thêm thuật toán lọc đồng hồ của các nhà máy. (lưu ý rằng nó vẫn có thể được sử dụng giữa một máy chủ và máy khách mặc dù mã chung được viết để cho phép nhiều máy chủ.) đây là một phần của "thuật toán giảm thiểu" được mô tả trong kiến trúc & thuật toán NTP .


1
Câu hỏi cụ thể là về trường hợp độ trễ không đối xứng. Thực hiện nhiều biện pháp sẽ không cho bạn biết bất cứ điều gì về thành phần không đổi trong tính bất đối xứng.
Gilles 'SO- ngừng trở nên xấu xa'

câu hỏi không thực sự chứa từ "độ trễ". nếu bạn muốn phác thảo trường hợp nào bạn thực sự có trong đầu dưới dạng toán học thay vì các từ đặc biệt viết các công thức NTP thực sự, nó chắc chắn sẽ có ích. các công thức và thuật toán thực sự có thể đo / xử lý / bao gồm nhiều trường hợp "độ trễ" và "không đối xứng".
vzn

C1C2

C1C2

t1,t2

-3

Nếu chỉ chúng ta có thể gửi các gói trở lại trong thời gian

nhập mô tả hình ảnh ở đây

B=Tf+TbTf2C1+C22

Giả định:

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

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


1
Giải pháp thông minh này được loại trừ bởi giả định về một cơ sở hạ tầng Internet điển hình.
Gilles 'SO- ngừng trở thành ác quỷ'

1
@Gilles tôi biết. : D
Pratik Deoghare

-4

Đây là một ý tưởng nghe có vẻ hoàn toàn thuyết phục tôi và do đó có thể hoàn toàn sai theo cách ngu ngốc.

N1N2C1C2δ=C1C2d12d21

N1T1mN2T2rC2D

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

δ

1] Tôi nghĩ rằng các giả định là tự nhiên và cần thiết. Chúng có thể được chứng minh với hy vọng rằng số lượng tương ứng không thay đổi quá nhiều trong suốt thời gian thử đồng bộ hóa của chúng tôi.


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

@Gilles Quá tệ. Có lẽ chúng ta nên để lại một ví dụ về ngụy biện cho tất cả mọi người thấy?
Raphael

1
Tôi có thể khôi phục câu trả lời sai tôi đã viết. Nó có thể hữu ích do các bình luận của Gilles.
Ran G.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.