27.01.2014 Views

AMQP Specification Transport

AMQP Specification Transport

AMQP Specification Transport

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>AMQP</strong> <strong>Specification</strong>.<br />

Connection<br />

Definition: REVISION<br />

Value: 0<br />

Description: protocol revision<br />

3.2 Opening a Connection<br />

Each <strong>AMQP</strong> connection begins with an exchange of capabilities and limitations. After establishing or<br />

accepting a TCP connection and sending the protocol header, each peer must send an open control before<br />

sending any other frames. The open control describes the capabilities and limits of that peer. After sending<br />

the open control each peer must read its partner's open control and must operate within mutually<br />

acceptable limitations from this point forward.<br />

TCP Client<br />

TCP Server<br />

==================================<br />

TCP-CONNECT<br />

TCP-ACCEPT<br />

PROTO-HDR<br />

PROTO-HDR<br />

OPEN ---+ +--- OPEN<br />

\ /<br />

wait x wait<br />

/ \<br />

proceed proceed<br />

...<br />

3.3 Pipelined Open<br />

For applications that use many short-lived connections, it may be desirable to pipeline the connection<br />

negotiation process. A peer may do this by starting to send commands or controls before receiving the<br />

partner's connection header or open control. This is permitted so long as the pipelined commands and<br />

controls are known a priori to conform to the capabilities and limitations of its partner. For example, this<br />

may be accomplished by keeping the use of the connection within the capabilities and limits expected of all<br />

<strong>AMQP</strong> implementations as defined by the specification of the open control.<br />

<strong>AMQP</strong> <strong>Transport</strong> v. 1-0 Page 8 of 83

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!