NTP - Máy chủ NTP chính xác đến mức nào


52

Tôi đã nhận thấy rằng trên các máy chủ của mình và các máy khác, đồng hồ luôn bị trôi nên nó phải đồng bộ hóa để duy trì chính xác.

Làm thế nào để đồng hồ máy chủ NTP không trôi và luôn luôn đúng?


3
Tôi, trước hết, sẽ đặc biệt quan tâm đến một bản tóm tắt về cách các giao thức NTP cho phép hai máy tính đồng bộ hóa thời gian của chúng qua một mạng không đáng tin cậy ...
Xavier Nodet

@XavierNodet Trong khi tôi chắc chắn bạn sẽ làm thế, đó không phải là câu hỏi này. Tôi khuyên bạn nên hỏi một câu hỏi của riêng bạn (giả sử nó chưa được hỏi; hãy chắc chắn tìm kiếm trước). Câu hỏi này là hỏi làm thế nào đồng hồ của máy chủ NTP có thể không trôi, trong khi đồng hồ phần cứng hiện đại trôi.
một CVn

@XavierNodet Tương tự ở đây. Tôi thích tìm hiểu về cách thức và lý do tại sao mọi thứ hoạt động theo cách họ làm! :)
Jason

Câu trả lời:


58

Máy chủ NTP dựa trên đồng hồ có độ chính xác cao để chấm công chính xác. Một nguồn thời gian phổ biến cho các máy chủ NTP trung tâm là đồng hồ nguyên tử hoặc máy thu GPS (hãy nhớ rằng các vệ tinh GPS có đồng hồ nguyên tử trên tàu). Những đồng hồ này được định nghĩa là chính xác vì chúng cung cấp một tham chiếu thời gian chính xác cao. Không có gì kỳ diệu về GPS hoặc đồng hồ nguyên tử khiến chúng cho bạn biết chính xác thời gian; bởi vì cách thức hoạt động của đồng hồ nguyên tử, chúng chỉ đơn giản là rất giỏi, đã từng được cho biết đó là mấy giờ, cứ nói thời gian chính xác (vì lần thứ hai được định nghĩa theo hiệu ứng nguyên tử ). Trên thực tế, đáng chú ý là thời gian GPS khác với UTC mà chúng ta thường thấy hơn. Những đồng hồ nguyên tử lần lượt được đồng bộ hóa vớiThời gian nguyên tử quốc tế hoặc TAI để không nói chỉ chính xác thời gian trôi qua mà còn thời gian.

Khi bạn có thời gian chính xác trên một hệ thống được kết nối với mạng như Internet, vấn đề về kỹ thuật giao thức cho phép chuyển thời gian chính xác giữa các máy chủ qua mạng không đáng tin cậy. Về vấn đề này, một tầng 2 (hoặc xa hơn so với nguồn thời gian thực) máy chủ NTP không khác với hệ thống máy tính để bàn của bạn đồng bộ hóa với một bộ máy chủ NTP.

Vào thời điểm bạn có một vài lần chính xác (như được lấy từ các máy chủ NTP hoặc ở nơi khác) và biết tốc độ tiến bộ của đồng hồ địa phương của bạn (rất dễ xác định), bạn có thể tính tốc độ trôi của đồng hồ địa phương so với "chính xác được tin là " thời gian trôi qua. Sau khi được khóa, giá trị này có thể được sử dụng để liên tục điều chỉnh đồng hồ cục bộ để làm cho nó báo cáo các giá trị rất gần với thời gian chính xác, ngay cả khi chính đồng hồ thời gian thực cục bộ rất không chính xác; miễn là đồng hồ cục bộ của bạn không quá thất thường, điều này sẽ cho phép giữ thời gian chính xác trong một thời gian ngay cả khi nguồn thời gian ngược dòng của bạn không có sẵn vì bất kỳ lý do nào. Một số triển khai ứng dụng khách NTP (có thể là hầu hết các ntpdtriển khai dịch vụ hệ thống hoặc dịch vụ hệ thống) làm điều này và một số khác (như bạn đồng hành của ntpdntpdatemà chỉ đơn giản là đặt đồng hồ một lần) thì không. Điều này thường được gọi là một tập tin trôi dạt vì nó lưu trữ liên tục một thước đo độ trôi của đồng hồ, nhưng nói đúng ra nó không phải được lưu trữ dưới dạng một tập tin cụ thể trên đĩa.

Trong NTP, tầng 0 theo định nghĩa là nguồn thời gian chính xác. Tầng 1 là một hệ thống sử dụng nguồn thời gian 0 tầng làm nguồn thời gian của nó (và do đó kém chính xác hơn một chút so với nguồn thời gian 0 tầng). Tầng 2 một lần nữa kém chính xác hơn tầng 1 vì nó đang đồng bộ hóa thời gian của nó với nguồn tầng 1. Và như vậy. Trong thực tế, sự mất độ chính xác này nhỏ đến mức nó hoàn toàn không đáng kể trong tất cả các trường hợp ngoại trừ trường hợp cực đoan nhất.


