5 điểm bởi GN⁺ 2023-10-06 | 1 bình luận | Chia sẻ qua WhatsApp
  • Thời gian máy tính thường bắt đầu từ NTP, nhưng phía sau đó là cả một chuỗi cung ứng dài dẫn tới đồng hồ chuẩn, GPS, Đài quan sát Hải quân Mỹ và các tiêu chuẩn thời gian quốc tế
  • Máy chủ NTP stratum 1 dùng các tín hiệu vô tuyến như MSF, DCF77 hoặc bộ thu GPS làm đồng hồ chuẩn, và trong thực tế GPS là nguồn phổ biến
  • Lần theo nguồn thời gian GPS sẽ dẫn tới Schriever Space Force Base ở Colorado, US Naval Observatory Alternate Master Clock và US Naval Observatory ở Washington DC
  • UTC là tiêu chuẩn để khớp thời gian đồng hồ nguyên tử với sự quay của Trái Đất, còn Bulletin C của IERS và Circular T của BIPM quản lý giây nhuận và chênh lệch UTC chính thức
  • Định nghĩa hiện nay của giây dựa trên cesium bắt nguồn từ công việc hiệu chuẩn kết nối đồng hồ nguyên tử của Louis Essen và Jack Parry giai đoạn 1955~1958 với quan trắc thiên văn của William Markowitz và tín hiệu thời gian vô tuyến WWV

Hệ tầng thời gian bắt đầu từ NTP

  • Câu trả lời ngắn gọn nhất cho việc máy tính lấy thời gian từ đâu là NTP
  • Tuy nhiên, bản thân máy chủ NTP cũng không tự tạo ra thời gian, và nếu lần theo nguồn gốc thì sẽ thấy nhiều tầng nối tiếp nhau
  • NTP truyền thời gian theo cấu trúc stratum
    • Máy chủ NTP stratum 3 nhận thời gian từ máy chủ NTP stratum 2
    • Máy chủ NTP stratum 2 lấy máy chủ NTP stratum 1 làm chuẩn
    • Máy chủ NTP stratum 1 lấy thời gian trực tiếp từ đồng hồ chuẩn (reference clock)
  • Đồng hồ chuẩn có thể là tín hiệu vô tuyến như MSF của Anh hoặc DCF77 của Đức, nhưng trong nhiều trường hợp khả năng cao là bộ thu GPS

Thời gian GPS và Đài quan sát Hải quân Mỹ

  • Lần theo nguồn thời gian GPS sẽ dẫn tới Schriever Space Force Base ở Colorado
  • Schriever có nhiều vệ tinh tuyệt mật và các nhiệm vụ liên quan, nên rất khó tiếp cận gần để chụp được ảnh đẹp
  • Tại đó có US Naval Observatory Alternate Master Clock
  • Đồng hồ chủ dự phòng này nhận thời gian từ US Naval Observatory ở Washington DC

Ba nền tảng để USNO giữ đúng thời gian

  • Đồng hồ nguyên tử

    • Nền tảng đầu tiên của US Naval Observatory là rất nhiều đồng hồ nguyên tử
    • Ở đây sử dụng đồng hồ chùm cesium dạng gắn rack, các hộp đen chứa hydrogen maser và rubidium fountains
    • USNO có nhiều đồng hồ đến mức có hẳn một tòa nhà chuyên dành cho đồng hồ nguyên tử
    • Trên Apple Maps có thể thấy một công trường lớn ở giữa khuôn viên USNO, và điều này được xác nhận là tòa nhà đồng hồ mới
    • Giới hạn chính của độ chính xác đồng hồ là độ ổn định môi trường như nhiệt độ và độ ẩm, và tòa nhà mới sẽ được trang bị hệ thống điều hòa không khí rất mạnh
  • Thông tin về sự quay của Trái Đất

    • Nền tảng thứ hai là việc UTC là sự thỏa hiệp giữa thời gian đồng hồ nguyên tử và thời gian quay của Trái Đất
    • USNO nhận thông tin liên quan từ IERS, cơ quan dịch vụ quay Trái Đất quốc tế đặt tại Đài quan sát Paris
    • Mỗi năm hai lần, IERS gửi Bulletin C để thông báo xem 6 tháng sau có giây nhuận hay không
    • Giây nhuận có thể được thêm vào hoặc loại bỏ để giữ UTC khớp với sự quay của Trái Đất
    • IERS Bulletin A là bản tin hàng tuần chứa thông tin chính xác về các tham số định hướng Trái Đất, do US Naval Observatory phát hành
    • Để GPS cung cấp vị trí chính xác, cần biết chính xác hướng của Trái Đất bên dưới các vệ tinh
  • Kiểm chứng đồng hồ nguyên tử

    • Nền tảng thứ ba là thông tin dùng để xác nhận rằng các đồng hồ nguyên tử của USNO đang hoạt động tốt
    • Thông tin này đến từ BIPM ở Paris, nơi duy trì UTC tiêu chuẩn của toàn thế giới

