Remote Desktop Protocol

Remote Desktop Protocol （リモート デスクトップ プロトコル、RDP）は、リモート デスクトップ サービス（RDS、旧称：ターミナル サービス）が稼動しているサーバにクライアントが接続する、リモートデスクトップ用の多重チャネルプロトコルである。リモート デスクトップ接続（RDC、旧称：ターミナル サービス接続）として TCP ポート 3389 および UDP ポート 3389 を使用して接続する。

**特徴**
RDP 5.2で以下の機能をサポートしている。
*24ビットの色表現のサポート（81516 ビットもサポート）
*128ビットまでの RC4 暗号化のサポート
*TLS のサポート（暗号化のみ）
*ローカル上でリモート上のサウンド再生
*ファイル システム リダイレクションのサポート
*プリンタのサポート
*シリアルポートとパラレルポートの接続をサポート
*クリップボードの共有
RDP 6.0では、以下の強化がされた。
*シームレス ウィンドウのサポート
*32ビットカラーのサポート（Windows Server 2008 より24ビットが廃止になり、32ビットを代わりに使用する必要あり）
*1600×1200以上の画面解像度のサポート
*TLS 1.0の暗号化に加えて認証もサポート
*複数モニタのサポート
*帯域幅の改善
*ClearTypeやAero Glassテーマのサポート
*Windows Presentation Foundationアプリケーションのリモーティングのサポート
*IIS 7.0を通してのHTTPS接続のサポート
RDP 7.1では、以下の強化がされた。
*RemoteFX

**歴史**
RDPの前身は、米国シトリックス・システムズが開発したWinFrameと呼ばれる技術である。WinFrameは、Windows NTを複数の端末から複数のユーザが同時利用できるようにする拡張機能で、1995年に発表され、シトリックス・システムズの主力商品となった。
この「ターミナル サービス」は、WinFrame同様、複数のユーザが複数のクライアント端末からサーバとして動作しているWindows NT機に接続して利用できるサービスで、この機能によってWindowsはリモートからも操作できるOSになった。「ターミナル サービス」は、その後「リモート デスクトップ」に名称を変更し、Windows XP以降ではOSの標準機能として組み込まれることになった。
RDPのバージョンは1.0から3.0は存在せず4.0から開始されており、以降のバージョンもWindowsのバージョンと合わせている。
Version 4.0
ITU-Tプロトコル (T.128) を基に、Windows NT 4.0 Terminal Serverのターミナル サービスとして搭載された。
Version 5.x
;Version 5.0
:Windows 2000 Serverのターミナル サービスとして搭載され、ローカル プリンタのサポートやネットワーク帯域幅の使用の改善を行った。
;Version 5.1
:Windows XPに搭載され、24ビット カラーのサポートやサウンドの再生をサポートした。
;Version 5.2
:Windows Server 2003に搭載され、コンソールモード接続やセッション ディレクトリとローカル リソース マッピングをサポートした。
Version 6.x
;Version 6.0
:Windows Vista, Windows XP SP2, Windows Server 2003 SP1/SP2, Windows Embededd CE 6.0 R2に搭載され、多くの機能強化が含まれた。ネットワークレベル認証、マルチモニタなど。
;Version 6.1
:Windows Vista SP1, Windows Server 2008, Windows XP SP3に搭載された。「TS RemoteApp」「TS Gateway」「TS EasyPrint」機能が追加された。
Version 7.x
;Version 7.0
:Windows 7, Windows Server 2008 R2に搭載された。本バージョンよりサーバ側の名称が「ターミナル サービス」から「リモート デスクトップ サービス」に変更になった。デスクトップ コンポジションを Windows Vista Professional, Windows 7 Professionalやそれ以上で有効にすれば、Windows Aeroを利用できる。しかし、Windows AeroのAero GlassはWindows 8で廃止されたため、Windows Vista, 7でしか利用できない。また、Aero Glassはサーバ／クライアントが同じバージョンでないと利用できない。また当初、DirectXのクライアントレンダリングを行う計画があったが、リリース直前に廃止になった。言葉の定義として動画のデコードはクライアントレンダリングに含めないとするならば、クライアントレンダリングしているものはRDP 4.0からやっているGDIのクライアントレンダリングのみであり、それ以外は静止画や動画で転送している。
;Version 7.1
:Windows 7 SP1, Windows Server 2008 R2 SP1に標準搭載された。RemoteFXが追加された。RemoteFXによりHyper-Vとの組み合わせでGPU仮想化、USBリダイレクションが利用可能になった。
Version 8.x
;Version 8.0
:Windows 8やWindows Server 2012から標準搭載された。Windows 7 SP1, Windows Server 2008 R2 SP1もWindows Updateすることで利用可能となっている。TCPに加えてUDP （ポート3389）も併用するようになった。パフォーマンスの改善や、マルチタッチ対応などRemoteFXの強化が行われた。
;Version 8.1
:Windows 8.1やWindows Server 2012 R2から標準搭載された。Windows 7 SP1, Windows Server 2008 R2 SP1もWindows Updateすることで利用可能となっている。
Version 10.x
;Version 10.0
:Windows 10に標準搭載された。