1
Tôn trọng "tầng cao" không có nghĩa là số tầng thấp này nên được loại bỏ khỏi câu trả lời. S2 cao hơn S1. Để xem bằng chứng về lời giải thích của Giáo sư Mills (còn gọi là Giáo sư NTP) "Mạng con NTP hoạt động với một hệ thống phân cấp, trong đó mỗi cấp được gán một số gọi là tầng. Các máy chủ Stratum 1 (chính) ở cấp thấp nhất được đồng bộ hóa trực tiếp đến các dịch vụ thời gian quốc gia ... Các máy chủ Stratum 2 (thứ cấp) ở cấp cao hơn tiếp theo được đồng bộ hóa với các máy chủ tầng 1, v.v. " eecis.udel.edu/~mills/ntp/html/warp.html
dfc

2
Nó tốt hơn nhưng tôi không nghĩ rằng tầng 0 là "theo định nghĩa một nguồn thời gian chính xác." Stratum 0 đơn giản có nghĩa là nó là một đồng hồ tham chiếu của một số loại. Chỉ vì nó là đồng hồ S0 không có nghĩa là nó hoạt động đúng. Cấp địa tầng là khoảng cách từ đồng hồ tham chiếu không đảm bảo độ chính xác.
dfc

@dfc Tôi đánh giá cao đầu vào vì nó cho phép tôi trả lời tốt hơn nữa. Điều đó nói rằng, tôi không đồng ý với tuyên bố của bạn rằng S0 không có nghĩa là nó chính xác. Có thể đó là một ý nghĩa hoàn toàn nghiêm ngặt, nhưng nếu thời gian được đưa ra bởi đồng hồ S0 là không chính xác, thì đồng hồ đó là vô dụng trong thực tế như là một nguồn S0. Đồng hồ Ergo, S0 là chính xác. Hoặc đặt một cách khác, nếu bạn có một bộ máy chủ bị cô lập, một trong số đó được kết nối với nguồn thời gian S0 và tất cả các máy chủ khác đồng bộ với điều đó, thời gian được cung cấp bởi nguồn S0 thời gian chính xác theo như những máy chủ đó có liên quan. Không cần phải lo lắng về TAI rồi.
một CVn

10

Trong chấm công mạng, đặc tả cho bạn biết làm thế nào một máy chủ có được nguồn thời gian của nó được gọi là Cấp địa tầng. Cấp độ càng thấp, thời gian giữ máy chủ đó càng tốt.

Các thiết bị tầng 0 không được kết nối trực tiếp với mạng. Chúng là thiết bị chấm công thực tế và phải được kết nối với máy tính để lấy thời gian thực tế. Máy tính này sau đó trở thành máy chủ NTP Stratum cấp 1.

Một máy tính kết nối với Stratum cấp 1 cũng có thể trở thành một máy chủ thời gian, nhưng sau đó nó sẽ là một tầng 2. Khi các máy tính kết nối với các máy chủ thời gian, mức tầng của bạn càng thấp, việc giữ thời gian của bạn càng chính xác.

Các thiết bị tầng 0 bao gồm đồng hồ nguyên tử tham gia TAI (giờ nguyên tử quốc tế)hoặc được đồng bộ hóa với nó và bộ thu tín hiệu thời gian được gửi bởi đồng hồ đó. Thông thường nhất là các máy thu giờ GPS với giao diện phù hợp bao gồm tín hiệu GPS PPS. Tín hiệu PPS, khi GPS có khóa tốt trên một số vệ tinh, sẽ gửi một xung mỗi giây và cạnh đầu của xung đó nằm trong vài nano giây so với khởi đầu thực tế của giây đó. Tùy thuộc vào đặc điểm kỹ thuật của máy thu GPS, tín hiệu PPS có thể chính xác hơn hoặc ít hơn. Điều này là do mỗi vệ tinh GPS có đồng hồ nguyên tử. Khi máy thu GPS đã tìm thấy vị trí của chính nó và vị trí của các vệ tinh GPS mà nó đang nghe, nó có thể điều chỉnh để truyền RF và cho bạn thời gian gần như chính xác như có đồng hồ nguyên tử ngay tại máy thu GPS.

Vì vậy, các máy chủ Stratum cấp 1 kết nối với đồng hồ nguyên tử hoặc máy thu GPS và máy chủ NTP kết nối với chúng. Ngay cả việc kết nối với máy chủ cấp 2 hoặc 3 tầng với các điều chỉnh thường xuyên sẽ cung cấp cho máy tính của bạn độ chính xác về thời gian được đo bằng nano giây. Nhưng nếu bạn cần thời gian tốt hơn, hãy kết nối với máy chủ cấp một tầng hoặc mua máy thu GPS chấm công thích hợp và tự mình trở thành nguồn cấp tầng một.


