Protocol (computing)
In
computing, a
protocol is a convention or standard that controls or enables the connection,
communication, and
data transfer between two computing endpoints. In its simplest form, a protocol can be defined as
the rules governing the
syntax,
semantics, and synchronization of communication. Protocols may be implemented by hardware, software, or a combination of the two. At the lowest level, a protocol defines the behavior of a hardware connection.
Protocols should be distinguished from technical
standards, which variously specify how to build a computer or related hardware device, or how the contents of a file are structured, or describe the static structure of a
network interface. Protocols are generally used to define real-time communications behavior, while standards are used to govern the structure of information committed to long-term storage.
It is difficult to generalize about protocols because they vary so greatly in purpose and sophistication. Most protocols specify one or more of the following properties:
* Detection of the underlying physical connection (wired or wireless), or the existence of the other endpoint or node
*
Handshaking* Negotiation of various connection characteristics
* How to start and end a message
* How to format a message
* What to do with corrupted or improperly formatted messages (
error correction)
* How to detect unexpected loss of the connection, and what to do next
* Termination of the session or connection
The widespread use and expansion of
communications protocols is both a prerequisite to the
Internet, and a major contributor to its power and success. The pair of
Internet Protocol (or IP) and
Transmission Control Protocol (or TCP) are the most important of these, and the term
TCP/IP refers to a collection (or
protocol suite) of its most used protocols. Most of the Internet's communication protocols are described in the
RFC documents of the
Internet Engineering Task Force (or IETF).
Object-oriented programming has extended the use of the term to include the
programming protocols available for connections and communication between objects.
Generally, only the simplest protocols are used alone. Most protocols, especially in the context of communications or networking, are layered together into
protocol stacks where the various tasks listed above are divided among different protocols in the stack.
Whereas the protocol stack denotes a specific combination of protocols that work together, the
Reference Model is a
software architecture that lists each layer and the services each should offer. The classic seven-layer reference model is the
OSI model, which is used for conceptualizing protocol stacks and peer entities. This reference model also provides an opportunity to teach more general
software engineering concepts like hiding, modularity, and delegation of tasks. This model has endured in spite of the demise of many of its protocols (and protocol stacks) originally sanctioned by the
ISO. The
OSI model is not the only reference model however.The other reference model is called "".
The
Internet model, also known as the
TCP/IP model, is a five-layer reference model that saw increased use starting in the
1990s. Although its layer names are a subset of those of the
OSI model, the responsibilities of each layer of the
TCP/IP model are subtly different from those in the
OSI model.
Although occasionally synonymous with the term
protocol stack, a
protocol suite is a collection by layer of all protocols that implement that layer for any given reference model. The
Internet protocol suite provides an example for the Internet reference model.
A distinction that is useful in the understanding of protocols is that between a
functional protocol and a
stimulus protocol. This distinction can be used to select a protocol based on the capabilities of end points and the computing architecture chosen.
*
Internet protocol suite*
Communications protocol*
List of network protocols