Does remote desktop use TCP?

Turns out that Windows 10 has "TCP Only" enabled by default for it's remote desktop services connections. I've found the registry key that controls this under:

HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services

The "SelectTransport" key was set to "1", which is TCP Only. I've updated it to "2" (either UDP or TCP - but favours UDP) and restarted the Remote Desktop Services on the PC. After this, my RDP connections to the workstation were using UDP and were faster to respond.

Taken from here: Select RDP transport protocols

Does remote desktop use TCP?
Spice (2) flagReport

1 found this helpful thumb_up thumb_down

This article describes the Remote Desktop Protocol (RDP) that's used for communication between the Terminal Server and the Terminal Server Client. RDP is encapsulated and encrypted within TCP.

Applies to:   Windows Server 2012 R2
Original KB number:   186607

RDP is based on, and is an extension of, the T-120 family of protocol standards. A multichannel capable protocol allows for separate virtual channels for carrying the following information:

  • presentation data
  • serial device communication
  • licensing information
  • highly encrypted data, such as keyboard, mouse activity

RDP is an extension of the core T.Share protocol. Several other capabilities are retained as part of the RDP, such as the architectural features necessary to support multipoint (multiparty sessions). Multipoint data delivery allows data from an application to be delivered in real time to multiple parties, such as Virtual Whiteboards. It doesn't require to send the same data to each session individually.

In this first release of Windows Terminal Server, we're concentrating on providing reliable and fast point-to-point (single-session) communications. Only one data channel is used in the initial release of Terminal Server 4.0. However, the flexibility of RDP gives plenty of room for functionality in future products.

One reason that Microsoft decided to implement RDP for connectivity purposes within Windows NT Terminal Server is that it provides an extensible base to build many more capabilities. RDP provides 64,000 separate channels for data transmission. However, current transmission activities are only using a single channel (for keyboard, mouse, and presentation data).

RDP is designed to support many different types of Network topologies, such as ISDN, POTS. RDP is also designed to support many LAN protocols, such as IPX, NetBIOS, TCP/IP. The current version of RDP will only run over TCP/IP. With customer feedback, other protocol support may be added in future versions.

The activity involved in sending and receiving data through the RDP stack is essentially the same as the seven-layer OSI model standards for common LAN networking today. Data from an application or service to be transmitted is passed down through the protocol stacks. It's sectioned, directed to a channel (through MCS), encrypted, wrapped, framed, packaged onto the network protocol, and finally addressed and sent over the wire to the client. The returned data works the same way only in reverse. The packet is stripped of its address, then unwrapped, decrypted, and so on. Finally the data is presented to the application for use. Key portions of the protocol stack modifications occur between the fourth and seventh layers, where the data is:

  • encrypted
  • wrapped
  • framed
  • directed to a channel
  • prioritized

One of the key points for application developers is that, in using RDP, Microsoft has abstracted away the complexities of dealing with the protocol stack. It allows them to write clean, well-designed, well-behaved 32-bit applications. Then the RDP stack implemented by the Terminal Server and its client connections takes care of the rest.

For more information about how applications interact on the Terminal Server, and what to know when developing applications for a Windows Terminal Server infrastructure, see the following white paper:
Optimizing Applications for Windows NT Server 4.0, Terminal Server Edition

Four components worth discussing within the RDP stack instance are:

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

MCSmux and GCC are part of the International Telecommunication Union (ITU) T.120 family. The MCS is made up of two standards:

  • T.122: It defines the multipoint services
  • T.125: It specifies the data transmission protocol

MCSMux controls:

  • channel assignment by multiplexing data onto predefined virtual channels within the protocol
  • priority levels
  • segmentation of data being sent

