Из Википедии, свободной энциклопедии
Перейти к навигацииПерейти к поиску

RFBудаленный буфер кадра ») - это простой открытый протокол для удаленного доступа к графическим пользовательским интерфейсам . Поскольку он работает на уровне фреймбуфера, он применим ко всем оконным системам и приложениям, включая Microsoft Windows , macOS и X Window System . RFB - это протокол, используемый в виртуальных сетевых вычислениях (VNC) и его производных.

Описание

По умолчанию программа просмотра / клиент использует TCP-порт 5900 для подключения к серверу (или 5800 для доступа через браузер), но также может быть настроен на использование любого другого порта. В качестве альтернативы сервер может подключиться к программе просмотра в «режиме прослушивания» (по умолчанию на порту 5500). Одним из преимуществ режима прослушивания является то, что сайту сервера не нужно настраивать свой брандмауэр / NAT для разрешения доступа на указанных портах; нагрузка ложится на зрителя, что полезно, если серверный сайт не имеет компьютерных знаний, в то время как пользователь-просмотрщик должен быть более осведомленным.

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

История

RFB был первоначально разработан в Olivetti Research Laboratory (ORL) как технология удаленного отображения для использования в простом тонком клиенте с возможностью подключения к банкоматам, который называется Videotile. Чтобы сделать устройство максимально простым, RFB был разработан и использовался вместо любой из существующих технологий удаленного отображения.

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

Когда ORL был закрыт в 2002 году, некоторые из ключевых людей, стоящих за VNC и RFB, сформировали RealVNC , Ltd., чтобы продолжить разработку VNC и поддерживать протокол RFB. Текущий протокол RFB опубликован на сайте RealVNC .

Версии протокола

Опубликованные версии протокола RFB следующие:

Разработчики могут добавлять дополнительные типы кодирования и безопасности, но они должны зарегистрировать для них уникальные идентификационные номера у сопровождающих протокол, чтобы номера не противоречили друг другу. Конфликт номеров типов может вызвать путаницу при установлении связи и нарушить перекрестную совместимость между реализациями. Список типов кодирования и безопасности поддерживается RealVNC Ltd и является отдельным от спецификации протокола, поэтому новые типы могут быть добавлены без необходимости переиздания спецификации. С декабря 2012 года список перешел в IANA . [1]

Версия спецификации протокола RFB, предназначенная для документирования всех существующих расширений, размещена в проекте TigerVNC . [2]

Типы кодирования

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

Из публично определенных кодировок на основе изображений наиболее эффективными являются типы кодирования Tight. TightVNC определяет два типа кодировок:

  • Жесткое кодирование, смесь прямоугольников, палитры и градиентной заливки с помощью zlib и JPEG, плюс «базовое сжатие» Zlib-plus-filter. [3]
  • Жесткое кодирование PNG, жесткое кодирование с базовым сжатием, замененное данными PNG .

H.264 был исследован для кодирования данных RFB, но предварительные результаты (с использованием формата Open H.264) были описаны разработчиком TurboVNC как нечеткие . Он действительно становится более эффективным с меньшим количеством I-кадров (ключевых кадров), но загрузка ЦП остается проблемой. [4]

Ограничения

Что касается передачи данных из буфера обмена, «в настоящее время нет возможности передать текст за пределами набора символов Latin-1». [5] Обычное расширение псевдокодирования решает проблему за счет использования UTF-8 в расширенном формате. [2] ( § 7.7.27 )

Протокол VNC основан на пикселях. Хотя это приводит к большой гибкости (т.е. может отображаться любой тип рабочего стола), он часто менее эффективен, чем решения, которые лучше понимают базовый графический макет, например X11 или рабочий стол, например RDP . Эти протоколы отправляют графические примитивы или команды высокого уровня в более простой форме (например, открытое окно), тогда как RFB просто отправляет необработанные данные пикселей, хотя и в сжатом виде.

Протокол VNC выражает состояние кнопки мыши в одном байте в двоичном виде вверх / вниз. Это ограничивает количество кнопок мыши до восьми (фактически 7 с учетом соглашения о том, что кнопка 0 означает «отключена»). Многие современные мыши имеют 9 или более кнопок, что приводит к тому, что кнопки вперед / назад не имеют никакого эффекта по RFB. Расширение «GII» решает эту проблему. [2] ( § 7.7.11 )

См. Также

Ссылки

  1. ^ "Удаленный буфер кадра (RFB)" . www.iana.org .
  2. ^ a b c d "Протокол RFB, Community Edition" . GitHub .
  3. ^ "VNC Tight Encoder - Результаты сравнения" . www.tightvnc.com .
  4. ^ Командующий, DR. «Исследование полезности кодирования H.264 в среде VNC» . turbovnc.org .
  5. ^ Ричардсон, Тристан (2010). «Разделы 6.4.6, 6.5.4». Протокол RFB - версия 3.8 .

Внешние ссылки

  • RFC 6143: протокол удаленного буфера кадра (описывает версию 3.8)
  • Протокол RFB - версия 3.8 (26 ноября 2010 г.)
  • Протокол RFB - версия 3.7 (12 августа 2003 г.)
  • Протокол RFB - версия 3.3 (1998-01)
  • Протокол RFB - версия сообщества
  • RFC 6143 - протокол удаленного буфера кадра (2011 г.) в IETF