Network Time Protocol (NTP) là một thuật toán phần mềm giữ cho các máy tính và các thiết bị công nghệ khác nhau có thể đồng bộ hóa thời gian với nhau. NTP đã đạt được thành công trong việc giữ các thiết bị đồng bộ hóa hiệu quả trong chỉ trong vài milliseconds (1/1000s), nhưng để có thể làm được điều này nó cần phải có một hệ thống thời gian đáng tin cậy để sử dụng làm điểm thời gian chính cho việc đồng bộ.
1. Lợi ích của NTP server
a. Backup dữ liệu theo lập lịch
Backup dữ liệu rất quan trọng với bất kỳ tổ chức nào, nếu hệ thống quá sai về thời gian sẽ khiến việc sao lưu không chính xác.
b. Tăng tốc độ mạng
Nhiều thiết bị sử dụng cache và hệ thống tập tin diện rộng có thể dựa vào tem thời gian (timestamp) để xác định phiên bản nào của đoạn dữ liệu ứng với thời điểm hiện tại. Đồng bộ thời gian không chính xác có thể khiến hệ thống như cache server hoạt động không chính xác, sử dụng sai phiên bản dữ liệu.
c. Hệ thống quản lý mạng
Khi có vấn đề gì đó, việc kiểm tra log hệ thống là một phần chính của debug lỗi. Nhưng nếu thời gian trong những file log này không đồng bộ/không chính xác thì có thể bạn sẽ mất khoảng thời gian dài hơn để tìm ra nguyên nhân và khắc phục lỗi hệ thống.
d. Phân tích xâm nhập
Trong trường hợp nếu có sự xâm nhập mạng trái phép, việc tìm hiểu xem mạng của bạn bị xâm nhập như thế nào và dữ liệu nào được truy cập có thể được kiểm tra rõ ràng nếu bạn có log thời gian chính xác việc login trên router hoặc máy chủ. Hacker thường sẽ xóa log nếu có, nhưng nếu họ không xóa thì bạn cần thời gian chính xác để chuẩn đoán đó.
e. Tuân thủ các quy định
Sarbanes Oxley, HIPAA, GLBA và các quy định khác có thể sẽ cần trong tương lai vì vậy đòi hỏi thời gian chính xác trong các giao dịch cũng như dữ liệu.
2. NTP server hoạt động như thế nào
NTP client gửi một gói tin trong đó chứa tem thời gian được chuyển tiếp đến máy chủ ở dạng số ngày càng tăng từ một điểm thời gian cố định trước đó (unixtime)
Máy chủ NTP sử dụng tem thời gian để tính toán, nếu thời gian trên mạng không khớp sẽ được cộng trừ thêm số giây để khớp với đồng hồ/máy chủ NTP cấp cao hơn đang tham chiếu. Sau đó gửi trả lại NTP client một gói tin khác, có thể thời gian là thời điểm nó gửi gói tin đó đi.
NTP client nhận được gói tin đó, tính toán độ trễ, dựa và thẻ thời gian mà nó nhận được cùng với độ trễ đường truyền, NTP client sẽ set lại thời gian của nó.
NTP chính xác trong khoảng 1/100s trên môi trường internet và thực hiện tốt hơn trên mạng LAN và WAN với độ chính xác là 1/5000s.
3. Public NTP server
Một máy chủ public NTP là một máy chủ thời gian trên internet, như đúng tên gọi, các thành viên trong cộng đồng có thể sử dụng public NTP như một nguồn thời gian đáng tin cậy. Nơi tốt nhất trên internet để tìm một danh sách các máy chủ public NTP là trang web: http://www.pool.ntp.org/
Có hai danh sách máy chủ public NTP trên trang này, một là cho các máy chủ chính (primary servers) và một cho máy chủ thứ cấp (secondary servers).
Các máy chủ chính có tới hàng trăm khách hàng, nhiều máy chủ chính không cho phép truy cập, mà chỉ cho những client nào mà họ đồng ý thôi. Nguyên nhân là do quá nhiều traffic đổ vào để yêu cầu lấy tín hiệu thời gian làm các server chính này quá tải.
Các máy chủ chính cũng chính là Stratum 1 bởi vì nó lấy nguồn thời gian trực tiếp từ đồng hồ nguyên tử hoặc GPS, sóng dài. Các máy chủ thứ cấp thường là Stratum 2, nhận nguồn thời gian từ Stratum 1.
Khi sử dụng máy chủ NTP public bạn cần tuân thủ chính sách và yêu cầu mà nhiều tổ chức trên các máy chủ này quy định.