On Fri, Jul 25, 2003 at 07:49:37AM +0100, Gordan wrote:
> On Friday 25 July 2003 02:42, Toad wrote:
> > Various details have led us to the conclusion that NGRouting will not
> > work effectively unless we implement connection multiplexing first.
> > Proposal:
> >
> > New presentation protocol version representing MUXing mode.
> 
> Why is multiplexing on the application protocol level better than just opening 
> a separate TCP session? I would have thought this would not be desirable 
> because it is possible to throttle bandwidth "per TCP session" on some of the 
> fancier routers, which would allow people with control over intermediary 
> routers to throttle Freenet traffic by taking advantage of multiple 
> application sessions going over a single TCP session.

Because opening a new TCP connection is monstrously expensive, and even
more so with our authentication code. Even the HTTP working group
figured this out - remember WebMux? Additionally, many operating systems
limit the number of connections available. NGRouting will route
messages according to the expected time for the request to succeed if it
is routed on a given connection (yes, we deal with failures
appropriately - read the other thread); given this, we don't want it to
have to worry about opening new connections. Once we have multiplexing,
we can route only to nodes that we have open connections to, and try to
keep a connection open to each node in the routing table (thelema
originally suggested this, it was not sensible before NIO, but it is
looking useful now).
> 
> I do sort of see a plus point for having only one TCP session to each node, 
> but are multiple TCP sessions really a problem? For example, if a node is 
> twice as fast or twice as useful, why is it a problem to have twice as many 
> TCP connections to it?

Yes. Opening a connection then sending a message is a LOT slower than
just sending a message on an open connection, even if you have to wait
for a currently sending packet to get sent first.
> 
> Additionally, when is the backward compatibility going to be removed?

When we feel like it. Remember the old datastore? The conversion code is
STILL there. We should think about removing it.
> 
> Gordan

-- 
Matthew J Toseland - [EMAIL PROTECTED]
Freenet Project Official Codemonkey - http://freenetproject.org/
ICTHUS - Nothing is impossible. Our Boss says so.

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to