Синхронизация Роман Вакулюк / ROMA ROBOT

Синхронизация. Новый уровень шоу. V2. NETWORK. OSC (Open Sound Control) для шоу

Роман Вакулюк / ROMA ROBOT

image

Я снова приветствую вас, уважаемые коллеги, на страницах журнала «Шоумастер». Мы с вами уже знакомы по серии статей, где я описывал свои труды в направлении синхронизации. Цикл статей был окончен и меня чрезвычайно удивила живая обратная связь, вопросы читателей и сообщения с благодарностью за то, что я делюсь знаниями.

С момента выхода первой статьи прошло уже больше года, и мои наработки в области синхронизации изрядно пополнились. Настало время мне этим всем поделиться. Мы запускаем новый цикл статей «Синхронизация. Новый уровень шоу».

OSC (Open Sound Control)

Время идет, и технологии не стоят на месте. Протоколу MIDI уже почти сорок лет! И, конечно же, на смену ему пришла более современная альтернатива – Oрen Sound Control. Этот интерфейс пришел из мира музыки, а другие направления шоу-индустрии быстро его освоили. Сейчас этот протокол настолько популярен в разных направлениях шоу-технологий, что его создатели дали ему второе название: Open System Control. Что же в нем особенного? Давайте разберемся.

Этот протокол был разработан в компании CNMAT (Center for New Music and Audio Technologies) программистами Эдрианом Фридом и Мэттом Райтом еще в 1997 году и основывался на базе широко используемого интерфейса Ethernet. Главное преимущество протокола было в том, что для работы с ним не нужно никакого специального оборудования и коммутации, лишь стандартные сетевые карты и обыкновенная витая пара. Кроме того, Ethernet развивается и поддерживается разными компаниями и институтами. Сейчас технологии позволяют передавать сигнал по Ethernet, по воздуху и оптическому каналу на многие километры. Передача по сравнению с MIDI в тысячи раз быстрее и надежнее. Все эти преимущества автоматически унаследовал протокол OSC.

Но кроме преимуществ есть и недостатки: он стал сложнее. Как следствие, специалисту необходимо иметь больше знаний для работы с ним. Цель этой главы – рассказать об основных принципах для комфортной и уверенной работы с протоколом OSC.

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

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

Сетевое оборудование

Поговорим сначала об оборудовании и коммутации. Чтобы построить сеть, надо определиться с необходимым оборудованием. Это могут быть контроллеры, компьютеры, смартфоны, планшеты, консоли управления и многое другое.

image

Ethernet разъем (8P8C)

Давайте разберем простейший пример, в котором у нас есть четыре компьютера. Чтобы каждый компьютер мог соединиться в сеть, он должен иметь сетевую карту. Как правило, компьютеры имеют встроенные сетевые карты, за исключением некоторых компактных ноутбуков, где сетевой разъем убирают для экономии места. К примеру, мой MAC Book толщиной меньше, чем сам разъем Ethernet. Для таких компьютеров есть специальные переходники с Thunderbolt и USB на Ethernet.

Большая часть сетевого оборудования использует физический интерфейс стандарта RJ-45. Кстати, существует путаница с названиями сетевых разъемов и коннекторов. RJ-45 – это имя стандарта, который описывает конструкцию обеих частей разъема (вилки и розетки) и схемы их коммутации. А сам сетевой разъем называется 8P8C.

Сетевые карты бывают разные, основная характеристика, которая вас должна интересовать, – это скорость передачи и приема данных. Она измеряется в максимальном количестве данных в битах, передаваемых за одну секунду. Существуют такие скорости, как 10 Mbps (Megabit per second), 100 Mbps, 1 Gbps (Gigabit per second), 2,5 Gbps, 5 Gbps, 10 Gbps, 40 Gbps, 100 Gbps и 160 Gbps. На данный момент самые распространенные и часто используемые скорости в оборудовании и сетевых картах – 100 Mbps и 1 Gbps. Скорости выше одного гигабита в секунду – это более профессиональные стандарты для передачи огромных объемов данных, для таких скоростей нужны специальные сетевые карты и сетевые кабели подходящего стандарта.

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

