Обзор методов безопасной синхронизации времени
1. Введение
В процессе промышленного развития беспроводные сенсорные сети (БСС) быстро вытеснили проводные сети благодаря своим преимуществам. БСС — это совокупность пространственно распределённых узлов, объединённых в кооперативную сеть для мониторинга и регистрации физических параметров и условий окружающей среды. Сегодня сенсорные сети используются в самых разных сферах нашей жизни, таких как медицинское обслуживание пожилых людей, видеонаблюдение, ликвидация последствий стихийных бедствий и сбор разведывательной информации на поле боя. Синхронизация времени имеет решающее значение для сенсорных сетей, поскольку она обеспечивает точную и безопасную локализацию, более эффективное чередование режимов работы, формирование диаграммы направленности и выполнение других задач по совместной обработке сигналов. Одной из важных особенностей беспроводных сенсорных сетей является возможность плавного и
бесконфликтного роуминга от одной станции к другой, что возможно только при наличии точной информации о времени. Кроме того, синхронизация времени является ключевым элементом для определения точного местоположения. Аналогичным образом, при синхронизации сети различные процедуры, такие как передача данных, вычисление фреймов, анализ и инкапсуляция протоколов, могут приводить к значительным задержкам в зависимости от конфигурации аппаратного и программного обеспечения, что может привести к сбоям в синхронизации времени. Синхронизация времени является ключевым элементом для объединения данных, управления энергопотреблением, определения местоположения, координации действий в будущем, присвоения временных меток событиям и чередования режимов работы в беспроводных сенсорных сетях. Широкое распространение беспроводных приложений, таких как отслеживание целей, мониторинг окружающей среды и научные исследования в опасных условиях, привлекло внимание злоумышленников к БСС. Кроме того, авторы отмечают, что для обеспечения точности и надёжности работы этих приложений важно, чтобы все сенсорные узлы синхронизировались по единому времени. Необходимость ограничения энергопотребления, а также вычислительных и коммуникационных ресурсов узлов в БСС усложняет процесс разработки эффективного протокола. Кроме того, миниатюризация аппаратного обеспечения и разработка маломощных устройств привели к появлению небольших устройств с питанием от аккумулятора, способных определять такие параметры, как температура и уровень шума. Однако миниатюризация и разработка маломощных устройств ограничили возможности датчиков по обработке данных и передаче информации, что усложняет обеспечение безопасности протокола.
2. Синхронизация времени
2.1. Постановка задачи
В последние годы в научной литературе широко изучается проблема синхронизации времени в беспроводных сетях, направленная на достижение более высокого уровня точности при большей масштабируемости топологии и приложений. Однако до сих пор не существует надёжной схемы синхронизации времени из-за сложности, связанной с взаимодействием узлов. Синхронизация времени — это метод синхронизации узлов.
Компьютерные часы состоят из двух частей: генератора и счётчика. C(t) — это часы, в которых счётчик сетевого узла увеличивает своё значение в соответствии с угловой частотой генератора. В идеальных условиях угловая частота постоянна, но она может меняться из-за физических факторов, таких как температура, вибрация и давление. Локальные часы узла i и реальное время t связаны следующим соотношением:
Ci(t) = ait + bi (1)
где ai — отклонение (дрейф) часов узла i, а bi — смещение.
Дрейф — это изменение частоты генератора, а смещение — это разность значений от реального времени t. Локальные часы узлов 1 и 2 сравниваются как:
Ci(t) = a12 x C2 + b12 (2)
где a12 — относительный дрейф, а b12 — относительное смещение часов узлов 1 и 2. Если относительный дрейф равен 1, а относительное смещение равно 0, то оба узла идеально синхронизированы. Тактовая частота сетевого узла и смещение могут быть использованы для корректировки его локального времени согласно приведённым выше уравнениям. В настоящее время существует множество протоколов для достижения синхронизации времени; однако эти протоколы уязвимы для многих атак.
2.2. Важность синхронизации времени
Киберфизические атаки на синхронизацию времени сети могут ухудшить производительность сети, например, вызвать нарушение порядка передачи данных, несинхронизированное выполнение задач, периодические отключения и неисправности. В статье «Безопасная синхронизация времени в беспроводных сенсорных сетях: подход, основанный на максимальном консенсусе», опубликованной еще в 2013 году в журнале IEEE Transactions on Parallel and Distributed Systems, подробно разъясняется, как атаки, которые могут нарушить синхронизацию времени, могут привести к усилению помех в сети, перехвату пакетов и задержкам в передаче сообщений. Таким образом, безопасная синхронизация времени становится ключевым элементом беспроводных сенсорных сетей, обеспечивающим их надёжную работу. Плохая синхронизация времени может привести к искажению временных меток, ложным оценкам местоположения узлов, потере пакетов и повышенному энергопотреблению из-за нарушения режима сна и бодрствования. Сенсорные узлы мониторят данные, которые могут быть подвержены утечке, и привести к нарушению личной конфиденциальности, а увеличение киберфизических атак приведёт к большим затратам энергии на повторную синхронизацию. БСС требуют, чтобы все узлы работали эффективно путём синхронизации друг с другом для экономии энергопотребления. Схема синхронизации времени может быть подвержена влиянию многих факторов, происходящих в сети, таких как коммуникационные накладные расходы, доступная пропускная способность, требования к точности, масштабируемость и требования к инфраструктуре. Как описано выше, сенсорные узлы имеют ограниченные ресурсы и низкое энергопотребление, и поэтому энергия, сэкономленная в процессе синхронизации, может быть использована для целей безопасности. Чтобы избежать описанных выше проблем, при проектировании сенсорных сетей необходимо уделять особое внимание вопросам безопасности, конфиденциальности данных и защиты персональных данных.
2.3. Распространённые проблемы синхронизации времени
Синхронизация времени — это обширная область, в последние несколько десятилетий ей были посвящены многие исследования, в которых предлагалось использовать несколько алгоритмов и механизмов.
Узел A отправляет сообщение узлу B со своим текущим временем, чтобы синхронизироваться с узлом B. Если доставка и получение сообщения не задерживаются, узел B может сразу же вычислить разницу во времени и скорректировать его в соответствии с показаниями узла A. Однако в реальной беспроводной сети на доставку сообщений влияют различные типы задержек, обусловленные описанными выше факторами, что значительно усложняет синхронизацию времени. Чтобы оценить относительные отклонения и смещения в показаниях часов на разных узлах, можно передавать серию синхронизирующих сообщений. Таким образом, синхронизацию времени можно рассматривать как процесс устранения задержек при передаче синхронизирующих сообщений.
Однако в БСС нецелесообразно использовать текущие методы синхронизации из-за уникальных характеристик БСС, таких как ограниченная мощность батареи, ограниченная доступная пропускная способность и ограниченные вычислительные ресурсы и объём памяти. Эти характеристики делают традиционные схемы синхронизации времени, т. е. сетевой временной протокол (NTP) и глобальную систему позиционирования (GPS), непригодными для БСС. Для достижения синхронизации времени необходимо учитывать следующие проблемы:
2.3.1. Недетерминированные задержки
Недетерминированные задержки при доставке сообщений и сложности с оценкой времени передачи напрямую влияют на проблемы, связанные с безопасной синхронизацией времени. Например, время доступа на физическом уровне может быть в разы больше, чем требуемая точность синхронизации в сети. Как показано на рисунке 1, задержки при доставке сообщений состоят из следующих компонентов:
время отправки (send time) — время формирования сообщения на прикладном уровне. Сюда также входят задержки, связанные с накладными расходами операционной системы и обработкой протокола;
время доступа (access time) — время, которое необходимо подождать после перехода на уровень управления доступом к среде (MAC), чтобы получить доступ к каналу передачи данных;
время передачи (transmission time) — время, необходимое для передачи сообщения на физическом уровне (PHY). Эта задержка является детерминированной и может быть рассчитана исходя из размера пакета;
время распространения (propagation time) — фактическое время передачи сообщения от отправителя к получателю. Эта задержка является детерминированной и зависит от расстояния, но в большинстве случаев она настолько мала, что ею можно пренебречь при оценке времени передачи;
время приёма (reception time) — время, необходимое для приёма сообщения на физическом уровне (PHY), которое совпадает со временем передачи сообщения;
время получения (receive time) — время, которое требуется получателю для формирования и отправки полученного сообщения на прикладной уровень.

