Joerg Sonnenberger wrote:
The problem with proxy architectures is of course the second copying, esp. kernel -> userland -> kernel, which can put a bunch of additional load on frontend machines. Using approaches similar to state-full firewall handling e.g. of FTP can be used for this as well, e.g. make it a transparent proxy. This is a lot more work though. I'm not aware of any such Open Source solution though. It shouldn't be hard to do that e.g. in a small kernel module though.
are you thinking of a way to bond two file descriptors together? that would be nice. first you do all header processing and whatnot, and then you just say bond_fd(server_fd /* read side */, client_fd /* write side */); and you can't read on server_fd anymore, and all data arriving there will be directly written to client_fd. this way you still could read the client piplined/keep-alive headers, but once your server has initiated transfers, you are not interested in seeing the data from the server any more, it should just pass the box into the other tcp stream. you could even recycle the mbuf, if you optimize the bonding deep enough - basically a sendfile for sockets. cheers simon -- Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\ Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ / Party Enjoy Relax | http://dragonflybsd.org Against HTML \ Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
signature.asc
Description: OpenPGP digital signature
