Remote Desktop Protocol Remote Desktop Protocol is a proprietary protocol
developed by Microsoft, which provides a user with a graphical interface to connect to another
computer over a network connection.
The user employs RDP client software for this purpose, while the other computer must run
RDP server software.
Clients exist for most versions of Microsoft Windows (including Windows Mobile), Linux,
Unix, OS X, iOS, Android, and other modern operating systems.
RDP servers are built into Windows operating systems; an RDP server for Unix and OS X also
exists.
By default, the server listens on TCP port 3389 and UDP port 3389.
Microsoft currently refers to their official RDP server software as Remote Desktop Connection,
formerly "Terminal Services Client".
The protocol is an extension of the ITU-T T.128 application sharing protocol.
History Every Windows version beginning with Windows
XP includes an installed Remote Desktop Connection (RDC) ("Terminal Services") client (mstsc.exe)
whose version is determined by that of the operating system or last applied Windows Service
Pack.
The Terminal Services server is supported as an official feature on Windows NT 4.0 Terminal
Server Edition, Windows 2000 Server, all editions of Windows XP except Windows XP Home Edition,
Windows Server 2003, Windows Home Server, on Windows Fundamentals for Legacy PCs, in
Windows Vista Ultimate, Enterprise and Business editions, Windows Server 2008 and Windows
Server 2008 R2 and on Windows 7 Professional and above.
Microsoft provides the client required for connecting to newer RDP versions for downlevel
operating systems.
Since the server improvements are not available downlevel, the features introduced with each
newer RDP version only work on downlevel operating systems when connecting to a higher version
RDP server from these older operating systems, and not when using the RDP server in the older
operating system.
Version 4.0 Based on the ITU-T T.128 application sharing
protocol (during draft also known as "T.share") from the T.120 recommendation series, the
first version of RDP (named version 4.0) was introduced by Microsoft with "Terminal Services",
as a part of their product Windows NT 4.0 Server, Terminal Server Edition.
The Terminal Services Edition of NT 4.0 relied on Citrix's MultiWin technology, previously
provided as a part of Citrix WinFrame atop Windows NT 3.51, in order to support multiple
users and login sessions simultaneously.
Microsoft required Citrix to license their MultiWin technology to Microsoft in order
to be allowed to continue offering their own terminal services product, then named Citrix
MetaFrame, atop Windows NT 4.0.
The Citrix provided DLLs included in Windows NT 4.0 Terminal Services Edition still carry
a Citrix copyright rather than a Microsoft copyright.
Later versions of Windows integrated the necessary support directly.
The T.128 application sharing technology was acquired by Microsoft from UK software developer
Data Connection Limited.
Version 5.0 This version was introduced with Windows 2000
Server, added support for a number of features, including printing to local printers, and
aimed to improve network bandwidth usage.
Version 5.1 This version was introduced with Windows XP
Professional, included support for 24-bit color and sound.
The client is available for Windows 2000, Windows 9x, Windows NT 4.0.
With this version, the name of the client was changed from Terminal Services Client
to Remote Desktop Connection.
Version 5.2 This version was introduced with Windows Server
2003, included support for console mode connections, a session directory, and local resource mapping.
It also introduces Transport Layer Security (TLS) 1.0 for server authentication, and to
encrypt terminal server communications.
This version is built into Windows XP Professional x64 Edition and Windows Server 2003 x64 & x86
Editions.
Version 6.0 This version was introduced with Windows Vista
and incorporated support for Windows Presentation Foundation applications, Network Level Authentication,
multi-monitor spanning and large desktop support, and support for TLS 1.0 connections.
Version 6.0 client is available for Windows XP SP2, Windows Server 2003 SP1/SP2 (x86 and
x64 editions) and Windows XP Professional x64 Edition.
Microsoft Remote Desktop Connection Client for Macintosh OS X is also available with
support for Intel and PowerPC Mac OS versions 10.4.9 and greater.
Version 6.1 This version was released in February 2008
and is included with Windows Server 2008, as well as with Windows Vista Service Pack
1.
The client is included with Windows XP Service Pack 3.
It is also installable through KB952155 for Windows XP SP2.
In addition to changes related to how a remote administrator connects to the "console", this
version incorporates new functionality introduced in Windows Server 2008, such as connecting
remotely to individual programs and a new Terminal Services Easy Print driver—a new
client-side printer redirection system that makes the client's full print capabilities
available to applications running on the server, without having to install print drivers on
the server.
Version 7.0 This version was released to manufacturing
in July 2009 and is included with Windows Server 2008 R2, as well as with Windows 7.
With this release, the server name was also changed from Terminal Services to Remote Desktop
Services.
This version incorporates new functionality such as Windows Media Player redirection,
bidirectional audio, true multimonitor support, Aero glass support, enhanced bitmap acceleration
(which improves user experience over high latency network connections), Easy Print redirection,
Language Bar docking.
The RDP 7.0 client is available on Windows XP SP3 and Windows Vista SP1/SP2 through KB969084.
RDP 6.1 client and RDP 7.0 client are not supported on Windows Server 2003 x86 and Windows
Server 2003 / Windows XP Professional x64 editions.
RDP 7.0 clients also do not support connecting to terminal servers running Windows 2000 Server.
Most RDP 7.0 features like Aero glass remoting, bidirectional audio, Windows Media Player
redirection, true multiple monitor support and Remote Desktop Easy Print are only available
in Windows 7 Enterprise or Ultimate editions.
Version 7.1 This version appeared in Windows 7 SP1 and
Server 2008 R2 SP1.
It adds RemoteFX functionality.
Version 8.0 This version appeared in Windows 8 and Windows
Server 2012.
This version incorporates new functionality such as Adaptive Graphics (progressive rendering
and related techniques), automatic selection of TCP or UDP as transport protocol, multi
touch support, DirectX 11 support for vGPU, USB redirection supported independently of
vGPU support, etc.
A "connection quality" button is displayed in the RDP client connection bar for RDP 8.0
connections; clicking on it provides a bit of further information about connection, including
whether UDP is in use or not.
The RDP 8.0 client and server components are also available as an add-on for Windows 7
SP1.
The RDP 8.0 client is also available for Windows Server 2008 R2 SP1, but the server components
are not.
The add-on requires the DTLS protocol to be installed as prerequisite.
Even after installing the updates, for the RDP 8.0 protocol to be usable between Windows
7 machines, an extra configuration step is needed using the Group Policy editor.
A new feature in RDP 8.0 is limited support for RDP session nesting; it only works for
Windows 8 and Sever 2012 though, Windows 7 and Sever 2008 (even with the RDP 8.0 update)
do not support this feature.
The "shadow" feature from RDP 7, which allowed an administrator to monitor (snoop) on a RDP
connection has been removed in RDP 8.
The Aero Glass remoting feature (applicable to Windows 7 machines connecting to each other)
has also been removed in RDP 8.
Server 2012 can support RDC 6.0 or later.
Version 8.1 This version appeared in Windows 8.1 and Windows
Server 2012 R2.
A RDP 8.1 client update exists for Windows 7 SP1 as well, but unlike the RDP 8.0 update
for Windows 7, it does not add a RDP 8.1 server component to Windows 7.
Furthermore, if RDP 8.0 server functionality is desired on Windows 7, the KB 2592687 (RDP
8.0 client and server components) update must be installed before installing the RDP 8.1
update.
Support for session shadowing was added back in RDP version 8.1.
This version also fixes some visual glitches with Microsoft Office 2013 when running as
a RemoteApp.
Version 8.1 of the RDP protocol also enables a "restricted admin" mode.
Logging into this mode only requires knowledge of the hashed password, rather than of its
plaintext, therefore making a pass the hash attack possible.
Microsoft has released an 82-page document explaining how to mitigate against this type
of attack.
Features 32-bit color support.
8-, 15-, 16-, and 24-bit color are also supported.
128-bit encryption, using the RC4 encryption algorithm, as of Version 6.
Audio Redirection allows users to run an audio program on the remote desktop and have the
sound redirected to their local computer.
File System Redirection allows users to use their local files on a remote desktop within
the terminal session.
Printer Redirection allows users to use their local printer within the terminal session
as they would with a locally or network shared printer.
Port Redirection allows applications running within the terminal session to access local
serial and parallel ports directly.
The clipboard can be shared between the remote computer and the local computer.
The following features were introduced with the release of RDP 6.0 in 2006:
Seamless Windows: Remote applications can run on a client machine that is served by
a Remote Desktop connection.
It is available since RDP 6.
Remote Programs: Application publishing with client-side file type associations.
Terminal Services Gateway: Enables the ability to use a front-end IIS server to accept connections
(over port 443) for back-end Terminal Services servers via an https connection, similar to
how RPC over https allows Outlook clients to connect to a back-end Exchange 2003 server.
Requires Windows Server 2008 Network Level Authentication
Support for remoting the Aero Glass Theme (or Composed Desktop), including ClearType
font smoothing technology.
Support for remoting of Windows Presentation Foundation applications: Compatible clients
that have.NET Framework 3.0 support will be able to display full Windows Presentation
Foundation effects on a local machine.
Rewrite of device redirection to be more general-purpose, allowing a greater variety of devices to be
accessed.
Fully configurable and scriptable via Windows Management Instrumentation.
Improved bandwidth tuning for RDP clients.
Support for Transport Layer Security (TLS) 1.0 on both server and client ends (can be
negotiated if both parties agree, but is not mandatory in a default configuration of any
version of Windows).
Multiple monitor support for allowing one session to use multiple monitors on the client
(disables desktop composition) The following features were introduced with
the release of RDP 7.1 in 2010: RemoteFX: RemoteFX provides virtualized GPU
support and host side encoding and is being shipped as part of Windows Server 2008 R2
SP1.
Security issues The RDP protocol in its default configuration
is vulnerable to a man-in-the-middle attack.
Administrators can enable transport layer encryption to mitigate this risk.
RDP sessions are also susceptible to in-memory credential harvesting, which can be used to
launch pass the hash attacks.
In March 2012, Microsoft released an update for a critical security vulnerability in the
RDP protocol.
The vulnerability allowed a Windows computer to be compromised by unauthenticated clients
and computer worms.
RDP client version 6.1 can be used to reveal the names and pictures of all users on the
RDP Server (no matter which Windows version) in order to pick one, if no username is specified
for the RDP connection.
Non-Microsoft implementations There are numerous non-Microsoft implementations
of RDP clients and servers that implement subsets of the Microsoft functionality.
For instance, the open-source command-line client rdesktop is available for Linux/Unix
and Microsoft Windows operating systems.
There are many GUI clients, like tsclient and KRDC, that are built on top of rdesktop;
CoRD is such a client for the Macintosh.
Unlike the Microsoft client for OS X, CorRD uses a single tabbed window for all remote
sessions, which a ZDNet reviewer found less confusing.
Another 2011 review found CoRD's connections more stable than Microsoft's OS X client.
(Despite what its sourceforge announcement page says, CoRD works with OS X 10.9 well.)
In 2009, rdesktop was forked as FreeRDP, a new project aiming at modularizing the code,
addressing various issues, and implementing new features.
FreeRDP comes with its own command-line-client xfreerdp, which supports Seamless Windows
in RDP6.
There’s also a GTK-Application named Remmina.
An open-source implementation of a Remote Desktop Protocol server on Unix is FreeRDP
and xrdp.
The Windows' Remote Desktop Connection client can be used to connect to a server.
Proprietary RDP client solutions such as rdpclient are available as a stand-alone application
or embedded with client hardware.
A new access paradigm, browser-based access, has enabled users to access Windows desktops
and applications on any RDP hosts, such as Microsoft Remote Desktop (RDS) Session Hosts
(Terminal Services) and virtual desktops.
There are now solutions that run directly within a browser, for example 2X_Software
ApplicationServerXG and 2X Client which is a free RDP client.
There is also a so-called VRDP protocol used in the VirtualBox virtual machine implementation
by Oracle.
This protocol is compatible with all RDP clients, such as that provided with Windows but, unlike
the original RDP protocol, can be configured to accept unencrypted and password unprotected
connections, which may be useful in secure and trusted networks, such as home or office
LANs.
By default, Microsoft's RDP server refuses connections to user accounts with empty passwords
(but this can be changed with the Group Policy Editor).
External and guest authorization options are provided by VRDP as well.
It does not matter which operating system is installed as a guest because VRDP is implemented
on the virtual machine (host) level, not in the guest system.
The proprietary VirtualBox Extension Pack is required.
Patents Microsoft considers necessary that third-party
implementations license the relevant RDP patents from them.
As of February 2014, the extent to which open source clients meet this requirement is unknown.