Serwery czasu: Utrzymywanie dokładnego czasu na komputerach
Wysłane przez Richard N Williams on Września 8th, 2008
Sieci komputerowe opierają się na pomiarze czasu prawie wszystkich aplikacji, od wysłania wiadomości e-mail do zapisywania danych, znacznik czasu jest potrzebny do śledzenia komputera. Wszystkie routery i przełączniki muszą działać z tą samą szybkością, niezsynchronizowane urządzenia mogą prowadzić do utraty danych, a nawet do całych połączeń.
Wszystkie komputery i urządzenia sieciowe korzystają z zegarów, aby utrzymać wewnętrzny czas systemu. Te zegary, zwane układami zegara czasu rzeczywistego (RTC), dostarczają informacji o czasie i dacie. Chipy są zasilane bateryjnie, dzięki czemu nawet podczas przerw w zasilaniu mogą utrzymać czas.
Jednak komputery osobiste nie są zaprojektowane jako idealne zegary, ich konstrukcja została zoptymalizowana pod kątem masowej produkcji i niskich kosztów, zamiast utrzymywania dokładnego czasu. Jednak te wewnętrzne zegary są podatne na dryfowanie i chociaż dla wielu zastosowań może to być całkiem odpowiednie, często maszyny muszą współpracować w sieci i jeśli komputery dryfują z różnymi prędkościami, komputery będą się zlewały ze sobą i problemy mogą powstają szczególnie w przypadku transakcji wrażliwych na czas.
W przypadku niektórych transakcji konieczne jest perfekcyjne zsynchronizowanie komputerów, nawet kilka sekund różnicy między komputerami może mieć poważne skutki, takie jak znalezienie biletu lotniczego, który zarezerwowałeś, zostało sprzedane kilka chwil później innemu klientowi lub możesz wyciągnąć oszczędności z bankomat i kiedy twoje konto jest puste, możesz szybko przejść do innej maszyny i wycofać ją ponownie.
Serwery czasu są jak inne serwery komputerowe w tym sensie, że zwykle znajdują się w sieci. Serwer czasu zbiera informacje o taktowaniu, zwykle z zewnętrznego źródła sprzętowego, a następnie synchronizuje sieć do tego czasu.
Większość serwerów czasu używa NTP (Network Time Protocol), który jest jednym z najstarszych używanych protokołów internetowych, wynalezionym przez dr Davida Millsa z University of Delaware, jest on wykorzystywany od 1985. NTP to protokół przeznaczony do synchronizacji zegarów na komputerach i sieciach w Internecie lub w sieciach lokalnych (LAN).
Protokół NTP wykorzystuje zewnętrzny punkt odniesienia, a następnie synchronizuje wszystkie urządzenia w sieci do tego czasu.
Często serwery czasu są zsynchronizowane ze źródłem UTC (czas uniwersalny koordynowany), który jest globalną standardową skalą czasu i umożliwia synchronizację komputerów na całym świecie dokładnie w tym samym czasie. Ma to oczywiste znaczenie w branżach, w których liczy się dokładny czas, na przykład giełda lub linia lotnicza.
Istnieją różne źródła, które serwer czasu może wykorzystać jako odniesienie czasowe. Internet jest oczywistym źródłem, jednak internetowe odniesienia do czasu z Internetu, takie jak nist.gov i windows.time, nie mogą być uwierzytelniane, przez co serwer czasu, a tym samym sieć, jest podatna na zagrożenia bezpieczeństwa.