Какво е отместване на часовника?

Отместването на часовника е разликата между часовника на вашата локална система и истинското референтно време — в този случай часовника на сървъра. Въпреки че операционните системи се опитват да синхронизират часовниците с помощта на NTP (Network Time Protocol), малки разлики от няколко милисекунди до няколко секунди са обичайни, особено на устройства, които не са синхронизирани наскоро или са зад строги firewall.

Разбирането на отместването на часовника е важно в разпределени системи, приложения в реално време, маркери за удостоверяване (като TOTP), планирани задачи и всеки сценарий, където вашият клиент и отдалечен сървър трябва да се договорят за текущото време. Голямо отместване може да причини отказ при валидиране на маркери, пропуснати крайни сроки или неправилни времеви печати в логовете.

Описание на инструмента

Този инструмент измерва отместването на часовника между вашия браузър и сървъра, използвайки протокол за синхронизиране на времето, базиран на WebSocket. Той изпраща серия от проби за пътуване туди-назад, записва закъснението на всяка и използва медианното време на пътуване туди-назад (RTT), за да изчисли колко напред или назад е вашият локален часовник спрямо сървъра. След измерването инструментът показва живо работещо прогнозиране на времето на сървъра наред с вашето локално време, така че да можете да наблюдавате разликата в реално време.

Как работи

Инструментът отваря WebSocket връзка към сървъра и обменя серия от маркирани с времеви печат ping/pong съобщения. За всяко съобщение:

  1. Клиентът записва времето на изпращане, получава времевия печат на сървъра в отговора и записва времето на получаване.
  2. Половината от времето на пътуване туди-назад се използва като прогноза на еднопосочното забавяне на мрежата.
  3. Отместването на часовника се изчислява като: serverTime − clientTime − (RTT / 2).

Събират се десет проби и се използва медианното RTT — не средната стойност — за намаляване на влиянието на отклоняващи се скокове, причинени от GC паузи или преходни колебания на мрежата. Полученото отместване на часовника показва колко милисекунди вашият локален часовник води (положително) или изостава (отрицателно) сървъра.

Функции

  • Измерване на базата на WebSocket — използва комуникация в реално време в двете посоки за точни проби за синхронизиране на времето без HTTP режийни разходи
  • Филтриране на медианното RTT — събира 10 проби и използва медианата, за да елиминира колебанията и отклоняващите се скокове
  • Живо показване на часовника — показва непрекъснато актуализирано прогнозирано време на сървъра и вашето локално време един до друг след измерването