Noções básicas sobre o protocolo RDP

Este artigo descreve o protocolo RDP usado para comunicação entre o Terminal Server e o Cliente do Terminal Server. O RDP é encapsulado e criptografado dentro do TCP.

Aplica-se a: Windows Server 2012 R2
Número original do KB: 186607

Resumo

O RDP é baseado na família T-120 de padrões de protocolo (além de ser uma extensão dela). Um protocolo com capacidade multicanal permite canais virtuais separados para transportar as seguintes informações:

  • dados de apresentação
  • comunicação de dispositivo serial
  • informações de licenciamento
  • dados altamente criptografados, como atividades do teclado e do mouse

O RDP é uma extensão do protocolo T.Share principal. Vários outros recursos são mantidos como parte do RDP, como os recursos de arquitetura necessários para compatibilidade com vários pontos (sessões com vários participantes). A entrega de dados em vários pontos permite que os dados de um aplicativo sejam entregues em tempo real a vários participantes, como Quadros de Comunicação Virtuais. Ele não precisa enviar os mesmos dados para cada sessão individualmente.

Nesta primeira versão do Terminal Server do Windows, estamos nos concentrando em fornecer comunicações ponto a ponto confiáveis e rápidas (sessão única). Somente um canal de dados é usado na versão inicial do Terminal Server 4.0. No entanto, a flexibilidade do RDP oferece bastante espaço para funcionalidades em produtos futuros.

Um motivo pelo qual a Microsoft decidiu implementar o RDP para fins de conectividade no Windows NT Terminal Server é que ele fornece uma base extensível para criar muitos outros recursos. O RDP fornece 64.000 canais separados para transmissão de dados. No entanto, as atividades de transmissão atuais estão usando apenas um único canal (para dados de teclado, mouse e apresentação).

O RDP foi projetado para ser compatível com muitos tipos diferentes de topologias de Rede, como ISDN e POTS. O RDP também foi projetado para ser compatível com muitos protocolos LAN, como IPX, NetBIOS e TCP/IP. A versão atual do RDP será executada apenas por TCP/IP. Com os comentários dos clientes, a compatibilidade com outros protocolos pode ser adicionada em versões futuras.

A atividade envolvida no envio e no recebimento de dados por meio da pilha RDP é essencialmente a mesma que os padrões de modelo OSI de sete camadas para redes LAN comuns atualmente. Os dados de um aplicativo ou serviço a serem transmitidos são difundidos pelas pilhas de protocolo. Eles são divididos, direcionados para um canal (por meio de MCS), criptografados, encapsulados, enquadrados, empacotados no protocolo de rede e, por fim, endereçados e enviados para o cliente através da conexão. Os dados retornados funcionam da mesma maneira, mas em ordem inversa. O endereço do pacote é removido e, em seguida, ele é desencapsulado, descriptografado e assim por diante. Por fim, os dados são apresentados ao aplicativo para uso. As principais partes das modificações de pilha de protocolo ocorrem entre a quarta e a sétima camadas, em que os dados estão:

  • criptografados
  • encapsulados
  • enquadrados
  • direcionados para um canal
  • priorizados

Um dos principais pontos para desenvolvedores de aplicativos é que, ao usar o RDP, a Microsoft removeu as complexidades para lidar com a pilha de protocolo. Ele permite que eles escrevam aplicativos de 32 bits limpos, bem projetados e com bom funcionamento. Em seguida, a pilha RDP implementada pelo Terminal Server e suas conexões de cliente cuida do restante.

Para obter mais informações sobre como os aplicativos interagem no Terminal Server e o que saber ao desenvolver aplicativos para uma infraestrutura de Terminal Server do Windows, consulte o seguinte white paper:
Otimizando aplicativos para Windows NT Server 4.0, Terminal Server Edition

Quatro componentes que vale a pena discutir na instância da pilha RDP são:

  • o MCSMUX (Multipoint Communication Service)
  • o GCC (Generic Conference Control)
  • Wdtshare.sys
  • Tdtcp.sys

MCSmux e GCC fazem parte da família T.120 da União Internacional de Telecomunicações (ITU). O MCS é composto por dois padrões:

  • T.122: Define os serviços MultiPoint
  • T.125: Especifica o protocolo de transmissão de dados

Controles MCSMux:

  • atribuição de canal por multiplexação de dados em canais virtuais predefinidos dentro do protocolo
  • níveis de prioridade
  • segmentação de dados que estão sendo enviados

Essencialmente, ele abstrai as várias pilhas RDP em uma única entidade, da perspectiva do GCC. O GCC é responsável pelo gerenciamento desses vários canais. O GCC permite a criação e a exclusão de conexões de sessão e recursos de controles fornecidos pelo MCS. Cada protocolo do Terminal Server (atualmente, somente o RDP e o ICA da Citrix são compatíveis) terá uma instância de pilha de protocolo carregada (uma pilha de escuta aguardando uma solicitação de conexão). O driver de dispositivo do Terminal Server coordena e gerencia a atividade do protocolo RDP. Ele é formado por componentes menores:

  • um driver RDP (Wdtshare.sys) para transferência de interface do usuário, compactação, criptografia, enquadramento e assim por diante.
  • um driver de transporte (Tdtcp.sys) para empacotar o protocolo no protocolo de rede subjacente, TCP/IP.

O RDP foi desenvolvido para ser totalmente independente de sua pilha de transporte subjacente, nesse caso, TCP/IP. Isso significa que podemos adicionar outros drivers de transporte para outros protocolos de rede conforme a necessidade de crescimento dos clientes, com pouca ou nenhuma alteração significativa nas partes fundamentais do protocolo. Eles são elementos-chave para o desempenho e a extensão do RDP na rede.