» »

Протоколы синхронизации времени: NTP, IRIG, AFNOR. Синхронизация в сетях нового поколения: три пути решения проблем Протокол ptp для синхронизации

11.04.2024

В 2005 году была начата работа по изменению стандарта IEEE1588-2002 с целью расширения возможных областей его применения (телекоммуникации, беспроводная связь и в др.). Результатом работы стало новое издание IEEE1588-2008, которое доступно с марта 2008 со следующими новыми особенностями:

  • Усовершенствованные алгоритмы для обеспечения погрешностей в наносекундном диапазоне.
  • Повышенное быстродействие синхронизации времени (возможна более частая передача сообщений синхронизации Sync).
  • Поддержка новых типов сообщений.
  • Ввод однорежимного принципа работы (не требуется передачи сообщений типа FollowUp).
  • Ввод поддержки функции т.н. прозрачных часов для предотвращения накопления погрешностей измерения при каскадной схеме соединения коммутаторов.
  • Ввод профилей, определяющих настройки для новых областей применения.
  • Возможность назначения на такие транспортные механизмы как DeviceNet, PROFInet и IEEE802.3/Ethernet (прямое назначение).
  • Ввод структуры TLV (тип, длина, значение) для расширения возможных областей применения стандарта и удовлетворения будущих потребностей.
  • Ввод дополнительных опциональных расширений стандарта.

Принцип функционирования систем на основе протокола PTP

В системах, где используется протокол PTP, различают два вида часов: ведущие часы и ведомые часы. Ведущие часы, в идеале, контролируются либо радиочасами, либо GPS-приемниками и осуществляют синхронизацию ведомых часов. Часы в конечном устройстве, неважно ведущие ли они или ведомые, считаются обычными часами; часы в составе устройств сети, выполняющих функцию передачи и маршрутизации данных (например, в Ethernet-коммутаторах), считаются граничными часами.

Рис. 1. Согласно протоколу PTP синхронизация устройств по времени осуществляется на основе схемы «ведущий - ведомый».

Процедура синхронизации согласно протоколу PTP подразделяется на два этапа. На первом этапе осуществляется коррекция разницы показаний времени между ведущими и ведомыми часами - то есть осуществляется так называемая коррекция смещения показаний времени. Для этого ведущее устройство осуществляет передачу сообщения для целей синхронизации времени Sync ведомому устройству (сообщение типа Sync). Сообщение содержит в себе текущее показание времени ведущих часов и его передача осуществляется периодически через фиксированные интервалы времени.

Однако поскольку считывание показаний ведущих часов, обработка данных и передача через контроллер Ethernet занимает некоторое время, информация в передаваемом сообщении к моменту его приема оказывается неактуальной. Одновременно с этим осуществляется как можно более точная фиксация момента времени, в который сообщение Sync уходит от отправителя, в составе которого находятся ведущие часы (TM1). Затем ведущее устройство осуществляет передачу зафиксированного момента времени передачи сообщения Sync ведомым устройствам (сообщение FollowUp). Те также как можно точнее осуществляют измерение момента времени приема первого сообщения (TS1) и вычисляют величину, на которую необходимо выполнить коррекцию разницы в показаниях времени между собою и ведущим устройством соответственно (O) (см. рис. 1 и рис. 2). Затем непосредственно осуществляется коррекция показаний часов в составе ведомых устройств на величину смещения. Если задержки в передачи сообщений по сети не было, то можно утверждать, что устройства синхронизированы по времени.

Рис. 3. Вычисление времени задержки сообщений в коммутаторах.

Задержка в передачи сообщения в обоих направлениях будет идентичной в том случае, если устройства соединены между собой по одной линии связи и только. Если в сети между устройствами имеются коммутаторы или маршрутизаторы, то симметричной задержка в передачи сообщения между устройствами не будет, поскольку коммутаторы в сети осуществляют сохранение тех пакетов данных, которые проходят через них, и реализуется определенная очередность их передачи. Эта особенность может, в некоторых случаях, значительным образом влиять на величину задержки в передаче сообщений (возможны значительные отличия во временах передачи данных). При низкой информационной загрузке сети этот эффект оказывает малое влияние, однако при высокой информационной загрузке, указанное может значительным образом повлиять на точность синхронизации времени. Для исключения больших погрешностей был предложен специальный метод и введено понятие граничных часов, которые реализуются в составе коммутаторов сети. Данные граничные часы синхронизируются по времени с часами ведущего устройства. Далее коммутатор по каждому порту является ведущим устройством для всех ведомых устройств, подключенных к его портам, в которых осуществляется соответствующая синхронизация часов. Таким образом, синхронизация всегда осуществляется по схеме точка-точка и характерна практически одинаковая задержка в передаче сообщения в прямом и обратном направлении, а также практическая неизменность этой задержки по величине от одной передачи сообщения к другой.