BIPM, UTC và giây SI

  • BIPM tổng hợp các phép đo thời gian từ các viện nghiên cứu thời gian quốc gia trên khắp thế giới để xác định UTC chính thức
  • Circular T được phát hành định kỳ chứa thông tin về độ lệch giữa UTC chính thức và UTC của từng viện nghiên cứu thời gian quốc gia
  • BIPM cũng chịu trách nhiệm duy trì hệ đơn vị quốc tế SI
  • SI được định nghĩa bởi CGPM, một tổ chức điều ước quốc tế được thành lập theo Công ước Mét năm 1875
  • UTC là cách hiện thực hóa đơn vị thời gian SI dựa trên phép đo lượng tử của nguyên tử cesium
  • Con số khoảng 9.2GHz trong định nghĩa hiện nay của giây bắt nguồn từ quá trình hiệu chuẩn các đồng hồ nguyên tử cesium đầu tiên

Kết nối đồng hồ nguyên tử cesium với giây thiên văn

  • Năm 1955, Louis EssenJack Parry đã tạo ra đồng hồ nguyên tử cesium đầu tiên, và định nghĩa hiện nay của giây xuất phát từ việc hiệu chuẩn chiếc đồng hồ này
  • Trước khi có đồng hồ nguyên tử, giây được xác định dựa trên thiên văn học, nên Essen và Parry phải tìm ra đồng hồ nguyên tử chạy nhanh hơn hay chậm hơn bao nhiêu so với tiêu chuẩn thời gian trước đó
  • Công việc kết nối này có sự tham gia của các nhà thiên văn tại US Naval Observatory
    • William Markowitz đo thời gian bằng cách quan sát bầu trời
    • Louis Essen đo thời gian bằng cách nhìn đồng hồ nguyên tử
    • Để khớp hai phép đo, cả hai cùng nghe tín hiệu thời gian vô tuyến WWV do National Bureau of Standards ở Washington DC phát đi
    • Công việc này kéo dài 1955~1958 trong suốt 3 năm
  • Thứ mà Markowitz đo là ephemeris second
    • Năm 1952, Liên minh Thiên văn Quốc tế đã thay đổi định nghĩa thời gian, chuyển từ dựa trên sự quay của Trái Đất sang dựa trên quỹ đạo Trái Đất quanh Mặt Trời
    • Từ những năm 1930, người ta phát hiện sự quay của Trái Đất không hoàn toàn đều đặn mà chậm nhanh đôi chút theo thời gian
    • Khi đồng hồ trở nên chính xác hơn sự quay của Trái Đất, ephemeris second trở thành tiêu chuẩn thời gian mới chính xác hơn
  • ephemeris second dựa trên thiên thể lịch (ephemeris), một mô hình toán học của Hệ Mặt Trời
    • Thiên thể lịch chuẩn được Simon Newcomb xây dựng vào cuối thế kỷ 19
    • Newcomb thu thập lượng lớn dữ liệu thiên văn lịch sử để tạo ra mô hình toán học này
    • Mô hình đó vẫn là tiêu chuẩn cho đến giữa thập niên 1980
  • Simon Newcomb cũng từng làm việc tại US Naval Observatory và US nautical almanac office
  • Trong giai đoạn sớm hơn nữa, người ta chỉnh đồng hồ theo cách trực tiếp hơn bằng cách quan sát các ngôi sao di chuyển ngang bầu trời
  • Nguồn gốc thời gian của máy tính không phải là Royal Greenwich Observatory

