In
computer networking
A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections ar ...
, a wire protocol refers to a way of getting
data
In the pursuit of knowledge, data (; ) is a collection of discrete values that convey information, describing quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpret ...
from point to point: A wire protocol is needed if more than one application has to interoperate. It generally refers to
communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
s higher than the physical layer.
In contrast to
transport protocol
Transport (in British English), or transportation (in American English), is the intentional movement of humans, animals, and goods from one location to another. Modes of transport include air, land ( rail and road), water, cable, pipelin ...
s at the transport level (like
TCP
TCP may refer to:
Science and technology
* Transformer coupled plasma
* Tool Center Point, see Robot end effector
Computing
* Transmission Control Protocol, a fundamental Internet standard
* Telephony control protocol, a Bluetooth communication s ...
or
UDP), the term ''wire protocol'' is used to describe a common way to exchange information at the application level. It refers to an
application layer
An application layer is an abstraction layer that specifies the shared communications protocols and interface methods used by hosts in a communications network. An ''application layer'' abstraction is specified in both the Internet Protocol ...
protocol and defines all the required attributes for the data exchange, like data types (units of data, message formats, etc.), communication endpoints
and capabilities (such as delivery guarantees, direction of communication, etc.). Usually, the data is represented at the application level as a common
infoset
XML Information Set (XML Infoset) is a W3C specification describing an abstract data model of an XML document in terms of a set of ''information items''. The definitions in the XML Information Set specification are meant to be used in ''other'' sp ...
(e.g.
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
,
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other s ...
,
YAML
YAML ( and ) (''see '') is a human-readable data-serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Ext ...
) and requires a mechanism of data binding (using e.g. a common encoding scheme like
XSD).
The wire protocol may be either text-based or a
binary protocol. Although an important architectural decision, this is a separate matter from the distinction between wire protocols and programmatic APIs.
In
electronics
The field of electronics is a branch of physics and electrical engineering that deals with the emission, behaviour and effects of electrons using electronic devices. Electronics uses active devices to control electron flow by amplification ...
, a wire protocol is the mechanism used to transmit data from one point to another.
Functionality
A wire protocol provides the means for the interoperation of one or more applications in a network. They often refer to distributed object protocols, or they use applications that were designed to work together. As the name suggests, these distributed object protocols run in different processes in one or several computers that are connected over a network.
Types
Wire protocols provide the means for a program running under one operating system to communicate with a program running under some other operating system over a network such as an organization's
intranet or the
Internet
The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a ''internetworking, network of networks'' that consists ...
. The protocol thus interconnects multiple platforms. Some wire protocols are language-independent, allowing the communication of programs written in different
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
s.
Examples of wire protocols include:
*
IIOP for
CORBA
The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sy ...
*
RTPS for
DDS
* Java Debug Wire Protocol (
JDWP) for Java debugging
*
JRMP for
RMI
RMI may refer to:
Science and technology
* Radio-magnetic indicator, an instrument used in aircraft navigation
* Repetitive motion injury, an injury to the musculoskeletal and nervous systems
* Richtmyer–Meshkov instability, an instability occu ...
*
SOAP
Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are used ...
for
Web services
*
AMQP for
message-oriented middleware
Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complex ...
PostgreSQL wire protocol
See also
*
Line code
In telecommunication, a line code is a pattern of voltage, current, or photons used to represent digital data transmission (telecommunications), transmitted down a communication channel or written to a storage medium. This repertoire of signals ...
References
Application layer protocols
{{Compu-network-stub