Why are RDP clients on Linux much slower than on Windows?

35,042
  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.

Share:
35,042

Related videos on Youtube

niutech
Author by

niutech

Updated on September 18, 2022

Comments

  • niutech
    niutech over 1 year

    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?

    • Admin
      Admin almost 9 years
      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
    • Admin
      Admin about 6 years
      my android rdp client (by microsoft) works better on my phone than any linux rdp on my i7 laptop
  • niutech
    niutech almost 9 years
    Thanks, but how about FreeRDP? Which RDP version does it implement?
  • Tomasz Klim
    Tomasz Klim almost 9 years
    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
  • Royi
    Royi over 6 years
    Has there been any progress on that lately?
  • whitneyland
    whitneyland about 6 years
    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?
  • Greenonline
    Greenonline about 2 years
    Could you edit and expand your answer, stating why this might help?