远程桌面协议(RDP):通过远程桌面协议,用户可以远程连接到目标计算机的桌面,并在远程计算机上执行需要的代码。
远程终端协议:通过使用远程终端协议,用户可以通过一个命令行界面连接到远程计算机,并在命令行中执行需要的命令和代码。
SSH协议:通过SSH协议也可以实现电脑远程代码。SSH协议是一种安全的远程登录协议,它可以在不同机器之间建立一个加密的隧道,以保证数据传输的安全性。
VNC协议:VNC协议是一种基于图形化的协议,它允许用户通过网络连接到远程计算机,并可以在远程计算机上执行需要的代码。
对于一个远程桌面程序,我们要解决的问题主要有三点:
- 获取桌面流——没有桌面流,怎么做远程桌面
- 传输数据——包括桌面流以及键盘鼠标等信息
- 传输控制信息——建立连接,断开连接等
这里需要注意的点是第二点传输数据。
远程桌面一个重要的质量指标是实时性。需要控制端对被控制端的操作能够及时得到响应。
xinyuehtx.github.io/post/%E5%A6…
使用WebRTC实现远程协助:
1、你得有一个实现了WebRTC相关协议的客户端。比如Chrome浏览器
2、信令服务器
3、浏览器
WebRTC
WebRTC(Web Real-Time Communications)是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
WebRTC 协议介绍
ICE
交互式连接创建(Interactive Connectivity Establishment,ICE)是一个允许你的浏览器和对端浏览器建立连接的协议框架。在实际的网络当中,有很多原因能导致简单的从 A 端到 B 端直连不能如愿完成。这需要绕过阻止建立连接的防火墙,给你的设备分配一个唯一可见的地址(通常情况下我们的大部分设备没有一个固定的公网地址),如果路由器不允许主机直连,还得通过一台服务器转发数据。ICE 通过使用以下几种技术完成上述工作。
STUN
NAT 的会话穿越功能Session Traversal Utilities forNAT(STUN) (缩略语的最后一个字母是 NAT 的首字母) 是一个允许位于 NAT 后的客户端找出自己的公网地址,判断出路由器阻止直连的限制方法的协议。
客户端通过给公网的 STUN 服务器发送请求获得自己的公网地址信息,以及是否能够被(穿过路由器)访问。
NAT
网络地址转换协议Network Address Translation (NAT) 用来给你的(私网)设备映射一个公网的 IP 地址的协议。一般情况下,路由器的 WAN 口有一个公网 IP,所有连接这个路由器 LAN 口的设备会分配一个私有网段的 IP 地址(例如 192.168.1.3)。私网设备的 IP 被映射成路由器的公网 IP 和唯一的端口,通过这种方式不需要为每一个私网设备分配不同的公网 IP,但是依然能被外网设备发现。
一些路由器严格地限定了谁能连接内网的设备。这种情况下,即使 STUN 服务器识别了该内网设备的公网 IP 和端口的映射,依然无法和这个内网设备建立连接。这种情况下就需要转向 TURN 协议。
TURN
一些路由器使用一种“对称型 NAT”的 NAT 模型。这意味着路由器只接受和对端先前建立的连接(就是下一次请求建立新的连接映射)。
NAT 的中继穿越方式Traversal Using Relays around NAT (TURN) 通过 TURN 服务器中继所有数据的方式来绕过“对称型 NAT”。你需要在 TURN 服务器上创建一个连接,然后告诉所有对端设备发包到服务器上,TURN 服务器再把包转发给你。很显然这种方式是开销很大的,所以只有在没得选择的情况下采用。
SDP
会话描述协议Session Description Protocol (SDP) 是一个描述多媒体连接内容的协议,例如分辨率,格式,编码,加密算法等。所以在数据传输时两端都能够理解彼此的数据。本质上,这些描述内容的元数据并不是媒体流本身。
从技术上讲,SDP 并不是一个真正的协议,而是一种数据格式,用于描述在设备之间共享媒体的连接。
结构体
SDP 由一行或多行 UTF-8 文本组成,每行以一个字符的类型开头,后跟等号(“ =”),然后是包含值或描述的结构化文本,其格式取决于类型。以给定字母开头的文本行通常称为“字母行”。例如,提供媒体描述的行的类型为“m”,因此这些行称为“m 行”。
WebRTC connectivity
WebRTC 各种相关协议如何相互交互,以便在对等体之间创建连接和传输数据和/或媒体。
会话描述
WebRTC 连接上的端点配置称为会话描述。该描述包括关于要发送的媒体类型,其格式,正在使用的传输协议,端点的 IP 地址和端口以及描述媒体传输端点所需的其他信息的信息。使用会话描述协议(SDP) 来交换和存储该信息; 如果您想要有关 SDP 数据格式的详细信息,可以在RFC 2327中找到。
当用户对另一个用户启动 WebRTC 调用时,将创建一个称为提议(offer) 的特定描述。该描述包括有关呼叫者建议的呼叫配置的所有信息。接收者然后用应答(answer) 进行响应,这是他们对呼叫结束的描述。以这种方式,两个设备彼此共享以便交换媒体数据所需的信息。该交换是使用交互式连接建立 (ICE)(ICE处理的,这是一种协议,即使两个设备通过网络地址转换 (NAT)。
然后,每个对等端保持两个描述:描述本身的本地描述和描述呼叫的远端的远程描述。