Design and implementation of a content-aware switch using a network processor

Cluster based server architectures have been widely used as a solution to overloading in Web servers because of their cost effectiveness, scalability and reliability. A content aware switch can be used to examine the Web requests and distribute them to the servers based on application level information. In this paper, we present the analysis, design and implementation of such a content aware switch based on an IXP2400 network processor (NP). We first analyze the mechanisms for implementing a content-aware switch and present the necessity for an NP-based solution. We then present various possibilities of workload allocation among different computation resources in an NP and discuss the design tradeoffs. Measurement results based on an IXP 2400 NP demonstrate that our NP-based switch can reduce the http processing latency by an average of 83.3% for a 1 K byte Web page, compared to a Linux-based switch. The amount of reduction increases with larger file sizes. It is also shown that the packet throughput can be improved by up to 5.7x across a range of files by taking advantage of multithreading and multiprocessing, available in the NP.

[1]  Anil Rijsinghani,et al.  Computation of the Internet Checksum via Incremental Update , 1994, RFC.

[2]  Yitzchak M. Gottlieb,et al.  Building a robust software-based router using network processors , 2001, SOSP.

[3]  John H. Hartman,et al.  Optimizing TCP forwarder performance , 2000, TNET.

[4]  Eric Van Hensbergen,et al.  KNITS: switch-based connection hand-off , 2002, Proceedings.Twenty-First Annual Joint Conference of the IEEE Computer and Communications Societies.

[5]  Daniela Rosu,et al.  Kernel Support for Faster Web Proxies , 2003, USENIX ATC, General Track.

[6]  Mon-Yen Luo,et al.  Efficient Support for Content-based Routing in Web Server Clusters , 1999, USENIX Symposium on Internet Technologies and Systems.

[7]  Erich M. Nahum,et al.  Locality-aware request distribution in cluster-based network servers , 1998, ASPLOS VIII.

[8]  Sampath Rangarajan,et al.  On the Performance of TCP Splicing for URL-Aware Redirection , 1999, USENIX Symposium on Internet Technologies and Systems.

[9]  David A. Maltz,et al.  TCP Splice for application layer proxy performance , 1999, J. High Speed Networks.

[10]  David Mosberger,et al.  A tool for measuring web server performance , 1998, SIGMETRICS 1998.

[11]  Debanjan Saha,et al.  Design, implementation and performance of a content-based switch , 2000, Proceedings IEEE INFOCOM 2000. Conference on Computer Communications. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies (Cat. No.00CH37064).