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!