| This dissertation addresses several issues involved in structuring communication software at end hosts to provide per-connection quality of service (QoS) guarantees. Our primary thrust is on realizing deterministic QoS guarantees in an experimental setting.;We design a novel QoS-sensitive communication subsystem architecture that provides components and mechanisms to manage communication resources in a QoS-sensitive fashion. This architecture is based on three key design principles: maintenance of QoS guarantees, overload protection via per-connection traffic enforcement, and fairness to best-effort traffic. We demonstrate the efficacy of the architecture via experiments using our x-kernel-based prototype implementation.;We develop admission control extensions to capture important implementation-related aspects not considered by theoretical resource management policies proposed in the literature. Communication performance is significantly affected by implementation-related aspects such as preemption overheads and constraints, simultaneous management of CPU and link bandwidth, link scheduling paradigms at sending hosts, and packet input mechanisms at receiving hosts.;We build a full-fledged guaranteed-QoS communication service on a contemporary microkernel operating system using a new service architecture integrating a QoS-aware application programming interface, a reliable signalling and resource reservation protocol, and QoS-sensitive data transmission and reception. We develop architectural and admission control enhancements that capture new overheads and constraints imposed by a microkernel server configuration. The service is implemented and evaluated on Pentium-based PCs running OSF MK 7.2 and communicating across switched Ethernet.;To enhance the portability of guaranteed-QoS communication services, we design self-parameterizing protocol stacks that profile and parameterize themselves appropriately during data transfer. We experimentally evaluate a self-parameterizing guaranteed-QoS communication service to demonstrate the feasibility of our approach. Self-parameterizing protocol stacks are a natural way to design portable QoS-sensitive communication software.;To provide "better than best-effort" Internet connectivity, the performance impact of supporting integrated services in TCP/IP protocol stacks must be assessed. We have designed, implemented, and evaluated an RSVP-based QoS architecture for TCP/IP protocol stacks supporting an integrated services Internet. Using detailed kernel-based profiling of RS/6000-based servers running AIX 4.2, we explore the performance impact of QoS support in TCP/IP protocol stacks. |