Remote Desktop Protocol (リモート デスクトップ プロトコル、RDP)は、リモート デスクトップ サービス(RDS、旧称:ターミナル サービス)が稼動しているサーバにクライアントが接続する、リモートデスクトップ用の多重チャネルプロトコルである。リモート デスクトップ接続(RDC、旧称:ターミナル サービス接続)として TCP ポート 3389 および UDP ポート 3389 を使用して接続する。
RDP 5.2で以下の機能をサポートしている。
RDP 6.0では、以下の強化がされた。
RDP 7.1では、以下の強化がされた。
RDPの前身は、米国シトリックス・システムズが開発したWinFrameと呼ばれる技術である。WinFrameは、Windows NTを複数の端末から複数のユーザが同時利用できるようにする拡張機能で、1995年に発表され、シトリックス・システムズの主力商品となった。
この「ターミナル サービス」は、WinFrame同様、複数のユーザが複数のクライアント端末からサーバとして動作しているWindows NT機に接続して利用できるサービスで、この機能によってWindowsはリモートからも操作できるOSになった。「ターミナル サービス」は、その後「リモート デスクトップ」に名称を変更し、Windows XP以降ではOSの標準機能として組み込まれることになった。
RDPのバージョンは1.0から3.0は存在せず4.0から開始されており、以降のバージョンもWindowsのバージョンと合わせている。
リモート デスクトップを使用するには、基本的には以下の Windows Server のライセンスが必要である。なお、括弧内は演算子の優先順位を表現する意味とする。
これらはWindows Serverのライセンスであり、RDP以外のプロトコルを使用しても必要となる。上記のルールを基本に様々な例外条項が存在するが、内容が複雑なため詳細はマイクロソフトのホームページを参照してほしい。
仮想化なしとは、リモート・セッションで使う場合のことを指す。仮想化ありとはHyper-V + RemoteFXなどで使用する場合のことを指す。
各々の略語の意味は以下の通りとなる。
RDPのクライアント、サーバにはマイクロソフト以外により開発されたサブセットの製品も多数存在する。一例としては、オープンソースのコマンドラインのクライアントrdesktopがLinux/Unix、またWindowsオペレーティングシステムに提供されている。GUIのクライアントも多数存在する。一例として rdesktopをベースにした tsclient と KRDCがあり、Macintosh用には CoRD がある[4]。Microsoft client for OS Xと異なり、CoRDはウインドウ1つにすべてのリモートセッションをタブで表示するようになっており、 ZDNetのレビューでは混乱することが少ないと評価されている[5]。
別の2011年に行われたレビューでは CoRD の接続の安定性はマイクロソフトの OS Xクライアントに勝るとしている[6]。
2009年に rdesktop より分岐して FreeRDPプロジェクトが立ち上がり、よりモジュラー化されたコードと、既知の各種問題の解決、および新機能の実装を目標に掲げた[7]。FreeRDP はコンソールアプリのクライアント xfreerdp を備え、RDP6で登場したシームレスウインドウを実装する。その他 GTKアプリケーションの Remmina[8]が存在する。
Remote Desktop Protocolのサーバのオープンソースな実装としては、Unix では FreeRDP と xrdp が存在する。Windowsのリモート デスクトップ クライアントからこのサーバに接続することもできる。プロプライエタリなRDPクライアント製品である rdpclient などは、スタンドアローンのアプリケーションとしても、クライアントのハードウェアに組み込む形態でも提供される。 新しいアクセス方式である、ブラウザー経由でのアクセスでは、2X Softwareの2XApplicationServerおよび2X Clientという無料クライアントがある。
2X ClientはUIにタブ切り替えを設けたクライアントで、独自のプロトコルによるサーバ「2X ApplicationServer」「2X SecureRemoteDesktop」と並んでMicrosoft RDPをサポートしている。2Xのサーバー製品を持たないユーザーも、RDPの接続については無償で利用することが出来る。
VMwareを使ってWindows(ホスト)上で別の仮想Windowsマシン(ゲスト)を走らせるとき、VMware上のゲストのデスクトップを直接使うより、このゲストに同じホストからRDPでアクセスしたほうが画面更新が圧倒的に速いことがある。これは、VMwareのゲストが一旦ハードウェアに依存しない(従って最適化されておらず遅い)仮想画面ドライバに出力してから、それをVMwareを経由してホストの画面ドライバに渡すのに対して、RDPは画面の更新をRDP経由で直接ホストのハードウェアに最適化された画面ドライバに渡すからと考えられる。[独自研究?]。