RFB protokol

RFB (zkr. z anglického  remote framebuffer ) je síťový protokol klient-server pro vzdálený přístup ke grafické ploše počítače. Používá se v systémech vzdáleného přístupu VNC [1] . Protože funguje na úrovni framebufferu , lze jej použít pro grafické okenní systémy, jako je X Window System , Windows , Quartz Compositor .

Popis

Ve výchozím nastavení používá RFB rozsah portů TCP 5900 až 5906. Každý port představuje odpovídající obrazovku X serveru (porty 5900 až 5906 jsou spojeny s obrazovkami :0 až :6). Klienti Java, kteří jsou k dispozici v mnoha implementacích, které pro tento účel používají vestavěný webový server, jako je RealVNC , komunikují s obrazovkami stejným způsobem, ale na portech v rozsahu od 5800 do 5806. Mnoho počítačů se systémem Windows může používat pouze jeden port kvůli nedostatek funkcí pro více uživatelů, které jsou součástí systémů UNIX. Pro systémy Windows je výchozí obrazovka :0, což odpovídá portu 5900.

Existuje možnost zpětného připojení ze serveru ke klientovi. V tomto případě je klient uveden do režimu naslouchání a připojení je iniciováno serverem na klientově TCP portu 5500. Jednou z výhod tohoto režimu je, že uživatel nemusí konfigurovat Firewall / NAT , aby umožnil přístup k určeným portům.

Ačkoli RFB začínal jako relativně jednoduchý protokol, postupem času byl rozšířen o nové funkce, jako je přenos souborů, sofistikovanější metody zabezpečení a komprese. Klient a server v okamžiku připojení porovnají verze protokolů v nich implementované a dohodnou se na kompatibilní sadě možností komprese a zabezpečení.

Historie

RFB byl vyvinut v Olivetti Research Laboratory (ORL) jako technologie vzdáleného zobrazení pro použití s ​​tenkým klientem Videotile připojeným přes připojení ATM. Vývoj našeho protokolu nám umožnil zjednodušit klienta.

Implementace VNC byla vydána jako software s otevřeným zdrojovým kódem a specifikace RFB byla zveřejněna online. Od té doby se RFB stal populárnějším protokolem.

Po uzavření ORL v roce 2002 někteří klíčoví vývojáři VNC a RFB vytvořili RealVNC Ltd., aby pokračovali ve vývoji VNC a podpoře protokolu RFB. Aktuální specifikace protokolu RFB je zveřejněna na webu RealVNC.

Verze protokolu

Publikované verze protokolu RFB:

Verze

Vydavatel

datum

Specifikace

RFB 3.3

ORL

ledna 1998

Protokol Remote Framebuffer 3.3

RFB 3.7

Společnost RealVNC Ltd

srpna 2003

Protokol Remote Framebuffer 3.7

RFB 3.8 (aktuální)

Společnost RealVNC Ltd

června 2007

Protokol Remote Framebuffer 3.8

Vývojáři mohou přidat další typy kódování a zabezpečení, ale musí se dohodnout na jedinečných identifikačních číslech pro jejich přidání se správci protokolu, aby se čísla neopakovala. Stejná čísla mohou způsobit zmatek, když dojde k připojení, a narušit vzájemnou kompatibilitu mezi implementacemi. Seznam bezpečnostních kódování a typů spravuje společnost RealVNC Ltd odděleně od specifikace protokolu, takže lze přidávat nové typy bez nutnosti opětovného vydání specifikace.

Typy kódování

0x00000000 – surový

0x00000001 – Kopírovat obdélníky (CopyRect)

0x00000002 – rostoucí obdélník

0x00000004 - CoRRE (kompaktní rostoucí obdélník)

0x00000005 - Hextile

0x00000006 - komprese Zlib

0x00000007 – Pevná verze klienta

0x00000008 - ZlibHex

0x00000009 – verze klienta Ultra

0x00000010 - Komprese ZRLE

0x00000011 - ZYWRLE komprese (ZLib YUV Wavelet Run Length Encoding)

0xFFFF0001 - Příznak ukládání do mezipaměti (CacheEnable)

0xFFFF0006 - Bitový příznak XOR (XOREnable)

0xFFFF8000 - ServerState (UltraVNC)

0xFFFF8001 - EnableKeepAlive (UltraVNC)

0xFFFF8002 - Přenos souborů (FTProtocolVersion - UltraVNC)

0xFFFFFF00 - 0xFFFFFF09 - CompressLevel (Tight)

0xFFFFFF10 - XCursor

0xFFFFFF11 - RichCursor

0xFFFFFF18 - PointerPos

0xFFFFFF20 - LastRect

0xFFFFFF21 - Nová velikost FBS

0xFFFFFFE0 - 0xFFFFFFFE9 - Úroveň kvality (Tight)

Omezení

Pokud jde o přenos dat ze schránky , RFB je schopen přenášet text pouze v kódování Latin-1. [2]

Protokol VNC je založen na přenosu rastrů (pole pixelů). I když to vede k velké flexibilitě (tj. lze zobrazit jakýkoli typ pracovní plochy), tato metoda je často méně účinná než řešení blíže grafickým systémům typu X11 nebo RDP . V takových protokolech je možné posílat složitější grafická primitiva a příkazy vyšší úrovně v jednodušší podobě (např. vytvoření okna), zatímco RFB jednoduše posílá nezpracovaná pixelová data, i když komprimovaná.

Poznámky

  1. Cameron Laird. Umění VNC. Jak se naučit pracovat se skvělým virtualizačním nástrojem . IBM DW (12. prosince 2007). Získáno 25. října 2018. Archivováno z originálu dne 26. října 2018.
  2. Richardson, Tristan. Sekce 6.4.6, 6.5.4 // Protokol RFB - verze 3.8  (neopr.) . — 2010.

Odkazy