Windows Server 2003 : Windows Terminal Services - The Remote Desktop Protocol & Requirements for Terminal Services

6/6/2012 5:37:27 PM

1. The Remote Desktop Protocol

The Remote Desktop Protocol (RDP) is the protocol that drives Terminal Services. RDP is based on and is an extension of the T.120 protocol family of standards. It is a multichannel-capable protocol that allows for separate virtual channels for carrying device communication and presentation data from the server, as well as encrypted client mouse and keyboard data. RDP provides a very extensible base from which to build many additional capabilities, supporting up to 64,000 separate channels for data transmission as well as provisions for multipoint transmission.

Figure 1 shows the structure of RDP and its functionality from a high-level perspective.

The new Terminal Services client software included in Windows Server 2003 (Remote Desktop Connection, or RDC) uses RDP 5.2, and many local resources are available within the remote session: the client drives, smart cards, audio card, serial ports, printers (including network), and clipboard. Additionally, you can select color depth from 256 colors (8-bit) to True Color (24-bit) and resolution from 640×480 up to 1600×1200.

Figure 1. An overview of RDP

RDP basically takes instructions from a terminal server host machine on screen images and draws them onto a client's screen, refreshing that image about 20 times every second if there's activity on the client side. (To save bandwidth, if no activity is detected on the client side, it cuts the refresh rate in half.) It then notes any keyboard and mouse activity (among other things) and relays those signals to the terminal server host machine for processing. This two-way exchange of information is wrapped into what's called a session, which consists of the programs running on the host machine and the information being sent over RDP between the terminal server and the client machine.

2. Requirements for Terminal Services

Because most of the processing power that was traditionally on the desktop has moved to the server in a Terminal Services scenario, it follows that the machine hosting Terminal Services for your users should be significantly beefier than you might otherwise be used to. Perhaps the two most critical points as far as hardware requirements are CPU and RAM, followed by the network interface and links.

2.1. CPU Requirements

CPU requirements can be difficult to measure because individual users require different slices of processor time at different intervals. Two main factors determine CPU usage: intensity of the applications that users are running, and the number of simultaneous users. Table 1 gives a rough estimate for CPU requirements based on number of users and application intensity.

What Happened to Citrix?

When Microsoft introduced its revamped version of Terminal Services in Windows 2000, many predicted the demise of Citrix's venerable MetaFrame product. Citrix basically invented the idea of multiple sessions on one Windows host, and RDP is loosely based on Citrix's protocol, Independent Computing Architecture (ICA). MetaFrame has traditionally sat atop Terminal Services, using its basic functionality as a foundation and adding useful features on top. But many people have asked what with all the improvements to RDP, including bandwidth reduction, client-side caching, device mapping, sound redirection, and increased color depth, why a corporation would continue to buy Citrix's flagship product?

A feature known as Seamless Windows one-to-many connections is available with MetaFrame, but not with raw Terminal Services. For the client, this means applications you see are displayed without having to scroll or use full-screen mode. On the server, though, it's even better: all sessions on the same server that use Seamless Windows are operating out of the same physical instance of the program, saving on hardware resources.

Another hot item is application publishing, which uses a Citrix concept called Program Neighborhood to direct a user to applications via a menu of program options. The user doesn't have to know which servers run those applications with Citrix because he can just choose a program from the menu and be connected directly to it. To use native Terminal Services and RDP, the user would need to find the appropriate server and connect to it.

Additional core features of MetaFrame distinguish it from native Terminal Services. And as always, Citrix releases new features in its Service Releases. Larger organizations that use Terminal Services connections extensively might want to investigate how MetaFrame might improve their efficiency. However, most organizations, especially small businesses, will find that the initially free Terminal Services components of Windows Server 2003 (you pay only for licensing and not the initial software purchase) will suffice for their needs.

Table 1. Rough estimates of CPU requirements for Terminal Services
Simultaneous usersIntensity of application(s)Recommended processor
20-25LowPentium III 750 MHz+
 HighDual Pentium III 750 MHz+ or Pentium IV Xeon any speed
35-40LowPentium III or IV, 1 GHz+
 HighDual Pentium IV Xeon 2 GHz+
50-55LowDual Pentium IV Xeon 2 GHz+
 HighNot recommended

2.2. Amount of RAM

Here are some hard and fast facts about RAM usage with Terminal Services that you might find helpful:

  • Each user takes up roughly 20 MB of the Terminal Services host machine's RAM just by logging in.

  • A typical load of two to three Office applications per user will add approximately another 25 MB of RAM to the server's RAM usage.

Of course, additional applications on top of that consume more RAM, and power users typically will not run only Office applications, but rather, more powerful applications that require more hardware resources.

2.3. Network Interface Card

The Network Interface Card (NIC) is managed by Windows and should not require any configuration for use with Terminal Services. You should focus more on the available bandwidth and average latency on the network to which the card is connected, and not necessarily on the card itself.

