Qual é a hora exata para?
Das funções que o servidor de tempo permite realizar, podemos nomear a formação correta da cronologia de eventos em sistemas de controle para manter registros, registros, informações de arquivamento, tendências de construção, gráficos, etc.
Em sistemas de vigilância por vídeo, o servidor de tempo fornece a vinculação do vídeo capturado ao tempo astronômico. Além disso, o dispositivo permite que você compare com precisão as informações de diferentes sistemas de informação da empresa. Por exemplo, podem ser sistemas de vigilância por vídeo e sistemas de segurança, como ACS, sistemas de proteção de relés e sistemas de telemecânica independentes, etc.
Vários protocolos de troca de informações usam carimbos de data / hora diretamente como parte de pacotes de dados transmitidos. Esses protocolos incluem IEC-101/104, usado em sistemas de telemecânica modernos.
Um dos requisitos importantes para uma série de aplicações industriais são os requisitos de segurança da informação que excluem o acesso à Internet para executar a função de sincronização de tempo.
Devido à sua simplicidade e uma série de razões históricas para resolver o problema de sincronização de tempo, o protocolo NTP é o mais amplamente utilizado. Além de servidores, arquivos e estações de operação de sistemas de controle, controladores e painéis IHM, equipamentos de rede de sistemas de comunicação (switches gerenciados, roteadores, etc.) podem atuar como clientes NTP em uma empresa.
Protocolo NTP
O protocolo de tempo de rede (NTP) é um protocolo de rede para sincronizar relógios em sistemas de computador em redes de dados comutadas por pacotes com atraso variável (latência). A alta popularidade do protocolo se deve ao desenvolvimento ativo de sistemas baseados em Ethernet. Uma das principais vantagens do protocolo é a capacidade de transmitir timestamps diretamente pela rede de dados, o que elimina a necessidade de um barramento de tempo separado, como em sistemas 1PPS ou IRIG-B. O protocolo foi desenvolvido em 1985 e é um dos protocolos de Internet mais antigos em uso hoje.
O NTP fornece uma precisão de tempo aceitável para a maioria dos aplicativos. O protocolo pode suportar tempo com uma precisão de dezenas de milissegundos na Internet e até 0,2 ms em redes locais em condições ideais. Caminhos de dados assimétricos e congestionamento de rede podem resultar em erros de 100 ms ou mais.
O NTP sincroniza os dispositivos com o Tempo Universal Coordenado (UTC). Nesse caso, o protocolo leva em consideração o surgimento de um segundo bissexto como resultado da rotação irregular da Terra, mas não transmite nenhuma informação sobre fusos horários locais ou horário de verão.
Estrutura do sistema
O NTP usa um sistema hierárquico de fontes de tempo precisas. Cada nível da hierarquia é chamado de Stratum (estrato, camada) e é atribuído um número começando em 0 para o relógio de referência no topo da hierarquia. O servidor de horário na camada N é sincronizado a partir dos servidores na camada N-1. O número N representa a distância do relógio de referência e é usado para evitar o ciclo durante a sincronização. Stratum nem sempre é uma medida de qualidade ou confiabilidade. Por exemplo, você pode encontrar fontes de tempo na camada 3 que são de qualidade superior às fontes de tempo na camada 2.
Estrato 0
Os relógios de referência no Stratum 0 são sistemas de navegação por satélite (GLONASS, GPS, etc.), relógios atômicos ou transmissores de rádio. Uma vez por segundo, eles geram um sinal de pulso (1PPS) que dispara uma interrupção e gera um carimbo de data / hora nos dispositivos conectados. Os dispositivos da camada 0 também são conhecidos como relógios de referência. Os servidores NTP não podem se posicionar no sistema como Stratum 0. Se o campo Stratum for definido como 0 em um pacote de dados, isso indica uma camada indefinida.

