File downloading
"rik_saunderson" <[email protected]> Wed, 12 Aug 2009 13:39:19 -0000
| Newsgroups | gmane.network.gnutella.devel |
|---|---|
| Message-ID | <[email protected]> |
I am trying to understand modern implementations of the gnutella protocol, and I'm having problems understanding newer methods of file downloading. I have been able to find specs on the following methods: Standard file downloading: The downloader sends an HTTP GET request in the form GET /get/fileindex/filename. The file sharer then sends the file. Push file downloading: The downloader is behind a firewall and can't receive files normally. The downloader sends the file sharer a PUSH gnutella message, advertising an available port and ip address. The file sharer sends a message to establish the TCP connection in the format GIV fileindex:serventid/filename HUGE: Instead of a filename, either a Namespace-id hash or a sha1 hash is sent, in the format GET /uri-res/N2R?urn:sha1:hash Magnet: Files are downloaded through websites in the format GET magnet: with various options such as xt for exact topic, kt for keyword search and so on an so forth. Partial file download: The downloader only requests part of the file in the format GET /partials/filename or hash or whatever. 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 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? Thanks, Rik