Первый тип – Ethernet Hub. Хаб представляет собой простейшее сетевое устройство, которое дублирует все свои порты между собой. Это своего рода сетевой сплиттер. Получив пакет данных с одного порта, хаб дублирует этот пакет на все остальные. Вот и все. Но это плохо, потому что, даже если пакеты предназначаются только одному клиенту, хаб оправит их всем клиентам, что загрузит порты и – самое главное – сеть! Хорошая новость: простые хабы практически уже не встречаются, так как они попросту морально устарели.

Следующий тип коммутаторов – Ethernet Switch. Свитч внешне никак не отличим от хаба, но это уже более умное устройство. Оно позволяет грамотно организовать вашу сеть. При включении свитч опрашивает все свои порты и знает, на каком порте какое устройство и с каким адресом находится. Что это нам дает? Когда на определенный порт свитча приходит пакет, который предназначен для конкретного адреса, свитч отправляет этот пакет на конкретный порт, где находится тот самый адресат. При такой схеме сеть работает намного рациональнее и быстрее.

Схема подключения клиентов

Существует два типа свитчей: Managed и Unmanaged. Самые распространенные на рынке — это Unmanaged. Они не настраиваются, в них предустановленные основные настройки, которые позволяют работать сразу с сетью. Чтобы запустить в работу Managed – свитч более высокого уровня, – его необходимо сначала настроить. Он понимает, с какими протоколами работает, фильтрует или блокирует данные. Такие свитчи имеют довольно широкий функционал для конкретных задач.

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

И последний тип коммутаторов – это Router, который по функционалу похож на настраиваемый свитч, его отличие в том, что он помогает настроить правила общения между двумя физическими сетями. Самое распространенное использование роутеров – организация сети между интернетом и локальной сетью. Роутер может подключаться к интернету по определенным правилам, но при этом создавать независимую сеть для локальных пользователей, а также передавать пакеты между этими сетями. Часто роутеры имеют службу DHCP (Dynamic Host Configuration Protocol), которая позволяет автоматически раздавать IP-адреса клиентам без участия пользователя. О ней мы поговорим чуть позже. Большинство бытовых роутеров имеют встроенную беспроводную точку доступа Wi-Fi.

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

Сетевые настройки
Итак, физически мы подключили четыре компьютера в одну сеть. Теперь второй шаг: нужно настроить сетевую карту на каждом компьютере. Современные сетевые карты настолько автономны, что они сами дружатся с оборудованием, которое подключено на другом конце кабеля, будь то другой компьютер или маршрутизатор. Тем не менее, есть настройки, которые необходимо сделать пользователю. А именно: указать каждой сетевой карте хотя бы один уникальный IP-адрес (Internet Protocol Address). IP-адрес – это низкоуровневый идентификатор, который позволяет опознавать каждый компьютер или устройство в сети. У каждого устройства IP-адрес должен быть уникальным. Когда один компьютер хочет передать пакет данных другому, то отправитель в заголовке пакета указывает IP-адрес получателя и свой IP как отправителя. В таком случае пакет данных будет гарантированно доставлен клиенту.

Кстати, с хабом отправленный пакет данных получат все компьютеры – даже с другими IP-адресами. Когда такой пакет приходит постороннему компьютеру, сетевая карта должна сначала расшифровать его заголовок и понять, ей ли он предназначается. Когда карта понимает, что этот пакет данных предназначен не ей, она просто очищает свой буфер памяти от только что полученных «чужих» данных — и готова принимать следующий пакет. Но это все занимает время и вычислительные ресурсы сетевой карты. Что нерационально. Когда свитч получает пакет данных, он читает заголовок сообщения и, так как он уже знает, на каком физическом порте сидит клиент с этим IP-адресом, перенаправляет этот пакет конкретному клиенту с конкретным IP-адресом. А все остальные клиенты не расшифровывают чужие сообщения и готовы принимать пакеты, которые предназначены конкретно для них.

