5

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.

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

1 Answer 1

15

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.

4
  • 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, 2010 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) May 5, 2010 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. May 5, 2010 at 13:23
  • 1
    Is this still true today? Dec 19, 2017 at 14:34

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