There are so many remote desktop software in the market. You can get a list from this wiki page.
Here, I just want to summarize about MS technology. As we know, we have used remote desktop connection (mstsc.exe, which was named "terminal service client") on our pcs for remoting to another pc. In LAN, it can do a good job. A fact is that the remote desktop display is rendered on client. Now MS is going to release Remote FX which is an enhancement to RDP (remote desktop protocol, base of Remote desktop connection) to give below new features:
- remote desktop display is rendered on the host. So put more computing on the host, which is in the cloud computing direction.. So downgrade client device requirement for getting a excellent desktop experience.
- Can allow GPU be shared by VMs. VM can't visit GPU for now (if my understanding is correct.)
- Will benefit desktop virtualization a lot. Citrix will enhance its XenDesktop by making use of RemoteFX technology. We will see how much it can enhance the experience.
For those who don't know, RemoteFX is an enhancement to RDP's graphics remoting capabilities. The goal of RemoteFX is to deliver the full modern Windows desktop experience—including multiple displays, Aero, and multimedia—to all types of client devices including very thin, sub-$100 thin clients. RemoteFX does this via a technique known as host-based rendering, which means the entire final composited screen image is rendered on the remote host and then compressed and sent down to the client. (In effect this moves more computing into the datacenter and lessens the importance on specific client devices or client specs.)
Fundamentally RemoteFX is just a codec (like H.264) that's been written for real-time encodes. (H.264, on the other hand, is meant for content that can be pre-rendered not in real time, like TV shows and movies.)
There will be several initial ways RemoteFX will function once it's released, including:
- Full software-based encoders on the host.
- a GPU/CPU-based encoder (with extensions to Hyper-V to let GPUs be shared between multiple VMs).
- A custom chip-based encoder, either on a plug-in card or built-in to the host.