Descripción del Protocolo de escritorio remoto (RDP)

En este artículo se describe el Protocolo de escritorio remoto (RDP) que se usa para la comunicación entre Terminal Server y Cliente de Terminal Server. RDP se encapsula y cifra dentro de TCP.

Se aplica a: Windows Server 2012 R2
Número KB original: 186607

Resumen

RDP se basa en la familia de protocolos T-120 y es una extensión de ella. Un protocolo compatible con varios canales permite que haya canales virtuales separados para transmitir la siguiente información:

  • datos de presentación
  • comunicación de dispositivo serie
  • información de licencia
  • datos altamente cifrados, como la actividad del teclado y del mouse

RDP es una extensión del protocolo T.Share principal. Se conservan otras funcionalidades como parte del RDP, como las características arquitectónicas necesarias para admitir punto múltiple (sesiones con varias partes). La entrega de datos de múltiples puntos permite que los datos de una aplicación se entreguen en tiempo real a varias partes, como pizarras virtuales. No es necesario enviar los mismos datos a cada sesión individualmente.

En esta primera versión de Terminal Server de Windows, nos centramos en proporcionar comunicaciones fiables y rápidas de punto a punto (sesión única). Solo se usa un canal de datos en la versión inicial de Terminal Server 4.0. Sin embargo, la flexibilidad de RDP deja mucho espacio para la funcionalidad de futuros productos.

Una razón por la que Microsoft decidió implementar RDP con fines de conectividad dentro de Windows NT Terminal Server es que proporciona una base extensible para crear muchas más funcionalidades. RDP proporciona 64 000 canales independientes para la transmisión de datos. Sin embargo, las actividades de transmisión actuales solo usan un canal único (para los datos de teclado, mouse y presentación).

RDP está diseñado para admitir muchos tipos diferentes de topologías de red, como ISDN, POTS. RDP también está diseñado para admitir muchos protocolos LAN, como IPX, NetBIOS, TCP/IP. La versión actual de RDP solo se ejecutará a través de TCP/IP. Con los comentarios de los clientes, se puede añadir otro soporte de protocolo en versiones futuras.

La actividad implicada en el envío y la recepción de datos a través de la pila RDP es básicamente la misma que los estándares de modelo OSI de siete niveles para redes LAN comunes en la actualidad. Los datos de una aplicación o servicio que se van a transmitir se pasan a través de las pilas de protocolos. Están seccionados, dirigidos a un canal (a través de MCS), cifrados, encapsulados, enmarcados, empaquetados en el protocolo de red y, por último, dirigidos y enviados a través de la conexión al cliente. Los datos devueltos funcionan de la misma manera, pero en sentido inverso. El paquete se quita de su dirección, luego se desencapsula, se descifra, etc. Por último, los datos se presentan a la aplicación para su uso. Las partes clave de las modificaciones de la pila de protocolos se producen entre la cuarta y la séptima capa, donde los datos están:

  • cifrados
  • encapsulados
  • enmarcados
  • dirigidos a un canal
  • priorizados

Uno de los puntos clave para los desarrolladores de aplicaciones es que, al usar RDP, Microsoft ha restado las complejidades de tratar con la pila de protocolos. Les permite escribir aplicaciones de 32 bits limpias, bien diseñadas y con un buen comportamiento. Entonces, la pila RDP implementada por Terminal Server y sus conexiones de cliente se encargan del resto.

Para obtener más información sobre cómo interactúan las aplicaciones en Terminal Server y qué saber al desarrollar aplicaciones para una infraestructura de Terminal Server de Windows, consulte el siguiente documento técnico:
Optimización de aplicaciones para Windows NT Server 4.0, Terminal Server Edition

Cuatro componentes que merece la pena analizar en la instancia de pila RDP son los siguientes:

  • el servicio de comunicación de múltiples puntos (MCSMUX)
  • el Control genérico de conferencias (GCC)
  • Wdtshare.sys
  • Tdtcp.sys

MCSmux y GCC forman parte de la familia T.120 de la Unión Internacional de Telecomunicaciones (UIT). El MCS se compone de dos estándares:

  • T.122: define los servicios de múltiples puntos
  • T.125: especifica el protocolo de transmisión de datos

Controles MCSMux:

  • asignación de canal mediante multiplexación de datos en canales virtuales predefinidos dentro del protocolo
  • niveles de prioridad
  • segmentación de los datos que se envían

Básicamente, abstrae las varias pilas RDP en una sola entidad, desde la perspectiva de GCC. GCC es responsable de la administración de esos múltiples canales. GCC permite la creación y eliminación de conexiones de sesión y controla los recursos proporcionados por MCS. Cada protocolo de Terminal Server (actualmente, solo se admite RDP e ICA de Citrix) tendrá una instancia de pila de protocolo cargada (una pila de agentes de escucha en espera de una solicitud de conexión). El controlador de dispositivo de Terminal Server coordina y administra la actividad del protocolo RDP. Está formado por componentes más pequeños:

  • un controlador RDP (Wdtshare.sys) para la transferencia de interfaz de usuario, la compresión, el cifrado, el enmarcado, etc.
  • un controlador de transporte (Tdtcp.sys) para empaquetar el protocolo en el protocolo de red subyacente, TCP/IP.

RDP se desarrolló para ser totalmente independiente de su pila de transporte subyacente, en este caso, TCP/IP. Esto significa que podemos añadir otros controladores de transporte para otros protocolos de red a medida que aumentan las necesidades de los clientes, con pocos o ningún cambio significativo en las partes fundamentales del protocolo. Son elementos clave para el rendimiento y la ampliabilidad de RDP en la red.