Основы сетей и протоколов интернет

Ссылки

  • ISO 7498-2:1989. Information processing systems — Open Systems Interconnection — Basic Reference Model — Part 2: Security Architecture: Standard / ISO/IEC JTC 1 Information technology. — 02.1989. — URL: www.iso.org/standard/15841.html.
  • Automated Validation of Internet Security Protocols and Applications (AVISPA): IST-2001-39252. Deliverable 6.1 ’List of Selected Problems’. Properties (Goals). — 2003. — URL: www.avispa-project.org/delivs/6.1/d6-1/node3.html
  • Черёмушкин А. В. Криптографические протоколы: основные свойства и уязвимости // Прикладная дискретная математика. — 2009. — нояб. — вып. 2. — с. 115—150. — URL: cyberleninka.ru/article/n/kriptograficheskie-protokoly-osnovnye-svoystva-i-uyazvimosti.pdf.

Стандарт промышленной сети EtherCAT, разработка компании Beckhoff

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


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

Спецификация протокола открыта и доступна, но только в рамках ассоциации разработки — EtherCAT Technology Group.

Вот, как работает EtherCAT (зрелище завораживает, как игра Zuma Inca):

Высокая скорость обмена в этом протоколе —а речь может идти о единицах микросекунд— реализована благодаря тому, что разработчики отказались от обмена с помощью телеграмм, посылаемых непосредственно конкретному устройству. Вместо этого в сеть EtherCAT направляется одна телеграмма, адресованная всем устройствам одновременно, каждый из подчиненных узлов сбора и передачи информации (их еще часто называют УСО — устройство связи с объектом) забирает из нее «на лету» те данные, которые предназначались ему, и вставляет в телеграмму данные, который он готов предоставить для обмена. После этого телеграмма отправляется следующему подчиненному узлу, где происходит та же операция. Пройдя все УСО, телеграмма возвращается главному контроллеру, который на основе полученных от подчиненных устройств данных, реализует логику управления, опять же взаимодействуя посредством телеграммы с подчиненными узлами, которые выдают управляющий сигнал на оборудование.

Сеть EtherCAT может иметь любую топологию, но по сути это всегда будет кольцо — из-за использования полнодуплексного режима и двух разъемов Ethernet. Таким образом, телеграмма всегда будет передаваться последовательно каждому устройству на шине.

Кстати, спецификация EtherCAT не содержит ограничений физического уровня 100Base-TX, поэтому реализация протокола возможна на основе гигабитных и оптических линий.

Соединение TCP

TCP для передачи данных использует соединение. Соединение нужно установить перед тем, как начать передачу данных, а после того как передача данных завершена, соединение разрывается.

Задачи соединения

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

Установка соединения в TCP

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

Получатель в ответ передаёт сообщение SYN, куда включает подтверждение получения предыдущего сообщения ACK от слова acknowledge и порядковый номер байта, который он ожидает 7538, потому что на предыдущем этапе был получен байт с номером 7537.

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

На третьем этапе пересылается подтверждение получения предыдущего запроса на установку соединения ACK номер следующего ожидаемого байта 36830, а также номер байта в сообщении. После этого соединение считается установленным и можно передавать данные.

Разрыв соединения в TCP

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

Протокол TCP предусматривает два варианта разрыва соединения: корректное, с помощью одностороннего разрыва соединения и сообщения FIN и разрыв из-за критической ситуации с помощью сообщения RST.

Рассмотрим, как выполняется корректный разрыв соединения. Сторона, которая хочет разорвать соединение пересылает другой стороне сообщение FIN и в ответ получает сообщение ACK. Однако соединение разорвано только с одной стороны.

Когда другая сторона решила, что данные для передачи у нее закончились, она также передает сообщение FIN в ответ получает сообщение ACK подтверждение. На этом этапе соединение закрыто полностью в обе стороны.

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

Система адресации

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

