Re: [discuss] questions about Ultrapeers and Leafnodes

"Philippe Verdy" <[email protected]> Fri, 6 May 2005 23:41:04 +0200
Newsgroups gmane.network.gnutella.limewire.general
Organization Ordinateur Personnel
Message-ID <003c01c55284$4e7b20a0$0701a8c0@bruchner>
From: "=E5=B0=B9=E4=BD=90=E5=AE=81" <[email protected]> To: "discuss" <d=
[email protected]>
> I still have some questions about the Leaf mode and ultrapeer mode in=20
> Gnutella. I notice in the rfc of Gnutella, it says "leaves never relay=20
> queries between ultrapeers". if a situation is set like this:
> 1) an ultrapeer A received a query
> 2) A knows one of its leaves, named B might answer the query,then A=20
> forwards the query to B
> 3) B has 3 ultrapeer connections, they are A, C and D respectively.

> will B forwards the query to ultrapeer C and D?

NO, absolutely NO. It's up to C and D to receive the query from another w=
ay,=20
exactly like when A received its copy of the query.

> or "leaves never relay queries between ultrapeers" means that B won't=20
> forward the query to C and D.
> and are leaves the stop points of all queries?

That's exactly the meaning of the sentence. Leaf nodes like B must NEVER=20
reroute the queries they receive from any one, even if they have a=20
connection with other ultrapeers than A, and even if C and D have not sen=
t=20
to leaf B their own copy of the same query.

The main interest of the leaf/ultrapeer architecture is exactly based on=20
this fundamental statement, that leaf nodes never relay any broadcasted=20
message. The broadcast search neatwork only operates within the set of=20
ultrapeers (and of old legacy 0.4-like servents).

(old legacy 0.4 servents are those that do not implement the leaf=20
requirements, and are now highly deprecated; some modern servents acting =
as=20
Ultrapeers may still accept connections from those non-leaf non-ultrapeer=
=20
nodes, but will severely limit their capacity to reroute any message by=20
forcing all broadcast messages like searches they send to them with a TTL=
=3D1,=20
so that these messages will stop its route immediately once received by t=
his=20
old node.)

In addition, leaf nodes normally don't accept any incoming Gnutella=20
connection from leaf nodes, unless they are upgrading their operating mod=
e=20
to Ultrapeer mode after the election process.

> Anyone  who can answer this for me will be highly appreciated!!

These requirements for leaf nodes is what makes that broadcasts will only=
=20
occur within a much smaller network of ultrapeers only, and leaf nodes ar=
e=20
left outside of this undirected random network. This allows expanding=20
considerably the total searchable network diameter, because UltraPeers ar=
e=20
shielding leaf nodes and are filtering most non matching queries.

An Ultrapeer needs to be able to support at least 30 parallel connections=
=20
with leaf nodes, and will typically maintain at least 3 routes with other=
=20
Ultrapeers. Ultrapeers route messages between each other in a much smalle=
r=20
network, so random broadcasts still exist in this network. Typically, the=
=20
number of leaf nodes connected to an ultrapeer will rapidly reach about 2=
0,=20
and will them slowly grow up to nearly 30 (sometimes more if the Ultrapee=
r=20
can handle more connections). The average leaf nodes per UP is then about=
=20
30, meaning that there should be only about 3% ultrapeers and 96% of leaf=
=20
nodes in Gnutella.

But Gnutella has now a third level of Ultrapeers: those (such as LimeWire=
)=20
that implement the UP-to-UP QRP algorithm. This allows those ultrapeers t=
o=20
shield themselve each other (for the last hop only), instead of just rely=
ing=20
on the random broadcast algorithm. This also increases the visible networ=
k=20
diameter. Those Ultrapeers should have at least 3 connections to other=20
UP-to-UP capable ultrapeers, and can keep at least one connection availab=
le=20
for other non UP-to-UP capable ultrapeers, in addition to the 30 connecti=
ons=20
they allow from incoming leaf nodes.

There are other protocol specifications that allow reducing considerably =
the=20
bad effect of search broadcasts. Notably dynamic querying.=20


_______________________________________________
discuss mailing list
[email protected]
http://www.limewire.org/mailman/listinfo/discuss