Рис. 1. Компоненты задержки пакетов.
2.3.2. Устойчивость к сбоям (Robustness)
Сенсорные сети остаются без присмотра на длительное время в условиях агрессивной среды. В случае выхода из строя некоторых узлов или нарушения связи оставшиеся узлы должны продолжать синхронизироваться. Мобильные узлы перемещаются, что может нарушить работу схем маршрутизации и привести к разделению сети на сегменты.
2.3.3. Скорость сходимости
Беспроводные сенсорные сети всегда состоят из большого количества сенсорных узлов, и два узла могут взаимодействовать друг с другом через множество промежуточных узлов, что затрудняет снижение скорости сходимости при разработке алгоритмов синхронизации времени. Эти проблемы необходимо тщательно проанализировать и устранить, чтобы избежать недетерминированной задержки при передаче радиосообщений, которая может повлиять на точность синхронизации времени. Помимо этих проблем, существует ряд требований, определяющих, какой метод синхронизации следует использовать.
2.4. Требования к синхронизации времени
Синхронизация времени важна для некоторых распределённых систем и для всех типов сетей. В других системах, особенно не зависящих от внешних факторов, синхронизация времени не требуется. В последнее время были предложены и стали использоваться различные механизмы и алгоритмы синхронизации времени, однако беспроводные сенсорные сети обладают рядом характеристик, из-за которых эти механизмы и алгоритмы не подходят для них. Например, из-за ограниченной ёмкости аккумуляторов и пропускной способности датчиков невозможно часто отправлять синхронизирующие сообщения, а миниатюрное оборудование снижает вычислительную мощность и объём памяти. Таким образом,
традиционные методы синхронизации, такие как NTP и GPS, не подходят для БСС, поскольку их общие требования невозможно выполнить при ограниченных ресурсах. В предыдущем разделе мы проанализировали текущие проблемы, которые влияют на различные методы синхронизации времени и делают их непригодными для использования.
3. Текущие методы синхронизации времени
В последнее время были проведены ценные исследования по методам безопасной синхронизации времени. Некоторые результаты исследований описаны ниже.
3.1. Глобальная система позиционирования (GPS)
Глобальная система позиционирования — это навигационная система, основанная на 32 спутниках, которая изначально использовала 24 спутника, разработанная Министерством обороны США (DoD). Она предоставляет точную информацию о местоположении и времени при любой погоде, в любом месте на Земле или вблизи Земли, где есть прямая видимость трёх или более спутников GPS. Синхронизация времени GPS
(рисунок 2) обеспечивает точность порядка 200 нс, но оборудование стоит дорого и потребляет много энергии. Кроме того, для правильной и точной работы хотя бы три спутника должны быть постоянно в прямой видимости. В настоящее время по крайней мере четыре спутника находятся в прямой видимости всё время, как показано на рисунке ниже; однако это может быть невозможно в некоторых случаях, например, внутри зданий или под водой.

