Gnutella Forums  

Go Back   Gnutella Forums > Gnutella News and Gnutelliums Forums > General Gnutella / Gnutella Network Discussion
Register FAQ The Twelve Commandments Members List Calendar Arcade Find the Best VPN Today's Posts

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.


Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old August 23rd, 2001
Novicius
 
Join Date: August 23rd, 2001
Posts: 3
freak is flying high
Question Gnutella Technology Help!

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
Reply With Quote
  #2 (permalink)  
Old August 23rd, 2001
Disciple
 
Join Date: August 8th, 2001
Location: Jena (Germany)
Posts: 16
michas is flying high
Default

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
Reply With Quote
  #3 (permalink)  
Old August 23rd, 2001
Novicius
 
Join Date: August 23rd, 2001
Posts: 3
freak is flying high
Default

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
Reply With Quote
  #4 (permalink)  
Old August 23rd, 2001
Disciple
 
Join Date: August 8th, 2001
Location: Jena (Germany)
Posts: 16
michas is flying high
Default

Quote:
Originally posted by freak
My main question is the communcation through a firewall. How does servent A communicate with servent B (behind a firewall)?
servent A cannot open a conection to servent B, but servent B can open a connection to servent A.
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:
How does a discovery query work?
How does a search query work?
How does a file request work?
(From servent A to servent B)
did you read the mentioned page(es)?
Reply With Quote
  #5 (permalink)  
Old August 23rd, 2001
Novicius
 
Join Date: August 23rd, 2001
Posts: 3
freak is flying high
Default

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!
Reply With Quote
  #6 (permalink)  
Old August 23rd, 2001
Devotee
 
Join Date: May 21st, 2001
Posts: 22
Ahri is flying high
Default

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
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Fun with technology! DamianUK Open Discussion topics 1 January 9th, 2005 09:41 AM
Limewire ....Check out this ground breaking new p2p technology Unregistered New Feature Requests 4 June 26th, 2002 12:33 AM
Are some Gnucleus features outdated and lagging behind technology ? Unregistered Gnucleus (Windows) 2 May 10th, 2002 01:05 PM
MusicCity Morpheus 2.0 using Limewire Technology Unregistered Open Discussion topics 1 January 30th, 2002 05:25 PM
Why haven t the other clients adopted limewire technology? Unregistered Open Discussion topics 1 January 15th, 2002 10:48 PM


All times are GMT -7. The time now is 11:27 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.