A protocol stack or communication stack is a particular implementation of software in a collection of protocols (suite) of computer networks. The terms are often used interchangeably. Strictly speaking, the suite is the definition of the protocols and the stack is its software implementation.
Individual protocols within a suite are often designed with a single purpose. This modularization facilitates design and assessment. Since each protocol module usually communicates with 2 others, they are represented as layers in a stack of protocols. The lowest protocol always handles physical interaction at a low level of the hardware. Each higher layer adds more possibilities. User applications usually only handle the top layers.