Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Компьютерный сетевой протокол
Computer network protocol
RFB (Remote Framebuffer – «удаленный фреймбуфер») — это открытый и простой протокол для удаленного доступа к графическим пользовательским интерфейсам. Поскольку он работает на уровне фреймбуфера, он применим ко всем оконным системам и приложениям, включая Microsoft Windows, macOS, X Window System и Wayland. RFB является протоколом, используемым в Virtual Network Computing (VNC) и его производных.
RFB ("remote framebuffer") is an open simple protocol for remote access to graphical user interfaces. Because it works at the framebuffer level it is applicable to all windowing systems and applications, including Microsoft Windows, macOS, the X Window System and Wayland. RFB is the protocol used in Virtual Network Computing (VNC) and its derivatives.
Описание
По умолчанию, просмотрщик/клиент использует TCP-порт 5900 для подключения к серверу (или 5800 для доступа через браузер), но может быть настроен на использование любого другого порта. В качестве альтернативы, сервер может подключаться к просмотрщику, работающему в "режиме прослушивания" (по умолчанию на порту 5500). Одним из преимуществ режима прослушивания является то, что стороне сервера не требуется настраивать свой брандмауэр/NAT для разрешения доступа к указанным портам; эта задача ложится на просмотрщик, что удобно, если на стороне сервера нет специалистов по компьютерам, в то время как от пользователя просмотрщика ожидаются более глубокие знания. Хотя RFB изначально был относительно простым протоколом, он был дополнен новыми функциями (например, передачей файлов), а также более сложными методами сжатия и обеспечения безопасности по мере его развития. Для обеспечения бесперебойной кросс-совместимости между множеством различных реализаций VNC-клиентов и серверов, клиенты и серверы согласовывают соединение, используя наилучшую поддерживаемую версию RFB и наиболее подходящие параметры сжатия и безопасности.
By default, a viewer/client uses TCP port 5900 to connect to a server (or 5800 for browser access), but can also be set to use any other port. Alternatively, a server can connect to a viewer in "listening mode" (by default on port 5500). One advantage of listening mode is that the server site does not have to configure its firewall/NAT to allow access on the specified ports; the burden is on the viewer, which is useful if the server site has no computer expertise, while the viewer user would be expected to be more knowledgeable. Although RFB started as a relatively simple protocol, it has been enhanced with additional features (such as file transfers) and more sophisticated compression and security techniques as it has developed. To maintain seamless cross compatibility between the many different VNC client and server implementations, the clients and servers negotiate a connection using the best RFB version, and the most appropriate compression and security options that they can both support.
История
RFB был первоначально разработан в исследовательской лаборатории Olivetti (ORL) как технология удаленного отображения для использования простым тонким клиентом с подключением по асинхронному режиму передачи, известным как Videotile. Чтобы максимально упростить устройство, RFB был разработан и использовался вместо любой из существующих технологий удаленного отображения. RFB получил второе, более устойчивое применение с разработкой VNC. VNC был выпущен как программное обеспечение с открытым исходным кодом, а спецификация RFB была опубликована в сети Интернет. С тех пор RFB является бесплатным протоколом, который может использовать любой желающий. После закрытия ORL в 2002 году некоторые ключевые разработчики VNC и RFB основали RealVNC, Ltd., чтобы продолжить разработку VNC и поддерживать протокол RFB. Текущая спецификация протокола RFB опубликована на веб-сайте RealVNC.
RFB was originally developed at Olivetti Research Laboratory (ORL) as a remote display technology to be used by a simple thin client with Asynchronous Transfer Mode connectivity called a Videotile. In order to keep the device as simple as possible, RFB was developed and used in preference to any of the existing remote display technologies. RFB found a second and more enduring use when VNC was developed. VNC was released as open source software and the RFB specification published on the web. Since then RFB has been a free protocol which anybody can use. When ORL was closed in 2002 some of the key people behind VNC and RFB formed RealVNC, Ltd., in order to continue development of VNC and to maintain the RFB protocol. The current RFB protocol is published on the RealVNC website.
Ограничения
Что касается передачи данных из буфера обмена, "в настоящее время нет способа передачи текста вне набора символов Latin 1". Распространенное псевдокодировочное расширение решает эту проблему, используя UTF-8 в расширенном формате. Протокол VNC основан на пикселях. Хотя это обеспечивает большую гибкость (то есть любой тип рабочего стола может быть отображен), он часто менее эффективен, чем решения, которые лучше понимают базовую графическую структуру, такие как X11 или настольные среды, такие как RDP. Эти протоколы отправляют графические примитивы или команды высокого уровня в более простом виде (например, "открыть окно"), в то время как RFB просто отправляет необработанные пиксельные данные, хотя и сжатые. Протокол VNC выражает состояние кнопок мыши в одном байте, в двоичном формате "нажата/отпущена". Это ограничивает количество кнопок мыши до восьми (фактически 7, учитывая, что кнопка 0 означает "отключена"). Многие современные мыши имеют 9 и более кнопок, из-за чего кнопки "вперед/назад" не оказывают никакого эффекта при использовании RFB. Расширение "GII" решает эту проблему. Стандарта для передачи звуковых данных не существует вообще, за исключением того, что сервер может подать сигнал о необходимости воспроизвести звуковой сигнал (звуковой сигнал, звук уведомления) на стороне клиента.
In terms of transferring clipboard data, "there is currently no way to transfer text outside the Latin 1 character set". A common pseudo encoding extension solves the problem by using UTF 8 in an extended format. The VNC protocol is pixel based. Although this leads to great flexibility (i. e. any type of desktop can be displayed), it is often less efficient than solutions that have a better understanding of the underlying graphic layout like X11 or desktop such as RDP. Those protocols send graphic primitives or high level commands in a simpler form (e. g. open window), whereas RFB just sends the raw pixel data, albeit compressed. The VNC protocol expresses mouse button state in a single byte, as binary up/down. This limits the number of mouse buttons to eight (effectively 7 given convention of button 0 meaning "disabled"). Many modern mice enumerate 9 or more buttons, leading to forward/back buttons having no effect over RFB. A "GII" extension solves this problem. There is no standard to transfer sound data at all, with the sole exception that the server may signal a bell (audible beep, notification sound) should be played by the client.