Mastering VMware Horizon 7(Second Edition)
上QQ阅读APP看书,第一时间看更新

PCoIP - delivering the desktop experience

One of the most important elements of a virtual desktop solution is how you get the screen contents of the virtual desktop machine running in the data center delivered to the user's end-point device, which they are connecting from. To do this, VMware Horizon View uses the PC-over Internet Protocol (PCoIP). In this section, we are going to cover what the PCoIP protocol is and how it works in delivering the end-user experience.

Introducing PCoIP

PCoIP is a high-performance display protocol designed and developed by Teradici ( http://www.teradici.com/ ). It has been purpose-built to deliver virtual desktops over the LAN or WAN and to provide end users with the best, feature-rich desktop experience.

With PCoIP, the entire screen content is compressed, encrypted, and encoded in the data center before transmitting only the pixels across a standard IP network to PCoIP-enabled endpoint devices (such as zero clients) that use the hardware-based Teradici Terra 1 or Terra 2 chipset, or to Windows, Mac, or tablet devices running the software-based View Client. The key is that no data ever leaves the data center.

PCoIP supports high-resolution, full-frame rates, 3D graphics, HD media, multiple displays (up to four, depending on the endpoint device), and high-definition audio. As we discussed earlier in this chapter, PCoIP also supports USB peripheral redirection.

Unlike some legacy display protocols that were built just to deliver applications, PCoIP was designed and built from the ground up, specifically to deliver a full desktop experience, taking advantage of Teradici-based zero clients with an integrated graphics acceleration technology built into the silicon on these devices, or software-based clients.

PCoIP ensures the best user experience, regardless of the end-user location, whether that is on the LAN or even across a WAN. It dynamically adapts based on the network conditions and user policy.

In the next sections, we are going to cover how PCoIP renders images and how it adapts dynamically to the network environment.

PCoIP host rendering

So, let's start by taking a look at how the different rendering models work. With a desktop PC, the applications, operating system, and graphics drivers work together locally to deliver the best performance on that PC. This is local client rendering.

If we move to a client rendering model, we now introduce a network between the components. Images are now sent across the network to the endpoint device, where they are processed locally using the resources of that endpoint device. Using this model introduces degradation of the application performance as it travels across the network from the host server to the client, and you would still need a fairly powerful Windows-based endpoint device.

So what about host rendering? In a host rendering scenario, the desktop PC environment that we previously described is pretty much the same. However, the PC is now running as a virtual desktop machine. This means that applications will work as they normally would on a physical desktop PC and the rendering is done at the host end. PCoIP then works by encrypting just the pixels on the virtual desktop machine running the View Agent, and then sends them to the endpoint device running the View Client or to a zero client device running Teradici hardware, where the decoding takes place.

Using this model, you can easily deploy lower-powered, non-Windows devices such as zero clients, as the applications have no dependencies on the endpoint on which they run.

Multi-codec support with PCoIP

If you look at how an image is built up and how the content is rendered, some of the components of the image might require the use of different codecs to display the image, depending on what type of image it is. For example, you would use a different codec to display text from one that you would use to display videos.

PCoIP has the ability to analyze these different media image components and apply the appropriate codec for each pixel before compressing, encrypting, and sending the pixels to the endpoint device for decoding. Working in this way allows PCoIP to transmit the pixels more efficiently, which ultimately means less bandwidth and better performance. It also means that you can control the image content quality that is being delivered. We will talk about it in the next section.

Controlling the image quality

The quality of the image that PCoIP delivers can be controlled through the AD Group Policy or SmartPolicies to deliver the appropriate image quality, depending on the use case. The image is built progressively from what is termed a perceptually lossless image to a lossless image, with the latter delivering a high-fidelity, pixel-perfect image. For example, would you really need to build a pixel-perfect image if you were just running Microsoft Word?

The important thing to remember is that the quality of the image will have an impact on the bandwidth required to deliver it. We will cover these controls in more detail in Online ChapterFine-Tuning the End-User Experience available at https://www.packtpub.com/sites/default/files/downloads/5657_FineTuningtheEndUserExperience.pdf .

Dynamic networking capabilities

To manage bandwidth use, PCoIP's adaptive encoders automatically adjust image quality on congested networks, based on the limits you set in the policy, and then resume maximum image quality when the network is no longer congested. As PCoIP doesn't transfer any data and just the pixels, it makes sense to use a real-time User Datagram Protocol (UDP), rather than a TCP protocol (the same protocol as Voice over IP (VoIP), to ensure a responsive and interactive remote-user experience. This reduces the overall bandwidth requirement and delivers the best interactive user experience, based on the network bandwidth available at the time.

UDP does not employ error-checking or correction, and therefore removes any overheads in processing the checking and correcting. The lack of retransmission delays that you would find with a TCP protocol means that it is ideal for streaming media. For the end user experience, these delays translate to jerky movements, most commonly experienced when watching video content.

Other display protocols

There are a couple of other mainstream desktop protocols. The main protocols available today are Microsoft Remote Desktop Protocol (RDP) and Citrix Independent Computing Architecture (ICA). These are described in more detail in the following sections.

Remote Desktop Protocol (RDP)

The RDP protocol was developed for Microsoft and is used primarily to connect to a remote machine, server, desktop, or virtual machine using TCP IP. RDP is now more commonly known as Remote Desktop Connection. You probably use it on a daily basis to connect remotely to your server infrastructure.

When you connect to the remote desktop or machine, you are essentially connecting to a terminal service component, which then relays the screen content back to the client, along with key strokes and mouse movements.

Independent Computing Architecture (ICA) protocol

ICA is another display protocol that is used by Citrix in its products XenDesktop and XenApp. It is similar in design to other protocols, in that it is used to deliver screen content and keyboard strokes to a client device over a TCP IP network connection.

You connect using an ICA client, such as Citrix Receiver, installed on your endpoint device. This loads an ICA file containing the details of the remote system you are connecting to and any properties to apply to that session.

What about HDX? HDX is not actually a protocol or a technology, but rather a marketing brand for High Definition Experience (HDX). HDX encompasses a number of Citrix technologies that describe the entire user experience rather than concentrating on just the protocol element. You will also see some sub-brands fall under HDX, such as HDX MediaStream, HDX RealTime, and HDX 3D.

PCoIP offloading with the Teradici Apex 2800

In addition to the software solutions discussed in the previous sections, Teradici also offer a server offload card called the Apex 2800. This PCI card is installed into the servers that are hosting the virtual desktops.

The first thing to say about this card is that it is not a Graphics Processing Unit (GPU) card. I often hear some confusion around this, and users assume that, by adding an Apex card, you would get the OpenGL and DirectX capabilities, but this is not the case. You might well improve the overall experience and performance, but you will not be adding additional GPU features and functionalities.

The objective of this card is purely to take the load from the CPU in the host when processing image encoding operations. Offloading image encoding to a hardware encoding card reduces peaks in CPU utilization, ensuring a consistent user experience across all users, regardless of task and activity level. In cases where the CPU is being starved of cycles, the offload function enables applications to run more smoothly. If you compare it to something such as TCP Offload Engine or the TOE card used in the IP storage world for iSCSI, it's much better to use hardware-based cards than it is to use software initiators.

Freeing up CPU cycles and the overall load on the servers' CPU will potentially result in better consolidation ratios of the virtual desktops, that is, more virtual desktops per host server. Typically, you will see an increase of 1.2 times.

Teradici host card for physical PCs

Teradici also has a solution for physical workstations to leverage the PCoIP protocol, the PCoIP Remote Workstation card. This card is not actually for virtual desktop sessions; instead, it allows you to add a Teradici host card into a physical workstation, connect to your workstation, and send remote graphics, audio, and USB from the workstation to a PCoIP-enabled endpoint device, such as a zero client. Think of it as picking up your desktop PC and putting it in the data center, and then running a very long video, mouse, and keyboard cable to it. This use case is typically deployed for high-powered rack mount workstations or PCs.

In reality, the pixels are sent over the network, so where does that fit in with Horizon View? Quite simply, the connection to the physical desktop is managed using Horizon View and the Connection Server to broker the session in the same way you would connect to a virtual desktop machine.