Beep Drink Carton 2012
   HOME

TheInfoList



OR:

The Blocks Extensible Exchange Protocol (BEEP) is a framework for creating network application protocols. BEEP includes building blocks like framing, pipelining, multiplexing, reporting and authentication for connection and message-oriented peer-to-peer (P2P) protocols with support of asynchronous full-duplex communication. Message syntax and semantics is defined with BEEP profiles associated to one or more BEEP channels, where each channel is a full-duplex pipe. 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 pipes 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 TLS may refer to: Computing * Transport Layer Security, a cryptographic protocol for secure computer network communication * Thread level speculation, an optimisation on multiprocessor CPUs * Thread-local storage, a mechanism for allocating vari ...
for encryption and SASL for authentication.


History

In 1998 Marshall T. Rose, who also worked on the POP3, SMTP, and SNMP protocols, designed the BXXP protocol and subsequently handed it over to the Internet Engineering Task Force ( IETF) workgroup in summer 2000. In 2001 the IETF published BEEP () and BEEP on
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 ...
() 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) or Uniform Resource Name ( URN). In the past the URI 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 format. Example profile identifier:


Messages and Frames

BEEP messages are structured according to the MIME standard. There are sometimes misunderstandings about BEEP using XML 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 ser ...
or XML as well as binary data. XML is used in the channel management and the
TLS TLS may refer to: Computing * Transport Layer Security, a cryptographic protocol for secure computer network communication * Thread level speculation, an optimisation on multiprocessor CPUs * Thread-local storage, a mechanism for allocating vari ...
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 (
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 ...
) 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 (QoS) and to avoid starvation and deadlock.


External links


BEEPcore.org
Official 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-parameters
Standard track BEEP profiles registry *
Introduction to BEEP
' on IBM.com


References

{{reflist Network protocols Internet protocols