Home » Blogue » Protocolo NTP – Quartas-feiras de Tecnologia

Protocolo NTP – Quartas-feiras de Tecnologia

O protocolo NTP (Network Time Protocol) permite a sincronização de tempo de qualquer computador ou dispositivo conectado a uma rede de comunicações.

É um protocolo cliente/servidor onde os computadores que devem ser sincronizados atuam como clientes enviando solicitações de sincronização (solicitações NTP) para outro ou outros dispositivos que atuam como um servidor e que entregam a data e hora exatas (resposta NTP). A troca de mensagens, bem como um resumo do cálculo do desvio ou atraso entre o envio do pedido e a receção da resposta podem ser vistos na figura seguinte.

Fonte: ADVA e Osciloquartz

O protocolo NTP é estruturado de forma hierárquica onde o mesmo computador ou nó na rede pode atuar como cliente e servidor ao mesmo tempo. Como servidor, ele atende solicitações NTP de computadores inferiores e, como cliente, solicita tempo com mais precisão de computadores superiores, como mostra a figura a seguir. Além disso, alguns computadores podem trabalhar em modo 'par', obtendo o relógio de outro servidor, mas podendo, por sua vez, entregar o relógio a esse servidor se ele o solicitar.

Como mostrado na figura, o relógio ou sincronismo se degrada à medida que descemos o nível, uma vez que cada transação cliente/servidor implica uma perda de precisão derivada dos atrasos variáveis de transmissão e processamento dos pacotes NTP em cada um dos nós intermediários. Quanto maior o número de estrato, menor a precisão do relógio.

Formato de pacotes NTP

A figura a seguir mostra o formato e o conteúdo do pacote de resposta NTP na versão 4 que é entregue por um servidor NTP a pedido de qualquer cliente. Os pacotes NTP são encapsulados em UDP e normalmente usam a porta 123.

Fonte: Wikipedia

Abaixo descrevemos os campos em detalhes.

LI Indicador de salto (2 bits)
Este campo indica se o último minuto do dia atual deve ter um segundo bissexto. Os valores são:
0: Sem configuração de segundo bissexto (60 segundos)
1: O último minuto do dia tem 61 segundos
2: O último minuto do dia tem 59 segundos
3: Relógio NÃO sincronizado
VN Versão NTP (3 bits) (a última versão é 4).
Modo Modo de operação do nó NTP (3 bits)
0: Reservado
1: Simétrico Ativo
2: Simétrico passivo
3: Cliente
4: Servidor
5: Transmissão
6: Mensagem de controle NTP
7: Reservado para uso privado
Estrato Nível de estrato de origem de sincronização (8 bits)
0: Não especificado ou inválido
1: Servidor primário (GPS ou relógio atómico)
2–15: Servidor secundário (NTP ou SNTP)
16: Não sincronizado
17–255: Reservado
Sondagem Intervalo de sondagem (inteiro assinado de 8 bits)

É um inteiro assinado de 8 bits que indica o intervalo máximo de tempo entre duas mensagens sucessivas, expresso em segundos e como a potência mais próxima de 2. A maioria dos aplicativos usa o intervalo de 6 bits (64 seg) a 10 bits (1024 seg)

Precisão Precisão do relógio (inteiro assinado de 8 bits)

É um inteiro com um sinal que indica a precisão do relógio local expressa em segundos 1/2^Precisão

Atraso de raiz O atraso de ida e volta entre o servidor e a fonte do relógio principal. O valor é um decimal de 32 bits com um sinal expresso em segundos e com a parte fracionária entre os bits 15 e 16. Este campo só é significativo em mensagens entre servidores.
Dispersão radicular É o erro máximo devido à dispersão de frequência do relógio. O valor é um decimal de 32 bits com um sinal expresso em segundos e com a parte fracionária entre os bits 15 e 16. Este campo só é significativo em mensagens entre servidores.
Identificador de referência Para servidores Stratum 1, é uma cadeia de caracteres de 4 caracteres que indica o tipo de fonte de acordo com a tabela a seguir. Para servidores secundários, é um endereço IPV4 de 32 bits apontando para o servidor NTP de origem ou os primeiros 32 bits do Algoritmo de resumo de mensagens 5 (MD5) hash do endereço IPv6 dessa fonte de sincronização (apenas para NTP versões 4)

