Sorry; I managed to send this message before I was done with it.

-------- Original Message --------
Subject: Re: Questions on Freenet - Second Try
Local Time: May 1, 2017 7:43 PM
UTC Time: May 1, 2017 11:43 PM
From: st...@asksteved.com
To: Discussion of development issues <devl@freenetproject.org>, 
philipp.spei...@uni-ulm.de <philipp.spei...@uni-ulm.de>

I'm not confident in my answers; I will provide guesses where I have them. For 
better results you'll either have to hope someone more knowledgeable than I 
answers you, or read the source code. https://github.com/freenet/fred

-------- Original Message --------
Subject: Questions on Freenet - Second Try
Local Time: April 25, 2017 8:14 AM
UTC Time: April 25, 2017 12:14 PM
From: philipp.spei...@uni-ulm.de
To: Support <supp...@freenetproject.org>
Devl@freenetproject.org

Hello

Unfortunately, my previously transmitted questions have not been
answered so far. Maybe the large amount of questions was daunting. I
have reduced it to a few questions which can be answered, hopefully,
in a straightforward fashion.

Path Folding and Connection Managment:

- Is it required that the data source actually starts to send a "path
folding" offer back along the path or might any node on the path
simply decide to send its node reference back along the path, hoping
to get new connections?

It is my guess that a path folding offer can come from any node along the path.

- Does the data source always send the "path folding" offer back or is
it possible to omit this. If the latter is the case, does this imply
that there is no chance for creating new connections on this
particular path?

I think it can be omitted.

- If one node answers the "path folding" offer and a new connection is
created, is this "path folding" offer then passed back further along
the path or does it stop at that node?

I don't know.

- When connecting to a new node, how is the Friend-of-a-Friend
information (i.e. the locations of the node's neighbors) exchanged?

The only message type I've noticed that looks relevant is this one: 
https://github.com/freenet/fred/blob/build01478/src/freenet/io/comm/DMT.java#L1345

I have not verified it's actually in use as such.

- Churn leads to frequent changes in the neighborhood of a node. How
is the Friend-of-a-Friend information maintained to keep the
maintenance overhead small?

You mean in terms of transfer of that information?

Freenet's Load Balancing:

- Relaying a request requires to keep track of it, i.e. the node needs
to store information to be able to return the corresponding response
at a later time. Due to resource limitations, a node cannot accept
arbitrary requests and maintain state for them.

-> So, requests can actually decide to reject a request depending on
their current load. The corresponding connection is marked as "backed
off", i.e. an exponential growing backoff time is determined to pause
the connection. No requests are sent to the node during the backoff
time to prevent putting further load on it.
-> However, Matthew Toseland writes in his work
http://www.toselandcs.co.uk/flogmirror/mjt92-diss-final.pdf that also
a message is sent back to the request initiator in this case.
=> I would like to know, what is the purpose of this message?

https://github.com/freenet/fred/blob/build01478/src/freenet/io/comm/DMT.java#L473
 ?

My expectation is to have an explicit feedback mechanism instead of an implicit 
one based on lack of results.

=> Does the request initiator react in some way in this situation?

I'm not certain about that either. I would expect it prompts backoff; there are 
probes for RejectedOverload percentages.

Reply via email to