[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article
Free access

Implementing network protocols at user level

Published: 01 October 1993 Publication History

Abstract

Traditionally, network software has been structured in a monolithic fashion with all protocol stacks executing either within the kernel or in a single trusted user-level server. This organization is motivated by performance and security concerns. However, considerations of code maintenance, ease of debugging, customization, and the simultaneous existence of multiple protocols argue for separating the implementations into more manageable user-level libraries of protocols. This paper describes the design and implementation of transport protocols as user-level libraries.We begin by motivating the need for protocol implementations as user-level libraries and placing our approach in the context of previous work. We then describe our alternative to monolithic protocol organization, which has been implemented on Mach workstations connected not only to traditional Ethernet, but also to a more modern network, the DEC SRC ANI. Based on our experience, we discuss the implications for host-network interface design and for overall system structure to support efficient user-level implementations of network protocols.

References

[1]
Mark B. Abbot and Larry L. Peterson. A language-based approach to protocol implementation. In Proceedings of the 1992 SIGCOMM Symposium on Communications Architectures and Protocols, pages 27-38, August 1992.]]
[2]
Andrew D. Birrell and Bruce Jay Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1 ):39-59, February 1984.]]
[3]
David R. Cheriton and Carey L. Williamson. VMTP as the transport layer for high-performance distributed systems. IEEE Communications Magazine, 27(6):37-44, June 1989.]]
[4]
David Clark. The structuring of systems with upcalls. In Proceedings of the lOth ACM Symposium on Operating Systems Principles, pages 171-180, December 1985.]]
[5]
Eric C. Cooper and Richard P. Draves. C threads. Technical Report CMU-CS-88-154, Carnegie Mellon University, June 1988.]]
[6]
Digital Equipment Corporation, Workstation Systems Engineering. PMADD-AA TurboChannel Ethernet Module Functional Specification, Rev 1.2., August 1990.]]
[7]
Willibald A. Doeringer, Doug Dykeman, Matthias Kaiserwerth, Bernd Wemer Meister, Harry Rudin, and Robin Williamson. A survey of light-weight transport protocols for high-speed networks. IEEE Transactions on Communications, 38(11 ):20-31, November 1990.]]
[8]
Richard P. Draves, Brian N. Bershad, Richard E Rashid, and Randall W. Dean. Using continuations to implement thread management and communication in operating systems. In Proceedings of the 13th ACM Symposium on Operating Systems Principles, pages 122-136, October 1991.]]
[9]
Edward W. Felten. The case for application-specific communication protocols. In Proceedings of Intel Supercomputer Systems Division Technology Focus Conference, pages 171- 181, 1992.]]
[10]
Alessandro Fiorin, David B. Golub, and Brian N. Bershad. An i/O system for Mach 3.0. In Proceedings of the Second UsenixMach Workshop, pages 163-176, November 1991.]]
[11]
Norman C. Hutchinson and Larry L. Peterson. The x-kernel: An architecture for implementing network protocols. IEEE Transactions on Software Engineering, 17(1 ):64-76, January 1991.]]
[12]
Samuel J. Leffier, Marshall Kirk McKusick, Michael J. Karels, and John S. Quarterman. The Design and Implementation of the 4.3BSD UNIX Operating System. Addison- Wesley Publishing Company, Inc., 1989.]]
[13]
Chris Maeda and Brian N. Bershad. Networking performance for microkemels. In Proceedings of the Third Workshop on Workstation Operating Systems, pages 154-159, April 1992.]]
[14]
Chris Maeda and Brian N. Bershad. Protocol service decomposition for high performance intemetworking. Unpublished Carnegie Mellon University Technical Report, March 1993.]]
[15]
Henry Massalin. Synthesis: An Efficient implementation of Fundamental Operating System Services. Ph.D. thesis, Columbia University, 1992.]]
[16]
Henry Massalin and Calton Pu. Threads and input/output in the Synthesis kernel. In Proceedings of l 2th A CM Symposium on Operating Systems Principles, pages 191-201, December 1989.]]
[17]
Steven McCanne and Van Jacobson. The BSD Packet Filter: A new architecture for user-level packet capture. In Proceed~ ings of the 1993 Winter USENIX Conference, pages 259-269, January 1993.]]
[18]
Jeffrey C. Mogul, Richard F. Rashid, and Michael J. Accetta. The Packet Filter: An efficient mechanism for user-level network code. In Proceedings of the 1 lth ACM Symposium on Operating Systems Principles, pages 39-51, November 1987.]]
[19]
Franklin Reynolds and Jeffrey Heller. Kernel support for network protocol servers. In Proceedings of the Second Usenix Mach Workshop, pages 149-162, November 1991.]]
[20]
Douglas C. Schmidt, Donald F. Box, and Tatsuya Suda. ADAPTIVE: A flexible and adaptive transport system architecture to support lightweight protocols for multimedia applications on high-speed networks. In Proceedin8s of the Symposium on High Performance Distributed Computing, pages 174-186, Syracuse, New York, September 1992. IEEE.]]
[21]
Michael D. Schroeder, Andrew D. Birrell, Michael Burrows, Hal Murray, Roger M. Needham, Thomas L. Rodeheffer, Edwin H. Satterthwaite, and Charles P. Thacker. Autonet: A high-speed, self-configuring local area network using pointto-point links. IEEE Journal on Selected Areas in Communications, 9(8):1318-1335, October 1991.]]
[22]
David L. Tennenhouse. Layered multiplexing considered harmful. In Proceedings of the 1st International Workshop on High-Speed Networks, pages 143-148, November 1989.]]
[23]
Charles P. Thacker, Lawrence C. Stewart, and Edwin H. Satterthwaite, Jr. Firefly: A multiprocessor workstation. IEEE Transactions on Computers, 37(8):909-920, August 1988.]]
[24]
Christian Tschudin. Flexible protocol stacks. In Proceedings of the 1991 SIGCOMM Symposium on Communications Architectures and Protocols, pages 197-205, September 1991.]]
[25]
George Varghese and Tony Lauck. Hashed and hierarchical timing wheels: Data structures for the efficient implementation of a timer facility. In Proceedings of the llth ACM Symposium on Operating Systems Principles, pages 25-38, November 1987.]]
[26]
Richard W. Watson and Sandy A. Mamrak. Gaining efficiency in transport services by appropriate design and implementation choices. A CM Transactions on Computer Systems, 5(2):97-120, May 1987.]]