Однако большую известность имеет DNS (Domain Name System — система доменных имен). Ее задача — обеспечить уникальность каждого адреса в Сети, без необходимости запоминания чисел. Именно сервер DNS производит преобразование символьных (буквенных) адресов в числовые. Система образования доменных имен также логична и проста.

Адрес любого web-сервера начинается с аббревиатуры http, обозначающей вид протокола передаваемых данных — в данном случае это HyperText Transmission Protocol (Протокол передачи гипертекста). Далее следует двоеточие, две косые черты и латинские буквы www, после которых ставится точка. Затем идет конкретный адрес, содержащий название учреждения, персоны или аббревиатуру и, через точку, — указание на организационную или географическую принадлежность объекта.

Организационная принадлежность, указываемая преимущественно для американских серверов, обозначается тремя символами, интуитивно понятными знающим английский язык: gov — правительственные, edu — образовательные, com — коммерческие, org — неправительственные и некоммерческие учреждения, mil — военные, net — сами сети. Географическая принадлежность выражается, как правило, двумя символами: .ru — Россия, .uk — Великобритания, .ca — Канада, .nl — Нидерланды и т. д.

В течение всех 90-х годов описанная система имен оставалась неизменной. Но к началу нынешнего века гигантские темпы развития Интернет привели к тому, что адресное пространство в рамках описанной системы было практически исчерпано. Особо “тесно” стало в доменах .com, .net и .org в которых была разрешена регистрация не только американских, но любых других фирменных или персональных сайтов представителей любой страны мира.

С целью разгрузить данные домены Корпорация по распределению в Интернет доменных имен и IP-номеров (Internet Corporation for Assigned Names and Numbers. ICANN) дополнила существующую сетку новыми доменами первого уровня. В их число вошли: .biz, .info, .pro, .aero, .coop, .museum, .name.

Распределение этих имен было произведено следующим образом: .biz — коммерческие компании и проекты; .info — учреждения, для которых информационная деятельность является ведущей (библиотеки, средства массовой информации); .pro — сайты сертифицированных профессионалов таких областей деятельности как врачи, юристы, бухгалтеры, а также представители других профессий, в которых персональный аспект имеет ключевое значение (pro от слов profession, professional); .aero — компании и персоны, непосредственно связанные с авиацией; .coop — корпорации, использующие совместный капитал (от слова cooperative); .museum — только музеи, архивы, выставки; .name — персональные сайты, состоящие, как правило, из двух частей: имени и фамилии: www.bruce.edmonds.name.

Помимо деятельности ICANN, весьма своеобразную работу по расширению адресного пространства Интернет провели некоторые частные компании. Их действия выразились в перекупке доменных имен у малых стран. Таким образом, в частное использование отошли домены .cc — Кокосовые острова, .tv — Тувалу, .ws — Самоа, .bz — Белиз, .nu — Ниуи. Сайты в этих доменах ныне могут использоваться любым желающим, независимо от страны или вида деятельности.

Бывают статические и динамические адреса. Статические присвоены компьютеру постоянно, а динамические выдаются специальным сервером лишь на время работы компьютера в сети.

Основные понятия

Протоколцикловroundпроходовpassшаговstep, action

  • генерация нового (случайного) значения;
  • вычисление значений функции;
  • проверка сертификатов, ключей, подписей, и др.;
  • приём и отправка сообщений.

сеансомролей

  1. Участник с ролью «Отправитель» должен отправить участнику с ролью «Получатель» сообщение.
  2. Участник с ролью «Получатель» должен принять от участника с ролью «Отправитель» сообщение.
  1. 1-го апреля в 13:00 Алиса отправила Бобу сообщение.
  2. 1-го апреля в 13:05 Боб принял от Алисы сообщение.

Защищённым протоколомпротоколом обеспечения безопасности

  • аутентификация сторон и источника данных,
  • разграничение доступа,
  • конфиденциальность,
  • целостность,
  • невозможность отказа от факта отправки или получения.

криптографическим