Terminal Services does a surprisingly nice job of adjusting the bandwidth usage of the RDP client to the conditions of the link to which it's connected with the host. You can expect that most RDP connections will take up between 2 kbps and 7 kbps depending on the depth of color requested by the client, the amount of graphics being transmitted, whether sound is included, and other options.

2.4. Disk Space

The actual Terminal Services components inside Windows Server 2003 do not require any additional disk space on top of what is consumed by the normal system files. Around 15 MB is taken up for the file share that stores the client installation files for RDP. In addition, users store about half a megabyte of data for their Terminal Services profile information when they first log on to a server. (Remember that Terminal Services users' profiles are automatically roaming because their sessions follow them to whatever workstation is running the RDP client.) Other than this, not much disk space is required to support RDP.

2.5. Sizing for Scaling

Let's say, for instance, that you've built a server to run TS and now want to see how well it scales. Microsoft has released a group of scaling scripts and utilities that can be downloaded from:

The single download includes scripts that should be modified to fit your environment as necessary, and an Excel spreadsheet that will guide you through fine-tuning certain Registry settings to achieve best performance on a machine dedicated solely to hosting TS applications.

  •  Software Overclocking for Windows (Part 3) - GFX: MSI Afterburner
  •  Software Overclocking for Windows (Part 2) - Remote controlled overclocking
  •  Software Overclocking for Windows (Part 1)
  •  Rig Builder – May 2012 (Part 5)
  •  Rig Builder – May 2012 (Part 4)
  •  Rig Builder – May 2012 (Part 3)
  •  Rig Builder – May 2012 (Part 2)
  •  Rig Builder – May 2012 (Part 1)
  •  Netgear ReadyNAS Ultra 4 - Bulletproof backup
  •  iomega StorCenter - A look at what’s in store
  •  Ultrabook vs MacBook (Part 2)
  •  Ultrabook vs MacBook (Part 1)
  •  Macbook Air vs. Ultrabook Platform (Part 2)
  •  Macbook Air vs. Ultrabook Platform (Part 1)
  •  Speed up Linux (Part 3) - Enjoy better swappiness, The four-line speed boost
  •  Speed up Linux (Part 2) - Banish unnecessary processes with the bum
  •  Speed up Linux (Part 1)
  •  Processor Group Test (Part 6) - Intel Core i7-3930K
  •  Processor Group Test (Part 5) - Intel Core i7-2700K
  •  Corsair Vengeance range – Best Gaming Gears
    Top 10
    Adobe Photoshop CS5 : Specialized Processes - Save For Web & Devices, Convert to CMYK, Add an Alpha Channel
    Adobe Photoshop CS5 : PDF Essentials - Compression Options for Adobe PDF
    Adobe Photoshop CS5 : Professional Printing Options, Desktop Printing Options
    Memory Management : Prevent Memory from Being Moved, Allocate Unmanaged Memory
    Memory Management : Use Pointers, Speed Up Array Access
    Memory Management : Force a Garbage Collection, Create a Cache That Still Allows Garbage Collection
    Windows Server 2008 Server Core : Verifying Application and Role Status Using the OCList Utility
    Windows Server 2008 Server Core : Accessing the Windows Package Manager with the PkgMgr Utility, Adding and Removing Applications with the OCSetup Utility
    Personalizing Windows 8 : Adjusting the Look of Windows 8
    Personalizing Windows 8 : Adding Badges
    Most View
    iPad Therapy (Part 2) - There’s an app for that
    Perform Other Pre-Installation Tasks
    Windows 7 : Detecting and Resolving Computer Problems (part 1) - Solving the Tough Problems Automatically
    Panasonic TX-L42ET50 – A Fairly Unexciting Set
    Microsoft ASP.NET 4 : The ASP.NET MVC Framework - The Model-View-Controller (MVC) Architecture
    Programming Microsoft SQL Server 2005: Using the Data Mining Wizard and Data Mining Designer (part 7) - Nested Tables
    Nikon Launched The D800 And D800E
    Building Your First Windows Phone 7 Application (part 1) - Creating a Windows Phone Project
    Servlet Development and Deployment : Writing our first servlet & Compiling the servlet
    Lenovo Introduced Two AMD Trinity Chipped Laptops In Japan
    Architecting a SharePoint 2010 Deployment : Choosing the Right Hardware for SharePoint
    Windows 7 : Configuring Network Connectivity - Configuring DirectAccess
    Tips, Tricks & Tweaks: Windows Media Player (Part 2)
    Bridge Camera – A Complete Buyer's Guide! (Part 3)
    Green Gaming Goblin Exposed the Clutches
    OTL – a new direction of electric tube amplifier
    Linking PCs with a Network : Creating a Wired and Wireless Computer Network
    IIS 7.0 : Configuring IIS Logging
    SQL Server 2008 : Explaining XML - XML Indexes
    iPhone 3D Programming : Drawing an FPS Counter (part 1) - Generating a Glyphs Texture with Python