Хотя принцип, основанный на использовании граничных часов показал свою практическую эффективность, другой механизм был определен во второй версии протокола PTPv2 - механизм использования т. н. прозрачных часов. Данный механизм предотвращает накопление погрешности, обусловленной изменением величины задержек в передаче сообщений синхронизации коммутаторами и предотвращает снижение точности синхронизации в случае наличия сети с большим числом каскадно-соединенных коммутаторов. При использовании такого механизма передача сообщений синхронизации осуществляется от ведущего устройства ведомому, как и передача любого другого сообщения в сети. Однако когда сообщение синхронизации проходит через коммутатор фиксируется задержка его передачи коммутатором. Задержка фиксируется в специальном поле коррекции в составе первого сообщения синхронизации Sync или в составе последующего сообщения FollowUp (см. рис. 2). При передаче сообщений Delay Request и Delay Response также осуществляется фиксация времени задержки их в коммутаторе. Таким образом, реализация поддержки т. н. прозрачных часов в составе коммутаторов позволяет компенсировать задержки, возникающие непосредственно в них.

Реализация протокола PTP

Если необходимо использование протокола PTP в системе, должен быть реализован стек протокола PTP. Это может быть сделано при предъявлении минимальных требований к производительности процессоров устройств и к пропускной способности сети. Это очень важно для реализации стека протокола в простых и дешевых устройствах. Протокол PTP может быть без труда реализован даже в системах, построенных на дешевых контроллерах (32 бита).
Единственное требование, которое необходимо удовлетворить для обеспечения высокой точности синхронизации, - как можно более точное измерение устройствами момента времени, в который осуществляется передача сообщения, и момента времени, когда осуществляется прием сообщения. Измерение должно производиться максимально близко к аппаратной части (например, непосредственно в драйвере) и с максимально возможной точностью. В реализациях исключительно на программном уровне архитектура и производительность системы непосредственно ограничивают максимально допустимую точность.

При использовании дополнительной поддержки аппаратного обеспечения для присвоения меток времени, точность может быть значительным образом повышена и может быть обеспечена ее виртуальная независимость от программного обеспечения. Для этого необходимо использование дополнительной логики, которая может быть реализована в программируемой логической интегральной схеме или специализированной для решения конкретной задачи интегральной схеме на сетевом входе.

Выводы

Протокол PTP во многих областях уже доказал эффективность своего применения. Можно быть уверенным, что он получит более широкое распространение в течение следующих лет и что многие решения при его использовании смогут быть реализованы более просто и эффективно чем при использовании других технологий.

Оборудование KYLAND с поддержкой IEEE 1588v2

Ответы на вопросы

26.09.2018

Сложно представить современный мир без точного времени. Во многих сферах жизни нужно иметь очень точные часы, при этом точность часто должна быть гораздо выше точности часов, применяющихся людьми в обычной жизни. Например, требования к точности часов авиационных диспетчерских, комплексов, управляющих космическими аппаратами, или военных систем находятся на высочайшем уровне. Также часы с высокой точностью необходимы и в системах с более простыми функциями – в системах биллинга и тарификации сотовых операторов и интернет-провайдеров, в системах банковских транзакций, в биржевых системах, в производственных и научных комплексах. В локальных сетях протокол аутентификации пользователей Kerberos также использует сравнение времени контроллера домена с часами пользовательских рабочих станций. В компьютерных сетях синхронизация обычно выполняется с серверами точного времени при помощи протокола NTP или его «облегчённой» разновидности – SNTP . В этой статье мы рассмотрим особенности, отличия и примеры применения этих протоколов.

NTP (англ. Network Time Protocol – протокол сетевого времени) – сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной пропускной способностью. Обеспечивает высокую точность синхронизации времени благодаря специальному алгоритму, который позволяет выбирать наиболее точные источники для оценки точного времени. Этот алгоритм позволяет сводить к минимуму влияние данных от заведомо некорректно настроенных NTP-серверов на общую систему. Протокол NTP обеспечивает механизмы синхронизации с точностью до наносекунд, и содержит средства для определения характеристик и оценки ошибок локальных часов и временного сервера, который осуществляет синхронизацию. Протокол NTP использует иерархическую систему уровней, или стратумов. Сервер NTP имеет наиболее высокий уровень (стратум 1), если он получает данные непосредственно от источника точного времени. Сервера, синхронизирующие свои часы с сервером 1-го стратума, находятся на уровне ниже (стратум 2), и т. д.

SNTP (англ. Simple Network Time Protocol – простой протокол сетевого времени) – протокол синхронизации времени по компьютерной сети. Представляет собой упрощённую реализацию протокола NTP, в нём отсутствует сложность алгоритма NTP. SNTP используется для узлов сети, которым не требуется полный набор функций NTP. Общепринятой практикой является синхронизация часов нескольких узлов локальной сети с другими узлами NTP по Интернет и использование этих узлов для временной синхронизации услуг, предоставляемых другим клиентам по локальной сети. В таком варианте использования не требуется высокой точности временной синхронизации. Протокол SNTP обеспечивает механизмы синхронизации с точностью от 1 до 50 мс

Пример использования протокола NTP: банк N предоставляет своим клиентам клиент-серверное приложение для биржевой торговли. Сервера, которые обрабатывают информацию о биржевых котировках, должны иметь часы с высокой точностью синхронизации со шкалой всемирного времени. В таком случае, каждый сервер биржевой торговли банка N синхронизируется с самым точным из серверов точного времени («стратум 1»), который получает данные непосредственно от источника точного времени. Самый точный сервер выбирается по алгоритму, встроенному в протокол NTP. Примерная архитектура такого решения отражена на схеме ниже:

