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

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

元の KB 番号: 186607

まとめ

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

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

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

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

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

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

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

  • encrypted
  • wrapped
  • フレーム
  • チャネルに送る
  • 優先 順位

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

ターミナル サーバー上でのアプリケーションの対話方法と、Windows ターミナル Server インフラストラクチャ用のアプリケーションを開発するときに知っておくべきことの詳細については、次のホワイト ペーパーを参照してください。
Windows NT Server 4.0、ターミナル サーバー エディション用のアプリケーションの最適化

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

  • マルチポイント 通信サービス (MCSMUX)
  • 汎用会議コントロール (GCC)
  • Wdtshare.sys
  • Tdtcp.sys

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

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

MCSMux コントロール:

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

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

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

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