Открытые промышленные сети и стандарты PROFIBUS/NET компании Siemens

Немецкий концерн Siemens давно известен своими программируемыми логическими контроллерами (ПЛК), которые используется по всему миру.

Обмен данными между узлами автоматизированной системы под управлением оборудования Siemens реализуется как по полевой шине, которая называется PROFIBUS, так и в промышленной сети PROFINET.

Шина PROFIBUS использует специальный двужильный кабель с разъемами DB-9. У Siemens он фиолетовый, но мы на практике встречали и другие :). Для связи нескольких узлов разъем может соединять два кабеля. Также в нем есть переключатель для терминального резистора. Терминальный резистор должен быть включен на концевых устройствах сети, таким образом сообщается, что это первое или последнее устройство, а после него уже ничего нет, только мрак и пустота (все rs485 так работают). Если на промежуточном разъеме включить резистор, то следующий за ним участок будет отключен.


В сети PROFINET используется аналог витой пары, как правило, с разъемами RJ-45, кабель окрашен в зеленый цвет. Если топология PROFIBUS —шина, то топология сети PROFINET может представлять собой что угодно: хоть кольцо, хоть звезду, хоть дерево, хоть все вместе взятое.

Существуют несколько протоколов обмена по шине PROFIBUS и в сети PROFINET.

Для PROFIBUS:

  1. PROFIBUS DP — реализация этого протокола подразумевает связь с удаленными подчиненными устройствами, в случае с PROFINET этому протоколу соответствует протокол PROFINET IO.
  2. PROFIBUS PA — является по сути тем же PROFIBUS DP, только используется для взрывобезопасных исполнений передачи данных и питания (аналог PROFIBUS DP с другими физическими свойствами). Для PROFINET взрывобезопасного протокола по аналогии с PROFIBUS пока не существует.
  3. PROFIBUS FMS — предназначен для обмена данными с системами других производителей, которые не могут использовать PROFIBUS DP. Аналогом PROFIBUS FMS в сети PROFINET является протокол PROFINET CBA.

Для PROFINET:

  1. PROFINET IO;
  2. PROFINET CBA.

Протокол PROFINET IO делится на несколько классов:

  • PROFINET NRT (без реального времени) — используется в приложениях, где временные параметры не критичны. В нем используется протокол передачи данных Ethernet TCP/IP, а также UDP/IP.
  • PROFINET RT (реальное время) — тут обмен данными ввода/вывода реализован с помощью фреймов Ethernet, но диагностические данные и данные связи все еще передаются через UDP/IP. 
  • PROFINET IRT (изохронное реальное время) — этот протокол был разработан специально для приложений управления движением и включает в себя изохронную фазу передачи данных.

Что касается реализации протокола жесткого реального времени PROFINET IRT, то для коммуникаций с удаленными устройствами в нем выделяют два канала обмена: изохронный и асинхронный. Изохронный канал с фиксированной по времени длиной цикла обмена использует тактовую синхронизацию и передает критичные ко времени данные, для передачи используются телеграммы второго уровня. Длительность передачи в изохронном канале не превышает 1 миллисекунду.

В асинхронном канале передаются так называемые real-time-данные, которые тоже адресуются посредством MAC-адреса. Дополнительно передается различная диагностическая и вспомогательная информация уже поверх TCP/IP. Ни real-time-данные, ни тем более другая информация, разумеется, не может прерывать изохронный цикл.

Расширенный набор функций PROFINET IO нужен далеко не для каждой системы промышленной автоматики, поэтому этот протокол масштабируют под конкретный проект, с учетом классов соответствия или классов применения (conformance classes): СС-A, CC-B, CC-CC. Классы соответствия позволяют выбрать полевые устройства и магистральные компоненты с минимально необходимой функциональностью. 

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

Порядок следования сообщений

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

Какие проблемы могут произойти? Протокол IP не сохраняет порядок следования сообщений и поэтому сегменты могут  прийти к  получателю не в том порядке в котором они были отправлены. Кроме того, некоторые сегменты могут прийти два и более раз. Рассмотрим одну из возможных причин дублирования сегментов.