Классический пример использования SNTP – синхронизация времени внутри домена. Контроллер домена получает время из глобальной сети Интернет от общедоступных серверов стратума 1 или стратума 2. Остальные клиенты домена синхронизируют свои часы со временем на контроллере домена. Примерная архитектура отображена на схеме.

Много статей написано про всем известный Network Time Protocol (NTP), в некоторых из них упоминается про Precision Time Protocol, который якобы позволяет добиться точности синхронизации времени порядка наносекунд (например, и ). Давайте разберемся, что этот протокол собой представляет и как достигается такая точность. А также посмотрим результаты моей работы с данным протоколом.

Введение
«Протокол точного времени» описан стандартом IEEE 1588 . Существует 2 версии стандарта. Первая версия вышла в 2002 году, затем стандарт был пересмотрен в 2008 и на свет вышел протокол PTPv2. Обратная совместимость не была сохранена.
Я работаю со второй версией протокола, в ней множество улучшений по сравнению с первой (точность, стабильность, как нам сообщает wiki). Не буду приводить сравнения с NTP, одно только упоминание о точности синхронизации, а точность PTP достигает действительно десятков наносекунд при «железной» поддержке, говорит о преимуществе перед NTP.
«Железная» поддержка протокола в разных устройствах может быть реализована по-разному. На самом деле минимум, требующийся для реализации PTP – умение «железки» проставлять таймштамп момента получения сообщения на порт. Проставленное время будет использовано для вычисления ошибки.
Почему часы расстраиваются?
Ошибки могут появиться отовсюду. Начнем с того, что генераторы частоты в устройствах разные и очень мала вероятность того, что два разных устройства будут работать идеально такт в такт. Тут же можно приписать постоянно меняющиеся условия окружающей среды, влияющие на генерируемую частоту.
Чего мы добиваемся?
Допустим, у нас есть устройство, работающее в идеальных условиях, какие-нибудь атомные часы, которые вообще не разойдутся до конца света (конечно же, до реального, а не предначертанного календарём Майя) и дана задача заполучить хотя бы примерно (с точностью до 10 -9 сек) такие же часы. Нам нужно эти часы синхронизировать. Для этого можно реализовать протокол PTP.
Разница чисто программной реализации и реализации с «железной поддержкой»
Чисто программная реализация не позволит добиться обещаемой точности. Время, прошедшее с момента получения сообщения (точнее получения сигнала на прием сообщения в устройстве) до перехода на точку входа в прерывание или на callback не может быть строго определенным. «Умные железки» с поддержкой PTP умеют проставлять эти таймштампы самостоятельно (например, чипы от Micrel , как раз для KSZ8463MLI я пишу драйвер).
Помимо таймштампов к «железной» поддержке также можно отнести умение настраивать кварцевый генератор (чтобы выровнять частоту с мастером), либо возможность подстройки часов (каждый такт увеличивать значение часов на X нс). Об этом ниже.
Перейдём к стандарту IEEE 1588
Стандарт описан аж на 289 страницах. Рассмотрим минимум, необходимый для реализации протокола. PTP является клиент-серверным протоколом синхронизации, т.е. для реализации протокола требуется как минимум 2 устройства. Итак, Master-устройство - атомные часы, а Slave устройство – часы, которые необходимо заставить работать точно.
Язык обмена
Announce message – сообщение анонса, содержит информацию, отправляемую мастером всем Slave устройствам. Slave устройство с помощью этого сообщения может выбрать лучшего мастера (для этого существует BMC (Best Master Clock)) алгоритм. BMC не так интересен. Этот алгоритм можно легко найти в стандарте. Выбор идет по таким полям сообщения как точность, дисперсия, класс, приоритет и т.п. Перейдём к другим сообщениям.

Sync/Follow Up, DelayResp, PDelayResp/PDelayFollowUp – отправляются мастером, ниже рассмотрим их поподробнее.

DelayReq, PDelayReq – запросы Slave устройств.

Как видим, Slave устройство не многословно, Master предоставляет всю практически всю информацию сам. Отправка осуществляется на Multicast (при желании можно использовать Unicast режим) адреса, строго определенные в стандарте. Для PDelay сообщений имеется отдельный адрес (01-80-C2-00-00-0E для Ethernet и 224.0.0.107 для UDP). Остальные сообщения отсылаются на 01-1B-19-00-00-00 или 224.0.1.129. Пакеты отличаются полями ClockIdentity (идентификатор часов) и SequenceId (идентификатор пакета).

Сеанс работы
Допустим, мастер был выбран с помощью алгоритма BMC, либо мастер в сети единственный. На картинке показана процедура общения главного устройства и синхронизируемого.

  1. Всё начинается с того, что Master отправляет сообщение Sync и одновременно записывает время отправки t1. Существует одно- и двухэтапные режимы работы. Отличить их очень легко: если присутствует сообщение FollowUp – то мы имеем дело с двухэтапной реализацией, пунктирной стрелкой показаны необязательные сообщения
  2. FollowUp сообщение отправляется вслед за Sync и содержит время t1. Если осуществляется передача в один этап, то Sync содержит t1 в теле сообщения. В любом случае t1 будет получено нашим устройством. В момент получения сообщения Sync на Slave генерируется таймпштамп t2. Таким образом мы получаем t1, t2
  3. Slave генерирует сообщение DelayReq одновременно с генерацией t3
  4. Master получает DelayReq сообщение, одновременно генерируя t4
  5. t4 отправляется Salve устройству в DelayResp сообщении


