远程图形界面控制技术对比


远程图形界面控制技术对比

常见软件

向日葵、
toDesk、
TeamViewer (私有专有协议)
AnyDesk

实现技术

VNC(Virtual Network Computing)

RealVNC公司开发,基于RFB(Remote Frame Buffer)。RFB定义了图像传输和用户输入的标准。VNC协议将屏幕上的图像分割成小块,传输给客户端,客户端接收后,组成
图像显示给用户。

帧缓冲:每个小块称为一个矩形,服务端保存着计算机屏幕所有图像,发生变化时候通知给客户端并传输,只传输变化的部分。
协商:连接建立之前进行一系列握手,图像颜色深度、分辨率等,确认各自能力后简历适当的参数。
加密和身份验证,SSL/TLS

连接建立
1.客户端向 VNC Server 发送连接请求。
2.VNC Server 响应连接请求,并返回连接确认信息。
3.客户端和 VNC Server 之间建立起 TCP/P 连接,

图像传输
1.远程计算机上的 VNC Server 将屏幕上的图像数据进行捕获,
2.VNC Server 将图像数据进行压缩和编码,以便在网络上传输。
3.压缩和编码后的图像数据通过 TCP/IP 连接发送到客户端。
4.客户端接收到图像数据后,进行解码和解压缩,恢复原始的图像信息。
5.客户端将解码后的图像数据渲染在本地计算机的屏幕上,呈现远程计算机的图形界面。

指令传递
1.客户端通过本地输入设备(如键盘、鼠标)生成指令。
2.客户端将指令通过 TCP/IP 连接发送到 VNC Server。
3.VNC Server接收到指令后,将其转发给远程计算机的操作系统。
4.远程计算机的操作系统处理指令,并返回相应的结果。
5.VNC Server 将结果传输回客户端
6.客户端根据结果进行相应的响应或更新本地图形界面。


优势:跨平台,widnows,linux,Mac等
扩展性,开放性
劣势:网络不稳定时图像质量低和延迟,视频播放绘图等性能较差(分块传输图像导致)

 

Xmanager

Xmanager是一种流行的远程桌面软件,用于在Windows环境中访问基于X Window System的远程Unix或Linux系统。它利用了X Window System的客户端/服务器架构和网络透明性。

以下是Xmanager实现远程控制的基本原理:

客户端/服务器模型:在X11中,X服务器负责与物理设备(如显示器、键盘和鼠标)交互,而X客户端则是运行在用户空间的应用程序。X客户端通过X11协议向X服务器发送请求,例如创建窗口、绘制图形或处理用户输入。X服务器收到这些请求后,将其转换为与硬件交互的操作。

X11协议:X11协议是X客户端和X服务器之间通信的基础。它定义了一组请求、事件和错误,以及它们的二进制表示。请求是由X客户端发起的,用于指示X服务器执行特定的操作,如创建窗口或绘制图形。事件是由X服务器发起的,用于通知X客户端发生了特定的情况,如用户输入或窗口大小改变。错误是由X服务器发起的,用于通知X客户端请求无法完成。

网络透明性:X11设计的一个关键特性是网络透明性,这意味着X客户端和X服务器可以在不同的机器上运行,并通过网络进行通信。这使得用户可以在一台机器上运行X客户端应用程序,而在另一台机器上显示和交互。

扩展机制:X11提供了一种扩展机制,允许添加新的请求、事件和错误,以支持新的功能。这使得X11能够适应新的硬件和软件需求,而无需修改基础协议。一些常见的X11扩展包括SHAPE(用于非矩形窗口)、XRender(用于复杂的2D渲染)和GLX(用于OpenGL 3D图形)。

窗口管理:在X11中,窗口管理器是一个特殊的X客户端,负责管理窗口的布局和外观。窗口管理器可以控制窗口的位置、大小、层次、边框和标题栏,以及窗口之间的切换和交互。这使得用户可以根据自己的喜好选择或定制窗口管理器。

xdotool就是基于x11的命令行工具
xmanager也是基于此的

Xmanager 是一个基于 X Window System(也就是 X11)的软件。Xmanager 允许 Windows 用户连接远程 Unix 或者 Linux 系统,并在本地 Windows 机器上显示远程系统的图形用户界面。

