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?
Windows – Why are RDP clients on Linux much slower than on Windows
freerdprdesktopremminaremote desktopwindows
Related Solutions
FreeRDP (xfreerdp
, whose Debian package name is freerdp-x11
) was, in 2015, considerably less used than rdesktop
according to the Debian Popularity Contest stats, in part because it was so much newer:
#rank name inst vote old recent no-files (maintainer)
1429 rdesktop 56497 4281 41399 10775 42 (Laszlo Boszormenyi)
3056 freerdp-x11 14232 1389 9845 2992 6 (Mike Gabriel)
However, as of 2020, that is no longer true:
#rank name inst vote old recent no-files (maintainer)
4439 freerdp-x11 11869 582 10856 426 5 (Not in sid)
4597 rdesktop 11099 1191 9443 458 7 (Laszlo Boszormenyi)
7319 freerdp2-x11 3891 704 1500 1686 1 (Debian Remote Maintainers)
The old freerdp-x11
package, removed from Debian in Feb 2018, outranks the older rdesktop
while its replacement, freerdp2-x11
, still has some catching up to do. I assume the smaller install count is the result of fewer people actually needing this Windows-only solution or perhaps a hint of xpra and other next-gen solutions taking over.
According to FreeRDP on Wikipedia,
FreeRDP was forked in 2009 from rdesktop with the aim of modularizing the code, addressing various issues, and implementing new features.
... but Wikipedia's list of features do not break out which came from rdesktop
and which are "new." The FreeRDP 1.0 release announcement (Jan 2012) did offer this list of new features, which presumably are not also available on rdesktop
:
- RemoteFX
- Both encoder and decoder
- SSE2 and NEON optimization
- NSCodec
- RemoteApp
- Working, minor glitches
- Multimedia Redirection
- ffmpeg support
- Network Level Authentication (NLA)
- NTLMv2
- Certificate validation
- FIPS-compliant RDP security
- new build system (cmake)
- added official logo and icon
FreeRDP also has a server (listed as experimental in the 1.0 release) while rdesktop
does not.
I've found that there are two clipboard buffers (the Ctrl-C/Ctrl-X/Ctrl-V one, and the middle-click one), and the FreeRDP package (used by Krdc) only notices the first one.
What's worse, the terminal emulator I'm using (Terminator, but it's using the Gnome Terminal widget) requires me to use Shift-Ctrl-C to copy something into the relevant buffer.
It may be that xrdp-sesman is similarly constrained by the limits of the RDP protocol. See if the Ctrl-C/Ctrl-X/Ctrl-V clipboard is the one that works.
Apologies for not having a completely definitive answer, but hopefully it will help.
Best Answer
There are multiple versions of RDP protocol:
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.
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.
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.