The Internet Protocol Suite



A network is a configuration of machines that exchange information among
them. In order for the network to function properly, the information
originating at a sender must be transmitted along a communication line and
delivered to the intended recipient in an intelligible form. Because different
types of networking software and hardware need to interact to perform this
function, network designers developed the concept of the communications
protocol family (or suite). A network protocol is a set of formal rules
explaining how software and hardware should interact within a network in order
to transmit information. The Internet Protocol (IP) family is one such group
of network protocols. It is centered around the IP. The other members of the
IP family are Transmission Control Protocol (TCP, User Datagram Protocol
(UDP), Address Resolution Protocol (ARP), Reverse Address Resolution Protocol
(RARP), and Internet Control Message Protocol (ICMP).

The entire family is popularly referred to as TCP/IP, reflecting the name
of the two main protocols.TCP/IP provides services to many different
types of host machines connected to heterogeneous networks. These networks
may be wide area networks, such as X.25-base networks, but they also can be
local area networks, such as one you might install in a single building.

Note: TCP/IP was originally developed by the United States Department
of Defense to run on the ARPANET, a packet-switching wide area network first
demonstrated in 1972. Today the ARPANET is part of a wide area network known
as the DoD (Department of Defense) Internet, or, for short, the Internet.
Many popular texts use the term Internet to describe both the protocol
family and the wide area network.

The TCP/IP protocol structure can be conceptualized as being formed of a
series of layers as shown below.

Layer Network Services
Application Telnet, FTP, TFTP
Transport TCP, UDP
Network IP, ICMP
Data Link ARP, RARP, device driver (such as Ethernet)
Physical Cable or other device (such as Ethernet board)

In TCP/IP jargon, a machine engaged in communication is termed either a
sending or receiving host. Every protocol layer on the sending host has its
peer protocol layer on the receiving host. Each layer is required by design
to handle communications in a predetermined fashion.

Each protocol formats communicated data and appends or removes information
from it. The protocol then passes the data to a lower layer on the sending
host or a higher layer on the receiving host.

Physical Layer

The Physical Layer is the hardware level of the protocol model, which is
concerned with electronic signals. Physical Layer protocols send and receive
data in the form of packets. A packet contains a source address, the
transmission itself, and a destination address.

TCP/IP supports a number of Physical Layer protocols, including Ethernet
and Token Ring. Ethernet is an example of a packet switching network; its
communications channels are occupied only for the duration of the
transmission of a packet. The telephone network is an example of a
circuit-switching network.

Data Link Layer

The Data Link Layer is concerned with addressing at the physical machine
level. Protocols at this layer are involved with communications
controllers, their chips, and their buffers. Ethernet is supported at this
layer by TCP/IP.

Two additional TCP/IP protocols, ARP and RARP, can be viewed as existing
between the network and data link layers. ARP is the Ethernet Address
Resolution Protocol. It maps known IP addresses (32 bits long) to Ethernet
addresses (48 bits long). RARP (or Reverse ARP) is the IP Address Resolution
Protocol. It maps known Ethernet addresses (48 bits) to IP addresses (32
bits), the reverse of ARP.

Network Layer

Internet Protocol (IP) and Internet Control Message Protocol (ICMP) are
the protocols present at the Network Layer.IP provides machine-to-machine
communication. It performs transmission routing by determining the path a
transmission must take, based on the receiving machine?s IP address. IP also
provides transmission-formatting services; it assembles data for transmission
into an Internet datagram. If the datagram is outgoing (received from the
higher layer protocols), IP attaches an IP header to it. This header contains
a number of parameters, including the IP addresses of the sending and
receiving hosts.

ICMP sends error or control messages to other hosts. It provides communication of Internet software between machines.

Transport Layer

The TCP/IP Transport Layer protocols enable communications between
processes running on separate machines. Protocols at this level are TCP
and UDP.

Transmission Control Protocol (TCP) enables applications to talk to each
other via virtual circuits, as thought they had a physical circuit between
them. TCP is a connection-oriented, reliable protocol; any data written to
a TCP connection will be received by its peer in sequence, or an error
indication will be returned.

User Datagram Protocol (UDP) is the alternative protocol available at
the Transport Layer. UDP is a connectionless datagram protocol. Datagrams
are groups of information transmitted as a unit to and from the upper layer
protocols on sending and receiving hosts. UDP datagrams use port numbers to
specify sending and receiving processes. However, no attempt is made to
recover from failure or loss; packets may be lost with no error indication
returned.

Whether TCP or UDP is used depends on the network applications invoked by
the user. For example, if the user invokes telnet, that application passes
the user?s request to TCP. If the user?s request involves the Domain Name
Services, that application passes the request to UDP.

Application Layer

A variety of TCP/IP protocols exist at the Application Layer. Here is a
description of some of the more widely used:

telnet
The Telnet protocol enables terminals and terminal-oriented processes to
communicate on a network running TCP/IP. It is implemented as the program
telnet on the local machine and the daemon telnetd on the remote machine.
Telnet provides a user interface through which two hosts can open
communications with each other, then send information on a
character-by-character or line-by-line basis. The application includes a
series of commands.

The telnetd daemon on the remote host handles requests from the telnet
command.

ftp
The File Transport Protocol (FTP) transfers files to and from a remote
network. The protocol includes the ftp command on the local machine and
ftpd daemon on the remote machine. ftp lets you specify on the command line the
host with whom you want to initiate file transfer and options for
transferring the file. The ftpd daemon on the remote host handles the
requests from your ftp command.

tftp
The Trivial File Transfer Protocol (TFTP) enables users to transfer files
to and from a remote machine. Like ftp, tftp is implemented as a program on
the local machine and as a daemon (tftpd) on the remote machine. tftp
invokes a command interpreter for transferring files and maintains a
connection between two machines between file transfers.

Domain Name Service
The Domain Name Service (DNS) is a protocol that provides domain-name-to-
address-mapping of forwarding hosts and mail recipients on a network.

Other application layer protocols exist that are also implemented as a
program on the local machine and a daemon on the remote one; examples of
these are rlogin and rlogind. Which permit a user to log in to a remote
machine; rsh and rshd which enable the user to spawn a shell on a remote
machine, and finger and fingerd, which permit a user to obtain information
about users on remote machines.

To avoid the need to have an excess of daemons running all times the
daemon inetd is initiated at start-up time. After consulting the
/etc/inetd.conf file, inetd runs appropriate daemons as needed. For example,
the daemon rlogind will be run by inetd whenever there is a request for a
remote login from another machine, and only at that time and for the
duration of the remote login.

guidob (guidob@synnergy.net)
Synnergy Networks (c) 1998,
http://www.synnergy.net