Articulo de referencia

RFB (protocolo)

RFB ( Remote Framebuffer ) es un protocolo abierto y sencillo para el acceso remoto a interfaces gráficas de usuario . Es aplicable a todos los sistemas y aplicaciones de ventan...

RFB ( Remote Framebuffer ) es un protocolo abierto y sencillo para el acceso remoto a interfaces gráficas de usuario . Es aplicable a todos los sistemas y aplicaciones de ventanas , incluidos Microsoft Windows , macOS , el sistema X Window y Wayland .

RFB es el protocolo utilizado en VNC y sus derivados.

Descripción

Por defecto, un visor/cliente utiliza el puerto TCP 5900 para conectarse a un servidor (o el 5800 para el acceso desde el navegador), pero también puede configurarse para usar cualquier otro puerto. Alternativamente, un servidor puede conectarse a un visor en "modo de escucha" (por defecto en el puerto 5500). Una ventaja del modo de escucha es que el servidor no tiene que configurar su firewall/NAT para permitir el acceso a través de los puertos especificados; la responsabilidad recae en el visor, lo cual resulta útil si el servidor carece de conocimientos informáticos, mientras que se espera que el usuario del visor tenga mayores conocimientos.

Aunque RFB comenzó como un protocolo relativamente simple, se ha ido mejorando con funciones adicionales (como la transferencia de archivos) y técnicas de compresión y seguridad más sofisticadas a medida que ha evolucionado. Para mantener una compatibilidad perfecta entre las diversas implementaciones de cliente y servidor VNC, los clientes y servidores negocian una conexión utilizando la mejor versión de RFB y las opciones de compresión y seguridad más adecuadas que ambos puedan admitir.

Historia

RFB se desarrolló originalmente en el Laboratorio de Investigación de Olivetti (ORL) como una tecnología de visualización remota para ser utilizada por un cliente ligero sencillo con conectividad de modo de transferencia asíncrona (ATM ), denominado Videotile. Con el fin de mantener el dispositivo lo más simple posible, se desarrolló y utilizó RFB en lugar de cualquier otra tecnología de visualización remota existente.

RFB encontró una segunda y más duradera utilidad con el desarrollo de VNC. VNC se lanzó como software de código abierto y la especificación de RFB se publicó en la web. Desde entonces, RFB es un protocolo gratuito que cualquiera puede usar.

Cuando ORL cerró sus puertas en 2002, algunas de las personas clave detrás de VNC y RFB formaron RealVNC , Ltd., con el fin de continuar el desarrollo de VNC y mantener el protocolo RFB. El protocolo RFB actual está publicado en el sitio web de RealVNC .

Versiones

Las versiones publicadas del protocolo RFB son las siguientes:

Los desarrolladores pueden añadir tipos de codificación y seguridad adicionales, pero deben registrar números de identificación únicos para estos con los responsables del protocolo para evitar conflictos. Los números de tipo conflictivos causarían confusión al establecer una conexión y romperían la compatibilidad entre implementaciones. La lista de tipos de codificación y seguridad era mantenida por RealVNC Ltd. y es independiente de la especificación del protocolo, de modo que se pueden añadir nuevos tipos sin necesidad de volver a publicar la especificación. Desde diciembre de 2012, la lista se envió a IANA . [ 1 ]

Una versión comunitaria de la especificación del protocolo RFB, cuyo objetivo es documentar todas las extensiones existentes, está alojada en el proyecto TigerVNC . [ 2 ]

Tipos de codificación

En la negociación se utilizan múltiples codificaciones. Algunas de ellas son pseudocodificaciones que se emplean para indicar la capacidad de manejar una determinada extensión.

Las codificaciones incluyen: [ 2 ]

  • Crudo
  • Derechos de autor
  • CoRRE
  • H.264
  • Hextile
  • JPEG
  • RRE
  • Ajustado
  • PNG ajustado
  • TRLE
  • Ultra
  • Zlib
  • ZlibHex
  • ZRLE
  • XZ
  • XZYW

De las codificaciones basadas en imágenes definidas públicamente, las más eficientes son los tipos de codificación Tight. TightVNC define dos tipos de codificaciones: Codificación Tight (una mezcla de relleno de rectángulo, paleta y degradado con zlib y JPEG, más una "compresión básica" de Zlib más filtro) [ 3 ] y Codificación PNG Tight (codificación Tight con compresión básica reemplazada con datos PNG ).

Se ha investigado el formato H.264 para la codificación de datos RFB, pero los resultados preliminares (utilizando el formato Open H.264) fueron calificados de mediocres por un desarrollador de TurboVNC . Si bien se vuelve más eficiente con menos fotogramas clave (I-frames), el uso de la CPU sigue siendo un problema. [ 4 ]

Limitaciones

En cuanto a la transferencia de datos del portapapeles, "actualmente no existe forma de transferir texto fuera del conjunto de caracteres Latin-1". [ 5 ] Una extensión de pseudocodificación común resuelve el problema mediante el uso de UTF-8 en un formato extendido. [ 2 ] : § 7.7.27

El protocolo VNC se basa en píxeles. Si bien esto ofrece una gran flexibilidad (es decir, se puede mostrar cualquier tipo de escritorio), suele ser menos eficiente que soluciones que comprenden mejor la estructura gráfica subyacente, como X11 , o entornos de escritorio como RDP . Estos protocolos envían primitivas gráficas o comandos de alto nivel de forma más sencilla (por ejemplo, abrir una ventana), mientras que RFB simplemente envía los datos de píxeles sin procesar, aunque comprimidos.

El protocolo VNC expresa el estado de los botones del ratón en un solo byte, como arriba/abajo binario. Esto limita el número de botones del ratón a ocho (efectivamente 7, dada la convención de que el botón 0 significa "deshabilitado"). Muchos ratones modernos enumeran 9 o más botones, lo que provoca que los botones de avance/retroceso no tengan efecto sobre RFB. Una extensión "GII" resuelve este problema. [ 2 ] : § 7.7.11

La especificación del protocolo original no define ninguna forma de transferir datos de sonido, con la única excepción de que el servidor puede indicar al cliente que reproduzca una campana (pitido audible, sonido de notificación). [ 2 ] : § 7.6.3 Sin embargo, existe una extensión "QEMU Audio" definida en la versión comunitaria del protocolo RFB. [ 2 ]

Véase también

Referencias

  1. "Búfer de fotogramas remoto (RFB)" . www.iana.org .
  2. 1 2 3 4 5 6 "El protocolo RFB, edición comunitaria" . GitHub . 12 de mayo de 2025.
  3. "VNC Tight Encoder - Resultados de la comparación" . www.tightvnc.com .
  4. Comandante, DR. "Un estudio sobre la utilidad de la codificación H.264 en un entorno VNC" . turbovnc.org .
  5. Richardson, Tristan (2010). "Secciones 6.4.6, 6.5.4". El protocolo RFB - Versión 3.8 .
  • El protocolo RFB - Versión comunitaria
  • RFC 6143: Protocolo de búfer de trama remoto (describe la versión 3.8, 2011)
  • Protocolo RFB - Versión 3.8 (26/11/2010)
  • El protocolo RFB - Versión 3.7 (12/08/2003)
  • El protocolo RFB - Versión 3.3 (1998-01) Archivado el 15/12/2006 en la Wayback Machine
  • El protocolo RFB - Versión 3.3 (1998-01)
  • Laboratorios AT&T Cambridge - El protocolo RFB