Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

TeamViewer is faster compared to FLOSS alternatives concerning 2 aspects:

  1. The whole configuration process before the actual session: Determine IP, traverse through NAT & firewall, etc whereas in TeamViewer simply entering an ID/PW, which goes through the centralized system of TeamViewer (that's of course an issue of trust!).
  2. The remote viewing/control session itself: VNC solutions are far less fluent and responsive, often lag back dozens of seconds whereas in Teamviewer it feels almost "live" except of course if much screen content changes at high frequencies (animated contents, etc).

I would appreciate technical explanations concerning #2. I can't just figure out where's the optimization potential, which makes TeamViewer so much faster.

share|improve this question
    
I think you should post on the Teamviewer site for a deterministic answer. . . – surfasb Oct 12 '11 at 10:33
up vote 4 down vote accepted

VNC is just inefficient - it uses RFB. which in effect takes snapshots of your system every so often, and tells the client system to draw boxes of X size every so often (a full description of the RFB protocol is here. More efficient protocols don't work at frame buffer level - RDP uses a kernel level driver in windows, for example and nx caches and compresses data.

More efficient protocols would likely as such

  1. cache data and only send the differences
  2. hook into the native subsystems of the host os
  3. using caching and compression to speed up data transfer.

In the case of teamviewer its likely clever use of the first and third - since it seems to use the same client for windows and linux, and uses their server to handle connection and routing of traffic

share|improve this answer
    
I'll read on about the protocols, you stated! Thanks! – porg Oct 17 '11 at 22:58

I'd like to emphasize the fact that VNC is simply a horrible comparison point.

Between Linux systems, a properly configured xpra provides much, much better performance - mostly thanks to supporting H.264 based lossy compression.

The only lossy compression supported by TeamViewer seems to be reducing the colour depth and some kind of interlaced updates which help little with animated content as you noted. A good system would be able to smoothly sacrifice quality to keep a reasonable rate of updates. The mentioned xpra comes somewhat close to it, but honestly it still does a crappy job.

Another issue is TCP vs. UDP based. TCP based protocols are quite vulnerable to for example high packet loss, and the fact that once you sent some data, it has to be transmitted - thus a single large update means your screen will hang until it arrived. Particularly on slow connections that makes VNC unusable since any big change on the screen means you'll not see any changes until minutes later. Compare also ssh vs. mosh for pure text.

It seems nobody has managed to invent a really good protocol yet though, one that combines high compression ratios of advanced video codecs, use of UDP with a good way to deal with lost packets, perceptive coding that detects and favours readability of text over "useless" details, good automated balancing of update/transmission speeds with quality and encode speeds, gradual and smooth quality refinement over time for non-updated areas, client side caching and differencing (while video coding can reference past frames they are not really quite a good match to normal desktop content, and the fact that you could easily store 100s of MB of reference data client side). In other words: All that TeamViewer seems to do is to not do completely stupid things (though VNC has the excuse of mostly showing its age), I know of no solution that implements even a fraction of clever tricks possible even today, not to mention all those that one could imagine.

share|improve this answer

You must log in to answer this question.

protected by Community Jun 6 at 12:13

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged .