I have a Windows 8.1 remote PC, to which I am connecting using RDP from Windows 7 and Linux clients. I noticed that the performance e.g. when scrolling is much better on Windows than on any Linux distribution. I am using rdesktop, Remmina, GNOME-RDP, everywhere the screen refresh is slow and choppy, like VNC. But RDP does not work like VNC, or does it? Why is it so and what is the fastest RDP client for Linux? Maybe Remote Desktop Connection Client under Wine?

  • 2
    RDP is a proprietary protocol so I guess the others have reversed engineered their programs, therefore not knowing the underlying mechanisms they'll have to make a best guess what to do – gwillie Jul 29 '15 at 23:15
  • my android rdp client (by microsoft) works better on my phone than any linux rdp on my i7 laptop – Kenneth Wilke Mar 6 '18 at 1:18
  1. There are multiple versions of RDP protocol:

    • original 4.0, which is a clone of ITU-T T.128 protocol
    • 5.0 - which is still used by rdesktop (and not even fully)
    • 5.1, 5.2, 6.0, 6.1, 7.0, 8.1 and 8.1

As you can imagine, each new version of RDP is better, not only by introducing new features, but also by further improving performance and overall user experience.

  1. As I wrote above, rdesktop still implements only a subset of RDP 5.0 protocol (version used on Windows 2000). This version is less optimized than at least 6.0 (released with Windows Vista), which was a huge performance improvement.

  2. Additionally, the whole X11 window system used on Linux is a group of userland applications, while Microsoft Windows processes graphic events (like screen scrolling) directly in its kernel.

Screen (and application windows) scrolling is an operation requiring copying much memory contents from one place to another. This operation is much faster in the system kernel, than in userland applications.

And this also affects the performance of each RDP implementations.

| improve this answer | |
  • Thanks, but how about FreeRDP? Which RDP version does it implement? – niutech Jul 30 '15 at 17:32
  • 1
    I found several different informations about FreeRDP, but probably it support subset of 7.0 or 7.1. If you have time, here you have more information on that: github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation – Tomasz Klim Jul 30 '15 at 18:00
  • Has there been any progress on that lately? – Royi Dec 15 '17 at 9:43
  • Why should screen scrolling be slow or require lots of memory copying instead of simple gpu blt ops to move the contents and then drawing the newly visible content? – whitneyland Mar 25 '18 at 19:13

As you can see from gwilli's answer RDP is not RDP because there are many different versions of the protocol with many extensions and client and server are negotiating for a protocol version they both understand.

It is in the nature of things that two Windows versions likely agree on a newer and better performing version of the protocol.

I can't say anything qualified regarding the performance of Linux RDP client, because I don't know of any benchmarks regarding open source RDP implementations. In case you want to compare clients, you should look at which underlying libraries the clients use and not just the client. This would make your search more efficient.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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