Xmanager 作为一个 X 服务器,接收来自远程系统的 X11 协议的请求,然后将这些请求转换为 Windows 系统可以理解的图形命令。这样,远程 Unix 或 Linux 系统上运行的图形应用程序就可以在本地 Windows 系统上显示和操作。

Xmanager 还提供了一些额外的功能,如 Secure XDMCP,它通过加密的连接提供了对远程系统的完全图形登录。另外,Xmanager 还包含一些其他的工具,如 Xshell(一个强大的 SSH 客户端)和 Xftp(一个 SFTP/FTP 客户端),这些工具可以帮助用户更方便地管理远程系统。

优势:
流畅,由于其是渲染在客户端进行,故不需要传输图形
劣势:客户端(控制端)关闭会影响被控机器上的程序运行


RDP

RDP(Remote Desktop Protocol)是由微软公司开发的一种协议,它允许用户通过网络连接到远程计算机并控制其桌面环境。RDP 通常用于 Windows 系统,但也有第三方实现支持其他操作系统。

RDP 的工作原理主要基于以下几个步骤:

建立连接:用户的设备(称为客户端)通过网络连接到远程计算机(称为服务器)。连接可以通过直接的网络连接、VPN、或者通过网关进行。

身份验证:在连接建立后,用户需要提供凭据(如用户名和密码)来验证其身份。如果身份验证成功,用户就可以开始远程会话。

会话建立:一旦身份验证成功,RDP 会话就会开始。在会话中,服务器会将其桌面环境(包括窗口、图标、菜单等)的图像发送到客户端,而客户端则会将用户的输入(如键盘输入和鼠标移动)发送到服务器。

数据压缩和优化:为了提高性能和响应速度,RDP 会对数据进行压缩和优化。例如,它可以只发送桌面环境中改变的部分,而不是每次都发送整个桌面的图像。此外,RDP 还可以根据网络条件动态调整其性能设置。

设备重定向:RDP 还支持设备重定向,这意味着用户可以在远程会话中使用本地设备,如打印机、USB 设备、或者剪贴板。

RDP 是一种复杂的协议,它包含了多个子协议,用于处理不同的任务,如图形输出、输入处理、设备重定向等。这使得 RDP 可以提供丰富的远程桌面体验。

RDP协议会传输图像。但是,它并不是简单地将整个屏幕截图然后发送给客户端。这样做的话,所需的带宽会非常大,且效率很低。

RDP使用了一种更智能的方式来处理图像传输。在服务器端,RDP会捕获图形设备接口(GDI)的绘图命令,然后将这些命令编码并发送到客户端。客户端接收到这些编码的GDI命令后,会在本地执行这些命令,从而在客户端的屏幕上重绘出服务器端的图像。

这种方式的好处是,只需要传输图像的改变部分,而不是整个图像。例如,如果用户在远程桌面上打开一个新的窗口,那么只需要传输这个新窗口的图像,而不是整个桌面的图像。这大大减少了需要传输的数据量,从而提高了性能和响应速度。

此外,RDP还支持图像压缩和位图缓存等技术,以进一步减少需要传输的数据量。例如,位图缓存技术可以将已经发送到客户端的图像存储在缓存中,当同一图像需要再次发送时,只需要发送一个引用到缓存中的图像的指令,而不是再次发送整个图像。

实现方式:RDP是微软开发的协议,主要用于Windows系统,它的工作方式是捕获服务器端的GDI(图形设备接口)命令,然后将这些命令编码并发送到客户端。而VNC是一个更通用的协议,它可以在各种操作系统上运行,包括Windows、Linux和macOS。VNC的工作方式是捕获服务器端的屏幕更新(即屏幕上的图像改变),然后将这些更新编码并发送到客户端。

性能优化:RDP和VNC都使用了一些技术来提高性能和用户体验,例如数据压缩和位图缓存。然而,RDP还使用了一些更高级的优化技术,例如网络自适应和多媒体重定向。网络自适应可以根据网络条件动态调整数据压缩和图形质量,以提供最佳的用户体验。多媒体重定向则可以将服务器端的音频和视频直接发送到客户端,而不是在服务器端渲染后再发送,这可以提高多媒体的播放质量。

画中画的实现

widnows
Windows Server版本的操作系统支持多用户远程桌面会话,这意味着多个用户可以同时通过远程桌面协议(RDP)连接到同一台服务器,并各自在自己的会话中工作。这是因为Windows Server操作系统被设计为支持多用户并发工作。

