- PVSM.RU - https://www.pvsm.ru -
Источник изображения [1]
Сегодня быстрыми темпами роста количества устройств сети Интернет и интернета вещей уже никого не удивишь. Существует множество различных протоколов и технологий, на которых основана обработка и обмен информацией между устройствами и, собственно, сама связь этих устройств.
Некоторые технологии являются своеобразными канонами: используются уже не один десяток лет и постоянно совершенствуются. А есть и такие, которые уже либо вымерли, либо же родились, но так и попали в массы ввиду своего несовершенства, низкой релевантности в отношении требований рынка и прочего.
В этой статье речь пойдет о технологии, не относящейся ни к одной, ни к другой группе. Без нее компьютерные сети смогли бы существовать без особых проблем, но при этом она способна значительно упростить работу и снизить затраты на эксплуатацию у крупных предприятий, небольших организаций и даже домашних пользователей.
Сложно сказать когда именно появилась данная технология в том виде, в каком ее используют сейчас. Вероятнее всего с развитием возможностей программных компонентов Linux, ростом потребностей рынка и изобретательности энтузиастов и появилась современная технология проброса USB-девайсов через сеть.
В наши же дни существуют два популярных инструмента для трассировки USB-устройств: usbip и usbip-win. Оба из них нацелены на совместное использование USB устройств через IP-сеть за счет обработки USB I/O сообщений, их инкапсуляции в TCP/IP и последующей передачи передачи между устройствами сети типа «клиент-сервер». В такой схеме устройства подключаются к серверу и на нем же запускается необходимый демон.
На машине клиента, как правило, запускается любое приложение, которое не умеет работать с сетью, зато прекрасно справляется с USB-девайсами. Технология проброса как раз позволяет эмулировать локальное подключение USB-устройств на клиентской машине.
Преимущества сетевого проброса USB-устройств:
Недостатки:
Способ обмена информацией у локальных и удаленных устройств отличается лишь тем, что для удаленных девайсов будет использоваться виртуальный драйвер шины: набор инструкций и данных. осуществляющий преобразование логической информации или данных в физические сигналы.
Подключение локальных и удаленных устройств
Когда приложения отправляют запрос на конечное устройство, USB PDD (USB Personal Device Driver) преобразует запросы ввода-вывода в серию команд понятных для USB, а затем отправляет их через драйвер шины (связующее звено между драйвером устройства и конечным устройством) в виде блоков USB-запросов на конечное устройство.
Персональный драйвер устройства (PDD), как ни странно, отвечает за управление отдельными USB-устройствами. PDD отправляет запросы в виде специальных блоков запросов URB (USB Request Block), которыми он обменивается данными с ядром USB (USB Core) — отдельной подсистемой внутри ОС, выполняющей роль поддержки USB-устройств и контроллеров.
Модель обмена данными между USB устройствами и конечным пользователем
Для реализации проброса протокола USB через IP — сеть была разработана сущность, называемая виртуальным интерфейсом хост-контроллера, он же Virtual Host Controller Interface (VHCI). VHCI относится к виртуальному контроллеру и способен экспортировать виртуальные USB-устройства, не поддерживаемые физическими устройствами. В Linux контроллеры VHCI используются для доступа к USB-устройствам с удаленных машин, подключенных по уже известному нам протоколу USBIP.
VHCI является эквивалентом драйвера хост-контроллера (HCD) и отвечает за обработку URB-запросов. И VHCI, и HCD отвечают за обработку URB-запросов, полученных от ядра и делят их на более простые запросы, именуемые как Transfer Descriptions (дескрипторы передачи TD) для их дальнейшей передачи на хост-контроллер интерфейса, он же USB-контроллер (Host Controller Interface HCI). Данный интерфейс работает на уровне физических регистровых передач и обеспечивает коммуникацию с периферийными устройствами, подключенными к USB.
Теперь о том, как USB попадает в сеть. Блок запросов URB преобразуется в блок запроса USB / IP драйвером VHCI и отправляется на удаленный компьютер. Драйвер заглушки также добавлен как новый тип USB PDD. Драйвер-заглушка отвечает за декодирование входящих USB / IP-пакетов с удаленных машин, извлечение URB и последующую отправку их на локальные USB-устройства.
Модуль ядра vhci-hcd — это только виртуальный хост-контроллер, к которому вы можете подключить виртуальные устройства.
Рассмотрим работу с USB-концентратором на примере устройства DistKontrolUSB-16. Для того, чтобы пробросить USB-устройство с порта концентратора, необходимо:
Описанная технология способна обеспечить необходимую масштабируемость и гибкость в современной, постоянно изменяющейся среде. Проброс USB-устройств через сеть также обеспечивает надежность за счет ограничения физического доступа к устройствам.
Отсутствует необходимость перемещать оборудование, а безопасность сети повышается за счет возможности использования алгоритмов шифрования и настройки прав доступа. Доступна планировка сценариев для каждого отдельно взятого устройства.
Снижение рисков и затрат на обслуживание, удобство совместного использования ресурсов между рабочими станциями — все это делает технологию usbip конкурентоспособной в отношении безопасной авторизации и передачи данных (с TOTP/HOTP, OCRA) и применимой для решения широкого спектра задач IT.
Автор: Максим
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/usb/369465
Ссылки в тексте:
[1] Источник изображения: https://unsplash.com/photos/FO3v8dTMXK4
[2] Источник: https://habr.com/ru/post/587522/?utm_source=habrahabr&utm_medium=rss&utm_campaign=587522
Нажмите здесь для печати.