Сообщения в сети

С помощью такого сеанса обмена, который показан выше, можно добиться успеха только в случае, если кварц генерирует идеально одинаковые частоты для синхронизируемых устройств. На деле же получается что частота часов разная, т.е. на одном устройстве за 1 секунду значение часов увеличится на 1 секунду, а на другом, например, на 1.000001 секунду. Отсюда появляется расхождение часов.
В стандарте описан пример вычисления отношения времени, прошедшего на Master и на Slave за определенный интервал. Это отношение будет являться коэффициентом для частоты Slave устройства. Но при этом есть указание, что подстройка может осуществляться различными способами. Рассмотрим два из них:

  1. Изменить тактовую частоту Slave устройства (пример в стандарте)
  2. Не менять тактовую частоту, но за каждый такт длительностью T значение часов будет увеличиваться не на T, а на T+∆t (используется в моей реализации)
В обоих способах потребуется вычислить разницу в значениях времени на Master устройстве за определенный интервал, а также разницу во времени, за этот же интервал на Slave устройстве. Коэффициент в первом способе:


Для второго способа требуется вычисление ∆t. ∆t – величина, которая будет складываться со значением времени каждый определенный интервал. На рисунке можно заметить, что в то время как на мастере прошло 22 – 15 = 7 секунд, на Slave прошло 75+(87-75)/2 –(30+ (37-30)/2) = 47.5

Частота – частота процессора, например, 25МГц - цикл процессора длится 1/(25*10 6) = 40нс.
В зависимости от возможностей устройства выбирается наиболее подходящий способ.
Чтобы перейти к следующему разделу, выразим смещение немного по-другому:

Режимы работы PTP
Заглянув в стандарт, можно обнаружить не единственный способ вычисления времени доставки. Существуют 2 режима работы PTPv2. Это E2E (End-to-End) , он был рассмотрен выше, также описан режим P2P (Peer-to-Peer) . Давайте разберемся, где какой способ применять и в чем их различие.
В принципе можно использовать любой из режимов по желанию, но их нельзя совмещать в одной сети.
  • В режиме E2E время доставки вычисляется по сообщениям, пришедшим через множество устройств, каждый из которых проставляет в поле коррекции сообщения Sync либо FollowUP (если двухэтапная передача) время, на которое пакет задержался на этом устройстве (если устройства подключены напрямую, коррекция не проставляется, поэтому их детально рассматривать не будем). Используются сообщения: Sync/FollowUp, DelayReq/DelayResp
  • В режиме P2P в поле коррекции заносится не только время, на которое задержался пакет, к нему прибавляется (t2-t1) (можно почитать в стандарте). Используются сообщения Sync/FollowUp, PDelayReq/PDelayResp/PDelayRespFollowUp
Согласно стандарту, часы, сквозь которые PTP сообщения проходят с изменением поля коррекции, называются Transparent Clock (TC) . Посмотрим на рисунках, как передаются сообщения в этих двух режимах. Синими стрелочками указаны сообщения Sync и FollowUp .


Режим End-to-End


Режим Peer-to-Peer
Видим, что в P2P режиме появились какие-то красные стрелочки. Это оставшиеся сообщения, которые мы не рассмотрели, а именно PDelayReq , PDelayResp и PDelayFollowUp . Вот сеанс обмена этими сообщениями:

Ошибка времени доставки
Стандарт описывает реализацию протокола в различных типах сетей. Я использовал Ethernet сеть, и получал сообщения на Ethernet уровне. В таких сетях время доставки пакета постоянно меняется (особенно заметно, когда работаешь с наносекундной точностью). Для того чтобы отфильтровать эти значения применяются различные фильтры.

Что требуется фильтровать:

  1. Время доставки
  2. Смещение
В моем драйвере используется примерно такая же система фильтрации, как и в Linux демоне PTPd , исходники которого можно найти еще есть немного информации . Приведу лишь схему:


LP IIR (Infinite Impulse Response low-pass) фильтр (Фильтр с бесконечной импульсной характеристикой), описываемый формулой:

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


Я использовал фильтр Калмана, чтобы отфильтровать сильное дрожание подстройки из-за помех в сети, уж больно понравилась мне . А вообще, можно использовать любой фильтр, который нравится, главное чтобы сглаживал график. В PTPd , например, фильтрация попроще - вычисляется среднее от текущего и предыдущего значения. На графике можно посмотреть результаты работы фильтра Калмана в моем драйвере (показана ошибка подстройки, выражена в субнаносекундах на 25МГц чипе):


Переходим к регулированию подстройки, подстройка должна стремиться к константе, используется ПИ-регулятор. В PTPd регулируется смещения часов (настройка идёт по смещению), но я использую его для регулирования подстройки (особенность KSZ8463MLI). Видим, что контроллер настроен не идеально, но в моем случае такая регулировка достаточна:

Результат работы


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

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Федеральное государственное автономное образовательное учреждение

Высшего профессионального образования

