Sincronização do relógio - Clock synchronization

A sincronização de relógios é um tópico em ciência da computação e engenharia que visa coordenar relógios de outra forma independentes . Mesmo quando ajustados inicialmente com precisão, os relógios reais irão diferir após algum tempo devido ao desvio do relógio , causado pela contagem do tempo dos relógios em taxas ligeiramente diferentes. Existem vários problemas que ocorrem como resultado de diferenças de clock e várias soluções, algumas sendo mais adequadas do que outras em determinados contextos.

Terminologia

Na comunicação serial , a sincronização do relógio pode se referir à recuperação do relógio que atinge a sincronização de frequência, em oposição à sincronização total de fase . Essa sincronização de relógio é usada na sincronização em telecomunicações e na detecção automática da taxa de transmissão .

A operação plesiocrônica ou isócrona refere-se a um sistema com sincronização de frequência e restrições soltas na sincronização de fase. A operação síncrona implica uma sincronização mais estreita com base no tempo, talvez além da frequência.

Problemas

Como resultado das dificuldades de gerenciamento do tempo em escalas menores, existem problemas associados à distorção do relógio que assumem mais complexidade na computação distribuída, na qual vários computadores precisarão realizar o mesmo tempo global. Por exemplo, em sistemas Unix , o comando make é usado para compilar código novo ou modificado e visa evitar a recompilação de código inalterado. O comando make usa o relógio da máquina em que é executado para determinar quais arquivos de origem precisam ser recompilados. Se as fontes residirem em um servidor de arquivos separado e as duas máquinas tiverem relógios não sincronizados, o programa make pode não produzir os resultados corretos.

A sincronização é necessária para a reprodução precisa de mídia de streaming . A sincronização do relógio é um componente significativo dos sistemas de áudio em Ethernet .

Soluções

Em um sistema com um servidor central, a solução de sincronização é trivial; o servidor ditará a hora do sistema. O algoritmo de Cristian e o algoritmo de Berkeley são soluções potenciais para o problema de sincronização do relógio neste ambiente.

Na computação distribuída, o problema assume mais complexidade porque um tempo global não é facilmente conhecido. A solução de sincronização de relógio mais usada na Internet é o Network Time Protocol (NTP), que é uma arquitetura cliente-servidor em camadas baseada na passagem de mensagens do User Datagram Protocol (UDP). Os timestamps Lamport e os relógios vetoriais são conceitos do relógio lógico na computação distribuída.

Em uma rede sem fio , o problema se torna ainda mais desafiador devido à possibilidade de colisão dos pacotes de sincronização no meio sem fio e à maior taxa de deriva de relógios em dispositivos sem fio de baixo custo.

Algoritmo de Berkeley

O algoritmo de Berkeley é adequado para sistemas onde um rádio-relógio não está presente; este sistema não tem como garantir a hora real a não ser mantendo um tempo médio global como o tempo global. Um servidor de horário irá periodicamente buscar o horário de todos os clientes de horário, calcular a média dos resultados e, então, reportar de volta aos clientes o ajuste que precisa ser feito em seus relógios locais para atingir a média. Este algoritmo destaca o fato de que os relógios internos podem variar não apenas no tempo que contêm, mas também na taxa de clock .

Sincronização de rede mútua de amostragem de relógio

A sincronização de rede mútua de amostragem de relógio (CS-MNS) é adequada para aplicativos distribuídos e móveis. Foi demonstrado que ele é escalonável em redes em malha que incluem nós não adjacentes indiretamente vinculados e é compatível com IEEE 802.11 e padrões semelhantes. Pode ser preciso na ordem de alguns microssegundos, mas requer conectividade sem fio física direta com atraso de link insignificante (menos de 1 microssegundo) em links entre nós adjacentes, limitando a distância entre nós vizinhos a algumas centenas de metros.

Algoritmo de Cristian

O algoritmo de Cristian depende da existência de um servidor de horário. O servidor de tempo mantém seu relógio usando um rádio-relógio ou outra fonte de tempo precisa, então todos os outros computadores no sistema permanecem sincronizados com ele. Um cliente de horário manterá seu relógio fazendo uma chamada de procedimento para o servidor de horário. As variações desse algoritmo fazem cálculos de tempo mais precisos ao fatorar o tempo de propagação do rádio da rede .

Sistema de Posicionamento Global

Além do seu uso na navegação, o Sistema de Posicionamento Global (GPS) também pode ser usado para a sincronização do relógio. A precisão dos sinais de tempo do GPS é de ± 10 nanossegundos.

Códigos de tempo do Grupo de Instrumentação Interfaixa

Os códigos de tempo IRIG são formatos padrão para a transferência de informações de tempo. Padrões de frequência atômica e receptores GPS projetados para temporização de precisão geralmente são equipados com uma saída IRIG. Os padrões foram criados pelo Grupo de Trabalho de Telecomunicações do Inter-Range Instrumentation Group (IRIG) das Forças Armadas dos Estados Unidos , o órgão de padrões do Range Commanders Council. O trabalho nesses padrões começou em outubro de 1956, e os padrões originais foram aceitos em 1960.

Protocolo de Tempo da Rede

O Network Time Protocol (NTP) é um protocolo altamente robusto, amplamente implantado em toda a Internet. Bem testado ao longo dos anos, é geralmente considerado o estado da arte em protocolos de sincronização de tempo distribuído para redes não confiáveis . Ele pode reduzir os deslocamentos de sincronização a tempos da ordem de alguns milissegundos na Internet pública e a níveis abaixo de um milissegundo nas redes locais .

Uma versão simplificada do protocolo NTP, Simple Network Time Protocol (SNTP), também pode ser usado como um protocolo de sincronização primário / secundário sem estado puro e único , mas não possui os recursos sofisticados do NTP e, portanto, tem níveis de desempenho e confiabilidade muito mais baixos .

Protocolo de Tempo de Precisão

O Protocolo de Tempo de Precisão (PTP) é um protocolo mestre / escravo para entrega de tempo altamente preciso em redes locais.

Sincronização de transmissão de referência

O algoritmo Reference Broadcast Time Synchronization (RBS) é freqüentemente usado em redes sem fio e redes de sensores. Neste esquema, um iniciador transmite uma mensagem de referência para instar os receptores a ajustar seus relógios.

Sincronização da infraestrutura de transmissão de referência

O protocolo Reference Broadcast Infrastructure Synchronization (RBIS) é um protocolo de sincronização mestre / escravo, como o RBS, baseado em um paradigma de sincronização receptor / receptor. Ele é projetado especificamente para ser usado em redes sem fio IEEE 802.11 configuradas no modo de infraestrutura (ou seja, coordenadas por um ponto de acesso). O protocolo não requer nenhuma modificação no ponto de acesso.

Ethernet síncrona

A Ethernet síncrona usa a Ethernet de maneira síncrona, de modo que, quando combinada com protocolos de sincronização, como PTP, no caso do Projeto White Rabbit , é alcançada uma precisão de sincronização de subnanosegundos.

Redes ad hoc sem fio

A sincronização é alcançada em redes ad hoc sem fio por meio do envio de mensagens de sincronização de maneira multi-hop e cada nó sincronizando progressivamente com o nó que é o remetente imediato de uma mensagem de sincronização. Os exemplos incluem o protocolo de sincronização de tempo de inundação (FTSP) e o Harmonia, ambos capazes de atingir a sincronização com precisão da ordem de microssegundos.

Veja também

Referências

links externos