Three Letters: UDP, UDP, UDP
I have spoken at multiple conferences (most recently BriForum Denver 2015 and Techmentor Las Vegas 2016) on the subject of RDP 8 and the numerous ways it improves the Remote Desktop user experience, even over less than reliable networks. Amazingly, I have discovered that very few server administrators who have a RDS farm know about these improvements, as they still run RDS on Windows Server 2008 (which only supports up to Version 7 of the Remote Desktop Protocol).
The lynchpin of the RDP 8 improvements involve the dual use of UDP as a transport protocol alongside TCP. Prior to RDP 8, all client/server Remote Desktop Services connection data was transported over TCP only. While TCP guarantees delivery, it suffers hugely in the face of less-reliable networks with high latency and/or higher packet loss rates (e.g. greater than 1% loss on average). I could go deep in the technical weeds on this subject, but I am not going to – if you’d like to learn more about the inherent problems with rapid delivery of data via TCP over less-reliable networks, search on terms like “queueing delay” and “TCP congestion avoidance algorithms – e.g. Reno, Vegas, New Reno, etc.”
UDP overcomes virtually all of those issues, as reliable delivery of UDP packets are not guaranteed – it is up to the application to handle missing packets via re-transmission and on the fly error correction (specifically, Forward Error Correction techniques).
RDP 8 Vastly Improves Data Throughput, Even Over Less Reliable Networks, Greatly Enhancing User Experience
If you’d like to read more from Microsoft’s own RDS engineering team on the specific improvements in data throughput over different types of networks, please review their blog article here.
From a practical standpoint, here’s what you as a RDS admin need to do to take advantage of RDP 8 and later versions to boost Remote Desktop Connection user experience:
- Upgrade your RDS servers to Windows Server 2012 or Windows Server 2016. RDP 8 and later versions are only supported on Server 2012 or greater operating systems.
- Verify that your RD clients support RDP 8 or later. For the Windows Remote Desktop Connection Client, this means that the client operating system should be Windows 8 or Windows 10. Windows 7 SP 1 WILL support RDP 8, but only if you apply the RDP 8 update accordingly. If you use thin clients, you will need to contact the vendor to verify that RDP 8 is supported natively, or can be supported with a firmware update. The latest Microsoft Remote Desktop clients for Android and iOS also support RDP 8+
- If you use the Microsoft Remote Desktop Gateway to allow access to/from Remote Desktop Session Hosts in your RDS farm, you will need to make sure that role is installed on a Windows 2012 or Windows 2016 server. The RD Gateway role that ships with Windows Server 2008 will not forward UDP traffic. Conversely, if you DO NOT use the RD Gateway, you will need to configure the corporate firewall so it will pass UDP traffic alongside TCP traffic over port 3389.
Note – There is a Price Associated With Better Data Throughput Using UDP Transport With RDP 8
As us computer science and engineering types know implicitly – there is seldom such as thing as a free lunch. Because UDP boosts effective throughput, it will also increase the amount of bandwidth RDP traffic consumes over time. It’s definitely something to keep an eye on over low-bandwidth or saturated network links.