Рис. 2. Синхронизация времени GPS.
Для обеспечения синхронизации времени устройства GPS принимают данные со спутников. Для этого требуется GPS-приёмник в каждом устройстве, что нецелесообразно, особенно для беспроводных устройств, из-за затрат на оборудование и ограничений по питанию. Узлы получают информацию о реальном времени от GPS и синхронизируются следующим образом. Каждый узел имеет свои собственные аппаратные часы; обозначим значение аппаратных часов узла i как Hi(t).
Мы предполагаем, что аппаратные часы каждого узла имеют ограниченный дрейф ρ<11. Для всех узлов i:
| ∀t : 1 — ρ ≤ ( | dHi(t) | ) ≤ 1 + ρ | (3) |
| dt |
где t — реальное время, d — расстояние, и ρ — ограниченный дрейф. Каждый узел вычисляет значение логических часов, используя свои аппаратные часы и полученное сообщение от других узлов. Отметим значение логических часов узла i в момент времени t как Li(t). Алгоритм синхронизации часов пытается убедиться, что логические значения узлов близки к реальному времени и близки к значениям друг друга.
Точность синхронизации времени GPS будет варьироваться в разное время, в зависимости от количества спутников, которые могут обмениваться данными с приёмником. Кроме того, требуется некоторое время для сообщения GPS, чтобы распространиться по всей сети. Например, сообщение GPS получено на узле i входным действием gps(t)<sub>i</sub>. Цель сообщения — информировать i, что текущее реальное время есть t. Однако может потребоваться больше времени для сообщения, чтобы достичь узла i в большой сети, и узел i может получить это сообщение после реального времени t. Дорогостоящее оборудование, такое как GPS-приёмник, и высокие энергетические требования протокола GPS приводят к использованию увеличенной пропускной способности и вычислительной мощности, что делает его непригодным, потому что сенсоры имеют ограниченную мощность батареи, ограниченную доступную пропускную способность, ограниченное пространство
хранения и ограниченную вычислительную мощность.
3.2. Протокол сетевого времени (NTP)
NTP использует несколько алгоритмов для уменьшения джиттера, повышения отказоустойчивости и предотвращения некорректной работы серверов, что позволяет ему обеспечивать точность менее десятков миллисекунд в глобальных сетях (WAN) и субмиллисекунд в локальных сетях (LAN).
Синхронизация узла A и узла B осуществляется путём обмена пакетами. Узел A хранит свое локальное время в пакете запроса T1. Затем узел B ставит временную метку T2 согласно текущему локальному времени по прибытии запроса и отправляет ответ T3 , который включает текущее локальное время отправления пакета. Когда Узел A получает ответ, он помечается как T4 , как показано на рисунке 3. Затем NTP вычисляет смещение часов и задержку кругового пути соответственно:
| offset = | (T2 — T1) + (T3 — T4) | (4) |
| 2 |
| delay = (T4 — T1) — (T3 — T2) | (5) |
NTP не учитывает энергопотребление и постоянно нагружает процессор, чтобы синхронизировать работу генератора, что невозможно в случае с сенсорными узлами, потому что они имеют ограниченные ресурсы и не могут тратить весь цикл CPU на синхронизацию времени.