A estrutura lógica do sistema de sincronização com base no NTP
Stratum 1
Essa camada contém dispositivos cuja hora do sistema é sincronizada com alguns microssegundos do relógio de referência. Os servidores de tempo neste nível podem trabalhar no modo ponto a ponto com outros servidores Stratum 1 para redundância e verificação de precisão. Eles também são chamados de servidores de horário primários.
Stratum 2
Esses são dispositivos que sincronizam na rede de servidores Tier 1. Freqüentemente, dispositivos Tier 2 pesquisam vários servidores Tier 1. Os computadores Stratum 2 também podem ser ponto a ponto com outros computadores Stratum 2 para fornecer tempo mais estável e confiável para todos os dispositivos em um grupo de pares. nós.
O número máximo teórico de camadas é 15; Stratum 16 é usado para indicar que o dispositivo está fora de sincronia. Os mecanismos NTP em cada dispositivo no sistema interagem para criar o caminho mais curto para os servidores Stratum 1 para todos os clientes. Isso minimiza a latência acumulada na transmissão de dados e melhora a precisão do tempo. O algoritmo para construir uma árvore estendida com um comprimento de caminho mínimo é baseado no algoritmo Bellman-Ford.
Carimbos de hora
O NTP originalmente usava carimbos de data / hora de 64 bits, consistindo em uma parte de 32 bits para segundos e uma parte de 32 bits para frações de segundo, o que forneceu uma linha do tempo que rolaria a cada 32 segundos (136 anos) e forneceria uma resolução teórica de 2-32 segundos (233 picossegundos). A contagem regressiva começou em 1º de janeiro de 1900, então a primeira época terminaria em 7 de fevereiro de 2036.
A versão mais recente do protocolo NTPv4 apresenta um formato de tempo de 128 bits: 64 bits para segundos e 64 bits para frações de segundo, o que dá uma linha do tempo de mais de 584 bilhões de anos e uma resolução de 0,05 attossegundos. Além disso, um campo de número de era de 32 bits foi introduzido, o que eliminou até mesmo o problema teórico do final de cada era.
Algoritmo de sincronização de relógio
O cliente NTP controla um ou mais servidores regularmente. Ao fazer isso, ele calcula a diferença de tempo e o atraso de ida e volta. O deslocamento de tempo θ é a diferença em tempo absoluto entre os relógios do servidor e do cliente e é determinado pela fórmula: O

atraso de ida e volta δ é definido como o tempo que um sinal é transmitido pelas linhas de comunicação do cliente para o servidor e vice-versa. Este é o tempo necessário para enviar o sinal, mais o tempo necessário para confirmar que um sinal foi obtido por:

onde t 0 - marca de tempo do cliente para transmitir um pacote de solicitação,
t 1 - carimbo de data / hora que recebe o pacote de solicitação do servidor,
t 2 - um rótulo de tempo do servidor para transmissão de um pacote de resposta,
t 3- carimbo de data / hora do cliente que recebe o pacote de resposta.

