Date: Tue, 10 Dec 1996 21:54:50 GMT Server: NCSA/1.4.2 Content-type: text/html Last-modified: Fri, 19 Jan 1996 20:04:04 GMT Content-length: 4008
This project investigates the use of parallelism in high performance internetworking. In particular, our goal is to support low overhead scalable communication between a multiprocessor and remote hosts over Ethernet, FDDI, ATM, and HIPPI networks. Our initial platform will be to support the BSD socket interface on top of the TCP/IP and UDP/IP protocol stacks.
The key observation behind our strategy is that an application's interface to the network is distinct and separable from its interface to the operating system. We take advantage of this observation by decomposing the protocol implementation into a protocol library and a privileged server process.
We present a brief overview of this architecture here, and a detailed description can be found in Protocol Service Decomposition for High Performance Networking by Maeda and Bershad, SOSP 1993.
A protocol library resides within each application process and communicates directly with the network interface for the common case operations of send and receive. The library makes use of a privileged system server for all operations that either have non-critical performance requirements or that cannot be handled within the application while maintaining the original operating system semantics. This server (the proxy server) handles a variety of tasks such as connection establishment and teardown, routing, ARP, fork and select.
This architecture is particularly well-suited to parallel environments because each processor can maintain its own copy of the network protocol stack and protocol endpoint data structures. Since the logically distinct endpoints are now structurally distinct, they can run in parallel with scalable performance.
In addition to providing the basic socket interface, we plan to investigate providing a collective I/O interface for parallel applications. We will explore different ways of mapping a collective I/O interface onto the abstractions provided by the socket interface combined with TCP and UDP. We also plan to leverage off of the parallel file system interfaces being designed as part of the Scalable I/O Initiative, modifying them where necessary to apply them to network communication.
The initial implementation of this architecture on a uniprocessor is described in Protocol Service Decomposition for High Performance Networking . We started by taking this implementation and porting it to the Intel Paragon running the OSF/1 operating system. Porting the library is complete, and porting the proxy server is in progress. The original implementation was done as part of the Mach project, where the microkernel provides the device management and the Unix server provides the traditional operating system functionality. The proxy server was implemented as a set of modifications to the Unix server. For better modularity and stability, we are currently separating the proxy server functionality from the OSF/1 server into a separate privileged process.