Payload Caching: High-Speed Data Forwarding for Network Intermediaries

Large-scale network services such as data delivery often incorporate new functions by interposing intermediaries on the network. Examples of forwarding intermediaries include rewalls, content routers, protocol converters, caching proxies, and multicast servers. With the move toward network storage, even static Web servers act as intermediaries to forward data from storage to clients. This paper presents the design, implementation, and measured performance of payload caching, a technique for improving performance of host-based intermediaries. Our approach extends the functions of the network adapter to cache portions of the incoming packet stream, enabling the system to forward data directly from the cache. We prototyped payload caching in a programmable highspeed network adapter and a FreeBSD kernel. Experiments with TCP/IP traÆc ows show that payload caching can improve forwarding performance by up to 60% in realistic scenarios.

[1]  Joseph Pasquale,et al.  Exploiting In-Kernel Data Paths to Improve I/O Throughput and CPU Availability , 1993, USENIX Winter.

[2]  Larry L. Peterson,et al.  Fbufs: a high-bandwidth cross-domain transfer facility , 1994, SOSP '93.

[3]  Anna R. Karlin,et al.  Implementing global memory management in a workstation cluster , 1995, SOSP.

[4]  Eric A. Brewer,et al.  Cluster-based scalable network services , 1997, SOSP.

[5]  Peter,et al.  Io-lite: a Uniied I/o Buuering and Caching System , 1997 .

[6]  Syam Gadde,et al.  Cheating the I/O Bottleneck: Network Storage with Trapeze/Myrinet , 1998, USENIX Annual Technical Conference.

[7]  Brian N. Bershad,et al.  The Design and Implementation of an IPv6/IPv4 Network Address and Protocol Translator , 1998, USENIX Annual Technical Conference.

[8]  Brian N. Bershad,et al.  SPINE: An Operating System for Intelligent Network Adapters , 1998 .

[9]  Joseph D. Touch,et al.  High-Speed Data Paths in Host-Based Routers , 1998, Computer.

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

[11]  Gregory R. Ganger,et al.  Network Support for Network-Attached Storage , 1999 .

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

[13]  Jeffrey S. Chase,et al.  Network I/O with Trapeze , 1999 .

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

[15]  Willy Zwaenepoel,et al.  IO-Lite: a unified I/O buffering and caching system , 1999, TOCS.

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

[17]  Amin Vahdat,et al.  Interposed request routing for scalable network storage , 2000, TOCS.

[18]  T. Chiueh,et al.  A Cluster-based , Scalable Edge Router Architecture , 2000 .

[19]  Kirk L. Johnson,et al.  Overcast: reliable multicasting with on overlay network , 2000, OSDI.

[20]  Jeffrey S. Chase,et al.  End system optimizations for high-speed TCP , 2001, IEEE Commun. Mag..