Conceptually, the TCP/IP protocol stack consists of four layers,
each layer consisting of one or more protocols. A protocol is a set
of rules or standards that two entities must follow so as to allow
each other to receive and interpret messages sent to them. The entities
could, for example, be two application programs in an application
protocol, or the entities might be two TCP protocol layers in two
different IP hosts (the TCP protocol).
Figure 1 illustrates the TCP/IP
protocol stack.
Figure 1. The TCP/IP
protocol stack
Programs are located at the process layer; here they can interface
with the two transport layer protocols (TCP and UDP), or directly
with the network layer protocols (ICMP and IP).
- TCP
- Transmission Control Protocol is a transport protocol providing
a reliable, full-duplex byte stream. Most TCP/IP applications use
the TCP transport protocol.
- UDP
- User Datagram Protocol is a connectionless protocol providing
datagram services. UDP is less reliable because there is no guarantee
that a UDP datagram ever reaches its intended destination, or that
it reaches its destination only once and in the same condition as
it was passed to the sending UDP layer by a UDP application.
- ICMP
- Internet Control Message Protocol is used to handle error and
control information at the IP layer. The ICMP is most
often used by network control applications that are part of the TCP/IP
software product itself, but ICMP can be used by authorized user processes
as well. PING and TRACEROUTE are examples of network control applications
that use the ICMP protocol.
- IP
- Internet Protocol provides the packet delivery services for TCP,
UDP, and ICMP. The IP layer protocol is unreliable (called a best-effort
protocol). There is no guarantee that IP packets arrive, or that
they arrive only once and are error-free. Such reliability is built
into the TCP protocol, but not into the UDP protocol. If you need
reliable transport between two UDP applications, you must ensure that
reliability is built into the UDP applications.
- ARP/ND
- The IPv4 networking layer uses the Address Resolution Protocol
(ARP) to map an IP address into a hardware address. In the IPv6 networking
layer, this mapping is performed by the Neighbor Discovery (ND function).
On local area networks (LANs), such an address would be called a media
access control (MAC) address.
- RARP
- Reverse Address Resolution Protocol is used to reverse the operation
of the ARP protocol. It maps a hardware address into an IPv4 address.
Note that both ARP packets and RARP packets are not forwarded in IP
packets, but are themselves media level packets. ARP and RARP are
not used on all network types, as some networks do not need these
protocols.