![]() |
|
Register | FAQ | The Twelve Commandments | Members List | Calendar | Arcade | Find the Best VPN | Today's Posts | Search |
General Gnutella / Gnutella Network Discussion For general discussion about Gnutella and the Gnutella network. For discussion about a specific Gnutella client program, please post in one of the client forums above. |
![]() |
| LinkBack | Thread Tools | Display Modes |
| |||
![]() I'm interested in figuring out how the Gnutella servents actually work (interacting with each other). I've surfed through a zillion pages (well, not exactly...) and I still can't quite grasp the ideas. I'm hoping someone can shed some light. 1. TCP/IP communication occurs between all the servents? 2. Is there a high occurence or chance of cyclic discovery or cyclic searches? (ie. I am new user A, and I connect to existing Gnutella servent B who is already connected to C and D. So i connect to B and discover C and D and they point me back at B) 3. How does the whole firewall interaction work? A sends a pull request to B (B is behind a firewall). It fails so A sends a push request to B. How does this request GET to B? Through the open ports (the message is disguised) or through an alternate means (A sends a request to C who somehow sends it to B)? 4. HTTP requests only occur for file requests and the rest (searches/discoveries) are done by TCP/IP? These are the main issues I'm trying to resolve... thanks for ALL your help! (If these questions make no sense... please bare with me) stan |
| |||
![]() well, in the internet everything works by tcp/ip, including http and gnutella. http usually works by sending a single request for a specific file, and the following answer will be the required file. gnutella works by constantly sending packages (for queries, replys, pings, pongs and pushes). when you are using a servent(like limewire, bearshare & co) all querys and answers are made on the gnutella net (i.e. all the people running a gnutella servant), the actual download occurs by http (like if you want do download a www-page.) for more information, ask google for "gnutella spec" or "gnutella specification". this will probably answer all your questions ![]() hth michas |
| |||
![]() My main question is the communcation through a firewall. How does servent A communicate with servent B (behind a firewall)? How does a discovery query work? How does a search query work? How does a file request work? (From servent A to servent B) Is a TCP/IP connection made through an open firewall port? I have a feeling it's quite simple, but I just keep missing the point. Please, if someone could just point it out to me... I'd REALLY appreciate it! Thanks. stan |
| |||
![]() Quote:
so if you are behind a firewall, you will probably only have outgoing conections. and others cannot take your files (http get), they have to ask you to giving the files to them.(gnutella push) Quote:
|
| |||
![]() I understand how it THEORETICALLY works and I've read throug the Protocol Specifications v0.4 along with other documents. However, nothing I've come across addresses this in detail. Which is why I'm posting here. Ok, so servent B (behind the firewall) has only outgoing capabilities... now how does a discovery work with servent A? I join servent A and in return servent A sends me a list of the servents it is connected to and a list of the files it has. How is this RETURN done? Does servent B send out an HTTP request to servent A for the above mentioned information? I think i'm getting the idea of things though... just a big more! ![]() THANKS! |
| |||
![]() i'm not an expert on this stuff, but i'll tell ya what i know we have servant A Servant A connects to another servant in one of 2 ways. 1)Servant A opens a port and listens for incoming connections. Another servant sends a connection request and servant A accepts. (Servant A has to wait to be discovered) 2) Servant A sends a connection request to another servant waiting for incoming connection. (Servant A has to discover another servant) If a firewall prevents servant A from opening a port and listening for connections, senerio number 1 is impossible, which means the servant can only conncet to others by making the connection itself. Once a connection is made, servant A can communitcate with its host freely with or without a firewall. This means it can send and receive queries and query hits with the servants it is connected too. Then we have downloading files. When servant A receives a query hit, and wants to download the file, servant A must first open a new connection with the comptuer that has the file. So, servant A sends a connection request to servant B. Then B will send the file to A. If servant B wants to download a file from servant A, and servant A is firewalled and can't accept connections, then instead of sending a conncetion request to A, B sends a Push request. A gets the push request and tries to connect to B, once the connection is established, A sends the file to B. http://dss.clip2.com/GnutellaProtocol04.pdf that is the Gnutella protocol specs, it explains everything |
![]() |
| |
![]() | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Fun with technology! | DamianUK | Open Discussion topics | 1 | January 9th, 2005 08:41 AM |
Limewire ....Check out this ground breaking new p2p technology | Unregistered | New Feature Requests | 4 | June 25th, 2002 11:33 PM |
Are some Gnucleus features outdated and lagging behind technology ? | Unregistered | Gnucleus (Windows) | 2 | May 10th, 2002 12:05 PM |
MusicCity Morpheus 2.0 using Limewire Technology | Unregistered | Open Discussion topics | 1 | January 30th, 2002 04:25 PM |
Why haven t the other clients adopted limewire technology? | Unregistered | Open Discussion topics | 1 | January 15th, 2002 09:48 PM |