Um breve histórico sobre a sincronização de hora


tonea.gifFrom NBS Special Publication 432
(September 1979, now out of print)
and NTP: The Network Time Protocol

   A necessidade da sincronização da hora na escala dos milissegundos ou microssegundos é um fenômeno recente na historia da humanidade. Ele pode ser explicado com apenas uma palavra: "Progresso". Por progresso entende-se toda a revolução tecnológica que está ocorrendo no mundo desde o final dos anos 60 do século passado.
   De fato, no passado a vida não estava tão intimamente relacionada aos relógios como está hoje. Podia-se passar muito bem apenas sabendo quando acontecia a alvorada e quando acontecia o pôr-do-sol. Os relógios, aparelhos caros e restritos às classes mais abastadas, serviam mais para funções triviais como a hora do almoço, a hora do chá, etc. Seu emprego mais importante nesta época estava em atividades relacionadas com experimentos científicos, comércio, navegação, astronomia, etc.
   Já no início do século XX se sentia a necessidade da sincronização da hora pois nas atividades relacionadas a evolução da tecnologia moderna cada vez mais era necessário equipamentos com uma boa escala de precisão, entre estes estavam os relógios. A partir daí o termo "precisão de um relógio suíço" se fez sentir como nunca antes.
   Tal necessidade começou a ser aplacada no início da era atômica com os relógios de Césio e Irídio, que fornecem a hora com uma precisão na escala de alguns segundos de atraso para milhares de anos corridos. Embora muitos de nós não necessitem de um relógio com esta ordem de grandeza de precisão, as necessidades do nosso dia-a-dia, sobretudo na área da informática, nos obrigam a implementar meios que garantam a veracidade da hora estampada nas nossas máquinas em rede, sejam elas estações de trabalho ou servidores da rede.
   Existe atualmente uma gama variada de sistemas que podem fornecer a hora com uma precisão excelente para os padrões atuais, por exemplo os relógios atômicos já citados acima, os aparelhos do Sistema de Posicionamento Global (Global Positioning System - GPS), os NIST radio station WWVB, entre outros.
   Por diversas razões, sobretudo devido ao custo, conveniência e complexidade, a maioria dos relógios comuns não possuem mecanismos que garantam ser eles livres de atrasos ou adiantamentos. Os relógios dos computadores menos ainda estão livres deste problema, sobretudo porque os fabricantes não têm como prioridade construírem computadores com os relógios acurados. Este fato é compreensível pois embutir nos computadores relógios de altíssima precisão tornaria seus preços finais proibitivos para os usuários. Além disto, outros fatores contribuem para a imprecisão nos relógios internos dos computadores, como mudanças na temperatura de trabalho, interferências eletro-magnéticas, etc.
   A título de comparação, colocamos aqui um simples exemplo do BluePrint da SUN sobre NTP. Se dois relógios são sincronizados e um deles apresenta um acréscimo de 0.04 milissegundos para cada segundo que ele conta, ao final de um ano os relógios estarão defasados de mais de 20 minutos. Observe que 0.04 milissegundos é uma precisão que os relógios dos computadores, sobretudos os pessoais, não costumam ter, eles são menos precisos que isso!
   Pelas razões de ordem econômicas já citadas acima, os computadores não saem equipados de fábrica com relógios atômicos, GPS, receptores WWVB, etc. Logo, para se ter a hora exata de referência, seria necessário que se conectasse um relógio de referência em cada um dos computadores existentes no mundo para que eles tivessem uma referência confiável para a mesma, o que é totalmente inviável na prática.
   A solução para este problema é simples. Conectam-se algumas máquinas em relógios de referência e estas, através de um protocolo de comunicação em rede, fornecem a hora exata na Coordenada Universal de Tempo (Universal Time Coodinated) ou hora UTC para outras milhares de máquinas, atuando como servidores secundários de hora de referência. Por sua vez, estes servidores secundários se encarregam em distribuir esta hora de referência para um número ainda maior de máquinas clientes. Tal protocolo de comunicação em rede existe e se chama Network Time Protocol (NTP) e, igualmente, estas máquinas ligadas aos relógios de referência e seus secundários existem também, são respectivamente os NTP servers stratum 1 e os NTP servers stratum 2.
   Assim, toda vez que se deseja sincronizar a hora das máquinas de uma rede, deve-se recorrer aos NTP servers stratum 1 ou 2. Melhor ainda, deve-se eleger uma máquina da rede para consultar os NTP servers e daí esta deve fornecer a hora de referência para as demais máquinas que compõem a rede em questão. Isto garante não só o sincronismo dos seus relógios, mas também que o custo será mínimo em termos computacionais.


Copyright © 2003-2005 Rafael Jorge Csura Szendrodi