Advisor: Dr. Sherali Zeadally
Major: Computer Science (Networking)
Degree: Master of Science
UNIX System V Release 4 STREAMS is a core component in many modern operating systems. One of its features serves as the method by which network protocol stacks are built in the operating system. STREAMS is a message based system which defines a set of kernel data structures and routines for passing messages up and down a protocol stack. Protocol stacks can be built and torn down dynamically in STREAMS. In addition, STREAMS offers a wide variety of Application Programming Interfaces (APIs). This work investigates the STREAMS subsytem for high-performance computer networks. Fast and Gigabit Ethernets were deployed and performance applications were designed and written from scratch to investigate a wide variety of performance characteristics, such as maximum throughput the subsystem can deliver, latency and throughput over the network with customized protocol stacks, and latency and throughput differences using different APIs. This gives a baseline for what kind of performance current STREAMS implementations can deliver, and answers some questions regarding its suitability for high-performance applications over fast networks.
BSD-based protocol stacks are the major alternative to a STREAMS-based system. There have been claims in both industry and research that BSD implementations are superior to STREAMS in terms of performance. Therefore, hardware independent tests were designed to investigate whether there is any merit to these claims.
After achieving a performance baseline for STREAMS, and comparing it to alternative approaches, this work investigates STREAMS suitability for future, evolving networks that provide QoS capability. In essence, the idea is to maintain some priority based scheme from application layer software to application layer software over the network. This entailed making some modifications to a Fast Ethernet device driver to add support for this feature. Test programs were designed from scratch to investigate how a STREAMS priority system behaves under different conditions.