Re: Modern implementations of control messages (ping, pong etc.)

"rik_saunderson" <[email protected]> Tue, 11 Aug 2009 08:02:44 -0000
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
I'm very sorry to be dense, but yes I am.  I know that the client comes with a list of addresses to try, which will then be expanded out using pings, pongs etc.  However, I don't know how to find this list without digging through the source code.
I know there are also such things as HeadPings and HeadPongs (although I can't find a spec for them, if anyone knows how they work, please tell me).
I have also heard that there are GGEP blocks that deal with additional Pings and Pongs, but the only GGEP blokcs I can find specs for are PushProxy, H, T ALT, LF and u (if anyone knows where the specs of other GGEP blocks are, please tell me).

So, all in all, yes, how does one determine the initial set of IP and ports to connect to?
--- In [email protected], Raphael_Manfredi@... wrote:
>
> Quoting rik_saunderson <rik.saunderson@...> from ml.gnutella.dev-forum:
> :Hi there,
> :You said in your reply:
> :> Not all servents will send it out though, as it is not mandatory to initiate
> :> a connection (since you know the remote IP and port).
> :
> :How do you know the remote IP and Port?  Is this just the IP and Port that
> :replies to the GNUTELLA CONNECT message were sent to?
> 
> You need to know the remote IP:port of the host before attempting to connect
> to it.  The IP:port given in Node or Listen-IP headers are those of the
> connecting node, not those of the remote node to which you are connecting!
> 
> So the remote IP and port are prior knowledge necessary to establish a
> connection.
> 
> Now you're going to ask: how does one determine the initial set of IP and
> ports to connect to?
> 
> Raphael
>