Terminal Services v. VNC
cbeerse "at" lycos.nl
Mon Jan 5 10:09:01 2004
Mike Miller wrote:
> A friend sent me a message (not to this list), which is appended below.
> He claims that Windows Terminal Services will do for me what VNC does, but
> Terminal Services runs much faster. I'm wondering if he is correct. I
> think he's wrong about bmp encoding, for one, but is any of it correct?
Well, he is right to some extend...
M$Terminal$ervices does on M$Windows what VNC does on many, if not all other
platforms on which it is available (read: all but M$Windows). M$Terminal$ervice
provides an other windows-session, separate from the one on the console.
VNC cannot do such a thing since it (the world outside Micro$oft) has no access
to information to do it. Commercial compannies like Citrix do it because tehy
have gained access to needed infromation.
For being better or not, there are more ways to look at the solutions: on one
side there is the way to gather the screen information. For the M$Windows
variant of VNC, this is done by polling the video memory. For all other VNC
variants, it is done by being the (virtual) display driver (aka display server)
The other side is the communication between displayserver and the display
viewer. There vnc uses a nice and public protocol with many compression options
and such. I expect Micro$oft at least has viewed at this protocol and did its
thing with it (strip it to the bare minimum and add own extentions) or done the
same with one of the many other protocols.
On the viewer side, Micro$oft only provides viewers for its own platforms...
> Thanks in advance!
On Sat, 3 Jan 2004, a friend wrote (off list):
>> VNC sends compressed bmp data of changed pixels when a screen change occurs.
>> Terminal Service operates lower in Windows GDI and is much faster. Example -
>> I type "Hello World" in wordpad. In a VNC session it polls the window,
>> decides which pixels changed, grabs the bmp data for those pixels,
>> compresses it and sends it. Terminal Services says "Hello World" was entered
>> into this app - display it. The difference is very significant.
On all but the M$ platforms, the vncserver does that too.
>> As an example - VNC is sluggish via broadband while Terminal Service is
>> substantially faster over a 28.8 modem (I've seen this).
That's subject to settings like screen resolution, screen colordepth,
compression, polling frequency, polling area and cpu power available at both ends.
And yes, due to the polling meganism, the M$ based vncserver sends over entire
bitmaps of changed areas which are way larger than the actually changed pixels.
>> I don't know about X - though I know Windows-based X servers are typically
>> slower than Linux. Typically when I have to use Cygwin I'm coming over an
>> IPSec VPN - which I think it frigging my MTU and causing me
>> fragmentation-induced performance hits.
Surprise surprise: the vncserver on all other platforms is X11 based. Hence the
binary is called Xvnc. It fully supports the X11 protocol (however, it lacks the
extentions like hardware acceleration...)
For your information: Here I have an M$W2k desktop and some remote linux and
HP-UX systems. I frequently run a vncserver on one of the remote machines and
use that for Xserver to display apps from all other systems.