4
Có rất nhiều, rất nhiều người biến máy tính Raspberry PI thành máy chủ Stratum 1 NTP với việc bổ sung máy thu GPS giá rẻ. Bạn có thể có một máy chủ Stratum cấp 1 hoàn chỉnh trên mạng của mình với giá dưới 80 đô la: google.com/search?q=raspberry+pi+ntp+gps+pps
Adam Davis

2
Vậy theo lý thuyết, một chiếc điện thoại thông minh có bộ thu GPS (gần như tất cả chúng bây giờ) có thể là một thiết bị 0/1?
Bob

1
Nếu điện thoại sử dụng đầu ra pps của máy thu GPS, có. Lưu ý rằng điện thoại CDMA cũng phải sử dụng thời gian chính xác, do đó, chipset CDMA cũng có thể là nguồn cấp 0 cho tầng của bộ xử lý điện thoại. Một mô-đun gps OEM và raspberry pi sẽ rẻ hơn mặc dù.
Adam Davis

2
Mặc dù vậy, Raspberry Pi không tạo ra một máy chủ NTP tuyệt vời, vì nó sử dụng bộ điều hợp mạng chất lượng thấp, hơi dễ vỡ (chip LAN9512).
duskwuff

1
@duskwuff Có, nhưng nó tốt hơn nhiều máy chủ Stratum cấp 2 qua internet và với các cài đặt NTP được định cấu hình đúng trên cả máy chủ và máy khách, jitter và offset được giới thiệu bởi chip LAN dựa trên USB chất lượng thấp có thể được khắc phục. Về chi phí, thật khó để đánh bại, nhưng hãy chi tiêu nhiều hơn một chút và bạn có thể khắc phục vấn đề nhỏ này.
Adam Davis

3

Tất cả các đồng hồ trôi đến một mức độ nào đó, nó phụ thuộc vào nguồn tín hiệu thời gian và mức độ theo dõi của nó. Trong PC, đây là HPET ngày nay, nhưng PC có thể mất theo dõi xem có bao nhiêu tích tắc đã qua nếu quá tải.

Các máy chủ NTP mà máy của bạn nói cũng có khả năng mất thời gian, tuy nhiên, chúng trôi thời gian trở lại nguồn tốt hơn.

Cuối cùng, các nguồn tốt hơn là đồng hồ có độ chính xác cao như đồng hồ nguyên tử. Bạn có thể nghĩ về NTP như một mạng lưới các máy móc, mỗi máy sẽ có một số nguồn mà nó dựa vào thời gian và làm lệch thời gian của chính nó với những gì được coi là chính xác hơn.

Điều này được điều chỉnh bởi một nguồn tuyên bố tầng của nó. Đồng hồ nguyên tử hoặc GPS là tầng 0 và quyền hạn về thời gian là gì. Mỗi lớp từ đó là tầng tiếp theo - tầng 1 và sẽ kiểm tra một số nguồn 0 tầng cùng với các đồng nghiệp ở cùng cấp độ, để kiểm tra vệ sinh các nguồn thời gian.

Bạn có thể nói chuyện với một nguồn thời gian 2 hoặc 3 tầng.


1

Những gì người khác viết là đúng: máy chủ Stratum 1 lấy thời gian từ thiết bị Stratum 0. Tôi không biết khoảng thời gian nào xảy ra, nhưng tôi nghĩ chúng khá chính xác ở đó ,.

Máy chủ Stratum n có n> 1 nhận được thời gian thông qua NTP từ máy chủ Stratum n-1. Điều đó có nghĩa là nó đồng bộ hóa với nó trong khoảng thời gian thường xuyên. Khi bắt đầu dịch vụ NTP, đồng bộ hóa xảy ra trong các khoảng thời gian khá ngắn và theo thời gian, các khoảng thời gian bắt đầu tăng lên. Cuối cùng, khoảng thời gian này lớn tới 1024 giây, khoảng 17 phút.

Điều gì chưa được giải quyết là câu hỏi điều gì xảy ra ở giữa thời điểm đó? Vâng, có một cơ sở được gọi là tập tin trôi dạt . Nó giúp NTP giám sát mọi sự trôi dạt giữa đồng hồ cục bộ và đồng hồ tham chiếu. Tần số của đồng hồ cục bộ sau đó được điều chỉnh theo độ trôi được phát hiện, do đó thời gian cũng chính xác giữa các cuộc thăm dò máy chủ.

Việc triển khai NTP khác có thể sử dụng các phương tiện khác, nhưng có một điều phổ biến: nhu cầu và khả năng điều chỉnh tần số của đồng hồ.


Tuy nhiên, tôi cho rằng tệp trôi dạt là một chi tiết triển khai của một triển khai phần mềm cụ thể và không liên quan đến cách đồng hồ phần cứng của máy chủ NTP có thể chính xác như vậy.
một CVn
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.