Tabela para identificadores de referência de relógios Stratum 1

Abaixo mostramos uma captura de tela de um pacote NTP feito com Wireshark onde podemos verificar os campos descritos acima.

Carimbos de data/hora e como a data e hora atuais são calculadas

No NTP calculamos a data e hora atuais através de carimbos de data/hora. O carimbo de data/hora é um número de 64 bits (NTP versão 3) ou 128 bits (NTP versão 4). Destes bits, os primeiros 32 ou 64 bits são usados como a potência de 2 para indicar o tempo em segundos decorridos a partir de 0:00 em 1 de janeiro de 1900. Os segundos de 32 bits ou 64 bits são usados para indicar a fração atual do segundo.

Na versão 3 do NTP podemos estimar 2^32 = 4.294.967.296 segundos que correspondem a pouco mais de 136 anos. Portanto, com NTP v3 podemos mostrar datas até 7 de fevereiro de 2036 = 1900+136. Também podemos estimar a fração de segundo até 1/(2^32) = 232 picossegundos. Na realidade, os tempos de processamento e transmissão de informação nunca nos permitirão este nível de precisão.

Se você quiser mais informações sobre como os tempos são calculados no NTP, você pode ver o David L. Moinhos

Nos pacotes NTP incluímos carimbos de data/hora que usamos para calcular o deslocamento ou variação em relação à medição anterior no cliente de acordo com o seguinte cálculo, conforme mostrado na primeira figura do post:

T1=Carimbo de data/hora de origem (no cliente)
T2=Carimbo de data/hora de recebimento (no servidor)
T3=TransmitTimestamp (no servidor)
T4=DestinationTimestamp = ReceiveTimestamp (no cliente)

deslocamento = [ (T2-T1) + (T3-T4) ] / 2

No cálculo de deslocamento, assumimos um atraso simétrico da rede dividindo o RTD (Round Trip Delay) por 2. Este deslocamento pode ser especialmente relevante quando o servidor está na Internet ou usamos um meio de transmissão de baixa velocidade (PSTN, ISDN ou satélite).

NTP Versão 3 e NTP Versão 4

NTP versão 4 surgiu como uma evolução da versão 3, mas mantém a interoperabilidade com sistemas baseados na versão anterior. As principais diferenças são:

  • permite endereçamento IPV6 entre clientes e servidores
  • permite que a segurança seja incorporada nas comunicações através da encriptação de pacotes NTP com uma chave pública simétrica
  • Modifica o tipo de dados para carimbos de data/hora do formato fixo de 64 bits para o ponto flutuante de 64 bits para reduzir o tamanho do pacote e aumentar o intervalo de valores disponíveis
  • A referência temporal é alargada com os conceitos de Era e Era Offset
  • Um sistema automático é adicionado para descobrir, configurar e autenticar servidores e clientes sem a necessidade de especificá-los manualmente. No modo de multicast, um servidor NTP envia pacotes em intervalos regulares usando um grupo de multicast específico

Nossos servidores NTP

Na DAVANTEL temos diferentes servidores NTP que atuam como relógios Stratum 1, pois possuem um recetor GPS integrado.

A família GPS NTP são servidores NTP simples versão 3 com um recetor GPS ativo que é alimentado via cabo UTP do próprio servidor NTP. Eles são de baixo custo e especialmente adequados para pequenas instalações onde não precisamos de grande estabilidade na ausência de um sinal GPS.

Temos também Servidores NTP/PTP de maior precisão, incorporando um oscilador OCXO capaz de manter o tempo com maior precisão e mais tempo na ausência de um sinal GPS.

1 estrela2 estrelas3 estrelas4 estrelas5 estrelas (2Votos, média: 5,00de 5)
A carregar...