Telnet is a protocol for logging into a remote machine and using its files and applications almost as if you were sitting in front of it. It is most commonly used over the Internet, but is also used on local intranets and other kinds of networks as required.
The Telnet protocol allows for text-based communication between the client program, running on the user's machine, and the server1. The server sends text to be displayed, and the client2 sends the user's input. That is all the client needs to do, and thus protocols similar to Telnet can be used to allow multiple cheap 'dumb' terminals to be connected to one big mainframe.
Disadvantages to Telnet
In the modern world of computer use it is easy to see the disadvantages of Telnet. Being text-based, you are limited in what programs you can use on the remote machine. Logging into a UNIX system and attempting to run X Window3 won't get you very far, as it won't be able to open a graphical display on the client. But there are ways around this. Because X Window is network-transparent, X programs can be initiated over Telnet, and provided the required software is running on the client (an X server, in this case) and that the server is correctly configured, the X program can use the Telnet link as a way to connect to the client and bring up its display, although over a dial-up link this is almost unusable because it isn't fast enough. This is not to say that there are not many uses for Telnet: command-line tools still form the basis of most UNIX and UNIX-like operating systems, and can provide the user with a great degree of power and flexibility, combining simple tools to perform extremely complicated tasks with ease.
Telnet is also insecure - everything is transferred as plain text, so passwords and sensitive information pass openly across the network. This has led to the development of SSH4, a secure version of Telnet which is harder to break into - although like all things on the Internet it should never be considered entirely safe.
Working on a machine through Telnet can also seem to be very slow, because everything you're typing is being sent over the network to the server, which then acts on it and sends the display (including the display of any characters you have typed) back again. This is especially noticeable over a slow connection such as a dial-up link. But despite this, Telnet can prove itself very useful.
Common Uses of Telnet
The following examples show how Telnet is often used over networks:
Administering a network server/router without needing it to have its own screen/keyboard, or without needing to go near it to do so. In a large building this can save time, when a small adjustment (like adding a new user perhaps) needs to be made and it would take longer to reach the server's location than to Telnet your way in, do the job and log out again. In a more realistic example, this would be done using SSH to help make it harder for people to steal the server's passwords.
Increasing the availability of computing resources. This was more important when computers were the size of large rooms and cost eight times as much as a stretch limo. However, if a site such as a University has large, specialised computers, perhaps with architectures designed for specific tasks, then allowing access by Telnet or SSH can make the computer far more valuable. This holds as long as the dialogue only needs to be text-based, or when suitable provision for running X programs remotely has been made.
Online gaming - Telnet is one of the primary means to access MUDs and MUSHes and similar online, text-based role-playing games. It is likely that even if another client like a Java applet is being used to access a MUD, it is actually a Telnet client in disguise.
Reading and filtering email - since Telnet clients essentially only send and receive textual information, they aren't limited to being used only for remote operation of computers. It is possible to use Telnet clients to carry out any text-based network communication, although it's not always very practical. Thus, it is possible to connect with Telnet to a POP3 e-mail server and read your messages, deleting spam or huge messages you don't want before you have to download them to your mail client. It is also theoretically possible to surf the World Wide Web using Telnet connections to port 80, but if text-based browsing is your thing, a program like Lynx makes the job a lot easier.
Telnet and SSH are all very well, but what if you want to use a graphical program? A small selection of possible ways to run graphical systems over a network is shown below.
VNC - Virtual Network Computing - is a commercial product, which remotely displays a Windows desktop, allowing you to use it just as if you were sitting in front of the machine itself. The speed lag is even worse than with Telnet due to the extra graphical information that must be transmitted, but it can nonetheless be very, very useful, especially if you're administering six different servers all running Windows NT and all as far away from each other as possible.
Remote X sessions. The UNIX windowing system, X Window, is constructed with the ability to run displays on remote computers. All versions of X can be used as either server or client or both (as when running an X session on a single computer), and some, like XFree86 for Linux, are free. Logging into a remote server using X is, assuming the network is set up correctly, as simple as typing X -query servername. It is also possible to obtain X servers that run on Windows or other OSs, Also allowing Windows terminals to have access to UNIX systems without dual-booting or messing with VMWare (which allows multiple OSs to run simultaneously on the same computer). It is also possible to set up partial X sessions, whereby one application is run remotely within an X session running on the local computer - or indeed on another, remote computer. This is the use of X Window applications over Telnet mentioned above.