The protocol stack or network stack is an
implementation of a
computer networking protocol suite or protocol family. Some of these terms are used interchangeably but strictly speaking, the ''suite'' is the definition of the
communication protocols, and the ''stack'' is the
software implementation of them.
Individual protocols within a suite are often designed with a single purpose in mind. This
modularization
Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a sy ...
simplifies design and evaluation. Because each protocol module usually communicates with two others, they are commonly imagined as
layers in a stack of protocols. The lowest protocol always deals with low-level interaction with the communications hardware. Each higher layer adds additional capabilities. User applications usually deal only with the topmost layers.
General protocol suite description
T ~ ~ ~ T
____
Imagine three computers: ''A'', ''B'', and ''C''. ''A'' and ''B'' both have radio equipment and can communicate via the airwaves using a suitable network protocol (such as
IEEE 802.11). ''B'' and ''C'' are connected via a cable, using it to exchange data (again, with the help of a protocol, for example
Point-to-Point Protocol). However, neither of these two protocols will be able to transport information from ''A'' to ''C'', because these computers are conceptually on different networks. An
inter-network protocol is required to connect them.
One could combine the two protocols to form a powerful third, mastering both cable and wireless transmission, but a different super-protocol would be needed for each possible combination of protocols. It is easier to leave the base protocols alone, and design a protocol that can work on top of any of them (the
Internet Protocol is an example). This will make two stacks of two protocols each. The inter-network protocol will communicate with each of the base protocol in their simpler language; the base protocols will not talk directly to each other.
A request on computer ''A'' to send a chunk of data to ''C'' is taken by the upper protocol, which (through whatever means) knows that ''C'' is reachable through ''B''. It, therefore, instructs the wireless protocol to transmit the data packet to ''B''. On this computer, the lower layer handlers will pass the packet up to the inter-network protocol, which, on recognizing that ''B'' is not the final destination, will again invoke lower-level functions. This time, the cable protocol is used to send the data to ''C''. There, the received packet is again passed to the upper protocol, which (with ''C'' being the destination) will pass it on to a higher protocol or application on ''C''.
In practical implementation, protocol stacks are often divided into three major sections: media, transport, and applications. A particular
operating system or platform will often have two well-defined software interfaces: one between the media and transport layers, and one between the transport layers and applications. The media-to-transport interface defines how transport protocol software makes use of particular media and hardware types and is associated with a
device driver
In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and ot ...
. For example, this interface level would define how
TCP/IP transport software would talk to the
network interface controller. Examples of these interfaces include
ODI
ODI may refer to:
* Object Design, Incorporated, a defunct database software company
* One Day International, cricket match
* Open Data Institute, a UK not-for-profit company promoting open data
* Open Data-Link Interface, an implementation of th ...
and
NDIS in the
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
and
DOS environment. The application-to-transport interface defines how application programs make use of the transport layers. For example, this interface level would define how a
web browser program would talk to TCP/IP transport software. Examples of these interfaces include
Berkeley sockets and System V
STREAMS
A stream is a continuous body of water, body of surface water Current (stream), flowing within the stream bed, bed and bank (geography), banks of a channel (geography), channel. Depending on its location or certain characteristics, a stream ...
in
Unix-like environments, and
Winsock for Microsoft Windows.
Examples
Spanning layer
An important feature of many communities of interoperability based on a common protocol stack is a spanning layer, a term coined by
David Clark
"Certain protocols are designed with the specific purpose of bridging differences at the lower layers, so that common agreements are not required there. Instead, the layer provides the definitions that permit translation to occur between a range of services or technologies used below. Thus, in somewhat abstract terms, at and above such a layer common standards contribute to interoperation, while below the layer translation is used. Such a layer is called a "spanning layer" in this paper. As a practical matter, real interoperation is achieved by the definition and use of effective spanning layers. But there are many different ways that a spanning layer can be crafted."
In the Internet protocol stack, the
Internet Protocol Suite constitutes a spanning layer that defines a
best-effort service
Best-effort delivery describes a network service in which the network does ''not'' provide any guarantee that data is delivered or that delivery meets any quality of service. In a best-effort network, all users obtain best-effort service. Under ...
for global routing of
datagrams at
Layer 3. The
Internet is the community of
interoperation based on this spanning layer.
See also
*
Cross-layer optimization
*
DECnet
*
Hierarchical internetworking model
The Hierarchical internetworking model is a three-layer model for network design first proposed by Cisco. It divides enterprise networks into three layers: core, distribution, and access layer.
Access layer
End-stations and servers connect to t ...
*
Protocol Wars
*
Recursive Internetwork Architecture
*
Service layer
In intelligent networks (IN) and cellular networks, service layer is a conceptual layer within a network service provider architecture. It aims at providing middleware that serves third-party value-added services and applications at a higher a ...
*
Signalling System No. 7
*
Systems Network Architecture
*
Wireless Application Protocol
*
X.25
References
{{DEFAULTSORT:Protocol Stack
Network protocols
Wikipedia articles with ASCII art