Noções básicas sobre o protocolo RDP (Remote Desktop Protocol)

Este artigo descreve o RDP (Remote Desktop Protocol) usado para comunicação entre o Terminal Server e o Terminal Server Client. O RDP é encapsulado e criptografado dentro do TCP.

Número original do KB: 186607

Resumo

O RDP é baseado e é uma extensão da família T-120 de padrões de protocolo. Um protocolo compatível com multicanal permite canais virtuais separados para transportar as seguintes informações:

  • Dados da apresentação
  • Comunicação de dispositivo serial
  • Informações de licenciamento
  • dados altamente criptografados, como teclado, atividade do mouse

O RDP é uma extensão do protocolo principal T.Share. Vários outros recursos são mantidos como parte do RDP, como os recursos de arquitetura necessários para dar suporte a vários pontos (sessões com vários participantes). A entrega de dados multiponto permite que os dados de um aplicativo sejam entregues em tempo real a várias partes, como quadros brancos virtuais. Não é necessário enviar os mesmos dados para cada sessão individualmente.

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

Um dos motivos pelos quais a Microsoft decidiu implementar o RDP para fins de conectividade no Windows NT Terminal Server é que ele fornece uma base extensível para criar muito mais 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 oferecer suporte a muitos tipos diferentes de topologias de rede, como ISDN, POTS. O RDP também foi projetado para suportar muitos protocolos de LAN, como IPX, NetBIOS, TCP/IP. A versão atual do RDP só será executada em TCP/IP. Com comentários do cliente, outro suporte a protocolo pode ser adicionado em versões futuras.

A atividade envolvida no envio e recebimento de dados por meio da pilha RDP é essencialmente a mesma que os padrões do modelo OSI de sete camadas para redes LAN comuns hoje. Os dados de um aplicativo ou serviço a ser transmitido são transmitidos pelas pilhas de protocolo. Ele é seccionado, direcionado a um canal (por meio do MCS), criptografado, encapsulado, emoldurado, empacotado no protocolo de rede e, finalmente, endereçado e enviado pela rede para o cliente. Os dados retornados funcionam da mesma maneira, só que ao contrário. O pacote é despojado de seu endereço e, em seguida, desencapsulado, descriptografado e assim por diante. Finalmente, os dados são apresentados ao aplicativo para uso. As principais partes das modificações da pilha de protocolos ocorrem entre a quarta e a sétima camadas, onde os dados são:

  • encrypted
  • wrapped
  • Enquadrado
  • direcionado para um canal
  • Priorizados

Um dos pontos-chave para os desenvolvedores de aplicativos é que, ao usar o RDP, a Microsoft abstraiu as complexidades de lidar com a pilha de protocolos. Ele permite que eles escrevam aplicativos de 32 bits limpos, bem projetados e bem comportados. Em seguida, a pilha RDP implementada pelo Terminal Server e suas conexões de cliente cuidam do resto.

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

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

  • o Serviço de Comunicação Multiponto (MCSMUX)
  • o GCC (Controle de Conferência Genérica)
  • Wdtshare.sys
  • Tdtcp.sys

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

  • T.122: Define os serviços multiponto
  • 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 dos dados 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 exclusão de conexões de sessão e controla os recursos fornecidos pelo MCS. Cada protocolo do Terminal Server (atualmente, apenas RDP e ICA da Citrix são suportados) terá uma instância de pilha de protocolo carregada (uma pilha de ouvinte aguardando uma solicitação de conexão). O driver de dispositivo do Terminal Server coordena e gerencia a atividade do protocolo RDP. É composto de 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, neste caso TCP/IP. Isso significa que podemos adicionar outros drivers de transporte para outros protocolos de rede à medida que as necessidades dos clientes aumentam, com pouca ou nenhuma alteração significativa nas partes fundamentais do protocolo. Eles são elementos-chave para o desempenho e a extensibilidade do RDP na rede.