Protocol (computer)
In computer science a protocol is a formally defined method of communication between two or more computing devices in a computer network. What is commonly referred to as a protocol is generally a stack of specifications, each building upon the others to define all aspects of communication.
Protocols have a wide range in complexity. On one end of the spectrum, the electrical characteristics of ones and zeros within a particular digital logic family might be considered a protocol. Similarly, the sequence of modulated infrared light emitted by a television remote control is also a protocol. A more complicated example of a protocol is the Transfer Control Protocol over Internet Protocol used extensively in the internet, or even higher level protocols built on top of TCP/IP.
A Stack of Protocols
Main article: OSI model
The Open Systems Interconnection initiative suggests a seven-layer model to define a protocol. In their model, a protocol is defined (from lowest to highest level):
- Physical Layer -- Defines electrical and/or physical specifications for the communications. For instance, it may specify disjoint voltage ranges for binary ones or zeros. This layer would also specify things such as baud rate, transmission line termination, and many other things.
- Data Link Layer -- Defines for communications between two adjacent (i.e. directly connected) devices. Specifies things such as how packets are framed, and how to detect and correct errors which occur in the physical layer.
- Network Layer -- Defines how individual communications can be routed between non-adjacent devices. This is only necessary if more than two devices need to communicate (i.e. a network).
- Transport Layer -- Defines further abstractions to the network layer, hiding implementation details such as network congestion or maximum frame sizes.
- Session Layer -- Defines further abstractions to the transport layer, yielding the illusion that each channel of communications is a continuous stream of information instead of discrete frames or packets.
- Presentation Layer -- Defines conventions for representing common types of information. For instance, ASCII is a convention which specifies, among other things, how to represent each letter of the alphabet as an integer, in a platform- and architecture- independent manner. Under this definition, any file format could be considered a presentation layer, if that file format were integral to the operation of the protocol.
- Application Layer -- Defines application specific uses for the network. Common examples of this are HTTP or FTP.
List of Protocols
And many, many more.