Введение

Координация изначально независимых часов

Синхронизация часов — это область исследований в информатике и инженерии, целью которой является координация изначально независимых часов. Даже если часы изначально настроены точно, реальные часы со временем будут расходиться из-за дрейфа часов, вызванного незначительными различиями в скорости отсчета времени. Различия в скорости работы часов приводят к ряду проблем, для решения которых существует несколько подходов, некоторые из которых более предпочтительны в определенных ситуациях, чем другие.

Терминология

В последовательной связи синхронизация тактовой частоты может относиться к восстановлению тактовой частоты, которое обеспечивает синхронизацию частоты, в отличие от полной фазовой синхронизации. Такая синхронизация тактовой частоты используется в телекоммуникациях для синхронизации и автоматического определения скорости передачи данных. Плезиохронный или изохронный режим работы подразумевает систему с синхронизацией частоты и менее строгими требованиями к фазовой синхронизации. Синхронный режим работы предполагает более точную синхронизацию, основанную на времени, возможно, в дополнение к частоте.

Проблемы

В результате сложностей управления временем в малых масштабах возникают проблемы, связанные с расхождением часов, которые становятся еще более сложными в распределенных вычислениях, где нескольким компьютерам необходимо согласовать единое глобальное время. Например, в системах Unix команда `make` используется для компиляции нового или измененного кода и предназначена для предотвращения повторной компиляции неизмененных файлов. Команда `make` использует системное время машины, на которой выполняется, чтобы определить, какие исходные файлы нуждаются в перекомпиляции. Если исходные файлы расположены на отдельном файловом сервере, а время на двух машинах не синхронизировано, программа `make` может выдать некорректный результат. Синхронизация необходима для точного воспроизведения потокового мультимедиа. Синхронизация времени является важным компонентом систем передачи аудио по Ethernet.

Решение

В системе с центральным сервером решение задачи синхронизации тривиально: сервер будет задавать системное время. Алгоритм Кристиана и алгоритм Беркли являются потенциальными решениями проблемы синхронизации часов в такой среде. В распределенных вычислениях задача усложняется, поскольку глобальное время определить нелегко. Наиболее распространенным решением синхронизации часов в Интернете является протокол сетевого времени (NTP), представляющий собой многоуровневую архитектуру клиент-сервер, основанную на обмене сообщениями по протоколу пользовательских дейтаграмм (UDP). Временные метки Лампорта и векторные часы – это концепции логических часов в распределенных вычислениях. В беспроводной сети задача становится еще более сложной из-за возможности коллизий пакетов синхронизации в беспроводной среде и более высокой скорости расхождения часов на недорогих беспроводных устройствах.

Алгоритм Беркли

Алгоритм Беркли подходит для систем, в которых нет радиочасов. В такой системе нет возможности узнать точное время, кроме как поддерживать глобальное среднее время в качестве общего времени. Сервер времени периодически запрашивает время у всех клиентов, усредняет полученные значения и затем сообщает клиентам о необходимой корректировке их локальных часов для достижения этого среднего значения. Этот алгоритм подчеркивает, что внутренние часы могут различаться не только по отображаемому времени, но и по скорости хода.

Синхронизация взаимной сети с отбором часов

Взаимная синхронизация сети с отбором времени (CS MNS) подходит для распределенных и мобильных приложений. Показано, что она масштабируема в сетях mesh, включающих косвенно связанные несмежные узлы, и совместима с IEEE 802.11 и аналогичными стандартами. Достижимая точность составляет несколько микросекунд, однако требуется прямое физическое беспроводное соединение с пренебрежимо малой задержкой связи (менее 1 микросекунды) между соседними узлами, что ограничивает расстояние между ними несколькими сотнями метров.

Алгоритм Кристиана

Алгоритм Кристиана опирается на наличие сервера времени. Сервер времени поддерживает точность своего времени, используя радиочасы или другой точный источник времени, а все остальные компьютеры в системе синхронизируются с ним. Клиент времени поддерживает точность своего времени, выполняя вызов процедуры на сервере времени. Различные варианты этого алгоритма выполняют более точные вычисления времени, учитывая время распространения сигнала по сети.

Системы спутниковой навигации

Помимо использования в навигации, Глобальная система позиционирования (GPS) также может применяться для синхронизации времени. Точность сигналов времени GPS составляет ±10 наносекунд. Для синхронизации с использованием GPS (или других спутниковых навигационных систем) требуется приемник, подключенный к антенне с незагороженным обзором неба.

Коды времени группы инструментации между диапазонами

Временные коды IRIG — это стандартные форматы для передачи информации о времени. Атомные частотные эталоны и GPS-приемники, предназначенные для прецизионного времени, часто оснащаются выходом IRIG. Стандарты были разработаны Рабочей группой по телекоммуникациям межведомственной группы приборов США (IRIG), являющейся органом по стандартизации Совета командующих полигонами. Работа над этими стандартами началась в октябре 1956 года, а первые стандарты были утверждены в 1960 году.

Протокол времени сети

Протокол сетевого времени (NTP) — это высоконадежный протокол, широко используемый в сети Интернет. Многократно проверенный на практике за годы его существования, он общепризнан как передовой протокол синхронизации времени в распределенных системах для ненадежных сетей. Он позволяет снизить расхождения во времени до нескольких миллисекунд при синхронизации через общедоступный Интернет и до долей миллисекунды в локальных сетях. Упрощенная версия протокола NTP, Простой протокол сетевого времени (SNTP), также может использоваться как однократный, без сохранения состояния, протокол первичной/вторичной синхронизации, однако он лишен сложных функций NTP и, следовательно, демонстрирует значительно более низкую производительность и надежность.

Протокол точности времени

Протокол точного времени (PTP) — это протокол «ведущий-ведомый» для обеспечения высокоточной синхронизации времени в локальных сетях.

Справочная синхронизация передач

Алгоритм синхронизации времени по опорному вещанию (RBS) часто используется в беспроводных и сенсорных сетях. В этой схеме инициатор передает опорное сообщение, чтобы заставить приемники скорректировать свои часы.

Синхронизация ссылочной инфраструктуры вещания

Референтный протокол синхронизации инфраструктуры вещания (RBIS) — это протокол синхронизации типа «мастер-ведомый», как и RBS, основанный на парадигме синхронизации по приёмникам. Он специально разработан для использования в беспроводных сетях IEEE 802.11, настроенных в инфраструктурном режиме (то есть управляемых точкой доступа). Протокол не требует внесения изменений в точку доступа.

Синхронный Ethernet

Синхронный Ethernet использует Ethernet в синхронном режиме, и в сочетании с протоколами синхронизации, такими как PTP в проекте White Rabbit, достигается субнаносекундная точность синхронизации.

Беспроводные сети ad hoc

Синхронизация в беспроводных ad hoc сетях достигается посредством отправки сообщений синхронизации по многоскачковой схеме, при этом каждый узел последовательно синхронизируется с узлом, который является непосредственным отправителем сообщения синхронизации. Примером является протокол синхронизации времени по наводнению (FTSP). Результаты данного исследования апробируются в приложениях для финансовых рынков.