O que é NTP (Network Time Protocol)?

O NTP, ou "Network Time Protocol" (Protocolo de Tempo de Rede), é um protocolo usado para sincronizar os relógios de dispositivos conectados a uma rede com o horário correto. Ele opera na camada de aplicação (Camada 7) do modelo de referência OSI e é definido na "RFC 1305" pela Internet Engineering Task Force (IETF).

Ao sincronizar o horário usando NTP, um cliente NTP envia uma solicitação a um servidor NTP. O protocolo de transporte subjacente utilizado é o UDP, e a porta do servidor é a UDP 123. O servidor NTP responde com o Tempo Universal Coordenado (UTC), um padrão de tempo baseado no tempo atômico internacional mantido por relógios atômicos de césio. Existem outras referências de horário mundial, como o GMT (Horário de Greenwich), derivado da velocidade de rotação da Terra, mas o UTC é o mais utilizado. Como podem existir discrepâncias entre o UTC e o UT1, segundos intercalares são ocasionalmente inseridos no UTC para alinhar o horário com maior precisão à rotação da Terra.

Os servidores NTP são organizados hierarquicamente na internet. Os servidores NTP de nível mais alto são chamados de Estrato 1, e cada nível inferior aumenta o valor numérico do estrato. Os servidores NTP sincronizam seus relógios com vários servidores de nível superior. Os servidores de Estrato 1 obtêm a hora exata do "Estrato 0", que inclui fontes de tempo precisas, como GPS e relógios atômicos. As fontes de tempo do Estrato 0 mantêm uma precisão inferior a um microssegundo (1/1.000.000 de segundo) e são conectadas diretamente aos servidores de Estrato 1.

Como o NTP transmite dados de horário por redes, ele precisa levar em conta os atrasos de comunicação, medindo-os e fazendo os devidos ajustes. O NTP calcula o tempo de ida e volta da comunicação e usa esse valor para compensar os atrasos da rede. No entanto, isso pressupõe que os atrasos sejam simétricos nos dois sentidos. Se houver uma diferença entre os atrasos dos trajetos de ida e de volta, metade dessa diferença contribuirá para a margem de erro.