Рис. 3. Двустороннее «рукопожатие» между парой узлов.
3.3. Протокол синхронизации времени для сенсорных сетей (TPSN)
Протокол синхронизации времени для сенсорных сетей TPSN (Timing-Sync Protocol for Sensor Networks) был предложен
Ганеривалом и его коллегами для синхронизации времени во всей сети. В модели TPSN используется структура «отправитель — получатель». Получатель синхронизирует свои часы с часами отправителя с помощью двустороннего подтверждения, как показано на рисунке 4:

Рис. 4. Синхронизация между двумя узлами.
Узел A отправляет импульсный пакет в T1 , чтобы начать синхронизацию, которая включает его номер уровня и значение T1 согласно его локальным часам. Узел B получает это сообщение в T2 , и T2=T1+D+d, где T1 — сообщение от узла A, D — относительный дрейф часов между узлом A и узлом B, и d — задержка распространения импульса, отправленного между узлами. Узел B отправляет пакет подтверждения в момент времени T3 , который включает номер уровня узла B и значения T1 , T2 и T3. Узел A синхронизирует себя с узлом B после вычисления дрейфа часов и задержки распространения, как показано ниже:
| D = | (T4 — T1) — (T3 — T2) | (6) |
| 2 |
| offset = | (T2 — T1) + (T3 — T4) | (7) |
| 2 |
TPSN работает в две фазы: сначала фаза обнаружения, а затем фаза синхронизации. Цель первой фазы — присвоить уровень каждому узлу и создать иерархическую топологию в сети. Только корневому узлу присваивается уровень 0, как показано ниже на рисунке 5.
Во второй фазе все узлы подключаются к родительскому узлу в иерархической структуре через сообщение двустороннего «рукопожатия», аналогично NTP, показанному выше. Таким образом, все узлы синхронизируются с корнем, и синхронизация всей сети достигается за счёт двусторонней передачи сообщений о подтверждении между узлами A и B, как показано на рисунке 4.

Рис. 5. Иерархическая структура.
Синхронизация зависит от родителей узлов в иерархической структуре; поэтому высокая точность синхронизации может быть достигнута даже при увеличении размера сети. Однако в случае отказа обслуживание этой структуры увеличивает энергопотребление. Поскольку связность узла в иерархической структуре меняется, когда узел перемещается, структура должна быть сформирована соответственно, так как в TPSN узел корректирует свои часы согласно своему родительскому узлу. Эти сложности обслуживания и высокое энергопотребление делает TPSN непригодным для безопасной синхронизации времени, потому что в БСС узлы могут постоянно перемещаться.
3.4. Протоколы Tiny-Sync и Mini-Sync
Сичитиу и Вирариттифан в статье «Простая и точная синхронизация времени для беспроводных сенсорных сетей», опубликованной в 2003 году в сборнике трудов конференции IEEE Wireless Communications and Networking, предложили два легковесных алгоритма синхронизации, т.е. tiny-sync и minisync. Чтобы получить смещение и разницу скоростей между двумя узлами, как алгоритм tiny-sync, так и алгоритм minisync используют технику измерения времени множественного кругового пути и технику линейной аппроксимации. Множественные круговые пути выполняются для получения точек данных для линейной аппроксимации, как показано на рисунке 6, где узел A является клиентом, а узел B — эталоном.

