TCP/IP protocols are built on a simplified five-layer model (cf. figure 2.11) which was adapted to the internetworking concept and architectural model.
The physical layer is the hardware connection between hosts on a given network.
The basic unit of communication is the bit.
The network interface layer puts the network hardware frames together, and map IP addresses to hardware addresses. It handles communications between machines on the same physical network. It is of course hardware specific, and its characteristics and abilities differ widely between different implementations.
The basic unit of communication is the frame.
The internet layer is the only internet specific layer. It insures communications between machines on different physical networks, thus providing the layers above with a virtual network connecting all the hosts which are actually on the internet.
So the internet layer is the one handling all the complex routing decisions required by an internet.
The service provided is actually an unreliable, best effort, connectionless packet delivery system. Unreliable because packet delivery is not guaranteed. Connectionless because each packet is treated independently from the others. Best effort since unreliability appears only because of exhaustion of resources or failure of underlying networks. As we said before, the internet layer presents the layers above the image of a packet switching network, while dealing underneath with an internetwork.
The basic unit of communication is the IP datagram.
The transport layer provides end-to-end communication, i.e. communication between two application programs. The characteristics of this layer depends much on the protocol used. The TCP/IP protocol suite proposes two protocols with very different abilities at this level, TCP and UDP.
UDP provides unreliable, best effort, connectionless packet delivery service. TCP provides reliable stream delivery.
The basic unit of communication is the UDP datagram or the TCP stream.
The application layer consists of the application programs used to access services across the Internet (so user's programs are usually one level above the application layer).
The basic unit of communication is a message or a stream.