Windows Remote Desktop Protocol



Remote desktop protocol (RDP) is a secure network communications protocol from Microsoft. RDP is designed for remote management, remote access to virtual desktops, applications and an RDP terminal server. RDP allows network administrators to remotely diagnose and resolve problems that individual users encounter.

  1. Windows Remote Desktop Protocol Weak Encryption Method Allowed
  2. Windows Remote Desktop Protocol Weak Encryption Method Allowed
-->

Remote Desktop Protocol (RDP) is a sophisticated technology that uses various techniques to perfect the server's remote graphics' delivery to the client device. Depending on the use case, availability of computing resources, and network bandwidth, RDP dynamically adjusts various parameters to deliver the best user experience.

Remote Desktop Protocol multiplexes multiple Dynamic Virtual Channels (DVCs) into a single data channel sent over different network transports. There are separate DVCs for remote graphics, input, device redirection, printing, and more. Windows Virtual Desktop partners can also use their extensions that use DVC interfaces.

  • The Remote Desktop Protocol or RDP is a key feature in Windows 10 Pro. With that enabled, you can connect to computers on the network, either to troubleshoot issues or to work from that computer.
  • Remote Desktop Protocol (RDP) is a tried and tested protocol that sysadmins have been using for years. It’s so widely used I would be shocked to meet a sysadmin that hasn’t used it. But, just because something is widely used doesn’t mean that it’s without its flaws.
  • Configure H.264/AVC hardware encoding for Remote Desktop connections This policy lets you enable hardware encoding for AVC/H.264, when used in conjunction with the AVC444 mode. When enabled, each remote desktop monitor will use up one AVC/H.264 encoder on the server.
  • The Remote Desktop Protocol (RDP) is a protocol developed by Microsoft to connect and control a remote computer from another one. More information about this can be found on MSDN. It is a client-server based protocol, the remote computer to access must have an RDP server running.

The amount of the data sent over RDP depends on the user activity. For example, a user may work with basic textual content for most of the session and consume minimal bandwidth, but then generate a printout of a 200-page document to the local printer. This print job will use a significant amount of network bandwidth.

When using a remote session, your network's available bandwidth dramatically impacts the quality of your experience. Different applications and display resolutions require different network configurations, so it's essential to make sure your network configuration meets your needs.

Estimating bandwidth utilization

RDP uses various compression algorithms for different types of data. The table below guides estimating of the data transfers:

Type of DataDirectionHow to estimate
Remote GraphicsSession host to clientSee the detailed guidelines
HeartbeatsBoth directions~ 20 bytes every 5 seconds
InputClient to session HostAmount of data is based on the user activity, less than 100 bytes for most of the operations
File transfersBoth directionsFile transfers are using bulk compression. Use .zip compression for approximation
PrintingSession host to clientPrint job transfer depends on the driver and using bulk compression, use .zip compression for approximation

Other scenarios can have their bandwidth requirements change depending on how you use them, such as:

  • Voice or video conferencing
  • Real-time communication
  • Streaming 4K video

Estimating bandwidth used by remote graphics

It's tough to predict bandwidth use by the remote desktop. The user activities generate most of the remote desktop traffic. Every user is unique, and differences in their work patterns may significantly change network use.

Desktop

Windows Remote Desktop Protocol Weak Encryption Method Allowed

The best way to understand bandwidth requirements is to monitor real user connections. Monitoring can be performed by the built-in performance counters or by the network equipment.

However, in many cases, you may estimate network utilization by understanding how Remote Desktop Protocol works and by analyzing your users' work patterns.

The remote protocol delivers the graphics generated by the remote server to display it on a local monitor. More specifically, it provides the desktop bitmap entirely composed on the server.While sending a desktop bitmap seems like a simple task at first approach, it requires a significant amount of resources. For example, a 1080p desktop image in its uncompressed form is about 8Mb in size. Displaying this image on the locally connected monitor with a modest screen refresh rate of 30 Hz requires bandwidth of about 237 MB/s.

To reduce the amount of data transferred over the network, RDP uses the combination of multiple techniques, including but not limited to

  • Frame rate optimizations
  • Screen content classification
  • Content-specific codecs
  • Progressive image encoding
  • Client-side caching

To better understand remote graphics, consider the following:

  • The richer the graphics, more bandwidth it will take
    • Text, window UI elements, and solid color areas are consuming less bandwidth than anything else.
    • Natural images are the most significant contributors to bandwidth use. But client-side caching helps with its reduction.
  • Only changed parts of the screen are transmitted. If there are no visible updates on the screen, no updates are sent.
  • Video playback and other high-frame-rate content are essentially an image slideshow. RDP dynamically uses appropriate video codecs to deliver them with the close to original frame rate. However, it's still graphics, and it's still the most significant contributor to bandwidth utilization.
  • Idle time in remote desktop means no or minimal screen updates; so, network use is minimal during idle times.
  • When remote desktop client window is minimized, no graphical updates are sent from the session host.

Keep in mind that the stress put on your network depends on both your app workload's output frame rate and your display resolution. If either the frame rate or display resolution increases, the bandwidth requirement will also rise. For example, a light workload with a high-resolution display requires more available bandwidth than a light workload with regular or low resolution. Different display resolutions require different available bandwidths.

