www.wikidata.de-de.nina.az
RFB Remote Framebuffer Protocol Familie InternetprotokollfamilieEinsatzgebiet Datenubertragung Bildschirminhalte BenutzereingabenPort 5900 TCP Siehe Text RFB im TCP IP Protokollstapel Anwendung RFBTransport TCPInternet IP IPv4 IPv6 Netzzugang Ethernet TokenBus TokenRing FDDI Das Remote Framebuffer Protocol RFB ist ein Netzwerkprotokoll fur den Zugriff auf die grafischen Benutzungsoberflachen GUI anderer Computer Es wird von VNC zur Ubertragung von Bildschirminhalten und Benutzereingaben verwendet Inhaltsverzeichnis 1 Grundprinzip 1 1 Port und Desktopnummern 2 Protokoll Details 2 1 Handshake amp Versionskennungen 2 2 Client Authentifizierung 2 3 Initialisierung 2 4 Datenubertragung 3 WeblinksGrundprinzip BearbeitenEin RFB Server bietet einen so genannten Screen an Ublicherweise ist auf diesem ein Desktop oder ein einzelnes Programm einer grafischen Arbeitsumgebung dargestellt der auf einem entfernten Computer lauft bzw die dazugehorigen Anwendungen Der RFB Client stellt in der Regel diesen Desktop auf dem Arbeitsplatzrechner des Benutzers dar nimmt Benutzereingaben Tastatureingaben Mausbewegungen und klicks usw entgegen und leitet diese an den RFB Server weiter womit die dortige Arbeitsumgebung gesteuert wird Da es auf der Ebene des bitmaporientierten Grafikspeichers englisch Framebuffer arbeitet ist die Anwendung auf beliebigen Fenstersystemen wie Windows Mac OS oder X11 moglich Die Bildschirminhalte werden als Bitmaps ubertragen wobei in der Regel nur die jeweiligen Anderungen in geeigneter Kodierung siehe unten zum Client ubertragen werden Es werden Farbtiefen von 8 16 und 32 Bit pro Pixel unterstutzt wobei der RFB Client die gewunschte Farbtiefe und Kodierung vom Server anfordert und der Server sich nach den Wunschen des Clients zu richten hat sofern er die gewunschte Kodierung unterstutzt Dieses Design erlaubt es die Anforderungen an den Client einfach zu halten und so die Verwendung von Thin Clients zu unterstutzen RFB Verbindungen sind zustandslos sodass Verbindungsunterbrechungen bzw der Wechsel des RFB Clients problemlos moglich sind ohne dass die zugehorige Sitzung dabei verloren geht Ziel von RFB und VNC ist letztendlich die Unterstutzung des entfernten Arbeitens an Rechnern unter einer einheitlichen Arbeitsumgebung Port und Desktopnummern Bearbeiten In der Original Unix Version von VNC ist jeder VNC Server ein eigener X Server und stellt genau einen X Desktop dar Xvnc Es wird dabei standardmassig die erste freie X Servernummer von VNC belegt Falls bereits ein lokaler X Server auf der Maschine lauft der somit den X Desktop 0 belegt bekommt VNC den Desktop 1 Die von VNC belegte TCP Portnummer ist 5900 i desktopnummer i unter Unix somit meist 5901 Einige VNC Server stellen an Port 5800 bzw 5800 i desktopnummer i ein Java Applet zur Verfugung mit dem der Desktop mit einem Webbrowser betrachtet und gesteuert werden kann Unter Windows und Mac OS X lauft in der Regel kein lokaler X Server so dass VNC den Desktop 0 und somit die TCP Portnummer 5900 belegt Dieser Port wird ebenfalls vom Unix Programm x11vnc benutzt welches den bestehenden lokalen X Server 0 als VNC Desktop anbietet Protokoll Details BearbeitenHandshake amp Versionskennungen Bearbeiten Sobald die TCP Verbindung aufgebaut ist sendet der Server die von ihm unterstutzte RFB Versionsnummer zum Client worauf dieser mit seiner Protokollversionsnummer antwortet Die Protokollversion hat den Aufbau hauptversion nebenversion Es wird davon ausgegangen dass die Protokollversionen mit gleicher Hauptversion untereinander kompatibel sind Die grosste von beiden Partnern unterstutzte Versionsnummer gilt fur die nachfolgende Verbindung als vereinbart Es steht aber jedem Kommunikationspartner frei nach dem Austausch der Protokollversionen die Verbindung zu beenden wenn mit der ausgehandelten Protokollversion nicht kommuniziert werden kann oder soll Die Versionskennung ist stets ein 12 Byte langer ASCII String welcher mit einem LineFeed Zeichen abgeschlossen wird Die gebrauchlichsten Versionen sind 3 3 3 7 und 3 8 RFB Versionskennungen Version Kennung Kennung hex Veroffentlicht3 3 RFB 003 003 n 52 46 42 20 30 30 33 2E 30 30 33 0A Januar 1998 von Olivetti Research Laboratories ORL 3 7 RFB 003 007 n 52 46 42 20 30 30 33 2E 30 30 37 0A Juli 2003 von RealVNC Ltd 3 8 RFB 003 008 n 52 46 42 20 30 30 33 2E 30 30 38 0A Juli 2005 von RealVNC Ltd Einige Clients melden fehlerhafterweise eine Protokollversion 3 5 Diese sollte serverseitig wie Version 3 3 behandelt werden Client Authentifizierung Bearbeiten Sofern Client und Server eine kompatible RFB Version ausgehandelt haben sendet der Server welche Art von Authentifizierung er vom Client verlangt In der originalen RFB Spezifikation sind zwei Arten definiert VNC Authentifizierung oder keine Authentifizierung Es sind aber weitere Authentifizierungsarten von Drittherstellern definiert worden Der Client entscheidet uber welche der vom Server angebotenen Authentifizierungsarten er sich am Server authentifizieren will Initialisierung Bearbeiten Nach erfolgreicher Authentifizierung sendet der Client eine 1 Byte grosse ClientInit Nachricht Diese enthalt lediglich ein Flag ob der Client eine shared Verbindung akzeptiert d h dass eventuelle Verbindungen des Servers zu anderen Clients erlaubt sind oder falls das Flag auf 0 ist beendet werden sollen Anschliessend sendet der Server eine ServerInit Nachricht Diese enthalt den Namen des Desktops der oft aus dem Rechnernamen des Servers abgeleitet wird die Grosse des Desktops in Pixeln und die native Farbtiefe und Anordnung der Pixel auf Serverseite Die Bilddaten werden standardmassig in diesem Format zum Client ubertragen ausser der Client fordert uber eine SetPixelFormat Nachricht die Daten in einem anderen fur den Client einfacher zu verarbeitenden Format an Datenubertragung Bearbeiten Der Client steuert ob und wann Daten ubertragen werden sollen Er sendet die lokalen Tastatur und Mauseingaben an den Server Ausserdem sendet er regelmassig FramebufferUpdateRequest Nachrichten an den Server der daraufhin die Anderungen des Bildschirminhaltes seit dem letzten FramebufferUpdateRequest an den Client sendet In der ursprunglichen RFB Version wurden auch die Bewegungen des Mauszeigers uber normale FramebufferUpdates an den Client geschickt Dabei ist die zu ubertragene Datenmenge recht hoch und vor allem die damit verbundenen Latenzen erschweren die Bedienung Mit RFB Version 3 8 wurde eine Erweiterung eingefuhrt die es erlaubt dass der Mauszeiger vom Client lokal gezeichnet wird und vom Server lediglich das Aussehen des Mauspfeils und dessen Anderungen z B wenn sich der Mauspfeil uber ein Eingabefeld bewegt und dann zum I Cursor wird an den Client ubertragen werden Ebenso kann seit Version 3 8 eine Anderung an der Grosse des Desktops an den Client ubertragen werden Bei fruheren Versionen musste der Server die Verbindung zum Client beenden da nur in der Initialisierungsphase einer Verbindung die Grosse des Desktops an den Client ubertragen werden konnte Weblinks BearbeitenT Richardson J Levine RFC 6143 The Remote Framebuffer Protocol Marz 2011 englisch Abgerufen von https de wikipedia org w index php title Remote Framebuffer Protocol amp oldid 234068197