Меню
Главная
Случайная статья
Настройки
|
RFB (аббр. от англ. remote framebuffer) — клиент-серверный сетевой протокол для удалённого доступа к графическому рабочему столу компьютера. Используется в системах удаленного доступа VNC[1]. Так как он работает на уровне кадрового буфера, то его можно применять для графических оконных систем, например X Window System, Windows, Quartz Compositor.
Содержание
Описание
По умолчанию RFB использует диапазон TCP-портов с 5900 до 5906. Каждый порт представляет собой соответствующий экран X-сервера (порты с 5900 по 5906 ассоциированы с экранами с :0 по :6). Java-клиенты, доступные во многих реализациях, использующих встроенный веб-сервер для этой цели, например, в RealVNC, связаны с экранами таким же образом, но на диапазоне портов с 5800 до 5806. Многие компьютеры под управлением ОС Windows могут использовать лишь один порт из-за отсутствия многопользовательских свойств, присущих UNIX-системам. Для Windows-систем экран по умолчанию — :0, что соответствует порту 5900.
Существует возможность обратного подключения от сервера к клиенту. В этом случае клиент переводится в слушающий (listening) режим и соединение инициируется сервером на 5500 TCP-порт клиента. Одно из преимуществ данного режима в том, что пользователю не обязательно настраивать Брандмауэр/NAT, чтобы разрешить доступ к указанным портам.
Несмотря на то, что RFB создавался как относительно простой протокол, со временем он стал дополняться новыми функциями, такими как передача файлов, более сложные методы безопасности и сжатие. Клиент и сервер в момент подключения производят сравнение реализованных в них версий протокола и согласовывают совместимый набор опций сжатия и безопасности.
История
RFB был разработан в Olivetti Research Laboratory (ORL), как технология удаленного отображения для использования с тонким клиентом Videotile, с подключением по ATM соединению. Разработка своего протокола позволила упростить клиент.
Реализация VNC была выпущена как программное обеспечение с открытым исходным кодом, а спецификацию RFB опубликовали в сети. С тех пор RFB стал более популярным протоколом.
После закрытия ORL в 2002 некоторые ключевые разработчики из VNC и RFB сформировали RealVNC Ltd., чтобы продолжать разработку VNC и поддерживать протокол RFB. Текущая спецификация протокола RFB опубликована на веб-сайте RealVNC.
Версии протокола
Опубликованные версии протокола RFB:
Версия
|
Издатель
|
Дата
|
Спецификация
|
RFB 3.3
|
ORL
|
Январь 1998
|
The Remote Framebuffer Protocol 3.3
|
RFB 3.7
|
RealVNC Ltd
|
Август 2003
|
The Remote Framebuffer Protocol 3.7
|
RFB 3.8 (текущая)
|
RealVNC Ltd
|
Июнь 2007
|
The Remote Framebuffer Protocol 3.8
|
Разработчики могут добавлять дополнительное кодирование и типы безопасности, но они должны согласовать уникальные идентификационные номера для своих добавлений с сопровождающими протоколами, так, чтобы номера не повторялись. Одинаковые номера могут вызвать путаницу, когда происходит соединение и сломать кросс-совместимость между реализациями. Список кодирования и типов безопасности ведется RealVNC Ltd отдельно от спецификации протокола, чтобы новые типы могли быть добавлены, не требуя переиздания спецификации.
Типы кодирования
0x00000000 |
Сырой (Raw)
|
0x00000001 |
Копирование прямоугольников (CopyRect)
|
0x00000002 |
Увеличение прямоугольника (Rising Rectangle)
|
0x00000004 |
CoRRE (Compact Rising Rectangle)
|
0x00000005 |
Hextile
|
0x00000006 |
Сжатие Zlib
|
0x00000007 |
Версия клиента Tight
|
0x00000008 |
ZlibHex
|
0x00000009 |
Версия клиента Ultra
|
0x00000010 |
Сжатие ZRLE
|
0x00000011 |
Сжатие ZYWRLE (ZLib YUV Wavelet Run Length Encoding)
|
0xFFFF0001 |
Флаг кэширования (CacheEnable)
|
0xFFFF0006 |
Флаг побитового XOR (XOREnable)
|
0xFFFF8000 |
ServerState (UltraVNC)
|
0xFFFF8001 |
EnableKeepAlive (UltraVNC)
|
0xFFFF8002 |
Передача файлов (FTProtocolVersion — UltraVNC)
|
0xFFFFFF00 |
CompressLevel (Tight)
|
0xFFFFFF09 |
CompressLevel (Tight)
|
0xFFFFFF10 |
XCursor
|
0xFFFFFF11 |
RichCursor
|
0xFFFFFF18 |
PointerPos
|
0xFFFFFF20 |
LastRect
|
0xFFFFFF21 |
NewFBSize
|
0xFFFFFFE0 |
Сжатие ZRLE
|
0xFFFFFFE0 — 0xFFFFFFE9 |
QualityLevel (Tight)
|
Ограничения
С точки зрения передачи данных буфера обмена, RFB способен передавать текст только в рамках кодировки Latin-1.[2]
Протокол VNC основан на передаче растров (массивов пикселей). Несмотря на то, что это приводит к большой гибкости (то есть возможно отображение любого типа рабочего стола), такой метод часто менее эффективен, чем решения, более близкие к графическим системам типа X11 или RDP. В таких протоколах возможна отправка более сложных графических примитивов и команд высокого уровня в более простой форме (например, создать окно), тогда как RFB просто отправляет необработанные пиксельные данные, хоть и сжатые.
Примечания
- Камерон Лейрд. Искусство VNC. Как научиться работе с великолепным инструментом виртуализации (неопр.). IBM DW (12 декабря 2007). Дата обращения: 25 октября 2018. Архивировано 26 октября 2018 года.
- Richardson, Tristan. Sections 6.4.6, 6.5.4 // The RFB Protocol - Version 3.8 (неопр.). — 2010.
Ссылки
|
|