Kalkulator przesunięcia zegara serwera
Zmierz przesunięcie zegara i czas podróży w obie strony między przeglądarką a serwerem, używając sekwencyjnych żądań z pomiarem czasu.
Wejście
Wyjście
Instrukcja
Co to jest przesunięcie zegara?
Przesunięcie zegara to różnica między zegarem systemu lokalnego a rzeczywistym czasem referencyjnym — w tym przypadku zegarem serwera. Chociaż systemy operacyjne starają się synchronizować zegary za pomocą NTP (Network Time Protocol), małe rozbieżności wynoszące od kilku milisekund do kilku sekund są powszechne, szczególnie na urządzeniach, które nie były ostatnio synchronizowane lub znajdują się za ścisłymi firewallami.
Zrozumienie przesunięcia zegara ma znaczenie w systemach rozproszonych, aplikacjach czasu rzeczywistego, tokenach uwierzytelniania (takich jak TOTP), zaplanowanych zadaniach i każdym scenariuszu, w którym klient i serwer zdalny muszą uzgodnić bieżący czas. Duże przesunięcie może spowodować błędy walidacji tokenów, pominięte terminy lub nieprawidłowe znaczniki czasu w dziennikach.
Opis narzędzia
To narzędzie mierzy przesunięcie zegara między przeglądarką a serwerem, używając protokołu czasowania opartego na WebSocket. Wysyła serię sond w obie strony, rejestruje opóźnienie każdej z nich i wykorzystuje medianę czasu podróży w obie strony (RTT) do obliczenia, o ile zegar lokalny jest do przodu lub do tyłu względem serwera. Po pomiarze narzędzie wyświetla na żywo aktualizowaną estymację czasu serwera obok czasu lokalnego, aby można było obserwować różnicę w czasie rzeczywistym.
Jak to działa
Narzędzie otwiera połączenie WebSocket z serwerem i wymienia serię wiadomości ping/pong ze znacznikami czasu. Dla każdej wiadomości:
- Klient rejestruje czas wysłania, otrzymuje znacznik czasu serwera w odpowiedzi i rejestruje czas otrzymania.
- Połowa czasu podróży w obie strony jest używana jako estymacja opóźnienia w jedną stronę.
- Przesunięcie zegara jest obliczane jako:
serverTime − clientTime − (RTT / 2).
Zbierane jest dziesięć próbek i używana jest mediana RTT — nie średnia — aby zmniejszyć wpływ anomalii spowodowanych pauzami GC lub przejściowym szumem sieciowym. Wynikające przesunięcie zegara wskazuje, o ile milisekund zegar lokalny wyprzedza (dodatnie) lub opóźnia się (ujemne) względem serwera.
Funkcje
- Pomiar oparty na WebSocket — wykorzystuje komunikację dwukierunkową w czasie rzeczywistym do dokładnych sond czasowania bez narzutu HTTP
- Filtrowanie mediany RTT — zbiera 10 próbek i wykorzystuje medianę do eliminacji szumu i anomalii
- Wyświetlacz zegara na żywo — pokazuje stale aktualizowaną estymację czasu serwera i czasu lokalnego obok siebie po pomiarze