传输层RDP:可靠数据协议


RDP:可靠数据协议(RDP:Reliable Data Protocol)
RDP 是一种面向连接的传输协议,其主要设计来为主机监控应用程序的下载/上传以及远程调试支持数据的有效成批传输 。RDP 尝试只提供那些必需的服务器,达到操作有效、尺度小的效果 。其主要功能如下:
RDP 将在每个传输连接端口提供一个全双工通信信道;
RDP 将尝试可靠发送所有的户信息,一旦发送失败,及时向用户报告错误 。RDP 扩展 IP 数据包服务使之包括可靠发送;
RDP 将尝试发现并删除所有损坏的和多重复制的字段,它将在每字段头使用核对和及序列号实现这一过程;
RDP 将会随意地提供字段序列发送,一旦建立连接,字段序列发送必须要被声明;
RDP 将会响应确认字段的非顺序接收,释放发送端的资源 。
与 TCP 相比,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 字段的参数 。

    推荐阅读