Remote Desktop-Software: Warum ist Teamviewer so viel schneller als die Open Source-Konkurrenz?

4693
porg

TeamViewer ist im Vergleich zu FLOSS-Alternativen in 2 Aspekten schneller:

  1. Der gesamte Konfigurationsprozess vor der eigentlichen Sitzung: Ermitteln Sie die IP-Adresse, durchqueren Sie NAT und Firewall usw., während Sie in TeamViewer einfach eine ID / PW eingeben, die durch das zentrale System von TeamViewer geleitet wird (dies ist natürlich ein Vertrauensproblem!).
  2. Die Remote Viewing / Control-Sitzung selbst: VNC-Lösungen sind weitaus weniger fließend und reaktionsschnell, hinken oft Dutzende Sekunden zurück, während sie sich in Teamviewer fast "live" anfühlt, außer natürlich, wenn sich der Bildschirminhalt bei hohen Frequenzen ändert (animierte Inhalte usw.).

Ich würde mich über technische Erklärungen zu # 2 freuen. Ich kann nicht einfach herausfinden, wo das Optimierungspotenzial liegt, was TeamViewer so viel schneller macht.

2
Ich denke, Sie sollten auf der Teamviewer-Site posten, um eine deterministische Antwort zu erhalten. . . surfasb vor 12 Jahren 0

2 Antworten auf die Frage

4
Journeyman Geek

VNC ist einfach ineffizient - es verwendet RFB . In diesem Fall werden in regelmäßigen Abständen Snapshots Ihres Systems erstellt und das Clientsystem wird aufgefordert, Boxen mit X-Größe zu zeichnen (eine vollständige Beschreibung des RFB-Protokolls ist hier enthalten. Effizientere Protokolle funktionieren nicht auf Frame-Buffer-Ebene - RDP) verwendet zum Beispiel einen Kernel-Treiber in Windows, und nx speichert und komprimiert Daten.

Effizientere Protokolle wären wahrscheinlich als solche

  1. Daten zwischenspeichern und nur die Unterschiede senden
  2. haken Sie sich in die nativen Subsysteme des Host-Betriebssystems ein
  3. Caching und Komprimierung verwenden, um die Datenübertragung zu beschleunigen.

Im Falle von teamviewer ist es wahrscheinlich die clevere Verwendung des ersten und des dritten - da es den gleichen Client für Windows und Linux zu verwenden scheint und den Server für die Verbindung und das Routing des Datenverkehrs verwendet

Ich lese weiter über die Protokolle, sagten Sie! Vielen Dank! porg vor 12 Jahren 0
Beim Lesen dieser Antwort wünschte ich mir, dass es sich hierbei um einige relevante Optionen für die drei Fälle handelte. marioricalde vor 6 Jahren 0
3
user481288

Ich möchte betonen, dass VNC einfach ein schrecklicher Vergleichspunkt ist.

Bei Linux-Systemen bietet ein ordnungsgemäß konfiguriertes xpra eine viel bessere Leistung - hauptsächlich dank der Unterstützung der H.264-basierten verlustbehafteten Komprimierung.

Die einzige verlustbehaftete Komprimierung, die von TeamViewer unterstützt wird, scheint die Verringerung der Farbtiefe und einige Interlaced-Aktualisierungen zu sein, die bei animierten Inhalten, wie Sie bereits bemerkt haben, wenig helfen. Ein gutes System wäre in der Lage, die Qualität reibungslos zu opfern, um eine angemessene Aktualisierungsrate zu erhalten. Die erwähnte Xpra kommt der Sache etwas nahe, aber ehrlich gesagt macht sie immer noch eine beschissene Arbeit.

Ein weiteres Problem ist TCP im Vergleich zu UDP. TCP-basierte Protokolle sind ziemlich anfällig für zum Beispiel hohe Paketverluste und die Tatsache, dass, sobald Sie einige Daten gesendet haben, diese übertragen werden müssen. Ein einzelnes großes Update bedeutet, dass Ihr Bildschirm hängen bleibt, bis er ankommt. Insbesondere bei langsamen Verbindungen ist VNC unbrauchbar, da bei großen Änderungen auf dem Bildschirm nur Minuten später Änderungen sichtbar werden. Vergleichen Sie auch ssh vs. mosh für reinen Text.

Es scheint jedoch noch niemandem gelungen, ein wirklich gutes Protokoll zu erfinden, eines, das hohe Komprimierungsraten von fortschrittlichen Videocodecs, die Verwendung von UDP mit einer guten Methode zum Umgang mit verlorenen Paketen kombiniert, perzeptive Codierung, die die Lesbarkeit von Text vor "nutzlos" erkennt und bevorzugt "Details, guter automatisierter Abgleich von Aktualisierungs- / Übertragungsgeschwindigkeiten mit Qualität und Codierungsgeschwindigkeiten, allmähliche und reibungslose Qualitätsverbesserung für nicht aktualisierte Bereiche im Lauf der Zeit, clientseitige Zwischenspeicherung und Differenzierung (während Videocodierung auf vergangene Frames verweisen kann, sind sie nicht wirklich gut zu normalen Desktop-Inhalten passen und die Tatsache, dass Sie problemlos 100s MB Referenzdaten-Clientseite speichern können). Mit anderen Worten: Alles, was TeamViewer zu tun scheint, ist, keine völlig dummen Dinge zu tun (obwohl VNC die Entschuldigung hat, meistens sein Alter zu zeigen).