Wyse manages to speed up RDP and ICA by factor of 3. Ditches TCP layer for custom transport protocol. Writeup by Ars Technica and Jon Stokes.
Last Wednesday, terminal vendor Wyse Technology unveiled its latest salvo in the "thin" vs. "fat" client wars, the Virtual Desktop Accelerator. While Wyse still makes terminals, it has also gotten into the virtualization-based thin client game, but of course the main weakness in the thin client model is the connection—specifically, connection latency. For real-time interactive applications, latency is a much bigger problem than throughput, because high latencies degrade the user experience.
Wyse's engineers have worked on a solution to the latency problem, which can be acute for a thin client where the datacenter is located across the country or across the ocean. They came up with a hybrid approach that involves proxies, tunneling, error correction, and ditching the TCP layer for a custom transport protocol that runs on top of IP. All of this goes into VDA, which accelerates Remote Desktop Protocol (RDP) and Independent Computing Architecture (ICA) in order to speed up connections to Citrix XenApp, Citrix XenDesktop, VMware View, Microsoft Terminal Server, and Microsoft Hyper-V VDI.
We spent some time talking to some Wyse engineers this past Friday, and they were understandably reluctant to get too explicit about how VDA achieves what Wyse claims is up to a 3x speedup on RDP and ICA. But they did share the general outlines of what they're doing.
On the client side, ICA and RDP traffic is redirected to the VDA proxy, which then communicates directly with a server-side proxy. This use of proxies means that the software at each end of the connection doesn't know that anything different is going on with the connection itself.
The two VDA proxies then use a custom transport layer that's optimized for interactive communication by using error correction to minimize the number of packet resends. The Wyse folks told me that their transport can drop whole packets, but there's often enough error correction there to reconstruct the lost packet without requesting a resend.