14.2.3 Remote Desktop Protocol Extensions

Remote Desktop Protocol (RDP) is the core protocol used to provide terminal services functionality. Microsoft has also defined numerous extensions to RDP, which are used in various contexts such as:

  • Graphics remoting

  • Printing and print redirection

  • Smart card implementation

  • Plug and play (PNP) functions

  • Clipboard functions

RDP is based upon, and is an extension of, the International Telecommunication Union (ITU) T.120 family of protocol standards. The T.120 standard comprises a suite of communication and application protocols developed and approved by the international computer and telecommunications industries. These protocols are used to create compatible products and services for real-time, multipoint data connections, and conferencing. With T.120-based programs, multiple users can participate in conferencing sessions over different types of networks and connections.

Microsoft proposed the T.128 standard as an addition to the T.120 standard. T.128 is accepted by the ITU, Telecommunication Standardization Sector (ITU-T). T.128 specifies the program sharing protocol, defining how participants in a T.120 conference can share local programs. Specifically, T.128 enables multiple conference participants to view and collaborate on shared programs, and it is the foundation for RDP.

A multichannel-capable protocol allows for separate virtual channels for carrying presentation data, serial device communication, licensing information, highly encrypted data (keyboard and mouse activity), and so on. Because RDP is an extension of the core T.120 protocol suite, several other capabilities are retained as part of RDP, such as the architectural features necessary to support multipoint (multiparty) sessions. Multipoint data delivery allows data from an application to be delivered in "real-time" to multiple parties without requiring the same data to be sent to each session individually. However, application sharing (collaboration) is not in the scope of this task and is fully documented in the Collaboration Server Services section of this Protocol document.

RDP versions 5.1, 5.2, 6.0, 6.1, and 7.0 support virtual channels. Virtual channels are custom data formats handled independently of the RDP protocol. After an RDP connection is made, and basic settings are exchanged between server and client, one or more virtual channels are established over a static channel (see the Message Flows—Standard Connection Sequence section of this Terminal Server document). Thereafter, until the disconnect sequence, all activity between client and server (for example, file operations, printing, graphics, and application remoting) takes place on these virtual channels.