**Windows Server のライセンス**
リモート デスクトップを使用するには、基本的には以下の Windows Server のライセンスが必要である。なお、括弧内は演算子の優先順位を表現する意味とする。- 仮想化なし：CAL + RDS CAL- 仮想化あり：CAL + RDS CAL + (VDA or SA)
これらはWindows Serverのライセンスであり、RDP以外のプロトコルを使用しても必要となる。上記のルールを基本に様々な例外条項が存在するが、内容が複雑なため詳細はマイクロソフトのホームページを参照してほしい。
仮想化なしとは、リモート・セッションで使う場合のことを指す。仮想化ありとはHyper-V + RemoteFXなどで使用する場合のことを指す。
各々の略語の意味は以下の通りとなる。- CAL: Client Access License- RDS: Remote Desktop Service- VDA: Virtual Desktop Access- SA: Service Assurance

**マイクロソフト以外による実装**
RDPのクライアント、サーバにはマイクロソフト以外により開発されたサブセットの製品も多数存在する。一例としては、オープンソースのコマンドラインのクライアントrdesktopがLinux/Unix、またWindowsオペレーティングシステムに提供されている。GUIのクライアントも多数存在する。一例として rdesktopをベースにした tsclient と KRDCがあり、Macintosh用には CoRD がある。Microsoft client for OS Xと異なり、CoRDはウインドウ1つにすべてのリモートセッションをタブで表示するようになっており、 ZDNetのレビューでは混乱することが少ないと評価されている。
別の2011年に行われたレビューでは CoRD の接続の安定性はマイクロソフトの OS Xクライアントに勝るとしている。
2009年に rdesktop より分岐して FreeRDPプロジェクトが立ち上がり、よりモジュラー化されたコードと、既知の各種問題の解決、および新機能の実装を目標に掲げた。FreeRDP はコンソールアプリのクライアント xfreerdp を備え、RDP6で登場したシームレスウインドウを実装する。その他 GTKアプリケーションの Remminaが存在する。
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の接続については無償で利用することが出来る。

**RDPを使ったトリック**
VMwareを使ってWindows（ホスト）上で別の仮想Windowsマシン（ゲスト）を走らせるとき、VMware上のゲストのデスクトップを直接使うより、このゲストに同じホストからRDPでアクセスしたほうが画面更新が圧倒的に速いことがある。これは、VMwareのゲストが一旦ハードウェアに依存しない（従って最適化されておらず遅い）仮想画面ドライバに出力してから、それをVMwareを経由してホストの画面ドライバに渡すのに対して、RDPは画面の更新をRDP経由で直接ホストのハードウェアに最適化された画面ドライバに渡すからと考えられる。。

**関連項目**
リモートデスクトップ
*リモート デスクトップ サービス
*rdesktop
*FreeRDP
*xrdp
*Citrix WinFrame

**参照**

**外部リンク**
 Remote Desktop Services - TechNet- Remote Desktop Services (Windows) - MSDN- MS-RDPBCGR: Remote Desktop Protocol: Basic Connectivity and Graphics Remoting - プロトコルの仕様書- RDP - The Wireshark Wiki - プロトコルの解析- 2X Software 日本語サイト 2X Software 日本語サイト 有償のサーバー製品、無償のクライアントを提供している-  2XApplicationServerXG  日本代理店 T4U株式会社- Remmina SourceForgeのプロジェクト- FreeRDP 公式サイト