RE: Re: Does the Push message still exist?

"Philippe Verdy" <[email protected]>
Newsgroups gmane.network.gnutella.devel
Organization Ordinateur Personnel
Message-ID <007d01c86da2$64393760$0a01a8c0@HARNON>
 

> -----Message d'origine-----
> De : [email protected] [mailto:[email protected]] 
> De la part de wwiltse25150
> Envoyé : mardi 12 février 2008 14:55
> À : [email protected]
> Objet : [the_gdf] Re: Does the Push message still exist?
> 
> Thanks for the good information. I believed that using UDP 
> was a programmer's preference and not an accepted standard 
> for certain messages. I used TCP exclusively in my 
> application so it makes sense I wouldn't see UDP PUSH 
> messages. That brings up a few more questions for me:
> 
> 1. What port do I listen to so I might catch a UDP message? 
> Is it the same port I'm connected to other ultrapeers on via TCP?

Normally the same port.

> 2. Is there any difference in the PUSH message structure sent 
> vis UDP? I'm just wondering if there will need to be any 
> changes in my code that increases the hops and decreases the 
> TTL value.

Same structure, but there's an extra header in UDP datagrams to indicate
that they are transporting Gnutella protocol (because there's no initial
session)

> 3. When the firewalled servent receives the PUSH message, 
> will they respond to the requesting computer using TCP or UDP?

A Push message (whever it comes from UDP or TCP) is a request to connect
back to a remote host. The response is a connection back with a TCP session
to the host indicated in the push message. This connection may be used for
allowing the remote host to start, after accepting the TCP session, a HTTP
request or a Gnutella connection, or any type of request that requires a
session (including chat), as if this remote host sending the Push had
initiated the session itself to you agent.

Initially the PUSH message was used to reply only to a file transfer
request, now it is a more general mecanism to open any kind of TCP session.
The sender of the push message once it accepts the back connection, can
imediately act as if this was a fresh outgoing session, even though the
session is effectively incoming. If you accept a push message and initiate
the requested TCP session, just connnect to that host and then act as if it
was a new incoming TCP session: wait for the HTTP GET request, or the
GNUTELLA CONNECT request, or any kind of TCP session you currently accept.

The "raison d'être" of PUSH message is to reach hosts that are otherwise not
reachable directly. It is now rare in Gnutella, because setup of firewalled
agents is greatly eased by providing help to users about their current
"firewalled" status, by autoconfiguring some firewalls using UPNP. Push
messages are the nearly last chance, after failures to reach a host. If this
even fails, the last possibility is to use another agent acting as a proxy
for all the session.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.