Độ chính xác của tính năng đồng hồ trên máy tính?

05:22 PM 03/12/2018 In bài viết

Hình ảnh có liên quan

Các mốc thời gian luôn luôn quan trọng đối với nhiều chức năng, và một trong số đó là an ninh. Ví dụ: Các công cụ mà chúng ta sử dụng để mô tả thông tin đăng nhập khóa công khai, chứng chỉ X.509, được trang bị thời gian hiệu lực, mô tả thời gian sử dụng chứng chỉ và thời điểm hết hạn. Các ứng dụng sử dụng các chứng chỉ khóa công khai X.509 này cần so sánh thời gian trong chứng chỉ với thời gian đồng hồ địa phương của chúng như một phần của công cuộc kiểm tra để xác định có nên tin tưởng vào chứng chỉ hay không. Một trong những giả định đằng sau hệ thống chứng chỉ này là đồng hồ của mỗi máy tính đều cho biết cùng một mốc thời gian. Nhưng có phải như vậy hay không?

Sidenote

Nhiệm vụ cho độ chính xác cao của đồng hồ luôn là một trong những nhiệm vụ dài nhất của nhân loại. Phần lớn câu chuyện về độ chính xác trong việc đo thời gian đều liên quan đến các phép đo của vũ trụ quan sát cùng với đặc điểm kỹ thuật của thời gian, cho chúng ta một sự hiểu biết dần dần về cơ học thiên thể. Việc sử dụng hệ thống chữ số cho giây và phút được người Sumer cổ đại vào thiên niên kỷ thứ 3 trước Công Nguyên áp dụng, và cấu trúc đo thời gian này được truyền cho người Babylon, người Hy Lạp và sau đó là người La Mã cổ đại.

Đồng hồ cơ học dần dần được cải tiến qua nhiều thế kỷ, nhưng nó là vấn đề định vị thực tế hơn của tàu bè và đặc biệt là tính toán kinh độ, cung cấp một động lực quan trọng cho độ chính xác được cải thiện đáng kể trong thi kế (chronometer) trong thế kỷ thứ mười tám. Biên niên sử hàng hải H4 của John Harrison, được thiết kế năm 1761, dao động 216 giây trong 81 ngày trên biển (tương đương 2,6 giây mỗi ngày). Biên niên sử cơ học tiếp tục được tinh chế, và họ giữ thời gian trong hơn một thế kỷ cho đến khi hình ảnh thay đổi với sự ra đời của bộ dao động tinh thể thạch anh vào đầu thế kỷ XX.

Các bộ dao động thạch anh rất ổn định, và miễn là tinh thể thạch anh không phải chịu sự thay đổi nhiệt độ cao, nó sẽ hoạt động với độ lệch đồng hồ dưới nửa giây mỗi ngày. Độ chính xác cao hơn có thể thu được bằng cách sử dụng một ngân hàng của bộ dao động và cũng sử dụng bù nhiệt độ trong bộ đếm kỹ thuật số để có được mức độ chính xác mà độ trôi đồng hồ dưới 15ms mỗi ngày. Cục Tiêu chuẩn Quốc gia Hoa Kỳ dựa trên tiêu chuẩn thời gian của Hoa Kỳ về đồng hồ thạch anh từ cuối năm 1929 cho đến những năm 1960.

Việc tìm kiếm độ chính xác cao hơn bao giờ hết đã dẫn đến việc sử dụng dao động của các nguyên tử. Nguyên tử xêzi-133 dao động ở mức ổn định trong vòng 2 nano giây mỗi ngày và đồng hồ nguyên tử không chỉ cung cấp cho chúng ta phép đo thời gian tham chiếu mà còn xác định thời gian.

Câu hỏi tiếp theo là làm thế nào để đặt phép đo chính xác cao này của một đơn vị thời gian vào bối cảnh chu kỳ quay của trái đất về trục của nó.

Sẽ là hợp lý khi mong đợi rằng thời gian chỉ là thời gian, nhưng đó không phải là trường hợp được nói đến. Tiêu chuẩn tham khảo Universal Time (UT) có nhiều phiên bản, nhưng có hai tiêu chuẩn được đặc biệt quan tâm đến việc đo lường thời gian.

