NTP
(Network Time Protocol - Giao th?c đ?ng b? th?i gian m?ng) la m?t giao th?c đ? đ?ng b? đ?ng h? c?a cac h? th?ng may tinh thong qua m?ng d? li?u
chuy?n m?ch goi
v?i đ? tr? bi?n đ?i. Giao th?c nay đ??c thi?t k? đ? tranh ?nh h??ng c?a đ? tr? bi?n đ?i b?ng cach s? d?ng b? đ?m jitter. NTP c?ng la ten g?i c?a ph?n m?m đ??c tri?n khai trong d? an D?ch v? NTP Cong c?ng (NTP Public Services Project).
NTP la m?t trong nh?ng
giao th?c Internet
lau đ?i nh?t v?n con đ??c s? d?ng (t? tr??c n?m 1985). NTP đ??c thi?t k? đ?u tien b?i Dave Mills t?i tr??ng đ?i h?c Delaware, hi?n ong v?n con qu?n ly no cung v?i m?t nhom ng??i tinh nguy?n.
NTP khong co lien quan đ?n cac giao th?c đ?n gi?n h?n la
DAYTIME
(
RFC 867
) va
TIME
(
RFC 868
).
NTP s? d?ng
thu?t toan Marzullo
, va no c?ng h? tr? cac tinh n?ng nh?
giay nhu?n
. NTPv4 thong th??ng co th? đ?m b?o đ? chinh xac trong kho?ng 10 mili giay (1/100 s) tren m?ng
Internet
cong c?ng, va co th? đ?t đ?n đ? chinh xac 200 micro giay (1/5000 s) hay h?n n?a trong đi?u ki?n ly t??ng c?a moi tr??ng
m?ng c?c b?
.
Tren m?ng Internet, NTP đ?ng b? đ?ng h? c?a cac h? th?ng may tinh theo
UTC
; trong moi tr??ng LAN đ?c l?p, NTP c?ng th??ng đ??c s? d?ng đ? đ?ng b? v?i UTC, nh?ng v? nguyen t?c no co th? đ??c s? d?ng đ? đ?ng b? v?i m?t m?c th?i gian khac, vi d? nh? mui gi? t?i ch?.
Chi ti?t ho?t đ?ng c?a NTP đ??c quy đ?nh trong cac
RFC 778
,
RFC 891
,
RFC 956
, FRC 958 (thay th? b?i 1305), va
RFC 1305
. Chu?n đang đ??c tri?n khai la phien b?n 4 (
NTPv4
); tuy nhien, vao n?m
2005
, ch? co phien b?n 3 va cac phien b?n c? h?n đ??c quy đ?nh trong cac
RFCs
. T? ch?c
IETF
NTP Working Group
đa chu?n hoa ho?t đ?ng c?a c?ng đ?ng NTP t? khi co
RFC 1305
.
M?t phien b?n đ?n gi?n h?n c?a NTP khong c?n yeu c?u l?u tr? thong tin trao đ?i c? đ??c g?i la
Giao th?c đ?ng b? Th?i gian m?ng đ?n gi?n - Simple Network Time Protocol
hay
SNTP
. Giao th?c nay đ??c s? d?ng cho cac thi?t b? nhung va trong cac ?ng d?ng khong c?n đ? chinh xac cao v? th?i gian. Xem cac
RFC 1369
,
RFC 1769
,
RFC 2030
va
RFC 4330
.
Chu y r?ng NTP ch? cung c?p th?i gian UTC, va khong co thong tin v?
mui gi?
hay
gi? ti?t ki?m anh sang ngay (Daylight saving time)
. Thong tin vay n?m ngoai ho?t đ?ng c?a NTP va đ??c xac đ?nh b?ng cach khac (h?u h?t cac h? th?ng đ?u cho phep ch?nh cac thong s? nay).
Tri?n khai ph?n m?m NTP
[
s?a
|
s?a ma ngu?n
]
đ?i v?i cac h? th?ng UNIX hi?n đ?i, NTP Client đ??c tri?n khai d??i d?ng m?t ti?n trinh
daemon
ch?y lien t?c trong
user space
. Vi tinh nh?y c?m v?i đ?ng b? th?i gian, c?n ph?i co m?t đ?ng h? NTP chu?n
phase-locked loop
tri?n khai trong
kernel space
. T?t c? cac phien b?n g?n đay c?a
Linux
,
BSD
, va
Solaris
đ?u ap d?ng cach nay.
T?t c? cac phien b?n
Microsoft Windows
t? phien b?n 2000 đ?u co D?ch v? đ?ng b? Windows (Windows Time Service), co ch?c n?ng đ?ng b? đ?ng h? c?a may tinh v?i m?t NTP server. Tuy nhien, phien b?n
Windows 2000
đ??c tri?n khai Simple NTP, va no khong t??ng thich v?i chu?n NTP phien b?n 3.
[1]
. T? phien b?n
Windows Server 2003
, Microsoft đa ap d?ng phien b?n đ?y đ? NTPv3 theo RFC1305 cho Windows Time Service.
Tuy nhien, Windows Time Service khong th? đ?m b?o đ? chinh xac h?n 1-2 giay. Microsoft khong đ?m b?o va khong h? tr? s? chinh xac c?a d?ch v? W32Time gi?a cac
nut m?ng
. D?ch v? W32Time khong h? tr? đ?y đ? cac tinh n?ng ma cac ?ng d?ng nh?y c?m v?i th?i gian c?n.
[2]
đ?ng h? tham chi?u NTP co th? đ??c cai đ?t tren m?t h? th?ng Microsoft Windows. Thong th??ng no la m?t ph?n m?m mi?n phi c?a nha s?n xu?t đ?ng h? tham chi?u t? GPS đ??c cai đ?t thong qua Microsoft Installer.
NTP s? d?ng ki?n truc phan c?p, phan l?p cho cac c?p ngu?n đ?ng b?, m?i m?t c?p trong phan c?p nay đ??c g?i la m?t "statum' va đ??c gan m?t s? c?a c?p b?t đ?u t? 0 la c?p cao nh?t. C?p stratum ch? ra no đa qua bao nhieu trung gian đ? đ?n đ??c c?p tham chi?u va c?p stratum c?ng giup tranh tham chi?u vong trong phan c?p. Chu y r?ng c?p stratum khong co y ngh?a ch? ch?t l??ng hay đ? ?n đ?nh, d? dang tim th?y m?t ngu?n đ?ng b? "stratum 3" co ch?t l??ng t?t h?n m?t ngu?n "stratum 2" khac. đ?nh ngh?a v? statum nay c?ng khac v?i stratum dung trong đ?ng b? vi?n thong.
- Stratum 0
- Bao g?m nh?ng thi?t b? nh?
đ?ng h? nguyen t?
(atomic clock), đ?ng h? GPS hay cac đ?ng h? vo tuy?n khac. Thi?t b? Stratum-0 th??ng khong đ??c k?t n?i tr?c ti?p vao m?ng ma đ??c k?t n?i v?i may tinh (vi d? thong qua c?ng RS-232 s? d?ng tin hi?u xung).
- Stratum 1
- đay la cac may tinh k?t n?i v?i thi?t b? Stratum 0. đay la ngu?n đ?ng h? tham chi?u cho cac server Stratum 2. Cac may tinh nay con đ??c g?i la
time server
. Cac server Stratum 1 (v?i NTPv3 hay tr??c đo) co th? khong ho?t đ?ng v?i đ? chinh xac c?a c?p Stratum 1.
- Stratum 2
- La cac may tinh g?i cac yeu c?u NTP đ?n cho server Stratum 1. Thong th??ng may tinh Stratum 2 s? tham chi?u t? nhi?u server Stratum 1 va s? d?ng thu?t toan NTP đ? thu th?p thong tin chinh xac nh?t, va b? tham chi?u đ?n cac server Stratum 1 ho?t đ?ng khong chinh xac. Cac may tinh Stratum 2 s? lien l?c v?i cac may tinh Stratum 2 khac đ? co đ??c th?i gian chinh xac va ?n đ?nh h?n trong nhom. May tinh Stratum 2 theo phan c?p l?i la ngu?n tham chi?u cho cac yeu c?u t? Stratum 3.
- Stratum 3
- Cac may tinh nay c?ng th?c hi?n cac ch?c n?ng nh? Stratum 2, va t??ng t? c?ng la ngu?n tham chi?u cho cac c?p th?p h?n, co th? co t?i đa 16 c?p. Tuy vao phien b?n, NTP co th? h? tr? đ?n 256 Stratum.
Trong phien b?n NTP 5 đang đ??c phat tri?n, d? ki?n ch? co 8 stratum đ??c cho phep. H?u h?t cac NTP clients s? tham chi?u đ?n Stratum 2 server, nen s? khong b? ?nh h??ng khi co it c?p h?n.
Nhan th?i gian (timestamp) 64 bit c?a NTP bao g?m 32 bit ch? giay va 32 bit ch? ph?n chi ti?t trong 1 giay, NTP timestamp co th? mo t? đ??c m?t th?i gian trong kho?ng 2
32
giay (136 n?m) va đ? chi ti?t đ?n 2
?32
(233 pico giay).
NTP timestamp s? l?p l?i m?i 2
32
giay (136 n?m). NTP l?y m?c th?i gian vao thang 1, n?m 1900, vi th? no s? l?p l?i vao n?m 2036, tr??c s? c? UNIX n?m 2038.
Vi NTP ho?t đ?ng d?a tren chenh l?ch gi?a cac time stamp va khong bao gi? d?a tren
gia tr? tuy?t đ?i
, vi?c l?p l?i nhan s? khong co ?nh h??ng n?u gi?a cac nhan sai l?nh khong qua 68 n?m. đi?u nay c?ng co ngh?a vi?c l?p l?i vao n?m 2036 s? khong ?nh h??ng đ?n cac h? th?ng đang ho?t đ?ng vi thong th??ng chenh l?ch th?i gian la r?t nh?. Tuy nhien, khi h? th?ng v?a kh?i đ?ng, c?n xac đ?nh ngay chinh xac trong 68 n?m.
Tuy nhien, cac phien b?n ti?p theo c?a NTP s? s? d?ng timestamp 128 bit.64 bits s? d?ng cho giay va 64 bits s? d?ng cho ph?n th?p phan c?a giay. Tren th?c t? 64 bits cho ph?n th?p phan đ? dung đ? th? hi?n kho?ng th?i gian m?t photon bay t? th?i đi?m hinh thanh đ?n th?i đi?m (photon) v??t kh?i vanh đai đi?n t? (xung quanh nguyen t?) v?i
t?c đ? anh sang
. Con 64 bits s? d?ng cho giay đ? đ? di?n t? th?i gian cho đ?n luc v? tr? tan l?i (2^64 giay t??ng đ??ng 585 t? n?m).
Even so, future versions of NTP may extend the time representation to 128 bits: 64 bits for the second and 64 bits for the fractional-second.
According to Mills, "The 64 bit value for the fraction is enough to resolve the amount of time it takes a
photon
to pass an
electron
at the speed of light. The 64 bit second value is enough to provide unambiguous time representation until the
universe goes dim
."
[3]
Indeed, 2
?64
seconds is about
54 zeptoseconds
, and 2
64
seconds is about
585 billion years
.
Th?t thu v? khi bi?t r?ng trong l?ch s? 25 n?m c?a NTP r?t it v?n đ? v? b?o m?t đ??c phat hi?n, tuy nhien c?ng co vai v?n đ? b?o m?t đ??c ch? ra.
[4]
[5]
Giao th?c NTP tr?i qua nhi?u hi?u ch?nh va đanh gia trong toan b? l?ch s? phat tri?n c?a no, khong co nguy c? b?o m?t nao lien quan đ?n chu?n c?a giao th?c NTP.
[5]
[6]
Ma ngu?n chu?n cho NTP đang đ??c s? d?ng đa tr?i qua nhi?u đanh gia b?o m?t t? nhi?u ngu?n khac nhau trong nhi?u n?m, va khong co l? h?ng nguy hi?m nao đ??c phat hi?n.
[7]
- Mills, David L.
Computer Network Time Synchronization: The Network Time Protocol
. Taylor & Francis / CRC Press.
ISBN
0849358051
.