Collaborative computing/Protocol & protocol stack
Protocol & protocol stacks
To reduce the complexity of the design of networks, these are often organized as a stack of layers. Each layer has the task of offering specific services to the higher layer while shielding it from the technicalities within the service. Each layer has a defined agreement between the communicating parties on how the communication should proceed called a protocol; a protocol defines the syntax, semantics, synchronization and addressing. A list of protocols, one per layer, is called a protocol stack.
When transferring data between two machines, no data are transferred directly from layer n on Machine A to layer n on Machine B. All data are passed downward through the layers until the lowest layer is reached. Below this layer is the physical medium which connects Machine A and Machine B.
Between layers is an interface, which defines the services the lower layer makes available to the upper one. Therefore it is important that each layers role and the interface between layers are clearly defined. With clearly defined interfaces it is easier to replace a protocol in one layer without it affecting the overall network architecture.
A message sent through a multilayered communication process, as in the aforementioned network architecture, builds up overhead. When a message passes through each layer from Machine A, headers are added to the data to help the protocols know how to treat these in the corresponding layers on Machine B.