Cited By

View all

Recommendations

Reviews

Greg Minshall

In this implementation of the TCP/IP protocol suite, basic packet demultiplexing occurs in the kernel of the host operating system, but the protocol processing proper occurs in libraries that are co-resident with the application using a given TCP connection. This approach is part of the overall microkernel thrust in operating systems, in which more and more of the operating system is placed in user-level processes. In previous work on TCP/IP and microkernels, the protocol processing and demultiplexing were placed in one user-level process, the application using TCP/IP in another, and the actual hardware device drivers (for the network card) in the kernel. Relative to this previous work, the current work shows performance improvements. Relative to having the protocols reside in a monolithic kernel, the current work continues to show performance degradation. An alternative style of kernel structuring, where the protocol processing and demultiplexing occur in the kernel protection domain, but in a separate module, is not discussed. Of related interest is Maeda and Bershad's paper [1].

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGCOMM Computer Communication Review
ACM SIGCOMM Computer Communication Review  Volume 23, Issue 4
Oct. 1993
288 pages
ISSN:0146-4833
DOI:10.1145/167954
  • Editor:
  • David Oran
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGCOMM '93: Conference proceedings on Communications architectures, protocols and applications
    October 1993
    299 pages
    ISBN:0897916190
    DOI:10.1145/166237
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1993
Published in SIGCOMM-CCR Volume 23, Issue 4

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)207
  • Downloads (Last 6 weeks)37
Reflects downloads up to 20 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)INSANEProceedings of the 24th International Middleware Conference10.1145/3590140.3629105(57-70)Online publication date: 27-Nov-2023
  • (2017)PARSEC3.0ACM SIGARCH Computer Architecture News10.1145/3053277.305327944:5(1-16)Online publication date: 13-Feb-2017
  • (2008)Toward a user-level real-time transport protocol with selective reliabilityMILCOM 2008 - 2008 IEEE Military Communications Conference10.1109/MILCOM.2008.4753409(1-7)Online publication date: Nov-2008
  • (2005)An object-oriented implementation of the Xpress Transfer ProtocolMultimedia: Advanced Teleservices and High-Speed Communication Architectures10.1007/3-540-58494-3_32(387-400)Online publication date: 2-Jun-2005
  • (1998)Efficient user-space protocol implementations with QoS guarantees using real-time upcallsIEEE/ACM Transactions on Networking (TON)10.1109/90.7208716:4(374-388)Online publication date: 1-Aug-1998
  • (1997)Protocol implementation in a vertically structured operating systemProceedings of 22nd Annual Conference on Local Computer Networks10.1109/LCN.1997.630986(179-188)Online publication date: 1997
  • (1995)PATROCLOS: A Flexible and High-Performance Transport SubsystemProtocols for High Speed Networks IV10.1007/978-0-387-34885-8_13(205-223)Online publication date: 1995
  • (2017)ZygOSProceedings of the 26th Symposium on Operating Systems Principles10.1145/3132747.3132780(325-341)Online publication date: 14-Oct-2017
  • (2017)PARSEC3.0ACM SIGARCH Computer Architecture News10.1145/3053277.305327944:5(1-16)Online publication date: 13-Feb-2017
  • (2016)The IX Operating SystemACM Transactions on Computer Systems10.1145/299764134:4(1-39)Online publication date: 9-Dec-2016
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media