1 bình luận

 
GN⁺ 2023-10-06
Các ý kiến trên Hacker News
  • Liên quan đến việc duy trì thời gian, còn có NIST Randomness Beacon: https://csrc.nist.gov/projects/interoperable-randomness-beac...
    Nguyên mẫu này tạo và công bố toàn bộ chuỗi bit entropy dưới dạng các khối 512 bit mỗi 60 giây; mỗi giá trị có số thứ tự, timestamp và chữ ký, đồng thời cũng bao gồm hash của giá trị trước đó để nối các giá trị thành chuỗi
    Có người đùa rằng đây là “đưa thời gian lên blockchain”, nhưng có thể nói NIST đã đang làm một việc tương tự

    • Cái này không phải blockchain, mà gần với Merkle DAG một tác giả duy nhất hơn
      Không cần đồng thuận, giống một repository Git có một tác giả duy nhất
    • Tôi tò mò ví dụ nó được dùng vào việc gì
      Tôi không rõ việc đưa một chuỗi số ngẫu nhiên dài công khai lên chuỗi hữu ích vì sao, ngoài mục đích chứng minh rằng một sự kiện nào đó chưa xảy ra trước một thời điểm nhất định
    • Tôi luôn thắc mắc tại sao không dùng cái này làm gốc cho một hệ thống số ngẫu nhiên P2P
      Nếu có một nguồn thời gian đáng tin cậy với vài khóa sẽ không thay đổi và ai cũng có thể truyền lại, thì có vẻ khá hữu ích
      Nó cũng có thể giúp tạo ra đồng hồ không cần cấu hình, tự lấy thời gian từ điện thoại hoặc máy tính gần nhất mà không cần thiết lập thủ công
  • Điều đáng ngạc nhiên là nếu bạn để máy tính không tự động đồng bộ thời gian, bạn có thể thấy thời gian drift nhanh đến mức nào
    Chiếc desktop chính của tôi hiện đang nhanh hơn 1,7 giây; có lẽ đã vài tuần tôi chưa cập nhật đồng hồ
    Dù vậy mức này chưa phải nghiêm trọng, các hệ thống khác có thể lệch nhiều hơn hẳn
    Vì sao tôi không để NTP tự đặt giờ? Có thể vì tôi muốn xem tốc độ drift, có thể vì tôi muốn giảm tối đa số dịch vụ đang chạy, có thể vì tôi không muốn switch Ethernet phía trước nhấp nháy quá nhiều, hoặc có thể vì tôi muốn nhớ xem những gì sẽ hỏng khi đồng hồ lệch nhiều
    Cuối cùng câu trả lời là “vì tôi muốn vậy”, và đồng hồ nội bộ hay tinh thể thạch anh của nhiều máy tính hoàn toàn không chính xác

    • Sai số của tinh thể thường khoảng 20ppm
      Với mức 20ppm, sau một tuần có thể lệch khoảng 12 giây
      Trên bo mạch chủ có lẽ có pin cr2032 để giữ thời gian ngay cả khi mất nguồn
      Ví dụ tinh thể: https://www.digikey.com/en/products/filter/crystals/171?s=N4...
    • Khó nói chi tiết, nhưng có một sản phẩm IoT được thiết kế sao cho nếu NTP thất bại thì mọi thiết bị sẽ chậm dần lại
      Tôi thích thiết kế này, vì khi sửa NTP, thời gian sẽ nhảy về phía trước và tạo ra một khoảng trống trong thời gian được nhận thức, thay vì “sống cùng một khoảnh khắc hai lần”
      Vì vậy tôi từng nghĩ rằng, giống như đồng hồ tốc độ cố ý hiển thị cao hơn một chút, tinh thể cũng được cố ý làm chậm hơn một chút để máy tính không trượt vào tương lai
    • Khoảng 40 ngày trước, khi thiết lập một mini PC làm home server, tôi không biết rằng Fedora Server mặc định không cấu hình đồng bộ NTP
      Chỉ sau 2 tuần đã tích lũy drift 30 giây, và Prometheus đã cảnh báo, nhưng ban đầu tôi lầm tưởng đó là cảnh báo do đưa mọi thứ lên một node đơn
      Khi truy vấn metric, tôi thấy lỗi do drift; so sánh đầu ra date +'%s' trên server và laptop thì chênh lệch đã vượt xa 30 giây
    • Theo Wikipedia, độ chính xác RTC của tinh thể thông thường là ±100~±20ppm, tức khoảng 8,6~1,7 giây mỗi ngày
      IC RTC có bù nhiệt độ có thể đạt dưới 5ppm, và trong thực tế đã đủ để thực hiện thiên văn hàng hải, công việc truyền thống của chronometer dùng trong hàng hải
      Năm 2011 đã có đồng hồ nguyên tử cấp chip; đắt hơn nhiều và tiêu thụ điện hơn nhiều, nhưng giữ thời gian trong phạm vi 50ppt
  • Phần giải thích thú vị, nhưng định dạng này quá bất tiện để truyền tải thông tin
    Có lẽ sẽ tốt hơn nếu bỏ các slide, viết lại thành các đoạn văn nhất quán, rồi chỉ đưa lại những hình ảnh cốt lõi làm tư liệu bổ trợ

    • Sau khi ai đó thuyết trình offline, có nhiều mức việc có thể làm online
      Thông báo rằng đã có buổi thuyết trình, đăng video ghi hình, đăng slide dưới dạng PDF v.v. mà không kèm giải thích, đặt slide lên trang HTML kèm theo nội dung mà diễn giả có lẽ đã nói, và cuối cùng là viết lại toàn bộ thành bài dạng đoạn văn
      Ở đây họ đã làm từ bước 1 đến 4, nên phàn nàn rằng chưa làm đến bước 5 tức là đang đòi hỏi thêm một khối lượng việc khá lớn, khó mà trách được; ngay từ đầu, chỉ riêng việc họ đưa bài thuyết trình lên ở dạng có thể đọc được đã đáng cảm ơn rồi
      Tôi đồng ý rằng trên di động, đặc biệt là phiên bản đầu, nó khó đọc, nhưng bản thân định dạng “bài thuyết trình có chú giải” không hẳn là tệ
      Chẳng hạn có các ví dụ như https://idlewords.com/talks/ với https://idlewords.com/talks/superintelligence.htm, https://noidea.dog/talks với https://noidea.dog/impostor, https://simonwillison.net/tags/annotatedtalks/ với https://simonwillison.net/2022/Nov/26/productivity/; nếu chỉnh CSS một chút, chẳng hạn đặt hình ảnh sang bên phải, thì có thể dễ đọc hơn
    • Bố cục trong đó hình ảnh xuất hiện trước câu cần đọc đặc biệt gây rối
      Kiểu như sau câu “Đây là hình một gói NTP” lại hiện ra ảnh một người đàn ông ngồi ở bàn
    • Xem video thuyết trình thực tế tốt hơn nhiều: https://ripe86.ripe.net/archives/video/1126/
    • Đây là lần đầu tôi thấy định dạng kiểu này, nhưng nó khá giống quá trình một người tò mò rơi vào hang thỏ của một chủ đề cụ thể
      Tôi thích nó
    • Đây là một bài viết thú vị, đọc như dòng ý thức
  • Cũng đáng nhắc đến NTP Pool, một tài nguyên được dùng chung trên rất nhiều thiết bị
    Đây là nhóm máy chủ NTP do các tình nguyện viên vận hành, và đặc biệt thường được chọn trên các thiết bị thuộc hệ sinh thái mã nguồn mở
    Microsoft, Apple, Google vận hành máy chủ thời gian riêng của họ, nhưng với hầu hết các trường hợp khác, NTP Pool là một tài nguyên tuyệt vời: https://www.ntppool.org/en/

    • Tôi nhớ từng có lần NTP Pool gần như bị DDoS vì một bản phát hành Snapchat iOS có lỗi: https://community.ntppool.org/t/recent-ntp-pool-traffic-incr...
    • Có một thời gian tôi tham gia pool bằng cách dùng thẻ PCI đồng bộ GPS của RIPE NCC
      Việc đó thú vị, nhưng trong môi trường phòng máy, rất khó để giữ ăng-ten vòm luôn được gắn
      Tôi không thích cáp đặc chủng, còn việc tiếp cận mái nhà thì là chuyện đau đầu về cả bảo mật lẫn rò rỉ nước
      Ngày nay đồng hồ rubidium cũng khá rẻ
      Hiện tôi đang tham gia dự án drift/availability GPS của Bert Hubert, dùng Raspberry Pi để đo độ nhìn thấy và tính sẵn sàng của GPS bên ngoài cửa sổ văn phòng tại nhà; dự án này thú vị hơn nhiều
  • Khoảnh khắc mà thiết bị đo hay phương pháp đo trở nên chính xác, ổn định và đáng tin cậy hơn vật chuẩn là điều rất thú vị
    Và rồi ai đó, thường là một cá nhân, cuối cùng phát hiện ra điều đó, hoặc trong một số trường hợp trực tiếp tạo ra điều đó
    Giây thiên văn lịch dựa trên thiên văn lịch, tức mô hình toán học của hệ Mặt Trời; thiên văn lịch chuẩn là mô hình do Simon Newcomb tạo ra vào cuối những năm 1800 bằng cách tập hợp khối dữ liệu thiên văn lịch sử khổng lồ, và nó vẫn được duy trì làm chuẩn cho đến giữa thập niên 1980
    Năm 1952, Liên đoàn Thiên văn Quốc tế đã đổi định nghĩa thời gian sang dựa trên chuyển động quay quanh Mặt Trời của Trái Đất thay vì sự tự quay của Trái Đất, vì trong thập niên 1930 người ta phát hiện rằng sự tự quay của Trái Đất không hoàn toàn đều, mà chậm đi hoặc nhanh lên từng chút một
    Đồng hồ lúc này đã chính xác hơn sự tự quay của Trái Đất, và giây thiên văn lịch trở thành chuẩn thời gian mới chính xác hơn

    • Tôi nhớ đã học nội dung này hồi trung học, nhưng vẫn thắc mắc trước đó người ta thực sự dùng độ dài của 1 giây như thế nào
      Nếu dựa trên sự tự quay của Trái Đất, thì “khối dữ liệu thiên văn lịch sử khổng lồ” mà Newcomb thu thập là dữ liệu gì?
      Tôi tự hỏi làm sao có thể nắm bắt và lưu giữ một cách đáng tin cậy độ dài thời gian nếu chỉ dựa vào tốc độ tự quay của Trái Đất vốn thay đổi theo thời gian; có lẽ đó là dữ liệu so sánh với các hiện tượng tự nhiên khác
  • Để không quá phụ thuộc vào Big Time, tôi nghĩ chúng ta cần một chuẩn theo dõi thời gian do cộng đồng duy trì và được dân chủ hóa

    • Thực ra chẳng phải cấu trúc hiện nay gần như đã như vậy rồi sao?
      True Time™ về cơ bản được xác định bằng cách lấy trung bình hàng chục đồng hồ nguyên tử ở các phòng thí nghiệm trên toàn thế giới, nên khó có gì gần với “do cộng đồng duy trì” và “dân chủ hóa” hơn thế
    • Đọc bài viết và bình luận này khiến tôi tò mò một cuộc tấn công có tổ chức vào cơ chế duy trì thời gian nền tảng sẽ gây ảnh hưởng ra sao
      Có vẻ có khá nhiều tính dư thừa và đồng thuận, nhưng tôi muốn biết hệ thống nào sẽ hỏng, vấn đề sẽ phát sinh theo mốc thời gian nào, và quá trình khôi phục sẽ diễn ra ra sao
    • Có vẻ chỉ cần bầu trời đêm quang đãng và camera điện thoại hiện đại là cũng có thể hiệu chỉnh đồng hồ
      Độ chính xác đến từng giây có lẽ cũng không phải kỳ vọng phi lý, dù việc hiệu chỉnh có thể mất một khoảng thời gian dài đến mức không thực tế
  • DARPA đang tài trợ cho chương trình Robust Optical Clock Network (ROCkN)
    Chương trình này nhằm tạo ra đồng hồ nguyên tử quang học có kích thước·trọng lượng·điện năng (SWaP) thấp, có độ chính xác và khả năng duy trì thời gian khi mất tín hiệu tốt hơn đồng hồ nguyên tử GPS, đồng thời có thể dùng được ngoài phòng thí nghiệm
    Hầu hết các nhà cung cấp cloud lớn đều lấy thời gian từ GPS, nhưng cũng đã triển khai thiết bị cấp Open Compute Time Card để có thể duy trì thời gian chính xác ngay cả khi không có GPS
    https://www.darpa.mil/news-events/2022-01-20

  • Nếu còn dư một Raspberry Pi và muốn tự vận hành máy chủ NTP Stratum 1, có bài viết này: https://austinsnerdythings.com/2021/04/19/microsecond-accura...

    • Với mục đích NTP, nên dùng Raspberry Pi 4 hơn là các bo mạch đời cũ
      Các bo cũ có cổng Ethernet nằm sau hub USB, nên mạng sẽ có jitter thời điểm gói tin ở mức mili giây, khó đạt độ chính xác NTP ở mức micro giây
      Nếu muốn thú vị hơn, bạn cũng có thể đặt nó trong hộp cách nhiệt và tạo tải CPU để giữ ấm, biến Raspberry Pi thành thứ giống bộ dao động tinh thể bù nhiệt bằng lò: https://blog.ntpsec.org/2017/03/21/More_Heat.html
    • Nếu nhận thời gian trực tiếp từ GPS thì đó là máy chủ Stratum 0
      Máy chủ Stratum 1 là máy chủ nhận thời gian từ máy chủ Stratum 0
  • Phần lớn các slide nói về vật lý của phép đo thời gian như GPS hay đồng hồ nguyên tử
    Bản thân điều đó rất thú vị, nhưng để hiểu máy tính của tôi lấy thời gian hiện tại như thế nào, câu hỏi liên quan hơn là “máy tính gia đình đo độ trễ của gói tin được gửi từ máy chủ thời gian từ xa như thế nào?”
    Những câu hỏi như liệu nó có đo thời lượng của nhiều lần khứ hồi rồi lấy trung bình làm độ trễ hay không, hoặc điều gì xảy ra nếu trong một lần khứ hồi cụ thể đột nhiên có tắc nghẽn, còn có vẻ bí ẩn hơn các câu hỏi vật lý

  • Cần cẩn thận về việc dùng nguồn thời gian nào
    Khoảng 10–15 năm trước, một trong các máy chủ của chúng tôi được cấu hình dùng tick.usno.navy.miltock.usno.navy.mil, nhưng thời gian do Hải quân phát ra có “vấn đề”
    Chỉ sau một đêm, nhiều máy chủ giấy phép không xác thực được, và chúng tôi không thể truy cập hệ thống
    Tôi nhớ SSH cũng cần thời gian chính xác trong phạm vi vài phút; cuối cùng chúng tôi đăng nhập cục bộ từ một văn phòng khác trong cùng tòa nhà, xác nhận thời gian bị lệch rồi khắc phục bằng cách đổi máy chủ thời gian và cách đồng bộ

    • Có vẻ bạn đang nhớ nhầm vài điều
      SSH hoàn toàn không quan tâm đến thời gian, trừ khi bạn dùng chứng chỉ SSH có thời hạn cực ngắn