It essentially abstracts the multiple RDP stacks into a single entity, from the perspective of the GCC. GCC is responsible for management of those multiple channels. The GCC allows the creation and deletion of session connections and controls resources provided by MCS. Each Terminal Server protocol (currently, only RDP and Citrix's ICA are supported) will have a protocol stack instance loaded (a listener stack awaiting a connection request). The Terminal Server device driver coordinates and manages the RDP protocol activity. It's made up of smaller components:

  • an RDP driver (Wdtshare.sys) for UI transfer, compression, encryption, framing, and so on.
  • a transport driver (Tdtcp.sys) to package the protocol onto the underlying network protocol, TCP/IP.

RDP was developed to be entirely independent of its underlying transport stack, in this case TCP/IP. It means that we can add other transport drivers for other network protocols as customers needs for them grow, with little or no significant changes to the foundational parts of the protocol. They're key elements to the performance and extendibility of RDP on the network.

Remote Desktop requires TCP port 3389 to be open. Also, opening UDP port 3389 enables acceleration since RDP 8.0.

It is possible to change the port used by the terminal server (or PC which is accessed), see this Microsoft support article: How to change the listening port for Remote Desktop. The UDP port for accelerated connection uses the same port number as the TCP setting and cannot be changed separately.

UDP acceleration is available since RDP 8.0 (shipped with Windows 8 and Windows Server 2012, available via an update on Windows 7 / Windows Server 2008 R2).

5

RDP im TCP/IP-Protokollstapel:
Anwendung Remote Desktop Protocol
Transport TCP / UDP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI

Das Remote Desktop Protocol (RDP) ist ein proprietäres Netzwerkprotokoll von Microsoft für den Fernzugriff auf Computer. Es ermöglicht die Übertragung grafischer Bildschirminhalte eines entfernten Rechnersystems sowie die Bereitstellung von Peripheriefunktionen eines Arbeitsplatzes (Tastatur, Maus, Audio-Ein-/Ausgabe, Videoeingabe sowie sitzungsbezogenen Datenaustausch wie Textpuffer (engl. Clipboard), Druckerkopplung und Dateisystembereitstellung). Das Protokoll definiert die Zusammenarbeit zwischen einer Serverkomponente (bei MS Windows Remote Desktop Services, vormals Terminal Services) und der Clientkomponente. Der Dienst hört nach Standard auf Port 3389/TCP sowie 3389/UDP. Die Nutzung der UDP-Übertragung wird bei Microsoft ab Windows 8 und Windows Server 2012 hinzugefügt (RDP Version 8), ist aber nicht zwingend erforderlich.

Microsoft lizenzierte von Citrix die Technik Multiwin, um im Jahr 1998 das darauf aufbauende Produkt Windows Terminal Server zu veröffentlichen. Multiwin ermöglichte die gleichzeitige Ausführung mehrerer Benutzersitzungen.

Das Protokoll ICA, das Citrix beim eigenen Produkt WinFrame verwendete, war nicht Bestandteil der Lizenzierungsvereinbarung. Stattdessen entwickelte Microsoft das Protokoll RDP als Erweiterung des Protokolls T.Share (T.Share war die Bezeichnung für das Protokoll T.128 in dessen Entwurfsphase).

Rechnersysteme werden von sogenannten Konsolen bedient, was im Minimum eine Eingabefunktion (Tastatur) und eine Ausgabefunktion (Drucker, Bildschirmgerät) darstellt. Diese Ein-/Ausgabegeräte und ihr Bediener können aber nicht immer physisch am Gerät angeschlossen sein und dort arbeiten. Zur Fernbedienung wurden Möglichkeiten gesucht, wie man diese Funktionen über IP-Netzwerke abbilden kann. Dazu wurde ein Serverdienst entwickelt, der den Bildwiederholspeicher der Grafikkarte auslesen konnte oder ihn simulierte (engl. Framebuffer). Diese Inhalte wurden dann per Netzwerk auf das zugehörige Clientprogramm übertragen und dort typischerweise in eigenem Bildschirmfenster dargestellt. Umgekehrt wurden die Informationen der Peripheriegeräte des Clients per Netzwerkübertragung an die zugehörige Sitzung des Serverdienstes übertragen.

In Konkurrenz zum als Open-Source entwickelten VNC-Protokoll entwickelte Microsoft das proprietäre RDP-Protokoll. Das seit den 1990er Jahren bei UNIX-Betriebssystemen für ähnliche Zwecke weit verbreitete X11-Protokoll hat eine stark abweichende technische Implementierung, aber ein ähnliches Ziel.

RDP besteht aus einer Serverkomponente, einer Clientkomponente und einem verbindenden Netzwerkprotokoll. Arbeiten mehrere Personen gleichzeitig mit mehreren RDP-Clients auf einem System, bezeichnet man dieses als Terminalserver. Aufgrund besonderer technischer Herausforderungen ist die Funktion Terminalserver eine spezielle Betriebsart von Windowsservern.

Der Zugang zu solchen Terminalservern erfolgt entweder mit einem RDP-Clientprogramm oder mit spezialisierten Benutzerendgeräten (engl. ThinClient); die Tastatur, Bildschirmanschluss, Maus und evtl. Mikrofon, Lautsprecher und Kamera für einen eingebauten RDP-Client haben.

Die Bildschirmausgabe einer Sitzung erfolgt auf einem virtuellen Bildschirm (Hauptspeicherbereich) innerhalb des Terminalservers und der Terminalclient erhält lediglich eine Kopie der Ausgabe.

Neben Bildschirmausgaben sowie Tastatur- und Maus-Eingaben kann mit RDP auch die Tonausgabe der Sitzung zum Terminalclient umgeleitet werden. Außerdem ist die Nutzung eines Druckers und der Zugriff auf lokale Speichermedien des Terminalgerätes möglich.

Je nach Einsatzzweck wird der Benutzer des Terminalclients dadurch in die Lage versetzt, einen virtuellen Arbeitsplatz an einem Terminalserver zu bedienen.

RDP basiert auf dem ITU-Protokoll T.120 und ist ein Protokoll der Ebenen 4–7 des OSI-Modells.[1] Es benutzt grundlegend das Transmission Control Protocol (TCP) für den Sitzungsaufbau und die Datenübertragung. Zur Verringerung der Latenzen (z. B. Multimediainhalte, Telefon- und Videokonferenzen) wird nach Möglichkeit ein paralleler Kanal mit User Datagram Protocol (UDP) verwendet.[2] Die Sitzungskommunikation wird gegen unbefugte Kenntnisnahme mit Transport Layer Security (TLS) verschlüsselt.

Als Serverbetriebssysteme für RDP werden Windows NT 4.0, Windows Server 2000, 2003, 2008, 2012, 2016 sowie 2019, NetMeeting, Windows XP, Windows Vista, Windows 7, Windows 8 und Windows 10 verwendet. Daneben gibt es kommerzielle Remote Desktop Software für Windows von Drittanbietern, z. B. Thinstuff XP/VS Server,[3] Thinsoft Winconnect Server[4] und AADS Terminal Server.[5]

RDP wird seit Windows XP standardmäßig für die Fernwartung von Windows-Rechnern (Remoteunterstützung) verwendet.

Auf der Messe CeBIT wurde im März 2005 der erste kommerzielle RDP-Server für Linux präsentiert (Thinstuff LX Server). Diese Software ermöglicht den Einsatz von RDP-Clients zur Verbindung zu Linux-Servern.[6] Heutzutage gibt es eine Vielzahl von Open-Source RDP Servern unter Linux z. B. FreeRDP oder ogon-project.[7]

Die Virtualisierungssoftware VirtualBox von Oracle besitzt einen eigenen RDP-Server, der mit rdesktop und dem Microsoft Client kompatibel ist.

Microsoft-Versionen

4.0–5.2

Seit Windows XP Service-Pack 1 ist die RDP-Version 5.1 verfügbar. Remote Desktop Protocol 5.2 ist eine Komponente von Windows XP Professional SP2.

6.0

Mit der Einführung von RDP Version 6.0, welches ein Bestandteil von Windows Vista ist, wurde der Funktionsumfang zum Teil erheblich verändert sowie die Verschlüsselung überarbeitet. Unter anderem wurden

  • Schriftglättung
  • Unterstützung von Multi-Monitor-Systemen mit maximal 4096 (w) × 2048 (h) Pixeln[8], Aero (Glass) und WPF-Funktionen
  • sowie ein neues Script-System

eingeführt.

7.0

Seit Oktober 2009 ist die RDP-Version 7.0 für Windows XP SP3, Windows Vista SP1 und Windows Vista SP2 verfügbar. Diese Version fügt über 10 neue Funktionen hinzu, welche bei Verbindungen zu Windows 7 bzw. Windows Server 2008 R2 verfügbar sind. Davon stehen 4 Funktionen ab Windows 7 auf dem Client-PC zur Verfügung.[9] Aktuelle Client-Programme sind für Windows XP, Windows Server 2003, Windows Vista, Windows 7 und Mac OS X verfügbar. Die maximale Auflösung pro Monitor bleibt unverändert, darf sich aber jetzt zu 32766 × 32766 Pixel aufsummieren.

8.0–8.1

Diese Version erschien zusammen mit Windows 8 und Windows Server 2012. Ende Oktober 2012 hat Microsoft die Remote Desktop Protocol 8.0 Updates für Windows 7 SP1 und Windows Server 2008 R2 veröffentlicht (auch via Windowsupdate und MS download center (KB2592687) und (KB2574819)), das dort die Nutzung der neuen Funktionen beim Zugriff auf einen Windows Server 2012 sowie auf ein Windows 8 (pro, enterprise) erlaubt.[10] Die Remote-Desktop-Anwendung (mstsc.exe) wurde dabei auf Version 6.2.9200 aktualisiert und unterstützt damit die Remote Desktop Version 8.0. Mit dem Update KB2923545 wurde die Version auf 8.1 erhöht.[11] Die maximale Auflösung pro Monitor erhöht sich auf 8192 × 8192 Pixel.

10

Diese Version ist erstmals im Windows 10 1511 Update sowie in der Windows Server 2016 Technical Preview 4 enthalten und beinhaltet neue Features wie AutoSize, Zoom sowie Verbesserungen der Grafikkompression mit Hilfe von H.264/AVC.[12]

Auf den meisten Windows-Betriebssystemen gibt es bereits einen vorinstallierten Remote Desktop Client von Microsoft (mstsc.exe).

Für Linux, FreeBSD, macOS, AmigaOS, MorphOS, Android, Apple iOS und Chrome OS existieren jeweils Clients, die den Zugriff auf Windows-RDP-Server erlauben.

Auf der CeBIT wurde im Jahr 2000 der erste Java-Client (HOBLink JWT) für RDP präsentiert. Damit wurde mit Hilfe der Java-Plattform der Zugriff auf RDP-Server unter zahlreichen Betriebssystemen ermöglicht.[13] Mittlerweile gibt es weitere kommerzielle Java-Clients, die auf unterschiedlichen Betriebssystemen einsetzbar sind.

Für viele grafische Benutzeroberflächen von UNIX-Betriebssystemen wie GNOME oder KDE sind RDP-Clients als Opensource verfügbar, einer der ersten war xrdp. Eine recht große Aufmerksamkeit hat in letzter Zeit das FreeRDP Projekt bekommen.

Microsoft hat seit einiger Zeit die Spezifikationen des Netzwerkprotokolls und des Clients offengelegt, womit die funktionelle Kompatibilität von Fremdentwicklungen besser sichergestellt werden kann. Da die Anzahl der Clientverbindungen am Microsoftserver lizenzpflichtig ist, spricht das nicht gegen das generelle Geschäftsmodell.

Es gibt zahlreiche Nicht-Microsoft-Implementierungen von Remote Desktop Clients für eine Reihe von Plattformen. Die am häufigsten verbreiteten sind:

  • FreeRDP - Open Source unter Apache license
  • rdesktop für Linux/Unix und Microsoft Windows
  • Remmina für Linux (auf FreeRDP basierend)
  • Thincast Client für Linux, macOS und Windows
  • Remote Framebuffer Protocol
  • NX NoMachine
  • Citrix XenApp
  • Xrdp, ein Open Source RDP Server
  • Fernwartungssoftware
  • Basic Connectivity and Graphics Remoting Specification
  • MSDN: Remote Desktop Protocol
  • best RDP 8.0 experience when connecting to Windows 7
  1. Understanding the Remote Desktop Protocol (RDP). Microsoft, 9. August 2020, abgerufen am 14. Oktober 2020 (englisch). 
  2. Remote Desktop Protocol. Microsoft, 31. Mai 2018, abgerufen am 14. Oktober 2020 (englisch). 
  3. thinstuff.com
  4. thinsoftinc.com
  5. aads-worldwide.hk
  6. Thinstuff 2012: News – Thinstuff. Abgerufen am 24. September 2018. 
  7. David FORT, hardening consulting, David FORT: Ogon opensourcing. 7. April 2018, abgerufen am 13. November 2020 (englisch). 
  8. Remote Desktop Protocol Maximum Supported Resolutions. Microsoft, abgerufen am 1. Januar 2018 (englisch). 
  9. Hinweise zum Clientupdate für Remotedesktopverbindung 7.0 für Remotedesktopdienste (RDS) für Windows XP SP3, Windows Vista SP1 und Windows Vista SP2. Microsoft, 24. September 2011, abgerufen am 26. September 2012. 
  10. Karri Alexion-Tiernan: Microsoft Desktop Virtualization: Taking another step forward with UE-V and VDI. Microsoft, The Windows Blog, 20. Juni 2012, abgerufen am 26. September 2012 (englisch). 
  11. termserv: Remote Desktop Protocol 8.1 Update for Windows 7 SP1 released to web. (Nicht mehr online verfügbar.) Microsoft, 12. November 2013, archiviert vom Original am 25. Juli 2016; abgerufen am 25. Juli 2016 (englisch).   Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/blogs.technet.microsoft.com 
  12. Jeroen van Eesteren: Remote Desktop Protocol (RDP) 10 AVC/H.264 improvements in Windows 10 and Windows Server 2016 Technical Preview. Microsoft, 11. Januar 2016, abgerufen am 29. Juni 2016 (englisch). 
  13. News: HOB at CeBIT 2000. Abgerufen am 24. September 2018. 

Abgerufen von „https://de.wikipedia.org/w/index.php?title=Remote_Desktop_Protocol&oldid=220569340“