Рис. 6. Расчёт точек данных.
В этой же статье было высказано предположение, что узел A ставит временную метку на сообщении с t0 и отправляет его узлу B. Узел B ставит временную метку на сообщении с tb , как только получает его, и отправляет его обратно узлу A, который получает сообщение и ставит временную метку с tr , как показано на рисунке 6.
Каждое измерение кругового пути приводит к точке данных (tb,[t0 ,tr]), которая эффективно ограничивает возможные значения параметров a12 и b12. Поскольку t0 произошло до tb, и tb произошло до tr , следующие неравенства должны выполняться:
| t0(t) < a12tb(t) + b12 | (8) |
| tr(t) > a12tb(t) + b12 | (9) |
Описанные выше вычисления повторяются несколько раз, и данные всех временных точек сохраняются. Две линии с минимальным и максимальным наклоном определяются с использованием техники линейной аппроксимации, которая предоставляет нам границы для относительного смещения и разницы скоростей двух узлов, используя их наклон и ось. Линия, которая имеет средний наклон и пересечение, используется для определения смещения и разницы в скорости между этими двумя узлами.
Протоколы tiny-sync и mini-sync используют метод оценки для предоставления решения относительного дрейфа и относительного смещения, что уменьшает сложность и энергопотребление; однако это требует более высоких вычислительных ресурсов и памяти для генерации точных результатов. Вычислительные ресурсы и память зависят от количества точек данных. Меньшее количество точек данных предоставляет субоптимальное решение, тогда как большее количество точек данных предоставляет оптимальное решение, но занимает большое количество памяти и вычислительных ресурсов. Миниатюризированные современные технологии имеют меньше памяти и меньше доступных вычислительных ресурсов, что делает этот алгоритм непригодным для них.
3.5. Протокол облегчённой синхронизации времени (LTS)
Основной фокус протокола облегчённой синхронизации времени (LTS) — минимизировать энергетические затраты путём уменьшения накладных расходов, оставаясь при этом надёжным и самоконфигурирующимся. Облегчённая синхронизация времени строит древовидную структуру внутри сети для обеспечения общесетевой синхронизации. Основная функция протокола заключается в том, что он продолжает работать
эффективно, даже если есть отказ узла. Он направлен на максимизацию точности при минимизации сложности синхронизации и использования вычислительных ресурсов. Предполагается, что требуемая точность в сенсорных сетях низкая; поэтому целесообразно использовать легковесную схему синхронизации. Однако в некоторых приложениях, таких как измерение времени прохождения звука, распределение акустического формирования диаграммы направленности, обнаружение оползней, предотвращение стихийных бедствий и обнаружение лесных пожаров, требуется высокоточная синхронизация времени. Кроме того, при увеличении размеров сети точность синхронизации уменьшается линейно, например, от корневого узла к листовому узлу точность уменьшается. Рисунок 7 объясняет, как выполняется синхронизация LTS.
Протокол попарной синхронизации LTS использует технику удалённого чтения часов для синхронизации двух соседних узлов. Например, узел i хочет синхронизировать свои часы с узлом j. Узел i отправляет сообщение запроса синхронизации, и когда синхронизация запускается, сообщение помечается временем Ci(t1). После задержки при доступе к среде с произвольным доступом узел i отправляет пакет в момент времени t2, и узел j получает его в момент времени t3=t2+τ+tp, где τ — задержка распространения, и tp — время передачи пакета.
В момент времени t4 прибытие пакета сигнализируется прерыванием и помечается временем t5 с Cj(t5), за которым следует пакет ответа, помеченный временем Cj(t6) в момент времени t6 (также включает предыдущие временные метки Cj(t5) и Ci(t1)).

Рис. 7. Попарная синхронизация LTS.
| Английский термин | Перевод |
|---|---|
| trigger resynchronisation | Запуск повторной синхронизации |
| format synch packet | Формат синхронизирующего пакета |
| time stamp with | Метка времени с |
| hand over packet for transmission | Пакет передачи |
| operating system channel access | Доступ к каналу операционной системы |
| start packet transmission | Начало передачи пакета |
| propagation delay | Задержка распространения |
| packet transmission time | Время передачи пакета |
| packet reception interrupt | Прерывание приёма пакета |
| format synch answer packet | Формат синхронизирующего ответного пакета |
Узел i получает пакет ответа в t7 и помечает его временем Ci(t8) в момент времени t8. Узел i предполагает, что нет дрейфа часов между t1 и t8 , O=Δ(t*) для всех t* [t1 ,t8] и оценивает смещение O путём оценки Δ(t5) следующим образом:
| O = Δ(t5) := Ci(t5) — Cj(t5) | (10) |
Однако t5 является неизвестной величиной между t1 и t8. Неопределённость можно уменьшить, как видно из приведённого выше рисунка, где показано время распространения τ и время передачи tp между t1 и t5 , а также между t5 и t8.
Мы предполагаем, что оно одинаково в обоих направлениях. Поскольку у нас есть t5 и t6 , мы можем получить разницу как Cj (t6)-Cj(t5). Мы также предполагаем, что операционная система, доступ к каналу, прерывание и задержка доступа к среде тоже одинаковы в обоих направлениях, как показано на рисунке 7. Поэтому Cj(t5) генерируется в момент времени:
(11)
Поэтому смещение O равно:
| = | Δ(t5) = Ci(t5) — Cj(t5) | |||
| = |
|
(12) |
Узел i может корректировать свои часы, добавив смещение O, потребовалось только два пакета для синхронизации узла i и узла j.
Третий пакет от узла i к узлу j может быть использован, включая O, если цель состоит в том, чтобы узел j знал о смещении.
После обеспечения попарной синхронизации протокол LTS решает синхронизацию всех узлов с опорным узлом. Для этой цели предложены два разных подхода, т.е. централизованный подход и распределённый подход.
В централизованном подходе строится связующее дерево, и затем синхронизируются узлы. Опорный узел является корневым узлом связующего дерева и отвечает за запуск синхронизации сети. Корневому узлу передаётся информация о глубине связующего дерева, поскольку она влияет на время синхронизации всей сети, а значит, эту информацию можно использовать для определения времени повторной синхронизации. Важнейшим фактором здесь являются затраты на передачу данных, поскольку для попарной синхронизации требуется три пакета, а синхронизация всей сети потребует количества пакетов, равного числу узлов, умноженному на 3, что увеличивает энергопотребление при построении связующего дерева.
В распределённом подходе структура связующего дерева не используется, и каждый узел может решать время своей собственной синхронизации. Когда любой узел, такой как узел A, нуждается в синхронизации, он отправляет запрос синхронизации своему ближайшему опорному узлу, как показано на рисунке 8.

