A number of applications have been standardized to operate on top of TCP. This section briefly describes three of the most common applications.
The simple mail transfer protocol (SMTP) provides a basic electronic mail facility. It provides a mechanism for transferring messages among separate hosts. Features of SMTP include mailing lists, return receipts, and forwarding. The SMTP protocol doesn't specify the way in which messages are to be created; some local editing or native electronic mail facility is required. Once a message is created, SMTP accepts the message and makes use of TCP to send it to an SMTP module on another host. The target SMTP module then uses a local electronic mail package to store the incoming message in the recipient's mailbox.
The file transfer protocol (FTP) sends files from one system to another under user command. Both text and binary files are accommodated, and the protocol provides features for controlling user access. When a user wants to engage in file transfer, FTP sets up a TCP connection to the target system for the exchange of control messages. These allow user ID and password to be transmitted, and enable the user to specify the file and file actions desired. Once a file transfer is approved, a second TCP connection is set up for the data transfer. The file is transferred over the data connection, without the overhead of any headers or control information at the application level. When the transfer is complete, the control connection signals the completion and accepts new file transfer commands.
Telnet provides a remote logon capability, which enables a user at a terminal or personal computer to log onto a remote computer and function as if directly connected to that computer. The protocol was designed to work with simple scroll-mode terminals. Telnet is actually implemented in two modules. User Telnet interacts with the terminal I/O module to communicate with a local terminal. It converts the characteristics of real terminals to the network standard and vice versa. Server Telnet interacts with an application, acting as a surrogate terminal handler so that remote terminals appear as local to the application. Terminal traffic between User and Server Telnet is carried on a TCP connection.