UT1 là dạng chính của Thời gian quốc tế. Mặc dù khái niệm đó là Mean Solar Time (mức trung bình của thời kỳ khi mặt trời ở cùng độ cao tương tự trong những ngày liên tiếp) ở kinh độ 0 °, nhưng các phép đo tùy ý chính xác thời gian mặt trời trung bình là một thách thức. UT1 tỷ lệ thuận với góc quay của Trái Đất đối với một tập hợp các chuẩn tinh xa, như được chỉ định bởi Khung Tham chiếu Thiên văn Quốc tế (ICRF), sử dụng giao thoa kế cơ sở dài. Thông số thời gian này chính xác đến khoảng 15 micro giây.

UTC (Coordinated Universal Time) là một khoảng thời gian nguyên tử có liên quan đến UT1, nhưng ở mức độ chính xác cao hơn nhiều. Đây là tiêu chuẩn quốc tế dựa trên thời gian dân sự. UTC đánh dấu đơn vị của "Standard International" (SI) giây, trong bước với thời gian nguyên tử quốc tế (TAI). TAI dựa trên định nghĩa 1 giây là 9,192,631,770 chu kỳ bức xạ phát ra bởi một nguyên tử cesium-133 trong quá trình chuyển đổi giữa hai mức siêu tinh của trạng thái cơ bản của nó. Bởi vì UTC dựa trên TAI, UTC không liên quan trực tiếp đến vòng quay của trái đất về trục của nó, nhưng 1 ngày UTC vẫn có 86,400 giây SI mỗi ngày. UTC được giữ trong 0,9 giây của UT1 bằng cách giới thiệu các giây nhảy không thường xuyên vào bộ đếm ngày UTC.

Nhiều máy tính sử dụng Giao thức thời gian mạng (NTP - Network Time Protocol), hoặc một biến thể liên quan chặt chẽ, để duy trì tính chính xác của đồng hồ bên trong. NTP sử dụng UTC làm chuẩn đồng hồ tham chiếu, ngụ ý rằng, giống như UTC, NTP phải kết hợp các điều chỉnh bước nhảy vọt thứ hai theo thời gian.

NTP là giao thức thời gian “tuyệt đối” để các múi giờ địa phương - và chuyển đổi thời gian tuyệt đối thành ngày và thời gian theo lịch với tham chiếu đến một vị trí cụ thể trên bề mặt Trái đất - không phải là một phần nội tại của giao thức NTP. Chuyển đổi này từ UTC sang thời gian đồng hồ treo tường, cụ thể là ngày giờ địa phương, được để lại cho máy chủ lưu trữ cục bộ.

NTP có hiệu quả đáng kể, và một khách hàng NTP sẽ có thể duy trì đồng hồ địa phương với độ chính xác 10ms từ chuẩn đồng hồ tham chiếu trong hầu hết các trường hợp.

Đo thời gian

Tại APNIC Labs, chúng tôi sử dụng quảng cáo trực tuyến theo kịch bản để đo lường các khía cạnh khác nhau của Internet. Các phép đo này bao gồm việc triển khai khả năng IPv6, việc sử dụng các giải pháp xác thực DNS của DNSSEC. Chúng tôi cũng có thể sử dụng phép đo này để báo cáo về phương sai trong thời gian đồng hồ.

Quá trình đo tương đối đơn giản. Tập lệnh chạy trên trình duyệt máy khách thu thập thời gian đồng hồ địa phương và chuyển giá trị này trở lại máy chủ đo lường như là một phần của chức năng của tập lệnh. Thời gian người dùng được thu thập có thể được so sánh với thời gian NTP của máy chủ.