«Национальный исследовательский ядерный университет «МИФИ»

Трехгорный технологический институт - филиал НИЯУ МИФИ

Кафедра ЭВМ

по дисциплине «Интернет-технологии»

на тему: «Протокол RSYNC. Синхронизация времени. Протокол NTP. Протокол SNTP»

Выполнил: студент группы 5ВТ-58

Кольцов Д.А.

Проверил: ст. преп. Долгополова М. О.

Трехгорный 2012

ПРОТОКОЛ RSYNC

СИНХРОНИЗАЦИЯ ВРЕМЕНИ

ПРОТОКОЛ NTP

ПРОТОКОЛ SNTP

СПИСОК ИСПОЛЬЗУЕМЫХ ИНТЕРНЕТ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

ПРОТОКОЛ RSYNC

R sync (англ. Remote Synchronization) -- программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). Rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.

Разработчик - Wayne Davison;

Операционная система - Кроссплатформенное программное обеспечение.

Выпущен под лицензией GNU GPL, rsync является свободным программным обеспечением.

Кроссплатформенное (межплатформенное) программное обеспечение -- программное обеспечение, работающее более чем на одной аппаратной платформе и/или операционной системе. Типичным примером является программное обеспечение, предназначенное для работы в операционных системах Linux и Windows одновременно.

Существует реализация rsync для Winows, а точнее не прямая реализация, а сборка из rsync и cygwin, называемая cwRsync.

Алгоритм

Утилита rsync использует алгоритм, разработанный австралийским программистом Эндрю Триджеллом (приложение C), для эффективной передачи структур (например, файлов) по коммуникационным соединениям в том случае, когда принимающий компьютер уже имеет отличающуюся версию этой структуры.

Принимающий компьютер разделяет свою копию файла на неперекрывающиеся куски фиксированного размера S, и вычисляет контрольную сумму для каждого куска: MD4-хеш (приложение А) и более слабый rolling checksum (приложение B), и отправляет их серверу, с которым синхронизируется.

Сервер, с которым синхронизируются, вычисляет контрольные суммы для каждого кусочка размера S в своей версии файла, в том числе перекрывающиеся куски. Это может быть эффективно подсчитано ввиду особого свойства rolling checksum: если rolling checksum байт от n до n+S-1 равняется R, то rolling checksum байт от n+1 до n+S может быть посчитана исходя из R, байта n и байта n+S без необходимости учитывать байты, лежащие внутри этого интервала. Таким образом, если уже подсчитана rolling checksum байт 1-25, то для подсчета rolling checksum байт 2-26 используется предыдущая контрольная сумма и байты 1 и 26.

Основные преимущества

Скорость: Первоначально rsync реплицирует все содержимое между источником и местом назначения (приемником). Далее rsync передает только изменившиеся блоки или биты в место назначения, что делает синхронизацию действительно быстрой;

Безопасность: rsync включает в себя шифрование данных при передаче с использованием протокола SSH;

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

Синтаксис

$ rsync options source destination, где Source (источник) и Destination (место назначения) могут быть как локальными, так и удаленными. В случае использования с удаленными объектами указывает логин, имя сервера и путь.

Некоторые важные опции:

1) -a, --archive режим архива;

2) -r, --recursive обходить директории (рекурсия);

3) -R, --relative относительные пути;

4) -H, --hard-links сохранять жесткие ссылки (hardlink);

5) -S, --sparse handle sparse files efficiently;

6) -x, --one-file-system не пересекать границы файловой системы;

7) -exclude=PATTERN исключить файлы заданного образца;

8) -delete-during приемник удаляется ПРИ ПЕРЕДАЧЕ;

9) -delete-after приемник удаляется ПОСЛЕ ПЕРЕДАЧИ.

СИНХРОНИЗАЦИЯ ВРЕМЕНИ

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

Технология синхронизации времени

Весь процесс синхронизации времени проводиться посредством специального сетевого протокола называемого NTP (Network Time Protocol) . Данный протокол представляет из себя свод различных правил и математических алгоритмов, благодаря которым происходит точная настройка времени на вашем компьютере с разницей в несколько сотых одной секунды. Существует протокол и для систем, не требующих такой точной синхронизации, который называется SNTP . Разница источника и устройства-приёмника времени по нему может составлять до 1 секунды.

Технология передачи параметров точного времени представляет из себя многослойную структуру, где каждый нижележащий слой электронных устройств синхронизируется с вышележащим. Чем ниже технологический слой, тем менее точным будет полученное от него время. Но это в теории, на практике же все зависит от множества параметров, участвующих в системе синхронизации и получить более точное время можно, к примеру, от четвертого слоя устройств, нежели от третьего.

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

Системы синхронизации времени

В соответствии с федеральным законом «О связи» № 126 от 7 июля 2003 года, Статья 49 - «Учетно-отчетное время в области связи», в технологических процессах передачи и приема сообщений электросвязи и почтовой связи, их обработки в пределах территории Российской Федерации операторами электросвязи и операторами почтовой связи должно применяться единое учетно-отчетное время - московское». Для этого на цифровой сети оператора электросвязи необходимо организовать систему точного времени.

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

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

