Protocol stack software is a set of hierarchical network protocols that manage the flow of data in communication systems. Each protocol in the stack or suite supports the protocol above it and uses the one below it. Protocol stacks can be divided into application, transport, and physical categories (or layers). For example, in a Win32 computer system, the Winsock (Windows socket) dynamic link library (DLL) implements the transmission control protocol/Internet protocol (TCP/IP) from the network interface card (NIC) to an application such as a Web browser or e-mail client. This protocol is carried across a transport mechanism such as a Cat5e network cable. Most protocol stacks operate within the open system interconnection (OSI) reference model of communications. The TCP/IP protocol stack is a common example of a stack that uses protocol stack software.
Protocol stack software is typically proprietary but designed to comply with industry standards. For example, a Bluetooth protocol stack specification is designed to facilitate the harmonious communication between otherwise incompatible manufacturer devices and applications. It includes the link manager protocol (LMP) that operates at the network layer, responsible for link control of data transfer across the network irrespective of the topology. The LMP, in turn, passes to the host controller interface (HCI) of the protocol stack software by Bluetooth within the transport layer (layer 4). The flow control and management of data takes place in layer 5, the session layer. The logical link control and adaptation protocol (L2CAP) enters this layer of the protocol stack software and in turn interconnects the RFCOMM, a simple transport protocol stack that emulates RS232 serials ports and service discovery protocol (SDP) in the higher sections of layer 5. SDP connects straight through to the applications layer (layer 7) of the protocol stack software while RCOMM moves through the wireless application protocol (WAP) and object exchange protocol (OBEX).
The use of protocol stack software is widespread in industrial, engineering, and technical applications. Nearly every application developed features protocol stack software as a proprietary module usually within larger, enterprise-wide programs. Protocol stack software is most commonly found in network security, monitoring, and Internet-based applications.