The table below guides estimating of the data used by the different graphic scenarios. These numbers apply to a single monitor configuration with 1920x1080 resolution and with both default graphics mode and H.264/AVC 444 graphics mode.

ScenarioDefault modeH.264/AVC 444 modeThumbnailDescription of the scenario
Idle0.3 Kbps0.3 KbpsUser is paused their work and there's no active screen updates
Microsoft Word100-150 Kbps200-300 KbpsUser is actively working with Microsoft Word, typing, pasting graphics and switching between documents
Microsoft Excel150-200 Kbps400-500 KbpsUser is actively working with Microsoft Excel, multiple cells with formulas and charts are updated simultaneously
Microsoft PowerPoint4-4.5 Mbps1.6-1.8 MbpsUser is actively working with Microsoft PowerPoint, typing, pasting. User also modifying rich graphics, and using slide transition effects
Web Browsing6-6.5 Mbps0.9-1 MbpsUser is actively working with a graphically rich website that contains multiple static and animated images. User scrolls the pages both horizontally and vertically
Image Gallery3.3-3.6 Mbps0.7-0.8 MbpsUser is actively working with the image gallery application. browsing, zooming, resizing and rotating images
Video playback8.5-9.5 Mbps2.5-2.8 MbpsUser is watching a 30 FPS video that consumes 1/2 of the screen
Fullscreen Video playback7.5-8.5 Mbps2.5-3.1 MbpsUser is watching a 30 FPS video that maximized to a fullscreen

Dynamic bandwidth allocation

Remote Desktop Protocol is a modern protocol designed to adjust to the changing network conditions dynamically.Instead of using the hard limits on bandwidth utilization, RDP uses continuous network detection that actively monitors available network bandwidth and packet round-trip time. Based on the findings, RDP dynamically selects the graphic encoding options and allocates bandwidth for device redirection and other virtual channels.
This technology allows RDP to use the full network pipe when available and rapidly back off when the network is needed for something else.RDP detects that and adjusts image quality, frame rate, or compression algorithms if other applications request the network.

Limit network bandwidth use with throttle rate

In most scenarios, there's no need to limit bandwidth utilization as limiting may affect user experience. Yet in the constrained networks you may want to limit network utilization. Another example is leased networks that are charged for the amount of traffic used.

Windows

In such cases, you could limit an RDP outbound network traffic by specifying a throttle rate in QoS Policy.

Note

Make sure that RDP Shortpath is enabled - throttle rate-limiting are not supported for reverse connect transport.

Implement throttle rate limiting on session host using Group Policy

Windows Remote Desktop Protocol

You can use policy-based Quality of Service (QoS) within Group Policy to set the predefined throttle rate.

To create a QoS policy for domain-joined session hosts, first, sign in to a computer on which Group Policy Management has been installed. Open Group Policy Management (select Start, point to Administrative Tools, and then select Group Policy Management), and then complete the following steps:

  1. In Group Policy Management, locate the container where the new policy should be created. For example, if all your session hosts computers are located in an OU named Session Hosts, the new policy should be created in the Session Hosts OU.

  2. Right-click the appropriate container, and then select Create a GPO in this domain, and Link it here.

  3. In the New GPO dialog box, type a name for the new Group Policy object in the Name box, and then select OK.

  4. Right-click the newly created policy, and then select Edit.

  5. In the Group Policy Management Editor, expand Computer Configuration, expand Windows Settings, right-click Policy-based QoS, and then select Create new policy.

  6. In the Policy-based QoS dialog box, on the opening page, type a name for the new policy in the Name box. Select Specify Outbound Throttle Rate and set the required value, and then select Next.

  7. On the next page, select Only applications with this executable name and enter the name svchost.exe, and then select Next. This setting instructs the policy to only prioritize matching traffic from the Remote Desktop Service.

  8. On the third page, make sure that both Any source IP address and Any destination IP address are selected. Select Next. These two settings ensure that packets will be managed regardless of which computer (IP address) sent the packets and which computer (IP address) will receive the packets.

  9. On page four, select UDP from the Select the protocol this QoS policy applies to drop-down list.

  10. Under the heading Specify the source port number, select From this source port or range. In the accompanying text box, type 3390. Select Finish.

The new policies you've created won't take effect until Group Policy has been refreshed on your session host computers. Although Group Policy periodically refreshes on its own, you can force an immediate refresh by following these steps:

  1. On each session host for which you want to refresh Group Policy, open a Command Prompt as administrator (Run as administrator).

  2. At the command prompt, enter

Implement throttle rate limiting on session host using PowerShell

You can set throttle rate for RDP Shortpath using the PowerShell cmdlet below:

Windows Remote Desktop Protocol Weak Encryption Method Allowed

Next steps

  • To learn about bandwidth requirements for Windows Virtual Desktop, see Understanding Remote Desktop Protocol (RDP) Bandwidth Requirements for Windows Virtual Desktop.
  • To learn about Windows Virtual Desktop network connectivity, see Understanding Windows Virtual Desktop network connectivity.
  • To get started with Quality of Service (QoS) for Windows Virtual Desktop, see Implement Quality of Service (QoS) for Windows Virtual Desktop.