Verteilung von VNC Datenströmen¶
Allgemein¶
Die Verteilung von VNC Datenströmen soll es ermöglichen, den Inhalt eines Desktops (dabei spielt es keine Rolle, ob es sich um den Dozenten-Client oder einen Teilnehmer-Client handelt) auf einzelne oder alle anderen Desktops zu duplizieren.
Hierzu zählt auch das Anzeigen von einzelnen Desktops auf einem Beamer.
Umsetzung¶
Aufzeigen verschiedener Möglichkeiten für:
- Initiierung der Verteilung
- Absichern der Verbindungen
- Optimierung - hier könnte man einen Blick auf das NoMachine NX (X proxy protocol) als Alternative werfen ...
- Die performanzmäßige Auswirkung von der Erzeugung mehrerer VNC Datenströme
- Mögliche Optimierungen durch z.B. Multicast (oder NoMachine NX)
- Sicherheit
- Verhalten bei Shared Zugriff d.h. Client A ist per VNCViewer mit B verbunden, Client C verbindet sich nun auch mit B. Wird die Verbindung von A beendet, besteht fort etc.?
Externe VNC-Server-Applikation¶
Derzeit wird der VNC-Server durch ein Wrapperskript gestartet und ist auf x11vnc festgelegt. Das könnte auch noch etwas generischer (Verwendung anderer Server) geregelt werden. Bisher kümmert sich das Wrapperskript um Start und Stop (bei ersterem mit Übergabe von Passwort und Port). Das müsste vermutlich noch etwas aufgebohrt werden, als dass ja dieser Server dann auch im Shared-Modus (der bisher vermutlich noch nicht aktiviert wird) alle anderen Clients bedienen muss. Da wird man noch die Steuerung noch etwas feiner gestalten müssen: RW-Modus für Remote-Hilfe von der Steuerkonsole aus und dann RO-Modus für die angesprochene Massenverteilung. Oder zumindest Arbeiten mit verschiedenen RW und RO-Passwörtern.
Benötigte Schnittstellen / Interaktion¶
- PVSmgr / Steuerkonsole: Auswahl der Quelle für den Datenstrom in der GUI (Dozent, Client, Beamer etc.)
- PVSmgr / Steuerkonsole: Auswahl des Ziels des Datenstroms (Einzelne Clients, Alle Clients) - derzeit z.T. schon möglich
- PVSClient: Übergabe von Ip, Passwort und Port für die Datenstromquelle an den VNC-Client (PVS-GUI?)
- PVSClient: Policy / Sicherheitsoptionen - RO / RW Zugriff etc.
- Beamer: Mögliche Lösungsvorschläge für das Darstellen einzelner Clients auf dem Beamer - Schnittstellen?
Beamer¶
Der Beamer gibt das Bild des Dozentenpcs wieder. Das Darstellen eines Clients auf dem Beamer ist folglich gleichzusetzen mit dem Darstellen eines Clients auf dem DozentenPC.
Optimierungsmöglichkeiten¶
x11vnc¶
Mechanismen des x11vncs wie z.B. reflect, ro / rw Zugriff, ssl usw.
No Machine NX¶
NoMachine NX könnte durch die weitere Komprimierung der Datenströme, ausnutzen von Cachingverfahren und Reduzierung der RoundTrip Time eine gute Alternative zu x11vnc Darstellen. Vorallem sollte sich x11vnc beim Einsatz für viele gleichzeitige Verbindungen als zu langsam erweisen. NoMachine NX Verbindungen werden über einen SSH Tunnel hergestellt, dies wäre sicher auch in der Untersuchung der Sicherheit/Absicherung der Verbindung zu beachten.
Vergleich von VNC Servern¶
| Name(Link) | Qualitätsoptionen | Sicherheitsoptionen* | Kompression | Datenverkehrsoptimierung | Sonstige Optionen |
| x11vnc | Verschiedene Qualitätsstufen | SSL | Tight, Zlib | Repeat(Reflect) Funktion | |
| NoMachine NX | |||||
| krfb | - | Passwort (unverschl.), Verbindungsbestätigung | keine relevanten Parameter-Optionen | ||
| vino | - | Passwort (unverschl.), Verbindungsbestätigung | - | - | keine relevanten Parameter-Optionen |
| Name | Performanzmessung (1 Client) | Performanzmessung (15 Clients) |
| x11vnc |
*Man kann alle VNC Verbindungen über einen SSH Tunnel führen was sich jedoch auf die Geschwindigkeit auswirkt.
KRFB und Vino sind so stark in die jeweiligen Desktop Umgebungen integriert, das sie fast nur über die Graphischen Einstellungsdialoge konfigurierbar sind.
Einstellungen können jedoch bei KRFB über das manuelle Anlegen von Einladungen, bei Vino über das gconftool verändert werden. Dies bietet jedoch kaum Einstellungsmöglichkeiten. Krfb und Vino basieren auf x11vnc, vielleicht gibt es eine Möglichkeit auch einige x11vnc Parameter irgendwie mit ihnen zu benutzen.
| Name (Link) | Grund |
| Xvnc - RealVNC | Keine Darstellung existierender Displays |
| vnc4server | Keine Darstellung existierender Displays, kein Shared Mode |
| TightVNC | Keine Darstellung existierender Displays |
Links:
VNC allgemein
VINO, KRFB, X11VNC, TIGHTVNC
Abschliessen lässt sich feststellen, dass es eigentlich nur zwei Arten von VNC Servern gibt, die auf dem orginalen VNC basierenden (ursprünglich AT&T jetzt RealVNC) und die auf libvnc basierenden. Erstere können keine existierende Displays darstellen sondern erzeugen ein "virtuelles" Display und sind so für die Remoteüberwachung und -hilfe nicht geeignet. Die auf libvnc basierenden (z.B. x11vnc, krfb, vino) können existierende Displays darstellen, können jedoch erst nach Anmeldung gestartet werden (was jedoch kein Problem darstellen sollte).
Vino¶
Vino lässt sich zwar, ausser über das Gconftool auch über die entsprechende xml-file ( [...]/remote_access/%gconf.xml ) konfigurieren. Passwörter können hier über den Eintrag
<entry name="vnc_password mtime="[...]" type="string"> <stringvalue>password</stringvalue> </entry>
base64 kodiert gespeichert werden.
Jedoch kann der Port des Servers anscheinend nicht gewählt bzw. geändert werden (fest auf 5900).