OnTheSecond

伺服器時間的測量方式

OnTheSecond 做什麼

  • 以毫秒測量網站的伺服器時鐘。和標準時間(KRISS、Google 的 NTP)比較,並算進你的網路延遲,精準告訴你該按下的時刻。
  • 一直測到開賣前一刻。開賣前 30 分鐘起每分鐘重測,確認網站背後的每一台伺服器,時鐘一變就立刻更新按下的時刻。
  • 準確度任何人都能驗證。我們公開一台每天把時鐘隨機調偏的驗證伺服器,以及每 10 分鐘對標準時間的自我檢查結果(驗證結果)。

我們把網站伺服器的時鐘和標準時間比對到毫秒,並在你設定的開賣時間之前持續重新測量。

讀取伺服器的時鐘

網站每次回應請求時,都會附上一行Date,寫著伺服器當下的時間。這個時間只到整秒,例如10:00:00。所以一次回應只能告訴我們,伺服器的時鐘落在這一秒之內的某個地方。

逐步縮小範圍

原理就像猜數字時的「再大一點、再小一點」。我們想找出伺服器的秒數跳動的那一刻,所以在預計跳動的瞬間送出請求。回應如果是:59,代表還沒跳,答案在更晚;如果是:00,代表已經跳了,答案在更早。不論哪種,剩下的範圍都能排除一半。

我們從一整秒(1000ms)開始一路減半:500ms、250ms,依此類推。每個請求也會記下送出和收到回應的時間,所以不會縮到比一次往返所需的時間更小。伺服器距離近的話,可以縮到幾毫秒。

伺服器的:00 第一次回應1秒 1000 ms 回應 :59→ 更晚 500 ms 回應 :00→ 更早 250 ms 持續減半 結果幾ms ±4 ms

網路延遲

網路慢不會讓結果偏向某一邊,只會讓範圍變寬。即使去程和回程的速度不同,真正的數值仍然在這個範圍內。因此每次測量都會分開顯示三個數字:與標準時間的差、±誤差,以及往返時間(RTT)。回應少於6個的測量不會採用。網站繁忙、誤差寬於±150ms時,那次測量不當成答案,而是用來確認上一次的精確數值是否仍然正確。如果不符,代表這段期間時鐘變了,我們就改用新的測量,並把點擊時間對準範圍較晚的一端,避免太早送達。

我們的基準:標準時間

我們的伺服器用常見的時間同步程式chrony,讓系統時鐘保持在標準時間。另外每10分鐘會再向KRISS(韓國標準科學研究院)和Google的公開時間伺服器確認一次,採用往返時間最短的回應。時間伺服器的一次回應,只能說明真正的時間落在往返時間一半的±範圍內。如果系統時鐘已在這個範圍內,就直接使用;只有超出範圍時才校正。

我們確認過的事

2026年11月1日,我們從首爾的伺服器測量了使用不同公司CDN的網站:3個韓國售票網站,以及10個以上的海外售票和購物網站。全部都在各自的誤差範圍內與標準時間一致。

因為我們從首爾測量,對於透過CDN分布在全球的網站,我們讀到的是回應首爾的那台伺服器的時鐘。回應你所在國家的,可能是另一台伺服器。目前的測量顯示這些伺服器的時鐘也很準,但海外網站的測量值請當作可靠的參考,而不是保證。