- Back to Home »
- PCoIP – What Is PC-over-IP and How Does It Work?
Tuesday, February 28, 2012
PC-over-IP
Overview
PC-over-IP (PCoIP) is a display protocol that allows complete compression of a desktop which is then displayed through a zero client device over a standard IP network. While there are several display protocols that exist in desktop virtualization such as RDP, ICA and RGS, PCoIP has become the most prevalent protocol for display back of a virtual desktop.
Does PC-over-IP sound vaguely familiar? It might remind you of Voice-over-IP (VoIP) and there are definitely similarities. While Voice-over-IP delivers voice over a standard IP network, that is where it ends. PCoIP not only delivers full audio it also delivers USB and the full user display. How is it different from RDP (Remote Desktop Protocol) or ICA (Independent Computing Architecture)? That's a great question, because PCoIP is not the only display protocol. Let's take a look at some of the other display protocols and how they compare to PCoIP.
Remote Desktop Protocol (RDP)
With Remoted Desktop Protocol (RDP) you have a terminal server on the opposite end that acts as a controller to the client's screen. The client is basically getting a drawn representation of the hosts desktop display. RDP reaches back to the terminal server which sends a refresh on 10 second intervals so long as there is activity at the client. Every 10 seconds is a pretty hard rate to stick to if you aren't constantly typing away or moving the mouse. When the client end has no activity for 10 seconds the terminal server decides to cut the refresh rate in half in order to ensure bandwidth is not being wasted between terminal server and client on the network. As an administrator, you can attest to this issue when having multiple RDP sessions open but they keep timing out and the window closes. You must then re-establish the session when it times out, and it can become a tedious chore.
Independent Computing Architecture (ICA)
Independent Computing Architecture (ICA) is another display protocol that is used by several vendors, most prominently used and promoted by Citrix. It was specifically created to deliver graphical displays and keyboard/mouse input over a standard IP network. When using ICA, you are connecting to a Citrix server via an ICA client on your desktop. ICA clients are UNIX based and they allow you to connect to Windows clients on a Citrix server. Both RDP and ICA are good display protocols for desktops over an IP network. However, PCoIP has been widely adopted and seems to be the leader in remote display protocols.
Why PCoIP?
Now that we know what the other protocols are, why would we choose PCoIP? The most compelling reason to go with PCoIP is that it uses the UDP protocol which is much better suited for streaming media and display back situations. UDP (User Datagram Protocol) is not concerned with how the data ends up on the receiving end, it's only concerned with speed, this is why streaming media is sometimes not good quality. RDP uses TCP as it's protocol, which is widely used across the Internet.The difference being, TCP is concerned with how the data is being received. TCP will actually ask the receiving client if it's received all of the packets sent successfully. If the client isn't receiving what they should, they can reply back to stop sending or they can narrow the amount that they are receiving as to process it better. UDP just keeps sending and is much speedier simply because there is no acknowledgement from the receiver.
Along with UDP being the protocol, PCoIP leverages host rendering. The image is rendered on the host to provide the framework in which the host can transmit only the pixels across the network without being concerned about the applications or responses from the client. In best case scenarios, zero clients are used to receive the pixels and decode them essentially eliminating display latency.
PCoIP also has settings that you can configure to manage your bandwidth use. Bandwidth is the culprit in most if not all display related issues in virtual desktop infrastructures. With PCoIP's image quality settings, you can avoid any lapse in display due to bandwidth issues. What's really cool about these settings is, when faced with a congested network, PCoIP's adaptive encoders kick in and provide the best image quality with the available bandwidth. Then, when congestion dies and the network resumes it's normal traffic load, it returns to maximum image quality.
Who is Behind PCoIP?
PCoIP was created by a company named Teradici which is located in Burnaby, BC. Teradici was founded on the idea that there were major problems with the desktop PC. Every user in every oraganization across the globe essentially utilized a desktop PC. The problem Teradici saw was "how do we centrally manage and secure these desktops?" Security threats were increasing and there was a need for desktop consolidation.The fix was simple, consolidate all of the desktops and place them in the datacenter. The only issue with that was, how to connect the users to their desktops in the datacenter. That was essentially how the PCoIP display protocol was created.
Teradici utilizes a PCI-e card that is installed on the server in the datacenter. Your monitor and all peripherals (USB) are plugged into a thin or zero client at the desktop which reaches out to the image held on the server in the datacenter. Thanks to host rendering, all the host has to do is transmit the pixels via the IP network to the zero client which receives the pixels and decodes them to display your desktop image. Magic! Here's a nice video from Teradici in which CTO Randy Groves explains the three essential features of PCoIP and Teradici.