LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: Data Piping

To: "Steve Gonczi" <Steve.Gonczi@xxxxxxxxxxxxxxxxxx>
Subject: Re: Data Piping
Cc: <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>, <debian-firewall@xxxxxxxxxxxxxxxx>
From: "Ryu, Cheol" <ryuch@xxxxxxxx>
Date: Thu, 9 Nov 2000 10:15:43 +0900
With HTTP/1.1 specification, you can request many objects(files) in a HTTP connection,
if real web servers behind a Load Balancer could collaborate to serve for one TCP conection
without knowing happens at the load balancer. Performance would be improved even in
persist HTTP connections.
 
Let me explain one apllication;
Resonate(www.resonate.com)  has a patent on delayed resource binding, according to
the URL which the client requests they select a web server. But if the requests are in one
persistent connection, they probably need switch to another server according to the URL
binding rule. They can disconnect the original connection and can establish a new connection
internally, but they can also maintain multiple connections. If you keep TCP end points
(IP address and Port Number) and TCP sequence number, you can demultiplex or translate.
 
Basically, this is one of NAT techniques.
 
---
Ryu, Cheol
 
----- Original Message -----
Sent: Wednesday, November 08, 2000 11:56 PM
Subject: RE: Data Piping

This seems like a multiplexing problem.
 
I assume you will want to de-multiplex at some later point. 
 
(I can not fathom an application that would want to irreversibly mix together a bunch of
independent tcp streams, but perhaps my powers of imagination are lacking).
 
 
The approach would be along these lines:
 
1) Accept all incoming connections
2) Whenever you read() a chunk of bytes from one of them, wrap these bytes into 
your own custom header, which should have at least an ID to signify the original connection where you
received it, possibly a sequence  number, and the length of the chunk.
3) Given the above, you simply write all such chunks preceded by the above header to the output
tcp stream.
4) The recipient can read the above chunks into separate buffers, and decipher the header.
Given that, the messages can now be reassembled into the original streams.
 
cheers,
 
/sG
-----Original Message-----
From: Michael McConnell [mailto:michael@xxxxxxxxxxxxxx]
Sent: Wednesday, November 08, 2000 1:03 AM
To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx; debian-firewall@xxxxxxxxxxxxxxxx
Subject: Data Piping

Ok here goes some crazy idea.
 
What I want to do is accept multiple TCP connections, but yet, PIPE all the DATA into one single TCP connection?
 
TCP---------\
                \
TCP-----------\
                 \
TCP-------------======== TCP
                 /
TCP----------/
 
Hmm, lets see how outlook does with ANSI...
 
 
Theories?
 
Mike
<Prev in Thread] Current Thread [Next in Thread>