每当使用远程桌面连接的时候,都会有一个对应的RDP文件,那么,该文件是什么样的文件呢?
远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。大部分的Windows都有客户端所需软件。其他操作系统也有这些客户端软件,例如Linux、FreeBSD、Mac OS X。服务端电脑方面,则听取送到TCP3389端口的数据。
功能
- 多种显示支持,包括8,15,16,24,32位色。
- 128位加密,使用RC4加密算法。(此为内定的加密方式;比较旧版的客户端可能使用较弱的加密强度)
- 支持 TLS(Transport Layer Security,前身为SSL)。
- 声音转向(redirection)支持,用户可以在远程电脑运行有声音的应用程序,但是将声音导引至客户端电脑来听。
- 文件系统转向支持,用户可在使用远程电脑的过程中,取用本地(客户端)电脑上的文件系统。
- 打印机转向支持,在使用远程电脑时,可以使用本地(客户端)电脑上的打印机输出,包括直接连在客户端电脑的打印机或网络共享打印机。
- 通信端口转向支持,远程电脑上的应用程序可以使用本地(客户端)电脑上的串行端口或平行端口。
- Windows 的剪贴板数据可以在远程及本地电脑之间互通。
优点
与远程桌面协议兼容的客户端可在多种操作系统上运行,许多Linux系统上甚至将RDP客户端功能列为核心功能之一。此外,用户也不一定要有宽带网络才能连上他们的远程电脑桌面,RDP即使在56K拨接网络下,都还可以提供每秒更新五到六个画面的效果。
知识拓展:
(RDP:Reliable Data Protocol)可靠数据协议 RDP 是一种面向连接的传输协议,其主要设计来为主机监控应用程序如下载 / 上传以及远程调试进行有效的大批数据传输。RDP 尝试只提供那些必需的服务,达到操作有效、尺度小的效果。其主要功能如下:
RDP 为每个传输层连接端口提供一个全双工通信信道;
RDP 尝试可靠发送所有用户信息,一旦发送失败,将向用户报告错误。RDP 扩展 IP 数据报服务使之能够可靠发送;
RDP 尝试侦测并删除所有损坏的和重复的数据段,它在数据段头使用校验码及序列号实现这一过程;
RDP 随意地提供数据段序列发送,必须在连接建立时就指定数据段的序列发送;
RDP 会响应确认序列之外的数据段,这会释放发送端的资源。
与 TCP 相比,RDP 所支持的功能更为简单。RDP 的流控制,缓冲以及连接管理模式都是相当简单的。RDP 的目标就是能够简单有效地执行并能适合一系列的应用程序。
RDP 函数集也可能是子集从而进一步减小特殊执行的大小。例如,一台向其它主机请求下载的目标处理器可能执行一个仅支持默认的开放式函数和单连接的 RDP 模块。这个模块也可能选择不执行非顺序响应确认。
协议结构
RDP 第二版协议头结构(见附图)
Control flags ― 8个控制位划分如下:
SYN:SYN 位表示当前为同步段。
ACK:ACK 位表示协议头有效的承认序号。
EACK:EACK 位表示当前为扩展承认字段。.
RST:RST 位表示该数据包为复位字段。
NUL:NUL 位表示该数据包为空字段。
0:表示该字段的值必须设置为0。
Ver no:版本号,当前版本号为2。
Header length ― RDP 协议头长度。
Source Ports ― 源地址,识别通信发生的过程。网络访问协议头中,源地址和目标地址的端口标识符的结合完全限定了连接并形成连接标识符。如此 RDP 可用于区分两台主机间的多连接。
Destination Ports ― 目标地址,识别通信中的目标过程。
Data Length ― 该字段中的数据长度(八位),该数据长度不包括 RDP 协议头。
Sequence number ― 该字段的序列号。
Acknowledgement number ― 如果 ACK 位设置在协议头部,这就是字段序列号,即该字段发送端最后正确按序列接收的顺序。一旦连接成功,就应该发送该字段。
Checksum ― 检验和确保完整性。
Variable Header Area ― 用于传输 SYN 和 EACK 字段的参数。