A terminal server, also sometimes called a communication server, is a hardware device or server that provides terminals, such as PCs, printers, and other devices, with a common connection point to a local or wide area network (WAN). The terminals connect to the terminal server from their RS-232C or RS-423 serial port. The other side of the terminal server connects through network interface cards (NIC) to a local area network (LAN), usually an Ethernet or token ring LAN, through modems to the dial-in/out WAN, or to an X.25 network or a 3270 gateway. (Different makes of terminal server offer different kinds of interconnection. Some can be ordered in different configurations based on customer need.) The use of a terminal server means that each terminal doesn't need its own network interface card or modem. The connection resources inside the terminal server are usually shared dynamically by all attached terminals.
Some terminal servers can be shared by hundreds of terminals. The terminals can be PCs, terminals that emulate 3270s, printers, or other devices with the RS-232/423 interface. Terminals can use TCP/IP for a Telnet connection to a host, LAT to a Digital Equipment Corporation host, or TN3270 for a Telnet connection to an IBM host with 3270 applications. With some terminal servers, a given terminal user can have multiple host connections to different kinds of host operating systems, such as UNIX, IBM and DEC.
Although the concept of a terminal has its origins in the mainframe world, the Windows Server operating system has long had the ability to act as a terminal server.
How a terminal server works
The way that a terminal server works tends to vary from one vendor to the next. In the case of a Windows terminal server, the Windows operating system is configured to support multiple user sessions. This is different from other multi-session environments such as a Windows file server because the operating system renders a user interface (UI) for each of the sessions.
End users connect to a terminal server by using a remote desktop protocol (RDP) client, a desktop or mobile application whose job it is to connect to the terminal server, and display the session’s contents. The RDP client communicates with the terminal server through a connection port. A session manager component keeps all user sessions separate, and also handles tasks such as allowing a user to reconnect to their session after accidentally closing the RDP client. The sessions actually run as a part of the terminal server service, but the session manager is responsible for managing those sessions.
When a user needs to interact with a session through keyboard, mouse, or touch inputs, those inputs are made within the RDP client. The RDP client then transmits the inputs to the terminal server for processing. The terminal server is also responsible for performing all graphical rendering, although it is the RDP client that actually makes the session visible to the user.
Terminal server vs. remote desktop
A terminal Server and a remote desktop both serve a similar purpose. They allow a user to interact with a remote session through an RDP client. The main difference is that terminal servers run on a Windows Server, and the user is therefore provided with a Windows Server desktop. Conversely, remote desktop environments typically have desktop operating systems such as Windows 10 running within virtual machines (VM). As such, the user is provided with a true desktop operating system, rather than a session running on a server.