Gnutella
- Each gnutella node is
a "servent" (agent?).
- New nodes join by communicating with at least one existing
node. A handful is better for connectivity.
- When A wants to do a search, it sends the query to B. B
returns any matching documents, records the request, and passes
it to C. C will return the replies which B will then forward to
A.
- Each request is given a unique ID, so duplicates are dropped.
- Each request also has a Time To Live (TTL), so it will
eventually die.
- All data uses http, and port 80.
- It has some problems:
- A search with TTL=10 will reach a million hosts. This
does not scale well.
- A TTL horizon imposes a horizon on all users. I can only
talk to my near neighbors, no matter how many times I
try.
- Nodes can provide false results.
- There is not way to know which node the data came
from.
- Could these problems be solved by making the nodes into
selfish agents?
José M. Vidal
.
7 of 8