Spriken ze Interwebs?

Tuesday, February 28, 2006

Proxies, Reverse Proxies, etc

Okay, so here's about a hundred(err...) or so links about web proxies:

Wikipedia(all hail..) has a good overall introduction to web proxy servers.
Creating a reverse proxy with Apache.
The Squid Proxy
Web site optimization dot com has a good intro to http compression
Another site talking about http compression
CGI PRoxy
Off topic : The GIF controversy

No idea what this is

Benefits of httpd compression


This looks quite interesting:

zRPC - Cooperative Compression and Decompression:

"Overview

This is a very interesting proxy server. It compresses and decompresses data for transmission over low-speed links such as modems. The idea is simple, a compression proxy at the side of the hi-speed link (e.g. Your Local ISP), a decompression proxy at the side of the low-speed link (e.g. John Q. Modem-User). To handle the compression and decompression tasks, a repository of network computers that donate their processing power to speed up the process. So, modem user makes a request to the decompression proxy The proxy requests the page from the compression proxy. The compression proxy grabs the page and sends it out to be compressed by one of the network computers. The Network computer (zRPC server) compresses the data (a very CPU intensive process) and sends it back to the compression proxy. This proxy sends the compressed data over the low-speed link (the modem) to the decompression proxy on the user's side. The decompression proxy sends out the compressed data to a local zRPC server to decompress the data. That server handles the decompression, and sends it back to the decompression proxy. Finally, the decompression proxy sends the uncompressed page that John Q. Modem-User wanted to the user. A simple idea; complicated implementation. However, that is all transparent to the user. All the user knows is he gets his web pages faster over his modem link. No extra money, no extra hardware, no broadband required.

This idea has been used in NetZero Hi-Speed and EarthLink Accelerator. However, they are not using the zRPC uzProxy.

"


A bunch of links

Saturday, February 25, 2006

Apache Virtual Hosts

onLAMP provides amazing(ok well helpful... I mean you could say it's amazing because it's helpful ..err) and easy to understand. If only it came with coffee. Yeah...Anyways, here is some useful information on creating your own virtual hosts.
http://www.onlamp.com/pub/a/apache/2003/07/24/vhosts.html
You can check out the Apache Documentation about virtual hosts as well - I love Apache documentation - its easy to understand and there's examples and the fonts are cool. And I love the colour scheme...and I'm so totally a man. And not a girl.
http://httpd.apache.org/docs/1.3/vhosts/

Tutorials in pcap and libnet

http://www.cet.nau.edu/~mc8/Socket/Tutorials/section1.html
Another really good tutorial from reactor-core
I will keep adding more and more as I find them... ;-)

Some other potentially useful sites:

http://www.packetfactory.net/projects/

Speak of the devil - http://www.packetfactory.net/projects/packit/

Another great Libnet tutorial is available at http://www.security-labs.org/index.php3?page=libnet

Packet Sniffing and Injection

Packet Sniffing using libpcap and packet injection using libnet can (hopefully) allow you to implement (ahem to some extent) your own network stack without having to modify the kernel. The only thing to consider is that this is like basically implementing a kernel-level module (for want of a better term) in user-space. So, there may be performance hits in terms of processing power (you're basically implementing two parallel network stacks). Also, because it's in user-space, it will be a mission to any network layer interception of application data that needs to use your particular stack - which basically means that each application that's supposed to use your new stack will have to be modified. Whew. Errors ommissions and random events of unpleasantness excepted.


Some posts on kernel level vs user level network stack implementations :

http://www.ussg.iu.edu/hypermail/linux/kernel/9611.0/0102.html

Some more considerations:
http://www.tcpdump.org/lists/workers/2004/03/msg00152.html

Implementing network protocols at user level:
http://citeseer.csail.mit.edu/thekkath93implementing.html