Дублирование сегментов

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

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

Механизм очень простой, все сообщения нумеруются. В TCP нумеруются не сегменты, так как разные сегменты могут иметь разный размер, а байты.

В нашем примере 4 сегмента первый сегмент содержит байты от 0 до 1023, второй от 1024 до 2047 и так далее.

Нумерация байтов

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

  • Например сегмент данных, байт 0, он содержит байты с 0 до 1023.
  • Получатель отправляет подтверждение и в подтверждение включает номер следующего байта, который ожидается байт 1024.
  • Отправитель передает следующий сегмент, включая в него номер первого байта, сегмент данных, номер первого байта 1024 содержит данные до номера байта 2047.
  • Получатель отправляет подтверждение, что он ждет байт с номером 2048, если сегменты придут в неправильном порядке, то получатель по номерам байтов всегда сможет выставить их в правильной последовательности.

Дублирование сегментов

Рассмотрим как решается ситуация с дублированием сегментов.

  • Отправитель включает в сегмент номер первого передаваемого байта 1024.
  • Получатель отправляет подтверждение, где говорит что ждет байт в 2048.
  • Но так как подтверждение не дошло, то отправитель передает тот же самый сегмент 1024.
  • Однако получатель видит, что этот сегмент у него уже есть поэтому он этот сегмент игнорирует и снова отправляет подтверждение, где говорит что он ожидает байт 2048.

Протокол Ethernet POWERLINK компании B&R

Протокол Powerlink разработан австрийской компанией B&R в начале 2000-х. Это еще одна реализация протокола реального времени поверх стандарта Ethernet. Спецификация протокола доступна и распространяется свободно. 

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

Изначально протокол был реализован поверх физического уровня 100Base-TX, но позже была разработана и гигабитная реализация.

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

Схематическое представление сети Ethernet POWERLINK с несколькими узлами.

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

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

Классификация протоколов

объективных и однозначных

  • Классификация по числу участников протокола:
    • двусторонний,
    • трёхсторонний и т. п.,
    • многосторонний.
  • Классификация по числу передаваемых сообщений:
    • интерактивный (с наличием взаимного обмена сообщениями);
    • неинтерактивный (с однократной передачей сообщений), часто называется схемами. Определение не совсем полное. Любая схема предполагает как минимум два этапа. На первом предварительном этапе доверенный центр распределяет некоторую информацию между одноранговыми участниками. На втором этапе (конкретные сеансы протокола) участники обмениваются этой информацией, получая исходный секрет или новый секретный сеансовый ключ. Причём обмен информацией может идти более чем между двумя участниками. Однако после взаимного обмена информацией дополнительных проходов для выполнения целей схемы не требуется.
  • Классификация по числу проходов (раундов):
  • Классификация по используемым криптографическим системам:
    • на основе только симметричных криптосистем;
    • на основе в том числе асимметричных криптосистем.
  • Классификация по защищённым свойствам протокола:
    • (G1) обеспечивает или нет аутентификацию первой, второй стороны протокола и т. д.;
    • (G2) обеспечивает или нет аутентификацию сообщений;
    • (G3) обеспечивает или нет защиту от повторов;
    • и т. п.
  • Классификация по типам участников:
    • одноранговый, когда все участники могут выполнять любые роли в рамках протокола;
    • с доверенным посредником, когда в протоколе всегда участвует третья доверенная сторона;
    • с доверенным арбитром, когда в протоколе может участвовать третья доверенная сторона, если остальные участники не пришли к согласию.
  • Классификация по целевому назначению протокола:
    • … обеспечения целостности,
    • … цифровой подписи,
    • … идентификации,
    • … конфиденциальности,
    • … распределения ключей,
    • … и т. п.
  • Классификация по «полноте» выполняемых функций:
    • примитивные, используются как базовый компонент при построении прикладных протоколов;
    • промежуточные;
    • прикладные, предназначены для решения практических задач.

