|
ABSTRACT
Fast and flexible message demultiplexing are well-established goals in the networking community [1, 18, 22]. Currently, however, network architects have had to sacrifice one for the other. We present a new packet-filter system, DPF (Dynamic Packet Filters), that provides both the traditional flexibility of packet filters [18] and the speed of hand-crafted demultiplexing routines [3]. DPF filters run 10-50 times faster than the fastest packet filters reported in the literature [1, 17, 18, 27]. DPF's performance is either equivalent to or, when it can exploit runtime information, superior to hand-coded demultiplexors. DPF achieves high performance by using a carefully-designed declarative packet-filter language that is aggressively optimized using dynamic code generation. The contributions of this work are: (1) a detailed description of the DPF design, (2) discussion of the use of dynamic code generation and quantitative results on its performance impact, (3) quantitative results on how DPF is used in the Aegis kernel to export network devices safely and securely to user space so that UDP and TCP can be implemented efficiently as user-level libraries, and (4) the unrestricted release of DPF into the public domain.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
M. L. Bailey, B. Gopal, M. A. Pagels, L. L. Peterson, and P. Sarkar. PATHFINDER: A pattern-based packet classifier. In Proceedings of the First Symposium on Operating Systems Design and Implementation, pages 115-123, November 1994.
|
 |
2
|
C. Chambers , D. Ungar, Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.146-160, June 19-23, 1989, Portland, Oregon, United States
|
| |
3
|
D. D. Clark, V. Jacobson, J. Romkey, and H. Salwen. An analysis of TCP processing overhead. IEEE Communications Magazine, 27(6):23-29, June 1989.
|
 |
4
|
|
 |
5
|
|
 |
6
|
Peter Druschel , Larry L. Peterson , Bruce S. Davie, Experiences with a high-speed network adaptor: a software perspective, Proceedings of the conference on Communications architectures, protocols and applications, p.2-13, August 31-September 02, 1994, London, United Kingdom
|
 |
7
|
Aled Edwards , Greg Watson , John Lumley , David Banks , Costas Calamvokis , C. Dalton, User-space protocols deliver high performance to applications on a low-cost Gb/s LAN, Proceedings of the conference on Communications architectures, protocols and applications, p.14-23, August 31-September 02, 1994, London, United Kingdom
|
 |
8
|
Dawson R. Engler, VCODE: a retargetable, extensible, very fast dynamic code generation system, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.160-170, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
| |
9
|
D. R. Engler, W. C. Hsieh, and M. F. Kaashoek. 'C: A language for high-level, efficient, and machine-independent dynamic code generation. In Proceedings of the 22th Annual Symposium on Principles of Programming Languages, 1995.
|
 |
10
|
D. R. Engler , M. F. Kaashoek , J. O'Toole, Jr., Exokernel: an operating system architecture for application-level resource management, Proceedings of the fifteenth ACM symposium on Operating systems principles, p.251-266, December 03-06, 1995, Copper Mountain, Colorado, United States
|
 |
11
|
Dawson R. Engler , Todd A. Proebsting, DCG: an efficient, retargetable dynamic code generation system, Proceedings of the sixth international conference on Architectural support for programming languages and operating systems, p.263-272, October 05-07, 1994, San Jose, California, United States
|
| |
12
|
|
| |
13
|
D. B. Johnson and W. Zwaenepoel. The Peregrine highperformance RPC system. Technical Report TR91-151, Rice University, March 1991.
|
| |
14
|
M. Leone and P. Lee. Lightweight run-time code generation. In Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 97-106, Copenhagen, Denmark, June 1994.
|
 |
15
|
|
| |
16
|
|
| |
17
|
S. McCanne and V. Jacobson. The BSD packet filter: A new architecture for user-level packet capture. In USENIX Technical Conference Proceedings, pages 259-269, San Diego, CA, Winter 1993. USENIX.
|
 |
18
|
J. Mogul , R. Rashid , M. Accetta, The packer filter: an efficient mechanism for user-level network code, Proceedings of the eleventh ACM Symposium on Operating systems principles, p.39-51, November 08-11, 1987, Austin, Texas, United States
|
 |
19
|
Todd A. Proebsting , Charles N. Fischer, Linear-time, optimal code scheduling for delayed-load architectures, Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, p.256-267, June 24-28, 1991, Toronto, Ontario, Canada
|
| |
20
|
N. Ramsey and M. F. Fernandez. The New Jersey machinecode toolkit. In 1995 Winter USENIX, December 1995.
|
 |
21
|
T. von Eicken , A. Basu , V. Buch , W. Vogels, U-Net: a user-level network interface for parallel and distributed computing (includes URL), Proceedings of the fifteenth ACM symposium on Operating systems principles, p.40-53, December 03-06, 1995, Copper Mountain, Colorado, United States
|
 |
