RDP是一个多层多虚通道通讯协议,它在一个TCP连接中虚拟出若干个通道,分别进行各种信息的传输。
注:(a)、以上所述是数据的发送过程,是一层一层往下进行处理,接收过程则相反,一层一层往上对数据组合并上传。
(b)、初始化数据包时,是从下往上先调用TCP_init开辟空间并初始化,然后再由ISO层对ISO层的内容进行初始化,依此往上类推。
首先在建立连接时,会与服务器之间建立一条TCP连接,再在该TCP连接中虚拟出若干条通道。这些虚通道主要有:
接收端在接收到数据包,并经过各层的处理后最终形成明文RDP数据包后,在每个数据包的包头都含有数据包的类型说明字段,该字段指明本数据包是什么类型,如:
终端服务传向客户端的数据包类型举例:
显示区域更新包;
鼠标指针位置变动包;
剪站板操作数据包;
声音数据包;
RDP打印数据包;
磁盘读写请求包及写数据包;
串口读写请求包及写数据包;
并口读写请求包及写数据包等等
客户端传向终端服务器的数据包类型举例:
按键信息数据包;
鼠标操作数据包;
用户登录用户名及密码数据包;
外设输入数据包;
从本地磁盘及外设读出的数据包等等。
客户端在接收到终端服务器发送下来的数据包后,将从包头中解释出数据包类型,并根据包类型进行不同的操作,如收到串口操作数据包,则将该数据包交给串口数据处理程序进行处理。
当RDP客户端程序收到终端输入信息(如按键信息)后,会将该信息组成数据包并发给服务器(如将按键扫描码发给终端服务器,由服务器进行相应的操作)。
Window终端通过RDP协议与终端服务器连接时,所有在网络中传输的数据都将经过加密,具体加密等级的设置有两种方法:
可以在"管理工具"—》"终端服配置"—》"连接"—》"右击"并选择属性—》在其中的"常规"选项卡中的"加密级别"进行设置,具体选项说明如下:
打开组策略并在"计算机配置"—》"管理模板"—》"Windows 组件"—》"终端服务"—》"加密与安全性"上,双击"设置客户端连接加密级别"设置,然后单击"已启用"。
对于其中的加密级别,在这里简单给予说明。
要点:如果通过系统加密:使用FIPS兼容的算法来加密、哈希和签名组策略或终端服务"设置客户端连接加密级别"组策略,已经启用了 FIPS 兼容算法,就不能使用终端服务配置更改加密级别。
"高"级别使用 128 位的强加密RC4算法,对客户端和服务器之间发送的数据进行加密。当终端服务器运行在仅包含 128 位客户端(例如运行 Windows Server 2003 家族操作系统之一的客户端)的环境中时,才使用该级别。不支持该加密级别的客户端将无法进行连接。 "客户端兼容"级别以客户端所支持的最大密钥强度来加密客户端和服务器之间发送的数据。如果终端服务器的运行环境包含混合或旧的客户端,请使用此级别。 "低"级别将使用 56 位加密对从客户端传输到服务器的数据进行加密。对从服务器传输到客户端的数据不进行加密。需要抓包分析时请将加密级别设置为"低"。