Протокол Ethernet/IP компании Rockwell Automation

Протокол EtherNet/IP разработан при активном участии американской компании Rockwell Automation в 2000 году. Он использует стек TCP и UDP IP, и расширяет его для применения в промышленной автоматизации. Вторая часть названия, вопреки расхожему мнению, означает не Internet Protocol, а Industrial Protocol. UDP IP использует коммуникационный стек протокола CIP (Common Interface Protocol), который также используется в сетях ControlNet / DeviceNet и реализуется поверх TCP/IP.

Спецификация EtherNet/IP является общедоступной и распространяется бесплатно. Топология сети Ethernet/IP может быть произвольной и включать в себя кольцо, звезду, дерево или шину.

В дополнение к стандартным функциям протоколов HTTP, FTP, SMTP, EtherNet/IP реализует передачу критичных ко времени доставки данных между опрашивающим контроллером и устройствами ввода/вывода. Передача некритичных ко времени данных обеспечивается пакетами TCP, а критичная ко времени доставка циклических данных управления идет по протоколу UDP. 

Для синхронизации времени в распределенных системах EtherNet/IP использует протокол CIPsync, который является расширением коммуникационного протокола CIP.

Для упрощения настройки сети EtherNet/IP большинство стандартных устройств автоматики имеют в комплекте заранее определенные конфигурационные файлы.

Итого: как всё это используется на практике в АСУ ТП

Естественно, видовое разнообразие современных промышленных протоколов передачи данных намного больше, чем мы описали в этой статье. Некоторые привязаны к конкретному производителю, некоторые, напротив, универсальны. При разработке автоматизированных систем управления технологическим процессом (АСУ ТП) инженер выбирает оптимальные протоколы, с учетом конкретных задач и ограничений (технических и по бюджету).

Если говорить о распространенности того или иного протокола обмена, то можно привести диаграмму компании HMS Networks AB, которая иллюстрирует доли рынка различных технологий обмена в промышленных сетях.

Как видно на диаграмме, PRONET и PROFIBUS от Siemens занимают лидирующие позиции.

60% рынка занимали протоколы PROFINET и Ethernet/IP


В таблице ниже собраны сводные данные по описанным протоколам обмена. Некоторые параметры, например, производительность выражены абстрактными терминами: высокая /низкая. Числовые эквиваленты можно отыскать в статьях по анализу производительности. 

EtherCAT

POWERLINK

PROFINET

EtherNet/IP

ModbusTCP

Физический уровень

100/1000 BASE-TX

100/1000 BASE-TX

100/1000 BASE-TX

100/1000 BASE-TX

100/1000 BASE-TX

Уровень передачи данных

Канальный (Ethernet-фреймы)

Канальный (Ethernet-фреймы)

Канальный (Ethernet-фреймы), Сетевой/транспортный(TCP/IP)

Сетевой/транспортный(TCP/IP)

Сетевой/транспортный(TCP/IP)

Поддержка реального времени

Да

Да

Да

Да

Нет

Производительность

Высокая

Высокая

IRT – высокая, RT – средняя

Средняя

Низкая

Длина кабеля между узлами

100м

100м/2км

100м


100м

100м

Фазы передачи

Нет

Изохронная + асинхронная

IRT – изохронная + асинхронная, RT – асинхронная

Нет

Нет

Количество узлов

65535

240

Ограничение сети TCP/IP

Ограничение сети TCP/IP

Ограничение сети TCP/IP

Разрешение коллизий

Кольцевая топология

Тактовая синхронизация, фазы передачи

Кольцевая топология, фазы передачи

Коммутаторы, топология “звезда”

Коммутаторы, топология “звезда”

Горячая замена

Нет

Да

Да

Да

В зависимости от реализации

Стоимость оборудования

Низкая

Низкая

Высокая

Средняя

Низкая

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


С этим читают