David L. Mills e o legado fundamental do protocolo de tempo de rede (NTP)

22/02/2024

David L. Mills e o legado fundamental do protocolo de tempo de rede (NTP)

Por Carlos Martinez Cagnazzo, Gerente de Tecnoloiía do LACNIC

Há poucos dias, o cientista informático David L. Mills – inventor do NTP (Network Time Protocol) – faleceu em sua casa de Newark, Delaware (EUA) aos 85 anos de idade.

A ocasião é oportuna para falar de um sistema que permite aos computadores conectados à Internet sincronizar seus relógios, uma tecnologia fundamental na qual baseia-se toda a Internet moderna, mesmo que não tenha a mesma mídia e a mesma fama que outros protocolos da Internet.

Na década de 1970, vários pesquisadores estavam construindo Arpanet, umas das primeiras versões da web patrocinada pelo governo dos EUA que conectava vários nós em universidades de todo o país. À medida que a rede crescia e mais máquinas se conectavam a ela, a falta de um sistema que assegurasse que todas tivessem a mesma precisão em termos de tempo começava a dar problemas, sobretudo se a rede era utilizada para transações ou para todo tipo de comunicação e fluxo de informação em tempo real.

Devido a esta desfase de tempo imprevisível, o Dr. Mills começou a trabalhar em formas de sincronizar os tempos dos computadores. No final da década de 1970, NTP finalmente surgiu.

Vale destacar que há diferentes lugares onde as sincronizações temporais são vitais.

As redes telefônicas são uma das indústrias pioneiras em sincronizar relógios, de fato, seu sistema de coordenação temporal foi uma das fontes de verdade que o NTP tomou. Estas redes contavam com mensagens de sincronização de relógios a nível de pacotes de controle. Pontualmente, cada rede telefônica possuía uma referência de tempo – normalmente na forma de relógio atômico – que até hoje em dia continua sendo a fonte mais precisa que existe.

Porém, no caso das redes TCP/IP não existe mensagem de controle de relógio que transporte informação de sincronização. Justamente, esse é o papel do NTP, por isso é utilizado por todos os sistemas operativos, incluindo Windows, Mac OS e os sistemas operativos embebecidos nos dispositivos de rede.

Onde podemos perceber que a sincronização do tempo é importante no caso da Internet? É crucial para os links que conectam dispositivos. A chamada “deriva do relógio” ou discrepância na sincronização entre os extremos, podendo provocar a queda de enlaces. No caso dos protocolos de roteamento, também é necessário chegar a um acordo do prazo para evitar problemas.  Para os certificados digitais e sua janela de validade, também é necessária uma sincronização de relógios para evitar respostas como “certificados não válidos”, “expirados”, etc.

Gostaria de frisar que, sincronizar uma rede que por natureza já espera sincronia – como acontece com as redes telefônicas – é relativamente mais fácil do que ocorre com as redes IP, que são por natureza assincrônicas, onde não há um requisito de tempo. Em razão deste caráter assincrônico, nunca se sabe ao certo quanto tempo demora um pacote de dados em ir da origem ao destino.

Como funciona uma aproximação a um protocolo de tempo na Internet quando um pacote é enviado? A resposta seria a hora X do envio mais o tempo que esse pacote levou em viajar de um lugar para o outro. Qual seria o problema?  Que esse tempo que devemos adicionar é incerto. A “magia” do algoritmo de NTP reside em gerar uma estrutura que permita estimar esse tempo com muita precisão, através do roteamento de pacotes em redes com latência variável.

Para evitar que os erros de cálculo comecem a se acumular, NTP utiliza o algoritmo de Marzullo, baseado na escala de tempo UTC (tempo universal coordenado) incluindo suporte para características como segundos intercalares.

O servidor utiliza um sistema de hierarquia de estratos de relógio, onde os sistemas de stratum 0 estão sincronizados com um relógio externo, cuja referência é muito precisa e ineludível, como um relógio GPS ou um relógio atômico. Os stratum 1 são os que sincronizam contra os de stratum 0, os sistemas de stratum 2 derivam seu tempo de um ou mais dos sistemas de stratum 1 e assim consecutivamente.

É importante esclarecer que como normalmente fica muito oneroso operar um servidor de NTP stratum 0, o que se faz é consumir sistemas de stratum 1 ou 2. Além disso, há um máximo de níveis de stratum – concretamente até 15 – e, à medida que aumenta o número de stratum, os dispositivos se tornam menos precisos.

Vale destacar que os servidores NTP que estão disponíveis na região ou próximo de onde o dispositivo está localizado, ajudam a aprimorar um pouco mais a precisão dos relógios.  Dá para conhecer os servidores disponíveis em sites como NTP Pool Project que também oferece aos interessados a oportunidade de se unir

ao projeto. Adicionalmente o   Projeto NTP realiza pesquisa e desenvolvimento em NTP: trata-se de uma comunidade muito bem constituída que produz uma implementação de referência de código aberto do padrão NTO, mantém a documentação de implementação e desenvolve o protocolo e o padrão algoritmo utilizado para comunicar a hora entre os sistemas.

Por último, gostaria de salientar que a contribuição de Mills é uma amostra de como funciona o processo de inovação na Internet, que difere um pouco do que acontece com outras tecnologias que são mais reguladas e construídas “de cima para baixo”, como no caso das redes telefônicas.

A história da Internet evidencia muito mais aleatoriedade: começou com um conjunto básico de protocolos e, à medida que foram se exaurindo, começaram a inventar espontaneamente protocolos como HTTP ou DNS. Outro caso é o que aconteceu com o IPv4 e IPv6, entre muitos exemplos. A realidade é que a Rede começou a funcionar sem protocolo de sincronização de tempo, até que alguém percebeu que essa instância era necessária e essa contribuição fez com que a Internet funcionasse como funciona hoje em dia. Resumindo, o interessante é que sempre há alguém que – quando necessário – levanta a mão e realiza sua contribuição, neste caso, a de David L. Mills.

Subscribe
Notify of

0 Comments
Inline Feedbacks
View all comments