Đây không phải là phép đo thời gian có độ chính xác rất cao. Có một khoảng thời gian thay đổi giữa thời gian chính xác khi chương trình người dùng cuối đọc giá trị của giờ địa phương của đồng hồ và thời gian thông tin này được máy chủ ghi nhận. Độ trễ này bao gồm độ trễ xử lý phía máy khách, độ trễ truyền mạng và độ trễ xử lý từ phía máy chủ. Tốt nhất chúng ta nên thừa nhận một mức độ không chắc chắn vào khoảng ± 0,5 giây trong hình thức đo lường này, và thực tế hơn chúng ta có thể muốn xem xét mức độ không chắc chắn ± 1 giây với dữ liệu này. Nhưng nếu xét về mục tiêu tổng thể của phương thức đo lường này, điều này là đủ cho mục đích của chúng ta.

Các kết quả

Kết quả thu thập dữ liệu trong khoảng 80 ngày trong quý 3 năm 2018 cho thấy rằng 65.384.331 mẫu trong vòng một giây của thời gian tham chiếu của máy chủ. Khoảng 21.524.620 mẫu nhanh hơn 1 giây và 115.551.970 mẫu chậm hơn 1 giây.

Sự phân bố thời gian tương đối theo đơn vị ngày được thể hiện trong Hình 1. Thang tỷ lệ phân phối là logarit, để hiển thị số nhỏ hơn trong ngày, nhưng rõ ràng là có một lượng khách hàng có thể nhìn thấy đồng hồ chậm hơn thời gian NTP trong vòng 1 năm. Có những khách hàng có đồng hồ địa phương lên tới 2 tháng trước thời gian NTP, và các trường hợp rời rạc của khách hàng với đồng hồ địa phương được đặt thành ngày có thời gian hơn 2 tháng của NTP.

Hình 1 - Phân phối đồng hồ cục bộ xoay

Sự phân bố tích lũy của các phép đo này được thể hiện trong Hình 2. Đây không phải là một phân phối mang tính thông tin vì 92,7% của tất cả các mẫu đều nằm trong vòng 60 giây của thời gian tham khảo NTP.

Hình 2 - Phân phối tích lũy của đồng hồ cục bộ xoay

Chúng ta có thể nhìn vào các cực của đường cong này, như trong Hình 3a và 3b.

Hình 3a - Phân bố xoay vòng đồng hồ tiêu cực

Hình 3b - Phân bố xoay vòng đồng hồ tích cực

Bây giờ, hãy xem các khách hàng có đồng hồ nhanh hơn thời gian tham chiếu của máy chủ và trong khi phân phối được đo bằng đơn vị giây, hãy sử dụng đơn vị 1 ngày trên trục x. Điều rõ ràng là 0,15% khách hàng sử dụng đồng hồ địa phương trước thời gian tham chiếu một ngày hoặc nhiều hơn, phần lớn các đồng hồ địa phương này được đưa ra trong nhiều ngày (Hình 4). Các máy khách này dường như có đồng hồ địa phương chính xác, nhưng ánh xạ của tín hiệu đồng hồ đến một ngày không chính xác bởi nhiều đơn vị ngày. Ngoài ra còn có một bộ khách hàng nhỏ hơn có đồng hồ được đưa ra bởi một số giờ (Hình 5). Nhìn chung, khoảng 0,7% khách hàng có cài đặt đồng hồ địa phương chuyển tiếp thời gian tham chiếu khoảng một giờ trở lên.

Hình 4 - Phân bố xoay vòng đồng hồ tích cực (Ngày)

Hình 5 - Phân bố xoay vòng đồng hồ tích cực (giờ)