Рис. 8. Многоступенчатая синхронизация.
По пути от опорного узла к узлу А должны быть синхронизированы все узлы, что позволяет избежать ненужной частой синхронизации. Поскольку синхронизировать нужно все узлы — от опорного до узла-инициатора, можно отправить коллективный запрос на синхронизацию, чтобы сократить количество используемых ресурсов.
3.6. Протокол потоковой синхронизации времени (FTSP)
Протокол потоковой синхронизации времени (FTSP) был предложен Мароти и соавторами в статье «Протокол синхронизации времени распространения сигнала», опубликованной в 2004 году в сборнике трудов 2-й Международной конференции по встроенным сетевым сенсорным системам, Балтимор, Мэриленд, США. Его цель — добиться синхронизации во всей сети путём отправки широковещательных синхронизирующих сообщений. Широковещательное сообщение начинается с преамбулы, за которой следуют байты Sync, затем — фактические данные сообщения,
описывающие его, и завершаются они байтами CRC. Пунктирными линиями на рисунке 9 обозначены фактические байты, а сплошными — байты в буфере. Когда отправитель передаёт преамбулу, получатель настраивает несущую частоту входящих сигналов. Как только получены байты Sync, получатель может вычислить смещение байтов, необходимое для восстановления сообщения с правильным выравниванием байтов. В поле данных содержится адрес назначения, длина данных и другие поля сообщения, о которых необходимо уведомить получателя. Сообщение проверяется на целостность с помощью байтов CRC.

Рис. 9. Вещательное сообщение FTSP.
В протоколе FTSP узлы могут образовывать ячеистую сеть, в которой каждый узел отправляет сообщение о синхронизации всем остальным узлам, или звездообразную сеть, в которой один из узлов выступает в роли ведущего, а все остальные — в роли ведомых. Узел с наименьшим идентификатором выбирается в качестве ведущего, который периодически рассылает по сети сообщения о синхронизации и служит источником эталонного времени. В случае выхода из строя текущего ведущего узла новым ведущим узлом становится следующий узел с наименьшим идентификатором. Каждый узел собирает временные метки и данные о времени поступления, а на основе этих данных с помощью линейной регрессии вычисляются смещение и разница в скорости передачи данных с ведущим узлом. Протокол FTSP обеспечивает глобальную синхронизацию при низкой пропускной способности и использует временные метки на уровне MAC, что позволяет исключить многие источники ошибок. Однако для работы протокола необходим доступ к аппаратному обеспечению, и он не является чисто программным протоколом. Главный недостаток протокола заключается в том, что любой узел может объявить себя ведущим по истечении определённого периода времени, если он не получил новых временных меток, что делает его уязвимым для атак. Злонамеренный узел может объявить себя ведущим и ввести в заблуждение другие узлы, нарушив синхронизацию с настоящим ведущим узлом.
3.7. Протокол эталонной широковещательной синхронизации (Reference Broadcast Synchronization, RBS)
Протокол эталонной широковещательной синхронизации был предложен Элсоном, Жиро и Эстрином в 2002 году. Почти все остальные протоколы синхронизации используют метод синхронизации «от отправителя к получателю». Однако протокол RBS работает по-другому: в нём используется метод синхронизации «от получателя к получателю» с привлечением третьей стороны. Суть метода в том, что третья сторона отправляет двум получателям один широковещательный сигнал, который не содержит никакой информации о времени или временных метках. Получатели обмениваются данными о времени получения этого сигнала и о разнице в показаниях своих часов. Например, как показано на рисунке 10, опорный узел R отправляет сообщение синхронизации всем ведомым узлам. Два узла, узлы A и B, находятся в зоне действия узла R и получают это сообщение. Времена приёма сообщения записываются как Ta на узле A и Tb на узле B.
Узлы A и B обмениваются этой временной информацией друг с другом, узел B вычисляет разницу во времени с узлом A и записывает её с помощью переменной d следующим образом:
| d = Ta — Tb | (13) |
После этого узел B может скорректировать своё время для синхронизации с узлом A, используя d следующим образом:
Tb = Ta — d (14)

