[Click] tcp stack in click

Beyers Cronje bcronje at gmail.com
Sat Feb 4 14:40:46 EST 2006


Hi Weidong,

I've done some work on indirect tcp as well as snoop tcp implementations in
click. Most work however has been on a proprietery transparent tcp proxy
type implementation we use in our transparent P2P cache application.
Unfortunately I'm not at liberty to share the code at this stage.

Depending on what you want to accomplish I'm sure a standard Tcp Proxy could
be implemented using standard NAT elements with little or no custom code
required. If however you want to implement buffering, spoofing or
transparent proxy type implementation then a good starting point would be to
investigate Indirect TCP and Snoop Tcp as a base.

Indirect Tcp:
http://citeseer.ist.psu.edu/cache/papers/cs/4058/ftp:zSzzSzpaul.rutgers.eduzSzpubzSzbadrizSzitcp-tr314.pdf/bakre94itcp.pdf

Snoop Tcp :
http://nms.lcs.mit.edu/~hari/papers/snoop.html

Click Snoop Tcp (Dont think it's a fully functional element, but a good
reference):
<clickdir>/tcpudp/snooptcp* element

Linux Snoop Implementation:
http://www.cir.nus.edu.sg/research/software/snoop/release/

Centralized Tcp:
http://www.ecsl.cs.sunysb.edu/kctcp_uctcp/index.html


For our application we found running two instances of click on the same box
to work best in our specific implementation. One instance being Click kernel
module doing standard switching/routing and identification of interested
flows. Once interested flows have been identified the kernel module routes
packets for these flows to the second instance of click running in usermode,
where all tcp functions are implemented. Reason for this being that we used
our own data buffers for tcp data duplication, when a 3rd party is
introduced in a Tcp connection :), and available kernel memory was not
enough.

Feel free if you want more specific information or advice.

Cheers

Beyers

On 2/3/06, Weidong Cui <wdc at eecs.berkeley.edu> wrote:
>
> Hi All,
>
> I was wondering if anybody has used the tcp stack in
> elements/local/tcp*.{cc|hh} or writen your own.  The word is that the code
> in the 'local' directory hasn't been tested very well and may not be
> stable.  I was trying to use a tcp stack in click to set up a tcp proxy for
> an application I am developing.  I would really appreciate it if you could
> share with me your experience.
>
> Thanks,
> Weidong
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>


More information about the click mailing list