I have started an open source project with the goal of writing a Network Accelerator with many of the same features commercially available products have. Some of these commercial products include Cisco WAAS, Riverbed RiOS, and Silver-Peak to name a few.
Iv already written a pre-alpha that runs as a Linux kernel module, and is capable of several of these features. Namely auto detection, and compression of TCP segments.
I have started to rewrite the software from its kernel module only state to a combination kernel module + user space service. The reason for doing this is to implement more advanced features that cannot be implemented in an interrupt context that the kernel module executes in.
The new user space service executes as a daemon, and is multi-threaded to improve the number of TCP packets that can be accelerated per second.
Both the existing pre-alpha, and new version use netfilter hooks to intercept traffic for acceleration. The new user space service has the additional ability for you to use iptable rules for buffering traffic into the user space application with the use of the Netfilter QUEUE. This allows you to bypass the use of the kernel module if desired.
Here are some things that will be involved in further development of this project.
- TCP/IP packet manipulation.
- Compression Algorithms.
- Hashing Algorithms.
- Client/Server Development.
I have put together a small portal for the project where you can download the source code for the current pre-alpha version.
I am pretty new to programing so the code will be pretty amateurish.