Informatie over het Remote Desktop Protocol (RDP)

In dit artikel wordt het Remote Desktop Protocol (RDP) beschreven dat wordt gebruikt voor communicatie tussen de terminalserver en de terminalserver-client. RDP wordt ingekapseld en versleuteld binnen TCP.

Van toepassing op: Windows Server 2012 R2
Origineel KB-nummer: 186607

Samenvatting

RDP is gebaseerd op en is een uitbreiding van de T-120-serie protocolstandaarden. Een protocol dat geschikt is voor meerdere kanalen maakt het mogelijk om afzonderlijke virtuele kanalen te gebruiken voor het dragen van de volgende informatie:

  • presentatiegegevens
  • seriële apparaatcommunicatie
  • licentiegegevens
  • zeer versleutelde gegevens, zoals toetsenbord, muisactiviteit

RDP is een uitbreiding van het T.Share-kernprotocol. Verschillende andere mogelijkheden blijven behouden als onderdeel van het RDP, zoals de architecturale functies die nodig zijn om MultiPoint (sessies met meerdere partijen) te ondersteunen. Dankzij MultiPoint-gegevenslevering kunnen gegevens van een toepassing in realtime worden geleverd aan meerdere partijen, zoals virtuele whiteboards. Het is niet nodig om dezelfde gegevens afzonderlijk naar elke sessie te verzenden.

In deze eerste release van Windows Terminal Server concentreren we ons op het leveren van betrouwbare en snelle point-to-point (enkele sessie) communicatie. Er wordt slechts één gegevenskanaal gebruikt in de eerste release van Terminal Server 4.0. De flexibiliteit van RDP geeft echter voldoende ruimte voor functionaliteit in toekomstige producten.

Een van de redenen waarom Microsoft besloot RDP te implementeren voor connectiviteitsdoeleinden binnen Windows NT Terminal Server, is dat het een uitbreidbare basis biedt om veel meer mogelijkheden te bouwen. RDP biedt 64.000 afzonderlijke kanalen voor gegevensoverdracht. De huidige overdrachtsactiviteiten maken echter slechts gebruik van één kanaal (voor toetsenbord-, muis- en presentatiegegevens).

RDP is ontworpen om veel verschillende soorten netwerktopologieën te ondersteunen, zoals ISDN, POTS. RDP is ook ontworpen ter ondersteuning van veel LAN-protocollen, zoals IPX, NetBIOS, TCP/IP. De huidige versie van RDP wordt alleen uitgevoerd via TCP/IP. Met feedback van klanten kan in toekomstige versies andere protocolondersteuning worden toegevoegd.

De activiteit die betrokken is bij het verzenden en ontvangen van gegevens via de RDP-stack is in wezen hetzelfde als de zevenlaagse OSI-modelstandaarden voor de huidige gewone LAN-netwerken Gegevens van een toepassing of service die moeten worden verzonden, worden doorgegeven via de protocolstacks. Het wordt in secties verdeeld, naar een kanaal geleid (via MCS), versleuteld, verpakt, framed, verpakt in het netwerkprotocol en uiteindelijk geadresseerd en via de kabel naar de client verzonden. De geretourneerde gegevens werken op dezelfde manier, alleen in omgekeerde richting. Het pakket wordt ontdaan van zijn adres, dan uitgepakt, gedecodeerd, enzovoort. Ten slotte worden de gegevens voor gebruik aan de toepassing gepresenteerd. De belangrijkste wijzigingen in de protocolstack vinden plaats tussen de vierde en de zevende laag, waar de gegevens zich bevinden:

  • versleuteld
  • verpakt
  • framed
  • doorverwezen naar een kanaal
  • prioriteit

Een van de belangrijkste punten voor applicatieontwikkelaars is dat Microsoft door het gebruik van RDP de complexiteit van het omgaan met de protocolstack heeft weggenomen. Hiermee kunnen ze schone, goed ontworpen, goed werkende 32-bits toepassingen schrijven. Vervolgens zorgt de RDP-stack die is geïmplementeerd door de terminalserver en de bijbehorende clientverbindingen voor de rest.

Raadpleeg de volgende whitepaper voor meer informatie over de interactie tussen toepassingen op de terminalserver en wat u moet weten bij het ontwikkelen van toepassingen voor een Windows Terminal Server-infrastructuur:
Toepassingen optimaliseren voor Windows NT Server 4.0, Terminal Server Edition

Vier onderdelen die het bespreken waard zijn binnen de RDP-stackinstantie zijn:

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

MCSmux en GCC maken deel uit van de International Telecommunication Union (ITU) T.120-familie. De MCS bestaat uit twee standaarden:

  • T.122: hiermee worden de MultiPoint-services gedefinieerd
  • T.125: hiermee wordt het protocol voor gegevensoverdracht opgegeven

MCSMux-besturingselementen:

  • kanaaltoewijzing door gegevens te multiplexen naar vooraf gedefinieerde virtuele kanalen binnen het protocol
  • prioriteitsniveaus
  • segmentatie van gegevens die worden verzonden

In wezen worden de meerdere RDP-stacks geabstraheerd in één entiteit, vanuit het perspectief van de GCC. GCC is verantwoordelijk voor het beheer van deze meerdere kanalen. Met de GCC kunnen sessieverbindingen worden gemaakt en verwijderd en worden de bronnen beheerd die door MCS worden geleverd. Van elk terminalserver-protocol (momenteel worden alleen RDP en Citrix's ICA ondersteund) wordt een exemplaar van een protocolstack geladen (een listenerstack die wacht op een verbindingsaanvraag). Het stuurprogramma van het terminalserver-apparaat coördineert en beheert de RDP-protocolactiviteit. Het bestaat uit kleinere onderdelen:

  • een RDP-stuurprogramma (Wdtshare.sys) voor UI-overdracht, compressie, versleuteling, framing, enzovoort.
  • een transportstuurprogramma (Tdtcp.sys) om het protocol te verpakken in het onderliggende netwerkprotocol, TCP/IP.

RDP is ontwikkeld om volledig onafhankelijk te zijn van de onderliggende transportstack, in dit geval TCP/IP. Dit betekent dat we andere transportstuurprogramma's voor andere netwerkprotocollen kunnen toevoegen naarmate de behoeften van de klanten daaraan toenemen, met weinig of geen significante wijzigingen in de fundamentele delen van het protocol. Het zijn belangrijke elementen voor de prestaties en uitbreidbaarheid van RDP op het netwerk.