Possible Duplicate:
What’s the difference between RDP vs VNC ?

It seems to me that Windows Remote Desktop is ridiculously resource hungry and has to load up every window on the remote computer before making the desktop available.

However it appears that VNC just sends images of the desktop across the network.

Would I be right in my thinking?

Because I have a bunch of stuff open on my computer and while it runs fine here, when somebody else logs in via Remote Desktop it takes a really long time for it to run on their machine.

marked as duplicate by David Spillett, ChrisF, quack quixote May 5 '10 at 13:27

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • @David Yeah, I'd say it's a duplicate but my question is alot more straight forward. – leeand00 May 5 '10 at 13:02

RDP (Remote Desktop) is actually a much more efficient protocol than VNC's protocol, called RFB.

VNC works, as you suggest, by sending a picture of the desktop across the network. There are some optimizations, such as only sending parts of the screen which have changed, but that's essentially it.

RDP, on the other hand, works by sending instructions on how to draw the screen to the client computer. Rather than sending a picture of a Window, the host machine sends a description of the window to the client machine, then the client machine is responsible for rendering an image and displaying it. Nearly all of the time, these instructions are much less bandwidth-intensive than VNC's protocol would be. Also, since the client computer "understands" the image it has created for you, it can perform simple operations like moving windows without having to (a) send the mouse input to the host computer, (b) wait for the host computer to render the moved window, and (c) wait for the response. It can just calculate and draw the results for you right away.

RDP also is integrated with Windows logons and sessions: when you make a Remote Desktop connection, Windows is either creating a new logon session for you, or connecting an existing session to your RDP connection. Logging on and connecting the session is what takes the majority of the initial connection time, but after that it should be much quicker. This is how Terminal Services works: each user has an independent session on one computer, the display of which is sent across the network and rendered remotely, and none of them can see what the other is doing. VNC generally has no notion of logon sessions and always connects you to the console session (so you see exactly what somebody physically sitting at the computer would see). Depending on what you're trying to achieve, this can be a good or a bad thing.

  • I'm using a virtual desktop (Dextop) to quickly switch between clients. This means that I have a bunch of windows open, but they're not all on the screen at once. Thus, when they login using remote desktop it has to send over all of that information. If I was using VNC instead it would just send over the screen and I think that would be smaller despite the more efficient protocol. What do you think? – leeand00 May 5 '10 at 13:15
  • 1
    I don't know the gritty details of how RDP works, but judging from your experience it sounds like RDP is sending drawing instructions for the off-screen windows, since virtual desktops are not well-supported in Windows (they usually work by hiding windows, but Dextop may be doing it in a way that triggers RDP to believe they're on-screen) – Stephen Jennings May 5 '10 at 13:21
  • 1
    You can prove this one way or another by keeping the same number of programs running, but shut down Dextop so they're all on a single desktop. Then have the appropriate number of windows showing and minimize the rest. Then see if RDP is still slow or not. – Stephen Jennings May 5 '10 at 13:23
  • Is this still true today? – Simon Ferndriger Dec 19 '17 at 14:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.