Matthew Toseland wrote:
> TCP/IP is end-to-end. It loses packets on each hop.

There's really no comparison between Freenet requests and IP packets.
Packets don't backtrack. Routers don't set local timeouts for every
packet. There's no flow control or retransmission between routers, only
between endpoints. TCP is *not* a good model for what happens end-to-end
across Freenet. (In fact the term end-to-end doesn't even make sense - a
single insert can reach multiple endpoints!)

*However* TCP is a good model for what happens between neighbouring
nodes. In fact it's such a good model that I think we should copy it.

> One request and one ack use the same number of bytes in immediate terms of 
> just that message, but a request will use a LOT more bytes overall.
> 
> Therefore, IMHO it would be inappropriate to limit messages rather than 
> requests. We may need to limit messages as well, but requests are the main 
> concern.

You're right, token passing isn't redundant after all. We need a
transport layer that limits messages, and a load balancing layer that
limits requests. They should be separate layers.

> How exactly do you decide which requests to accept then?

You don't decide, because there's no rejection any more. You just hand
out tokens and try to forward whatever requests your peers in their
infinite wisdom decide to send you.

Cheers,
Michael

Reply via email to