リモート デスクトップ プロトコル (RDP) について

この記事では、ターミナル サーバーとターミナル サーバー クライアント間の通信に使用されるリモート デスクトップ プロトコル (RDP) について説明します。 RDP は TCP 内でカプセル化され、暗号化されます。

適用対象:  Windows Server 2012R2
元の KB 番号:   186607

概要

RDP はプロトコル標準の T-120 ファミリに基づいており、拡張機能です。 マルチチャネル対応プロトコルを使用すると、次の情報を転送するための個別の仮想チャネルを使用できます。

  • プレゼンテーション データ
  • シリアル デバイス通信
  • ライセンス情報
  • キーボード、マウスアクティビティなどの高度に暗号化されたデータ

RDP は、コア T.Share プロトコルの拡張機能です。 他のいくつかの機能は、マルチポイント (マルチパーティ セッション) をサポートするために必要なアーキテクチャ機能など、RDP の一部として保持されます。 マルチポイント データ配信を使用すると、アプリケーションからのデータを仮想ホワイトボードなどの複数の関係者にリアルタイムで配信できます。 同じデータを各セッションに個別に送信する必要はない。

Windows ターミナル Server のこの最初のリリースでは、信頼性の高い高速なポイント対ポイント (シングル セッション) 通信の提供に集中しています。 ターミナル サーバー 4.0 の初期リリースでは、1 つのデータ チャネルだけが使用されます。 ただし、RDP の柔軟性により、将来の製品の機能に十分な余裕があります。

Microsoft がターミナル サーバー内で接続目的で RDP を実装することを決定した 1 つの理由Windows NT、より多くの機能を構築するための拡張可能なベースを提供する点です。 RDP は、データ転送用に 64,000 の個別のチャネルを提供します。 ただし、現在の送信アクティビティは、1 つのチャネルのみを使用します (キーボード、マウス、プレゼンテーション データの場合)。

RDP は、ISDN、POTS など、さまざまな種類のネットワーク トポロジをサポートするように設計されています。 RDP は、IPX、NetBIOS、TCP/IP などの多くの LAN プロトコルをサポートするように設計されています。 現在のバージョンの RDP は、TCP/IP 経由でのみ実行されます。 お客様からのフィードバックにより、将来のバージョンで他のプロトコルサポートが追加される可能性があります。

RDP スタックを介したデータの送受信に関するアクティビティは、基本的に、今日の一般的な LAN ネットワークの 7 層 OSI モデル標準と同じです。 送信するアプリケーションまたはサービスからのデータは、プロトコル スタックを介して受け渡されます。 このセクションは、チャネル (MCS 経由) に送信され、暗号化され、ラップされ、フレーム化され、ネットワーク プロトコルにパッケージ化され、最終的にアドレス指定され、クライアントに送信されます。 返されるデータは、逆方向でのみ同じように動作します。 パケットはアドレスから削除され、ラップ解除、復号化などされます。 最後に、使用するアプリケーションにデータが表示されます。 プロトコル スタックの変更の重要な部分は、データが次の第 4 層と第 7 層の間で行われます。

  • 暗号化
  • ラップ
  • framed
  • チャネルに向けられる
  • 優先順位付け

アプリケーション開発者の重要なポイントの 1 つは、RDP を使用する際に、Microsoft がプロトコル スタックを扱う複雑さを抽象化した点です。 これにより、適切に設計された、動作の良い 32 ビット アプリケーションをクリーンに書き込む事が可能です。 その後、ターミナル サーバーによって実装された RDP スタックとそのクライアント接続は、残りの部分を管理します。

ターミナル サーバーでのアプリケーションの操作方法、および Windows ターミナル Server インフラストラクチャ用のアプリケーションを開発する際に知る必要がある情報の詳細については、次のホワイト ペーパーを参照してください。
サーバー 4.0 Windows NTサーバー エディション用のアプリケーションの最適化

RDP スタック インスタンス内で説明する価値のある 4 つのコンポーネントは次のとおりです。

  • マルチポイントコミュニケーション サービス (MCSMUX)
  • 汎用会議コントロール (GCC)
  • Wdtshare.sys
  • Tdtcp.sys

MCSmux と GCCは、国際電気通信連合 (ITU) T.120 ファミリの一部です。 MCS は、次の 2 つの標準ででなされています。

  • T.122: マルチポイント サービスを定義します
  • T.125: データ転送プロトコルを指定します

MCSMux コントロール:

  • プロトコル内の定義済みの仮想チャネルにデータを多重化するチャネル割り当て
  • 優先度レベル
  • 送信されるデータのセグメンテーション

基本的に、複数の RDP スタックを 1 つのエンティティに抽象化します。この要素は、GCC。 GCC複数のチャネルの管理を担当します。 このGCCは、セッション接続の作成と削除を可能にし、MCS によって提供されるリソースを制御します。 各ターミナル サーバー プロトコル (現在、RDP と Citrix の ICA だけがサポートされています) には、プロトコル スタック インスタンスが読み込まれます (接続要求を待っているリスナー スタック)。 ターミナル サーバー のデバイス ドライバーは、RDP プロトコルアクティビティを調整して管理します。 これは、小さなコンポーネントで構成されています。

  • UI 転送、圧縮Wdtshare.sys暗号化、フレーミングなどのための RDP ドライバー (Wdtshare.sys)。
  • トランスポート ドライバー (Tdtcp.sys) を使用して、基になるネットワーク プロトコル TCP/IP にプロトコルをパッケージ化します。

RDP は、基になるトランスポート スタック (この場合は TCP/IP) から完全に独立して開発されました。 つまり、他のネットワーク プロトコル用の他のトランスポート ドライバーは、お客様が必要とする成長に応じて追加できます。プロトコルの基礎部分に大きな変更を加える必要はありません。 これらは、ネットワーク上の RDP のパフォーマンスと拡張性の重要な要素です。