These are the rules or standard that defines the syntax, semantics and synchronization of communication and possible error recovery methods. Protocols may be implemented by hardware, software, or a combination of both, Communicating systems use well-defined formats for exchanging various messages. Each message has a meaning intended to elicit a response from a range of possible responses pre-determined for that particular situation. The specified behavior is independent of how it is to be implemented. Communications protocols have to be agreed upon by the parties involved, to reach agreement, a protocol may be developed into a technical standard. Multiple protocols often describe different aspects of a single communication, a group of protocols designed to work together are known as a protocol suite, when implemented in software they are a protocol stack. Most recent protocols are assigned by the IETF for Internet communication, the ITU-T handles telecommunications protocols and formats for the PSTN. As the PSTN and Internet converge, the two sets of standards are also being driven towards convergence, the nature of a communication, the actual data exchanged and any state-dependent behaviors, is defined by these specifications. In digital computing systems, the rules can be expressed by algorithms, expressing the algorithms in a portable programming language makes the protocol software operating-system independent. Operating systems usually contain a set of cooperating processes that manipulate shared data to communicate each other. This communication is governed by protocols, which can be embedded in the process code itself. In contrast, because there is no memory, communicating systems have to communicate with each other using a shared transmission medium. Transmission is not necessarily reliable, and individual systems may use different hardware or operating systems, to implement a networking protocol, the protocol software modules are interfaced with a framework implemented on the machines operating system. This framework implements the functionality of the operating system. The best known frameworks are the TCP/IP model and the OSI model and this gave rise to the concept of layered protocols which nowadays forms the basis of protocol design. Systems typically do not use a protocol to handle a transmission. Instead they use a set of cooperating protocols, sometimes called a family or protocol suite. Some of the best known protocol suites are TCP/IP, IPX/SPX, X.25, AX.25, the protocols can be arranged based on functionality in groups, for instance there is a group of transport protocols
Figure 2. The TCP/IP model or Internet layering scheme and its relation to some common protocols.
Figure 3. Message flows using a protocol suite. Black loops show the actual messaging loops, red loops are the effective communications between layers enabled by the lower layers.
Figure 4. Message flows in the presence of a router