Điều gì khiến khách hàng có đồng hồ địa phương tụt hậu so với thời gian tham khảo? Hình 6 cho thấy sự phân bố tích lũy của các máy khách có đồng hồ có độ trễ thời gian tham chiếu từ 3 giờ trở lên. Trong khi có một số bằng chứng về số lượng khách hàng mà đồng hồ cục bộ của nó thiếu tiêu chuẩn tham chiếu bằng các đơn vị chính xác của một số ngày, thì điều này không có nghĩa là phân phối của khách hàng với đồng hồ nhanh hơn. Có thể là số lượng khách hàng lớn hơn với đồng hồ chậm hơn (nhiều hơn gấp đôi) bao gồm một tập hợp các máy khách có cài đặt lịch không chính xác và một nhóm khách thứ hai có đồng hồ địa phương đơn giản dao động khỏi thời gian tham chiếu. Thời gian dao động này có thể lớn, tính bằng ngày và tháng! Tuy nhiên, khi chúng ta xem xét kỹ hơn thời gian trễ trong vòng 24 giờ, việc lượng tử hóa độ trễ thành toàn bộ đơn vị giờ được ghi nhận rõ hơn (Hình 7). Khoảng 0,5% khách hàng có cài đặt đồng hồ địa phương chính xác 1 giờ sau thời gian tham chiếu và 0,05% khách hàng có đồng hồ địa phương chính xác sau 12 giờ so với thời gian tham chiếu.

Hình 6 - Phân bố xoay vòng đồng hồ tiêu cực (Ngày)

Hình 7 - Phân bố xoay vòng đồng hồ tiêu cực (giờ)

Điều này dẫn đến một kết quả thú vị. Nó không chỉ thể hiện là đồng hồ có sự dao động mà còn là lý do chính tại sao đồng hồ địa phương có nhiều hơn một vài giây khác biệt so với thời gian tham chiếu.

Chúng ta có thể thấy điều này bằng cách xem xét sự chênh lệch thời gian chênh lệch loại trừ điểm đỉnh chính trong vòng 1 giờ chênh lệch thời gian bằng không (Hình 8). Rõ ràng là có một sự khác biệt rõ rệt về chênh lệch thời gian tại điểm đánh dấu giờ và một điểm cao thứ hai tại điểm đánh dấu nửa giờ.

Hình 8 – Xoay vòng đồng hồ với hour chime (giây)

Những gì chúng ta có thể học hỏi từ dữ liệu dao động đồng hồ trong giai đoạn gần đồng bộ hóa chính xác? Sự phân bố của giờ trung tâm này được thể hiện trong Hình 9. Một lần nữa, số lượng các máy khách có đồng hồ chậm hơn nhiều hơn số lượng các máy khách có đồng hồ nhanh hơn.

Hình 9. 

Kết luận

Hầu hết Internet chạy đến cùng một đồng hồ, nhưng những gì "giống nhau" là một ước lượng khá rộng. Khoảng 53% đồng hồ trên thiết bị được kết nối Internet dao động trong vòng 2 giây so với đồng hồ tham chiếu của máy chủ, gần với giới hạn độ chính xác trong phương pháp thử nghiệm này. Trong số các thiết bị thử nghiệm còn lại, có khoảng 38% đồng hồ chậm hơn và 9% đồng hồ nhanh hơn.

Nếu chúng ta mở rộng phạm vi xấp xỉ đồng bộ hóa thời gian này thành 60 giây, 92% đồng hồ địa phương nằm trong phạm vi 120 giây này và với 4% đồng hồ chạy nhanh hơn và 4% chạy chậm hơn.

Nếu chúng ta có một cái nhìn rộng hơn về đồng bộ hóa thời gian và sử dụng một khung ± 1 giờ, thì 98.27% khách hàng nằm trong vòng 1 giờ của thời gian tham chiếu của máy chủ, trong khi 0.89% khách hàng chạy chậm hơn 1 giờ và 0.84% ​​của khách hàng chạy nhanh hơn 1 giờ.

Sự dao động của thời gian trong các đồng hồ địa phương nơi có phương sai đáng kể không đồng đều.

Chúng ta có thể nói gì về thời gian và Internet? Giả định an toàn nhất là hầu hết các hệ thống sẽ được đồng bộ với nguồn đồng hồ tham chiếu UTC miễn là định nghĩa “đồng bộ hóa” là một khung 24 giờ! Nếu hành vi 'đúng' của một ứng dụng Internet dựa trên mức độ hội tụ thời gian UTC chặt chẽ hơn thời gian so với khung khá lớn này thì có khả năng một nhóm khách hàng sẽ nằm ngoài phạm vi của ứng dụng về những gì có thể chấp nhận được.

Gia Bảo