
The Blocks Extensible Exchange Protocol (BEEP) is a framework for creating network application protocols. BEEP includes building blocks like framing,
pipelining Pipelining may refer to:
* Pipeline (computing), aka a data pipeline, a set of data processing elements connected in series
** HTTP pipelining, a technique in which multiple HTTP requests are sent on a single TCP connection
** Instruction pipeli ...
, multiplexing, reporting and authentication for connection and message-oriented
peer-to-peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer ...
(P2P) protocols with support of asynchronous
full-duplex
A duplex communication system is a point-to-point system composed of two or more connected parties or devices that can communicate with one another in both directions. Duplex systems are employed in many communications networks, either to allow ...
communication.
Message syntax and semantics is defined with BEEP profiles associated to one or more BEEP channels, where each channel is a
full-duplex
A duplex communication system is a point-to-point system composed of two or more connected parties or devices that can communicate with one another in both directions. Duplex systems are employed in many communications networks, either to allow ...
pipe
Pipe(s), PIPE(S) or piping may refer to:
Objects
* Pipe (fluid conveyance), a hollow cylinder following certain dimension rules
** Piping, the use of pipes in industry
* Smoking pipe
** Tobacco pipe
* Half-pipe and quarter pipe, semi-circul ...
. A framing-mechanism enables simultaneous and independent communication between peers.
BEEP is defined in independently from the underlying transport mechanism. The mapping of BEEP onto a particular transport service is defined in a separate series of documents.
Overview
Profiles, channels and a framing mechanism are used in BEEP to exchange different kinds of messages. Only content type and encoding are defaulted by the specification leaving the full flexibility of using a binary or textual format open to the protocol designer. Profiles define the functionality of the protocol and the message syntax and semantics. Channels are
full-duplex
A duplex communication system is a point-to-point system composed of two or more connected parties or devices that can communicate with one another in both directions. Duplex systems are employed in many communications networks, either to allow ...
pipes
Pipe(s), PIPE(S) or piping may refer to:
Objects
* Pipe (fluid conveyance), a hollow cylinder following certain dimension rules
** Piping, the use of pipes in industry
* Smoking pipe
** Tobacco pipe
* Half-pipe and quarter pipe, semi-circul ...
connected to a particular profile. Messages sent through different channels are independent from each other (asynchronous). Multiple channels can use the same profile through one connection.
BEEP also includes
TLS for
encryption
In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can dec ...
and
SASL for
authentication
Authentication (from ''authentikos'', "real, genuine", from αὐθέντης ''authentes'', "author") is the act of proving an assertion, such as the identity of a computer system user. In contrast with identification, the act of indicat ...
.
History
In 1998
Marshall T. Rose
Marshall may refer to:
Places
Australia
* Marshall, Victoria, a suburb of Geelong, Victoria
Canada
* Marshall, Saskatchewan
* The Marshall, a mountain in British Columbia
Liberia
* Marshall, Liberia
Marshall Islands
* Marshall Islands, an ...
, who also worked on the
POP3
In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. POP version 3 (POP3) is the version in common use, and along with IMAP the most comm ...
,
SMTP
The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typic ...
, and
SNMP
Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behaviour. Devices that typically ...
protocols, designed the BXXP protocol and subsequently handed it over to the
Internet Engineering Task Force
The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and ...
(
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and ...
) workgroup in summer 2000. In 2001 the
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and ...
published BEEP () and BEEP on
TCP () with some enhancements to BXXP. The three most notable are:
* Using application/octet-stream as default "Content-Type".
* Support multi-reply for messages.
* Changing the name from BXXP to BEEP
BEEP Session
To start a BEEP session, an initiating peer connects to the listening peer. Both peers are sending a positive reply containing a greeting element immediately and simultaneously. The greeting contains up to three different elements:
* features optional channel management profile feature tokens supported by the peer.
* localize optional preferred language tags for reporting and messages.
* profile profiles supported by the peer.
Example greeting and answer:
L:
I:
L: RPY 0 0 . 0 110
L: Content-Type: application/beep+xml
L:
L:
L:
L:
L: END
I: RPY 0 0 . 0 52
I: Content-Type: application/beep+xml
I:
I:
I: END
Profiles
Profiles define the syntax and semantics of messages and the protocol functionality based on BEEP. A single BEEP session can provide access to multiple profiles. To identify a profile a unique string is assigned to it. This profile identifier has the format of a
Uniform Resource Identifier
A Uniform Resource Identifier (URI) is a unique sequence of characters that identifies a logical or physical resource used by web technologies. URIs may be used to identify anything, including real-world objects, such as people and places, conc ...
(
URI Uri may refer to:
Places
* Canton of Uri, a canton in Switzerland
* Úri, a village and commune in Hungary
* Uri, Iran, a village in East Azerbaijan Province
* Uri, Jammu and Kashmir, a town in India
* Uri (island), an island off Malakula Isla ...
) or
Uniform Resource Name
A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that uses the scheme. URNs are globally unique persistent identifiers assigned within defined namespaces so they will be available for a long period of time, even after the r ...
(
URN
An urn is a vase, often with a cover, with a typically narrowed neck above a rounded body and a footed pedestal. Describing a vessel as an "urn", as opposed to a vase or other terms, generally reflects its use rather than any particular shape or ...
). In the past the
URI Uri may refer to:
Places
* Canton of Uri, a canton in Switzerland
* Úri, a village and commune in Hungary
* Uri, Iran, a village in East Azerbaijan Province
* Uri, Jammu and Kashmir, a town in India
* Uri (island), an island off Malakula Isla ...
format of the profile identifier lead to confusion, because it is similar to a web address. To avoid misunderstandings newer profiles should use the
URN
An urn is a vase, often with a cover, with a typically narrowed neck above a rounded body and a footed pedestal. Describing a vessel as an "urn", as opposed to a vase or other terms, generally reflects its use rather than any particular shape or ...
format.
Example profile identifier:
Messages and Frames
BEEP messages are structured according to the
MIME
Multipurpose Internet Mail Extensions (MIME) is an Internet standard that extends the format of email messages to support text in character sets other than ASCII, as well as attachments of audio, video, images, and application programs. Messa ...
standard. There are sometimes misunderstandings about BEEP using
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. ...
in messages, but only a small subset of XML is used by channel 0 and it is transparent to the profile designer (BEEP user). It's up to the profile designer which message content format is used. This can be any textual format like
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 ...
or
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. ...
as well as binary data.
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. ...
is used in the channel management and the
TLS standard profile defined with BEEP.
Example of a successful channel close message exchange from RFC3080.
C: MSG 0 2 . 235 71
C: Content-Type: application/beep+xml
C:
C:
C: END
S: RPY 0 2 . 392 46
S: Content-Type: application/beep+xml
S:
S:
S: END
Larger messages are split into multiple parts and distributed over a number of sequence frames.
Exchange Types
BEEP defines 5 message types to allow most of the application protocols patterns needed. They are the following:
Some of the most common application protocol patterns are implemented like follows:
* Request-reply using MSG for request and RPY and ERR for replies
* Single request-multiple replies using MSG, and a series of ANS replies ended by a NUL frame
* Unacknowledged notification using MSG without any reply
Flow Control
BEEP supports sequence frames (SEQ) to implement flow control at channel level. Sequence frames are defined i
RFC 3081 section 3.3 The
Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is common ...
(
TCP) defines a sequence mechanism on transport layer level and supports flow control related to the connection. Flow control on channel level in BEEP is needed to ensure no channel or big message monopolizes the entire connection. To that extend sequence frames are used to support
quality of service
Quality of service (QoS) is the description or measurement of the overall performance of a service, such as a telephony or computer network, or a cloud computing service, particularly the performance seen by the users of the network. To quantitat ...
(QoS) and to avoid starvation and deadlock.
External links
BEEPcore.orgOfficial website
*: ''The Blocks Extensible Exchange Protocol Core''
*: ''Mapping the BEEP Core onto TCP''
*: ''On the Design of Application Protocols'', design considerations of the BXXP protocol as told by its creators
*: ''Reliable Delivery for syslog - BEEP Profile''
*: ''XML-RPC Profile for BEEP''
*: ''Using SOAP in BEEP''
*: ''The TUNNEL Profile''
iana.org/assignments/beep-parametersStandard track BEEP profiles registry
*
Introduction to BEEP' on IBM.com
References
{{reflist
Network protocols
Internet protocols