SpliceNP: a TCP splicer using a network processor

TCP Splicing can be used in content-aware switches to tremendously reduce overall request latency. In order to reduce the processing latency further, we propose to offload the protocol processing onto network processors (NPs). An NP consists of a multithreaded multiprocessor architecture that can provide high throughput for packet processing or forwarding. However, offloading any protocol software to an NP needs to be carefully designed due to its low-level programming and limited control memory size.In this paper, we first analyze the operation of TCP Splicing in detail and evaluate its performance through measurements on a Linux-based switch. Then various possibilities of workload allocation among different computation resources in an NP are presented, and the design tradeoffs are discussed. A content aware switch is implemented using IXP 2400 NP and evaluated for performance comparison. The measurement results demonstrate that our NP-based switch can reduce the http processing latency by an average of 83.3% for a 1K byte web page. 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]  David A. Maltz,et al.  TCP Splice for application layer proxy performance , 1999, J. High Speed Networks.

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

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

[4]  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).

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

[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]  Laxmi N. Bhuyan,et al.  Design and implementation of a content-aware switch using a network processor , 2005, 13th Symposium on High Performance Interconnects (HOTI'05).

[8]  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.

[9]  Erik J. Johnson,et al.  IXP2400/2800 Programming: The Complete Microengine Coding Guide , 2003 .

[10]  Vitaly Osipov,et al.  Chapter 10 – Cisco Content Services Switch , 2002 .

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

[12]  Mahadev Satyanarayanan,et al.  Proceedings of the eighteenth ACM symposium on Operating systems principles , 2001, SOSP 2001.

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

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

[15]  Daniela Rosu,et al.  Kernel Support for Faster Web Proxies , 2003, USENIX Annual Technical Conference, General Track.