This volume addresses the question of how applications that use TCP/IP can be designed. Focusing on the client-server paradigm, this book examines algorithms for both the client and server components of a distributed program, shows an implementation that illustrates each design, discusses techniques like application-level gateways and tunnelling, and reviews several standard protocols. As well as describing concurrent processes and the system functions used to create them, this third volume in Comer's series also explains how each design fits into the space of possible implementations, emphasizes design principles that underlie practical implementations and offers sample programs that show how each design operates in practice.