Internet Application-Level Protocols

TCP/IP implements higher-level Internet protocols at the application program level.

Figure 1. Application layer of the TCP/IP Suite of Protocols
Application layer of the TCP/IP Suite of Protocols
This illustration shows the various layers of the TCP/IP Suite of Protocols. From the top, the application layer consists of the application. The transport layer contains UDP and TCP. The network layer contains the network (hardware) interface. And finally, the hardware layer contains the physical network.

When an application needs to send data to another application on another host, the applications send the information down to the transport level protocols to prepare the information for transmission.

The official Internet application-level protocols include:

TCP/IP implements other higher-level protocols that are not official Internet protocols but are commonly used in the Internet community at the application program level. These protocols include:

TCP/IP does not provide APIs to any of these application-level protocols.

Domain Name Protocol

The Domain Name Protocol (DOMAIN) allows a host in a domain to act as a name server for other hosts within the domain.

DOMAIN uses UDP or TCP as its underlying protocol and allows a local network to assign host names within its domain independently from other domains. Normally, the DOMAIN protocol uses UDP. However, if the UDP response is truncated, TCP can be used. The DOMAIN protocol in TCP/IP supports both.

In the DOMAIN hierarchical naming system, local resolver routines can resolve Internet names and addresses using a local name resolution database maintained by the named daemon. If the name requested by the host is not in the local database, the resolver routine queries a remote DOMAIN name server. In either case, if the name resolution information is unavailable, the resolver routines attempt to use the /etc/hosts file for name resolution.

Note: TCP/IP configures local resolver routines for the DOMAIN protocol if the local file /etc/resolv.conf exists. If this file does not exist, the TCP/IP configures the local resolver routines to use the /etc/hosts database.

TCP/IP implements the DOMAIN protocol in the named daemon and in the resolver routines and does not provide an API to this protocol.

Exterior Gateway Protocol

Exterior Gateway Protocol (EGP) is the mechanism that allows the exterior gateway of an autonomous system to share routing information with exterior gateways on other autonomous systems.

Autonomous systems

Gateways are interior neighbors if they reside on the same autonomous system and exterior neighbors if they reside on different autonomous systems. Gateways that exchange routing information using EGP are said to be EGP peers or neighbors. Autonomous system gateways use EGP to provide access information to their EGP neighbors.

EGP allows an exterior gateway to ask another exterior gateway to agree to exchange access information, continually checks to ensure that its EGP neighbors are responding, and helps EGP neighbors to exchange access information by passing routing update messages.

EGP restricts exterior gateways by allowing them to advertise only those destination networks reachable entirely within that gateway's autonomous system. Thus, an exterior gateway using EGP passes along information to its EGP neighbors but does not advertise access information about its EGP neighbors outside its autonomous system.

EGP does not interpret any of the distance metrics that appear in routing update messages from other protocols. EGP uses the distance field to specify whether a path exists (a value of 255 means that the network is unreachable). The value cannot be used to compute the shorter of two routes unless those routes are both contained within a single autonomous system. Therefore, EGP cannot be used as a routing algorithm. As a result, there will be only one path from the exterior gateway to any network.

In contrast to the Routing Information Protocol (RIP), which can be used within an autonomous system of Internet networks that dynamically reconfigure routes, EGP routes are predetermined in the /etc/gated.conf file. EGP assumes that IP is the underlying protocol.

EGP message types

The various exterior gateway protocol (EGP) message types are defined here.

Item Description
Neighbor Acquisition Request Used by exterior gateways to request to become neighbors of each other.
Neighbor Acquisition Reply Used by exterior gateways to accept the request to become neighbors.
Neighbor Acquisition Refusal Used by exterior gateways to deny the request to become neighbors. The refusal message includes reasons for refusal, such as out of table space.
Neighbor Cease Used by exterior gateways to cease the neighbor relationship. The cease message includes reasons for ceasing, such as going down.
Neighbor Cease Acknowledgment Used by exterior gateways to acknowledge the request to cease the neighbor relationship.
Neighbor Hello Used by exterior gateways to determine connectivity. A gateway issues a Hello message and another gateway issues an I Heard You message.
I Heard You Used by exterior gateways to reply to a Hello message. The I Heard You message includes the access of the answering gateway and, if the gateway is unreachable, a reason for lack of access, such as You are unreachable because of problems with my network interface.
NR Poll Used by exterior gateways to query neighbor gateways about their ability to reach other gateways.
Network Reachability Used by exterior gateways to answer the NR Poll message. For each gateway in the message, the Network Reachability message contains information on the addresses that gateway can reach through its neighbors.
EGP Error Used by exterior gateways to respond to EGP messages that contain bad checksums or have fields containing incorrect values.
TCP/IP implements the EGP protocol in the gated server command and does not provide an API to this protocol.

File Transfer Protocol

File Transfer Protocol (FTP) allows hosts to transfer data among dissimilar hosts, as well as files between two foreign hosts indirectly.

FTP provides for such tasks as listing remote directories, changing the current remote directory, creating and removing remote directories, and transferring multiple files in a single request. FTP keeps the transport secure by passing user and account passwords to the foreign host. Although FTP is designed primarily to be used by applications, it also allows interactive user-oriented sessions.

