Re: TCP Splice alleviates proxy bottleneck

lk@winux.com
Mon, 18 Jan 1999 23:36:12 -0500 (EST)


Alan Cox writes:
> From: alan@lxorguk.ukuu.org.uk (Alan Cox)
> To: lk@winux.com
> Cc: alan@lxorguk.ukuu.org.uk, linux-kernel@vger.rutgers.edu
> Subject: Re: TCP Splice alleviates proxy bottleneck
> Date: Mon, 18 Jan 1999 14:53:14 +0000 (GMT)
>
>> Thus, once the authentication is finished, the user level code in the
>> proxy takes itself out of the path.
>
> Yes I'm aware of the extra flexibility.
>
>> Their work on TCP Splice gives the efficiency of IP masquerading, yea,
>> even that of simple IP forwarding, to processes with the capabilities
>> of application level proxies.
>
> Their ? Having looked at the reference I'd like Larry McVoy's opinion on
> its originality 8)

I'm not sure what you mean by this. Are you referring to Larry McVoy's
paper "Splice - a push pull I/O model for Unix" dated 6/24/98 [1]?

If so, the model he presents is a bit different than theirs. A cursory
reading of his paper indicates to me that his model is intended to be
more general, i.e. not intended purely for TCP/IP, and as such it (rightly)
glosses over most of the TCP/IP-specific issues that Pravin and Maltz
address in their paper dated 3/17/98 [2]. They also have the advantage of
having implemented their ideas.

The notion of splicing a network connection between a client and a
server is not new and I didn't notice any of the authors claiming that
it is. My first experience with this kind of splicing was in 198"mumble"
with an authentication server for an early implementation of Datakit
at Bell Labs. I think network splicing in that context was "invented"
by Richard Karhuse, but it may be that he was not the first to invent
it either. It acted just as I described in my "easy example" where
the authentication server accepted a connection from a user, validated
their credentials, opened a connection to the target host, then spliced
the two connections together.

My point in bringing their work to the linux-kernel list was not to
proclaim their ordinality or uniqueness with this technique, but rather
to encourage the Linux developers to think about adding this kind of
functionality to the kernel.

"TCP Splice" could dramatically improve the performance of proxies that
run on Linux. I hope that someone with the knowledge and skill to
implement it, or something like it, will invest the effort to do so.
I would be a willing helper, but I am clearly not the best man for the job.

We've probably said enough about this on the mailing list to make
those who are interested read the papers, and to completely exhaust
our welcome with those are are not interested. If anyone would like
to pursue a Linux implementation of TCP Splice, please contact me.
I'll help in any way that I can.

-lda

References:

[1] http://www.bitmover.com/lm/papers/splice.ps
[2] http://www.cs.umd.edu/users/pravin/TR-21139.ps.gz

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/