8

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:

Wireshark capture of RDP-UDP fragments 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?

  • IIRC, the MTU size limitation functions in MS and network gear are different between TCP and UDP. It could be you've got TCP properly shrunk to the right MTU but your UDP packets are getting split incorrectly which is causing them to fail. – duct_tape_coder Dec 19 '18 at 20:38
0

I think you can try disabling URCP (Universal Rate Control Protocol) for Terminal Services on your server as described here: https://itcalls.net/windows-10-version-1809-black-screen-when-connecting-rdp-to-server-2019/

On your Server 2019, open the registry editor and navigate to HKLM\SOFTWARE\MicrosoftTerminal 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.