Protokol RFB - RFB protocol
Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
RFB ("vzdálený framebuffer") je otevřený jednoduchý protokol pro vzdálený přístup na grafická uživatelská rozhraní. Protože to funguje na framebuffer úroveň je použitelná pro všechny okenní systémy a aplikace, včetně Microsoft Windows, Operační Systém Mac a Systém X Window. RFB je protokol používaný v Virtuální síťové výpočty (VNC) a jeho deriváty.
Popis
Ve výchozím nastavení používá prohlížeč / klient port TCP 5900 pro připojení k serveru (nebo 5800 pro přístup pomocí prohlížeče), ale lze jej také nastavit tak, aby používal jakýkoli jiný port. Alternativně se server může připojit k prohlížeči v „režimu poslechu“ (ve výchozím nastavení na portu 5500). Jednou z výhod režimu poslechu je, že serverový server nemusí konfigurovat svůj firewall / NAT, aby umožňoval přístup na zadané porty; břemeno nese prohlížeč, což je užitečné, pokud serverový server nemá žádné počítačové znalosti, zatímco od uživatele prohlížeče se očekává lepší znalost.
Přestože RFB začínal jako relativně jednoduchý protokol, byl vylepšen o další funkce (například přenosy souborů) a propracovanější komprese a bezpečnostní techniky, jak se vyvinula. Aby byla zachována bezproblémová křížová kompatibilita mezi mnoha různými implementacemi klientů a serverů VNC, vyjednají klienti a servery připojení pomocí nejlepší verze RFB a nejvhodnějších možností komprese a zabezpečení, které mohou oba podporovat.
Dějiny
RFB byl původně vyvinut na Výzkumná laboratoř Olivetti (ORL) jako technologie vzdáleného zobrazení, kterou používá jednoduchý tenký klient s bankomat konektivita zvaná Videotile. Aby bylo zařízení co nejjednodušší, byl RFB vyvinut a používán přednostně před jakoukoli ze stávajících technologií vzdáleného zobrazení.
Při vývoji VNC našel RFB druhé a trvalejší využití. VNC byl vydán jako otevřený zdroj software a specifikace RFB zveřejněné na webu. Od té doby je RFB bezplatný protokol, který může použít kdokoli.
Když byl ORL uzavřen v roce 2002, vytvořili se někteří klíčoví lidé za VNC a RFB RealVNC, Ltd., s cílem pokračovat ve vývoji VNC a udržovat protokol RFB. Aktuální protokol RFB je zveřejněn na internetu Web RealVNC.
Verze protokolu
Publikované verze protokolu RFB jsou následující:
Verze | Publikováno | datum | Specifikace |
---|---|---|---|
RFB 3.3 | ORL | Leden 1998 | Vzdálený protokol Framebuffer 3.3 |
RFB 3.7 | RealVNC Ltd. | Srpna 2003 | Vzdálený protokol Framebuffer 3.7 |
RFB 3,8 (aktuální) | RealVNC Ltd. | Červen 2007 | Vzdálený protokol Framebuffer 3.8 |
IETF RFC (3,8) | RealVNC Ltd. | Březen 2011 | RFC 6143 |
Vývojáři mohou přidávat další typy kódování a zabezpečení, ale musí pro ně u správců protokolu rezervovat jedinečná identifikační čísla, aby se čísla nestřetávala. Střety čísel typu by způsobily zmatek při handshaking připojení a narušily křížovou kompatibilitu mezi implementacemi. Seznam typů kódování a zabezpečení byl udržován společností RealVNC Ltd a je oddělen od specifikace protokolu, takže je možné přidávat nové typy bez nutnosti opětovného vydání specifikace. Od prosince 2012 se seznam dostal IANA.[1]
Komunitní verze specifikace protokolu RFB, jejímž cílem je dokumentovat všechny existující přípony, je hostitelem TigerVNC projekt.[2]
Typy kódování
Vzhledem k tomu, že kódování je součástí vyjednávání, jsou některá z níže uvedených kódování pseudokódováním používaným k inzerci schopnosti zpracovat určitou příponu.
Číslo | Kódování |
---|---|
0x00000000 | Drsný |
0x00000001 | CopyRect |
0x00000002 | RRE (Rising Rectangle Run-length) |
0x00000004 | CoRRE (kompaktní RRE) |
0x00000005 | Hextile (varianta RRE) |
0x00000006 | Zlib |
0x00000007 | Těsný |
0x00000008 | ZlibHex (Zlib + Hextile) |
0x00000009 | Ultra |
0x00000010 | ZRLE (délka běhu Zlib) |
0x00000011 | ZYWRLE |
0x00000014 | H.264 |
0xFFFF0001 | CacheEnable |
0xFFFF0006 | XOREnable |
0xFFFF8000 | ServerState (UltraVNC) |
0xFFFF8001 | EnableKeepAlive (UltraVNC) |
0xFFFF8002 | FTProtocolVersion (verze protokolu pro přenos souborů - UltraVNC) |
0xFFFFFF00–0xFFFFFF09 | CompressLevel (těsné kódování) |
10xFFFFFF10 | X Kurátor |
11xFFFFFF11 | RichCursor |
0xFFFFFF18 | PointerPos |
0xFFFFFF20 | LastRect |
0xFFFFFF21 | NewFBSize |
0xFFFFFFE0–0xFFFFFFE9 | QualityLevel (těsné kódování) |
Z obrazových kódování jsou nejúčinnější kódování Tight. TightVNC definuje dva typy kódování:
- Tight Encoding, směs obdélníku, palety a gradientní výplně zlib a JPEG, plus základní komprese.
- Těsné kódování PNG, Těsné kódování se základní kompresí nahrazeno PNG data.
H.264 byl zkoumán pro kódování RFB dat, ale předběžné výsledky byly popsány jako nevýrazné a TurboVNC vývojář. Stává se efektivnější s menším počtem I-snímků (klíčových snímků), ale využití CPU zůstává problémem.[3]
Omezení
Pokud jde o přenos dat ze schránky, „v současné době neexistuje způsob, jak přenést text mimo znakovou sadu Latin-1“.[4] Běžné rozšíření pro pseudokódování řeší problém pomocí UTF-8 v rozšířeném formátu.[2](§ 7.7.27)
Protokol VNC je založen na pixelech. I když to vede k velké flexibilitě (tj. Lze zobrazit jakýkoli typ plochy), je to často méně efektivní než řešení, která mají lepší pochopení podkladového grafického rozvržení, jako je X11 nebo desktop jako např RDP. Tyto protokoly odesílají grafické primitivy nebo příkazy na vysoké úrovni v jednodušší podobě (např. Otevřené okno), zatímco RFB pouze odesílá nezpracovaná pixelová data, i když komprimovaná.
Protokol VNC vyjadřuje stav tlačítka myši v jednom bajtu jako binární nahoru / dolů. To omezuje počet tlačítek myši na osm (efektivně 7 vzhledem ke konvenci tlačítka 0, což znamená „deaktivováno“). Mnoho moderních myší vyjmenovává 9 nebo více tlačítek, což vede k tomu, že tlačítka vpřed / zpět nemají žádný účinek na RFB. Tento problém řeší přípona „GII“.[2](§ 7.7.11)
Viz také
- Porovnání softwaru pro vzdálenou plochu
- Technologie NX a Xpra pro efektivní vzdálené připojení systému X Window System
- KOŘENÍ
Reference
- ^ „Remote Framebuffer (RFB)“. www.iana.org.
- ^ A b C d „Protokol RFB, komunitní vydání“. GitHub.
- ^ Velitel, DR. „Studie o užitečnosti kódování H.264 v prostředí VNC“. turbovnc.org.
- ^ Richardson, Tristan (2010). „Sekce 6.4.6, 6.5.4“. Protokol RFB - verze 3.8.