*** Welcome to piglix ***

Networking stack


The protocol stack is an implementation of a computer networking protocol suite. The terms are often used interchangeably. Strictly speaking, the suite is the definition of the protocols, and the stack is the software implementation of them.

Individual within a suite are often designed with a single purpose in mind. This modularization makes design and evaluation easier. 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", physical interaction of the hardware. Every higher layer adds more features. User applications usually deal only with the topmost layers (see also OSI model).

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 ("card drivers"). For example, this interface level would define how transport software would talk to Ethernet hardware. Examples of these interfaces include ODI and NDIS in the Microsoft Windows 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 in the Unix world, and Winsock in the Microsoft world.

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 Ethernet). However, neither of these two protocols will be able to transport information from A to C, because these computers are conceptually on different networks. One, therefore, needs an inter-network protocol to "connect" them.


...
Wikipedia

...