MYTH: The PCoIP protocol bets on UDP as the foundational transport for graphics

REALITY: TCP constrains Citrix ICA and Microsoft RDP

TCP is a great transport for data traffic that requires reliable packet delivery and is not sensitive to interactive latency.  Some examples are: file transfers, HTTP web pages, or streaming data that is uni-directional (i.e. media streaming with large buffers). However, TCP is not the optimal transport layer for data traffic that is sensitive to interactive latency and does not require reliable packet delivery like Voice-over-IP (VoIP), Video Conferencing, or a remote desktop experience which requires instantaneous interaction and constant content updates.  This is why VoIP and Video Conferencing use UDP and why the PCoIP protocol is optimized for UDP.

For data traffic like this, TCP is a limitation, not an advantage since it requires reliable packet delivery even when it is unnecessary.  For example, if you have 3 screen changes A, B, and C; throwing B out is perfectly fine as long as the C screen change replaces what was done in B. However, TCP will continue to retransmit B until it all arrives reliably even if C has already reached the destination.  So, in the presence of packet loss, TCP will introduce unnecessary latency and retransmission.

For client-rendered protocols, like RDP and ICA/HDX, reliable packet deliver is almost always required because graphics primitives are being sent, not screen pixels. As a display screen is being rendered at the client, many of the graphics primitives are dependent on previous primitives. Thus, they all need to arrive reliably and in order.

These client-rendered protocols do employ sophisticated techniques like “tossing” to throw away graphics primitives that will be overwritten by subsequent primitives. However, these techniques do not work for primitives that have already been sent onto the network. Once a primitive has been sent using a TCP packet, it will be retransmitted until it has been delivered to the receiver adding latency for something that could have been thrown away. Packet loss generally only occurs in WAN environments which also have the highest latency. Thus, WAN connections benefit the most from the ability to discard overwritten packets since they will have the most packets “in flight” due to network latency and are most likely to lose packets. This is why WAN connections benefit the most from the use of UDP by the PCoIP protocol.

Leave a Reply