Re: File downloading
"rik_saunderson" <[email protected]> Tue, 01 Sep 2009 16:53:18 -0000
| Newsgroups | gmane.network.gnutella.devel |
|---|---|
| Message-ID | <[email protected]> |
How do common implementations of hole punching and TLS work? Am I correct in thinking that Hole Punching and Push Proxying are one and the same thing? If not, how does it actually work in a gnutella context? What's the process by which two servents engage in a TLS file transfer? The donloader sends a query message. The uploader sends a query hit. Something happens and then the uploader sends the downloader the file over TLS. What's the bit in the middle? Thanks, Rik --- In [email protected], Raphael_Manfredi@... wrote: > > Quoting rik_saunderson <rik.saunderson@...> from ml.gnutella.dev-forum: > :I am trying to understand modern implementations of the gnutella protocol, and > :I'm having problems understanding newer methods of file downloading. > > You got it correctly. The hardest part is getting the HTTP/1.1 protocol > correctly. Don't forget that HTTP/1.1 implies support for persistent > connections and chunked transfer encoding. Don't forget to output the > proper Content-Length headers on your 200 replies and Content-Range on > your 206 replies. > > You need to be HTTP/1.1 compliant plus handle all the Gnutella-specific > headers with their proper semantics (e.g. X-Alt, X-NAlt, X-Hostname, etc...). > > :Observing file transfer in Wireshark, I sometimes don't see any of the above. I do see: > :GET /client_startup, which is presumably a message sent by the client on startup. > :GET /p.xml where p.xml is an xml file > > No idea what the above is. It does not look like a Gnutella transfer to me. > > :My question is, have I interpreted the last two correctly, and are there other > :ways of downloading files that I haven't been able to find? > > There is only ONE way to download files: through HTTP/1.1. After that, you > have several URN structures to handle to map the requested resource. Note that > a magnet: is a URI, and therefore cannot be used to download directly. It > needs interpretation to find the proper URLs to request. > > I'm sure you realize this is going to be a huge implementation effort to > get something robust. There's a lot of plumber work to do before you can > even start getting something useful done. > > Raphael >