Рис. 10. Обмен сообщениями протокола RBS.
Полученной информации достаточно для поддержания локальной шкалы времени. Таким образом, время отправки и время доступа исключаются из критического пути, как показано на рисунке 11.

Рис. 11. Анализ критического пути (протокол RBS).
В протоколе RBS третья сторона отправляет широковещательный сигнал, что позволяет легко подменять узлы и блокировать передачу информации от реальных отправителей. Кроме того, из-за больших накладных расходов при обмене пакетами этот протокол потребляет больше энергии, что делает его небезопасным и непригодным для сетей с низким энергопотреблением. Приведённая выше информация свидетельствует о том, что безопасность не была главным приоритетом при разработке существующих протоколов. Эту проблему можно решить, снизив накладные расходы на передачу данных, что уменьшит энергопотребление, а сэкономленную энергию можно будет направить на обеспечение безопасности. В следующих разделах мы рассмотрим суть проблемы и изучим аналогичные исследования, проведённые ранее, чтобы найти подходящее решение.
3.8. IEEE 1588 (PTP)
Первая версия протокола точной синхронизации IEEE 1588 (PTP) была выпущена в 2002 году, а вторая — в 2008 году. Это прикладной протокол, основанный на архитектуре «ведущий — ведомый» и предназначенный для обеспечения высокой точности и надёжной процедуры синхронизации. Этот протокол позволяет осуществлять синхронизацию с точностью до наносекунды. По сравнению с ранее упомянутыми протоколами, такими как GPS и NPT, PTP обеспечивает более надёжную синхронизацию времени. Протокол IEEE 1588 PTP позволяет синхронизировать время по сетям пакетной передачи, таких как Ethernet. Для точной синхронизации сети необходимо обмениваться пакетами с метками времени между распределёнными узлами.
3.9. Сравнительный анализ различных протоколов синхронизации времени
NTP — это протокол синхронизации времени, широко используемый в Интернете. Клиенты NTP используют статистический анализ времени прохождения сигнала в обе стороны для синхронизации своих часов с серверами NTP с точностью до миллисекунд. Для синхронизации серверов времени используются внешние источники, например GPS. Доказано, что протокол NTP эффективен, безопасен и надёжен в Интернете, поэтому он широко распространён. Однако в беспроводных сенсорных сетях время передачи данных может варьироваться, поскольку на каждом этапе управления доступом к среде передачи (MAC) может возникать задержка в несколько сотен миллисекунд.
Был предложен протокол синхронизации по широковещательной рассылке, в котором используется синхронизация между приёмниками, а не между отправителем и приёмником, как во многих других протоколах. Идея заключается в том, чтобы отправлять маячок с помощью третьей стороны без какой-либо информации о времени, а приёмники будут сравнивать время получения этого маячка со своим смещением. Таким образом, остаётся только два фактора неопределённости: время распространения сигнала и время получения. Утверждается, что все узлы сразу же получат опорный маячок, что исключает влияние времени распространения сигнала, но в протоколе всё равно остаётся неопределённость, связанная со временем получения сигнала.
Ганеривал и соавторы в статье «Безопасная служба синхронизации времени для сенсорных сетей», опубликованной в 2008 году в сборнике трудов 4-го семинара ACM по беспроводной безопасности, предложили традиционный протокол синхронизации времени на основе взаимодействия отправителя и приёмника под названием «Протокол синхронизации времени для сенсорных сетей» (timing-sync protocol for sensor networks, TPSN). Он разделён на два этапа. На первом этапе создаётся иерархическая топология сети, в которой каждому узлу присваивается уровень, а узел с самым низким уровнем становится корневым узлом. На втором этапе все узлы в дереве синхронизируются со своим родительским узлом с помощью метода синхронизации по времени прохождения сигнала в обе стороны.
Протокол синхронизации времени по широковещательной рассылке (FTSP) был предложен Мароти и соавторами и является наиболее известным подходом к синхронизации времени. Для достижения относительно высокой точности в нём используются высокоточные часы, оценка дрейфа часов и временная маркировка на уровне MAC для снижения джиттера.
Протоколы tiny-sync/mini-sync используют несколько попарных измерений времени прохождения сигнала в обе стороны и метод аппроксимации прямой линии для определения смещения и дрейфа двух узлов, а не для непосредственного расчёта смещения.
Протокол IEEE 1588 PTP точнее, чем NTP. Кроме того, в протоколе PTP главный сервер синхронизирует все подчинённые узлы, что позволяет избежать дополнительной задержки, возникающей при перераспределении данных в протоколе NTP. Протоколы NTP и PTP сложно использовать в беспроводных сетях из-за ограниченности ресурсов и асимметрии каналов связи.
Большинство существующих протоколов используют определённые опорные тактовые частоты и иерархическую структуру, однако при использовании опорных тактовых частот учитывается только компенсация смещения тактовой частоты, что делает протоколы более уязвимыми для интеллектуальных атак и сбоев в работе отдельных узлов.
Для сравнения характеристик различных протоколов мы выбрали несколько наиболее показательных. Для всестороннего сравнения и анализа характеристик мы выбрали различные конфигурации тактовых частот (1 МГц, 50 МГц, 32,678 МГц и 32,678 кГц) с разными отклонениями, а также аппаратные тактовые частоты (на платформе MICAz или на платформе FPGA) и тактовые частоты, полученные в результате моделирования. На рисунке 12 в виде гистограммы представлено сравнение максимальных ошибок синхронизации времени в различных
протоколах. Синие и красные столбцы соответствуют результатам оценки протоколов PISync и FTSP на аппаратной платформе MICAz, а оранжевые и фиолетовые столбцы — результатам экспериментальной оценки протоколов PISync и DCBTS на тестовом стенде с FPGA. Кроме того, для оценки характеристик протоколов PISync, D-PkCO и TPSN использовался симулятор на базе MATLAB. Результаты моделирования представлены зелёными, чёрными и коричневыми столбцами соответственно.