Потребителем сигналов единого точного времени являются: вычислительные комплексы и компьютерные серверы (системы управления и мониторинга сетевым оборудованием), оборудование транспортных сетей SDH, ATM, IP и сетей коммутации, серверы биллинга и баз данных; оборудование передачи данных и пакетной коммутации (маршрутизаторы, коммутаторы) и т.д.

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

Работы по созданию системы точного времени включают в себя:

* выбор источника сигнала точного времени;

* определение способа передачи сигналов точного времени по сети связи;

* выбор сетевых протоколов и сигналов точного времени;

* определение оборудования, требующего синхронизацию по времени;

* выбор варианта решения по обеспечению различных видов оборудования сигналами точного времени.

К числу высокоточных и наиболее доступных средств передачи сигналов времени, не требующих аренды существующих или построения дополнительных линий связи, по праву можно отнести глобальные навигационные спутниковые системы (ГНСС): российскую ГЛОНАСС и американскую GPS . Глобальность систем обеспечивается функционированием на орбитах набора видимых из любой точки Земли спутников, непрерывно передающих высокоточные сигналы, которые можно использовать в системе точного времени.

В настоящее время, например, спутниковая система GPS может использоваться для синхронизации оборудования телекоммуникационных сетей российских операторов электросвязи только в качестве второго приоритета, следовательно, в качестве основного источника сигналов точного времени необходимо применять спутниковую систему ГЛОНАСС .

Чтобы получить шкалу времени от спутниковых систем необходимо использовать специальное оборудование, содержащее в своем составе приемники сигналов ГЛОНАСС и GPS . Такое специализированное оборудование получило название - сервер времени (Time Server ). При передаче сигналов времени от сервера к удаленным сетевым клиентам используются специальные Интернет - протоколы NTP (Network Time Protocol) и PTP (Precision Time Protocol - IEEE1588) . На основе сетевых протоколов систему точного времени целесообразно строить по принципу иерархии.

ПРОТОКОЛ NTP

Протокол NTP (протокол сетевого времени) используется NTP-серверами для распространения между абонентами сети информации о с точном эталонном временем. Он также используется средствами Интернета для обеспечения синхронизации компьютеров и процессов.

NTP используется как Интернет протокол уже более 25 лет. Этот протокол является самым долго использующимся Интернет протоколом. Он появился на свет благодаря необходимости синхронизации времени и процессов в Интернете. Протокол NTP сначала использовался на платформах LINUX и UNIX включая FreeBSD (некоммерческая версия UNIX для PC), но позже стал использоваться и в операционной системе Windows. Специальные NTP системы в основном используют операционную систему LINUX.

Кроме того, помимо протокола NTP, существует протокол SNTP (Simple Network Time Protocol). На уровне пакетов эти два протокола полностью совместимы. Основным отличием между ними является то, что SNTP не имеет сложных систем фильтрации и многоступенчатой корректировки ошибок, имеющихся в NTP. Таким образом, SNTP является упрощенной и более легкой в реализации версией NTP. Он предназначен для использования в тех сетях, где не требуется очень высокая точность времени, и в реализации от корпорации Microsoft обеспечивает точность в пределах 20 секунд в рамках предприятия и не более 2 секунд в пределах одного сайта. Протокол SNTP стандартизован как RFC 1769 (версия 3) и RFC 2030 (версия 4).

Основные принципы протокола NTP

Протокол NTP был создан для обеспечения пользователей сети тремя параметрами:

1) установкой сбоя эталона времени;

2) установкой полного цикла задержки времени;

3) установкой разброса параметров по отношению к специализированным часам отсчёта.

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

Сообщения протокола NTP

Протокол NTP использует UDP (протокол передачи дейтаграмм пользователя) NTP-сообщение состоит из нескольких полей:

1) Индикатор скачков;

2) Номер версии;

6) Точность;

7) Дефект в корневой системе;

8) Разброс параметров;

9) Идентификатор эталона;

10) Дата создания;

11) Отметка времени приёма;

12) Отметка времени передачи;

13) Распознавание кода;

14) Дайджест сообщений.

Индикатор скачка предостерегает о надвигающемся скачке суммирования или удаления.

Номер версии отображает номер используемой версии NTP.

Режим помогает задавать режим текущего сообщения NTP.

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

Poll определяет максимальный интервал между сообщениями.

Точность устанавливает верность местных часов.

Ошибка в корневой системе указывает номинальную ошибку эталонного времени.

Идентификатор эталона - это 4 символьный ASCII-код, идентифицирующий источник эталона, например: GPS,DCF, MSF. Поле Идентификатора кода используется, когда необходимо установить достоверность кода.

Дата создания эталона устанавливает время, когда NTP запрос пользователя был отправлен NTP серверу.

Отметка времени получения указывает время, когда запрос был получен NTP сервером.

Отметка времени о передачи указывает время, когда ответное сообщение NTP сервера было передано пользователю.

Поле дайджест хранит код аутентификации сообщения MAC (Message Authentication Code).

Режимы работы NTP сервера

NTP сервер может работать в трёх режимах:

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

Эталонные часы

Для синхронизации времени NTP серверов могут использоваться различные внешние источники точного времени. Для обеспечения точности времени очень часто используется GPS. Также существуют различные государственные источники эталонного времени, например, радиовещание. Многие радиостанции вещают не только на территории своих государств, но и за их границей, поэтому по ним можно легко устанавливать время.

