Packets to big error

Daniel Cunha <[email protected]> Thu, 15 Oct 2009 12:14:12 -0300
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
Hi,


I'm studying a bit the gnutella protocol for academic purposes. Because
of this I'm trying to develop a simple servent that works only in leaf mode.

The handshake and the ping and pong messages are working good,
apparently. The problem arrives when query messages are send, I receive
from the other side a message complaining about my packet size.

I'm using Phex to test in a private network, from this servent I can see
that it closes the connection displaying the message: "Error. Packet too
big. Disconnecting the remote host".

LimeWire send me a packet with "Packet Size Greater than 32k".

I wasn't able to identify the problem during the build of query packet.
Well, the query is send like this one:

           GUID: 16 bytes with random values
   Payload Type: 0x80
            TTL: 5
           HOPS: 0
 Payload Length: 9
  Minimum Speed: 0x8000
Search Criteria: foobar (terminated by 0x00)

When packet:

"k\002\000\000\260\003\000\000\334\003\000\000*\000\000\000\200\005\000\t\000\000\000\200\000foobar\000"
(it's a ruby string)

The byte size is 32.

Any idea why my packets have errors?

Another question, there is any protocol extension that is vital to a
good communication?


Thanks for any help,

Daniel Cunha