至于"画中画"的效果,如果你是指在一个窗口中同时显示和控制多个远程桌面会话,那么这通常可以通过远程桌面客户端软件来实现。例如,你可以在一个远程桌面客户端窗口中打开一个远程会话,然后在另一个远程桌面客户端窗口中打开另一个远程会话,然后将这两个窗口并排或重叠放置,以达到"画中画"的效果。

linux

有一些操作系统(如Linux)和VNC服务器软件(如RealVNC, TightVNC, TigerVNC等)支持创建和管理多个虚拟桌面。这意味着,你可以在远程服务器上启动一个新的VNC会话,这个会话有自己独立的虚拟桌面,然后从本地计算机通过VNC客户端连接并控制这个虚拟桌面。这种方式可以让多个用户同时连接到同一台服务器,每个用户都有自己独立的桌面环境,互不干扰

多个桌面环境:大多数Linux桌面环境(如GNOME,KDE等)都支持多个虚拟桌面或工作区。你可以在一个工作区打开一些应用程序,在另一个工作区打开其他应用程序,然后在这些工作区之间切换。这可以让你在同一屏幕上同时进行多个任务,但每次只能看到一个任务。

窗口管理器:有些窗口管理器(如tmux,screen等)可以让你在一个终端窗口中同时打开和查看多个终端会话。你可以将屏幕分割成多个部分,每个部分都可以运行一个独立的终端会话。这可以让你在同一屏幕上同时看到和控制多个终端会话。

VNC或其他远程桌面协议:你可以在Linux服务器上运行多个VNC或其他远程桌面会话,然后在本地计算机上通过VNC或其他远程桌面客户端连接到这些会话。你可以在一个客户端窗口中打开一个远程会话,在另一个客户端窗口中打开另一个远程会话,然后将这两个窗口并排或重叠放置,以达到"画中画"的效果。

窗口分割和重叠:大多数Linux桌面环境都允许你将窗口分割或重叠放置。你可以将一个窗口缩小并放置在另一个窗口的一角,以达到"画中画"的效果。

其他远程工具

Parallels Access: 这款软件提供了一个简单易用的界面,让你可以在任何设备上远程访问你的电脑。它特别适合在移动设备上使用。

Zoho Assist: 这是一款商业的远程支持软件,适合IT支持和远程工作。它提供了许多高级功能,如屏幕共享、文件传输、和多显示器支持。

ConnectWise Control: 之前被称为ScreenConnect,这是一款强大的商业远程控制软件,适合IT支持和系统管理员使用。

Jump Desktop: 这是一款支持RDP和VNC的远程桌面客户端,可以在多种设备上使用,包括Windows、Mac、iOS和Android。

NoMachine: 这款软件提供了高质量的视频和音频流,适合需要高质量媒体的用户。它支持多种操作系统,包括Windows、Mac、Linux和Raspberry Pi。

Remmina: 这是一款开源的远程桌面客户端,支持多种协议,包括RDP、VNC、NX、XDMCP和SSH。它主要用于Linux系统。

Apache Guacamole: 这是一款开源的远程桌面网关,支持多种协议,包括VNC、RDP和SSH。用户可以通过Web浏览器访问远程桌面,无需安装任何客户端软件。

向日葵远程控制:向日葵是一款非常流行的远程控制软件,用户可以通过向日葵实现跨平台的远程控制,它支持Windows、Mac、Linux、Android、iOS等多种操作系统。

腾讯QQ远程协助:QQ远程协助是腾讯公司推出的一款远程协助软件,通过QQ聊天窗口就能实现远程协助,操作简单方便。

快牛远程控制:快牛远程控制是一款专为企业用户设计的远程控制软件,提供多屏同步、文件传输、远程打印等功能。

51远程控制:51远程控制是一款免费的远程控制软件,支持语音通话、视频通话、白板及文件传输等功能。

ISL Online:ISL Online是一款全球领先的远程控制软件,中国区由上海云动智联网络科技有限公司运营。提供安全的远程桌面访问、远程支持、实时聊天和Web会议等功能。

posted @ 2024-04-17 11:49  卖雨伞的小男孩  阅读(170)  评论(0编辑  收藏  举报