为什么Linux上的RDP客户端比Windows上的RDP客户端慢得多?


10

我有一台Windows 8.1远程PC,我正在使用Windows 7和Linux客户端上的RDP连接到该PC。我注意到,例如在Windows上滚动时的性能要比在任何Linux发行版上都要好得多。我正在使用rdesktop,Remmina,GNOME-RDP,在所有屏幕刷新缓慢且断断续续的地方(例如VNC)。但是RDP 不能像VNC一样工作吗?为什么会这样?什么是Linux最快的RDP客户端?也许Wine下的远程桌面连接客户端


2
RDP是专有协议,因此我想其他人已经逆向工程了他们的程序,因此不知道他们必须做出最佳猜测的底层机制
gwillie 2015年

我的Android RDP客户端(微软)的作品在我的手机比任何Linux RDP在我的酷睿i7笔记本电脑
肯尼斯·维尔克

Answers:


13
  1. RDP协议有多种版本:

    • 原始4.0,它是ITU-T T.128协议的克隆
    • 5.0-rdesktop仍在使用它(甚至没有完全使用)
    • 5.1、5.2、6.0、6.1、7.0、8.1和8.1

可以想象,每个RDP新版本都更好,不仅可以通过引入新功能,而且可以进一步提高性能和整体用户体验。

  1. 如上所述,rdesktop仍仅实现RDP 5.0协议(在Windows 2000上使用的版本)的子集。此版本的优化比至少6.0(与Windows Vista一起发布)的优化程度差,这是一项巨大的性能改进。

  2. 此外,Linux上使用的整个X11窗口系统是一组用户区应用程序,而Microsoft Windows直接在其内核中处理图形事件(例如屏幕滚动)。

屏幕(和应用程序窗口)滚动是一项需要将​​大量内存内容从一个位置复制到另一个位置的操作。在系统内核中,此操作比在Userland应用程序中要快得多。

这也影响每个RDP实现的性能。


谢谢,但是FreeRDP呢?它实现哪个RDP版本?
niutech

1
我发现了有关FreeRDP的一些不同信息,但可能它支持7.0或7.1的子集。如果您有时间,可以在此获得更多信息:github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Tomasz Klim

最近有什么进展吗?
罗伊

为什么屏幕滚动缓慢或需要大量内存复制,而不是简单的gpu blt ops移动内容然后绘制新的可见内容?
whitneyland's

0

从gwilli的答案中可以看到,RDP不是RDP,因为协议的协议版本很多,具有许多扩展,并且客户端和服务器正在协商他们都理解的协议版本。

从本质上讲,两个Windows版本可能会在协议的更新更好的版本中达成一致。

我不能说任何有关Linux RDP客户端性能的标准,因为我不知道有关开源RDP实现的任何基准。如果要比较客户端,则应查看客户端使用哪些基础库,而不仅仅是客户端。这将使您的搜索更加高效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.