Grundlegendes zum Remotedesktopprotokoll (RDP)

In diesem Artikel wird das Remotedesktopprotokoll (RDP) beschrieben, das für die Kommunikation zwischen dem Terminalserver und dem Terminalserverclient verwendet wird. RDP ist gekapselt und innerhalb von TCP verschlüsselt.

Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 186607

Zusammenfassung

RDP basiert auf der T-120-Familie von Protokollstandards und stellt eine Erweiterung dieser dar. Ein mehrkanalfähiges Protokoll ermöglicht separate virtuelle Kanäle für die Übertragung der folgenden Informationen:

  • Präsentationsdaten
  • Serielle Gerätekommunikation
  • Lizenzinformationen
  • hochverschlüsselte Daten, wie Tastatur- und Mausaktivitäten

RDP ist eine Erweiterung des grundlegenden T.Share-Protokolls. Mehrere andere Funktionen sind Bestandteil des RDP, wie z. B. die architektonischen Merkmale, die zur Unterstützung von Multipoint-Sitzungen (Sitzungen mit mehreren Teilnehmern) erforderlich sind. Die Multipoint-Datenbereitstellung ermöglicht die Übermittlung von Daten aus einer Anwendung in Echtzeit an mehrere Teilnehmer, z. B. virtuelle Whiteboards. Es ist nicht erforderlich, die gleichen Daten an jede Sitzung einzeln zu senden.

In dieser ersten Version von Windows-Terminalserver konzentrieren wir uns auf die Bereitstellung einer zuverlässigen und schnellen Punkt-zu-Punkt-Kommunikation (Einzelsitzung). In der ersten Version von Terminalserver 4.0 wird nur ein Datenkanal verwendet. Die Flexibilität von RDP bietet jedoch viel Platz für neue Funktionen in zukünftigen Produkten.

Ein Grund warum Microsoft entschieden hat, RDP für Konnektivitätszwecke innerhalb von Windows NT Terminalserver zu implementieren, ist die Tatsache, dass es eine erweiterbare Grundlage für den Ausbau vieler weiterer Funktionen bietet. RDP verfügt über 64.000 separate Kanäle für die Datenübertragung. Allerdings wird bei den derzeitigen Übertragungsaktivitäten nur ein einziger Kanal verwendet (für Tastatur, Maus und Präsentationsdaten).

RDP wurde entwickelt, um viele verschiedene Arten von Netzwerktopologien zu unterstützen, z. B. ISDN, POTS. RDP wurde außerdem entwickelt, um viele LAN-Protokolle wie z. B. IPX, NetBIOS und TCP/IP zu unterstützen. Die aktuelle Version von RDP läuft nur über TCP/IP. Auf der Grundlage von Kundenfeedback werden in zukünftigen Versionen möglicherweise weitere Protokolle unterstützt.

Der Vorgang des Sendens und Empfangens von Daten über den RDP-Stack entspricht im Wesentlichen den Standards des siebenschichtigen OSI-Modells für die heute üblichen LAN-Netzwerke. Die von einer Anwendung oder einem Dienst zu übertragenden Daten werden durch die Protokoll-Stacks weitergeleitet. Sie werden aufgeteilt, an einen Kanal weitergeleitet (über MCS – Mehrfach verbundene Sitzung), verschlüsselt, umschlossen, gerahmt, in das Netzprotokoll verpackt und schließlich adressiert und über die Leitung an den Kunden gesendet. Die zurückgegebenen Daten funktionieren auf die gleiche Weise, nur in umgekehrter Reihenfolge. Dem Paket wird die Adresse entzogen, dann wird es entpackt, entschlüsselt usw. Schließlich werden die Daten zur Verwendung in der Anwendung bereitgestellt. Wichtige Teile des Protokoll-Stacks werden zwischen der vierten und der siebten Schicht geändert, wo sich die Daten wie folgt befinden:

  • Verschlüsselt
  • umschlossen
  • eingerahmt
  • zu einem Kanal geleitet
  • priorisiert

Einer der wichtigsten Punkte für Anwendungsentwickler ist, dass Microsoft durch die Verwendung von RDP die Komplexität des Umgangs mit den Protokoll-Stacks beseitigt hat. Es ermöglicht ihnen, saubere, gut gestaltete und gut funktionierende 32-Bit-Anwendungen zu schreiben. Der vom Terminalserver und seinen Client-Verbindungen implementierte RDP-Stack kümmert sich dann um den Rest.

Weitere Informationen dazu, wie Anwendungen auf dem Terminalserver interagieren und was bei der Entwicklung von Anwendungen für eine Windows Terminalserver-Infrastruktur zu beachten ist, finden Sie in dem folgenden Whitepaper:
Optimieren von Anwendungen für Windows NT Server 4.0, Terminal Server Edition

Vier erwähnenswerte Komponenten, innerhalb der RDP-Stack-Instanz sind:

  • der Mehrpunkt-Kommunikationsdienst (MCSMUX)
  • das allgemeine Konferenzsteuerelement (GCC)
  • Wdtshare.sys
  • Tdtcp.sys

MCSmux und GCC gehören zur T.120-Familie der International Telecommunication Union (ITU). Das MCS setzt sich aus zwei Standards zusammen:

  • T.122: Es definiert die Multipoint-Dienste
  • T.125: Es gibt das Datenübertragungsprotokoll an

MCSMux-Steuerelemente:

  • Kanalzuweisung durch Multiplexing von Daten auf vordefinierte virtuelle Kanäle innerhalb des Protokolls
  • Prioritätsstufen
  • Segmentierung der gesendeten Daten

Im Wesentlichen werden die mehreren RDP-Stapel aus Sicht der GCC in einer einzigen Entität abstrahiert. GCC ist für die Verwaltung dieser verschiedenen Kanäle verantwortlich. Die GCC ermöglicht das Erstellen und Löschen von Sitzungsverbindungen und steuert Ressourcen, die von MCS bereitgestellt werden. Für jedes Terminal Server-Protokoll (derzeit werden nur RDP und Citrix ICA unterstützt) wird eine Protokollstapelinstanz geladen (ein Listenerstapel, der auf eine Verbindungsanforderung wartet). Der Terminal Server-Gerätetreiber koordiniert und verwaltet die RDP-Protokollaktivität. Er besteht aus kleineren Komponenten:

  • ein RDP-Treiber (Wdtshare.sys) für die Übertragung von Benutzeroberflächen, Komprimierung, Verschlüsselung, Framing usw.
  • ein Transporttreiber (Tdtcp.sys), um das Protokoll in das zugrunde liegende Netzwerkprotokoll TCP/IP zu packen.

RDP wurde entwickelt, um vollständig unabhängig von seinem zugrunde liegenden Transportstapel, in diesem Fall TCP/IP, zu sein. Dies bedeutet, dass wir andere Transporttreiber für andere Netzwerkprotokolle hinzufügen können, wenn die Kundenanforderungen für sie wachsen, mit wenig oder nur unwesentlichen Änderungen an den grundlegenden Teilen des Protokolls. Sie sind wichtige Elemente für die Leistung und Erweiterbarkeit von RDP im Netzwerk.