22
|
|
 |
23
|
Chandramohan A. Thekkath , Henry M. Levy , Edward D. Lazowska, Separating data and control transfer in distributed operating systems, Proceedings of the sixth international conference on Architectural support for programming languages and operating systems, p.2-11, October 05-07, 1994, San Jose, California, United States
|
| |
24
|
C.A. Thekkath, H.M. Levy, and E.D. Lazowska. Efficient support for multicomputing on ATM networks. Technical Report TR93-04-03, University of Washington, April 1993.
|
 |
25
|
Chandramohan A. Thekkath , Thu D. Nguyen , Evelyn Moy , Edward D. Lazowska, Implementing network protocols at user level, Conference proceedings on Communications architectures, protocols and applications, p.64-73, September 13-17, 1993, San Francisco, California, United States
|
| |
26
|
|
| |
27
|
M. Yahara, B. Bershad, C. Maeda, and E. Moss. Efficient packet demultiplexing for multiple endpoints and large messages. InProceedings of the Winter 1994 USENIX Conference, 1994.
|
CITED BY 44
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paul Dourish , W. Keith Edwards , Jon Howell , Anthony LaMarca , John Lamping , Karin Petersen , Michael Salisbury , Doug Terry , Jim Thornton, A programming model for active documents, Proceedings of the 13th annual ACM symposium on User interface software and technology, p.41-50, November 06-08, 2000, San Diego, California, United States
|
|
|
Craig Partridge , Alex C. Snoeren , W. Timothy Strayer , Beverly Schwartz , Matthew Condell , Isidro Castiñeyra, FIRE: flexible Intra-AS routing environment, ACM SIGCOMM Computer Communication Review, v.30 n.4, p.191-203, October 2000
|
|
|
|
|
|
Gregory R. Ganger , Dawson R. Engler , M. Frans Kaashoek , Hector M. Briceño , Russell Hunt , Thomas Pinckney, Fast and flexible application-level networking on exokernel systems, ACM Transactions on Computer Systems (TOCS), v.20 n.1, p.49-83, February 2002
|
|
|
|
|
|
|
|
|
|
|
|
Patrick Crowley , Marc E. Fluczynski , Jean-Loup Baer , Brian N. Bershad, Characterizing processor architectures for programmable network interfaces, Proceedings of the 14th international conference on Supercomputing, p.54-65, May 08-11, 2000, Santa Fe, New Mexico, United States
|
|
|
|
|
|
Xiaoming Liu , Christoph Kreitz , Robbert van Renesse , Jason Hickey , Mark Hayden , Kenneth Birman , Robert Constable, Building reliable, high-performance communication systems from components, ACM SIGOPS Operating Systems Review, v.33 n.5, p.80-92, Dec. 1999
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
M. Frans Kaashoek , Dawson R. Engler , Gregory R. Ganger , Hector M. Briceño , Russell Hunt , David Mazières , Thomas Pinckney , Robert Grimm , John Jannotti , Kenneth Mackenzie, Application performance and flexibility on exokernel systems, ACM SIGOPS Operating Systems Review, v.31 n.5, p.52-65, Dec. 1997
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Irfan Pyarali , Carlos O'Ryan , Douglas Schmidt , Nanbor Wang , Vishal Kachroo , Aniruddha Gokhale, Applying optimization principle patterns to design real-time ORBs, Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems, p.11-11, May 03-07, 1999, San Diego, California
|
|
|
|
|
|
Swaroop Sridhar , Jonathan S. Shapiro , Eric Northup , Prashanth P. Bungale, HDTrans: an open source, low-level dynamic instrumentation system, Proceedings of the second international conference on Virtual execution environments, June 14-16, 2006, Ottawa, Ontario, Canada
|
|
|
Herbert Bos , Willem de Bruijn , Mihai Cristea , Trung Nguyen , Georgios Portokalidis, FFPF: fairly fast packet filters, Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, p.24-24, December 06-08, 2004, San Francisco, CA
|
|
|
|
|
|
Andy Bavier , Mic Bowman , Brent Chun , David Culler , Scott Karlin , Steve Muir , Larry Peterson , Timothy Roscoe , Tammo Spalink , Mike Wawrzoniak, Operating system support for planetary-scale network services, Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation, p.19-19, March 29-31, 2004, San Francisco, California
|
|
|
Anshumal Sinha , Sandeep Sarat , Jonathan S. Shapiro, Network subsystems reloaded: a high-performance, defensible network subsystem, Proceedings of the USENIX Annual Technical Conference 2004 on USENIX Annual Technical Conference, p.19-19, June 27-July 02, 2004, Boston, MA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|