ПРОТОКОЛ SNTP

протокол программа синхронизация файл

SNTP (англ. Simple Network Time Protocol) -- протокол синхронизации времени по компьютерной сети. Является упрощённой реализацией протокола NTP. Используется во встраиваемых системах и устройствах, не требующих высокой точности, а также в пользовательских программах точного времени. В протоколе SNTP используется одинаковый с протоколом NTP формат представления времени -- 64-битное число, состоящее из 32-битного счётчика секунд и 32-битного счётчика долей секунд. Нулевое значение счётчика времени соответствует нулю часов 1 января 1900 г., 6 ч 28 м 16 с 7 февраля 2036 г. и т. д. Для успешного функционирования протокола необходимо, чтобы клиент знал своё время в пределах ±34 года относительно времени сервера.

Формат сообщения

Рисунок 1 - Формат сообщения

Описание полей формата сообщения SNTP, представленного на рисунке 1:

Индикатор коррекции (ИК) показывает предупреждение о будущей вставке или удалении секунды в последней минуте суток;

Номер версии (НВ) -- текущее значение 4;

Интервал опроса -- беззнаковое целое, двоичная экспонента которого показывает максимальный интервал между последовательными сообщениями в секундах. Определено только для сообщений сервера, допустимые значения от 4 (16 с) до 17 (около 36 ч);

Точность -- знаковое целое, двоичная экспонента которого показывает точность системных часов. Определено только для сообщений сервера, типичные значения от?6 до?20;

Задержка -- знаковое число с фиксированной запятой, находящейся между 15 и 16 знаками, показывающее полное время распространения сигнала туда и обратно до источника синхронизации сервера времени. Определено только для сообщений сервера;

Дисперсия -- беззнаковое число с фиксированной запятой, находящейся между 15 и 16 знаками, показывающее максимальную ошибку из-за нестабильности часов. Определено только для сообщений сервера;

Идентификатор источника -- источник синхронизации сервера, строка для страты 0 и 1, IP-адрес для вторичных серверов. Определено только для сообщений сервера;

Время обновления -- время, когда системные часы последний раз были установлены или скорректированы;

Ключ идентификации, дайджест сообщения -- необязательные поля, используемые для аутентификации.

Операции сервера SNTP

Сервер SNTP может работать в уникастном, эникастном или мультикастном режимах, а также реализовать любую из комбинаций этих режимов. В уникаст и эникаст режимах сервер получает запросы (режим 3), модифицирует определенные поля в заголовке NTP, и посылает отклик (режим 4), возможно используя тот же буфер сообщения, что и в случае запроса. В режиме эникаст сервер прослушивает определенный широковещательный или групповой мультикаст-адрес, определяемый IANA, но использует свой собственный уникастный адрес в поле адреса отправителя отклика. За исключением выбора адреса в отклике работа сервера в эникаст и уникаст режима идентична. Мультикастные сообщения обычно посылаются с интервалом от 64 до 1024 сек, в зависимости от стабильности часов клиента и требуемой точности.

В эникаст и уникаст режимах поля VN и регистрация (Poll) запроса копируются без изменений в отклик. Если поле режим запроса содержит код 3 (клиент), оно делается в отклике равным 4 (сервер); в противном случае в это поле записывается 2 (симметричный пассивный), для того чтобы обеспечить соответствие со спецификацией NTP. Это позволяет клиентам, сконфигурированным для симметричного активного режима (режим 1) успешно работать, даже если конфигурация не является оптимальной. В мультикастном режиме в поле VN заносится код 4, в поле режим код 5 (широковещательный) и в поле регистрация целая часть значение логарифма по основанию 2 от длительности периода посылки запросов.

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

Наиболее важным индикатором неисправности сервера является поле LI, в котором код 3 указывает на отсутствие синхронизации. Когда получено именно это значение, клиент должен проигнорировать сообщение сервера вне зависимости от содержимого других полей.

Конфигурация и управление

Исходная конфигурация SNTP серверов и клиентов может быть произведена на основе конфигурационного файла, если такой файл имеется, или через последовательный порт. Предполагается, что SNTP серверы и клиенты практически не требуют какого-то конфигурирования, специфического для данного узла (помимо IP-адреса, маски субсети или адреса OSI NSAP).

Уникастные клиенты должны быть снабжены именем сервера или его адресом. Если используется имя сервера, то необходим один или несколько адресов ближайших DNS-серверов.

Мультикастные серверы и эникастные клиенты должны снабжаться значением TTL, а также местным широковещательным или групповым мультикастным адресом. Эникастные серверы и мультикастные клиенты могут конфигурироваться с привлечением списков пар адрес-маска. Это обеспечивает контроль доступа, так что операции будут производиться только с известными клиентами или серверами. Эти серверы и клиенты должны поддерживать протокол IGMP, а также знать местный широковещательный или групповой мультикастный адрес.

СПИСОК ИСПОЛЬЗУЕМЫХ ИНТЕРНЕТ ИСТОЧНИКОВ

1) https://ru.wikipedia.org/wiki/Rsync;

2) http://greendail.ru/node/487;

3) http://inetedu.ru/articles/19-services/70-synchronization-time.html;