Вернемся снова к IP-адресу сетевой карты. На данный момент существует две версии IP-адресов. IPv6 и IPv4, разница между ними в количестве байт, выделяемых для идентификации адреса, или, говоря простым языком, они различаются длиной адреса. Пример IPv4 адреса – 192.168.1.100. Пример IPv6 адреса –FE:BA:76:32:FE:BA:76:32. Вы можете спросить: для чего же придумали более сложную версию IP-адресов? Дело в том, что когда на свет появлялась глобальная сеть интернет, никто не мог себе представить, что формата адресов IPv4 может не хватить для каждого пользователя, ведь в этом формате можно идентифицировать 4,22 миллиарда уникальных адресов.

Но цифровой прогресс происходил с огромной скоростью, и количество устройств в сети с каждым годом увеличивалось в геометрической прогрессии! Адресов стало не хватать, и тогда придумали новую версию – формата IPv6, благодаря которому можно задать 3.4*1038 адресов! Но так как вы зачастую настраиваете вашу личную локальную сеть, вероятность, что вы исчерпаете лимит адресов IPv4, практически стремится к нулю, поэтому вполне достаточно более простой версии IP-адреса.

Довольно теории, давайте перейдем к практике, а именно к непосредственной настройке адресов. На разных консолях, устройствах и контроллерах интерфейс настройки IP-адреса выглядит по-разному в зависимости от производителя. Я предлагаю рассмотреть самые распространенные опции, которые предоставляют операционные системы Windows и MAC OS.

Окно настройки сетевой карты системы Windows

Окно настройки сетевой карты системы MAC OS

Когда инженер настраивает локальную сеть для синхронизации или других целей, он в основном не планирует доступ к глобальной сети интернет, так как это небезопасно. И поэтому мы затронем лишь особенности настройки таких параметров карты, как IP-адрес и Маска подсети (Subnet mask). Все остальные параметры необходимы для доступа к интернету или настройки более сложных сетей. Какой же диапазон адресов необходимо выбрать для ваших устройств в сети? На самом деле он может быть каким угодно, но все же стоит придерживаться правил, которые устанавливает всемирная организация IANA (Internet Assigned Numbers Authority). Функционал этой организации очень широк, одна из ее задач – следить за тем, чтобы не было хаоса с адресами в интернете. И поэтому она четко регламентировала диапазоны адресов для локальных сетей.

Ниже представлены эти диапазоны.
От 10.0.0.0 до 10.255.255.255
От 172.16.0.0 до 172.31.255.255
От 192.168.0.0 до 192.168.255.255

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

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

Разберем на примере. Возьмем адресное пространство 10.x.x.x. Если нужно максимально закрыть нашу сеть, мы устанавливаем маску подсети 255.255.255.0. Тогда если мы хотим, чтобы наши компьютеры были в одной подсети и могли друг друга видеть, то их IP-адреса должны иметь одинаковые первые три цифры адреса. К примеру, 10.0.0.x. Диапазон адресов нашей подсети будет составлять от 10.0.0.1 до 10.0.0.255. Но если один из компьютеров будет иметь IP-адрес 10.0.1.87, он будет находиться в другой подсети (10.0.1.1-10.0.1.255) и для первой подсети не будет виден.

image

Как же сделать четвертый компьютер видимым для всех остальных компьютеров? Есть два способа. Первый – ввести четвертый компьютер в адресное пространство подсети 10.0.0.x. Для этого нужно изменить IP-адрес четвертого компьютера: к примеру, на 10.0.0.87. Обратите внимание: мы просто изменили третью цифру адреса с единицы на ноль.

Второй способ – расширить нашу подсеть так, чтобы старый адрес четвертого компьютера попадал в нее. Для этого достаточно на всех компьютерах расширить маску подсети, поменяв ее с 255.255.255.0 на 255.0.0.0. Теперь диапазон IP-адресов нашей подсети составляет от 10.0.0.1 до 10.255.255.255. В этом случае, как мы можем видеть, IP-адрес четвертого компьютера 10.0.1.87 попадает в диапазон адресов нашей подсети.

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

Но, как я уже говорил, существует волшебная служба DHCP (Dynamic Host Configuration Protocol), которая может автоматически задать всем компьютерам сети IP-адреса и другие настройки сетевой карты, чтобы все компьютеры были участниками одной подсети. Чтобы волшебство DHCP произошло, нужно соблюсти два условия.

