[rabbitmq-discuss] ? about rabbitmq 1.7.1 and 7-byte frame headers

james anderson james.anderson at setf.de
Tue Feb 16 10:49:47 GMT 2010


good morning;

thank you for clarifying.

On 2010-02-16, at 07:04 , Matthias Radestock wrote:

> James,
>
> james anderson wrote:
>> a recently built rabbitmq server server indicates - even to the  
>> level  of the response server properties, that it implements "amqp  
>> 8-0", but
>> a. if one connects with a 9-1 version token, it does not  
>> disconnect.  it proceeds to negotiate the connection.
>
> That is expected behaviour for a 0-8 broker, at the least by some  
> interpretations of the spec - if the client specifies a higher  
> version number than supported by the server then negotiation  
> proceeds with the server sending the version it supports.

that is to say, page-52/line-38 and the diagrams at page-52/line32  
and page-53/line-11 of amqp8-0.pdf are no more a misrepresentation of  
"accordingly" for a purported r8.0 broker than the indication in  
`amqp-xml-doc0-8.pdf` that it applies to "AMQ Protocol (major=10,  
minor=3)"?

>
> NB: the correct protocol header for 0-9-1 is in fact AMQP 0-0-9-1,  
> whereas for 0-8 it is AMQP 1-1-8-0, and for 0-9 it is AMQP 1-1-0-9.  
> Yes, that is crazy.

cool.
hmmm... what does the ampq 1-1-9-1 protocol header from the r8.0 and  
the r9.1 specs actually mean?
is that what you intended, above, with "AMQP 0-0-9-1"?

>
>> b. it does not use the 8-byte frame headers which appear in every   
>> instance of the amqp0-8 specification the net had yielded, but  
>> rather  7-byte headers that are specified for 9-1.
>
> All implementations of 0-8 actually use a 7-byte header. Hence the  
> correction in 0-9-1.

do these two sentences boggle any other minds?
a naive reader of the r8.0 specification might misconstrue it to  
require, that such a correction would apply to a broker which  
purports to follow the r9.1 spec, but not to broker which purports to  
follow the r8.0 spec. in this light, i have rescanned the r8.0 spec,  
but did not observe any formulations of the order "or any later  
protocol version." ok. anyway, i gather that page-35/line-26 and  
page-53/line-29 of amqp8-0.pdf are history. is there anything else of  
which a naive implementor should be aware?

? is there an amqp8-0-bis.pdf which describes the protocol which  
nominal r8.0 brokers purport to follow?

? is there a document which describes the protocol which the rabbitmq  
broker purports to follows?

? the rabbitmq site did yield a description[1] of r8.0 to r9.1. it  
might make sense were at least that document to indicate differences  
between r8.0  as specified and as implemented. If one is to follow  
this line from that differences document,

  "Framing and connection establishment (modulo the removed frame- 
types and the spec version number advertisement, respectively) are  
identical."

literally rather than respective the specification texts, and if  
there is to be no revision to the r8.0 specification document, there  
would be some value to taking amqp8-0.pdf down, as it requires  
evidently false performance.

? are there actually any r9.0 brokers in the wild?

on a meta level: how does this community achieve interoperability,  
other by knowing each other's code?


------

[1] :  http://dev.rabbitmq.com/wiki/Amqp08To091

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20100216/a5a6755e/attachment.htm 


More information about the rabbitmq-discuss mailing list