RDP ベースの Windows のリモート クライアント デスクトップ ユーティリティを使用して、ラップトップからデスクトップに接続しています。TeamViewer などのリモート コントロール アプリケーションよりもはるかに高速で、見た目も優れています。
好奇心から、なぜ RDP が優れているのでしょうか?
ありがとうございました。
リモコン製品の性能を決定する主な要因は 2 つあります。
画面上で変更が発生したことをどのように検出しますか?
RC 製品の中には、画面をタイルに分割し、画面フレーム バッファーを定期的にスキャンして、変更が発生したかどうかを判断するものがあります。
他のものは、OS に直接フックします。以前は、これはビデオ ドライバーをインターセプトすることによって行われていました。これで、OS がすべての描画操作を「ミラーリング」するミラー ドライバーを作成できるようになりました。これは、明らかに、はるかに高速です。
それらの変更をどのようにネットワーク経由で送信するのでしょうか?
一部の製品 (VNC など) は、変更された領域のビットマップを常に送信します。
その他は、変更の原因となった実際の操作を送信します。たとえば、座標 (x,y) でフォント f を使用してテキスト文字列 s をレンダリングするか、指定されたパラメーター セットを使用してベジェ曲線を描画し、もちろんビットマップをレンダリングします。これも、はるかに高速です。
どちらの場合も、RDP はより高速な (そして実装がより難しい) 手法を使用します。実際に使用するプロトコルは T.128 だと思います。
通常、ビットマップは圧縮されます。一部の製品 (Carbon Copy など) では、パフォーマンスをさらに引き出すために、接続の両側で同期されたビットマップ キャッシュも維持されます。
RDP は、低レベルの画面描画操作の送信を可能にする特定のプロトコルです。また、画面上のピックスマップ エンティティも認識します。たとえば、アイコンがいつ描画されるかを理解し、クライアント側で (通常は非可逆圧縮形式で) キャッシュします。
他のソフトウェアには、この低レベルのアクセスはありません。画面が変更されるのを待ってから、画面または変更された領域のキャプチャを再送信します。画面が変わるたびに、ピックスマップ表現を送信する必要があります。これは一般的に非可逆圧縮であるため、見た目も悪くなります。