The software of a given layer on the sending machine communicates
with the same
layer on the receiving machine. A layer is a collection of related
functions that provides
services to the layer above it and receives service from the layer below it. For example, one
lower layer might send packets on behalf of the higher layer that is focused on retransmitting lost
packets. This higher layer,
in turn, serves an even higher layer that generates the data in the first
place. In the example of figure 4–5, a layer of software inside a Web browser generates data to
send to a Web server. This Web browser application passes the data to
the transmission control
protocol (TCP) layer software on the sending machine,
which provides several services,
including retransmitting lost packets. The TCP
layer passes the software down to the IP layer,
which provides the service of carrying the packet end to end through all the routers on the
network. Although one layer relies on another to get things done, the layers are designed so
the
software of one layer can be replaced with other software, while all other layers
remain the
same. This modularity has proven especially useful in deploying new
types of networks—for
example, as IP version 4 (IPv4) networks are transitioned
to IP version 6 (IPv6), the successor
protocol for the Internet.
The communications modules taken together are called a protocol stack
because they
consist of several of these layers, one on top of the other. The OSI conceptual model defined by
the International Organization for Standardization in 1980 includes seven such layers, each with a
defined role in moving data across a network. At the “top,” layer seven, the application layer, acts
as a window to the
communications channel for the applications themselves by interpreting data
and turning it into meaningful information for applications. The application might
be, for
example, a Web browser or server, an email reader or server, a peer-to-peer file copy program,
or an enterprise financial system.
Layer six, the presentation layer, deals with how data elements will be represented for
transmission, such as the order of bits and bytes in numbers, the
specific method for encoding
textual information, and so on.
Layer five, the session layer, coordinates sessions between two communicating
machines, helping to initiate and maintain them as well as to manage
them if several different
communications streams are going between them at the
same time.
Layer four, the transport layer, supports the reliability of the communications
stream
between two systems by offering functions such as retransmitting lost
packets, putting packets
in the proper order, and providing error checking.
Layer three, the network layer, is responsible for moving data across the network from
one system, possibly across a series of routers, to the destination
machine. This layer is
absolutely critical to making the network function end to
end.
Layer two, the data link layer, moves data across one “hop” of the network, getting it
from one system, perhaps to its destination on the same LAN, or to the
nearest router, so it can be
sent between LANs or to a point-to-point link.
At the “bottom” of the stack, layer one, the physical layer, actually transmits
the bits
across the physical link, which could be copper, fiber, wireless radio transmitters and receivers
or another physical medium.
Today’s Internet is loosely based on the OSI model, but it does not break out
each layer
exactly as the OSI model specifies. Most commonly, IP is paired with a transport protocol called
the transmission control protocol (TCP)—hence the
term TCP/IP to refer to the duo of