Why PCoIP is Ideal for Remote Virtual Desktops
It’s not a secret that remote desktop protocols have been lacking to date when compared with local execution on client PCs. However the centralized management and security is compelling and has often made up for this shortcoming. VMware has been hard at work addressing this deficiency – we aim to bring all the operational benefits of virtualized desktops to our customers without having to compromise on the richness of the user experience. PCoIP is a remote graphics protocol originally designed by our partner, Teradici, and available today in hardware implementations. VMware has been diligently working with Teradici to create a virtualized implementation of this robust, innovative protocol and deliver the premier remote desktop experience for VMware View. I thought it would be useful to spend some blog space discussing why we believe this protocol and our joint implementation architecture delivers the ideal remote graphics experience for virtual desktops.
PCoIP is a server-centric protocol, meaning that we are doing the majority of the graphics rendering and processing on powerful servers. Compressed bitmaps or frames are transmitted to the remote client. This division of labor has some ideal properties for static content. First it’s making use of the powerful processing capabilities of multi-core servers such as Intel’s Nehalem to render the graphics. More importantly, by transmitting compressed bitmaps or frames, we can adjust the protocol in real time to account for the available bandwidth and latency of the communications channel. On a WAN connection with typically less bandwidth and higher latency, a less crisp image is produced quickly, typically with 0.2-0.5 bits/pixel producing a grainy, but still recognizable image. Kind of like an analog TV… This rapidly sharpens with increasing clarity and detail visibility with each succeeding frame until the image is perceptually lossless. This is a high quality image at a total of approximately 1-3 bits/pixel. Think of it as now Digital HD to stick with our TV analogy. On a higher performance LAN, the images become sharp instantly and will build to complete lossless at 5-15 bits per pixel. Think of it as Blu-Ray!
This is very different than protocols that
make use of more client side processing to draw an object – those are all or
nothing. And best of all, this compression algorithm is applied dynamically; the
architecture doesn’t pre-compress content so we can pick exact bit-rates on the
fly for almost every frame – this is really powerful. Think about
situations where the available bandwidth can fluctuate and become oversubscribed.
If you try to send drawing primitives to the client for it to render
using local hardware, you generally consume a fixed amount of bandwidth and
lose the ability to adapt to bit-rate availability changes.
The PCoIP architecture in our server-side Virtual Machines is a multi-layer architecture enabled by a Windows mechanism called DevTap and VMware Virtual Graphics Hardware in the guest OS. The remote bitmap display is rendered, encoded and sent at a low-level of the stack via our virtual SVGA driver, while we make use of the DevTap interface at higher levels of the graphics stacks that recognize the types of objects present in different areas of the screen and hence in the resulting bitmap. If we just did frame differencing in software, the overhead would be quite high. However with virtual hardware, we can carve up the screen into a stream of regions that have changed so you only have to encode those updated regions. Furthermore we may even have information about what is in that region based on what GDI calls were use to render it (text vs. video vs. blit graphics) and that can save a lot of effort in the categorization path. This allows the application of different codecs or graphics processing engines to render the different screen objects. Desktop screens are not one size fits all and this technique allows the division of multi-media content, static images and type from each other and the application of the ideal codec for each along with the tailored quality heuristics. The robust VMware Virtual NIC technology rounds this all out by enabling independent channels and even the separation of control and data streams. And of course, PCoIP still makes use of multi-media redirection for the most efficient and direct processing of streaming media directly on the client.
The transport used for PCoIP is also unique and tailored for
a rich user experience. It makes use of UDP datagrams, not TCP. TCP is a
generic virtual circuit protocol, meaning that the transport layer is making sure
that packets are received and that they are delivered to the application in the
specific order they were sent. Lost or dropped packets will hold up the
delivery of subsequent packets and there is a specific acknowledgment
sequence. This is a great mechanism and is widely used across the internet for
many applications. However, the most convenient, generic mechanism is not
necessarily ideal or optimized for a specific application and in the case of
remote desktops it will not deliver the richest user experience. If you have
packet loss, is it best to ensure that every last bit gets to the client and in
the order sent by asking for and waiting on retransmissions? Is all
content on the screen of equal importance (where is the mouse? What has
focus?)? or what codecs are most resilient to loss? By controlling the
flow control policies in layer 7, the remote desktop centric application layer,
and differing the algorithms and policies based on heuristics such as these,
PCoIP delivered via UDP datagrams is able to make optimal use of the bandwidth
available to deliver the richest interactive experience possible across a range
of remote desktop scenarios.
And of course, all of this will be available later this year and with various flavors of optional hardware acceleration! Our advanced PCoIP software encoding will be good enough for the majority of users – and that might be the target audience for your initial roll-out. However knowing that hardware acceleration is an option provides an upgrade path for power-users who may need it and gives much greater confidence in deploying VMware View as your standard for Desktop Virtualization.
The remote desktop experience has fallen short in some
dimensions to date and for certain classes of users. I hope I’ve given you some
insights into exactly how and why VMware and Teradici are addressing these
shortcomings together and why View with PCoIP will be the best remote desktop
experience available anywhere!
Thank you for posting this information. It does show insight into the realm of desktop virtualization and PCoIP. As an SE who is trying to get his company moving in the desktop virtualization space, it has been difficult for people to grasp the information you are presenting. We are a medical research organization, and the immediate reaction to virtualizing desktops is that they will not perform well due to the high intensive graphics that deal with on a daily basis, i.e. DNA sequence images, multi-gig images and movies, etc. I am hoping that the new version of View will encompass the obstacles we have seen without PCoIP technologies.
Posted by: JoeA | 10/14/2009 at 06:42 AM
I'm not certain UDP is the best option, sure you can make a thinner packet but you lose the guaranteed data. This scares me for medical purposes. What if i'm looking at an Xray image and the UDP packet is lost on the way to my client. I could miss a very important portion of the xray.
Posted by: MaxP | 10/15/2009 at 08:30 AM
Good observation and question, let me clarify. TCP means that the transport takes care of the delivery in a generic manner. If a packet is lost, all subsequent packets on that connection are held in the transport layer until the missing one is retransmitted and received. This is not the best behavior for a graphics protocol. With UDP, the graphics layer controls the management of lost packets. However, I did not mean to imply that by using UDP any lost packets and the image fragments they represent are not retransmitted. The retransmit is simply handled in a graphics knowledgeable way, so that the rest of the image painting doesn't come to a halt waiting for it. Rest assured that PCoIP converges to a fully lossless image and with complete resolution. Hope this clarifies!
Posted by: Scott Davis | 10/15/2009 at 09:42 AM
The concept of retransmission on the application layer makes a lot of sense for interactive and multimedia content.
I'm very keen to try out PCoIP in View 4. The question of how PCoIP handles congestion is very high on my 'laundry list'.
Regarding MaxP's question on how to guarantee the transmission of data that under no circumstance can be lost, I think that application layer retransmission can(!) even be better than transport layer retransmission, because the application layer is closer to the user. Therefore PCoIP theoretically can guarantee that all data has traversed the network and no data is lost, because it handles the retransmission itself rather then relying on retransmission features of the underlying layers (link and transport)
Christoph
Posted by: Christoph Wegener | 10/17/2009 at 10:25 PM
Thanks for the update on the progress at VMware and Teradici. I've got the latest 2.1 firmware loaded on my Dell FX100 devices, and they are pointed at my VMware Connection Server. We're eagerly awaiting an update to View to allow these connections. Any guidance on the timeline?
Posted by: Gregory Wester | 10/20/2009 at 05:27 PM
I would also like to know about the timeline for when View will be supported under vSphere infrastructure.
Posted by: Fran F | 10/23/2009 at 10:02 PM
We tried PCoIP in various technical builds to date, and to bluntly honest: we are very, very disappointed. What we saw in terms of performance for multimedia, latency resistance and responsiveness was worse than all our exspectations and a harsh contrats to VMware marketing mayhem. Side by side with XenDesktop 4 and ICA-HDX, this is a lightyears difference on any network still. Our target audience is global comanies with a worldwide model, hence PCoIP and RDP can not be used so far.
Recognizing the UDP character of PCoIP makes hings even worse. How are we supposed to build global romaing, stateful detection, dynamic policy managed sysems while still lacking secure gateway connections with PCoIP ?
Where is your serious vision to deliver a truly stunning global desktop experience ?
We will take another look on your updates, but by know we feel it's unfortunately morekless a waste of time for next 12 month at least.
Sorry !
Posted by: Thomas Mueller | 10/24/2009 at 07:59 AM
I support a college of engineering diciplines. Anyone have PCoIP experience delivering EDA tools to the desktop?
Posted by: Sean Staples | 10/27/2009 at 01:01 PM
Re: Thomas Mueller post - I’m not sure what you are basing your conclusions about the View user experience over PCoIP on, since our technology is currently in limited preview beta with on-going tuning and optimization work in progress prior to its first commercial release. In any event, to reiterate, PCoIP was designed from the ground up to deliver virtual desktops, which is unique in the industry. By coupling Teradici’s technologies around progressive build and distinct codecs for different screen elements along with VMware’s knowledge of what’s being placed where on the desktop and the relative priorities by virtue of our virtual GPU technology, we have a solution that allows for an optimized desktop experience across a wide variety of clients and network conditions. We are very excited about bringing this technology to market and letting our many current and future customers experience for themselves the rich user environment it provides. Thanks.
Posted by: Scott Davis | 10/27/2009 at 03:49 PM
Yes but is Vmware going to charge extra for these new features like they did with vSphere 4 Enterprise Plus money grab? Also when is it going to be released? This is holding up a lot of companies from being able to move to vSphere 4.
Posted by: Johnk | 11/02/2009 at 02:23 PM
@Johnk If those companies are smart, they don't wait for a paper release but go for Citrix. They can do this stuff for years already, and I've saw a 3D demo a couple of weeks back that VMWare could only dream of. Dont get me wrong, I like vSPhere, but this PCoIP stuff is too little, too late, and one can only imagine the scalability of a hardware to software conversion. Why was it hardware in the first place? Exactly, to get it to perform without stressing the main cpu. All those single VM demo's look very nice, but I never saw someone open up the performance monitor while they demo a movie... I wonder why...
Posted by: Patrick | 11/02/2009 at 03:49 PM
@Patrick
In VMware's testing of the beta version of PC over IP Beta code versus RDP and ICA, generally PCoIP had LOWER CPU requirements than ICA. You can see their test results in the VMworld session DV3260. Just download the slides or watch the presentation at VMworld.com.
Or you can see my write up of it here:
http://vmjunkie.wordpress.com/2009/09/02/vmworld-session-dv3260-protocol-benchmarking-and-comparisons/
Posted by: Justin | 11/02/2009 at 04:49 PM
@Patrick, have a look her for exactly that...someone opening Task Manager while running PCoIP on to 4 hi res screens:
http://www.youtube.com/watch?v=APVP0DUu34c
Posted by: Charlie | 11/04/2009 at 07:24 AM