Во-первых, на одном из участников сети должен быть создан и запущен DHCP-сервер, который можно поднять на Windows и на MAC OS. Очень часто подобная служба присутствует на роутере. В этой службе указываются такие параметры, как маска подсети и диапазон адресов, которые будут выдаваться новым клиентам сети.

Во-вторых, необходимо, чтобы на сетевой карте вашего компьютера была активирована опция автоматического получения настроек сетевой карты от DHСP-сервера. В MAC OS системе, эта функция называется Using DHCP. А в Windows – Obtain an IP address automaticaly.

Включение функции получение настроек сетевой карты от DHCP сервера на MAC OS

Включение функции получение настроек сетевой карты от DHCP сервера на Windows

Дополнительная информация сетевой карты,

где можно увидеть полученные настройки и IP DHCP сервера

Но зачастую, когда вы работаете с синхронизацией, где вам приходится указывать конкретные IP-адреса клиентов, которые должны получать ваши данные, например, OSС, автоматическая конфигурация сети – не самый лучший выбор, так как ваши устройства не привязываются жестко к IP-адресам. У DHCP есть такой параметр, как время аренды IP-адреса клиента, по истечении которого DHCP-сервер выдает клиенту новый IP-адрес, – и он может отличаться от старого. Если такое происходит, ваша синхронизация по сети рушится, так как у клиента, которому вы хотите отправить сообщения, теперь новый IP-адрес. При статичных IP-адресах на сетевых картах адрес перманентен и только пользователь может его изменить. Такая жесткая привязка настроек сетевой карты намного надежнее, что необходимо при настройке синхронизации по сети.

Упомяну также беспроводную сеть Wi-Fi. Часто приходится использовать в синхронизации смартфоны и планшеты (к примеру, для управления сервером синхронизации), которые также должны быть участниками общей сети. В этом случае вам достаточно вести в вашу сеть беспроводную точку доступа (Wi-Fi Access Point) или Wi-Fi-роутер, в котором уже встроена точка доступа. Все настройки Wi-Fi сетевых карт абсолютно идентичны, единственное: прежде чем подключиться к беспроводной сети, вам необходимо авторизоваться в ней, введя логин и пароль Wi-Fi, которые заданы в беспроводной точке доступа.

image

Проверка сетевого подключения

Если сетевое оборудование настроено правильно и все клиенты подключены к сети, то участники могут обмениваться данными между собой. Чтобы проверить, действительно ли устройства видят друг друга, можно провести тестирование, отправив тестовые пакеты на конкретный IP-адрес.

WINDOWS

Для этого системе Windows необходимо открыть приложение командной строки. Чтобы это сделать, нажмите одновременно клавиши Win+R, в окне «Выполнить» введите cmd, далее нажмите кнопку OK. Перед вами откроется окно командной строки. Чтобы проверить подключение между вашим компьютером и другим, введите команду ping 192.168.1.202 и нажмите Enter. Соответственно, вам нужно ввести тот IP-адрес, связь с которым вы хотите проверить. Если все прошло успешно, то в отчете пинга адреса вы увидите Received = 4; Lost = 0. В противном случае командная строка выдаст вам отчет, где либо часть пакетов, либо все они потеряны. Это означает, что клиент с таким IP-адресом недоступен или имеет какие-то неисправности с сетью.

image

MAC

Чтобы сделать такую же проверку в операционной системе MAC OS, необходимо открыть приложение терминала. Для этого зайдите в папку с вашими установленными приложениями и откройте приложение Terminal. Для проверки соединения с клиентом, введите команду ping – c 4 192.168.1.201. В итоге вы так же получите отчет о пинге адреса. Если все в порядке, то вы не потеряете ни одного пакета, и терминал выдаст сообщение 0.0% packet loss. Это означает, что соединение работает корректно. После того как мы подключили все оборудование, проверили подключения между участниками сети и убедились в том, что все работает корректно, можно приступить к настройке OSC. А об этом мы поговорим уже в следующей главе!

image

Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер. от 4 2018 (95)