4) http://www.ptime.ru/exec_time.htm;

5) http://www.tenderlib.ru/articles/56;

6) http://docstore.mik.ua/manuals/ru/inet_book/4/44/sntp4416.html;

7) http://www.ixbt.com/mobile/review/billing.shtml.

ПРИЛОЖЕНИЯ

Приложение А

MD4 (Message Digest 4) -- хеш-функция, разработанная профессором Массачусетского университета Рональдом Ривестом в 1990 году, и впервые описанная в RFC 1186. Для произвольного входного сообщения функция генерирует 128-разрядное хеш-значение, называемое дайджестом сообщения. Этот алгоритм используется в протоколе аутентификации MS-CHAP, разработанном корпорацией Майкрософт для выполнения процедур проверки подлинности удаленных рабочих станций Windows. Является предшественником MD5.

Рисунок A - Операция MD4

Одна операция MD4 (рисунок A). Хеширование с MD4 состоит из 48 таких операций, сгруппированных в 3 раунда по 16 операций. F -- нелинейная функция; в каждом раунде функция меняется. M i означает 32-битный блок входного сообщения, а K i -- 32-битная константа, различная для каждой операции.

Приложение B

Rolling checksum

Кольцевой хэш (англ. rolling hash) -- хэш-функция, обрабатывающая вход в рамках некоторого окна. Получение значения хэш-функции для сдвинутого окна (window) в таких функциях является дешевой операцией. Для пересчета значения требуется знать лишь предыдущее значение хэша; значение входных данных, которые остались за пределами окна; и значение данных, которые попали в окно. Процесс сходен с вычислением Скользящей среднего.

Применяется в алгоритме поиска подстроки Рабина -- Карпа, а также в программе rsync для сравнения двоичных файлов (используется кольцевая версия adler-32).

Приложение C

Эндрю Триджелл

Эндрю «Tridge» Триджелл (28 февраля 1967) -- австралийский программист, известный как автор и участник проекта Samba и соавтор алгоритма rsync. Также известен своей работой по анализу сложных закрытых протоколов и алгоритмов, позволившей создать совместимые свободные реализации. Лауреат Free Software Award за 2005.

Free Software Award -- ежегодная премия FSF за вклад в развитие свободного программного обеспечения, основанная в 1998 году.

Рисунок С - Эндрю Триджелл

Размещено на Allbest.ru

Подобные документы

    Анализ основных атак на протокол TLS и определение методов противодействия этим атакам. Разработка метода перехвата и расшифровки трафика, передаваемого по протоколу HTTPS. Расшифровка передаваемых данных в режиме, приближенному к реальному времени.

    статья , добавлен 21.09.2017

    Створення операційної системи UNIX. Історія створення і розвитку протоколів ТСР/ІР. Протокол транспортного рівня. Логічний комунікаційний канал між джерелом і отримувачем даних без встановлення зв’язку. Протокол взаємодії з сервером доменних імен.

    контрольная работа , добавлен 18.05.2009

    Типы корпусов системных блоков. Основные топологии сетей: шина, кольцо, звезда, дерево. FTP как протокол, предназначенный для передачи файлов в компьютерных сетях. Классификация программного обеспечения. Информационно-поисковые системы и их классификация.

    контрольная работа , добавлен 24.12.2010

    Определение IP-протокола, передающего пакеты между сетями без установления соединений. Структура заголовка IP-пакета. Инициализация TCP-соединения, его этапы. Реализация IP на маршрутизаторе. Протокол надежной доставки сообщений ТСР, его сегменты.

    контрольная работа , добавлен 09.11.2014

    Понятие о протоколе Secure Sockets Layer. "Безопасный канал", основные свойства. Использование протокола, его недостатки. Интерфейс программы EtherSnoop. Фазы протокола диалога. Публичные ключи, особенности распространения. Обмен данными в Интернете.

    реферат , добавлен 31.10.2013

    Общие сведения о протоколе передачи данных FTP. Технические процессы осуществления соединения с помощью протокола FTP. Программное обеспечение для осуществления соединения с помощью протокола FTP. Некоторые проблемы FTP-серверов. Команды FTP протокола.

    реферат , добавлен 07.11.2008

    Описание и предназначение протокола DNS. Использование файла host. Особенности и описание способов атак на DNS: ложный DNS-сервер, простой DNS-флуд, фишинг, атака посредством отраженных DNS-запросов. Защита и противодействие атакам на протокол DNS.

    реферат , добавлен 15.12.2014

    Разработка серверной программы, которая позволяет удаленно наблюдать за компьютером, работающим под управлением Linux. Условия, необходимые для решения данной задачи: используемые протоколы передачи данных, программные средства, динамические библиотеки.

    курсовая работа , добавлен 18.06.2009

    Описание основных типов станций протокола HDLC. Нормальный, асинхронный и сбалансированный режимы работы станции в состоянии передачи информации. Методы управления потоком данных. Формат и содержание информационного и управляющего полей протокола HDLC.

    лабораторная работа , добавлен 02.10.2013

    Функция протокола и структура пакета разрабатываемого протокола. Длина полей заголовка. Расчет длины буфера на приеме в зависимости от длины пакета и допустимой задержки. Алгоритмы обработки данных на приеме и передаче. Программная реализация протокола.