The set of protocols used in a communication networks. A communication stack or protocol stack is a hierarchical set of software layers, starting from the application layer at the top to the physical layer at the bottom, where the actual signal transmission takes place. The stack resides in each communicating device, and the layered approach lets different protocols be swapped in and out to accommodate different network architectures. For more details about each layer, see OSI model.