Регулироание полосы пропускания пробрасываемых USB-устройств в AccentOS VDI

При реализации удаленного доступа к гостевому рабочему столу возникают следующие задачи:

  • проброс классического терминального трафика (экран, клавиатура, мышь)
  • проброс USB-устройств (все устройства, подключенные через USB порт)
  • проброс сервисов

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

Проброс классического терминального трафика может быть реализован разными терминальными протоколами для различных операционных систем, в частности, RDP, VNC, NX, SSH, Blast, NoMachine. При передаче данного вида трафика терминальный протокол умеет обрабатывать графическое изображение текстового, графического типа с высокой эффективностью и минимальной задержкой с учетом специфики среды передачи данных.

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

USB-устройства в зависимости от ограничений времени задержки делятся на обычные и изохронные USB-устройства (например, веб-камеры, звуковые карты, устройства реального времени), для которых задержка критична.

USB-устройства в зависимости от скорости и объема делятся на низкоскоростные (клавиатуры, смарт-карты, банковские терминалы) и высокоскоростные (например, веб-камеры, SSD накопители, сканеры, принтеры). Некоторые высокоскоростные USB устройства поддерживают компрессию данных.

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

  1. Трафик низкоскоростных USB-устройств ввиду его незначительного объема, передается непосредственно между «тонким клиентом» и гостевым рабочим столом без преобразования.
  2. Для ряда высокоскоростных USB-устройств уже реализованы сервисы преобразования и компрессии на «тонком клиенте», например, сервис печати (CUPS), передачи звука (ALSA)
  3. Для сканеров, принтеров существует сервис преобразования USB-IPP, который не выполняет компрессию, это делает сетевой протокол SSH.
  4. Для USB-накопителей используется сервис преобразования в сетевую файловую систему SSH-FS, который решает проблему высокой нагрузки на сеть передачи данных и выполняют компрессию с помощью SSH.
  5. Для высокоскоростных USB Web-Cam комплексный трафик преобразовываться на «тонком клиенте» в сервис, который осуществляет компрессию трафика видео и аудио и далее передает его на гостевой рабочий стол.

SSH протокол вместе с функцией компрессии выполняет мультиплексирование трафика на разных портах, преобразование трафика TCP IP в Unix Socket. SSH протокол также выполняет шифрование трафика.