Algoritmo para calcular a diferença de tempo e o atraso de ida e volta
Os valores calculados de θ e δ são passados por filtros e submetidos à análise estatística. Os valores discrepantes da amostra total são descartados e o desvio de tempo é estimado com base nos valores restantes. Conhecendo a diferença de tempo e o atraso de ida e volta, o cliente ajusta seu próprio tempo para atingir θ igual a zero.
A sincronização precisa é obtida quando as rotas de entrada e saída entre o cliente e o servidor são simétricas, ou seja, têm a mesma latência. Se as rotas forem assimétricas, haverá uma tendência sistemática de metade da diferença entre o momento em que um pacote é enviado do cliente para o servidor e de volta.
Mecanismos de transmissão
Na maioria dos casos, o protocolo NTP usa o modelo clássico de operação cliente-servidor, no qual o cliente envia uma solicitação e depois de um tempo recebe uma resposta do servidor. No entanto, o protocolo permite a operação ponto a ponto, onde dois pontos se vêem como uma fonte de tempo potencial. Este modo de operação também é denominado simétrico. Para comunicação de rede, o NTP usa o protocolo UDP, por padrão trabalhando na porta 123. Para transmissão de dados, vários mecanismos podem ser usados - unicast, broadcast, multicast e manycast.
Modo Unicast
O NTP geralmente usa o modo Unicast para transferência de dados. Neste modo, os dados são transferidos de um dispositivo de rede para outro individualmente. Os pacotes Unicast usam o endereço específico do dispositivo para o qual o pacote se destina como endereço IP de destino. Modo de
transmissão
Este modo é conveniente nos casos em que um pequeno número de servidores NTP atende a um grande número de clientes. Nesse modo, o servidor envia pacotes periodicamente usando o endereço de sub-rede de broadcast. Um cliente configurado para sincronizar dessa forma recebe o pacote de broadcast do servidor e sincroniza com ele.
Este modo possui vários recursos. Primeiro, o modo Broadcast fornece menor precisão de tempo do que Unicast. Em segundo lugar, os pacotes de broadcast só podem ser transmitidos dentro da mesma sub-rede. Além disso, é aconselhável usar métodos de autenticação para proteção contra intrusos.
Modo multicast O modo multicast
funciona da mesma maneira que Broadcast. A diferença é que o endereço do grupo multicast é usado para entrega de pacotes, não o endereço de sub-rede de broadcast. Clientes e servidores são atribuídos a um endereço IP multicast que eles usam para sincronização de tempo. Isso torna possível sincronizar grupos de máquinas localizadas em diferentes sub-redes, desde que os roteadores que as conectam suportem IGMP e estejam configurados para transmitir tráfego multicast.
Modo Manycast
Este modo é novo na versão mais recente (v4) do protocolo NTP. O modo Manycast funciona como modo Multicast apenas com endereços IP desconhecidos de servidores NTP. Ao enviar mensagens multicast, o cliente pesquisa a rede do servidor Manycast, recebe amostras de tempo de cada um deles e seleciona os três "melhores" servidores com os quais fará a sincronização. Em caso de falha de um dos servidores, o cliente atualiza automaticamente sua lista.
Clientes e servidores operando no modo Manycast também usam endereços de grupo multicast para transmitir amostras de tempo. Clientes e servidores que usam o mesmo endereço formam uma associação. O número de associações é determinado pelo número de endereços multicast usados.
Versões de protocolo
Desde o seu surgimento em 1985, o protocolo começou a desenvolver-se ativamente e em 1992 mudou quatro versões (de NTPv0 para NTPv3). Cada nova versão adiciona funcionalidade e otimiza seu trabalho, mas deixa o formato dos dados inalterado e mantém as diferentes versões compatíveis entre si. A última quarta versão do protocolo data de 2010. O NTP continua a evoluir hoje, o trabalho está em andamento para criar uma solução que seja tecnicamente semelhante ao PTP (Precision Time Protocol) mais preciso.
SNTP
Simultaneamente ao NTPv3 em 1992, uma versão mais simples do protocolo foi introduzida - SNTP (Simple NTP). O SNTP usa o mesmo formato de transmissão e apresentação do NTP. Ao mesmo tempo, o SNTP não diz respeito aos algoritmos do servidor, mas simplifica os algoritmos dos clientes. É por isso que o protocolo é mais frequentemente usado em sistemas embarcados e dispositivos que não requerem alta precisão.
A diferença entre NTP e SNTP está nos métodos de determinação dos servidores ideais para sincronização e no método de correção de tempo. Assim, o NTP permite que o cliente use o algoritmo matemático de interseção (uma versão reprojetada do algoritmo de Marzullo) para selecionar vários dos melhores servidores na rede e ajustar seu tempo sem problemas. O SNTP usa um servidor NTP predefinido para sincronização, enquanto outros só podem ser backups em caso de perda de comunicação com o dispositivo principal. Nesse caso, um cliente usando SNTP é capaz de ajustar o tempo apenas em um salto após receber uma resposta do servidor.
Diagrama típico do sistema de sincronização e suas desvantagens
Tradicionalmente, o sistema de precisão de tempo nas instalações industriais é baseado em um servidor NTP composto por uma unidade principal montada no mesmo gabinete com equipamentos de rede e uma antena remota, que é instalada externamente e conectada ao servidor por meio de um cabo coaxial. Ao mesmo tempo, a unidade principal possui várias interfaces de rede (Ethernet ou RS-232/485) para conectar clientes em uma ou várias redes.