FTP uses reliable stream delivery (TCP/IP) to send the files and uses a Telnet connection to transfer commands and replies. FTP also understands several basic file formats including NETASCII, IMAGE, and Local 8.

TCP/IP implements FTP in the ftp user command and the ftpd server command and does not provide an applications programming interface (API) to this protocol.

When creating anonymous ftp users and directories please be sure that the home directory for users ftp and anonymous (for example, /u/ftp) is owned by root and does not allow write permissions (for example, dr-xr-xr-x). The script /usr/samples/tcpip/anon.ftp can be used to create these accounts, files and directories.

Trivial File Transfer Protocol

The Trivial File Transfer Protocol (TFTP) can read and write files to and from a foreign host.

Because TFTP uses the unreliable User Datagram Protocol to transport files, it is generally quicker than FTP. Like FTP, TFTP can transfer files as either NETASCII characters or as 8-bit binary data. Unlike FTP, TFTP cannot be used to list or change directories at a foreign host and it has no provisions for security like password protection. Also, data can be written or retrieved only in public directories.

TCP/IP implements TFTP in the tftp or utftp user commands and in the tftpd server command. The utftp command is a form of the tftpd command for use in a pipe. TCP/IP does not provide an API to this protocol.

Name/Finger Protocol

The Name/Finger Protocol (FINGER) is an application-level Internet protocol that provides an interface between the finger command and the fingerd daemon.

The fingerd daemon returns information about the users currently logged in to a specified remote host. If you execute the finger command specifying a user at a particular host, you will obtain specific information about that user. The FINGER Protocol must be present at the remote host and at the requesting host. FINGER uses Transmission Control Protocol (Transmission Control Protocol) as its underlying protocol.

Note: TCP/IP does not provide an API to this protocol.

Telnet Protocol

The Telnet Protocol (TELNET) provides a standard method for terminal devices and terminal-oriented processes to interface.

TELNET is commonly used by terminal emulation programs that allow you to log into a remote host. However, TELNET can also be used for terminal-to-terminal communication and interprocess communication. TELNET is also used by other protocols (for example, FTP) for establishing a protocol control channel.

TCP/IP implements TELNET in the tn, telnet, or tn3270 user commands. The telnetd daemon does not provide an API to TELNET.

TCP/IP supports the following TELNET options which are negotiated between the client and server:

Item Description
BINARY TRANSMISSION (Used in tn3270 sessions) Transmits characters as binary data.
SUPPRESS GO_AHEAD (The operating system suppresses GO-AHEAD options.) Indicates that when in effect on a connection between a sender of data and the receiver of the data, the sender need not transmit a GO_AHEAD option. If the GO_AHEAD option is not desired, the parties in the connection will probably suppress it in both directions. This action must take place in both directions independently.
TIMING MARK (Recognized, but has a negative response) Makes sure that previously transmitted data has been completely processed.
EXTENDED OPTIONS LIST Extends the TELNET option list for another 256 options. Without this option, the TELNET option allows only 256 options.
ECHO (User-changeable command) Transmits echo data characters already received back to the original sender.
TERM TYPE Enables the server to determine the type of terminal connected to a user TELNET program.
SAK (Secure Attention Key) Establishes the environment necessary for secure communication between you and the system.
NAWS (Negotiate About Window Size) Enables client and server to negotiate dynamically for the window size. This is used by applications that support changing the window size.
Note: TELNET must allow transmission of eight bit characters when not in binary mode in order to implement ISO 8859 Latin code page.

Distributed Computer Network Local-Network Protocol

An autonomous system is a group of networks and gateways for which one administrative authority has responsibility.

Local-Network Protocol (HELLO) is an interior gateway protocol designed for use within autonomous systems. (For more information, see Exterior Gateway Protocol.) HELLO maintains connectivity, routing, and time-keeping information. It allows each machine in the network to determine the shortest path to a destination based on time delay and then dynamically updates the routing information to that destination.

For more information, see the gated daemon.

Remote Command Execution Protocol

The rexec user command and the rexecd daemon provide the remote command execution protocol, allowing users to run commands on a compatible remote host.

For more information, see the rexec command and the rexecd daemon.

Remote Login Protocol

The rlogin user command and the rlogind daemon provide the remote login protocol, allowing users to log in to a remote host and use their terminals as if they were directly connected to the remote host.

For more information, see the rlogin command and the rlogind daemon.

Remote Shell Protocol

The rsh user command and the rshd daemon provide the remote command shell protocol, allowing users to open a shell on a compatible foreign host for running commands.

For more information, see the rsh command and the rshd daemon.

Wake On LAN Protocol

Wake On LAN (WOL) allows you to wake up one or more hosts that are connected to a network in suspended mode by sending a Magic Packet to the specified address or addresses on the specified subnet.

For more information on using WOL, see the wol command.

Routing Information Protocol

Routing Information Protocol (RIP) and the routed and gated daemons that implement it keep track of routing information based on gateway hops and maintain kernel-routing table entries.

For more information, see the routed and gated daemons.

Time Server Protocol

The timed daemon is used to synchronize one host with the time of other hosts.

It is based on the client/server concept. For more information, see the timedc command and the timed daemon.