Рис. 12. Сравнение точности синхронизации времени при использовании различных протоколов в многоузловой сенсорной сети. Для всестороннего сравнения используются различные конфигурации часов, включающие как результаты аппаратных тестов, так и результаты моделирования.
В целом неудивительно, что все протоколы демонстрируют рост ошибок синхронизации при увеличении расстояния между узлами, но с разной скоростью. При тактовой частоте аппаратного обеспечения 1 МГц на широко известной платформе беспроводных сенсорных сетей MICAz протокол PISync обеспечивает наилучшую точность синхронизации с наименьшей скоростью роста ошибок в зависимости от расстояния между узлами. Например, при одном переходе задержка составляет 2 мкс, а при девятом — около 7 мкс, что лучше, чем у давно существующего протокола FTSP. Однако при тактовой частоте аппаратного обеспечения FPGA 50 МГц задержка при использовании PISync увеличивается до 3 мкс при одном переходе и до 17 мкс при девятом, а результаты, полученные с помощью DCBTS, немного лучше, чем у PISync, несмотря на то, что тактовая частота стала выше. Аналогичные результаты были получены при моделировании на тактовой частоте 32,768 МГц. Возможно, это связано с тем, что использовалась более качественная конфигурация тактового генератора с частотой 1 МГц (например, очень стабильный генератор с минимальными отклонениями), но в реальных и смоделированных генераторах отклонения были выше. Для
объективного сравнения необходимо учитывать больше факторов, связанных с платформой и тактовой частотой.
4. Заключение
Результаты исследования показали, что почти все существующие протоколы синхронизации времени имеют ошибки, и эти ошибки характерны для некоторых популярных протоколов. Протокол LTS не подходит для обеспечения высокой точности, поскольку его точность снижается по мере удаления от корневого узла, в то время как протокол FTSP обеспечивает высокую точность и устойчивость к сбоям в работе узлов и изменениям топологии. Однако протокол FTSP требует больших энергозатрат и вычислительных ресурсов (которые ограничены для сенсорных узлов), поскольку он не является программным протоколом. Протокол RBS предполагает большое количество обменов сообщениями для обеспечения высокой точности, что увеличивает энергопотребление и, соответственно, затраты. Протокол TPSN обеспечивает точность до 10 микросекунд, которая зависит от величины смещения, влияющего на время распространения сигнала. Несмотря на то, что в этих протоколах недетерминированная задержка, вызванная распространением сигнала, ограничена по сравнению с достижимой точностью, для обеспечения требуемой точности каждому протоколу необходимо отправлять и получать пакеты данных. Отправка и получение пакетов данных потребляют большую часть энергии при сетевой синхронизации. Энергопотребление сети можно снизить, уменьшив количество обменов пакетами данных. В рамках дальнейшей работы необходимо устранить эти ошибки, чтобы добиться лучших результатов при использовании этих протоколов. Синхронизация времени играет важнейшую роль в концепции «Индустрия 4.0» и «Здравоохранение 4.0», а безопасная синхронизация времени является одним из ключевых компонентов. Для приложений, работающих в рамках концепции «Индустрия 4.0» или «Здравоохранение 4.0», внедрение безопасной синхронизации времени должно гарантировать высокую точность синхронизации, чтобы удовлетворять потребности приложений в обмене данными в режиме реального времени. Кроме того, она должна предотвращать атаки и обеспечивать безопасность связи. Весьма перспективным подходом является интеграция синхронизации времени с технологией блокчейн.
Об авторах:
Ин Вэн и Имин Чжан — сотрудники Школы компьютерных наук, факультет естественных и инженерных наук Ноттингемского университета в Нинбо, Китай