Noções básicas sobre o Protocolo de Área de Trabalho Remota (RDP)

Este artigo descreve o RDP (Remote Desktop Protocol) usado para comunicação entre o Servidor de Terminal e o Cliente do Servidor de Terminal. O RDP é encapsulado e criptografado em TCP.

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

Resumo

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

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

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 dar suporte a vários pontos (sessões de várias partes). A entrega de dados de vários pontos permite que os dados de um aplicativo sejam entregues em tempo real a várias partes, como Quadro de Quadro de Trabalho Virtual. Não é necessário enviar os mesmos dados para cada sessão individualmente.

Nesta primeira versão do Terminal do Windows Server, 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 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 dar suporte a vários tipos diferentes de topologias de rede, como ISDN, POTS. O RDP também foi projetado para dar suporte a muitos protocolos LAN, como IPX, NetBIOS, TCP/IP. A versão atual do RDP só será executado por TCP/IP. Com os comentários do cliente, outros suportes de protocolo podem ser adicionados 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 de modelo OSI de sete camadas para rede LAN comum hoje em dia. Os dados de um aplicativo ou serviço a serem transmitidos são passados através das pilhas de protocolo. Ele é sectado, direcionado para um canal (por meio de MCS), criptografado, empacotado, emoldurado, empacotado no protocolo de rede e, finalmente, endereçado e enviado por meio do fio para o cliente. Os dados retornados funcionam da mesma forma somente em sentido inverso. O pacote é despojado de seu endereço, descriptografado, descriptografado e assim por diante. Por fim, os dados são apresentados ao aplicativo para uso. Partes principais das modificações de pilha de protocolo ocorrem entre a quarta e a sétima camadas, onde os dados são:

  • criptografado
  • wrapped
  • emoldurado
  • direcionado para um canal
  • priorizado

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

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

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

  • o Serviço de Comunicação multiponto (MCSMUX)
  • controle de conferência genérico (GCC)
  • Wdtshare.sys
  • Tdtcp.sys

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

  • T.122: Define os serviços de vários pontos
  • T.125: Especifica o protocolo de transmissão de dados

Controles MCSMux:

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

Ele essencialmente abstrai as várias pilhas RDP em uma única entidade, da perspectiva do GCC. 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 controles de recursos fornecidos pelo MCS. Cada protocolo de Servidor de Terminal (atualmente, apenas RDP e ICA do Citrix são suportados) terão uma instância de pilha de protocolo carregada (uma pilha de ouvintes aguardando uma solicitação de conexão). O driver de dispositivo do Servidor de Terminal coordena e gerencia a atividade de protocolo RDP. Ele é feito 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, nesse caso, TCP/IP. Isso significa que podemos adicionar outros drivers de transporte para outros protocolos de rede conforme os clientes precisam para eles crescerem, 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.