Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General Gnutella Development Discussion (https://www.gnutellaforums.com/general-gnutella-development-discussion/)
-   -   Why I didn't receive any answer to my query's (https://www.gnutellaforums.com/general-gnutella-development-discussion/93190-why-i-didnt-receive-any-answer-my-querys.html)

yodoloi04 August 7th, 2009 10:08 AM

Why I didn't receive any answer to my query's
 
Hi All,

I implemented on my client, the handshake, ping, pong and query messages.
But now I have a problem with the query message, what happend is:

I connect to a peer whitout any problem (here are the options used):

GNUTELLA CONNECT/0.6
X-Max-TTL: 3
X-Query-Routing: 0.1
User-Agent: GnutConsole/0.1
Listen-IP: xxxx.xxxx.xxxx.xxxx
Pong-Caching: 0.1
X-Ultrapeer: False
X-Locale-Pref: en
Remote-IP: xxxx.xxxx.xxxx.xxxx

send a ping message and receive a pong, and then I send a query message:

ID: 2FA318ABA818354A1389265472F91600
Payload: 128 (query)
TTL: 3
Hops: 0
Length: 13
--> Query
Min Speed: 226
Search: game

After that, I didn't receive any QueryHit to my request. If I do the same test but with an ultrapeer on my private Lan I receive a QueryHit. So as it's the same code, I didn't understand why I works with an ultrapeer on my private network and it didn't work with an ultrapeer on the internet gnutella network.

I did some analyses with wireshark and in the two cases in send the same messages and I don't think it's a network problem (because I receive a Tcp ack from the ultrapeer).

Someone as an idea about why I don't receive a queryHit ?

Thanks in advance for your help
Juan

arne_bab August 9th, 2009 01:48 PM

Did you receive a response (GNUTELLA OK...) and send your ACK to it (the handshake consists of 3 messages)?

Which program do you use locally and which was the node accessed over the internet?

yodoloi04 August 11th, 2009 11:46 PM

Hi Arne,

Yes I received a response and I send the ACK to it. This is correct as I can send ping and pong messages to the peer after that (it works fine with the ping and pong messages).

I used to do my tests locally Phex and frostwire, the node accessed over the internet is a limewire peer (version 5.x.x.)

Actually I don't implement the vendor code (0x31) and the query routing protocol (0x30), are theses two messages mandatory to have a good communication to the peers ? If I read the RFC, these two messages are recommended but not mandatory.

Regards
Juan

arne_bab August 12th, 2009 12:58 AM

Is the other client behind a NAT (private LAN)?

If both are behind a NAT, they need PushProxies to download from each other, so Phex won't send results (as Gregor answered in thread from lovric: http://www.gnutellaforums.com/genera...tml#post347561 ).

yodoloi04 August 13th, 2009 08:02 AM

Hi Arne,

I don't know if the other client is behind a NAT (I guess yes, as now days everybody is behind NAT with the internet's routers/modems), but as teh other client is ont the gnutella network on internet I should received "Query Hits" to my Query" messages.

I think I don't need the PushProxies, because I don't want to dwonload a file, I'm just waiting a query hit message.

Actually I'm looking on the different messages used during the handshaking, because I don't implement all the options (for example I don't use the vendor codes), and maybe this is why I didn't receive query hits message.

Regards
Juan

arne_bab September 6th, 2009 12:56 AM

If you don't use a vendor code, you're very likely to be rejected without furtehr notice. It's become a requirement.

(Which specs do you use?)


All times are GMT -7. The time now is 04:25 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.