[Vortex] BUG: Split greetings message aborts connection

Jens Alfke jens at mooseyard.com
Thu Apr 24 16:56:36 CEST 2008


On 24 Apr '08, at 4:49 AM, Francis Brosnan Blazquez wrote:

> ..I understand implicitly that a beep peer sending a greeting must
> never go beyond 4096. This is because initial window size is 4096, and
> to update it you must have a channel created to issue a SEQ frame.

I see your point. But this, then, seems like an awkward limit in the  
BEEP protocol itself. Since URIs can be of arbitrary length, and since  
AFAIK there is no way to announce support for additional profiles  
after the connection opens, there's an inherent limit on how many  
profiles a peer can support.

(I'm certainly not about to hit that limit, but it's the only hard  
limit I've seen in the protocol, so I'm surprised.)

>> (b) other BEEP implementations are likely to break frames into small
>> chunks, since it's recommended in the RFC, so Vortex will run into
>> this issue when connecting to those clients.
>>
> I don't think so Jens. The RFC talks about MSS (which is usually 16K).
> It never talks about MTU.

I'm not a TCP expert, but I think you're mixing up MSS with something  
else. My reading indicates that the MSS is the size of the underlying  
transport packet (i.e. for Ethernet ~1500 bytes), minus the size of  
the TCP headers.

 From RFC 879 "TCP Maximum Segment Size":
>    To resolve the ambiguity in the TCP Maximum Segment Size option
>    definition the following rule is established:
> THE TCP MAXIMUM SEGMENT SIZE IS THE IP MAXIMUM DATAGRAM SIZE MINUS  
> FORTY.
> The default IP Maximum Datagram Size is 576. The default TCP Maximum  
> Segment Size is 536.

 From <http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci830944,00.html 
 >:
>> The maximum segment size (MSS) is the largest amount of data,  
>> specified in bytes, that a computer or communications device can  
>> handle in a single, unfragmented piece. [...] When the Internet's  
>> Transmission Control Protocol (TCP) is used to achieve an Internet  
>> connection, the computers being connected must each agree on, and  
>> then set, the MTU size acceptable to both. Typical MTU size in TCP  
>> for a home computer Internet connection is either 576 or 1500  
>> bytes. Headers are 40 bytes long; the MSS is equal to the  
>> difference, either 536 or 1460 bytes.


In other words, the BEEP RFC 3081 is recommending that frames be  
broken into chunks of less than 1kbyte.

> In general, a BEEP peer that do not use 4k as its default size will
> behave in an odd fashion (assuming default MSS handle by major OSes).

Remember, I'm not talking about the window size, rather about the  
maximum size of frame that a message will be broken into.

—Jens

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1875 bytes
Desc: not available
Url : http://lists.aspl.es/pipermail/vortex/attachments/20080424/b29dfb36/attachment.bin 


More information about the Vortex mailing list