Remote Framebuffer Protocol
aus Wikipedia, der freien Enzyklopädie
RFB (Remote Framebuffer Protocol) | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Familie: | Internetprotokollfamilie | ||||||||||||||||||||||||
Einsatzgebiet: | Datenübertragung, Bildschirminhalte, Benutzereingaben |
||||||||||||||||||||||||
Port: | 5900/TCP (Siehe Text) | ||||||||||||||||||||||||
|
|||||||||||||||||||||||||
Standards: |
Das Remote Framebuffer Protocol ist ein Netzwerkprotokoll, das von VNC zur Übertragung von Bildschirminhalten und Benutzereingaben verwendet wird.
Inhaltsverzeichnis |
[Bearbeiten] Grundprinzip
Ein RFB-Server bietet einen so genannten "Desktop" an. Dies ist meist eine normale grafische Arbeitsumgebung, die auf einem entfernten Server läuft, kann aber auch eine beliebige grafische Anwendung sein. Der RFB-Client stellt in der Regel diesen Desktop auf dem Arbeitsplatzrechners 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.
Die Bildschirminhalte werden als Bitmaps übertragen, wobei nur die jeweiligen Änderungen – in geeigneter Kodierung, siehe unten – zum Client übertragen werden. Es werden Farbtiefen von 8, 16 und 32 Bit pro Pixel unterstützt, wobei der RFB-Client die gewünschte Farbtiefe und Kodierung vom Server anfordert und der Server sich nach den Wünschen des Clients zu richten hat, sofern er die gewünschte Kodierung unterstützt.
Dieses Design ermöglicht es, den Client sehr einfach zu halten, da er die ihm am günstigsten erscheinende Kodierung anfordern kann, und der Server die Bilddaten in dieser Kodierung ausliefern muss.
[Bearbeiten] Port- und Desktopnummern
In der Original-Unix-Version von VNC ist jeder VNC-Server ein eigener X-Server und stellt genau einen X-Desktop dar. Es wird dabei standardmäßig die erste freie X-Servernummer von VNC belegt. Falls bereits ein lokaler X-Server auf der Maschine läuft, der somit den X-Desktop :0
belegt, bekommt VNC den Desktop :1
. Die von VNC belegte TCP-Portnummer ist 5900+desktopnummer, unter Unix somit meist 5901.
Unter Windows und Mac OS X läuft in der Regel kein lokaler X-Server (kann etwa von der Mac OS X-Installations-DVD nachinstalliert werden), so dass VNC den Desktop :0
und somit die TCP-Portnummer 5900 belegt.
[Bearbeiten] Handshake & Authentifizierung
Sobald die TCP-Verbindung aufgebaut ist, sendet der Server die von ihm unterstützte 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 kleinste von beiden Partnern unterstützte Versionsnummer gilt für 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.
[Bearbeiten] Versionskennungen
Die Versionskennung in der Version 3.3 lautet „RFB 003.003\n
“ (Als Bytes, hexadezimal: 52 46 42 20 30 30 32 2E 30 30 32 0A
). In der Version 3.8 lautet sie „RFB 003.008\n
“ (Als Bytes, hexadezimal: 52 46 42 20 30 30 32 2E 30 30 38 0A
).