RDP over UDP failing on Windows 10 1809 with reduced MTU links
Since updating to Windows 10 build 1809 on both RDP client and server, I'm seeing a black screen after the initial logon sequence completes when connecting over a link with a smaller-than-ethernet MTU, and when UDP transport is enabled.
These scenarios work as expected:
- LAN link, MTU 1500 bytes, both TCP and UDP transports enabled.
- VPN link, MTU ~1350 bytes, only TCP transport enabled.
- 1809 client to older server (e.g. Windows Server 2012 R2), both transports enabled, any MTU link.
- 1803 client to 1809 server, both transports enabled, any MTU link.
This does not work:
- VPN link, MTU ~1350 bytes, 1809 client, 1809 server, both transports enabled.
Looking at a packet capture of the non-working configuration, the initial login sequence is as expected (TCP control channel, UDP data channel). Then, a short while later (corresponding to the "black screen" shown in the client), there's lots of IP fragments which Wireshark doesn't manage to reassemble:
I notice that build 1809 introduces RDP over UDP extensions v2: https://msdn.microsoft.com/en-us/library/mt847234.aspx - I wonder if this is failing to do path MTU discovery correctly?
A workaround is to disable the UDP protocol (https://getadmx.com/?Category=Windows_10_2016&Policy=Microsoft.Policies.TerminalServer::TS_SELECT_TRANSPORT), but obviously this comes at the expense of performance in slightly lossy networks, so isn't ideal.
Another is to use the UWP RDP app - I assume this doesn't use RDP-UDP.
I'm guessing this is a bug - I wonder if anyone's had it acknowledged by Microsoft?
Solution 1:
I think you can try disabling URCP (Universal Rate Control Protocol) for Terminal Services on your server as described here: Windows 10 RDP black screen when connecting to Server 2019
On your Server 2019, open the registry editor and navigate to HKLM\SOFTWARE\Microsoft\Terminal Server Client
Create a new d-word (32-bit) value and name it UseURCP with decimal value of 0
I am not 100% sure if that will help you, but I think its worth of a try.