Sistema de tempo de precisão típico
Se você examinar esta solução mais de perto, verá várias desvantagens. Em primeiro lugar, esse sistema carece de redundância total. Apesar de a unidade principal ter várias interfaces de rede e ser capaz de fornecer tempo preciso em várias redes, sua falha ou falha levará à perda da fonte de tempo preciso em todo o site. A redundância total da unidade principal em tal solução tornará o já caro sistema de sincronização ainda mais caro.
A segunda desvantagem é a necessidade de instalar um servidor de horário no gabinete. Isso não é uma desvantagem para grandes projetos, mas para pequenos sistemas de controle local pode ser um problema sério.
Além disso, as desvantagens incluem a necessidade de usar uma antena remota e um cabo coaxial. Por quê? Em primeiro lugar, o custo de uma antena GPS / GLONASS de alta qualidade com um cabo longo e proteção contra roedores pode facilmente ultrapassar 10.000 rublos. em preços de 2020. Nesse caso, os cabos coaxiais têm um comprimento limitado para a transmissão de sinais de sistemas de satélite. Acima de 50 m, o sinal se atenuará significativamente, o que é um sério fator limitante em grandes edifícios.
A principal desvantagem da abordagem tradicional para a criação de sistemas de sincronização é seu alto custo (geralmente mais de 150.000 rublos), que afeta significativamente a estimativa não apenas de projetos pequenos, mas também de grandes projetos.
Como tornar o sistema mais barato e confiável
A tendência incondicional das tecnologias modernas é a criação de dispositivos eletrônicos mais compactos e fáceis de usar. Nesse sentido, os servidores de horário não são exceção.
Toda a solução de sincronização, incluindo a antena GPS / GLONASS, pode caber em uma pequena caixa, como é feito no
FL TIMESERVER da Phoenix Contact. O dispositivo é feito no princípio de uma antena inteligente, ou seja, combina diretamente a funcionalidade de um servidor de horário e uma antena receptora GPS / GLONASS. O seu design é o único que o distingue das soluções habituais.

Servidor de horário FL TIMESERVER NTP
Como mostra a prática, o dispositivo é capaz de fornecer comunicação com sistemas de satélite mesmo dentro de edifícios, mas para uma recepção de sinal mais confiável pode ser operado em condições externas, pois é feito em uma caixa com nível de proteção contra poeira e umidade IP68 e é capaz de operar em uma ampla faixa de temperatura de -40 a +70 C Neste caso, o servidor de horário é montado como antena convencional, possui alimentação redundante do circuito 24 V DC e / ou via cabo Ethernet (PoE) e é diagnosticado por SNMP. Para instalações externas, um prensa-cabo de vedação é usado para manter um alto nível de proteção contra poeira e umidade.
Em termos de funcionalidade, não há diferenças: o aparelho é capaz de receber carimbos de hora e dados de geolocalização de sistemas de navegação por satélite (GLONASS, GPS) e transmitir essas informações aos clientes em uma rede Ethernet.

Sistema de tempo baseado na solução Phoenix Contact
Com esta solução, o sistema de sincronização é bastante simplificado e elimina as desvantagens da abordagem tradicional. FL TIMESERVERtem apenas uma porta Ethernet, mas se você precisar usar várias interfaces, basta conectá-lo a um switch ou usar várias antenas inteligentes. Nesse caso, obteremos um backup completo dos servidores de horário, e não apenas de sua interface de rede. Nesse caso, a solução final ainda será mais barata do que muitos análogos existentes. FL TIMESERVER pode ser movido para fora da rede ou gabinete de automação, economizando espaço interno. Esta solução não requer uma antena separada, aqui ela já está embutida e podemos conectar à rede corporativa com um cabo Ethernet comum. Por sua vez, isso permite mover o servidor de horário a uma distância de até 100 m do equipamento principal sem medo de que o sinal diminua. A vantagem mais importante dessa solução é uma ordem de preço completamente diferente.O custo de um servidor de hora é inferior a 300 euros, o que o torna conveniente para uso em projetos pequenos e grandes.